// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2022, Gabriela David
 */
/dts-v1/;

#include "sdm632.dtsi"
#include "pm8953.dtsi"
#include <dt-bindings/leds/common.h>

/delete-node/ &cont_splash_mem;
/delete-node/ &qseecom_mem;

/ {
	model = "Motorola G7 Power";
	compatible = "motorola,ocean", "qcom,sdm632";
	chassis-type = "handset";
	qcom,msm-id = <349 0>;
	qcom,board-id = <0x141 0xc100>;
	qcom,pmic-id = <0x10016 0x25 0x00 0x00>;

	backlight: backlight {
		compatible = "led-backlight";
		leds = <&led>;
	};

	chosen {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		framebuffer@90001000 {
			compatible = "simple-framebuffer";
			reg = <0 0x90001000 0 (720 * 1520 * 3)>;

			width = <720>;
			height = <1520>;
			stride = <(720 * 3)>;
			format = "r8g8b8";

			power-domains = <&gcc MDSS_GDSC>;

			clocks = <&gcc GCC_MDSS_AHB_CLK>,
				 <&gcc GCC_MDSS_AXI_CLK>,
				 <&gcc GCC_MDSS_VSYNC_CLK>,
				 <&gcc GCC_MDSS_MDP_CLK>,
				 <&gcc GCC_MDSS_BYTE0_CLK>,
				 <&gcc GCC_MDSS_PCLK0_CLK>,
				 <&gcc GCC_MDSS_ESC0_CLK>;
		};
	};

	gpio-keys {
		compatible = "gpio-keys";

		pinctrl-names = "default";
		pinctrl-0 = <&gpio_key_default>;

		key-volume-up {
			label = "Volume Up";
			gpios = <&tlmm 85 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_VOLUMEUP>;
		};
	};

	reserved-memory {
		qseecom_mem: qseecom@84300000 {
			reg = <0x0 0x84300000 0x0 0x2000000>;
			no-map;
		};

		cont_splash_mem: cont-splash@90001000 {
			reg = <0x0 0x90001000 0x0 (720 * 1520 * 3)>;
			no-map;
		};

		reserved@eefa1800 {
			reg = <0x00 0xeefa1800 0x00 0x5e800>;
			no-map;
		};

		ramoops@ef000000 {
			compatible = "ramoops";
			reg = <0x0 0xef000000 0x0 0xbf800>;
			console-size = <0x40000>;
			pmsg-size = <0x40000>;
			record-size = <0x3f800>;
		};
	};

	vph_pwr: vph-pwr-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vph_pwr";
		regulator-always-on;
		regulator-boot-on;
	};
};

&hsusb_phy {
	vdd-supply = <&pm8953_l3>;
	vdda-pll-supply = <&pm8953_l7>;
	vdda-phy-dpdm-supply = <&pm8953_l13>;

	status = "okay";
};

&i2c_3 {
	status = "okay";

	touchscreen@41 {
		compatible = "ilitek,ili2117";
		reg = <0x41>;

		interrupt-parent = <&tlmm>;
		interrupts = <65 IRQ_TYPE_EDGE_FALLING>;

		touchscreen-inverted-x;
	};
};

&i2c_5 {
	status = "okay";

	led-controller@36 {
		compatible = "ti,lm3697";
		reg = <0x36>;

		#address-cells = <1>;
		#size-cells = <0>;

		led: led@1 {
			reg = <1>;
			default-trigger = "backlight";
			function = LED_FUNCTION_BACKLIGHT;
			led-sources = <0 1 2>;
		};
	};
};

&pm8953_resin {
	linux,code = <KEY_VOLUMEDOWN>;
	status = "okay";
};

&rpm_requests {
	regulators {
		compatible = "qcom,rpm-pm8953-regulators";

		vdd_l1-supply = <&pm8953_s3>;
		vdd_l2_l3-supply = <&pm8953_s3>;
		vdd_l4_l5_l6_l7_l16_l19-supply = <&pm8953_s4>;
		vdd_l8_l11_l12_l13_l14_l15-supply = <&vph_pwr>;
		vdd_l9_l10_l17_l18_l22-supply = <&vph_pwr>;

		pm8953_s3: s3 {
			regulator-min-microvolt = <984000>;
			regulator-max-microvolt = <1240000>;
		};

		pm8953_s4: s4 {
			regulator-min-microvolt = <1036000>;
			regulator-max-microvolt = <2040000>;
		};

		pm8953_l1: l1 {
			regulator-min-microvolt = <975000>;
			regulator-max-microvolt = <1050000>;
		};

		pm8953_l2: l2 {
			regulator-min-microvolt = <975000>;
			regulator-max-microvolt = <1175000>;
		};

		pm8953_l3: l3 {
			regulator-min-microvolt = <925000>;
			regulator-max-microvolt = <925000>;
			regulator-allow-set-load;
		};

		pm8953_l5: l5 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

		pm8953_l6: l6 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-always-on;
			regulator-boot-on;
		};

		pm8953_l7: l7 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1900000>;
		};

		pm8953_l8: l8 {
			regulator-min-microvolt = <2900000>;
			regulator-max-microvolt = <2900000>;
		};

		pm8953_l9: l9 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3300000>;
		};

		pm8953_l10: l10 {
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <3000000>;
		};

		pm8953_l11: l11 {
			regulator-min-microvolt = <2950000>;
			regulator-max-microvolt = <2950000>;
		};

		pm8953_l12: l12 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2950000>;
		};

		pm8953_l13: l13 {
			regulator-min-microvolt = <3125000>;
			regulator-max-microvolt = <3125000>;
		};

		pm8953_l16: l16 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

		pm8953_l17: l17 {
			regulator-min-microvolt = <2850000>;
			regulator-max-microvolt = <2850000>;
		};

		pm8953_l18: l18 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2700000>;
			regulator-always-on;
			regulator-boot-on;
		};

		pm8953_l19: l19 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1350000>;
		};

		pm8953_l22: l22 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-always-on;
		};

		pm8953_l23: l23 {
			regulator-min-microvolt = <975000>;
			regulator-max-microvolt = <1225000>;
		};
	};
};

&sdhc_1 {
	vmmc-supply = <&pm8953_l8>;
	vqmmc-supply = <&pm8953_l5>;

	status = "okay";
};

&sdhc_2 {
	vmmc-supply = <&pm8953_l11>;
	vqmmc-supply = <&pm8953_l12>;

	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;

	status = "okay";
};

&tlmm {
	gpio-reserved-ranges = <96 4>;
};

&usb3 {
	status = "okay";
};

&usb3_dwc3 {
	dr_mode = "peripheral";
};
