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

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

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

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

	smd {
		rpm {
			rpm_requests {
				pm8841-regulators {
					s1 {
						regulator-min-microvolt = <675000>;
						regulator-max-microvolt = <1050000>;
					};

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

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

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

				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>;

					s1 {
						regulator-min-microvolt = <1300000>;
						regulator-max-microvolt = <1300000>;

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

					s2 {
						regulator-min-microvolt = <2150000>;
						regulator-max-microvolt = <2150000>;

						regulator-boot-on;
					};

					s3 {
						regulator-min-microvolt = <1800000>;
						regulator-max-microvolt = <1800000>;

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

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

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

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

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

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

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

					l6 {
						regulator-min-microvolt = <1800000>;
						regulator-max-microvolt = <1800000>;

						regulator-boot-on;
					};

					l7 {
						regulator-min-microvolt = <1800000>;
						regulator-max-microvolt = <1800000>;

						regulator-boot-on;
					};

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

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

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

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

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

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

					l13 {
						regulator-min-microvolt = <1800000>;
						regulator-max-microvolt = <2950000>;

						regulator-boot-on;
					};

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

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

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

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

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

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

					l20 {
						regulator-min-microvolt = <2950000>;
						regulator-max-microvolt = <2950000>;

						regulator-boot-on;
						regulator-system-load = <200000>;
						regulator-allow-set-load;
					};

					l21 {
						regulator-min-microvolt = <2950000>;
						regulator-max-microvolt = <2950000>;

						regulator-boot-on;
					};

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

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

					l24 {
						regulator-min-microvolt = <3075000>;
						regulator-max-microvolt = <3075000>;

						regulator-boot-on;
					};
				};
			};
		};
	};

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

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

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

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

&soc {
	serial@f991d000 {
		status = "okay";
	};

	pinctrl@fd510000 {
		sdhc1_pin_a: sdhc1-pin-active {
			clk {
				pins = "sdc1_clk";
				drive-strength = <16>;
				bias-disable;
			};

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

		sdhc2_pin_a: sdhc2-pin-active {
			clk {
				pins = "sdc2_clk";
				drive-strength = <6>;
				bias-disable;
			};

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

		i2c1_pins: i2c1 {
			mux {
				pins = "gpio2", "gpio3";
				function = "blsp_i2c1";

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

		i2c2_pins: i2c2 {
			mux {
				pins = "gpio6", "gpio7";
				function = "blsp_i2c2";

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

		i2c3_pins: i2c3 {
			mux {
				pins = "gpio10", "gpio11";
				function = "blsp_i2c3";
				drive-strength = <2>;
				bias-disable;
			};
		};

		i2c11_pins: i2c11 {
			mux {
				pins = "gpio83", "gpio84";
				function = "blsp_i2c11";

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

		i2c12_pins: i2c12 {
			mux {
				pins = "gpio87", "gpio88";
				function = "blsp_i2c12";
				drive-strength = <2>;
				bias-disable;
			};
		};

		mpu6515_pin: mpu6515 {
			irq {
				pins = "gpio73";
				function = "gpio";
				bias-disable;
				input-enable;
			};
		};

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

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

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

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

		panel_pin: panel {
			te {
				pins = "gpio12";
				function = "mdp_vsync";

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

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

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

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

		blsp2_uart10_pin_a: blsp2-uart10-pin-active {
			tx {
				pins = "gpio53";
				function = "blsp_uart10";

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

			rx {
				pins = "gpio54";
				function = "blsp_uart10";

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

			cts {
				pins = "gpio55";
				function = "blsp_uart10";

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

			rts {
				pins = "gpio56";
				function = "blsp_uart10";

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

	sdhci@f9824900 {
		status = "okay";

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

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

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

	sdhci@f98a4900 {
		status = "okay";

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

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

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

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

			brcm,drive-strength = <10>;

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

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

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

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

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

	serial@f9960000 {
		status = "okay";

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

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

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

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

	i2c@f9967000 {
		status = "okay";
		pinctrl-names = "default";
		pinctrl-0 = <&i2c11_pins>;
		clock-frequency = <355000>;
		qcom,src-freq = <50000000>;

		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>;
			};
		};
	};

	i2c@f9968000 {
		status = "okay";
		pinctrl-names = "default";
		pinctrl-0 = <&i2c12_pins>;
		clock-frequency = <100000>;
		qcom,src-freq = <50000000>;

		mpu6515@68 {
			compatible = "invensense,mpu6515";
			reg = <0x68>;
			interrupts-extended = <&msmgpio 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 = <&msmgpio 67 0>;
					vid-supply = <&pm8941_lvs1>;
					vdd-supply = <&pm8941_l17>;
				};

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

	i2c@f9923000 {
		status = "okay";
		pinctrl-names = "default";
		pinctrl-0 = <&i2c1_pins>;
		clock-frequency = <100000>;
		qcom,src-freq = <50000000>;

		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 = <&msmgpio>;
			interrupts = <9 IRQ_TYPE_LEVEL_LOW>;

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

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

	i2c@f9924000 {
		status = "okay";

		clock-frequency = <355000>;
		qcom,src-freq = <50000000>;

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

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

			interrupts-extended = <&msmgpio 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>;
			};
		};
	};

	i2c@f9925000 {
		status = "okay";
		pinctrl-names = "default";
		pinctrl-0 = <&i2c3_pins>;
		clock-frequency = <100000>;
		qcom,src-freq = <50000000>;

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

	usb@f9a55000 {
		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;

		ulpi {
			phy@a {
				status = "okay";

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

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

	mdss@fd900000 {
		status = "okay";

		mdp@fd900000 {
			status = "okay";
		};

		dsi@fd922800 {
			status = "okay";

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

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

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

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

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

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

		dsi-phy@fd922a00 {
			status = "okay";

			vddio-supply = <&pm8941_l12>;
		};
	};
};

&spmi_bus {
	pm8941@0 {
		gpios@c000 {
			gpio_keys_pin_a: gpio-keys-active {
				pins = "gpio2", "gpio3";
				function = "normal";

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

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

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

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

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

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

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

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