Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'qcom-arm64-for-6.7-2' into arm64-for-6.8

This merges leftover patches originally targetted for 6.7, but wasn't
propagated in time.

This describes the USB components on IPQ5018, and one of the SPI
controllers. The IPQ9574 RDP descriptions are refactored to keep common
dtsi, and the WPS button is described.

GPLL0 is described as a source clock for the mailbox (APCS clock)
across IPQ5332, IPQ6018, IPQ8074, and IPQ9574.

On MSM8916, the asynchronous packet router (APR) is described on the
DSP remoteproc, and audio services are described. Audio and modem are
then enabled on a range of MSM8916- and MSM8939-based devices.
GPU support is enabled on the Samsung Galaxy Tab devices, and RGB LED is
added to BQ Aquaris X5 and BQ Aquaris M5.

The QRB4210 RB2 is no longer hard coded to be in peripheral mode, and
RPMh sleep stats are added to the SA8775P platform.

Camera Control Interface (CCI) controllers are introduced on SC7280.

One of the DP PHY compatibles on X13s is updated, to reflect that the it
should operate in eDP mode. And missing camera LED pin configuration is
added.

Flash LED is described fo the SDM845-based OnePlus and Xiaomi devices.

Missing description of USB PHY regulators are added to Sony Xperia 10
IV, and modem and ath10k-based WiFi are enabled.
The uart for the Bluetooth controller on the SM6375 is added as well.

The true rng block is added for SA8775P, SC7280, SM8450, an SM8550.

+2774 -406
+10
Documentation/devicetree/bindings/arm/qcom.yaml
··· 186 186 187 187 - items: 188 188 - enum: 189 + - microsoft,dempsey 190 + - microsoft,makepeace 191 + - microsoft,moneypenny 189 192 - samsung,s3ve3g 193 + - const: qcom,msm8226 194 + 195 + - items: 196 + - enum: 197 + - microsoft,superman-lte 198 + - microsoft,tesla 199 + - const: qcom,msm8926 190 200 - const: qcom,msm8226 191 201 192 202 - items:
+12
arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts
··· 67 67 }; 68 68 }; 69 69 70 + &usb { 71 + status = "okay"; 72 + }; 73 + 74 + &usb_dwc { 75 + dr_mode = "host"; 76 + }; 77 + 78 + &usbphy0 { 79 + status = "okay"; 80 + }; 81 + 70 82 &xo_board_clk { 71 83 clock-frequency = <24000000>; 72 84 };
+78
arch/arm64/boot/dts/qcom/ipq5018.dtsi
··· 94 94 #size-cells = <1>; 95 95 ranges = <0 0 0 0xffffffff>; 96 96 97 + usbphy0: phy@5b000 { 98 + compatible = "qcom,ipq5018-usb-hsphy"; 99 + reg = <0x0005b000 0x120>; 100 + 101 + clocks = <&gcc GCC_USB0_PHY_CFG_AHB_CLK>; 102 + 103 + resets = <&gcc GCC_QUSB2_0_PHY_BCR>; 104 + 105 + #phy-cells = <0>; 106 + 107 + status = "disabled"; 108 + }; 109 + 97 110 tlmm: pinctrl@1000000 { 98 111 compatible = "qcom,ipq5018-tlmm"; 99 112 reg = <0x01000000 0x300000>; ··· 159 146 status = "disabled"; 160 147 }; 161 148 149 + blsp_dma: dma-controller@7884000 { 150 + compatible = "qcom,bam-v1.7.0"; 151 + reg = <0x07884000 0x1d000>; 152 + interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>; 153 + clocks = <&gcc GCC_BLSP1_AHB_CLK>; 154 + clock-names = "bam_clk"; 155 + #dma-cells = <1>; 156 + qcom,ee = <0>; 157 + }; 158 + 162 159 blsp1_uart1: serial@78af000 { 163 160 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 164 161 reg = <0x078af000 0x200>; ··· 177 154 <&gcc GCC_BLSP1_AHB_CLK>; 178 155 clock-names = "core", "iface"; 179 156 status = "disabled"; 157 + }; 158 + 159 + blsp1_spi1: spi@78b5000 { 160 + compatible = "qcom,spi-qup-v2.2.1"; 161 + #address-cells = <1>; 162 + #size-cells = <0>; 163 + reg = <0x078b5000 0x600>; 164 + interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 165 + clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>, 166 + <&gcc GCC_BLSP1_AHB_CLK>; 167 + clock-names = "core", "iface"; 168 + dmas = <&blsp_dma 4>, <&blsp_dma 5>; 169 + dma-names = "tx", "rx"; 170 + status = "disabled"; 171 + }; 172 + 173 + usb: usb@8af8800 { 174 + compatible = "qcom,ipq5018-dwc3", "qcom,dwc3"; 175 + reg = <0x08af8800 0x400>; 176 + 177 + interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 178 + interrupt-names = "hs_phy_irq"; 179 + 180 + clocks = <&gcc GCC_USB0_MASTER_CLK>, 181 + <&gcc GCC_SYS_NOC_USB0_AXI_CLK>, 182 + <&gcc GCC_USB0_SLEEP_CLK>, 183 + <&gcc GCC_USB0_MOCK_UTMI_CLK>; 184 + clock-names = "core", 185 + "iface", 186 + "sleep", 187 + "mock_utmi"; 188 + 189 + resets = <&gcc GCC_USB0_BCR>; 190 + 191 + qcom,select-utmi-as-pipe-clk; 192 + #address-cells = <1>; 193 + #size-cells = <1>; 194 + ranges; 195 + 196 + status = "disabled"; 197 + 198 + usb_dwc: usb@8a00000 { 199 + compatible = "snps,dwc3"; 200 + reg = <0x08a00000 0xe000>; 201 + clocks = <&gcc GCC_USB0_MOCK_UTMI_CLK>; 202 + clock-names = "ref"; 203 + interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>; 204 + phy-names = "usb2-phy"; 205 + phys = <&usbphy0>; 206 + tx-fifo-resize; 207 + snps,is-utmi-l1-suspend; 208 + snps,hird-threshold = /bits/ 8 <0x0>; 209 + snps,dis_u2_susphy_quirk; 210 + snps,dis_u3_susphy_quirk; 211 + }; 180 212 }; 181 213 182 214 intc: interrupt-controller@b000000 {
+18 -5
arch/arm64/boot/dts/qcom/ipq5332.dtsi
··· 91 91 }; 92 92 93 93 cpu_opp_table: opp-table-cpu { 94 - compatible = "operating-points-v2"; 94 + compatible = "operating-points-v2-kryo-cpu"; 95 95 opp-shared; 96 + nvmem-cells = <&cpu_speed_bin>; 96 97 97 - opp-1488000000 { 98 - opp-hz = /bits/ 64 <1488000000>; 98 + opp-1100000000 { 99 + opp-hz = /bits/ 64 <1100000000>; 100 + opp-supported-hw = <0x7>; 101 + clock-latency-ns = <200000>; 102 + }; 103 + 104 + opp-1500000000 { 105 + opp-hz = /bits/ 64 <1500000000>; 106 + opp-supported-hw = <0x3>; 99 107 clock-latency-ns = <200000>; 100 108 }; 101 109 }; ··· 171 163 reg = <0x000a4000 0x721>; 172 164 #address-cells = <1>; 173 165 #size-cells = <1>; 166 + 167 + cpu_speed_bin: cpu-speed-bin@1d { 168 + reg = <0x1d 0x2>; 169 + bits = <7 2>; 170 + }; 174 171 }; 175 172 176 173 rng: rng@e3000 { ··· 403 390 "qcom,ipq6018-apcs-apps-global"; 404 391 reg = <0x0b111000 0x1000>; 405 392 #clock-cells = <1>; 406 - clocks = <&a53pll>, <&xo_board>; 407 - clock-names = "pll", "xo"; 393 + clocks = <&a53pll>, <&xo_board>, <&gcc GPLL0>; 394 + clock-names = "pll", "xo", "gpll0"; 408 395 #mbox-cells = <1>; 409 396 }; 410 397
+2 -2
arch/arm64/boot/dts/qcom/ipq6018.dtsi
··· 611 611 compatible = "qcom,ipq6018-apcs-apps-global"; 612 612 reg = <0x0 0x0b111000 0x0 0x1000>; 613 613 #clock-cells = <1>; 614 - clocks = <&a53pll>, <&xo>; 615 - clock-names = "pll", "xo"; 614 + clocks = <&a53pll>, <&xo>, <&gcc GPLL0>; 615 + clock-names = "pll", "xo", "gpll0"; 616 616 #mbox-cells = <1>; 617 617 }; 618 618
+2 -2
arch/arm64/boot/dts/qcom/ipq8074.dtsi
··· 708 708 compatible = "qcom,ipq8074-apcs-apps-global", 709 709 "qcom,ipq6018-apcs-apps-global"; 710 710 reg = <0x0b111000 0x1000>; 711 - clocks = <&a53pll>, <&xo>; 712 - clock-names = "pll", "xo"; 711 + clocks = <&a53pll>, <&xo>, <&gcc GPLL0>; 712 + clock-names = "pll", "xo", "gpll0"; 713 713 714 714 #clock-cells = <1>; 715 715 #mbox-cells = <1>;
+147
arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 2 + /* 3 + * IPQ9574 RDP board common device tree source 4 + * 5 + * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved. 6 + * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved. 7 + */ 8 + 9 + /dts-v1/; 10 + 11 + #include <dt-bindings/gpio/gpio.h> 12 + #include <dt-bindings/input/input.h> 13 + #include "ipq9574.dtsi" 14 + 15 + / { 16 + aliases { 17 + serial0 = &blsp1_uart2; 18 + }; 19 + 20 + chosen { 21 + stdout-path = "serial0:115200n8"; 22 + }; 23 + 24 + regulator_fixed_3p3: s3300 { 25 + compatible = "regulator-fixed"; 26 + regulator-min-microvolt = <3300000>; 27 + regulator-max-microvolt = <3300000>; 28 + regulator-boot-on; 29 + regulator-always-on; 30 + regulator-name = "fixed_3p3"; 31 + }; 32 + 33 + regulator_fixed_0p925: s0925 { 34 + compatible = "regulator-fixed"; 35 + regulator-min-microvolt = <925000>; 36 + regulator-max-microvolt = <925000>; 37 + regulator-boot-on; 38 + regulator-always-on; 39 + regulator-name = "fixed_0p925"; 40 + }; 41 + 42 + gpio-keys { 43 + compatible = "gpio-keys"; 44 + pinctrl-0 = <&gpio_keys_default>; 45 + pinctrl-names = "default"; 46 + 47 + button-wps { 48 + label = "wps"; 49 + linux,code = <KEY_WPS_BUTTON>; 50 + gpios = <&tlmm 37 GPIO_ACTIVE_LOW>; 51 + debounce-interval = <60>; 52 + }; 53 + }; 54 + }; 55 + 56 + &blsp1_spi0 { 57 + pinctrl-0 = <&spi_0_pins>; 58 + pinctrl-names = "default"; 59 + status = "okay"; 60 + 61 + flash@0 { 62 + compatible = "micron,n25q128a11", "jedec,spi-nor"; 63 + reg = <0>; 64 + #address-cells = <1>; 65 + #size-cells = <1>; 66 + spi-max-frequency = <50000000>; 67 + }; 68 + }; 69 + 70 + &blsp1_uart2 { 71 + pinctrl-0 = <&uart2_pins>; 72 + pinctrl-names = "default"; 73 + status = "okay"; 74 + }; 75 + 76 + &rpm_requests { 77 + regulators { 78 + compatible = "qcom,rpm-mp5496-regulators"; 79 + 80 + ipq9574_s1: s1 { 81 + /* 82 + * During kernel bootup, the SoC runs at 800MHz with 875mV set by the bootloaders. 83 + * During regulator registration, kernel not knowing the initial voltage, 84 + * considers it as zero and brings up the regulators with minimum supported voltage. 85 + * Update the regulator-min-microvolt with SVS voltage of 725mV so that 86 + * the regulators are brought up with 725mV which is sufficient for all the 87 + * corner parts to operate at 800MHz 88 + */ 89 + regulator-min-microvolt = <725000>; 90 + regulator-max-microvolt = <1075000>; 91 + }; 92 + 93 + mp5496_l2: l2 { 94 + regulator-min-microvolt = <1800000>; 95 + regulator-max-microvolt = <1800000>; 96 + regulator-always-on; 97 + regulator-boot-on; 98 + }; 99 + }; 100 + }; 101 + 102 + &sleep_clk { 103 + clock-frequency = <32000>; 104 + }; 105 + 106 + &tlmm { 107 + spi_0_pins: spi-0-state { 108 + pins = "gpio11", "gpio12", "gpio13", "gpio14"; 109 + function = "blsp0_spi"; 110 + drive-strength = <8>; 111 + bias-disable; 112 + }; 113 + 114 + gpio_keys_default: gpio-keys-default-state { 115 + pins = "gpio37"; 116 + function = "gpio"; 117 + drive-strength = <8>; 118 + bias-pull-up; 119 + }; 120 + }; 121 + 122 + &usb_0_dwc3 { 123 + dr_mode = "host"; 124 + }; 125 + 126 + &usb_0_qmpphy { 127 + vdda-pll-supply = <&mp5496_l2>; 128 + vdda-phy-supply = <&regulator_fixed_0p925>; 129 + 130 + status = "okay"; 131 + }; 132 + 133 + &usb_0_qusbphy { 134 + vdd-supply = <&regulator_fixed_0p925>; 135 + vdda-pll-supply = <&mp5496_l2>; 136 + vdda-phy-dpdm-supply = <&regulator_fixed_3p3>; 137 + 138 + status = "okay"; 139 + }; 140 + 141 + &usb3 { 142 + status = "okay"; 143 + }; 144 + 145 + &xo_board_clk { 146 + clock-frequency = <24000000>; 147 + };
+1 -62
arch/arm64/boot/dts/qcom/ipq9574-rdp418.dts
··· 8 8 9 9 /dts-v1/; 10 10 11 - #include "ipq9574.dtsi" 11 + #include "ipq9574-rdp-common.dtsi" 12 12 13 13 / { 14 14 model = "Qualcomm Technologies, Inc. IPQ9574/AP-AL02-C2"; 15 15 compatible = "qcom,ipq9574-ap-al02-c2", "qcom,ipq9574"; 16 16 17 - aliases { 18 - serial0 = &blsp1_uart2; 19 - }; 20 - 21 - chosen { 22 - stdout-path = "serial0:115200n8"; 23 - }; 24 - }; 25 - 26 - &blsp1_spi0 { 27 - pinctrl-0 = <&spi_0_pins>; 28 - pinctrl-names = "default"; 29 - status = "okay"; 30 - 31 - flash@0 { 32 - compatible = "micron,n25q128a11", "jedec,spi-nor"; 33 - reg = <0>; 34 - #address-cells = <1>; 35 - #size-cells = <1>; 36 - spi-max-frequency = <50000000>; 37 - }; 38 - }; 39 - 40 - &blsp1_uart2 { 41 - pinctrl-0 = <&uart2_pins>; 42 - pinctrl-names = "default"; 43 - status = "okay"; 44 - }; 45 - 46 - &rpm_requests { 47 - regulators { 48 - compatible = "qcom,rpm-mp5496-regulators"; 49 - 50 - ipq9574_s1: s1 { 51 - /* 52 - * During kernel bootup, the SoC runs at 800MHz with 875mV set by the bootloaders. 53 - * During regulator registration, kernel not knowing the initial voltage, 54 - * considers it as zero and brings up the regulators with minimum supported voltage. 55 - * Update the regulator-min-microvolt with SVS voltage of 725mV so that 56 - * the regulators are brought up with 725mV which is sufficient for all the 57 - * corner parts to operate at 800MHz 58 - */ 59 - regulator-min-microvolt = <725000>; 60 - regulator-max-microvolt = <1075000>; 61 - }; 62 - }; 63 17 }; 64 18 65 19 &sdhc_1 { ··· 26 72 max-frequency = <384000000>; 27 73 bus-width = <8>; 28 74 status = "okay"; 29 - }; 30 - 31 - &sleep_clk { 32 - clock-frequency = <32000>; 33 75 }; 34 76 35 77 &tlmm { ··· 60 110 bias-pull-down; 61 111 }; 62 112 }; 63 - 64 - spi_0_pins: spi-0-state { 65 - pins = "gpio11", "gpio12", "gpio13", "gpio14"; 66 - function = "blsp0_spi"; 67 - drive-strength = <8>; 68 - bias-disable; 69 - }; 70 - }; 71 - 72 - &xo_board_clk { 73 - clock-frequency = <24000000>; 74 113 };
+1 -90
arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
··· 8 8 9 9 /dts-v1/; 10 10 11 - #include "ipq9574.dtsi" 11 + #include "ipq9574-rdp-common.dtsi" 12 12 13 13 / { 14 14 model = "Qualcomm Technologies, Inc. IPQ9574/AP-AL02-C7"; 15 15 compatible = "qcom,ipq9574-ap-al02-c7", "qcom,ipq9574"; 16 - 17 - aliases { 18 - serial0 = &blsp1_uart2; 19 - }; 20 - 21 - chosen { 22 - stdout-path = "serial0:115200n8"; 23 - }; 24 - 25 - regulator_fixed_3p3: s3300 { 26 - compatible = "regulator-fixed"; 27 - regulator-min-microvolt = <3300000>; 28 - regulator-max-microvolt = <3300000>; 29 - regulator-boot-on; 30 - regulator-always-on; 31 - regulator-name = "fixed_3p3"; 32 - }; 33 - 34 - regulator_fixed_0p925: s0925 { 35 - compatible = "regulator-fixed"; 36 - regulator-min-microvolt = <925000>; 37 - regulator-max-microvolt = <925000>; 38 - regulator-boot-on; 39 - regulator-always-on; 40 - regulator-name = "fixed_0p925"; 41 - }; 42 - }; 43 - 44 - &blsp1_uart2 { 45 - pinctrl-0 = <&uart2_pins>; 46 - pinctrl-names = "default"; 47 - status = "okay"; 48 - }; 49 - 50 - &rpm_requests { 51 - regulators { 52 - compatible = "qcom,rpm-mp5496-regulators"; 53 - 54 - ipq9574_s1: s1 { 55 - /* 56 - * During kernel bootup, the SoC runs at 800MHz with 875mV set by the bootloaders. 57 - * During regulator registration, kernel not knowing the initial voltage, 58 - * considers it as zero and brings up the regulators with minimum supported voltage. 59 - * Update the regulator-min-microvolt with SVS voltage of 725mV so that 60 - * the regulators are brought up with 725mV which is sufficient for all the 61 - * corner parts to operate at 800MHz 62 - */ 63 - regulator-min-microvolt = <725000>; 64 - regulator-max-microvolt = <1075000>; 65 - }; 66 - 67 - mp5496_l2: l2 { 68 - regulator-min-microvolt = <1800000>; 69 - regulator-max-microvolt = <1800000>; 70 - regulator-always-on; 71 - regulator-boot-on; 72 - }; 73 - }; 74 16 }; 75 17 76 18 &sdhc_1 { ··· 25 83 max-frequency = <384000000>; 26 84 bus-width = <8>; 27 85 status = "okay"; 28 - }; 29 - 30 - &sleep_clk { 31 - clock-frequency = <32000>; 32 86 }; 33 87 34 88 &tlmm { ··· 59 121 bias-pull-down; 60 122 }; 61 123 }; 62 - }; 63 - 64 - &usb_0_dwc3 { 65 - dr_mode = "host"; 66 - }; 67 - 68 - &usb_0_qmpphy { 69 - vdda-pll-supply = <&mp5496_l2>; 70 - vdda-phy-supply = <&regulator_fixed_0p925>; 71 - 72 - status = "okay"; 73 - }; 74 - 75 - &usb_0_qusbphy { 76 - vdd-supply = <&regulator_fixed_0p925>; 77 - vdda-pll-supply = <&mp5496_l2>; 78 - vdda-phy-dpdm-supply = <&regulator_fixed_3p3>; 79 - 80 - status = "okay"; 81 - }; 82 - 83 - &usb3 { 84 - status = "okay"; 85 - }; 86 - 87 - &xo_board_clk { 88 - clock-frequency = <24000000>; 89 124 };
+1 -64
arch/arm64/boot/dts/qcom/ipq9574-rdp449.dts
··· 8 8 9 9 /dts-v1/; 10 10 11 - #include "ipq9574.dtsi" 11 + #include "ipq9574-rdp-common.dtsi" 12 12 13 13 / { 14 14 model = "Qualcomm Technologies, Inc. IPQ9574/AP-AL02-C6"; 15 15 compatible = "qcom,ipq9574-ap-al02-c6", "qcom,ipq9574"; 16 16 17 - aliases { 18 - serial0 = &blsp1_uart2; 19 - }; 20 - 21 - chosen { 22 - stdout-path = "serial0:115200n8"; 23 - }; 24 - }; 25 - 26 - &blsp1_spi0 { 27 - pinctrl-0 = <&spi_0_pins>; 28 - pinctrl-names = "default"; 29 - status = "okay"; 30 - 31 - flash@0 { 32 - compatible = "micron,n25q128a11", "jedec,spi-nor"; 33 - reg = <0>; 34 - #address-cells = <1>; 35 - #size-cells = <1>; 36 - spi-max-frequency = <50000000>; 37 - }; 38 - }; 39 - 40 - &blsp1_uart2 { 41 - pinctrl-0 = <&uart2_pins>; 42 - pinctrl-names = "default"; 43 - status = "okay"; 44 - }; 45 - 46 - &rpm_requests { 47 - regulators { 48 - compatible = "qcom,rpm-mp5496-regulators"; 49 - 50 - ipq9574_s1: s1 { 51 - /* 52 - * During kernel bootup, the SoC runs at 800MHz with 875mV set by the bootloaders. 53 - * During regulator registration, kernel not knowing the initial voltage, 54 - * considers it as zero and brings up the regulators with minimum supported voltage. 55 - * Update the regulator-min-microvolt with SVS voltage of 725mV so that 56 - * the regulators are brought up with 725mV which is sufficient for all the 57 - * corner parts to operate at 800MHz 58 - */ 59 - regulator-min-microvolt = <725000>; 60 - regulator-max-microvolt = <1075000>; 61 - }; 62 - }; 63 - }; 64 - 65 - &sleep_clk { 66 - clock-frequency = <32000>; 67 - }; 68 - 69 - &tlmm { 70 - spi_0_pins: spi-0-state { 71 - pins = "gpio11", "gpio12", "gpio13", "gpio14"; 72 - function = "blsp0_spi"; 73 - drive-strength = <8>; 74 - bias-disable; 75 - }; 76 - }; 77 - 78 - &xo_board_clk { 79 - clock-frequency = <24000000>; 80 17 };
+1 -64
arch/arm64/boot/dts/qcom/ipq9574-rdp453.dts
··· 8 8 9 9 /dts-v1/; 10 10 11 - #include "ipq9574.dtsi" 11 + #include "ipq9574-rdp-common.dtsi" 12 12 13 13 / { 14 14 model = "Qualcomm Technologies, Inc. IPQ9574/AP-AL02-C8"; 15 15 compatible = "qcom,ipq9574-ap-al02-c8", "qcom,ipq9574"; 16 16 17 - aliases { 18 - serial0 = &blsp1_uart2; 19 - }; 20 - 21 - chosen { 22 - stdout-path = "serial0:115200n8"; 23 - }; 24 - }; 25 - 26 - &blsp1_spi0 { 27 - pinctrl-0 = <&spi_0_pins>; 28 - pinctrl-names = "default"; 29 - status = "okay"; 30 - 31 - flash@0 { 32 - compatible = "micron,n25q128a11", "jedec,spi-nor"; 33 - reg = <0>; 34 - #address-cells = <1>; 35 - #size-cells = <1>; 36 - spi-max-frequency = <50000000>; 37 - }; 38 - }; 39 - 40 - &blsp1_uart2 { 41 - pinctrl-0 = <&uart2_pins>; 42 - pinctrl-names = "default"; 43 - status = "okay"; 44 - }; 45 - 46 - &rpm_requests { 47 - regulators { 48 - compatible = "qcom,rpm-mp5496-regulators"; 49 - 50 - ipq9574_s1: s1 { 51 - /* 52 - * During kernel bootup, the SoC runs at 800MHz with 875mV set by the bootloaders. 53 - * During regulator registration, kernel not knowing the initial voltage, 54 - * considers it as zero and brings up the regulators with minimum supported voltage. 55 - * Update the regulator-min-microvolt with SVS voltage of 725mV so that 56 - * the regulators are brought up with 725mV which is sufficient for all the 57 - * corner parts to operate at 800MHz 58 - */ 59 - regulator-min-microvolt = <725000>; 60 - regulator-max-microvolt = <1075000>; 61 - }; 62 - }; 63 - }; 64 - 65 - &sleep_clk { 66 - clock-frequency = <32000>; 67 - }; 68 - 69 - &tlmm { 70 - spi_0_pins: spi-0-state { 71 - pins = "gpio11", "gpio12", "gpio13", "gpio14"; 72 - function = "blsp0_spi"; 73 - drive-strength = <8>; 74 - bias-disable; 75 - }; 76 - }; 77 - 78 - &xo_board_clk { 79 - clock-frequency = <24000000>; 80 17 };
+1 -65
arch/arm64/boot/dts/qcom/ipq9574-rdp454.dts
··· 8 8 9 9 /dts-v1/; 10 10 11 - #include "ipq9574.dtsi" 11 + #include "ipq9574-rdp-common.dtsi" 12 12 13 13 / { 14 14 model = "Qualcomm Technologies, Inc. IPQ9574/AP-AL02-C9"; 15 15 compatible = "qcom,ipq9574-ap-al02-c9", "qcom,ipq9574"; 16 - 17 - aliases { 18 - serial0 = &blsp1_uart2; 19 - }; 20 - 21 - chosen { 22 - stdout-path = "serial0:115200n8"; 23 - }; 24 - }; 25 - 26 - &blsp1_spi0 { 27 - pinctrl-0 = <&spi_0_pins>; 28 - pinctrl-names = "default"; 29 - status = "okay"; 30 - 31 - flash@0 { 32 - compatible = "micron,n25q128a11", "jedec,spi-nor"; 33 - reg = <0>; 34 - #address-cells = <1>; 35 - #size-cells = <1>; 36 - spi-max-frequency = <50000000>; 37 - }; 38 - }; 39 - 40 - &blsp1_uart2 { 41 - pinctrl-0 = <&uart2_pins>; 42 - pinctrl-names = "default"; 43 - status = "okay"; 44 - }; 45 - 46 - &rpm_requests { 47 - regulators { 48 - compatible = "qcom,rpm-mp5496-regulators"; 49 - 50 - ipq9574_s1: s1 { 51 - /* 52 - * During kernel bootup, the SoC runs at 800MHz with 875mV set by the bootloaders. 53 - * During regulator registration, kernel not knowing the initial voltage, 54 - * considers it as zero and brings up the regulators with minimum supported voltage. 55 - * Update the regulator-min-microvolt with SVS voltage of 725mV so that 56 - * the regulators are brought up with 725mV which is sufficient for all the 57 - * corner parts to operate at 800MHz 58 - */ 59 - regulator-min-microvolt = <725000>; 60 - regulator-max-microvolt = <1075000>; 61 - }; 62 - }; 63 - }; 64 - 65 - &sleep_clk { 66 - clock-frequency = <32000>; 67 - }; 68 - 69 - &tlmm { 70 - spi_0_pins: spi-0-state { 71 - pins = "gpio11", "gpio12", "gpio13", "gpio14"; 72 - function = "blsp0_spi"; 73 - drive-strength = <8>; 74 - bias-disable; 75 - }; 76 - }; 77 - 78 - &xo_board_clk { 79 - clock-frequency = <24000000>; 80 16 };
+22 -3
arch/arm64/boot/dts/qcom/ipq9574.dtsi
··· 106 106 }; 107 107 108 108 cpu_opp_table: opp-table-cpu { 109 - compatible = "operating-points-v2"; 109 + compatible = "operating-points-v2-kryo-cpu"; 110 110 opp-shared; 111 + nvmem-cells = <&cpu_speed_bin>; 111 112 112 113 opp-936000000 { 113 114 opp-hz = /bits/ 64 <936000000>; 114 115 opp-microvolt = <725000>; 116 + opp-supported-hw = <0xf>; 115 117 clock-latency-ns = <200000>; 116 118 }; 117 119 118 120 opp-1104000000 { 119 121 opp-hz = /bits/ 64 <1104000000>; 120 122 opp-microvolt = <787500>; 123 + opp-supported-hw = <0xf>; 124 + clock-latency-ns = <200000>; 125 + }; 126 + 127 + opp-1200000000 { 128 + opp-hz = /bits/ 64 <1200000000>; 129 + opp-microvolt = <862500>; 130 + opp-supported-hw = <0xf>; 121 131 clock-latency-ns = <200000>; 122 132 }; 123 133 124 134 opp-1416000000 { 125 135 opp-hz = /bits/ 64 <1416000000>; 126 136 opp-microvolt = <862500>; 137 + opp-supported-hw = <0x7>; 127 138 clock-latency-ns = <200000>; 128 139 }; 129 140 130 141 opp-1488000000 { 131 142 opp-hz = /bits/ 64 <1488000000>; 132 143 opp-microvolt = <925000>; 144 + opp-supported-hw = <0x7>; 133 145 clock-latency-ns = <200000>; 134 146 }; 135 147 136 148 opp-1800000000 { 137 149 opp-hz = /bits/ 64 <1800000000>; 138 150 opp-microvolt = <987500>; 151 + opp-supported-hw = <0x5>; 139 152 clock-latency-ns = <200000>; 140 153 }; 141 154 142 155 opp-2208000000 { 143 156 opp-hz = /bits/ 64 <2208000000>; 144 157 opp-microvolt = <1062500>; 158 + opp-supported-hw = <0x1>; 145 159 clock-latency-ns = <200000>; 146 160 }; 147 161 }; ··· 237 223 reg = <0x000a4000 0x5a1>; 238 224 #address-cells = <1>; 239 225 #size-cells = <1>; 226 + 227 + cpu_speed_bin: cpu-speed-bin@15 { 228 + reg = <0x15 0x2>; 229 + bits = <7 2>; 230 + }; 240 231 }; 241 232 242 233 cryptobam: dma-controller@704000 { ··· 671 652 "qcom,ipq6018-apcs-apps-global"; 672 653 reg = <0x0b111000 0x1000>; 673 654 #clock-cells = <1>; 674 - clocks = <&a73pll>, <&xo_board_clk>; 675 - clock-names = "pll", "xo"; 655 + clocks = <&a73pll>, <&xo_board_clk>, <&gcc GPLL0>; 656 + clock-names = "pll", "xo", "gpll0"; 676 657 #mbox-cells = <1>; 677 658 }; 678 659
+172 -1
arch/arm64/boot/dts/qcom/msm8916-alcatel-idol347.dts
··· 3 3 /dts-v1/; 4 4 5 5 #include "msm8916-pm8916.dtsi" 6 + #include "msm8916-modem-qdsp6.dtsi" 7 + 6 8 #include <dt-bindings/gpio/gpio.h> 7 9 #include <dt-bindings/input/input.h> 8 10 #include <dt-bindings/leds/common.h> ··· 22 20 23 21 chosen { 24 22 stdout-path = "serial0"; 23 + }; 24 + 25 + reserved-memory { 26 + /delete-node/ reserved@86680000; 27 + /delete-node/ rmtfs@86700000; 28 + 29 + rmtfs: rmtfs@86680000 { 30 + compatible = "qcom,rmtfs-mem"; 31 + reg = <0x0 0x86680000 0x0 0x160000>; 32 + no-map; 33 + 34 + qcom,client-id = <1>; 35 + }; 25 36 }; 26 37 27 38 gpio-keys { ··· 65 50 }; 66 51 }; 67 52 53 + reg_headphones_avdd: regulator-headphones-avdd { 54 + compatible = "regulator-fixed"; 55 + regulator-name = "headphones_avdd"; 56 + regulator-min-microvolt = <1800000>; 57 + regulator-max-microvolt = <1800000>; 58 + gpio = <&tlmm 121 GPIO_ACTIVE_HIGH>; 59 + enable-active-high; 60 + pinctrl-0 = <&headphones_avdd_default>; 61 + pinctrl-names = "default"; 62 + }; 63 + 68 64 usb_id: usb-id { 69 65 compatible = "linux,extcon-usb-gpio"; 70 66 id-gpios = <&tlmm 69 GPIO_ACTIVE_HIGH>; ··· 84 58 }; 85 59 }; 86 60 87 - &blsp_uart2 { 61 + &blsp_i2c3 { 88 62 status = "okay"; 63 + 64 + headphones: audio-codec@10 { 65 + compatible = "asahi-kasei,ak4375"; 66 + reg = <0x10>; 67 + avdd-supply = <&reg_headphones_avdd>; 68 + tvdd-supply = <&pm8916_l6>; 69 + pdn-gpios = <&tlmm 114 GPIO_ACTIVE_HIGH>; 70 + pinctrl-0 = <&headphones_pdn_default>; 71 + pinctrl-names = "default"; 72 + #sound-dai-cells = <0>; 73 + }; 74 + 75 + speaker_codec_top: audio-codec@34 { 76 + compatible = "nxp,tfa9897"; 77 + reg = <0x34>; 78 + vddd-supply = <&pm8916_l6>; 79 + rcv-gpios = <&tlmm 50 GPIO_ACTIVE_HIGH>; 80 + pinctrl-0 = <&speaker_top_default>; 81 + pinctrl-names = "default"; 82 + sound-name-prefix = "Speaker Top"; 83 + #sound-dai-cells = <0>; 84 + }; 85 + 86 + speaker_codec_bottom: audio-codec@36 { 87 + compatible = "nxp,tfa9897"; 88 + reg = <0x36>; 89 + vddd-supply = <&pm8916_l6>; 90 + rcv-gpios = <&tlmm 111 GPIO_ACTIVE_HIGH>; 91 + pinctrl-0 = <&speaker_bottom_default>; 92 + pinctrl-names = "default"; 93 + sound-name-prefix = "Speaker Bottom"; 94 + #sound-dai-cells = <0>; 95 + }; 89 96 }; 90 97 91 98 &blsp_i2c4 { ··· 212 153 }; 213 154 }; 214 155 156 + &blsp_uart2 { 157 + status = "okay"; 158 + }; 159 + 160 + &mpss_mem { 161 + reg = <0x0 0x86800000 0x0 0x5000000>; 162 + }; 163 + 164 + &pm8916_codec { 165 + qcom,micbias1-ext-cap; 166 + qcom,micbias-lvl = <2800>; 167 + qcom,mbhc-vthreshold-low = <75 100 120 180 500>; 168 + qcom,mbhc-vthreshold-high = <75 100 120 180 500>; 169 + qcom,hphl-jack-type-normally-open; 170 + }; 171 + 215 172 &pm8916_resin { 216 173 status = "okay"; 217 174 linux,code = <KEY_VOLUMEDOWN>; ··· 244 169 status = "okay"; 245 170 }; 246 171 172 + &q6afedai { 173 + dai@18 { 174 + reg = <SECONDARY_MI2S_RX>; 175 + qcom,sd-lines = <0>; 176 + }; 177 + dai@22 { 178 + reg = <QUATERNARY_MI2S_RX>; 179 + qcom,sd-lines = <0>; 180 + }; 181 + }; 182 + 247 183 &sdhc_1 { 248 184 status = "okay"; 249 185 }; ··· 267 181 pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>; 268 182 269 183 cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; 184 + }; 185 + 186 + &sound { 187 + /* Add pin switches for speakers to allow disabling them individually */ 188 + model = "alcatel-idol3"; 189 + widgets = 190 + "Speaker", "Speaker Top", 191 + "Speaker", "Speaker Bottom"; 192 + pin-switches = "Speaker Top", "Speaker Bottom"; 193 + audio-routing = 194 + "Speaker Top", "Speaker Top OUT", 195 + "Speaker Bottom", "Speaker Bottom OUT", 196 + "AMIC1", "MIC BIAS External1", 197 + "AMIC2", "MIC BIAS Internal2", 198 + "AMIC3", "MIC BIAS External1"; 199 + 200 + pinctrl-0 = <&cdc_pdm_default &pri_mi2s_default &pri_mi2s_ws_default &sec_mi2s_default>; 201 + pinctrl-1 = <&cdc_pdm_sleep &pri_mi2s_sleep &pri_mi2s_ws_sleep &sec_mi2s_sleep>; 202 + pinctrl-names = "default", "sleep"; 203 + 204 + sound_link_backend2: backend2-dai-link { 205 + link-name = "Quaternary MI2S"; 206 + 207 + cpu { 208 + sound-dai = <&q6afedai QUATERNARY_MI2S_RX>; 209 + }; 210 + platform { 211 + sound-dai = <&q6routing>; 212 + }; 213 + codec { 214 + sound-dai = <&speaker_codec_top>, <&speaker_codec_bottom>; 215 + }; 216 + }; 217 + }; 218 + 219 + &sound_link_backend0 { 220 + /* Primary MI2S is not used, replace with Secondary MI2S for headphones */ 221 + link-name = "Secondary MI2S"; 222 + 223 + cpu { 224 + sound-dai = <&q6afedai SECONDARY_MI2S_RX>; 225 + }; 226 + platform { 227 + sound-dai = <&q6routing>; 228 + }; 229 + codec { 230 + sound-dai = <&headphones>; 231 + }; 270 232 }; 271 233 272 234 &usb { ··· 346 212 status = "okay"; 347 213 }; 348 214 215 + /* Only some of the pins are used */ 216 + &pri_mi2s_default { 217 + pins = "gpio113", "gpio115"; 218 + }; 219 + 220 + &pri_mi2s_sleep { 221 + pins = "gpio113", "gpio115"; 222 + }; 223 + 349 224 &tlmm { 350 225 accel_int_default: accel-int-default-state { 351 226 pins = "gpio31"; ··· 384 241 pins = "gpio97", "gpio98"; 385 242 function = "gpio"; 386 243 244 + drive-strength = <2>; 245 + bias-disable; 246 + }; 247 + 248 + headphones_avdd_default: headphones-avdd-default-state { 249 + pins = "gpio121"; 250 + function = "gpio"; 251 + drive-strength = <2>; 252 + bias-disable; 253 + }; 254 + 255 + headphones_pdn_default: headphones-pdn-default-state { 256 + pins = "gpio114"; 257 + function = "gpio"; 387 258 drive-strength = <2>; 388 259 bias-disable; 389 260 }; ··· 443 286 444 287 sdc2_cd_default: sdc2-cd-default-state { 445 288 pins = "gpio38"; 289 + function = "gpio"; 290 + drive-strength = <2>; 291 + bias-disable; 292 + }; 293 + 294 + speaker_bottom_default: speaker-bottom-default-state { 295 + pins = "gpio111"; 296 + function = "gpio"; 297 + drive-strength = <2>; 298 + bias-disable; 299 + }; 300 + 301 + speaker_top_default: speaker-top-default-state { 302 + pins = "gpio50"; 446 303 function = "gpio"; 447 304 drive-strength = <2>; 448 305 bias-disable;
+21
arch/arm64/boot/dts/qcom/msm8916-asus-z00l.dts
··· 3 3 /dts-v1/; 4 4 5 5 #include "msm8916-pm8916.dtsi" 6 + #include "msm8916-modem-qdsp6.dtsi" 7 + 6 8 #include <dt-bindings/gpio/gpio.h> 7 9 #include <dt-bindings/input/input.h> 8 10 #include <dt-bindings/interrupt-controller/irq.h> ··· 132 130 status = "okay"; 133 131 }; 134 132 133 + &mpss_mem { 134 + reg = <0x0 0x86800000 0x0 0x5500000>; 135 + }; 136 + 137 + &pm8916_codec { 138 + qcom,micbias-lvl = <2800>; 139 + qcom,mbhc-vthreshold-low = <75 150 237 450 500>; 140 + qcom,mbhc-vthreshold-high = <75 150 237 450 500>; 141 + qcom,micbias1-ext-cap; 142 + qcom,hphl-jack-type-normally-open; 143 + }; 144 + 135 145 &pm8916_rpm_regulators { 136 146 pm8916_l17: l17 { 137 147 regulator-min-microvolt = <2850000>; ··· 163 149 pinctrl-0 = <&sdc2_default &sdc2_cd_default>; 164 150 pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>; 165 151 cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; 152 + }; 153 + 154 + &sound { 155 + audio-routing = 156 + "AMIC1", "MIC BIAS External1", 157 + "AMIC2", "MIC BIAS Internal2", 158 + "AMIC3", "MIC BIAS External1"; 166 159 }; 167 160 168 161 &usb {
+28 -3
arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
··· 3 3 /dts-v1/; 4 4 5 5 #include "msm8916-pm8916.dtsi" 6 + #include "msm8916-modem-qdsp6.dtsi" 7 + 6 8 #include <dt-bindings/gpio/gpio.h> 7 9 #include <dt-bindings/input/input.h> 8 10 #include <dt-bindings/interrupt-controller/irq.h> ··· 27 25 28 26 /* 29 27 * For some reason, the signed wcnss firmware is not relocatable. 30 - * It must be loaded at 0x8b600000. All other firmware is relocatable, 31 - * so place wcnss at the fixed address and then all other firmware 32 - * regions will be automatically allocated at a fitting place. 28 + * It must be loaded at 0x8b600000. Unfortunately, this also means that 29 + * mpss_mem does not fit when loaded to the typical address at 0x86800000. 30 + * 31 + * Load wcnss_mem to the fixed address and relocate mpss_mem to the next 32 + * working higher address. For some reason the modem firmware does not 33 + * boot when placed at 0x8a800000 to 0x8e800000. 33 34 */ 34 35 reserved-memory { 36 + /delete-node/ mpss@86800000; 35 37 /delete-node/ wcnss; 36 38 37 39 wcnss_mem: wcnss@8b600000 { 38 40 reg = <0x0 0x8b600000 0x0 0x600000>; 41 + no-map; 42 + }; 43 + 44 + mpss_mem: mpss@8e800000 { 45 + reg = <0x0 0x8e800000 0x0 0x5000000>; 39 46 no-map; 40 47 }; 41 48 }; ··· 236 225 status = "okay"; 237 226 }; 238 227 228 + &pm8916_codec { 229 + qcom,micbias-lvl = <2800>; 230 + qcom,mbhc-vthreshold-low = <75 150 237 450 500>; 231 + qcom,mbhc-vthreshold-high = <75 150 237 450 500>; 232 + qcom,hphl-jack-type-normally-open; 233 + }; 234 + 239 235 &pm8916_resin { 240 236 status = "okay"; 241 237 linux,code = <KEY_VOLUMEDOWN>; ··· 270 252 &sdhc_2 { 271 253 status = "okay"; 272 254 non-removable; 255 + }; 256 + 257 + &sound { 258 + audio-routing = 259 + "AMIC1", "MIC BIAS Internal1", 260 + "AMIC2", "MIC BIAS Internal2", 261 + "AMIC3", "MIC BIAS Internal3"; 273 262 }; 274 263 275 264 &usb {
+103
arch/arm64/boot/dts/qcom/msm8916-longcheer-l8910.dts
··· 3 3 /dts-v1/; 4 4 5 5 #include "msm8916-pm8916.dtsi" 6 + #include "msm8916-modem-qdsp6.dtsi" 7 + 6 8 #include <dt-bindings/gpio/gpio.h> 7 9 #include <dt-bindings/input/input.h> 8 10 #include <dt-bindings/leds/common.h> 11 + #include <dt-bindings/pinctrl/qcom,pmic-gpio.h> 9 12 10 13 / { 11 14 model = "BQ Aquaris X5 (Longcheer L8910)"; ··· 23 20 24 21 chosen { 25 22 stdout-path = "serial0"; 23 + }; 24 + 25 + speaker_amp: audio-amplifier { 26 + compatible = "awinic,aw8738"; 27 + mode-gpios = <&tlmm 114 GPIO_ACTIVE_HIGH>; 28 + awinic,mode = <5>; 29 + sound-name-prefix = "Speaker Amp"; 30 + 31 + pinctrl-0 = <&spk_ext_pa_default>; 32 + pinctrl-names = "default"; 26 33 }; 27 34 28 35 flash-led-controller { ··· 87 74 }; 88 75 }; 89 76 77 + &blsp_i2c2 { 78 + status = "okay"; 79 + 80 + led-controller@30 { 81 + compatible = "kinetic,ktd2026"; 82 + reg = <0x30>; 83 + #address-cells = <1>; 84 + #size-cells = <0>; 85 + 86 + vin-supply = <&pm8916_l17>; 87 + vio-supply = <&pm8916_l6>; 88 + 89 + pinctrl-0 = <&status_led_default>; 90 + pinctrl-names = "default"; 91 + 92 + multi-led { 93 + color = <LED_COLOR_ID_RGB>; 94 + function = LED_FUNCTION_STATUS; 95 + 96 + #address-cells = <1>; 97 + #size-cells = <0>; 98 + 99 + led@0 { 100 + reg = <0>; 101 + color = <LED_COLOR_ID_RED>; 102 + }; 103 + 104 + led@1 { 105 + reg = <1>; 106 + color = <LED_COLOR_ID_GREEN>; 107 + }; 108 + 109 + led@2 { 110 + reg = <2>; 111 + color = <LED_COLOR_ID_BLUE>; 112 + }; 113 + }; 114 + }; 115 + }; 116 + 90 117 &blsp_i2c3 { 91 118 status = "okay"; 92 119 ··· 160 107 status = "okay"; 161 108 }; 162 109 110 + &mpss_mem { 111 + reg = <0x0 0x86800000 0x0 0x5000000>; 112 + }; 113 + 114 + &pm8916_codec { 115 + qcom,micbias-lvl = <2800>; 116 + qcom,mbhc-vthreshold-low = <75 100 120 180 500>; 117 + qcom,mbhc-vthreshold-high = <75 100 120 180 500>; 118 + qcom,hphl-jack-type-normally-open; 119 + }; 120 + 121 + &pm8916_gpios { 122 + status_led_default: status-led-default-state { 123 + pins = "gpio3"; 124 + function = PMIC_GPIO_FUNC_NORMAL; 125 + power-source = <PM8916_GPIO_VPH>; 126 + bias-disable; 127 + output-high; 128 + }; 129 + }; 130 + 163 131 &pm8916_resin { 164 132 status = "okay"; 165 133 linux,code = <KEY_VOLUMEDOWN>; ··· 209 135 pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>; 210 136 211 137 cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; 138 + }; 139 + 140 + &sound { 141 + /* 142 + * Provide widgets/pin-switches to allow enabling speaker separately. 143 + * The hardware does not provide a way to disable the output via the 144 + * headphone jack when the speaker is enabled. 145 + */ 146 + model = "bq-paella"; 147 + widgets = 148 + "Speaker", "Speaker", 149 + "Headphone", "Headphones"; 150 + pin-switches = "Speaker"; 151 + audio-routing = 152 + "Speaker", "Speaker Amp OUT", 153 + "Speaker Amp IN", "HPH_R", 154 + "Headphones", "HPH_L", 155 + "Headphones", "HPH_R", 156 + "AMIC1", "MIC BIAS External1", 157 + "AMIC2", "MIC BIAS Internal2", 158 + "AMIC3", "MIC BIAS External1"; 159 + aux-devs = <&speaker_amp>; 212 160 }; 213 161 214 162 &usb { ··· 296 200 297 201 sdc2_cd_default: sdc2-cd-default-state { 298 202 pins = "gpio38"; 203 + function = "gpio"; 204 + drive-strength = <2>; 205 + bias-disable; 206 + }; 207 + 208 + spk_ext_pa_default: spk-ext-pa-default-state { 209 + pins = "gpio114"; 299 210 function = "gpio"; 300 211 drive-strength = <2>; 301 212 bias-disable;
+148
arch/arm64/boot/dts/qcom/msm8916-modem-qdsp6.dtsi
··· 1 + // SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) 2 + /* 3 + * msm8916-modem-qdsp6.dtsi describes the typical modem setup on MSM8916 devices 4 + * (or similar SoCs) with audio routed via the QDSP6 services provided by the 5 + * modem firmware. The digital/analog codec in the SoC/PMIC is used by default, 6 + * but boards can define additional codecs by adding additional backend DAI links. 7 + */ 8 + 9 + #include <dt-bindings/sound/qcom,q6afe.h> 10 + #include <dt-bindings/sound/qcom,q6asm.h> 11 + 12 + &apr { 13 + status = "okay"; 14 + }; 15 + 16 + &bam_dmux { 17 + status = "okay"; 18 + }; 19 + 20 + &bam_dmux_dma { 21 + status = "okay"; 22 + }; 23 + 24 + &lpass { 25 + status = "reserved"; /* Controlled by QDSP6 */ 26 + }; 27 + 28 + &lpass_codec { 29 + status = "okay"; 30 + }; 31 + 32 + &mba_mem { 33 + status = "okay"; 34 + }; 35 + 36 + &mpss { 37 + status = "okay"; 38 + }; 39 + 40 + &mpss_mem { 41 + status = "okay"; 42 + }; 43 + 44 + &pm8916_codec { 45 + status = "okay"; 46 + }; 47 + 48 + &q6afedai { 49 + dai@16 { 50 + reg = <PRIMARY_MI2S_RX>; 51 + qcom,sd-lines = <0 1>; 52 + }; 53 + dai@20 { 54 + reg = <TERTIARY_MI2S_TX>; 55 + qcom,sd-lines = <0 1>; 56 + }; 57 + }; 58 + 59 + &q6asmdai { 60 + dai@0 { 61 + reg = <0>; 62 + direction = <Q6ASM_DAI_RX>; 63 + }; 64 + dai@1 { 65 + reg = <1>; 66 + direction = <Q6ASM_DAI_TX>; 67 + }; 68 + dai@2 { 69 + reg = <2>; 70 + direction = <Q6ASM_DAI_RX>; 71 + }; 72 + dai@3 { 73 + reg = <3>; 74 + direction = <Q6ASM_DAI_RX>; 75 + is-compress-dai; 76 + }; 77 + }; 78 + 79 + &sound { 80 + compatible = "qcom,msm8916-qdsp6-sndcard"; 81 + model = "msm8916"; 82 + 83 + pinctrl-0 = <&cdc_pdm_default>; 84 + pinctrl-1 = <&cdc_pdm_sleep>; 85 + pinctrl-names = "default", "sleep"; 86 + 87 + status = "okay"; 88 + 89 + frontend0-dai-link { 90 + link-name = "MultiMedia1"; 91 + 92 + cpu { 93 + sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>; 94 + }; 95 + }; 96 + 97 + frontend1-dai-link { 98 + link-name = "MultiMedia2"; 99 + 100 + cpu { 101 + sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>; 102 + }; 103 + }; 104 + 105 + frontend2-dai-link { 106 + link-name = "MultiMedia3"; 107 + 108 + cpu { 109 + sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>; 110 + }; 111 + }; 112 + 113 + frontend3-dai-link { 114 + link-name = "MultiMedia4"; 115 + 116 + cpu { 117 + sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA4>; 118 + }; 119 + }; 120 + 121 + sound_link_backend0: backend0-dai-link { 122 + link-name = "Primary MI2S"; 123 + 124 + cpu { 125 + sound-dai = <&q6afedai PRIMARY_MI2S_RX>; 126 + }; 127 + platform { 128 + sound-dai = <&q6routing>; 129 + }; 130 + codec { 131 + sound-dai = <&lpass_codec 0>, <&pm8916_codec 0>; 132 + }; 133 + }; 134 + 135 + sound_link_backend1: backend1-dai-link { 136 + link-name = "Tertiary MI2S"; 137 + 138 + cpu { 139 + sound-dai = <&q6afedai TERTIARY_MI2S_TX>; 140 + }; 141 + platform { 142 + sound-dai = <&q6routing>; 143 + }; 144 + codec { 145 + sound-dai = <&lpass_codec 1>, <&pm8916_codec 1>; 146 + }; 147 + }; 148 + };
+71
arch/arm64/boot/dts/qcom/msm8916-samsung-a2015-common.dtsi
··· 1 1 // SPDX-License-Identifier: GPL-2.0-only 2 2 3 3 #include "msm8916-pm8916.dtsi" 4 + #include "msm8916-modem-qdsp6.dtsi" 5 + 4 6 #include <dt-bindings/gpio/gpio.h> 5 7 #include <dt-bindings/input/input.h> 6 8 #include <dt-bindings/interrupt-controller/irq.h> 7 9 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h> 10 + #include <dt-bindings/sound/apq8016-lpass.h> 8 11 9 12 / { 10 13 aliases { ··· 199 196 }; 200 197 }; 201 198 199 + &blsp_i2c1 { 200 + status = "okay"; 201 + 202 + speaker_codec: audio-codec@34 { 203 + compatible = "nxp,tfa9895"; 204 + reg = <0x34>; 205 + vddd-supply = <&pm8916_l5>; 206 + sound-name-prefix = "Speaker"; 207 + #sound-dai-cells = <0>; 208 + }; 209 + }; 210 + 202 211 &blsp_i2c2 { 203 212 status = "okay"; 204 213 ··· 258 243 status = "okay"; 259 244 }; 260 245 246 + /* 247 + * For some reason the speaker amplifier is connected to the second SD line 248 + * (MI2S_2_D1) instead of the first (MI2S_2_D0). This must be configured in the 249 + * device tree, otherwise audio will seemingly play fine on the wrong SD line 250 + * but the speaker stays silent. 251 + * 252 + * When routing audio via QDSP6 (the default) the &lpass node is reserved and 253 + * the definitions from &q6afedai are used. When the modem is disabled audio can 254 + * be alternatively routed directly to the LPASS hardware with reduced latency. 255 + * The definitions for &lpass are here for completeness to simplify changing the 256 + * setup with minor changes to the DT (either manually or with DT overlays). 257 + */ 258 + &lpass { 259 + dai-link@3 { 260 + reg = <MI2S_QUATERNARY>; 261 + qcom,playback-sd-lines = <1>; 262 + }; 263 + }; 264 + 261 265 &mdss { 262 266 status = "okay"; 263 267 }; ··· 285 251 pinctrl-names = "default", "sleep"; 286 252 pinctrl-0 = <&mdss_default>; 287 253 pinctrl-1 = <&mdss_sleep>; 254 + }; 255 + 256 + &mpss_mem { 257 + reg = <0x0 0x86800000 0x0 0x5400000>; 288 258 }; 289 259 290 260 &pm8916_resin { ··· 300 262 pm8916_l17: l17 { 301 263 regulator-min-microvolt = <2850000>; 302 264 regulator-max-microvolt = <2850000>; 265 + }; 266 + }; 267 + 268 + &q6afedai { 269 + dai@22 { 270 + reg = <QUATERNARY_MI2S_RX>; 271 + qcom,sd-lines = <1>; 303 272 }; 304 273 }; 305 274 ··· 322 277 pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>; 323 278 324 279 cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; 280 + }; 281 + 282 + &sound { 283 + model = "samsung-a2015"; 284 + audio-routing = 285 + "AMIC1", "MIC BIAS External1", 286 + "AMIC2", "MIC BIAS Internal2", 287 + "AMIC3", "MIC BIAS External1"; 288 + 289 + pinctrl-0 = <&cdc_pdm_default &sec_mi2s_default>; 290 + pinctrl-1 = <&cdc_pdm_sleep &sec_mi2s_sleep>; 291 + pinctrl-names = "default", "sleep"; 292 + 293 + sound_link_backend2: backend2-dai-link { 294 + link-name = "Quaternary MI2S"; 295 + 296 + cpu { 297 + sound-dai = <&q6afedai QUATERNARY_MI2S_RX>; 298 + }; 299 + platform { 300 + sound-dai = <&q6routing>; 301 + }; 302 + codec { 303 + sound-dai = <&speaker_codec>; 304 + }; 305 + }; 325 306 }; 326 307 327 308 &usb {
+5 -5
arch/arm64/boot/dts/qcom/msm8916-samsung-a3u-eur.dts
··· 49 49 }; 50 50 }; 51 51 52 - &touchkey { 53 - vcc-supply = <&reg_touch_key>; 54 - vdd-supply = <&reg_key_led>; 55 - }; 56 - 57 52 &accelerometer { 58 53 mount-matrix = "0", "1", "0", 59 54 "1", "0", "0", ··· 101 106 &mdss_dsi0_out { 102 107 data-lanes = <0 1>; 103 108 remote-endpoint = <&panel_in>; 109 + }; 110 + 111 + &touchkey { 112 + vcc-supply = <&reg_touch_key>; 113 + vdd-supply = <&reg_key_led>; 104 114 }; 105 115 106 116 &vibrator {
+4
arch/arm64/boot/dts/qcom/msm8916-samsung-e2015-common.dtsi
··· 65 65 }; 66 66 }; 67 67 68 + &mpss_mem { 69 + reg = <0x0 0x86800000 0x0 0x5a00000>; 70 + }; 71 + 68 72 &reg_motor_vdd { 69 73 regulator-min-microvolt = <3300000>; 70 74 regulator-max-microvolt = <3300000>;
+4
arch/arm64/boot/dts/qcom/msm8916-samsung-grandmax.dts
··· 49 49 status = "disabled"; 50 50 }; 51 51 52 + &sound { 53 + model = "samsung-gmax"; /* No secondary microphone */ 54 + }; 55 + 52 56 &tlmm { 53 57 gpio_leds_default: gpio-led-default-state { 54 58 pins = "gpio60";
+73 -19
arch/arm64/boot/dts/qcom/msm8916-samsung-gt5-common.dtsi
··· 3 3 /dts-v1/; 4 4 5 5 #include "msm8916-pm8916.dtsi" 6 + #include "msm8916-modem-qdsp6.dtsi" 7 + 6 8 #include <dt-bindings/gpio/gpio.h> 7 9 #include <dt-bindings/input/input.h> 8 10 #include <dt-bindings/interrupt-controller/irq.h> 11 + #include <dt-bindings/sound/apq8016-lpass.h> 9 12 10 13 / { 11 14 aliases { ··· 68 65 }; 69 66 }; 70 67 71 - &blsp_i2c4 { 72 - status = "okay"; 73 - 74 - fuelgauge@36 { 75 - compatible = "maxim,max77849-battery"; 76 - reg = <0x36>; 77 - 78 - maxim,rsns-microohm = <10000>; 79 - maxim,over-heat-temp = <600>; 80 - maxim,over-volt = <4400>; 81 - 82 - interrupt-parent = <&tlmm>; 83 - interrupts = <121 IRQ_TYPE_EDGE_FALLING>; 84 - 85 - pinctrl-0 = <&fuelgauge_int_default>; 86 - pinctrl-names = "default"; 87 - }; 88 - }; 89 - 90 68 &blsp_i2c2 { 91 69 status = "okay"; 92 70 ··· 96 112 }; 97 113 }; 98 114 115 + &blsp_i2c4 { 116 + status = "okay"; 117 + 118 + fuelgauge@36 { 119 + compatible = "maxim,max77849-battery"; 120 + reg = <0x36>; 121 + 122 + maxim,rsns-microohm = <10000>; 123 + maxim,over-heat-temp = <600>; 124 + maxim,over-volt = <4400>; 125 + 126 + interrupt-parent = <&tlmm>; 127 + interrupts = <121 IRQ_TYPE_EDGE_FALLING>; 128 + 129 + pinctrl-0 = <&fuelgauge_int_default>; 130 + pinctrl-names = "default"; 131 + }; 132 + }; 133 + 99 134 &blsp_uart2 { 100 135 status = "okay"; 136 + }; 137 + 138 + /* 139 + * For some reason the speaker amplifier is connected to the second SD line 140 + * (MI2S_2_D1) instead of the first (MI2S_2_D0). This must be configured in the 141 + * device tree, otherwise audio will seemingly play fine on the wrong SD line 142 + * but the speaker stays silent. 143 + * 144 + * When routing audio via QDSP6 (the default) the &lpass node is reserved and 145 + * the definitions from &q6afedai are used. When the modem is disabled audio can 146 + * be alternatively routed directly to the LPASS hardware with reduced latency. 147 + * The definitions for &lpass are here for completeness to simplify changing the 148 + * setup with minor changes to the DT (either manually or with DT overlays). 149 + */ 150 + &lpass { 151 + dai-link@3 { 152 + reg = <MI2S_QUATERNARY>; 153 + qcom,playback-sd-lines = <1>; 154 + }; 155 + }; 156 + 157 + &mpss_mem { 158 + reg = <0x0 0x86800000 0x0 0x5400000>; 101 159 }; 102 160 103 161 &pm8916_resin { ··· 159 133 status = "okay"; 160 134 }; 161 135 136 + &q6afedai { 137 + dai@22 { 138 + reg = <QUATERNARY_MI2S_RX>; 139 + qcom,sd-lines = <1>; 140 + }; 141 + }; 142 + 162 143 &sdhc_1 { 163 144 status = "okay"; 164 145 }; ··· 178 145 cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; 179 146 180 147 status = "okay"; 148 + }; 149 + 150 + &sound { 151 + audio-routing = 152 + "AMIC1", "MIC BIAS External1", 153 + "AMIC2", "MIC BIAS Internal2", 154 + "AMIC3", "MIC BIAS External1"; 155 + 156 + sound_link_backend2: backend2-dai-link { 157 + link-name = "Quaternary MI2S"; 158 + 159 + cpu { 160 + sound-dai = <&q6afedai QUATERNARY_MI2S_RX>; 161 + }; 162 + platform { 163 + sound-dai = <&q6routing>; 164 + }; 165 + codec { 166 + sound-dai = <&speaker_codec>; 167 + }; 168 + }; 181 169 }; 182 170 183 171 &usb {
+26
arch/arm64/boot/dts/qcom/msm8916-samsung-gt510.dts
··· 9 9 compatible = "samsung,gt510", "qcom,msm8916"; 10 10 chassis-type = "tablet"; 11 11 12 + speaker_codec: audio-codec { 13 + compatible = "maxim,max98357a"; 14 + sdmode-gpios = <&tlmm 55 GPIO_ACTIVE_HIGH>; 15 + #sound-dai-cells = <0>; 16 + pinctrl-0 = <&audio_sdmode_default>; 17 + pinctrl-names = "default"; 18 + }; 19 + 12 20 clk_pwm: pwm { 13 21 compatible = "clk-pwm"; 14 22 #pwm-cells = <2>; ··· 120 112 }; 121 113 }; 122 114 115 + &gpu { 116 + status = "okay"; 117 + }; 118 + 123 119 &mdss { 124 120 status = "okay"; 125 121 }; ··· 154 142 remote-endpoint = <&panel_in>; 155 143 }; 156 144 145 + &sound { 146 + model = "samsung-gt510"; 147 + pinctrl-0 = <&cdc_pdm_default &sec_mi2s_default>; 148 + pinctrl-1 = <&cdc_pdm_sleep &sec_mi2s_sleep>; 149 + pinctrl-names = "default", "sleep"; 150 + }; 151 + 157 152 &tlmm { 153 + audio_sdmode_default: audio-sdmode-default-state { 154 + pins = "gpio55"; 155 + function = "gpio"; 156 + drive-strength = <2>; 157 + bias-disable; 158 + }; 159 + 158 160 buckbooster_en_default: buckbooster-en-default-state { 159 161 pins = "gpio51"; 160 162 function = "gpio";
+46
arch/arm64/boot/dts/qcom/msm8916-samsung-gt58.dts
··· 35 35 pinctrl-names = "default"; 36 36 }; 37 37 38 + i2c-amplifier { 39 + compatible = "i2c-gpio"; 40 + sda-gpios = <&tlmm 55 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 41 + scl-gpios = <&tlmm 56 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 42 + 43 + pinctrl-0 = <&amp_i2c_default>; 44 + pinctrl-names = "default"; 45 + 46 + #address-cells = <1>; 47 + #size-cells = <0>; 48 + 49 + speaker_codec: audio-codec@34 { 50 + compatible = "nxp,tfa9895"; 51 + reg = <0x34>; 52 + vddd-supply = <&pm8916_l5>; 53 + sound-name-prefix = "Speaker"; 54 + #sound-dai-cells = <0>; 55 + }; 56 + }; 57 + 38 58 vibrator { 39 59 compatible = "gpio-vibrator"; 40 60 enable-gpios = <&tlmm 76 GPIO_ACTIVE_HIGH>; ··· 82 62 pinctrl-0 = <&tsp_int_default>; 83 63 pinctrl-names = "default"; 84 64 }; 65 + }; 66 + 67 + &gpu { 68 + status = "okay"; 85 69 }; 86 70 87 71 &mdss { ··· 118 94 remote-endpoint = <&panel_in>; 119 95 }; 120 96 97 + &sound { 98 + model = "samsung-a2015"; 99 + pinctrl-0 = <&cdc_pdm_default &sec_mi2s_default &secondary_mic_default>; 100 + pinctrl-1 = <&cdc_pdm_sleep &sec_mi2s_sleep &secondary_mic_default>; 101 + pinctrl-names = "default", "sleep"; 102 + }; 103 + 121 104 &tlmm { 105 + amp_i2c_default: amp-i2c-default-state { 106 + pins = "gpio55", "gpio56"; 107 + function = "gpio"; 108 + drive-strength = <2>; 109 + bias-disable; 110 + }; 111 + 122 112 buckbooster_en_default: buckbooster-en-default-state { 123 113 pins = "gpio8"; 124 114 function = "gpio"; ··· 159 121 function = "gpio"; 160 122 drive-strength = <2>; 161 123 bias-disable; 124 + }; 125 + 126 + secondary_mic_default: secondary-mic-default-state { 127 + pins = "gpio98"; 128 + function = "gpio"; 129 + drive-strength = <2>; 130 + bias-disable; 131 + output-high; 162 132 }; 163 133 164 134 tsp_int_default: tsp-int-default-state {
+14
arch/arm64/boot/dts/qcom/msm8916-samsung-j5-common.dtsi
··· 1 1 // SPDX-License-Identifier: GPL-2.0-only 2 2 3 3 #include "msm8916-pm8916.dtsi" 4 + #include "msm8916-modem-qdsp6.dtsi" 5 + 4 6 #include <dt-bindings/gpio/gpio.h> 5 7 #include <dt-bindings/input/input.h> 6 8 #include <dt-bindings/interrupt-controller/irq.h> ··· 137 135 status = "okay"; 138 136 }; 139 137 138 + &mpss_mem { 139 + reg = <0x0 0x86800000 0x0 0x5800000>; 140 + }; 141 + 140 142 &pm8916_resin { 141 143 status = "okay"; 142 144 linux,code = <KEY_VOLUMEDOWN>; ··· 158 152 pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>; 159 153 160 154 cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; 155 + }; 156 + 157 + &sound { 158 + model = "msm8916-1mic"; 159 + audio-routing = 160 + "AMIC1", "MIC BIAS External1", 161 + "AMIC2", "MIC BIAS Internal2", 162 + "AMIC3", "MIC BIAS External1"; 161 163 }; 162 164 163 165 &usb {
+4
arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts
··· 19 19 status = "disabled"; 20 20 }; 21 21 22 + &pm8916_codec { 23 + qcom,micbias1-ext-cap; 24 + }; 25 + 22 26 &touchscreen { 23 27 /* FIXME: Missing sm5703-mfd driver to power up vdd-supply */ 24 28 };
+13
arch/arm64/boot/dts/qcom/msm8916-samsung-serranove.dts
··· 6 6 /dts-v1/; 7 7 8 8 #include "msm8916-pm8916.dtsi" 9 + #include "msm8916-modem-qdsp6.dtsi" 10 + 9 11 #include <dt-bindings/gpio/gpio.h> 10 12 #include <dt-bindings/input/input.h> 11 13 #include <dt-bindings/interrupt-controller/irq.h> ··· 321 319 status = "okay"; 322 320 }; 323 321 322 + &mpss_mem { 323 + reg = <0x0 0x86800000 0x0 0x5a00000>; 324 + }; 325 + 324 326 &pm8916_resin { 325 327 status = "okay"; 326 328 linux,code = <KEY_VOLUMEDOWN>; ··· 354 348 * (without tuning), so maybe only tuning is broken? 355 349 */ 356 350 no-1-8-v; 351 + }; 352 + 353 + &sound { 354 + audio-routing = 355 + "AMIC1", "MIC BIAS External1", 356 + "AMIC2", "MIC BIAS Internal2", 357 + "AMIC3", "MIC BIAS External1"; 357 358 }; 358 359 359 360 &usb {
+4 -4
arch/arm64/boot/dts/qcom/msm8916-thwc-uf896.dts
··· 13 13 gpios = <&tlmm 35 GPIO_ACTIVE_LOW>; 14 14 }; 15 15 16 - &led_r { 17 - gpios = <&tlmm 82 GPIO_ACTIVE_HIGH>; 16 + &led_b { 17 + gpios = <&tlmm 81 GPIO_ACTIVE_HIGH>; 18 18 }; 19 19 20 20 &led_g { 21 21 gpios = <&tlmm 83 GPIO_ACTIVE_HIGH>; 22 22 }; 23 23 24 - &led_b { 25 - gpios = <&tlmm 81 GPIO_ACTIVE_HIGH>; 24 + &led_r { 25 + gpios = <&tlmm 82 GPIO_ACTIVE_HIGH>; 26 26 }; 27 27 28 28 &button_default {
+4 -4
arch/arm64/boot/dts/qcom/msm8916-thwc-ufi001c.dts
··· 13 13 gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>; 14 14 }; 15 15 16 - &led_r { 17 - gpios = <&tlmm 22 GPIO_ACTIVE_HIGH>; 16 + &led_b { 17 + gpios = <&tlmm 20 GPIO_ACTIVE_HIGH>; 18 18 }; 19 19 20 20 &led_g { 21 21 gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>; 22 22 }; 23 23 24 - &led_b { 25 - gpios = <&tlmm 20 GPIO_ACTIVE_HIGH>; 24 + &led_r { 25 + gpios = <&tlmm 22 GPIO_ACTIVE_HIGH>; 26 26 }; 27 27 28 28 &mpss {
+74
arch/arm64/boot/dts/qcom/msm8916-wingtech-wt88047.dts
··· 6 6 /dts-v1/; 7 7 8 8 #include "msm8916-pm8916.dtsi" 9 + #include "msm8916-modem-qdsp6.dtsi" 10 + 9 11 #include <dt-bindings/gpio/gpio.h> 10 12 #include <dt-bindings/input/input.h> 11 13 #include <dt-bindings/leds/common.h> ··· 25 23 26 24 chosen { 27 25 stdout-path = "serial0"; 26 + }; 27 + 28 + speaker_amp: audio-amplifier { 29 + compatible = "simple-audio-amplifier"; 30 + enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>; 31 + sound-name-prefix = "Speaker Amp"; 32 + pinctrl-0 = <&speaker_amp_default>; 33 + pinctrl-names = "default"; 34 + }; 35 + 36 + /* 37 + * This seems to be actually an analog switch that either routes audio 38 + * to the headphone jack or nowhere. Given that we need to enable a GPIO 39 + * to get sound on headphones, modelling it as simple-audio-amplifier 40 + * works just fine. 41 + */ 42 + headphones_switch: audio-switch { 43 + compatible = "simple-audio-amplifier"; 44 + enable-gpios = <&tlmm 8 GPIO_ACTIVE_HIGH>; 45 + sound-name-prefix = "Headphones Switch"; 46 + pinctrl-0 = <&headphones_switch_default>; 47 + pinctrl-names = "default"; 28 48 }; 29 49 30 50 flash-led-controller { ··· 170 146 status = "okay"; 171 147 }; 172 148 149 + &mpss_mem { 150 + reg = <0x0 0x86800000 0x0 0x5100000>; 151 + }; 152 + 153 + &pm8916_codec { 154 + qcom,micbias1-ext-cap; 155 + qcom,micbias-lvl = <2800>; 156 + qcom,mbhc-vthreshold-low = <75 100 120 180 500>; 157 + qcom,mbhc-vthreshold-high = <75 100 120 180 500>; 158 + qcom,hphl-jack-type-normally-open; 159 + }; 160 + 173 161 &pm8916_resin { 174 162 status = "okay"; 175 163 linux,code = <KEY_VOLUMEDOWN>; ··· 214 178 &sdhc_2 { 215 179 status = "okay"; 216 180 non-removable; 181 + }; 182 + 183 + &sound { 184 + /* 185 + * Provide widgets/pin-switches to allow enabling speaker and headphones 186 + * separately. Both are routed via the HPH_L/HPH_R pins of the codec. 187 + */ 188 + model = "wt88047"; 189 + widgets = 190 + "Speaker", "Speaker", 191 + "Headphone", "Headphones"; 192 + pin-switches = "Speaker", "Headphones"; 193 + audio-routing = 194 + "Speaker", "Speaker Amp OUTL", 195 + "Speaker", "Speaker Amp OUTR", 196 + "Speaker Amp INL", "HPH_R", 197 + "Speaker Amp INR", "HPH_R", 198 + "Headphones", "Headphones Switch OUTL", 199 + "Headphones", "Headphones Switch OUTR", 200 + "Headphones Switch INL", "HPH_L", 201 + "Headphones Switch INR", "HPH_R", 202 + "AMIC1", "MIC BIAS External1", 203 + "AMIC2", "MIC BIAS Internal2"; 204 + aux-devs = <&speaker_amp>, <&headphones_switch>; 217 205 }; 218 206 219 207 &usb { ··· 286 226 bias-pull-up; 287 227 }; 288 228 229 + headphones_switch_default: headphones-switch-default-state { 230 + pins = "gpio8"; 231 + function = "gpio"; 232 + drive-strength = <2>; 233 + bias-disable; 234 + }; 235 + 289 236 imu_default: imu-default-state { 290 237 pins = "gpio115"; 291 238 function = "gpio"; 292 239 240 + drive-strength = <2>; 241 + bias-disable; 242 + }; 243 + 244 + speaker_amp_default: speaker-amp-default-state { 245 + pins = "gpio117"; 246 + function = "gpio"; 293 247 drive-strength = <2>; 294 248 bias-disable; 295 249 };
+4 -4
arch/arm64/boot/dts/qcom/msm8916-yiming-uz801v3.dts
··· 13 13 gpios = <&tlmm 23 GPIO_ACTIVE_LOW>; 14 14 }; 15 15 16 - &led_r { 17 - gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>; 16 + &led_b { 17 + gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>; 18 18 }; 19 19 20 20 &led_g { 21 21 gpios = <&tlmm 8 GPIO_ACTIVE_HIGH>; 22 22 }; 23 23 24 - &led_b { 25 - gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>; 24 + &led_r { 25 + gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>; 26 26 }; 27 27 28 28 &button_default {
+49
arch/arm64/boot/dts/qcom/msm8916.dtsi
··· 10 10 #include <dt-bindings/interrupt-controller/arm-gic.h> 11 11 #include <dt-bindings/power/qcom-rpmpd.h> 12 12 #include <dt-bindings/reset/qcom,gcc-msm8916.h> 13 + #include <dt-bindings/soc/qcom,apr.h> 13 14 #include <dt-bindings/thermal/thermal.h> 14 15 15 16 / { ··· 1989 1988 qcom,remote-pid = <1>; 1990 1989 1991 1990 label = "hexagon"; 1991 + 1992 + apr: apr { 1993 + compatible = "qcom,apr-v2"; 1994 + qcom,smd-channels = "apr_audio_svc"; 1995 + qcom,domain = <APR_DOMAIN_ADSP>; 1996 + #address-cells = <1>; 1997 + #size-cells = <0>; 1998 + status = "disabled"; 1999 + 2000 + q6core: service@3 { 2001 + compatible = "qcom,q6core"; 2002 + reg = <APR_SVC_ADSP_CORE>; 2003 + }; 2004 + 2005 + q6afe: service@4 { 2006 + compatible = "qcom,q6afe"; 2007 + reg = <APR_SVC_AFE>; 2008 + 2009 + q6afedai: dais { 2010 + compatible = "qcom,q6afe-dais"; 2011 + #address-cells = <1>; 2012 + #size-cells = <0>; 2013 + #sound-dai-cells = <1>; 2014 + }; 2015 + }; 2016 + 2017 + q6asm: service@7 { 2018 + compatible = "qcom,q6asm"; 2019 + reg = <APR_SVC_ASM>; 2020 + 2021 + q6asmdai: dais { 2022 + compatible = "qcom,q6asm-dais"; 2023 + #address-cells = <1>; 2024 + #size-cells = <0>; 2025 + #sound-dai-cells = <1>; 2026 + }; 2027 + }; 2028 + 2029 + q6adm: service@8 { 2030 + compatible = "qcom,q6adm"; 2031 + reg = <APR_SVC_ADM>; 2032 + 2033 + q6routing: routing { 2034 + compatible = "qcom,q6adm-routing"; 2035 + #sound-dai-cells = <0>; 2036 + }; 2037 + }; 2038 + }; 1992 2039 1993 2040 fastrpc { 1994 2041 compatible = "qcom,fastrpc";
+55
arch/arm64/boot/dts/qcom/msm8939-longcheer-l9100.dts
··· 8 8 #include <dt-bindings/input/input.h> 9 9 #include <dt-bindings/interrupt-controller/irq.h> 10 10 #include <dt-bindings/leds/common.h> 11 + #include <dt-bindings/pinctrl/qcom,pmic-gpio.h> 11 12 #include <dt-bindings/pinctrl/qcom,pmic-mpp.h> 12 13 13 14 / { ··· 121 120 122 121 }; 123 122 123 + &blsp_i2c2 { 124 + status = "okay"; 125 + 126 + led-controller@30 { 127 + compatible = "kinetic,ktd2026"; 128 + reg = <0x30>; 129 + #address-cells = <1>; 130 + #size-cells = <0>; 131 + 132 + vin-supply = <&pm8916_l17>; 133 + vio-supply = <&pm8916_l6>; 134 + 135 + pinctrl-0 = <&status_led_default>; 136 + pinctrl-names = "default"; 137 + 138 + multi-led { 139 + color = <LED_COLOR_ID_RGB>; 140 + function = LED_FUNCTION_STATUS; 141 + 142 + #address-cells = <1>; 143 + #size-cells = <0>; 144 + 145 + led@0 { 146 + reg = <0>; 147 + color = <LED_COLOR_ID_RED>; 148 + }; 149 + 150 + led@1 { 151 + reg = <1>; 152 + color = <LED_COLOR_ID_GREEN>; 153 + }; 154 + 155 + led@2 { 156 + reg = <2>; 157 + color = <LED_COLOR_ID_BLUE>; 158 + }; 159 + }; 160 + }; 161 + }; 162 + 124 163 &blsp_i2c3 { 125 164 status = "okay"; 126 165 ··· 225 184 status = "okay"; 226 185 }; 227 186 187 + &pm8916_gpios { 188 + status_led_default: status-led-default-state { 189 + pins = "gpio3"; 190 + function = PMIC_GPIO_FUNC_NORMAL; 191 + power-source = <PM8916_GPIO_VPH>; 192 + bias-disable; 193 + output-high; 194 + }; 195 + }; 196 + 228 197 &pm8916_mpps { 229 198 pwm_out: mpp4-state { 230 199 pins = "mpp4"; ··· 296 245 297 246 &wcnss_iris { 298 247 compatible = "qcom,wcn3620"; 248 + }; 249 + 250 + &wcnss_mem { 251 + status = "okay"; 299 252 }; 300 253 301 254 &tlmm {
+70
arch/arm64/boot/dts/qcom/msm8939-samsung-a7.dts
··· 3 3 /dts-v1/; 4 4 5 5 #include "msm8939-pm8916.dtsi" 6 + #include "msm8916-modem-qdsp6.dtsi" 6 7 7 8 #include <dt-bindings/gpio/gpio.h> 8 9 #include <dt-bindings/input/input.h> 9 10 #include <dt-bindings/interrupt-controller/irq.h> 11 + #include <dt-bindings/sound/apq8016-lpass.h> 10 12 11 13 / { 12 14 model = "Samsung Galaxy A7 (2015)"; ··· 289 287 }; 290 288 }; 291 289 290 + &blsp_i2c2 { 291 + status = "okay"; 292 + 293 + speaker_codec: audio-codec@34 { 294 + compatible = "nxp,tfa9895"; 295 + reg = <0x34>; 296 + vddd-supply = <&pm8916_l5>; 297 + sound-name-prefix = "Speaker"; 298 + #sound-dai-cells = <0>; 299 + }; 300 + }; 301 + 292 302 &blsp_i2c5 { 293 303 status = "okay"; 294 304 ··· 323 309 status = "okay"; 324 310 }; 325 311 312 + /* 313 + * For some reason the speaker amplifier is connected to the second SD line 314 + * (MI2S_2_D1) instead of the first (MI2S_2_D0). This must be configured in the 315 + * device tree, otherwise audio will seemingly play fine on the wrong SD line 316 + * but the speaker stays silent. 317 + * 318 + * When routing audio via QDSP6 (the default) the &lpass node is reserved and 319 + * the definitions from &q6afedai are used. When the modem is disabled audio can 320 + * be alternatively routed directly to the LPASS hardware with reduced latency. 321 + * The definitions for &lpass are here for completeness to simplify changing the 322 + * setup with minor changes to the DT (either manually or with DT overlays). 323 + */ 324 + &lpass { 325 + dai-link@3 { 326 + reg = <MI2S_QUATERNARY>; 327 + qcom,playback-sd-lines = <1>; 328 + }; 329 + }; 330 + 331 + &mpss_mem { 332 + reg = <0x0 0x86800000 0x0 0x5800000>; 333 + }; 334 + 326 335 &pm8916_resin { 327 336 linux,code = <KEY_VOLUMEDOWN>; 328 337 status = "okay"; ··· 355 318 pm8916_l17: l17 { 356 319 regulator-min-microvolt = <2850000>; 357 320 regulator-max-microvolt = <2850000>; 321 + }; 322 + }; 323 + 324 + &q6afedai { 325 + dai@22 { 326 + reg = <QUATERNARY_MI2S_RX>; 327 + qcom,sd-lines = <1>; 358 328 }; 359 329 }; 360 330 ··· 377 333 cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; 378 334 379 335 status = "okay"; 336 + }; 337 + 338 + &sound { 339 + model = "samsung-a2015"; 340 + audio-routing = 341 + "AMIC1", "MIC BIAS External1", 342 + "AMIC2", "MIC BIAS Internal2", 343 + "AMIC3", "MIC BIAS External1"; 344 + 345 + pinctrl-0 = <&cdc_pdm_default &sec_mi2s_default>; 346 + pinctrl-1 = <&cdc_pdm_sleep &sec_mi2s_sleep>; 347 + pinctrl-names = "default", "sleep"; 348 + 349 + sound_link_backend2: backend2-dai-link { 350 + link-name = "Quaternary MI2S"; 351 + 352 + cpu { 353 + sound-dai = <&q6afedai QUATERNARY_MI2S_RX>; 354 + }; 355 + platform { 356 + sound-dai = <&q6routing>; 357 + }; 358 + codec { 359 + sound-dai = <&speaker_codec>; 360 + }; 361 + }; 380 362 }; 381 363 382 364 &usb {
+79
arch/arm64/boot/dts/qcom/msm8939.dtsi
··· 10 10 #include <dt-bindings/interrupt-controller/arm-gic.h> 11 11 #include <dt-bindings/power/qcom-rpmpd.h> 12 12 #include <dt-bindings/reset/qcom,gcc-msm8939.h> 13 + #include <dt-bindings/soc/qcom,apr.h> 13 14 #include <dt-bindings/thermal/thermal.h> 14 15 15 16 / { ··· 1538 1537 #interrupt-cells = <4>; 1539 1538 }; 1540 1539 1540 + bam_dmux_dma: dma-controller@4044000 { 1541 + compatible = "qcom,bam-v1.7.0"; 1542 + reg = <0x04044000 0x19000>; 1543 + interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 1544 + #dma-cells = <1>; 1545 + qcom,ee = <0>; 1546 + 1547 + num-channels = <6>; 1548 + qcom,num-ees = <1>; 1549 + qcom,powered-remotely; 1550 + 1551 + status = "disabled"; 1552 + }; 1553 + 1541 1554 mpss: remoteproc@4080000 { 1542 1555 compatible = "qcom,msm8916-mss-pil"; 1543 1556 reg = <0x04080000 0x100>, <0x04020000 0x040>; ··· 1584 1569 qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>; 1585 1570 status = "disabled"; 1586 1571 1572 + bam_dmux: bam-dmux { 1573 + compatible = "qcom,bam-dmux"; 1574 + 1575 + interrupt-parent = <&hexagon_smsm>; 1576 + interrupts = <1 IRQ_TYPE_EDGE_BOTH>, <11 IRQ_TYPE_EDGE_BOTH>; 1577 + interrupt-names = "pc", "pc-ack"; 1578 + 1579 + qcom,smem-states = <&apps_smsm 1>, <&apps_smsm 11>; 1580 + qcom,smem-state-names = "pc", "pc-ack"; 1581 + 1582 + dmas = <&bam_dmux_dma 4>, <&bam_dmux_dma 5>; 1583 + dma-names = "tx", "rx"; 1584 + 1585 + status = "disabled"; 1586 + }; 1587 + 1587 1588 mba { 1588 1589 memory-region = <&mba_mem>; 1589 1590 }; ··· 1616 1585 qcom,remote-pid = <1>; 1617 1586 1618 1587 label = "hexagon"; 1588 + 1589 + apr: apr { 1590 + compatible = "qcom,apr-v2"; 1591 + qcom,smd-channels = "apr_audio_svc"; 1592 + qcom,domain = <APR_DOMAIN_ADSP>; 1593 + #address-cells = <1>; 1594 + #size-cells = <0>; 1595 + status = "disabled"; 1596 + 1597 + q6core: service@3 { 1598 + compatible = "qcom,q6core"; 1599 + reg = <APR_SVC_ADSP_CORE>; 1600 + }; 1601 + 1602 + q6afe: service@4 { 1603 + compatible = "qcom,q6afe"; 1604 + reg = <APR_SVC_AFE>; 1605 + 1606 + q6afedai: dais { 1607 + compatible = "qcom,q6afe-dais"; 1608 + #address-cells = <1>; 1609 + #size-cells = <0>; 1610 + #sound-dai-cells = <1>; 1611 + }; 1612 + }; 1613 + 1614 + q6asm: service@7 { 1615 + compatible = "qcom,q6asm"; 1616 + reg = <APR_SVC_ASM>; 1617 + 1618 + q6asmdai: dais { 1619 + compatible = "qcom,q6asm-dais"; 1620 + #address-cells = <1>; 1621 + #size-cells = <0>; 1622 + #sound-dai-cells = <1>; 1623 + }; 1624 + }; 1625 + 1626 + q6adm: service@8 { 1627 + compatible = "qcom,q6adm"; 1628 + reg = <APR_SVC_ADM>; 1629 + 1630 + q6routing: routing { 1631 + compatible = "qcom,q6adm-routing"; 1632 + #sound-dai-cells = <0>; 1633 + }; 1634 + }; 1635 + }; 1619 1636 }; 1620 1637 }; 1621 1638
+1 -1
arch/arm64/boot/dts/qcom/pm7250b.dtsi
··· 148 148 status = "disabled"; 149 149 }; 150 150 151 - pm7250b_gpios: pinctrl@c000 { 151 + pm7250b_gpios: gpio@c000 { 152 152 compatible = "qcom,pm7250b-gpio", "qcom,spmi-gpio"; 153 153 reg = <0xc000>; 154 154 gpio-controller;
-1
arch/arm64/boot/dts/qcom/qrb4210-rb2.dts
··· 518 518 519 519 &usb_dwc3 { 520 520 maximum-speed = "super-speed"; 521 - dr_mode = "peripheral"; 522 521 }; 523 522 524 523 &usb_hsphy {
+1106
arch/arm64/boot/dts/qcom/sa8775p.dtsi
··· 1487 1487 }; 1488 1488 }; 1489 1489 1490 + rng: rng@10d2000 { 1491 + compatible = "qcom,sa8775p-trng", "qcom,trng"; 1492 + reg = <0 0x010d2000 0 0x1000>; 1493 + }; 1494 + 1490 1495 ufs_mem_hc: ufs@1d84000 { 1491 1496 compatible = "qcom,sa8775p-ufshc", "qcom,ufshc", "jedec,ufs-2.0"; 1492 1497 reg = <0x0 0x01d84000 0x0 0x3000>; ··· 1915 1910 interrupt-controller; 1916 1911 }; 1917 1912 1913 + tsens2: thermal-sensor@c251000 { 1914 + compatible = "qcom,sa8775p-tsens", "qcom,tsens-v2"; 1915 + reg = <0x0 0x0c251000 0x0 0x1ff>, 1916 + <0x0 0x0c224000 0x0 0x8>; 1917 + interrupts = <GIC_SPI 572 IRQ_TYPE_LEVEL_HIGH>, 1918 + <GIC_SPI 609 IRQ_TYPE_LEVEL_HIGH>; 1919 + #qcom,sensors = <13>; 1920 + interrupt-names = "uplow", "critical"; 1921 + #thermal-sensor-cells = <1>; 1922 + }; 1923 + 1924 + tsens3: thermal-sensor@c252000 { 1925 + compatible = "qcom,sa8775p-tsens", "qcom,tsens-v2"; 1926 + reg = <0x0 0x0c252000 0x0 0x1ff>, 1927 + <0x0 0x0c225000 0x0 0x8>; 1928 + interrupts = <GIC_SPI 573 IRQ_TYPE_LEVEL_HIGH>, 1929 + <GIC_SPI 610 IRQ_TYPE_LEVEL_HIGH>; 1930 + #qcom,sensors = <13>; 1931 + interrupt-names = "uplow", "critical"; 1932 + #thermal-sensor-cells = <1>; 1933 + }; 1934 + 1935 + tsens0: thermal-sensor@c263000 { 1936 + compatible = "qcom,sa8775p-tsens", "qcom,tsens-v2"; 1937 + reg = <0x0 0x0c263000 0x0 0x1ff>, 1938 + <0x0 0x0c222000 0x0 0x8>; 1939 + interrupts = <GIC_SPI 506 IRQ_TYPE_LEVEL_HIGH>, 1940 + <GIC_SPI 508 IRQ_TYPE_LEVEL_HIGH>; 1941 + #qcom,sensors = <12>; 1942 + interrupt-names = "uplow", "critical"; 1943 + #thermal-sensor-cells = <1>; 1944 + }; 1945 + 1946 + tsens1: thermal-sensor@c265000 { 1947 + compatible = "qcom,sa8775p-tsens", "qcom,tsens-v2"; 1948 + reg = <0x0 0x0c265000 0x0 0x1ff>, 1949 + <0x0 0x0c223000 0x0 0x8>; 1950 + interrupts = <GIC_SPI 507 IRQ_TYPE_LEVEL_HIGH>, 1951 + <GIC_SPI 509 IRQ_TYPE_LEVEL_HIGH>; 1952 + #qcom,sensors = <12>; 1953 + interrupt-names = "uplow", "critical"; 1954 + #thermal-sensor-cells = <1>; 1955 + }; 1956 + 1918 1957 aoss_qmp: power-management@c300000 { 1919 1958 compatible = "qcom,sa8775p-aoss-qmp", "qcom,aoss-qmp"; 1920 1959 reg = <0x0 0x0c300000 0x0 0x400>; ··· 1967 1918 IRQ_TYPE_EDGE_RISING>; 1968 1919 mboxes = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP>; 1969 1920 #clock-cells = <0>; 1921 + }; 1922 + 1923 + sram@c3f0000 { 1924 + compatible = "qcom,rpmh-stats"; 1925 + reg = <0x0 0x0c3f0000 0x0 0x400>; 1970 1926 }; 1971 1927 1972 1928 spmi_bus: spmi@c440000 { ··· 2452 2398 tx-fifo-depth = <16384>; 2453 2399 2454 2400 status = "disabled"; 2401 + }; 2402 + }; 2403 + 2404 + thermal-zones { 2405 + aoss-0-thermal { 2406 + polling-delay-passive = <0>; 2407 + polling-delay = <0>; 2408 + 2409 + thermal-sensors = <&tsens0 0>; 2410 + 2411 + trips { 2412 + trip-point0 { 2413 + temperature = <105000>; 2414 + hysteresis = <5000>; 2415 + type = "passive"; 2416 + }; 2417 + 2418 + trip-point1 { 2419 + temperature = <115000>; 2420 + hysteresis = <5000>; 2421 + type = "passive"; 2422 + }; 2423 + }; 2424 + }; 2425 + 2426 + cpu-0-0-0-thermal { 2427 + polling-delay-passive = <10>; 2428 + polling-delay = <0>; 2429 + 2430 + thermal-sensors = <&tsens0 1>; 2431 + 2432 + trips { 2433 + trip-point0 { 2434 + temperature = <105000>; 2435 + hysteresis = <5000>; 2436 + type = "passive"; 2437 + }; 2438 + 2439 + trip-point1 { 2440 + temperature = <115000>; 2441 + hysteresis = <5000>; 2442 + type = "passive"; 2443 + }; 2444 + }; 2445 + }; 2446 + 2447 + cpu-0-1-0-thermal { 2448 + polling-delay-passive = <10>; 2449 + polling-delay = <0>; 2450 + 2451 + thermal-sensors = <&tsens0 2>; 2452 + 2453 + trips { 2454 + trip-point0 { 2455 + temperature = <105000>; 2456 + hysteresis = <5000>; 2457 + type = "passive"; 2458 + }; 2459 + 2460 + trip-point1 { 2461 + temperature = <115000>; 2462 + hysteresis = <5000>; 2463 + type = "passive"; 2464 + }; 2465 + }; 2466 + }; 2467 + 2468 + cpu-0-2-0-thermal { 2469 + polling-delay-passive = <10>; 2470 + polling-delay = <0>; 2471 + 2472 + thermal-sensors = <&tsens0 3>; 2473 + 2474 + trips { 2475 + trip-point0 { 2476 + temperature = <105000>; 2477 + hysteresis = <5000>; 2478 + type = "passive"; 2479 + }; 2480 + 2481 + trip-point1 { 2482 + temperature = <115000>; 2483 + hysteresis = <5000>; 2484 + type = "passive"; 2485 + }; 2486 + }; 2487 + }; 2488 + 2489 + cpu-0-3-0-thermal { 2490 + polling-delay-passive = <10>; 2491 + polling-delay = <0>; 2492 + 2493 + thermal-sensors = <&tsens0 4>; 2494 + 2495 + trips { 2496 + trip-point0 { 2497 + temperature = <105000>; 2498 + hysteresis = <5000>; 2499 + type = "passive"; 2500 + }; 2501 + 2502 + trip-point1 { 2503 + temperature = <115000>; 2504 + hysteresis = <5000>; 2505 + type = "passive"; 2506 + }; 2507 + }; 2508 + }; 2509 + 2510 + gpuss-0-thermal { 2511 + polling-delay-passive = <10>; 2512 + polling-delay = <0>; 2513 + 2514 + thermal-sensors = <&tsens0 5>; 2515 + 2516 + trips { 2517 + trip-point0 { 2518 + temperature = <105000>; 2519 + hysteresis = <5000>; 2520 + type = "passive"; 2521 + }; 2522 + 2523 + trip-point1 { 2524 + temperature = <115000>; 2525 + hysteresis = <5000>; 2526 + type = "passive"; 2527 + }; 2528 + }; 2529 + }; 2530 + 2531 + gpuss-1-thermal { 2532 + polling-delay-passive = <10>; 2533 + polling-delay = <0>; 2534 + 2535 + thermal-sensors = <&tsens0 6>; 2536 + 2537 + trips { 2538 + trip-point0 { 2539 + temperature = <105000>; 2540 + hysteresis = <5000>; 2541 + type = "passive"; 2542 + }; 2543 + 2544 + trip-point1 { 2545 + temperature = <115000>; 2546 + hysteresis = <5000>; 2547 + type = "passive"; 2548 + }; 2549 + }; 2550 + }; 2551 + 2552 + gpuss-2-thermal { 2553 + polling-delay-passive = <10>; 2554 + polling-delay = <0>; 2555 + 2556 + thermal-sensors = <&tsens0 7>; 2557 + 2558 + trips { 2559 + trip-point0 { 2560 + temperature = <105000>; 2561 + hysteresis = <5000>; 2562 + type = "passive"; 2563 + }; 2564 + 2565 + trip-point1 { 2566 + temperature = <115000>; 2567 + hysteresis = <5000>; 2568 + type = "passive"; 2569 + }; 2570 + }; 2571 + }; 2572 + 2573 + audio-thermal { 2574 + polling-delay-passive = <0>; 2575 + polling-delay = <0>; 2576 + 2577 + thermal-sensors = <&tsens0 8>; 2578 + 2579 + trips { 2580 + trip-point0 { 2581 + temperature = <105000>; 2582 + hysteresis = <5000>; 2583 + type = "passive"; 2584 + }; 2585 + 2586 + trip-point1 { 2587 + temperature = <115000>; 2588 + hysteresis = <5000>; 2589 + type = "passive"; 2590 + }; 2591 + }; 2592 + }; 2593 + 2594 + camss-0-thermal { 2595 + polling-delay-passive = <0>; 2596 + polling-delay = <0>; 2597 + 2598 + thermal-sensors = <&tsens0 9>; 2599 + 2600 + trips { 2601 + trip-point0 { 2602 + temperature = <105000>; 2603 + hysteresis = <5000>; 2604 + type = "passive"; 2605 + }; 2606 + 2607 + trip-point1 { 2608 + temperature = <115000>; 2609 + hysteresis = <5000>; 2610 + type = "passive"; 2611 + }; 2612 + }; 2613 + }; 2614 + 2615 + pcie-0-thermal { 2616 + polling-delay-passive = <0>; 2617 + polling-delay = <0>; 2618 + 2619 + thermal-sensors = <&tsens0 10>; 2620 + 2621 + trips { 2622 + trip-point0 { 2623 + temperature = <105000>; 2624 + hysteresis = <5000>; 2625 + type = "passive"; 2626 + }; 2627 + 2628 + trip-point1 { 2629 + temperature = <115000>; 2630 + hysteresis = <5000>; 2631 + type = "passive"; 2632 + }; 2633 + }; 2634 + }; 2635 + 2636 + cpuss-0-0-thermal { 2637 + polling-delay-passive = <0>; 2638 + polling-delay = <0>; 2639 + 2640 + thermal-sensors = <&tsens0 11>; 2641 + 2642 + trips { 2643 + trip-point0 { 2644 + temperature = <105000>; 2645 + hysteresis = <5000>; 2646 + type = "passive"; 2647 + }; 2648 + 2649 + trip-point1 { 2650 + temperature = <115000>; 2651 + hysteresis = <5000>; 2652 + type = "passive"; 2653 + }; 2654 + }; 2655 + }; 2656 + 2657 + aoss-1-thermal { 2658 + polling-delay-passive = <0>; 2659 + polling-delay = <0>; 2660 + 2661 + thermal-sensors = <&tsens1 0>; 2662 + 2663 + trips { 2664 + trip-point0 { 2665 + temperature = <105000>; 2666 + hysteresis = <5000>; 2667 + type = "passive"; 2668 + }; 2669 + 2670 + trip-point1 { 2671 + temperature = <115000>; 2672 + hysteresis = <5000>; 2673 + type = "passive"; 2674 + }; 2675 + }; 2676 + }; 2677 + 2678 + cpu-0-0-1-thermal { 2679 + polling-delay-passive = <10>; 2680 + polling-delay = <0>; 2681 + 2682 + thermal-sensors = <&tsens1 1>; 2683 + 2684 + trips { 2685 + trip-point0 { 2686 + temperature = <105000>; 2687 + hysteresis = <5000>; 2688 + type = "passive"; 2689 + }; 2690 + 2691 + trip-point1 { 2692 + temperature = <115000>; 2693 + hysteresis = <5000>; 2694 + type = "passive"; 2695 + }; 2696 + }; 2697 + }; 2698 + 2699 + cpu-0-1-1-thermal { 2700 + polling-delay-passive = <10>; 2701 + polling-delay = <0>; 2702 + 2703 + thermal-sensors = <&tsens1 2>; 2704 + 2705 + trips { 2706 + trip-point0 { 2707 + temperature = <105000>; 2708 + hysteresis = <5000>; 2709 + type = "passive"; 2710 + }; 2711 + 2712 + trip-point1 { 2713 + temperature = <115000>; 2714 + hysteresis = <5000>; 2715 + type = "passive"; 2716 + }; 2717 + }; 2718 + }; 2719 + 2720 + cpu-0-2-1-thermal { 2721 + polling-delay-passive = <10>; 2722 + polling-delay = <0>; 2723 + 2724 + thermal-sensors = <&tsens1 3>; 2725 + 2726 + trips { 2727 + trip-point0 { 2728 + temperature = <105000>; 2729 + hysteresis = <5000>; 2730 + type = "passive"; 2731 + }; 2732 + 2733 + trip-point1 { 2734 + temperature = <115000>; 2735 + hysteresis = <5000>; 2736 + type = "passive"; 2737 + }; 2738 + }; 2739 + }; 2740 + 2741 + cpu-0-3-1-thermal { 2742 + polling-delay-passive = <10>; 2743 + polling-delay = <0>; 2744 + 2745 + thermal-sensors = <&tsens1 4>; 2746 + 2747 + trips { 2748 + trip-point0 { 2749 + temperature = <105000>; 2750 + hysteresis = <5000>; 2751 + type = "passive"; 2752 + }; 2753 + 2754 + trip-point1 { 2755 + temperature = <115000>; 2756 + hysteresis = <5000>; 2757 + type = "passive"; 2758 + }; 2759 + }; 2760 + }; 2761 + 2762 + gpuss-3-thermal { 2763 + polling-delay-passive = <10>; 2764 + polling-delay = <0>; 2765 + 2766 + thermal-sensors = <&tsens1 5>; 2767 + 2768 + trips { 2769 + trip-point0 { 2770 + temperature = <105000>; 2771 + hysteresis = <5000>; 2772 + type = "passive"; 2773 + }; 2774 + 2775 + trip-point1 { 2776 + temperature = <115000>; 2777 + hysteresis = <5000>; 2778 + type = "passive"; 2779 + }; 2780 + }; 2781 + }; 2782 + 2783 + gpuss-4-thermal { 2784 + polling-delay-passive = <10>; 2785 + polling-delay = <0>; 2786 + 2787 + thermal-sensors = <&tsens1 6>; 2788 + 2789 + trips { 2790 + trip-point0 { 2791 + temperature = <105000>; 2792 + hysteresis = <5000>; 2793 + type = "passive"; 2794 + }; 2795 + 2796 + trip-point1 { 2797 + temperature = <115000>; 2798 + hysteresis = <5000>; 2799 + type = "passive"; 2800 + }; 2801 + }; 2802 + }; 2803 + 2804 + gpuss-5-thermal { 2805 + polling-delay-passive = <10>; 2806 + polling-delay = <0>; 2807 + 2808 + thermal-sensors = <&tsens1 7>; 2809 + 2810 + trips { 2811 + trip-point0 { 2812 + temperature = <105000>; 2813 + hysteresis = <5000>; 2814 + type = "passive"; 2815 + }; 2816 + 2817 + trip-point1 { 2818 + temperature = <115000>; 2819 + hysteresis = <5000>; 2820 + type = "passive"; 2821 + }; 2822 + }; 2823 + }; 2824 + 2825 + video-thermal { 2826 + polling-delay-passive = <0>; 2827 + polling-delay = <0>; 2828 + 2829 + thermal-sensors = <&tsens1 8>; 2830 + 2831 + trips { 2832 + trip-point0 { 2833 + temperature = <105000>; 2834 + hysteresis = <5000>; 2835 + type = "passive"; 2836 + }; 2837 + 2838 + trip-point1 { 2839 + temperature = <115000>; 2840 + hysteresis = <5000>; 2841 + type = "passive"; 2842 + }; 2843 + }; 2844 + }; 2845 + 2846 + camss-1-thermal { 2847 + polling-delay-passive = <0>; 2848 + polling-delay = <0>; 2849 + 2850 + thermal-sensors = <&tsens1 9>; 2851 + 2852 + trips { 2853 + trip-point0 { 2854 + temperature = <105000>; 2855 + hysteresis = <5000>; 2856 + type = "passive"; 2857 + }; 2858 + 2859 + trip-point1 { 2860 + temperature = <115000>; 2861 + hysteresis = <5000>; 2862 + type = "passive"; 2863 + }; 2864 + }; 2865 + }; 2866 + 2867 + pcie-1-thermal { 2868 + polling-delay-passive = <0>; 2869 + polling-delay = <0>; 2870 + 2871 + thermal-sensors = <&tsens1 10>; 2872 + 2873 + trips { 2874 + trip-point0 { 2875 + temperature = <105000>; 2876 + hysteresis = <5000>; 2877 + type = "passive"; 2878 + }; 2879 + 2880 + trip-point1 { 2881 + temperature = <115000>; 2882 + hysteresis = <5000>; 2883 + type = "passive"; 2884 + }; 2885 + }; 2886 + }; 2887 + 2888 + cpuss-0-1-thermal { 2889 + polling-delay-passive = <0>; 2890 + polling-delay = <0>; 2891 + 2892 + thermal-sensors = <&tsens1 11>; 2893 + 2894 + trips { 2895 + trip-point0 { 2896 + temperature = <105000>; 2897 + hysteresis = <5000>; 2898 + type = "passive"; 2899 + }; 2900 + 2901 + trip-point1 { 2902 + temperature = <115000>; 2903 + hysteresis = <5000>; 2904 + type = "passive"; 2905 + }; 2906 + }; 2907 + }; 2908 + 2909 + aoss-2-thermal { 2910 + polling-delay-passive = <0>; 2911 + polling-delay = <0>; 2912 + 2913 + thermal-sensors = <&tsens2 0>; 2914 + 2915 + trips { 2916 + trip-point0 { 2917 + temperature = <105000>; 2918 + hysteresis = <5000>; 2919 + type = "passive"; 2920 + }; 2921 + 2922 + trip-point1 { 2923 + temperature = <115000>; 2924 + hysteresis = <5000>; 2925 + type = "passive"; 2926 + }; 2927 + }; 2928 + }; 2929 + 2930 + cpu-1-0-0-thermal { 2931 + polling-delay-passive = <10>; 2932 + polling-delay = <0>; 2933 + 2934 + thermal-sensors = <&tsens2 1>; 2935 + 2936 + trips { 2937 + trip-point0 { 2938 + temperature = <105000>; 2939 + hysteresis = <5000>; 2940 + type = "passive"; 2941 + }; 2942 + 2943 + trip-point1 { 2944 + temperature = <115000>; 2945 + hysteresis = <5000>; 2946 + type = "passive"; 2947 + }; 2948 + }; 2949 + }; 2950 + 2951 + cpu-1-1-0-thermal { 2952 + polling-delay-passive = <10>; 2953 + polling-delay = <0>; 2954 + 2955 + thermal-sensors = <&tsens2 2>; 2956 + 2957 + trips { 2958 + trip-point0 { 2959 + temperature = <105000>; 2960 + hysteresis = <5000>; 2961 + type = "passive"; 2962 + }; 2963 + 2964 + trip-point1 { 2965 + temperature = <115000>; 2966 + hysteresis = <5000>; 2967 + type = "passive"; 2968 + }; 2969 + }; 2970 + }; 2971 + 2972 + cpu-1-2-0-thermal { 2973 + polling-delay-passive = <10>; 2974 + polling-delay = <0>; 2975 + 2976 + thermal-sensors = <&tsens2 3>; 2977 + 2978 + trips { 2979 + trip-point0 { 2980 + temperature = <105000>; 2981 + hysteresis = <5000>; 2982 + type = "passive"; 2983 + }; 2984 + 2985 + trip-point1 { 2986 + temperature = <115000>; 2987 + hysteresis = <5000>; 2988 + type = "passive"; 2989 + }; 2990 + }; 2991 + }; 2992 + 2993 + cpu-1-3-0-thermal { 2994 + polling-delay-passive = <10>; 2995 + polling-delay = <0>; 2996 + 2997 + thermal-sensors = <&tsens2 4>; 2998 + 2999 + trips { 3000 + trip-point0 { 3001 + temperature = <105000>; 3002 + hysteresis = <5000>; 3003 + type = "passive"; 3004 + }; 3005 + 3006 + trip-point1 { 3007 + temperature = <115000>; 3008 + hysteresis = <5000>; 3009 + type = "passive"; 3010 + }; 3011 + }; 3012 + }; 3013 + 3014 + nsp-0-0-0-thermal { 3015 + polling-delay-passive = <10>; 3016 + polling-delay = <0>; 3017 + 3018 + thermal-sensors = <&tsens2 5>; 3019 + 3020 + trips { 3021 + trip-point0 { 3022 + temperature = <105000>; 3023 + hysteresis = <5000>; 3024 + type = "passive"; 3025 + }; 3026 + 3027 + trip-point1 { 3028 + temperature = <115000>; 3029 + hysteresis = <5000>; 3030 + type = "passive"; 3031 + }; 3032 + }; 3033 + }; 3034 + 3035 + nsp-0-1-0-thermal { 3036 + polling-delay-passive = <10>; 3037 + polling-delay = <0>; 3038 + 3039 + thermal-sensors = <&tsens2 6>; 3040 + 3041 + trips { 3042 + trip-point0 { 3043 + temperature = <105000>; 3044 + hysteresis = <5000>; 3045 + type = "passive"; 3046 + }; 3047 + 3048 + trip-point1 { 3049 + temperature = <115000>; 3050 + hysteresis = <5000>; 3051 + type = "passive"; 3052 + }; 3053 + }; 3054 + }; 3055 + 3056 + nsp-0-2-0-thermal { 3057 + polling-delay-passive = <10>; 3058 + polling-delay = <0>; 3059 + 3060 + thermal-sensors = <&tsens2 7>; 3061 + 3062 + trips { 3063 + trip-point0 { 3064 + temperature = <105000>; 3065 + hysteresis = <5000>; 3066 + type = "passive"; 3067 + }; 3068 + 3069 + trip-point1 { 3070 + temperature = <115000>; 3071 + hysteresis = <5000>; 3072 + type = "passive"; 3073 + }; 3074 + }; 3075 + }; 3076 + 3077 + nsp-1-0-0-thermal { 3078 + polling-delay-passive = <10>; 3079 + polling-delay = <0>; 3080 + 3081 + thermal-sensors = <&tsens2 8>; 3082 + 3083 + trips { 3084 + trip-point0 { 3085 + temperature = <105000>; 3086 + hysteresis = <5000>; 3087 + type = "passive"; 3088 + }; 3089 + 3090 + trip-point1 { 3091 + temperature = <115000>; 3092 + hysteresis = <5000>; 3093 + type = "passive"; 3094 + }; 3095 + }; 3096 + }; 3097 + 3098 + nsp-1-1-0-thermal { 3099 + polling-delay-passive = <10>; 3100 + polling-delay = <0>; 3101 + 3102 + thermal-sensors = <&tsens2 9>; 3103 + 3104 + trips { 3105 + trip-point0 { 3106 + temperature = <105000>; 3107 + hysteresis = <5000>; 3108 + type = "passive"; 3109 + }; 3110 + 3111 + trip-point1 { 3112 + temperature = <115000>; 3113 + hysteresis = <5000>; 3114 + type = "passive"; 3115 + }; 3116 + }; 3117 + }; 3118 + 3119 + nsp-1-2-0-thermal { 3120 + polling-delay-passive = <10>; 3121 + polling-delay = <0>; 3122 + 3123 + thermal-sensors = <&tsens2 10>; 3124 + 3125 + trips { 3126 + trip-point0 { 3127 + temperature = <105000>; 3128 + hysteresis = <5000>; 3129 + type = "passive"; 3130 + }; 3131 + 3132 + trip-point1 { 3133 + temperature = <115000>; 3134 + hysteresis = <5000>; 3135 + type = "passive"; 3136 + }; 3137 + }; 3138 + }; 3139 + 3140 + ddrss-0-thermal { 3141 + polling-delay-passive = <0>; 3142 + polling-delay = <0>; 3143 + 3144 + thermal-sensors = <&tsens2 11>; 3145 + 3146 + trips { 3147 + trip-point0 { 3148 + temperature = <105000>; 3149 + hysteresis = <5000>; 3150 + type = "passive"; 3151 + }; 3152 + 3153 + trip-point1 { 3154 + temperature = <115000>; 3155 + hysteresis = <5000>; 3156 + type = "passive"; 3157 + }; 3158 + }; 3159 + }; 3160 + 3161 + cpuss-1-0-thermal { 3162 + polling-delay-passive = <0>; 3163 + polling-delay = <0>; 3164 + 3165 + thermal-sensors = <&tsens2 12>; 3166 + 3167 + trips { 3168 + trip-point0 { 3169 + temperature = <105000>; 3170 + hysteresis = <5000>; 3171 + type = "passive"; 3172 + }; 3173 + 3174 + trip-point1 { 3175 + temperature = <115000>; 3176 + hysteresis = <5000>; 3177 + type = "passive"; 3178 + }; 3179 + }; 3180 + }; 3181 + 3182 + aoss-3-thermal { 3183 + polling-delay-passive = <0>; 3184 + polling-delay = <0>; 3185 + 3186 + thermal-sensors = <&tsens3 0>; 3187 + 3188 + trips { 3189 + trip-point0 { 3190 + temperature = <105000>; 3191 + hysteresis = <5000>; 3192 + type = "passive"; 3193 + }; 3194 + 3195 + trip-point1 { 3196 + temperature = <115000>; 3197 + hysteresis = <5000>; 3198 + type = "passive"; 3199 + }; 3200 + }; 3201 + }; 3202 + 3203 + cpu-1-0-1-thermal { 3204 + polling-delay-passive = <10>; 3205 + polling-delay = <0>; 3206 + 3207 + thermal-sensors = <&tsens3 1>; 3208 + 3209 + trips { 3210 + trip-point0 { 3211 + temperature = <105000>; 3212 + hysteresis = <5000>; 3213 + type = "passive"; 3214 + }; 3215 + 3216 + trip-point1 { 3217 + temperature = <115000>; 3218 + hysteresis = <5000>; 3219 + type = "passive"; 3220 + }; 3221 + }; 3222 + }; 3223 + 3224 + cpu-1-1-1-thermal { 3225 + polling-delay-passive = <10>; 3226 + polling-delay = <0>; 3227 + 3228 + thermal-sensors = <&tsens3 2>; 3229 + 3230 + trips { 3231 + trip-point0 { 3232 + temperature = <105000>; 3233 + hysteresis = <5000>; 3234 + type = "passive"; 3235 + }; 3236 + 3237 + trip-point1 { 3238 + temperature = <115000>; 3239 + hysteresis = <5000>; 3240 + type = "passive"; 3241 + }; 3242 + }; 3243 + }; 3244 + 3245 + cpu-1-2-1-thermal { 3246 + polling-delay-passive = <10>; 3247 + polling-delay = <0>; 3248 + 3249 + thermal-sensors = <&tsens3 3>; 3250 + 3251 + trips { 3252 + trip-point0 { 3253 + temperature = <105000>; 3254 + hysteresis = <5000>; 3255 + type = "passive"; 3256 + }; 3257 + 3258 + trip-point1 { 3259 + temperature = <115000>; 3260 + hysteresis = <5000>; 3261 + type = "passive"; 3262 + }; 3263 + }; 3264 + }; 3265 + 3266 + cpu-1-3-1-thermal { 3267 + polling-delay-passive = <10>; 3268 + polling-delay = <0>; 3269 + 3270 + thermal-sensors = <&tsens3 4>; 3271 + 3272 + trips { 3273 + trip-point0 { 3274 + temperature = <105000>; 3275 + hysteresis = <5000>; 3276 + type = "passive"; 3277 + }; 3278 + 3279 + trip-point1 { 3280 + temperature = <115000>; 3281 + hysteresis = <5000>; 3282 + type = "passive"; 3283 + }; 3284 + }; 3285 + }; 3286 + 3287 + nsp-0-0-1-thermal { 3288 + polling-delay-passive = <10>; 3289 + polling-delay = <0>; 3290 + 3291 + thermal-sensors = <&tsens3 5>; 3292 + 3293 + trips { 3294 + trip-point0 { 3295 + temperature = <105000>; 3296 + hysteresis = <5000>; 3297 + type = "passive"; 3298 + }; 3299 + 3300 + trip-point1 { 3301 + temperature = <115000>; 3302 + hysteresis = <5000>; 3303 + type = "passive"; 3304 + }; 3305 + }; 3306 + }; 3307 + 3308 + nsp-0-1-1-thermal { 3309 + polling-delay-passive = <10>; 3310 + polling-delay = <0>; 3311 + 3312 + thermal-sensors = <&tsens3 6>; 3313 + 3314 + trips { 3315 + trip-point0 { 3316 + temperature = <105000>; 3317 + hysteresis = <5000>; 3318 + type = "passive"; 3319 + }; 3320 + 3321 + trip-point1 { 3322 + temperature = <115000>; 3323 + hysteresis = <5000>; 3324 + type = "passive"; 3325 + }; 3326 + }; 3327 + }; 3328 + 3329 + nsp-0-2-1-thermal { 3330 + polling-delay-passive = <10>; 3331 + polling-delay = <0>; 3332 + 3333 + thermal-sensors = <&tsens3 7>; 3334 + 3335 + trips { 3336 + trip-point0 { 3337 + temperature = <105000>; 3338 + hysteresis = <5000>; 3339 + type = "passive"; 3340 + }; 3341 + 3342 + trip-point1 { 3343 + temperature = <115000>; 3344 + hysteresis = <5000>; 3345 + type = "passive"; 3346 + }; 3347 + }; 3348 + }; 3349 + 3350 + nsp-1-0-1-thermal { 3351 + polling-delay-passive = <10>; 3352 + polling-delay = <0>; 3353 + 3354 + thermal-sensors = <&tsens3 8>; 3355 + 3356 + trips { 3357 + trip-point0 { 3358 + temperature = <105000>; 3359 + hysteresis = <5000>; 3360 + type = "passive"; 3361 + }; 3362 + 3363 + trip-point1 { 3364 + temperature = <115000>; 3365 + hysteresis = <5000>; 3366 + type = "passive"; 3367 + }; 3368 + }; 3369 + }; 3370 + 3371 + nsp-1-1-1-thermal { 3372 + polling-delay-passive = <10>; 3373 + polling-delay = <0>; 3374 + 3375 + thermal-sensors = <&tsens3 9>; 3376 + 3377 + trips { 3378 + trip-point0 { 3379 + temperature = <105000>; 3380 + hysteresis = <5000>; 3381 + type = "passive"; 3382 + }; 3383 + 3384 + trip-point1 { 3385 + temperature = <115000>; 3386 + hysteresis = <5000>; 3387 + type = "passive"; 3388 + }; 3389 + }; 3390 + }; 3391 + 3392 + nsp-1-2-1-thermal { 3393 + polling-delay-passive = <10>; 3394 + polling-delay = <0>; 3395 + 3396 + thermal-sensors = <&tsens3 10>; 3397 + 3398 + trips { 3399 + trip-point0 { 3400 + temperature = <105000>; 3401 + hysteresis = <5000>; 3402 + type = "passive"; 3403 + }; 3404 + 3405 + trip-point1 { 3406 + temperature = <115000>; 3407 + hysteresis = <5000>; 3408 + type = "passive"; 3409 + }; 3410 + }; 3411 + }; 3412 + 3413 + ddrss-1-thermal { 3414 + polling-delay-passive = <0>; 3415 + polling-delay = <0>; 3416 + 3417 + thermal-sensors = <&tsens3 11>; 3418 + 3419 + trips { 3420 + trip-point0 { 3421 + temperature = <105000>; 3422 + hysteresis = <5000>; 3423 + type = "passive"; 3424 + }; 3425 + 3426 + trip-point1 { 3427 + temperature = <115000>; 3428 + hysteresis = <5000>; 3429 + type = "passive"; 3430 + }; 3431 + }; 3432 + }; 3433 + 3434 + cpuss-1-1-thermal { 3435 + polling-delay-passive = <0>; 3436 + polling-delay = <0>; 3437 + 3438 + thermal-sensors = <&tsens3 12>; 3439 + 3440 + trips { 3441 + trip-point0 { 3442 + temperature = <105000>; 3443 + hysteresis = <5000>; 3444 + type = "passive"; 3445 + }; 3446 + 3447 + trip-point1 { 3448 + temperature = <115000>; 3449 + hysteresis = <5000>; 3450 + type = "passive"; 3451 + }; 3452 + }; 2455 3453 }; 2456 3454 }; 2457 3455
+167
arch/arm64/boot/dts/qcom/sc7280.dtsi
··· 2034 2034 }; 2035 2035 }; 2036 2036 2037 + rng: rng@10d3000 { 2038 + compatible = "qcom,sc7280-trng", "qcom,trng"; 2039 + reg = <0 0x010d3000 0 0x1000>; 2040 + }; 2041 + 2037 2042 cnoc2: interconnect@1500000 { 2038 2043 reg = <0 0x01500000 0 0x1000>; 2039 2044 compatible = "qcom,sc7280-cnoc2"; ··· 3404 3399 3405 3400 #clock-cells = <1>; 3406 3401 #phy-cells = <1>; 3402 + 3403 + ports { 3404 + #address-cells = <1>; 3405 + #size-cells = <0>; 3406 + 3407 + port@0 { 3408 + reg = <0>; 3409 + 3410 + usb_dp_qmpphy_out: endpoint { 3411 + }; 3412 + }; 3413 + 3414 + port@1 { 3415 + reg = <1>; 3416 + 3417 + usb_dp_qmpphy_usb_ss_in: endpoint { 3418 + }; 3419 + }; 3420 + 3421 + port@2 { 3422 + reg = <2>; 3423 + 3424 + usb_dp_qmpphy_dp_in: endpoint { 3425 + }; 3426 + }; 3427 + }; 3407 3428 }; 3408 3429 3409 3430 usb_2: usb@8cf8800 { ··· 3822 3791 #clock-cells = <1>; 3823 3792 #reset-cells = <1>; 3824 3793 #power-domain-cells = <1>; 3794 + }; 3795 + 3796 + cci0: cci@ac4a000 { 3797 + compatible = "qcom,sc7280-cci", "qcom,msm8996-cci"; 3798 + reg = <0 0x0ac4a000 0 0x1000>; 3799 + interrupts = <GIC_SPI 460 IRQ_TYPE_EDGE_RISING>; 3800 + power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>; 3801 + 3802 + clocks = <&camcc CAM_CC_CAMNOC_AXI_CLK>, 3803 + <&camcc CAM_CC_SLOW_AHB_CLK_SRC>, 3804 + <&camcc CAM_CC_CPAS_AHB_CLK>, 3805 + <&camcc CAM_CC_CCI_0_CLK>, 3806 + <&camcc CAM_CC_CCI_0_CLK_SRC>; 3807 + clock-names = "camnoc_axi", 3808 + "slow_ahb_src", 3809 + "cpas_ahb", 3810 + "cci", 3811 + "cci_src"; 3812 + pinctrl-0 = <&cci0_default &cci1_default>; 3813 + pinctrl-1 = <&cci0_sleep &cci1_sleep>; 3814 + pinctrl-names = "default", "sleep"; 3815 + 3816 + #address-cells = <1>; 3817 + #size-cells = <0>; 3818 + 3819 + status = "disabled"; 3820 + 3821 + cci0_i2c0: i2c-bus@0 { 3822 + reg = <0>; 3823 + clock-frequency = <1000000>; 3824 + #address-cells = <1>; 3825 + #size-cells = <0>; 3826 + }; 3827 + 3828 + cci0_i2c1: i2c-bus@1 { 3829 + reg = <1>; 3830 + clock-frequency = <1000000>; 3831 + #address-cells = <1>; 3832 + #size-cells = <0>; 3833 + }; 3834 + }; 3835 + 3836 + cci1: cci@ac4b000 { 3837 + compatible = "qcom,sc7280-cci", "qcom,msm8996-cci"; 3838 + reg = <0 0x0ac4b000 0 0x1000>; 3839 + interrupts = <GIC_SPI 271 IRQ_TYPE_EDGE_RISING>; 3840 + power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>; 3841 + 3842 + clocks = <&camcc CAM_CC_CAMNOC_AXI_CLK>, 3843 + <&camcc CAM_CC_SLOW_AHB_CLK_SRC>, 3844 + <&camcc CAM_CC_CPAS_AHB_CLK>, 3845 + <&camcc CAM_CC_CCI_1_CLK>, 3846 + <&camcc CAM_CC_CCI_1_CLK_SRC>; 3847 + clock-names = "camnoc_axi", 3848 + "slow_ahb_src", 3849 + "cpas_ahb", 3850 + "cci", 3851 + "cci_src"; 3852 + pinctrl-0 = <&cci2_default &cci3_default>; 3853 + pinctrl-1 = <&cci2_sleep &cci3_sleep>; 3854 + pinctrl-names = "default", "sleep"; 3855 + 3856 + #address-cells = <1>; 3857 + #size-cells = <0>; 3858 + 3859 + status = "disabled"; 3860 + 3861 + cci1_i2c0: i2c-bus@0 { 3862 + reg = <0>; 3863 + clock-frequency = <1000000>; 3864 + #address-cells = <1>; 3865 + #size-cells = <0>; 3866 + }; 3867 + 3868 + cci1_i2c1: i2c-bus@1 { 3869 + reg = <1>; 3870 + clock-frequency = <1000000>; 3871 + #address-cells = <1>; 3872 + #size-cells = <0>; 3873 + }; 3825 3874 }; 3826 3875 3827 3876 camcc: clock-controller@ad00000 { ··· 4408 4297 #interrupt-cells = <2>; 4409 4298 gpio-ranges = <&tlmm 0 0 175>; 4410 4299 wakeup-parent = <&pdc>; 4300 + 4301 + cci0_default: cci0-default-state { 4302 + pins = "gpio69", "gpio70"; 4303 + function = "cci_i2c"; 4304 + drive-strength = <2>; 4305 + bias-pull-up; 4306 + }; 4307 + 4308 + cci0_sleep: cci0-sleep-state { 4309 + pins = "gpio69", "gpio70"; 4310 + function = "cci_i2c"; 4311 + drive-strength = <2>; 4312 + bias-pull-down; 4313 + }; 4314 + 4315 + cci1_default: cci1-default-state { 4316 + pins = "gpio71", "gpio72"; 4317 + function = "cci_i2c"; 4318 + drive-strength = <2>; 4319 + bias-pull-up; 4320 + }; 4321 + 4322 + cci1_sleep: cci1-sleep-state { 4323 + pins = "gpio71", "gpio72"; 4324 + function = "cci_i2c"; 4325 + drive-strength = <2>; 4326 + bias-pull-down; 4327 + }; 4328 + 4329 + cci2_default: cci2-default-state { 4330 + pins = "gpio73", "gpio74"; 4331 + function = "cci_i2c"; 4332 + drive-strength = <2>; 4333 + bias-pull-up; 4334 + }; 4335 + 4336 + cci2_sleep: cci2-sleep-state { 4337 + pins = "gpio73", "gpio74"; 4338 + function = "cci_i2c"; 4339 + drive-strength = <2>; 4340 + bias-pull-down; 4341 + }; 4342 + 4343 + cci3_default: cci3-default-state { 4344 + pins = "gpio75", "gpio76"; 4345 + function = "cci_i2c"; 4346 + drive-strength = <2>; 4347 + bias-pull-up; 4348 + }; 4349 + 4350 + cci3_sleep: cci3-sleep-state { 4351 + pins = "gpio75", "gpio76"; 4352 + function = "cci_i2c"; 4353 + drive-strength = <2>; 4354 + bias-pull-down; 4355 + }; 4411 4356 4412 4357 dp_hot_plug_det: dp-hot-plug-det-state { 4413 4358 pins = "gpio47";
+11
arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
··· 82 82 leds { 83 83 compatible = "gpio-leds"; 84 84 85 + pinctrl-names = "default"; 86 + pinctrl-0 = <&cam_indicator_en>; 87 + 85 88 led-camera-indicator { 86 89 label = "white:camera-indicator"; 87 90 function = LED_FUNCTION_INDICATOR; ··· 604 601 }; 605 602 606 603 &mdss0_dp3_phy { 604 + compatible = "qcom,sc8280xp-edp-phy"; 607 605 vdda-phy-supply = <&vreg_l6b>; 608 606 vdda-pll-supply = <&vreg_l3b>; 609 607 ··· 1279 1275 function = "gpio"; 1280 1276 bias-pull-down; 1281 1277 }; 1278 + }; 1279 + 1280 + cam_indicator_en: cam-indicator-en-state { 1281 + pins = "gpio28"; 1282 + function = "gpio"; 1283 + drive-strength = <2>; 1284 + bias-disable; 1282 1285 }; 1283 1286 1284 1287 edp_reg_en: edp-reg-en-state {
+1 -1
arch/arm64/boot/dts/qcom/sdm670.dtsi
··· 1532 1532 }; 1533 1533 1534 1534 cpufreq_hw: cpufreq@17d43000 { 1535 - compatible = "qcom,cpufreq-hw"; 1535 + compatible = "qcom,sdm670-cpufreq-hw", "qcom,cpufreq-hw"; 1536 1536 reg = <0 0x17d43000 0 0x1400>, <0 0x17d45800 0 0x1400>; 1537 1537 reg-names = "freq-domain0", "freq-domain1"; 1538 1538
+23
arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
··· 8 8 /dts-v1/; 9 9 10 10 #include <dt-bindings/input/linux-event-codes.h> 11 + #include <dt-bindings/leds/common.h> 11 12 #include <dt-bindings/regulator/qcom,rpmh-regulator.h> 12 13 #include <dt-bindings/sound/qcom,q6afe.h> 13 14 #include <dt-bindings/sound/qcom,q6asm.h> ··· 483 482 484 483 &pmi8998_charger { 485 484 status = "okay"; 485 + }; 486 + 487 + &pmi8998_flash { 488 + status = "okay"; 489 + 490 + led-0 { 491 + function = LED_FUNCTION_FLASH; 492 + color = <LED_COLOR_ID_WHITE>; 493 + led-sources = <1>; 494 + led-max-microamp = <500000>; 495 + flash-max-microamp = <1500000>; 496 + flash-max-timeout-us = <1280000>; 497 + }; 498 + 499 + led-1 { 500 + function = LED_FUNCTION_FLASH; 501 + color = <LED_COLOR_ID_YELLOW>; 502 + led-sources = <2>; 503 + led-max-microamp = <500000>; 504 + flash-max-microamp = <1500000>; 505 + flash-max-timeout-us = <1280000>; 506 + }; 486 507 }; 487 508 488 509 &q6afedai {
+22
arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-common.dtsi
··· 355 355 status = "okay"; 356 356 }; 357 357 358 + &pmi8998_flash { 359 + status = "okay"; 360 + 361 + led-0 { 362 + function = LED_FUNCTION_FLASH; 363 + color = <LED_COLOR_ID_WHITE>; 364 + led-sources = <1>; 365 + led-max-microamp = <500000>; 366 + flash-max-microamp = <1500000>; 367 + flash-max-timeout-us = <1280000>; 368 + }; 369 + 370 + led-1 { 371 + function = LED_FUNCTION_FLASH; 372 + color = <LED_COLOR_ID_YELLOW>; 373 + led-sources = <2>; 374 + led-max-microamp = <500000>; 375 + flash-max-microamp = <1500000>; 376 + flash-max-timeout-us = <1280000>; 377 + }; 378 + }; 379 + 358 380 &pm8998_resin { 359 381 linux,code = <KEY_VOLUMEDOWN>; 360 382 status = "okay";
+23 -6
arch/arm64/boot/dts/qcom/sm6375-sony-xperia-murray-pdx225.dts
··· 187 187 status = "okay"; 188 188 }; 189 189 190 + &remoteproc_mss { 191 + firmware-name = "qcom/sm6375/Sony/murray/modem.mbn"; 192 + status = "okay"; 193 + }; 194 + 190 195 &rpm_requests { 191 196 regulators-0 { 192 197 compatible = "qcom,rpm-pm6125-regulators"; ··· 243 238 }; 244 239 245 240 pm6125_l7: l7 { 246 - regulator-min-microvolt = <720000>; 247 - regulator-max-microvolt = <1050000>; 241 + regulator-min-microvolt = <880000>; 242 + regulator-max-microvolt = <880000>; 248 243 }; 249 244 250 245 pm6125_l8: l8 { ··· 311 306 312 307 pm6125_l21: l21 { 313 308 regulator-min-microvolt = <3000000>; 314 - regulator-max-microvolt = <3400000>; 309 + regulator-max-microvolt = <3312000>; 315 310 }; 316 311 317 312 pm6125_l22: l22 { ··· 322 317 323 318 pm6125_l23: l23 { 324 319 regulator-min-microvolt = <3000000>; 325 - regulator-max-microvolt = <3400000>; 320 + regulator-max-microvolt = <3312000>; 326 321 }; 327 322 328 323 pm6125_l24: l24 { ··· 345 340 }; 346 341 347 342 pmr735a_l2: l2 { 348 - regulator-min-microvolt = <352000>; 349 - regulator-max-microvolt = <796000>; 343 + regulator-min-microvolt = <640000>; 344 + regulator-max-microvolt = <640000>; 350 345 }; 351 346 352 347 pmr735a_l3: l3 { ··· 430 425 }; 431 426 432 427 &usb_1_hsphy { 428 + vdda-pll-supply = <&pm6125_l7>; 429 + vdda18-supply = <&pm6125_l10>; 430 + vdda33-supply = <&pmr735a_l7>; 431 + status = "okay"; 432 + }; 433 + 434 + &wifi { 435 + vdd-0.8-cx-mx-supply = <&pmr735a_l2>; 436 + vdd-1.8-xo-supply = <&pm6125_l16>; 437 + vdd-1.3-rfa-supply = <&pm6125_l2>; 438 + vdd-3.3-ch0-supply = <&pm6125_l23>; 439 + vdd-3.3-ch1-supply = <&pm6125_l21>; 433 440 status = "okay"; 434 441 }; 435 442
+43
arch/arm64/boot/dts/qcom/sm6375.dtsi
··· 896 896 drive-strength = <6>; 897 897 bias-disable; 898 898 }; 899 + 900 + qup_uart1_default: qup-uart1-default-state { 901 + cts-pins { 902 + pins = "gpio61"; 903 + function = "qup01"; 904 + drive-strength = <2>; 905 + bias-pull-down; 906 + }; 907 + 908 + rts-pins { 909 + pins = "gpio62"; 910 + function = "qup01"; 911 + drive-strength = <2>; 912 + bias-disable; 913 + }; 914 + 915 + tx-pins { 916 + pins = "gpio63"; 917 + function = "qup01"; 918 + drive-strength = <2>; 919 + bias-disable; 920 + }; 921 + 922 + rx-pins { 923 + pins = "gpio64"; 924 + function = "qup01"; 925 + drive-strength = <2>; 926 + bias-pull-up; 927 + }; 928 + }; 899 929 }; 900 930 901 931 gcc: clock-controller@1400000 { ··· 1138 1108 dma-names = "tx", "rx"; 1139 1109 #address-cells = <1>; 1140 1110 #size-cells = <0>; 1111 + status = "disabled"; 1112 + }; 1113 + 1114 + uart1: serial@4a84000 { 1115 + compatible = "qcom,geni-uart"; 1116 + reg = <0x0 0x04a84000 0x0 0x4000>; 1117 + interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>; 1118 + clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>; 1119 + clock-names = "se"; 1120 + power-domains = <&rpmpd SM6375_VDDCX>; 1121 + operating-points-v2 = <&qup_opp_table>; 1122 + pinctrl-0 = <&qup_uart1_default>; 1123 + pinctrl-names = "default"; 1141 1124 status = "disabled"; 1142 1125 }; 1143 1126
+5
arch/arm64/boot/dts/qcom/sm8450.dtsi
··· 1739 1739 }; 1740 1740 }; 1741 1741 1742 + rng: rng@10c3000 { 1743 + compatible = "qcom,sm8450-trng", "qcom,trng"; 1744 + reg = <0 0x010c3000 0 0x1000>; 1745 + }; 1746 + 1742 1747 pcie0: pci@1c00000 { 1743 1748 compatible = "qcom,pcie-sm8450-pcie0"; 1744 1749 reg = <0 0x01c00000 0 0x3000>,
+5
arch/arm64/boot/dts/qcom/sm8550.dtsi
··· 1677 1677 qcom,bcm-voters = <&apps_bcm_voter>; 1678 1678 }; 1679 1679 1680 + rng: rng@10c3000 { 1681 + compatible = "qcom,sm8550-trng", "qcom,trng"; 1682 + reg = <0 0x010c3000 0 0x1000>; 1683 + }; 1684 + 1680 1685 pcie0: pci@1c00000 { 1681 1686 device_type = "pci"; 1682 1687 compatible = "qcom,pcie-sm8550";