// SPDX-License-Identifier: GPL-2.0
#include "qcom-msm8974.dtsi"
#include "pm8841.dtsi"
#include "pm8941.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>

/ {
	model = "LGE MSM 8974 HAMMERHEAD";
	compatible = "lge,hammerhead", "qcom,msm8974";
	chassis-type = "handset";

	aliases {
		serial0 = &blsp1_uart1;
		serial1 = &blsp2_uart4;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

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

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

		key-volume-up {
			label = "volume_up";
			gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
			linux,input-type = <1>;
			linux,code = <KEY_VOLUMEUP>;
		};

		key-volume-down {
			label = "volume_down";
			gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
			linux,input-type = <1>;
			linux,code = <KEY_VOLUMEDOWN>;
		};
	};

	clk_pwm: pwm {
		compatible = "clk-pwm";
		clocks = <&mmcc CAMSS_GP1_CLK>;

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

		#pwm-cells = <2>;
	};

	vibrator {
		compatible = "pwm-vibrator";
		pwms = <&clk_pwm 0 100000>;
		pwm-names = "enable";

		vcc-supply = <&pm8941_l19>;
		enable-gpios = <&tlmm 60 GPIO_ACTIVE_HIGH>;
	};

	vreg_boost: vreg-boost {
		compatible = "regulator-fixed";

		regulator-name = "vreg-boost";
		regulator-min-microvolt = <3150000>;
		regulator-max-microvolt = <3150000>;

		regulator-always-on;
		regulator-boot-on;

		gpio = <&pm8941_gpios 21 GPIO_ACTIVE_HIGH>;
		enable-active-high;

		pinctrl-names = "default";
		pinctrl-0 = <&boost_bypass_n_pin>;
	};

	vreg_vph_pwr: vreg-vph-pwr {
		compatible = "regulator-fixed";
		regulator-name = "vph-pwr";

		regulator-min-microvolt = <3600000>;
		regulator-max-microvolt = <3600000>;

		regulator-always-on;
	};

	vreg_wlan: wlan-regulator {
		compatible = "regulator-fixed";

		regulator-name = "wl-reg";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

		gpio = <&tlmm 26 GPIO_ACTIVE_HIGH>;
		enable-active-high;

		pinctrl-names = "default";
		pinctrl-0 = <&wlan_regulator_pin>;
	};
};

&blsp1_i2c1 {
	status = "okay";
	clock-frequency = <100000>;

	charger: bq24192@6b {
		compatible = "ti,bq24192";
		reg = <0x6b>;
		interrupts-extended = <&spmi_bus 0 0xd5 0 IRQ_TYPE_EDGE_FALLING>;

		omit-battery-class;

		usb_otg_vbus: usb-otg-vbus { };
	};

	fuelgauge: max17048@36 {
		compatible = "maxim,max17048";
		reg = <0x36>;

		maxim,double-soc;
		maxim,rcomp = /bits/ 8 <0x4d>;

		interrupt-parent = <&tlmm>;
		interrupts = <9 IRQ_TYPE_LEVEL_LOW>;

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

		maxim,alert-low-soc-level = <2>;
	};
};

&blsp1_i2c2 {
	status = "okay";
	clock-frequency = <355000>;

	synaptics@70 {
		compatible = "syna,rmi4-i2c";
		reg = <0x70>;

		interrupts-extended = <&tlmm 5 IRQ_TYPE_EDGE_FALLING>;
		vdd-supply = <&pm8941_l22>;
		vio-supply = <&pm8941_lvs3>;

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

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

		rmi4-f01@1 {
			reg = <0x1>;
			syna,nosleep-mode = <1>;
		};

		rmi4-f12@12 {
			reg = <0x12>;
			syna,sensor-type = <1>;
		};
	};
};

&blsp1_i2c3 {
	status = "okay";
	clock-frequency = <100000>;

	avago_apds993@39 {
		compatible = "avago,apds9930";
		reg = <0x39>;
		interrupts-extended = <&tlmm 61 IRQ_TYPE_EDGE_FALLING>;
		vdd-supply = <&pm8941_l17>;
		vddio-supply = <&pm8941_lvs1>;
		led-max-microamp = <100000>;
		amstaos,proximity-diodes = <0>;
	};
};

&blsp2_i2c5 {
	status = "okay";
	clock-frequency = <355000>;

	backlight: led-controller@38 {
		compatible = "ti,lm3630a";
		status = "okay";
		reg = <0x38>;

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

		led@0 {
			reg = <0>;
			led-sources = <0 1>;
			label = "lcd-backlight";
			default-brightness = <200>;
		};
	};
};

&blsp2_i2c6 {
	status = "okay";
	clock-frequency = <100000>;

	mpu6515@68 {
		compatible = "invensense,mpu6515";
		reg = <0x68>;
		interrupts-extended = <&tlmm 73 IRQ_TYPE_EDGE_FALLING>;
		vddio-supply = <&pm8941_lvs1>;

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

		mount-matrix = "0", "-1", "0",
				"-1", "0", "0",
				"0", "0", "1";

		i2c-gate {
			#address-cells = <1>;
			#size-cells = <0>;
			ak8963@f {
				compatible = "asahi-kasei,ak8963";
				reg = <0x0f>;
				gpios = <&tlmm 67 GPIO_ACTIVE_HIGH>;
				vid-supply = <&pm8941_lvs1>;
				vdd-supply = <&pm8941_l17>;
			};

			bmp280@76 {
				compatible = "bosch,bmp280";
				reg = <0x76>;
				vdda-supply = <&pm8941_lvs1>;
				vddd-supply = <&pm8941_l17>;
			};
		};
	};
};

&blsp1_uart1 {
	status = "okay";
};

&blsp2_uart4 {
	status = "okay";

	bluetooth {
		compatible = "brcm,bcm43438-bt";
		max-speed = <3000000>;

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

		host-wakeup-gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>;
		device-wakeup-gpios = <&tlmm 62 GPIO_ACTIVE_HIGH>;
		shutdown-gpios = <&tlmm 41 GPIO_ACTIVE_HIGH>;
	};
};

&mdss {
	status = "okay";
};

&mdss_dsi0 {
	status = "okay";

	vdda-supply = <&pm8941_l2>;
	vdd-supply = <&pm8941_lvs3>;
	vddio-supply = <&pm8941_l12>;

	panel: panel@0 {
		reg = <0>;
		compatible = "lg,acx467akm-7";

		backlight = <&backlight>;

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

		port {
			panel_in: endpoint {
				remote-endpoint = <&mdss_dsi0_out>;
			};
		};
	};
};

&mdss_dsi0_out {
	remote-endpoint = <&panel_in>;
	data-lanes = <0 1 2 3>;
};

&mdss_dsi0_phy {
	status = "okay";

	vddio-supply = <&pm8941_l12>;
};

&pm8941_gpios {
	gpio_keys_pin_a: gpio-keys-active-state {
		pins = "gpio2", "gpio3";
		function = "normal";

		bias-pull-up;
		power-source = <PM8941_GPIO_S3>;
	};

	fuelgauge_pin: fuelgauge-int-state {
		pins = "gpio9";
		function = "normal";

		bias-disable;
		input-enable;
		power-source = <PM8941_GPIO_S3>;
	};

	wlan_sleep_clk_pin: wl-sleep-clk-state {
		pins = "gpio16";
		function = "func2";

		output-high;
		power-source = <PM8941_GPIO_S3>;
	};

	wlan_regulator_pin: wl-reg-active-state {
		pins = "gpio17";
		function = "normal";

		bias-disable;
		power-source = <PM8941_GPIO_S3>;
	};

	otg-hog {
		gpio-hog;
		gpios = <35 GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "otg-gpio";
	};
};

&pm8941_lpg {
	status = "okay";

	qcom,power-source = <1>;

	multi-led {
		color = <LED_COLOR_ID_RGB>;
		function = LED_FUNCTION_STATUS;

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

		led@7 {
			reg = <7>;
			color = <LED_COLOR_ID_RED>;
		};

		led@6 {
			reg = <6>;
			color = <LED_COLOR_ID_GREEN>;
		};

		led@5 {
			reg = <5>;
			color = <LED_COLOR_ID_BLUE>;
		};
	};
};

&remoteproc_adsp {
	cx-supply = <&pm8841_s2>;
	status = "okay";
};

&remoteproc_mss {
	cx-supply = <&pm8841_s2>;
	mss-supply = <&pm8841_s3>;
	mx-supply = <&pm8841_s1>;
	pll-supply = <&pm8941_l12>;
	status = "okay";
};

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

		pm8841_s1: s1 {
			regulator-min-microvolt = <675000>;
			regulator-max-microvolt = <1050000>;
		};

		pm8841_s2: s2 {
			regulator-min-microvolt = <500000>;
			regulator-max-microvolt = <1050000>;
		};

		pm8841_s3: s3 {
			regulator-min-microvolt = <1050000>;
			regulator-max-microvolt = <1050000>;
		};

		pm8841_s4: s4 {
			regulator-min-microvolt = <815000>;
			regulator-max-microvolt = <900000>;
		};
	};

	regulators-1 {
		compatible = "qcom,rpm-pm8941-regulators";

		vdd_l1_l3-supply = <&pm8941_s1>;
		vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
		vdd_l4_l11-supply = <&pm8941_s1>;
		vdd_l5_l7-supply = <&pm8941_s2>;
		vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
		vdd_l8_l16_l18_l19-supply = <&vreg_vph_pwr>;
		vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
		vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
		vdd_l21-supply = <&vreg_boost>;

		pm8941_s1: s1 {
			regulator-min-microvolt = <1300000>;
			regulator-max-microvolt = <1300000>;
			regulator-always-on;
			regulator-boot-on;
		};

		pm8941_s2: s2 {
			regulator-min-microvolt = <2150000>;
			regulator-max-microvolt = <2150000>;
			regulator-boot-on;
		};

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

		pm8941_l1: l1 {
			regulator-min-microvolt = <1225000>;
			regulator-max-microvolt = <1225000>;
			regulator-always-on;
			regulator-boot-on;
		};

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

		pm8941_l3: l3 {
			regulator-min-microvolt = <1225000>;
			regulator-max-microvolt = <1225000>;
		};

		pm8941_l4: l4 {
			regulator-min-microvolt = <1225000>;
			regulator-max-microvolt = <1225000>;
		};

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

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

		pm8941_l7: l7 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-boot-on;
		};

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

		pm8941_l9: l9 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2950000>;
		};

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

		pm8941_l11: l11 {
			regulator-min-microvolt = <1300000>;
			regulator-max-microvolt = <1300000>;
		};

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

		pm8941_l13: l13 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2950000>;
			regulator-boot-on;
		};

		pm8941_l14: l14 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

		pm8941_l15: l15 {
			regulator-min-microvolt = <2050000>;
			regulator-max-microvolt = <2050000>;
		};

		pm8941_l16: l16 {
			regulator-min-microvolt = <2700000>;
			regulator-max-microvolt = <2700000>;
		};

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

		pm8941_l18: l18 {
			regulator-min-microvolt = <2850000>;
			regulator-max-microvolt = <2850000>;
		};

		pm8941_l19: l19 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3300000>;
		};

		pm8941_l20: l20 {
			regulator-min-microvolt = <2950000>;
			regulator-max-microvolt = <2950000>;
			regulator-system-load = <200000>;
			regulator-allow-set-load;
			regulator-boot-on;
		};

		pm8941_l21: l21 {
			regulator-min-microvolt = <2950000>;
			regulator-max-microvolt = <2950000>;
			regulator-boot-on;
		};

		pm8941_l22: l22 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3300000>;
		};

		pm8941_l23: l23 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3000000>;
		};

		pm8941_l24: l24 {
			regulator-min-microvolt = <3075000>;
			regulator-max-microvolt = <3075000>;
			regulator-boot-on;
		};

		pm8941_lvs1: lvs1 {};
		pm8941_lvs3: lvs3 {};
	};
};

&sdhc_1 {
	status = "okay";

	vmmc-supply = <&pm8941_l20>;
	vqmmc-supply = <&pm8941_s3>;

	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&sdc1_on>;
	pinctrl-1 = <&sdc1_off>;
};

&sdhc_2 {
	status = "okay";

	max-frequency = <100000000>;
	vmmc-supply = <&vreg_wlan>;
	vqmmc-supply = <&pm8941_s3>;
	non-removable;

	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&sdc2_on>;
	pinctrl-1 = <&sdc2_off>;

	bcrmf@1 {
		compatible = "brcm,bcm4339-fmac", "brcm,bcm4329-fmac";
		reg = <1>;

		brcm,drive-strength = <10>;

		pinctrl-names = "default";
		pinctrl-0 = <&wlan_sleep_clk_pin>;
	};
};

&tlmm {
	sdc1_on: sdc1-on-state {
		clk-pins {
			pins = "sdc1_clk";
			drive-strength = <16>;
			bias-disable;
		};

		cmd-data-pins {
			pins = "sdc1_cmd", "sdc1_data";
			drive-strength = <10>;
			bias-pull-up;
		};
	};

	sdc2_on: sdc2-on-state {
		clk-pins {
			pins = "sdc2_clk";
			drive-strength = <6>;
			bias-disable;
		};

		cmd-data-pins {
			pins = "sdc2_cmd", "sdc2_data";
			drive-strength = <6>;
			bias-pull-up;
		};
	};

	mpu6515_pin: mpu6515-state {
		pins = "gpio73";
		function = "gpio";
		bias-disable;
	};

	touch_pin: touch-state {
		int-pins {
			pins = "gpio5";
			function = "gpio";

			drive-strength = <2>;
			bias-disable;
		};

		reset-pins {
			pins = "gpio8";
			function = "gpio";

			drive-strength = <2>;
			bias-pull-up;
		};
	};

	panel_pin: panel-state {
		pins = "gpio12";
		function = "mdp_vsync";
		drive-strength = <2>;
		bias-disable;
	};

	bt_pin: bt-state {
		hostwake-pins {
			pins = "gpio42";
			function = "gpio";
		};

		devwake-pins {
			pins = "gpio62";
			function = "gpio";
		};

		shutdown-pins {
			pins = "gpio41";
			function = "gpio";
		};
	};

	vibrator_pin: vibrator-state {
		core-pins {
			pins = "gpio27";
			function = "gp1_clk";
			drive-strength = <6>;
			bias-disable;
		};

		enable-pins {
			pins = "gpio60";
			function = "gpio";
			drive-strength = <2>;
			bias-disable;
		};
	};
};

&usb {
	status = "okay";

	phys = <&usb_hs1_phy>;
	phy-select = <&tcsr 0xb000 0>;

	extcon = <&charger>, <&usb_id>;
	vbus-supply = <&usb_otg_vbus>;

	hnp-disable;
	srp-disable;
	adp-disable;
};

&usb_hs1_phy {
	status = "okay";

	v1p8-supply = <&pm8941_l6>;
	v3p3-supply = <&pm8941_l24>;

	qcom,init-seq = /bits/ 8 <0x1 0x64>;
};
