xref: /linux/scripts/dtc/include-prefixes/arm64/qcom/msm8916-samsung-gt5-common.dtsi (revision ec71f661a572a770d7c861cd52a50cbbb0e1a8d1)
17cc40615SJasper Korten// SPDX-License-Identifier: GPL-2.0-only
27cc40615SJasper Korten
37cc40615SJasper Korten/dts-v1/;
47cc40615SJasper Korten
57cc40615SJasper Korten#include "msm8916-pm8916.dtsi"
64f6b5edbSJasper Korten#include "msm8916-modem-qdsp6.dtsi"
74f6b5edbSJasper Korten
87cc40615SJasper Korten#include <dt-bindings/gpio/gpio.h>
97cc40615SJasper Korten#include <dt-bindings/input/input.h>
107cc40615SJasper Korten#include <dt-bindings/interrupt-controller/irq.h>
114f6b5edbSJasper Korten#include <dt-bindings/sound/apq8016-lpass.h>
127cc40615SJasper Korten
137cc40615SJasper Korten/ {
147cc40615SJasper Korten	aliases {
15154f23a8SStephan Gerhold		mmc0 = &sdhc_1; /* eMMC */
16154f23a8SStephan Gerhold		mmc1 = &sdhc_2; /* SD card */
17c310ca82SStephan Gerhold		serial0 = &blsp_uart2;
187cc40615SJasper Korten	};
197cc40615SJasper Korten
207cc40615SJasper Korten	chosen {
217cc40615SJasper Korten		stdout-path = "serial0";
227cc40615SJasper Korten	};
237cc40615SJasper Korten
247cc40615SJasper Korten	reserved-memory {
257cc40615SJasper Korten		/* Additional memory used by Samsung firmware modifications */
267cc40615SJasper Korten		tz-apps@85500000 {
277cc40615SJasper Korten			reg = <0x0 0x85500000 0x0 0xb00000>;
287cc40615SJasper Korten			no-map;
297cc40615SJasper Korten		};
307cc40615SJasper Korten	};
317cc40615SJasper Korten
327cc40615SJasper Korten	gpio-keys {
337cc40615SJasper Korten		compatible = "gpio-keys";
347cc40615SJasper Korten
357cc40615SJasper Korten		pinctrl-0 = <&gpio_keys_default>;
367cc40615SJasper Korten		pinctrl-names = "default";
377cc40615SJasper Korten
387cc40615SJasper Korten		label = "GPIO Buttons";
397cc40615SJasper Korten
407cc40615SJasper Korten		volume-up-button {
417cc40615SJasper Korten			label = "Volume Up";
4241e22c2fSStephan Gerhold			gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
437cc40615SJasper Korten			linux,code = <KEY_VOLUMEUP>;
447cc40615SJasper Korten		};
457cc40615SJasper Korten
467cc40615SJasper Korten		home-button {
477cc40615SJasper Korten			label = "Home";
4841e22c2fSStephan Gerhold			gpios = <&tlmm 109 GPIO_ACTIVE_LOW>;
497cc40615SJasper Korten			linux,code = <KEY_HOMEPAGE>;
507cc40615SJasper Korten		};
517cc40615SJasper Korten	};
527cc40615SJasper Korten
537cc40615SJasper Korten	gpio-hall-sensor {
547cc40615SJasper Korten		compatible = "gpio-keys";
557cc40615SJasper Korten
567cc40615SJasper Korten		pinctrl-0 = <&gpio_hall_sensor_default>;
577cc40615SJasper Korten		pinctrl-names = "default";
587cc40615SJasper Korten
597cc40615SJasper Korten		label = "GPIO Hall Effect Sensor";
607cc40615SJasper Korten
617cc40615SJasper Korten		hall-sensor-switch {
627cc40615SJasper Korten			label = "Hall Effect Sensor";
6341e22c2fSStephan Gerhold			gpios = <&tlmm 52 GPIO_ACTIVE_LOW>;
647cc40615SJasper Korten			linux,input-type = <EV_SW>;
657cc40615SJasper Korten			linux,code = <SW_LID>;
667cc40615SJasper Korten			linux,can-disable;
677cc40615SJasper Korten		};
687cc40615SJasper Korten	};
697cc40615SJasper Korten};
707cc40615SJasper Korten
717cc40615SJasper Korten&blsp_i2c2 {
727cc40615SJasper Korten	status = "okay";
737cc40615SJasper Korten
747cc40615SJasper Korten	light-sensor@10 {
757cc40615SJasper Korten		compatible = "capella,cm3323";
767cc40615SJasper Korten		reg = <0x10>;
777cc40615SJasper Korten	};
787cc40615SJasper Korten
797cc40615SJasper Korten	accelerometer@1d {
807cc40615SJasper Korten		compatible = "st,lis2hh12";
817cc40615SJasper Korten		reg = <0x1d>;
827cc40615SJasper Korten
837cc40615SJasper Korten		vdd-supply = <&pm8916_l17>;
847cc40615SJasper Korten		vddio-supply = <&pm8916_l5>;
857cc40615SJasper Korten
8641e22c2fSStephan Gerhold		interrupt-parent = <&tlmm>;
877cc40615SJasper Korten		interrupts = <115 IRQ_TYPE_LEVEL_HIGH>;
887cc40615SJasper Korten
897cc40615SJasper Korten		st,drdy-int-pin = <1>;
907cc40615SJasper Korten		mount-matrix = "0", "1", "0",
917cc40615SJasper Korten			      "-1", "0", "0",
927cc40615SJasper Korten			       "0", "0", "1";
937cc40615SJasper Korten
947cc40615SJasper Korten		pinctrl-0 = <&accel_int_default>;
957cc40615SJasper Korten		pinctrl-names = "default";
967cc40615SJasper Korten	};
977cc40615SJasper Korten};
987cc40615SJasper Korten
99b364cc48SStephan Gerhold&blsp_i2c4 {
100b364cc48SStephan Gerhold	status = "okay";
101b364cc48SStephan Gerhold
102b364cc48SStephan Gerhold	fuelgauge@36 {
103b364cc48SStephan Gerhold		compatible = "maxim,max77849-battery";
104b364cc48SStephan Gerhold		reg = <0x36>;
105b364cc48SStephan Gerhold
106b364cc48SStephan Gerhold		maxim,rsns-microohm = <10000>;
107b364cc48SStephan Gerhold		maxim,over-heat-temp = <600>;
108b364cc48SStephan Gerhold		maxim,over-volt = <4400>;
109b364cc48SStephan Gerhold
110b364cc48SStephan Gerhold		interrupt-parent = <&tlmm>;
111b364cc48SStephan Gerhold		interrupts = <121 IRQ_TYPE_EDGE_FALLING>;
112b364cc48SStephan Gerhold
113b364cc48SStephan Gerhold		pinctrl-0 = <&fuelgauge_int_default>;
114b364cc48SStephan Gerhold		pinctrl-names = "default";
115b364cc48SStephan Gerhold	};
116b364cc48SStephan Gerhold};
117b364cc48SStephan Gerhold
118c310ca82SStephan Gerhold&blsp_uart2 {
119*2b8d22efSStephan Gerhold	pinctrl-0 = <&blsp_uart2_console_default>;
120*2b8d22efSStephan Gerhold	pinctrl-1 = <&blsp_uart2_console_sleep>;
1218d88f6c9SStephan Gerhold	pinctrl-names = "default", "sleep";
1227cc40615SJasper Korten	status = "okay";
1237cc40615SJasper Korten};
1247cc40615SJasper Korten
1254f6b5edbSJasper Korten/*
1264f6b5edbSJasper Korten * For some reason the speaker amplifier is connected to the second SD line
1274f6b5edbSJasper Korten * (MI2S_2_D1) instead of the first (MI2S_2_D0). This must be configured in the
1284f6b5edbSJasper Korten * device tree, otherwise audio will seemingly play fine on the wrong SD line
1294f6b5edbSJasper Korten * but the speaker stays silent.
1304f6b5edbSJasper Korten *
1314f6b5edbSJasper Korten * When routing audio via QDSP6 (the default) the &lpass node is reserved and
1324f6b5edbSJasper Korten * the definitions from &q6afedai are used. When the modem is disabled audio can
1334f6b5edbSJasper Korten * be alternatively routed directly to the LPASS hardware with reduced latency.
1344f6b5edbSJasper Korten * The definitions for &lpass are here for completeness to simplify changing the
1354f6b5edbSJasper Korten * setup with minor changes to the DT (either manually or with DT overlays).
1364f6b5edbSJasper Korten */
1374f6b5edbSJasper Korten&lpass {
1384f6b5edbSJasper Korten	dai-link@3 {
1394f6b5edbSJasper Korten		reg = <MI2S_QUATERNARY>;
1404f6b5edbSJasper Korten		qcom,playback-sd-lines = <1>;
1414f6b5edbSJasper Korten	};
1424f6b5edbSJasper Korten};
1434f6b5edbSJasper Korten
1444f6b5edbSJasper Korten&mpss_mem {
1454f6b5edbSJasper Korten	reg = <0x0 0x86800000 0x0 0x5400000>;
1464f6b5edbSJasper Korten};
1474f6b5edbSJasper Korten
1487cc40615SJasper Korten&pm8916_resin {
1497cc40615SJasper Korten	linux,code = <KEY_VOLUMEDOWN>;
1507cc40615SJasper Korten	status = "okay";
1517cc40615SJasper Korten};
1527cc40615SJasper Korten
153b0a8f16aSStephan Gerhold&pm8916_rpm_regulators {
154b0a8f16aSStephan Gerhold	pm8916_l17: l17 {
155b0a8f16aSStephan Gerhold		regulator-min-microvolt = <2850000>;
156b0a8f16aSStephan Gerhold		regulator-max-microvolt = <2850000>;
157b0a8f16aSStephan Gerhold	};
158b0a8f16aSStephan Gerhold};
159b0a8f16aSStephan Gerhold
1607cc40615SJasper Korten/* FIXME: Replace with MAX77849 MUIC when driver is available */
1617cc40615SJasper Korten&pm8916_usbin {
1627cc40615SJasper Korten	status = "okay";
1637cc40615SJasper Korten};
1647cc40615SJasper Korten
1654f6b5edbSJasper Korten&q6afedai {
1664f6b5edbSJasper Korten	dai@22 {
1674f6b5edbSJasper Korten		reg = <QUATERNARY_MI2S_RX>;
1684f6b5edbSJasper Korten		qcom,sd-lines = <1>;
1694f6b5edbSJasper Korten	};
1704f6b5edbSJasper Korten};
1714f6b5edbSJasper Korten
1727cc40615SJasper Korten&sdhc_1 {
1737cc40615SJasper Korten	status = "okay";
1747cc40615SJasper Korten};
1757cc40615SJasper Korten
1767cc40615SJasper Korten&sdhc_2 {
177c943e4c5SStephan Gerhold	pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
178c943e4c5SStephan Gerhold	pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
1797cc40615SJasper Korten	pinctrl-names = "default", "sleep";
1807cc40615SJasper Korten
18141e22c2fSStephan Gerhold	cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
1827cc40615SJasper Korten
1837cc40615SJasper Korten	status = "okay";
1847cc40615SJasper Korten};
1857cc40615SJasper Korten
1864f6b5edbSJasper Korten&sound {
1874f6b5edbSJasper Korten	audio-routing =
1884f6b5edbSJasper Korten		"AMIC1", "MIC BIAS External1",
1894f6b5edbSJasper Korten		"AMIC2", "MIC BIAS Internal2",
1904f6b5edbSJasper Korten		"AMIC3", "MIC BIAS External1";
1914f6b5edbSJasper Korten
1924f6b5edbSJasper Korten	sound_link_backend2: backend2-dai-link {
1934f6b5edbSJasper Korten		link-name = "Quaternary MI2S";
1944f6b5edbSJasper Korten
1954f6b5edbSJasper Korten		cpu {
1964f6b5edbSJasper Korten			sound-dai = <&q6afedai QUATERNARY_MI2S_RX>;
1974f6b5edbSJasper Korten		};
1984f6b5edbSJasper Korten		platform {
1994f6b5edbSJasper Korten			sound-dai = <&q6routing>;
2004f6b5edbSJasper Korten		};
2014f6b5edbSJasper Korten		codec {
2024f6b5edbSJasper Korten			sound-dai = <&speaker_codec>;
2034f6b5edbSJasper Korten		};
2044f6b5edbSJasper Korten	};
2054f6b5edbSJasper Korten};
2064f6b5edbSJasper Korten
2077cc40615SJasper Korten&usb {
2087cc40615SJasper Korten	dr_mode = "peripheral";
2097cc40615SJasper Korten	extcon = <&pm8916_usbin>;
2107cc40615SJasper Korten
2117cc40615SJasper Korten	status = "okay";
2127cc40615SJasper Korten};
2137cc40615SJasper Korten
2147cc40615SJasper Korten&usb_hs_phy {
2157cc40615SJasper Korten	extcon = <&pm8916_usbin>;
2167cc40615SJasper Korten};
2177cc40615SJasper Korten
21829589248SStephan Gerhold&venus {
21929589248SStephan Gerhold	status = "okay";
22029589248SStephan Gerhold};
22129589248SStephan Gerhold
2220ece6438SStephan Gerhold&venus_mem {
2230ece6438SStephan Gerhold	status = "okay";
2240ece6438SStephan Gerhold};
2250ece6438SStephan Gerhold
22632444424SStephan Gerhold&wcnss {
22732444424SStephan Gerhold	status = "okay";
22832444424SStephan Gerhold};
22932444424SStephan Gerhold
23032444424SStephan Gerhold&wcnss_iris {
23132444424SStephan Gerhold	compatible = "qcom,wcn3660b";
23232444424SStephan Gerhold};
23332444424SStephan Gerhold
2340ece6438SStephan Gerhold&wcnss_mem {
2350ece6438SStephan Gerhold	status = "okay";
2360ece6438SStephan Gerhold};
2370ece6438SStephan Gerhold
23841e22c2fSStephan Gerhold&tlmm {
2397cc40615SJasper Korten	accel_int_default: accel-int-default-state {
2407cc40615SJasper Korten		pins = "gpio115";
2417cc40615SJasper Korten		function = "gpio";
2427cc40615SJasper Korten		drive-strength = <2>;
2437cc40615SJasper Korten		bias-disable;
2447cc40615SJasper Korten	};
2457cc40615SJasper Korten
2467cc40615SJasper Korten	fuelgauge_int_default: fuelgauge-int-default-state {
2477cc40615SJasper Korten		pins = "gpio121";
2487cc40615SJasper Korten		function = "gpio";
2497cc40615SJasper Korten		drive-strength = <2>;
2507cc40615SJasper Korten		bias-disable;
2517cc40615SJasper Korten	};
2527cc40615SJasper Korten
2537cc40615SJasper Korten	gpio_keys_default: gpio-keys-default-state {
2547cc40615SJasper Korten		pins = "gpio107", "gpio109";
2557cc40615SJasper Korten		function = "gpio";
2567cc40615SJasper Korten		drive-strength = <2>;
2577cc40615SJasper Korten		bias-pull-up;
2587cc40615SJasper Korten	};
2597cc40615SJasper Korten
2607cc40615SJasper Korten	gpio_hall_sensor_default: gpio-hall-sensor-default-state {
2617cc40615SJasper Korten		pins = "gpio52";
2627cc40615SJasper Korten		function = "gpio";
2637cc40615SJasper Korten		drive-strength = <2>;
2647cc40615SJasper Korten		bias-disable;
2657cc40615SJasper Korten	};
266dfbda20dSStephan Gerhold
267dfbda20dSStephan Gerhold	sdc2_cd_default: sdc2-cd-default-state {
268dfbda20dSStephan Gerhold		pins = "gpio38";
269dfbda20dSStephan Gerhold		function = "gpio";
270dfbda20dSStephan Gerhold		drive-strength = <2>;
271dfbda20dSStephan Gerhold		bias-disable;
272dfbda20dSStephan Gerhold	};
2737cc40615SJasper Korten};
274