// SPDX-License-Identifier: BSD-3-Clause

/dts-v1/;

#include "qcom-msm8226.dtsi"
#include "pm8226.dtsi"

/delete-node/ &smem_region;

/ {
	model = "Motorola Moto G (2013)";
	compatible = "motorola,falcon", "qcom,msm8226";
	chassis-type = "handset";

	aliases {
		mmc0 = &sdhc_1;
	};

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

		framebuffer@3200000 {
			compatible = "simple-framebuffer";
			reg = <0x03200000 0x800000>;
			width = <720>;
			height = <1280>;
			stride = <(720 * 3)>;
			format = "r8g8b8";
			vsp-supply = <&reg_lcd_pos>;
			vsn-supply = <&reg_lcd_neg>;
			vddio-supply = <&vddio_disp_vreg>;
		};
	};

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

		event-hall-sensor {
			label = "Hall Effect Sensor";
			gpios = <&tlmm 51 GPIO_ACTIVE_LOW>;
			linux,input-type = <EV_SW>;
			linux,code = <SW_LID>;
			linux,can-disable;
		};

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

	vddio_disp_vreg: regulator-vddio-disp {
		compatible = "regulator-fixed";
		regulator-name = "vddio_disp";
		gpio = <&tlmm 34 GPIO_ACTIVE_HIGH>;
		vin-supply = <&pm8226_l8>;
		startup-delay-us = <300>;
		enable-active-high;
		regulator-boot-on;
	};

	reserved-memory {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		framebuffer@3200000 {
			reg = <0x03200000 0x800000>;
			no-map;
		};

		dhob@f500000 {
			reg = <0x0f500000 0x40000>;
			no-map;
		};

		shob@f540000 {
			reg = <0x0f540000 0x2000>;
			no-map;
		};

		smem_region: smem@fa00000 {
			reg = <0x0fa00000 0x100000>;
			no-map;
		};

		/* Actually <0x0fa00000 0x500000>, but first 100000 is smem */
		reserved@fb00000 {
			reg = <0x0fb00000 0x400000>;
			no-map;
		};
	};
};

&blsp1_i2c3 {
	status = "okay";

	regulator@3e {
		compatible = "ti,tps65132";
		reg = <0x3e>;
		pinctrl-0 = <&reg_lcd_default>;
		pinctrl-names = "default";

		reg_lcd_pos: outp {
			regulator-name = "outp";
			regulator-min-microvolt = <4000000>;
			regulator-max-microvolt = <6000000>;
			regulator-active-discharge = <1>;
			regulator-boot-on;
			enable-gpios = <&tlmm 31 GPIO_ACTIVE_HIGH>;
		};

		reg_lcd_neg: outn {
			regulator-name = "outn";
			regulator-min-microvolt = <4000000>;
			regulator-max-microvolt = <6000000>;
			regulator-active-discharge = <1>;
			regulator-boot-on;
			enable-gpios = <&tlmm 33 GPIO_ACTIVE_HIGH>;
		};
	};

	temperature-sensor@48 {
		compatible = "ti,tmp108";
		reg = <0x48>;
		interrupts-extended = <&tlmm 13 IRQ_TYPE_LEVEL_LOW>;
		pinctrl-0 = <&temp_alert_default>;
		pinctrl-names = "default";
		#thermal-sensor-cells = <0>;
	};
};

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

&pm8226_vib {
	status = "okay";
};

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

		pm8226_s3: s3 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1300000>;
		};

		pm8226_s4: s4 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2200000>;
		};

		pm8226_s5: s5 {
			regulator-min-microvolt = <1150000>;
			regulator-max-microvolt = <1150000>;
		};

		pm8226_l1: l1 {
			regulator-min-microvolt = <1225000>;
			regulator-max-microvolt = <1225000>;
		};

		pm8226_l2: l2 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
		};

		pm8226_l3: l3 {
			regulator-min-microvolt = <750000>;
			regulator-max-microvolt = <1337500>;
		};

		pm8226_l4: l4 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
		};

		pm8226_l5: l5 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
		};

		pm8226_l6: l6 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-allow-set-load;
		};

		pm8226_l7: l7 {
			regulator-min-microvolt = <1850000>;
			regulator-max-microvolt = <1850000>;
		};

		pm8226_l8: l8 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

		pm8226_l9: l9 {
			regulator-min-microvolt = <2050000>;
			regulator-max-microvolt = <2050000>;
		};

		pm8226_l10: l10 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

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

		pm8226_l14: l14 {
			regulator-min-microvolt = <2750000>;
			regulator-max-microvolt = <2750000>;
		};

		pm8226_l15: l15 {
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <2800000>;
		};

		pm8226_l16: l16 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3350000>;
		};

		pm8226_l17: l17 {
			regulator-min-microvolt = <2950000>;
			regulator-max-microvolt = <2950000>;
		};

		pm8226_l18: l18 {
			regulator-min-microvolt = <2950000>;
			regulator-max-microvolt = <2950000>;
		};

		pm8226_l19: l19 {
			regulator-min-microvolt = <2850000>;
			regulator-max-microvolt = <2850000>;
		};

		pm8226_l20: l20 {
			regulator-min-microvolt = <3075000>;
			regulator-max-microvolt = <3075000>;
		};

		pm8226_l21: l21 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2950000>;
			regulator-allow-set-load;
		};

		pm8226_l22: l22 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2950000>;
		};

		pm8226_l23: l23 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2950000>;
		};

		pm8226_l24: l24 {
			regulator-min-microvolt = <1300000>;
			regulator-max-microvolt = <1350000>;
		};

		pm8226_l25: l25 {
			regulator-min-microvolt = <1775000>;
			regulator-max-microvolt = <2125000>;
		};

		pm8226_l26: l26 {
			regulator-min-microvolt = <1225000>;
			regulator-max-microvolt = <1225000>;
		};

		pm8226_l27: l27 {
			regulator-min-microvolt = <2050000>;
			regulator-max-microvolt = <2050000>;
		};

		pm8226_l28: l28 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <3400000>;
			regulator-boot-on;
		};

		pm8226_lvs1: lvs1 {
			regulator-always-on;
		};
	};
};

&sdhc_1 {
	vmmc-supply = <&pm8226_l17>;
	vqmmc-supply = <&pm8226_l6>;

	bus-width = <8>;
	non-removable;

	status = "okay";
};

&smbb {
	qcom,fast-charge-safe-current = <2000000>;
	qcom,fast-charge-current-limit = <1900000>;
	qcom,fast-charge-safe-voltage = <4400000>;
	qcom,minimum-input-voltage = <4300000>;

	status = "okay";
};

&tlmm {
	reg_lcd_default: reg-lcd-default-state {
		pins = "gpio31", "gpio33";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
		output-high;
	};

	reg_vddio_disp_default: reg-vddio-disp-default-state {
		pins = "gpio34";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
		output-high;
	};

	temp_alert_default: temp-alert-default-state {
		pins = "gpio13";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
		output-disable;
	};
};

&usb {
	extcon = <&smbb>;
	dr_mode = "peripheral";
	status = "okay";
};

&usb_hs_phy {
	extcon = <&smbb>;
	v1p8-supply = <&pm8226_l10>;
	v3p3-supply = <&pm8226_l20>;
};
