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