Qualcomm Arm64 DeviceTree updates for v6.11

This introduces 11 new boards, namely:
 * ASUS Vivobook S 15
 * Lenovo Smart Tab M10 DTS
 * Motorola Moto E 2015 LTE (surnia)
 * Motorola Moto G 2015 (osprey)
 * Motorola Moto G4 Play (harpia)
 * Qualcomm AIM300 AIoT development board
 * Qualcomm SM8650 Hardware Development Kit (HDK)
 * SHIFTphone 8
 * Samsung Galaxy Z Fold5
 * Schneider HMIBSC board DTS
 * TP-Link Archer AX55 v1
 
 Of particular interest here is the Asus Vivobook, the first supported X1
 Elite consumer laptop.
 
 For IPQ6018 an SDHCI controller is added and on IPQ9574 an MDIO bus is
 described.
 
 The improvements to MSM8916-based devices continues, with sound and
 mdoem support added to Acer Iconia Talk S and GPLUS FL8005A, the latter
 also gaining BMS support. Samsung Galaxy devices gains PMIC and charger
 definitions, NFC support and MUIC. Accelerometer and magnetometer
 support is added to the Samsung Galaxy Grand Prime devices.
 
 On MSM8976 definitions for IOMMU, the display subsystem, wifi subsystem,
 and Adreno GPU are added.
 
 On MSM8996 UFS core clock frequencies are specified, FastRPC nodes are
 added for the audio DSP, glink-edges are described where available, the
 display subsystem reset is added.
 
 Venus is introduced on MSM8998 and the "No MSA Ready" quirk is added to
 allow ath10k to come up.
 
 GPU support is added to QCM2290 and enabled on the RB1 development
 board.
 The I2C controller used for communicating with the LT9611UXC HDMI
 bridge is temporarily replaced with i2c-gpio while issues with the
 builtin controller is diagnosed. The same is done for RB2, on the
 QRB4210 platform.
 On RB2 TCPM max current draw is corrected and the vreg_l9a regulator is
 marked as always on to match expectations.
 
 On the QDU1000 platform, USB is added, secure QFPROM is introduced to
 allow LLCC to access OTP data. USB is enabled on the two IDP boards.
 
 SA8775p gains PCIe endpoint definitions, LLCCC support, IMEM and PIL
 info regions. Nodes are marked as dma-coherent as needed, a dedicated
 carveout for shared memory bridge allocations is introduced.
 The SA8775P ride device is split in the two versions r2 and r3.
 
 The SC7180 Trogdor clamshell/detachable fragments are refactored for
 convenience, and pwmleds are disabled where unused.
 
 On SC7280 the APR nodes for interfacing with the audio services in audio
 DSP firmware are introduced. The Qualcomm SMMU TBUs are described, to
 enable improved debug support. QoS clocks are added to interconnects, as
 needed in order to operate the QoS settings on some buses.
 SuperSpeed in park is disabled for the primary DWC3 instance to address
 host controller issues under load.
 
 The PM8008 (camera PMIC) is introduced in Fairphone 5, regulators are
 named for better output, and firmware name for IPA is adjusted to the
 preferred file format.
 The HDMI bridge on Rb3gen2 is described, rtc, gpi-dma and qup nodes are
 enabled.
 
 The Type-C port manager found in PM7250b is enabled, for targets not
 using pmic-glink firmware for Type-C management.
 
 SC8180X gets a number of smaller corrections, and some cleanups -
 related to both functional issues and DeviceTree validation.
 
 The PSHOLD node is marked reserved, after reports that this causes
 issues during shutdown. Description of the USB signals are updated to
 match the signal path. The PM8008 camera PMIC is added to Lenovo
 ThinkPad X13s.
 
 The PM660 PMIC is extended with charger and rradc definitions, and the
 SDM670 gains a SMEM region definition.
 
 On SDM845 the Qualcomm SMMU TBU nodes are described, to enable improved
 debug output during faults etc. The UFS PHY is associated with its GDSC,
 and the DisplayPort controller is wired up to the QMP PHY.
 
 The Lenovo Yoga C630 Embedded Controller is introduced, adding battery
 and Type-C port management and altmode support. The C630 also gains WiFI
 calibration variant information, to cause selection of the right data.
 The missing IPA firmware path is corrected.
 
 For the SDX75 platform, AOSS, IPCC, SDHCI, TCSR, modem SMP2P, I2C and
 SPI nodes are introduced. SD-card support is added to the IDP board.
 
 CPUfreq support is introduced for the SM4450 platform.
 
 Missing reset is added to the SDHC controller of SM6115. The UFS PHY
 is associated with its GDSC, so is the PHY on SM6350.
 
 On Fairphone 4, the camera pmic (PM8008) is introduced, regulators are
 named for more informative debug output, and USB role switching is
 enabled.
 
 On the Fairphone 3, vibrator support is added and enabled.
 
 On SM8250, the USB signal paths are properly described in the OF graph,
 the UFS PHY gains its required power-domains description.
 Thanks to the introduction of PCI power sequence support, the QRB5165
 RB5 WiFi chip can now be powered up, so this is added.
 
 Touchscreen interrupt flags are corrected accross a number of Sony
 Xperia devices, to remove the unexpected traces from downstream.
 
 On SM8450 an OPP-table is introduced for the PCIe controllers, to
 specify the bandwidth and performance state requirements for the
 different genrations and link widths. For this the PCIe controllers also
 gains interconnect path definitions. The LLCC register layout is
 corrected, and the UFS PHY is associated with its GDSC.
 
 On the SM8550 development boards speaker port mapping is added. WiFi
 support is finally enabled on the QRD board.
 The new AIM300 development platform/board is introduced.
 
 For SM8650 video and camera clock controller are introduced. SCM node
 gains details necessary to trigger USB ramdump (download mode) upon a
 system crash.
 WiFi support and speaker port mapping is added to the QRD and the newly
 introduced HDK. On the MTP the USB Type-C connector is describe to be
 routed to the PHY.
 In addition to the base HDK, a Display Card overlay is also introduced.
 
 For X1 Elite bwmon, fastrpc and GPU support, tsens, and the missing PCIe
 6a instance are added. Thermal zones are described. Pmic-glink is
 introduced for both CRD and QCP devices, and remaining PMICs are
 described. Audio support is also added to the QCP.
 An explicit, larger, chunk of CMA memory is added to the various
 devices, in order to compensate for the lack of IOMMU for PCIe.
 
 Across a wide range of platforms, the thermal zone polling delays are
 removed as supplies are interrupt driven anyways. Also thermal related
 is the introduction of GPU thermal throttling, across many SoCs.
 
 The old SMSM implementation is finally transitioned to using the
 mailbox-based description and implementation for invoking interrupts on
 remote processors. As such interrupt-triggering is converted to use this
 mechanism on related platforms.
 
 The usb-role-switch property is removed for all USB instances hard coded
 to either host or peripheral across a range of boards.
 -----BEGIN PGP SIGNATURE-----
 
 iQJJBAABCAAzFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmaJfz0VHGFuZGVyc3Nv
 bkBrZXJuZWwub3JnAAoJEAsfOT8Nma3FxOMQALOlJsncvYy+WBZ+ganw3VTY43x+
 CYtmM+cvy/oEEmqLLKWO63XyPtiDuhwjjmjO9H7019Zhi7dB2odXfr8PH4Wz315G
 /nW99uEoR1kgdHtMwMhBv+gMSf00c6D5X3fbFxVbt2lqlaB9blZeqbA/PsAcC2Dr
 FId/ji6/cMdEmC1qbWtvBMSc9Cku7WNt/90qe9q5KuwKbRVF/FKPj+lfBxGnrjQ8
 vaKHmqVOYSV+cfuWqA/HrIe3WUds9eXv/F+O2nx22BTqEiBmlOxVR63LwQGFV9D+
 fOpRaIR30TxBk+DK/i4jnNu7UEA9lPf//0RDiKeyySAffLfQWBpURGcRUrF6X+yz
 7qdi8Ep/L1v7M+FKdPdCDooVxM91JHErPB65+/T/gLbI2Oe7MZED+hY/3UcTY8cr
 SkSH+3VeZk8M4DDFuVdgXcTBk1d/d1zqaKKokm9IkIqdAspDYJNvlOHMfgg1bsQe
 Ny9epqR+RR5wFulJ0W0YWGibOYkcubduAytvtad1lawmSTCmMI8SZb8K9n1l2RI3
 vYEgaSfOo0SHprgZlpULc+LqPF9n9W2RrME8iFIqpfsZ9ovFccr3QgNbHdtVZyoN
 t0DhAUk5UKEM4iQ4vf/7+T2WjFA2LMAg1Bznv8X4L69BVkAH/VwRudbwQe429Yqm
 psehVa9nc/+upil7
 =Hsda
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmaL+k8ACgkQYKtH/8kJ
 UiffeBAAlBRO7Pp8MCFco+63SXZQTGJ0UXmmrkWLiXW6iCGDuUrllCLuygOGZx8O
 FVQ9dBQ5AXQbOy++LTYvHIzWt3pCJSIlnbhiv9Na04IgBFnZ3Uy+e+Iikq25o51M
 gC2lIvLfwDaTVe8KMvLdNoTUN7jWFv6dZerNo35K6mLxf5nwU6bucljM2Vn0naSK
 6G4HMXA+ByvCMgSVOp4/5Qd3+XadH8604W+48n6aRM9YtLhTgV2bRRNY23y8hiAI
 IItgCMjzS30mbd6yrnXJOix0IoNhe9IxNKoKh8P0+G0CvAzH8s7KcVAlU+tiTsnR
 0vMKYcYPK6PW8T4umHSvTTEG3HR+uvC5vyWAnCKvlx2OElD80JoVp/IWvmy4n9Fv
 U3hltgntDkn8raupGgQ9oeM6EoVR6fq5UtzuaZgkElWyuSigVK9jOsG8hrqf1gdo
 w7I6APX4c1D8ArEvCbBUmff0hy4LqnScwz+7evFwZORMDYiYxhy2ybRZVYGknozA
 miEkVGZr+MHLCszF8kzetHOFhhddqvTWx6IEh/5SMPTkqnGfaOTc667rJ/hfHt8/
 8AYw3dfpKrXsf3KxeNVlVpJDNexZU3yHK2glNEpr0yvXAuYYXfmXhhNo2DHNDzyg
 VHd6J24UoWMpQisszsfFPBtBsianBTzsPhfCfmprg8um2f0MaKY=
 =2vUa
 -----END PGP SIGNATURE-----

Merge tag 'qcom-arm64-for-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt

Qualcomm Arm64 DeviceTree updates for v6.11

This introduces 11 new boards, namely:
* ASUS Vivobook S 15
* Lenovo Smart Tab M10 DTS
* Motorola Moto E 2015 LTE (surnia)
* Motorola Moto G 2015 (osprey)
* Motorola Moto G4 Play (harpia)
* Qualcomm AIM300 AIoT development board
* Qualcomm SM8650 Hardware Development Kit (HDK)
* SHIFTphone 8
* Samsung Galaxy Z Fold5
* Schneider HMIBSC board DTS
* TP-Link Archer AX55 v1

Of particular interest here is the Asus Vivobook, the first supported X1
Elite consumer laptop.

For IPQ6018 an SDHCI controller is added and on IPQ9574 an MDIO bus is
described.

The improvements to MSM8916-based devices continues, with sound and
mdoem support added to Acer Iconia Talk S and GPLUS FL8005A, the latter
also gaining BMS support. Samsung Galaxy devices gains PMIC and charger
definitions, NFC support and MUIC. Accelerometer and magnetometer
support is added to the Samsung Galaxy Grand Prime devices.

On MSM8976 definitions for IOMMU, the display subsystem, wifi subsystem,
and Adreno GPU are added.

On MSM8996 UFS core clock frequencies are specified, FastRPC nodes are
added for the audio DSP, glink-edges are described where available, the
display subsystem reset is added.

Venus is introduced on MSM8998 and the "No MSA Ready" quirk is added to
allow ath10k to come up.

GPU support is added to QCM2290 and enabled on the RB1 development
board.
The I2C controller used for communicating with the LT9611UXC HDMI
bridge is temporarily replaced with i2c-gpio while issues with the
builtin controller is diagnosed. The same is done for RB2, on the
QRB4210 platform.
On RB2 TCPM max current draw is corrected and the vreg_l9a regulator is
marked as always on to match expectations.

On the QDU1000 platform, USB is added, secure QFPROM is introduced to
allow LLCC to access OTP data. USB is enabled on the two IDP boards.

SA8775p gains PCIe endpoint definitions, LLCCC support, IMEM and PIL
info regions. Nodes are marked as dma-coherent as needed, a dedicated
carveout for shared memory bridge allocations is introduced.
The SA8775P ride device is split in the two versions r2 and r3.

The SC7180 Trogdor clamshell/detachable fragments are refactored for
convenience, and pwmleds are disabled where unused.

On SC7280 the APR nodes for interfacing with the audio services in audio
DSP firmware are introduced. The Qualcomm SMMU TBUs are described, to
enable improved debug support. QoS clocks are added to interconnects, as
needed in order to operate the QoS settings on some buses.
SuperSpeed in park is disabled for the primary DWC3 instance to address
host controller issues under load.

The PM8008 (camera PMIC) is introduced in Fairphone 5, regulators are
named for better output, and firmware name for IPA is adjusted to the
preferred file format.
The HDMI bridge on Rb3gen2 is described, rtc, gpi-dma and qup nodes are
enabled.

The Type-C port manager found in PM7250b is enabled, for targets not
using pmic-glink firmware for Type-C management.

SC8180X gets a number of smaller corrections, and some cleanups -
related to both functional issues and DeviceTree validation.

The PSHOLD node is marked reserved, after reports that this causes
issues during shutdown. Description of the USB signals are updated to
match the signal path. The PM8008 camera PMIC is added to Lenovo
ThinkPad X13s.

The PM660 PMIC is extended with charger and rradc definitions, and the
SDM670 gains a SMEM region definition.

On SDM845 the Qualcomm SMMU TBU nodes are described, to enable improved
debug output during faults etc. The UFS PHY is associated with its GDSC,
and the DisplayPort controller is wired up to the QMP PHY.

The Lenovo Yoga C630 Embedded Controller is introduced, adding battery
and Type-C port management and altmode support. The C630 also gains WiFI
calibration variant information, to cause selection of the right data.
The missing IPA firmware path is corrected.

For the SDX75 platform, AOSS, IPCC, SDHCI, TCSR, modem SMP2P, I2C and
SPI nodes are introduced. SD-card support is added to the IDP board.

CPUfreq support is introduced for the SM4450 platform.

Missing reset is added to the SDHC controller of SM6115. The UFS PHY
is associated with its GDSC, so is the PHY on SM6350.

On Fairphone 4, the camera pmic (PM8008) is introduced, regulators are
named for more informative debug output, and USB role switching is
enabled.

On the Fairphone 3, vibrator support is added and enabled.

On SM8250, the USB signal paths are properly described in the OF graph,
the UFS PHY gains its required power-domains description.
Thanks to the introduction of PCI power sequence support, the QRB5165
RB5 WiFi chip can now be powered up, so this is added.

Touchscreen interrupt flags are corrected accross a number of Sony
Xperia devices, to remove the unexpected traces from downstream.

On SM8450 an OPP-table is introduced for the PCIe controllers, to
specify the bandwidth and performance state requirements for the
different genrations and link widths. For this the PCIe controllers also
gains interconnect path definitions. The LLCC register layout is
corrected, and the UFS PHY is associated with its GDSC.

On the SM8550 development boards speaker port mapping is added. WiFi
support is finally enabled on the QRD board.
The new AIM300 development platform/board is introduced.

For SM8650 video and camera clock controller are introduced. SCM node
gains details necessary to trigger USB ramdump (download mode) upon a
system crash.
WiFi support and speaker port mapping is added to the QRD and the newly
introduced HDK. On the MTP the USB Type-C connector is describe to be
routed to the PHY.
In addition to the base HDK, a Display Card overlay is also introduced.

For X1 Elite bwmon, fastrpc and GPU support, tsens, and the missing PCIe
6a instance are added. Thermal zones are described. Pmic-glink is
introduced for both CRD and QCP devices, and remaining PMICs are
described. Audio support is also added to the QCP.
An explicit, larger, chunk of CMA memory is added to the various
devices, in order to compensate for the lack of IOMMU for PCIe.

Across a wide range of platforms, the thermal zone polling delays are
removed as supplies are interrupt driven anyways. Also thermal related
is the introduction of GPU thermal throttling, across many SoCs.

The old SMSM implementation is finally transitioned to using the
mailbox-based description and implementation for invoking interrupts on
remote processors. As such interrupt-triggering is converted to use this
mechanism on related platforms.

The usb-role-switch property is removed for all USB instances hard coded
to either host or peripheral across a range of boards.

* tag 'qcom-arm64-for-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (279 commits)
  dt-bindings: arm: qcom: Document samsung,ms013g
  arm64: dts: qcom: Add device tree for ASUS Vivobook S 15
  dt-bindings: arm: qcom: Add ASUS Vivobook S 15
  arm64: dts: qcom: qrb4210-rb2: Correct max current draw for VBUS
  arm64: dts: qcom: msm8998: add venus node
  arm64: dts: qcom: sa8775p-ride-r3: add new board file
  arm64: dts: qcom: move common parts for sa8775p-ride variants into a .dtsi
  dt-bindings: arm: qcom: add sa8775p-ride Rev 3
  arm64: dts: qcom: sm8550-qrd: add port mapping to speakers
  arm64: dts: qcom: sm8550-mtp: add port mapping to speakers
  arm64: dts: qcom: sm8550-hdk: add port mapping to speakers
  arm64: dts: qcom: sm8650-qrd: add port mapping to speakers
  arm64: dts: qcom: sm8650-mtp: add port mapping to speakers
  arm64: dts: qcom: sm8650-hdk: add port mapping to speakers
  arm64: dts: qcom: sm7225-fairphone-fp4: Name the regulators
  arm64: dts: qcom: pm8916: correct thermal zone name
  arm64: dts: qcom: x1e80100: Add gpu support
  arm64: dts: qcom: x1e80100: Fix USB HS PHY 0.8V supply
  arm64: dts: qcom: qcs6490-rb3gen2: enable hdmi bridge
  arm64: dts: qcom: sm6115: add resets for sdhc_1
  ...

Link: https://lore.kernel.org/r/20240706173140.18887-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2024-07-08 16:40:03 +02:00
commit 2d61b9303c
193 changed files with 19703 additions and 2589 deletions

View File

@ -42,6 +42,7 @@ description: |
msm8996
msm8998
qcs404
qcs8550
qcm2290
qcm6490
qdu1000
@ -96,6 +97,7 @@ properties:
- items:
- enum:
- qcom,apq8016-sbc
- schneider,apq8016-hmibsc
- const: qcom,apq8016
- items:
@ -104,6 +106,7 @@ properties:
- huawei,sturgeon
- lg,lenok
- samsung,matisse-wifi
- samsung,milletwifi
- const: qcom,apq8026
- items:
@ -138,6 +141,7 @@ properties:
- microsoft,makepeace
- microsoft,moneypenny
- motorola,falcon
- samsung,ms013g
- samsung,s3ve3g
- const: qcom,msm8226
@ -175,6 +179,7 @@ properties:
- items:
- enum:
- lge,hammerhead
- samsung,hlte
- sony,xperia-amami
- sony,xperia-honami
- const: qcom,msm8974
@ -182,8 +187,10 @@ properties:
- items:
- enum:
- fairphone,fp2
- htc,m8
- oneplus,bacon
- samsung,klte
- sony,xperia-aries
- sony,xperia-castor
- sony,xperia-leo
- const: qcom,msm8974pro
@ -205,6 +212,9 @@ properties:
- huawei,g7
- longcheer,l8910
- longcheer,l8150
- motorola,harpia
- motorola,osprey
- motorola,surnia
- qcom,msm8916-mtp
- samsung,a3u-eur
- samsung,a5u-eur
@ -316,6 +326,7 @@ properties:
- items:
- enum:
- qcom,ipq5018-rdp432-c2
- tplink,archer-ax55-v1
- const: qcom,ipq5018
- items:
@ -366,6 +377,7 @@ properties:
- fairphone,fp5
- qcom,qcm6490-idp
- qcom,qcs6490-rb3gen2
- shift,otter
- const: qcom,qcm6490
- description: Qualcomm Technologies, Inc. Distributed Unit 1000 platform
@ -802,6 +814,7 @@ properties:
- items:
- enum:
- lenovo,tbx605f
- motorola,ali
- const: qcom,sdm450
@ -883,6 +896,7 @@ properties:
- items:
- enum:
- qcom,sa8775p-ride
- qcom,sa8775p-ride-r3
- const: qcom,sa8775p
- items:
@ -1004,17 +1018,27 @@ properties:
- qcom,sm8550-hdk
- qcom,sm8550-mtp
- qcom,sm8550-qrd
- samsung,q5q
- sony,pdx234
- const: qcom,sm8550
- items:
- enum:
- qcom,qcs8550-aim300-aiot
- const: qcom,qcs8550-aim300
- const: qcom,qcs8550
- const: qcom,sm8550
- items:
- enum:
- qcom,sm8650-hdk
- qcom,sm8650-mtp
- qcom,sm8650-qrd
- const: qcom,sm8650
- items:
- enum:
- asus,vivobook-s15
- qcom,x1e80100-crd
- qcom,x1e80100-qcp
- const: qcom,x1e80100

View File

@ -0,0 +1,77 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/qcom,qcm2290-gpucc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Graphics Clock & Reset Controller on QCM2290
maintainers:
- Konrad Dybcio <konradybcio@kernel.org>
description: |
Qualcomm graphics clock control module provides the clocks, resets and power
domains on Qualcomm SoCs.
See also::
include/dt-bindings/clock/qcom,qcm2290-gpucc.h
properties:
compatible:
const: qcom,qcm2290-gpucc
reg:
maxItems: 1
clocks:
items:
- description: AHB interface clock,
- description: SoC CXO clock
- description: GPLL0 main branch source
- description: GPLL0 div branch source
power-domains:
description:
A phandle and PM domain specifier for the CX power domain.
maxItems: 1
required-opps:
description:
A phandle to an OPP node describing required CX performance point.
maxItems: 1
required:
- compatible
- clocks
- power-domains
allOf:
- $ref: qcom,gcc.yaml#
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/qcom,gcc-qcm2290.h>
#include <dt-bindings/clock/qcom,rpmcc.h>
#include <dt-bindings/power/qcom-rpmpd.h>
soc {
#address-cells = <2>;
#size-cells = <2>;
clock-controller@5990000 {
compatible = "qcom,qcm2290-gpucc";
reg = <0x0 0x05990000 0x0 0x9000>;
clocks = <&gcc GCC_GPU_CFG_AHB_CLK>,
<&rpmcc RPM_SMD_XO_CLK_SRC>,
<&gcc GCC_GPU_GPLL0_CLK_SRC>,
<&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
power-domains = <&rpmpd QCM2290_VDDCX>;
required-opps = <&rpmpd_opp_low_svs>;
#clock-cells = <1>;
#reset-cells = <1>;
#power-domain-cells = <1>;
};
};
...

View File

@ -8,15 +8,17 @@ title: Qualcomm Camera Clock & Reset Controller on SM8450
maintainers:
- Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
- Jagadeesh Kona <quic_jkona@quicinc.com>
description: |
Qualcomm camera clock control module provides the clocks, resets and power
domains on SM8450.
See also::
See also:
include/dt-bindings/clock/qcom,sc8280xp-camcc.h
include/dt-bindings/clock/qcom,sm8450-camcc.h
include/dt-bindings/clock/qcom,sm8550-camcc.h
include/dt-bindings/clock/qcom,sc8280xp-camcc.h
include/dt-bindings/clock/qcom,sm8650-camcc.h
include/dt-bindings/clock/qcom,x1e80100-camcc.h
allOf:
@ -28,6 +30,7 @@ properties:
- qcom,sc8280xp-camcc
- qcom,sm8450-camcc
- qcom,sm8550-camcc
- qcom,sm8650-camcc
- qcom,x1e80100-camcc
clocks:

View File

@ -8,18 +8,22 @@ title: Qualcomm Video Clock & Reset Controller on SM8450
maintainers:
- Taniya Das <quic_tdas@quicinc.com>
- Jagadeesh Kona <quic_jkona@quicinc.com>
description: |
Qualcomm video clock control module provides the clocks, resets and power
domains on SM8450.
See also:: include/dt-bindings/clock/qcom,videocc-sm8450.h
See also:
include/dt-bindings/clock/qcom,sm8450-videocc.h
include/dt-bindings/clock/qcom,sm8650-videocc.h
properties:
compatible:
enum:
- qcom,sm8450-videocc
- qcom,sm8550-videocc
- qcom,sm8650-videocc
reg:
maxItems: 1

View File

@ -22,6 +22,7 @@ properties:
- qcom,msm8974-imem
- qcom,qcs404-imem
- qcom,qdu1000-imem
- qcom,sa8775p-imem
- qcom,sc7180-imem
- qcom,sc7280-imem
- qcom,sdm630-imem

View File

@ -1262,6 +1262,8 @@ patternProperties:
description: Smart Battery System
"^schindler,.*":
description: Schindler
"^schneider,.*":
description: Schneider Electric
"^seagate,.*":
description: Seagate Technology PLC
"^seeed,.*":

View File

@ -5,11 +5,13 @@ apq8016-sbc-usb-host-dtbs := apq8016-sbc.dtb apq8016-sbc-usb-host.dtbo
dtb-$(CONFIG_ARCH_QCOM) += apq8016-sbc-usb-host.dtb
dtb-$(CONFIG_ARCH_QCOM) += apq8016-sbc-d3-camera-mezzanine.dtb
dtb-$(CONFIG_ARCH_QCOM) += apq8016-schneider-hmibsc.dtb
dtb-$(CONFIG_ARCH_QCOM) += apq8039-t2.dtb
dtb-$(CONFIG_ARCH_QCOM) += apq8094-sony-xperia-kitakami-karin_windy.dtb
dtb-$(CONFIG_ARCH_QCOM) += apq8096-db820c.dtb
dtb-$(CONFIG_ARCH_QCOM) += apq8096-ifc6640.dtb
dtb-$(CONFIG_ARCH_QCOM) += ipq5018-rdp432-c2.dtb
dtb-$(CONFIG_ARCH_QCOM) += ipq5018-tplink-archer-ax55-v1.dtb
dtb-$(CONFIG_ARCH_QCOM) += ipq5332-rdp441.dtb
dtb-$(CONFIG_ARCH_QCOM) += ipq5332-rdp442.dtb
dtb-$(CONFIG_ARCH_QCOM) += ipq5332-rdp468.dtb
@ -31,6 +33,9 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8916-gplus-fl8005a.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-huawei-g7.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-longcheer-l8150.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-longcheer-l8910.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-motorola-harpia.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-motorola-osprey.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-motorola-surnia.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-mtp.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-samsung-a3u-eur.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-samsung-a5u-eur.dtb
@ -93,9 +98,11 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8998-sony-xperia-yoshino-poplar.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8998-xiaomi-sagit.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcm6490-fairphone-fp5.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcm6490-idp.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcm6490-shift-otter.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-4000.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs8550-aim300-aiot.dtb
dtb-$(CONFIG_ARCH_QCOM) += qdu1000-idp.dtb
dtb-$(CONFIG_ARCH_QCOM) += qrb2210-rb1.dtb
dtb-$(CONFIG_ARCH_QCOM) += qrb4210-rb2.dtb
@ -106,6 +113,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sa8155p-adp.dtb
dtb-$(CONFIG_ARCH_QCOM) += sa8295p-adp.dtb
dtb-$(CONFIG_ARCH_QCOM) += sa8540p-ride.dtb
dtb-$(CONFIG_ARCH_QCOM) += sa8775p-ride.dtb
dtb-$(CONFIG_ARCH_QCOM) += sa8775p-ride-r3.dtb
dtb-$(CONFIG_ARCH_QCOM) += sc7180-acer-aspire1.dtb
dtb-$(CONFIG_ARCH_QCOM) += sc7180-idp.dtb
dtb-$(CONFIG_ARCH_QCOM) += sc7180-trogdor-coachz-r1.dtb
@ -175,6 +183,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sc8180x-primus.dtb
dtb-$(CONFIG_ARCH_QCOM) += sc8280xp-crd.dtb
dtb-$(CONFIG_ARCH_QCOM) += sc8280xp-lenovo-thinkpad-x13s.dtb
dtb-$(CONFIG_ARCH_QCOM) += sda660-inforce-ifc6560.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm450-lenovo-tbx605f.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm450-motorola-ali.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm630-sony-xperia-ganges-kirin.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm630-sony-xperia-nile-discovery.dtb
@ -241,8 +250,15 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8450-sony-xperia-nagara-pdx224.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8550-hdk.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8550-mtp.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8550-qrd.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8550-samsung-q5q.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8550-sony-xperia-yodo-pdx234.dtb
sm8650-hdk-display-card-dtbs := sm8650-hdk.dtb sm8650-hdk-display-card.dtbo
dtb-$(CONFIG_ARCH_QCOM) += sm8650-hdk-display-card.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8650-hdk.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8650-mtp.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8650-qrd.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-asus-vivobook-s15.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-crd.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-qcp.dtb

View File

@ -0,0 +1,491 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2015, The Linux Foundation. All rights reserved.
* Copyright (c) 2024, Linaro Ltd.
*/
/dts-v1/;
#include "msm8916-pm8916.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
#include <dt-bindings/sound/apq8016-lpass.h>
/ {
model = "Schneider Electric HMIBSC Board";
compatible = "schneider,apq8016-hmibsc", "qcom,apq8016";
aliases {
i2c1 = &blsp_i2c6;
i2c3 = &blsp_i2c4;
i2c4 = &blsp_i2c3;
mmc0 = &sdhc_1; /* eMMC */
mmc1 = &sdhc_2; /* SD card */
serial0 = &blsp_uart1;
serial1 = &blsp_uart2;
spi0 = &blsp_spi5;
usid0 = &pm8916_0;
};
chosen {
stdout-path = "serial0";
};
hdmi-out {
compatible = "hdmi-connector";
type = "a";
port {
hdmi_con: endpoint {
remote-endpoint = <&adv7533_out>;
};
};
};
gpio-keys {
compatible = "gpio-keys";
autorepeat;
pinctrl-0 = <&msm_key_volp_n_default>;
pinctrl-names = "default";
button {
label = "Volume Up";
linux,code = <KEY_VOLUMEUP>;
gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
};
};
leds {
compatible = "gpio-leds";
pinctrl-0 = <&pm8916_mpps_leds>;
pinctrl-names = "default";
led-1 {
function = LED_FUNCTION_WLAN;
color = <LED_COLOR_ID_YELLOW>;
gpios = <&pm8916_mpps 2 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "phy0tx";
default-state = "off";
};
led-2 {
function = LED_FUNCTION_BLUETOOTH;
color = <LED_COLOR_ID_BLUE>;
gpios = <&pm8916_mpps 3 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "bluetooth-power";
default-state = "off";
};
};
memory@80000000 {
reg = <0 0x80000000 0 0x40000000>;
};
reserved-memory {
ramoops@bff00000 {
compatible = "ramoops";
reg = <0x0 0xbff00000 0x0 0x100000>;
record-size = <0x20000>;
console-size = <0x20000>;
ftrace-size = <0x20000>;
ecc-size = <16>;
};
};
usb-hub {
compatible = "smsc,usb3503";
reset-gpios = <&pm8916_gpios 1 GPIO_ACTIVE_LOW>;
initial-mode = <1>;
};
usb_id: usb-id {
compatible = "linux,extcon-usb-gpio";
id-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&usb_id_default>;
pinctrl-names = "default";
};
};
&blsp_i2c3 {
status = "okay";
eeprom@50 {
compatible = "atmel,24c32";
reg = <0x50>;
};
};
&blsp_i2c4 {
status = "okay";
adv_bridge: bridge@39 {
compatible = "adi,adv7533";
reg = <0x39>;
interrupts-extended = <&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
adi,dsi-lanes = <4>;
clocks = <&rpmcc RPM_SMD_BB_CLK2>;
clock-names = "cec";
pd-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
avdd-supply = <&pm8916_l6>;
a2vdd-supply = <&pm8916_l6>;
dvdd-supply = <&pm8916_l6>;
pvdd-supply = <&pm8916_l6>;
v1p2-supply = <&pm8916_l6>;
v3p3-supply = <&pm8916_l17>;
pinctrl-0 = <&adv7533_int_active &adv7533_switch_active>;
pinctrl-1 = <&adv7533_int_suspend &adv7533_switch_suspend>;
pinctrl-names = "default","sleep";
#sound-dai-cells = <0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
adv7533_in: endpoint {
remote-endpoint = <&mdss_dsi0_out>;
};
};
port@1 {
reg = <1>;
adv7533_out: endpoint {
remote-endpoint = <&hdmi_con>;
};
};
};
};
};
&blsp_i2c6 {
status = "okay";
rtc@30 {
compatible = "sii,s35390a";
reg = <0x30>;
};
eeprom@50 {
compatible = "atmel,24c256";
reg = <0x50>;
};
};
&blsp_spi5 {
cs-gpios = <&tlmm 18 GPIO_ACTIVE_LOW>;
status = "okay";
tpm@0 {
compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
reg = <0>;
spi-max-frequency = <500000>;
};
};
&blsp_uart1 {
label = "UART0";
status = "okay";
};
&blsp_uart2 {
label = "UART1";
status = "okay";
};
&lpass {
status = "okay";
};
&mdss {
status = "okay";
};
&mdss_dsi0_out {
data-lanes = <0 1 2 3>;
remote-endpoint = <&adv7533_in>;
};
&pm8916_codec {
qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
status = "okay";
};
&pm8916_gpios {
gpio-line-names =
"USB_HUB_RESET_N_PM",
"USB_SW_SEL_PM",
"NC",
"NC";
usb_hub_reset_pm: usb-hub-reset-pm-state {
pins = "gpio1";
function = PMIC_GPIO_FUNC_NORMAL;
input-disable;
output-high;
};
usb_hub_reset_pm_device: usb-hub-reset-pm-device-state {
pins = "gpio1";
function = PMIC_GPIO_FUNC_NORMAL;
input-disable;
output-low;
};
usb_sw_sel_pm: usb-sw-sel-pm-state {
pins = "gpio2";
function = PMIC_GPIO_FUNC_NORMAL;
power-source = <PM8916_GPIO_VPH>;
input-disable;
output-high;
};
usb_sw_sel_pm_device: usb-sw-sel-pm-device-state {
pins = "gpio2";
function = PMIC_GPIO_FUNC_NORMAL;
power-source = <PM8916_GPIO_VPH>;
input-disable;
output-low;
};
};
&pm8916_mpps {
gpio-line-names =
"NC",
"WLAN_LED_CTRL",
"BT_LED_CTRL",
"NC";
pm8916_mpps_leds: pm8916-mpps-state {
pins = "mpp2", "mpp3";
function = "digital";
output-low;
};
};
&pm8916_resin {
linux,code = <KEY_POWER>;
status = "okay";
};
&pm8916_rpm_regulators {
pm8916_l17: l17 {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
};
&sdhc_1 {
status = "okay";
};
&sdhc_2 {
pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
pinctrl-names = "default", "sleep";
cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
status = "okay";
};
&sound {
pinctrl-0 = <&cdc_pdm_default &sec_mi2s_default>;
pinctrl-1 = <&cdc_pdm_sleep &sec_mi2s_sleep>;
pinctrl-names = "default", "sleep";
model = "HMIBSC";
audio-routing =
"AMIC2", "MIC BIAS Internal2",
"AMIC3", "MIC BIAS External1";
status = "okay";
quaternary-dai-link {
link-name = "ADV7533";
cpu {
sound-dai = <&lpass MI2S_QUATERNARY>;
};
codec {
sound-dai = <&adv_bridge 0>;
};
};
primary-dai-link {
link-name = "WCD";
cpu {
sound-dai = <&lpass MI2S_PRIMARY>;
};
codec {
sound-dai = <&lpass_codec 0>, <&pm8916_codec 0>;
};
};
tertiary-dai-link {
link-name = "WCD-Capture";
cpu {
sound-dai = <&lpass MI2S_TERTIARY>;
};
codec {
sound-dai = <&lpass_codec 1>, <&pm8916_codec 1>;
};
};
};
&tlmm {
pinctrl-0 = <&uart1_mux0_rs232_high &uart1_mux1_rs232_low>;
pinctrl-names = "default";
adv7533_int_active: adv533-int-active-state {
pins = "gpio31";
function = "gpio";
drive-strength = <16>;
bias-disable;
};
adv7533_int_suspend: adv7533-int-suspend-state {
pins = "gpio31";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
adv7533_switch_active: adv7533-switch-active-state {
pins = "gpio32";
function = "gpio";
drive-strength = <16>;
bias-disable;
};
adv7533_switch_suspend: adv7533-switch-suspend-state {
pins = "gpio32";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
msm_key_volp_n_default: msm-key-volp-n-default-state {
pins = "gpio107";
function = "gpio";
drive-strength = <8>;
bias-pull-up;
};
sdc2_cd_default: sdc2-cd-default-state {
pins = "gpio38";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
/*
* UART1 being the debug console supports various modes of
* operation (RS-232/485/422) controlled via GPIOs configured
* mux as follows:
*
* gpio100 gpio99 UART mode
* 0 0 loopback
* 0 1 RS-232
* 1 0 RS-485
* 1 1 RS-422
*
* The default mode configured here is RS-232 mode.
*/
uart1_mux0_rs232_high: uart1-mux0-rs232-state {
bootph-all;
pins = "gpio99";
function = "gpio";
drive-strength = <16>;
bias-disable;
output-high;
};
uart1_mux1_rs232_low: uart1-mux1-rs232-state {
bootph-all;
pins = "gpio100";
function = "gpio";
drive-strength = <16>;
bias-disable;
output-low;
};
usb_id_default: usb-id-default-state {
pins = "gpio110";
function = "gpio";
drive-strength = <8>;
bias-pull-up;
};
};
&usb {
extcon = <&usb_id>, <&usb_id>;
pinctrl-0 = <&usb_sw_sel_pm &usb_hub_reset_pm>;
pinctrl-1 = <&usb_sw_sel_pm_device &usb_hub_reset_pm_device>;
pinctrl-names = "default", "device";
status = "okay";
};
&usb_hs_phy {
extcon = <&usb_id>;
};
&wcnss {
firmware-name = "qcom/apq8016/wcnss.mbn";
status = "okay";
};
&wcnss_ctrl {
firmware-name = "qcom/apq8016/WCNSS_qcom_wlan_nv_sbc.bin";
};
&wcnss_iris {
compatible = "qcom,wcn3620";
};
&wcnss_mem {
status = "okay";
};
/* PINCTRL - additions to nodes defined in msm8916.dtsi */
/*
* 2mA drive strength is not enough when connecting multiple
* I2C devices with different pull up resistors.
*/
&blsp_i2c4_default {
drive-strength = <16>;
};
&blsp_i2c6_default {
drive-strength = <16>;
};
&blsp_uart1_default {
bootph-all;
};
/* Enable CoreSight */
&cti0 { status = "okay"; };
&cti1 { status = "okay"; };
&cti12 { status = "okay"; };
&cti13 { status = "okay"; };
&cti14 { status = "okay"; };
&cti15 { status = "okay"; };
&debug0 { status = "okay"; };
&debug1 { status = "okay"; };
&debug2 { status = "okay"; };
&debug3 { status = "okay"; };
&etf { status = "okay"; };
&etm0 { status = "okay"; };
&etm1 { status = "okay"; };
&etm2 { status = "okay"; };
&etm3 { status = "okay"; };
&etr { status = "okay"; };
&funnel0 { status = "okay"; };
&funnel1 { status = "okay"; };
&replicator { status = "okay"; };
&stm { status = "okay"; };
&tpiu { status = "okay"; };

View File

@ -0,0 +1,128 @@
// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include "ipq5018.dtsi"
/ {
model = "TP-Link Archer AX55 v1";
compatible = "tplink,archer-ax55-v1", "qcom,ipq5018";
aliases {
serial0 = &blsp1_uart1;
};
chosen {
stdout-path = "serial0:115200n8";
};
leds {
compatible = "gpio-leds";
pinctrl-0 = <&led_pins>;
pinctrl-names = "default";
led-0 {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_LAN;
gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
};
led-1 {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_WAN_ONLINE;
gpios = <&tlmm 11 GPIO_ACTIVE_HIGH>;
};
led-2 {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_WLAN_2GHZ;
gpios = <&tlmm 13 GPIO_ACTIVE_HIGH>;
};
led-3 {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_POWER;
gpios = <&tlmm 18 GPIO_ACTIVE_HIGH>;
};
led-4 {
color = <LED_COLOR_ID_ORANGE>;
function = LED_FUNCTION_WAN;
gpios = <&tlmm 22 GPIO_ACTIVE_HIGH>;
};
led-5 {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_USB;
gpios = <&tlmm 38 GPIO_ACTIVE_HIGH>;
};
led-6 {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_WLAN_5GHZ;
gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>;
};
};
buttons {
compatible = "gpio-keys";
pinctrl-0 = <&button_pins>;
pinctrl-names = "default";
button-reset {
debounce-interval = <60>;
gpios = <&tlmm 25 GPIO_ACTIVE_LOW>;
label = "reset";
linux,code = <KEY_RESTART>;
};
button-wps {
debounce-interval = <60>;
gpios = <&tlmm 31 GPIO_ACTIVE_LOW>;
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
};
};
};
&blsp1_uart1 {
pinctrl-0 = <&uart_pins>;
pinctrl-names = "default";
status = "okay";
};
&sleep_clk {
clock-frequency = <32000>;
};
&tlmm {
button_pins: button-pins-state {
pins = "gpio25", "gpio31";
function = "gpio";
drive-strength = <8>;
bias-pull-up;
};
led_pins: led-pins-state {
pins = "gpio10", "gpio11", "gpio13", "gpio18", "gpio22",
"gpio38", "gpio39";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
uart_pins: uart-pins-state {
pins = "gpio20", "gpio21";
function = "blsp0_uart0";
drive-strength = <8>;
bias-disable;
};
};
&xo_board_clk {
clock-frequency = <24000000>;
};

View File

@ -179,7 +179,6 @@
<0>;
#clock-cells = <1>;
#reset-cells = <1>;
#power-domain-cells = <1>;
};
tcsr_mutex: hwlock@1905000 {

View File

@ -208,7 +208,6 @@
reg = <0x01800000 0x80000>;
#clock-cells = <1>;
#reset-cells = <1>;
#power-domain-cells = <1>;
clocks = <&xo_board>,
<&sleep_clk>,
<0>,

View File

@ -396,7 +396,7 @@
};
};
gcc: gcc@1800000 {
gcc: clock-controller@1800000 {
compatible = "qcom,gcc-ipq6018";
reg = <0x0 0x01800000 0x0 0x80000>;
clocks = <&xo>, <&sleep_clk>;
@ -457,6 +457,25 @@
};
};
sdhc: mmc@7804000 {
compatible = "qcom,ipq6018-sdhci", "qcom,sdhci-msm-v5";
reg = <0x0 0x07804000 0x0 0x1000>,
<0x0 0x07805000 0x0 0x1000>;
reg-names = "hc", "cqhci";
interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "hc_irq", "pwr_irq";
clocks = <&gcc GCC_SDCC1_AHB_CLK>,
<&gcc GCC_SDCC1_APPS_CLK>,
<&xo>;
clock-names = "iface", "core", "xo";
resets = <&gcc GCC_SDCC1_BCR>;
max-frequency = <192000000>;
status = "disabled";
};
blsp_dma: dma-controller@7884000 {
compatible = "qcom,bam-v1.7.0";
reg = <0x0 0x07884000 0x0 0x2b000>;
@ -923,7 +942,6 @@
thermal-zones {
nss-top-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 4>;
trips {
@ -937,7 +955,6 @@
nss-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 5>;
trips {
@ -951,7 +968,6 @@
wcss-phya0-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 7>;
trips {
@ -979,7 +995,6 @@
cpu-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 13>;
trips {
@ -1009,7 +1024,6 @@
lpass-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 14>;
trips {
@ -1023,7 +1037,6 @@
ddrss-top-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 15>;
trips {

View File

@ -363,7 +363,7 @@
};
};
gcc: gcc@1800000 {
gcc: clock-controller@1800000 {
compatible = "qcom,gcc-ipq8074";
reg = <0x01800000 0x80000>;
clocks = <&xo>,
@ -982,7 +982,6 @@
thermal-zones {
nss-top-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 4>;
@ -997,7 +996,6 @@
nss0-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 5>;
@ -1012,7 +1010,6 @@
nss1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 6>;
@ -1027,7 +1024,6 @@
wcss-phya0-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 7>;
@ -1042,7 +1038,6 @@
wcss-phya1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 8>;
@ -1057,7 +1052,6 @@
cpu0_thermal: cpu0-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 9>;
@ -1072,7 +1066,6 @@
cpu1_thermal: cpu1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 10>;
@ -1087,7 +1080,6 @@
cpu2_thermal: cpu2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 11>;
@ -1102,7 +1094,6 @@
cpu3_thermal: cpu3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 12>;
@ -1117,7 +1108,6 @@
cluster_thermal: cluster-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 13>;
@ -1132,7 +1122,6 @@
wcss-phyb0-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 14>;
@ -1147,7 +1136,6 @@
wcss-phyb1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 15>;

View File

@ -232,6 +232,16 @@
clock-names = "core";
};
mdio: mdio@90000 {
compatible = "qcom,ipq9574-mdio", "qcom,ipq4019-mdio";
reg = <0x00090000 0x64>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&gcc GCC_MDIO_AHB_CLK>;
clock-names = "gcc_mdio_ahb_clk";
status = "disabled";
};
qfprom: efuse@a4000 {
compatible = "qcom,ipq9574-qfprom", "qcom,qfprom";
reg = <0x000a4000 0x5a1>;
@ -305,7 +315,6 @@
<0>;
#clock-cells = <1>;
#reset-cells = <1>;
#power-domain-cells = <1>;
};
tcsr_mutex: hwlock@1905000 {
@ -749,8 +758,6 @@
thermal-zones {
nss-top-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 3>;
trips {
@ -763,8 +770,6 @@
};
ubi-0-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 4>;
trips {
@ -777,8 +782,6 @@
};
ubi-1-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 5>;
trips {
@ -791,8 +794,6 @@
};
ubi-2-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 6>;
trips {
@ -805,8 +806,6 @@
};
ubi-3-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 7>;
trips {
@ -819,8 +818,6 @@
};
cpuss0-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 8>;
trips {
@ -833,8 +830,6 @@
};
cpuss1-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 9>;
trips {
@ -847,8 +842,6 @@
};
cpu0-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 10>;
trips {
@ -877,8 +870,6 @@
};
cpu1-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 11>;
trips {
@ -907,8 +898,6 @@
};
cpu2-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 12>;
trips {
@ -937,8 +926,6 @@
};
cpu3-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 13>;
trips {
@ -967,8 +954,6 @@
};
wcss-phyb-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 14>;
trips {
@ -981,8 +966,6 @@
};
top-glue-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens 15>;
trips {

View File

@ -9,3 +9,17 @@
compatible = "samsung,fortuna3g", "qcom,msm8916";
chassis-type = "handset";
};
&battery {
charge-term-current-microamp = <200000>;
constant-charge-current-max-microamp = <1000000>;
constant-charge-voltage-max-microvolt = <4350000>;
};
&st_accel {
status = "okay";
};
&st_magn {
status = "okay";
};

View File

@ -3,6 +3,7 @@
/dts-v1/;
#include "msm8916-pm8916.dtsi"
#include "msm8916-modem-qdsp6.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
@ -135,6 +136,17 @@
status = "okay";
};
&mpss_mem {
reg = <0x0 0x86800000 0x0 0x4500000>;
};
&pm8916_codec {
qcom,micbias-lvl = <2800>;
qcom,mbhc-vthreshold-low = <150 237 450 500 590>;
qcom,mbhc-vthreshold-high = <150 237 450 500 590>;
qcom,hphl-jack-type-normally-open;
};
&pm8916_resin {
linux,code = <KEY_VOLUMEDOWN>;
status = "okay";
@ -170,6 +182,20 @@
status = "okay";
};
&sound {
model = "acer-a1-724";
audio-routing =
"DMIC1", "MIC BIAS External1",
"DMIC1", "Digital Mic1",
"AMIC2", "MIC BIAS Internal2",
"DMIC2", "MIC BIAS External1",
"DMIC2", "Digital Mic2";
pinctrl-0 = <&cdc_pdm_default &sec_mi2s_default &pri_mi2s_mclk_default &cdc_dmic_default>;
pinctrl-1 = <&cdc_pdm_sleep &sec_mi2s_sleep &pri_mi2s_mclk_sleep &cdc_dmic_sleep>;
pinctrl-names = "default", "sleep";
};
&usb {
extcon = <&usb_id>, <&usb_id>;
status = "okay";

View File

@ -3,6 +3,7 @@
/dts-v1/;
#include "msm8916-pm8916.dtsi"
#include "msm8916-modem-qdsp6.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
@ -23,6 +24,28 @@
stdout-path = "serial0";
};
battery: battery {
compatible = "simple-battery";
device-chemistry = "lithium-ion-polymer";
voltage-min-design-microvolt = <3700000>;
voltage-max-design-microvolt = <4200000>;
energy-full-design-microwatt-hours = <13690000>;
charge-full-design-microamp-hours = <3700000>;
ocv-capacity-celsius = <25>;
ocv-capacity-table-0 =
<4186000 100>, <4126000 95>, <4078000 90>,
<4036000 85>, <3997000 80>, <3962000 75>,
<3932000 70>, <3904000 65>, <3874000 60>,
<3839000 55>, <3809000 50>, <3792000 45>,
<3780000 40>, <3772000 35>, <3764000 30>,
<3752000 25>, <3731000 20>, <3704000 16>,
<3677000 13>, <3670000 11>, <3668000 10>,
<3666000 9>, <3662000 8>, <3658000 7>, <3648000 6>,
<3624000 5>, <3580000 4>, <3518000 3>, <3434000 2>,
<3310000 1>, <3000000 0>;
};
flash-led-controller {
/* Actually qcom,leds-gpio-flash */
compatible = "sgmicro,sgm3140";
@ -111,6 +134,22 @@
status = "okay";
};
&mpss_mem {
reg = <0x0 0x86800000 0x0 0x5000000>;
};
&pm8916_bms {
monitored-battery = <&battery>;
status = "okay";
};
&pm8916_codec {
qcom,micbias-lvl = <2800>;
qcom,mbhc-vthreshold-low = <150 180 237 450 500>;
qcom,mbhc-vthreshold-high = <150 180 237 450 500>;
qcom,hphl-jack-type-normally-open;
};
&pm8916_resin {
linux,code = <KEY_VOLUMEDOWN>;
status = "okay";
@ -141,6 +180,14 @@
status = "okay";
};
&sound {
model = "msm8916-1mic";
audio-routing =
"AMIC1", "MIC BIAS External1",
"AMIC2", "MIC BIAS Internal2",
"AMIC3", "MIC BIAS External1";
};
&usb {
extcon = <&usb_id>, <&usb_id>;
status = "okay";

View File

@ -0,0 +1,161 @@
// SPDX-License-Identifier: GPL-2.0-only
#include "msm8916-pm8916.dtsi"
#include "msm8916-modem-qdsp6.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>
/ {
aliases {
mmc0 = &sdhc_1; /* eMMC */
mmc1 = &sdhc_2; /* SD card */
serial0 = &blsp_uart1;
};
chosen {
stdout-path = "serial0";
};
gpio-keys {
compatible = "gpio-keys";
pinctrl-0 = <&gpio_keys_default>;
pinctrl-names = "default";
label = "GPIO Buttons";
volume-up-button {
label = "Volume Up";
gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEUP>;
debounce-interval = <15>;
};
};
usb_id: usb-id {
compatible = "linux,extcon-usb-gpio";
id-gpios = <&tlmm 91 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&usb_id_default>;
pinctrl-1 = <&usb_id_sleep>;
pinctrl-names = "default", "sleep";
};
};
&blsp_i2c2 {
status = "okay";
touchscreen: touchscreen@20 {
compatible = "syna,rmi4-i2c";
reg = <0x20>;
#address-cells = <1>;
#size-cells = <0>;
vio-supply = <&pm8916_l6>;
syna,startup-delay-ms = <100>;
rmi4-f01@1 {
reg = <1>;
syna,nosleep-mode = <1>; /* Allow sleeping */
};
rmi4-f11@11 {
reg = <11>;
syna,sensor-type = <1>; /* Touchscreen */
};
};
};
&blsp_uart1 {
status = "okay";
};
&mpss_mem {
reg = <0x0 0x86800000 0x0 0x5500000>;
};
&pm8916_resin {
linux,code = <KEY_VOLUMEDOWN>;
status = "okay";
};
&pm8916_rpm_regulators {
pm8916_l16: l16 {
regulator-min-microvolt = <3100000>;
regulator-max-microvolt = <3300000>;
};
};
&pm8916_vib {
status = "okay";
};
&sdhc_1 {
status = "okay";
};
&sdhc_2 {
status = "okay";
};
&usb {
extcon = <&usb_id>, <&usb_id>;
status = "okay";
};
&usb_hs_phy {
extcon = <&usb_id>;
};
&venus {
status = "okay";
};
&venus_mem {
status = "okay";
};
&wcnss {
status = "okay";
};
&wcnss_iris {
compatible = "qcom,wcn3620";
};
&wcnss_mem {
status = "okay";
};
/* CTS/RTX are not used */
&blsp_uart1_default {
pins = "gpio0", "gpio1";
};
&blsp_uart1_sleep {
pins = "gpio0", "gpio1";
};
&tlmm {
gpio_keys_default: gpio-keys-default-state {
pins = "gpio107";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
};
usb_id_default: usb-id-default-state {
pins = "gpio91";
function = "gpio";
drive-strength = <8>;
bias-pull-up;
};
usb_id_sleep: usb-id-sleep-state {
pins = "gpio91";
function = "gpio";
drive-strength = <8>;
bias-disable;
};
};

View File

@ -0,0 +1,147 @@
// SPDX-License-Identifier: GPL-2.0-only
/dts-v1/;
#include "msm8916-motorola-common.dtsi"
/ {
model = "Motorola Moto G4 Play";
compatible = "motorola,harpia", "qcom,msm8916";
chassis-type = "handset";
};
&blsp_i2c1 {
status = "okay";
battery@36 {
compatible = "maxim,max17050";
reg = <0x36>;
interrupts-extended = <&tlmm 62 IRQ_TYPE_EDGE_FALLING>;
pinctrl-0 = <&battery_alert_default>;
pinctrl-names = "default";
maxim,rsns-microohm = <10000>;
maxim,over-heat-temp = <600>;
maxim,cold-temp = <(-200)>;
maxim,dead-volt = <3200>;
maxim,over-volt = <4500>;
};
/* charger@6b */
};
&blsp_i2c4 {
status = "okay";
accelerometer@19 {
compatible = "bosch,bma253";
reg = <0x19>;
interrupts-extended = <&tlmm 115 IRQ_TYPE_EDGE_RISING>,
<&tlmm 119 IRQ_TYPE_EDGE_RISING>;
vdd-supply = <&pm8916_l17>;
vddio-supply = <&pm8916_l6>;
mount-matrix = "1", "0", "0",
"0", "-1", "0",
"0", "0", "1";
pinctrl-0 = <&accel_int_default>;
pinctrl-names = "default";
};
/* proximity@49 */
};
&pm8916_codec {
qcom,micbias-lvl = <2800>;
qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
qcom,micbias1-ext-cap;
};
&pm8916_rpm_regulators {
pm8916_l17: l17 {
regulator-min-microvolt = <2850000>;
regulator-max-microvolt = <2850000>;
};
};
&sdhc_2 {
pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
pinctrl-names = "default", "sleep";
cd-gpios = <&tlmm 118 GPIO_ACTIVE_LOW>;
};
&sound {
audio-routing =
"AMIC1", "MIC BIAS External1",
"AMIC2", "MIC BIAS Internal2",
"AMIC3", "MIC BIAS External1";
pinctrl-0 = <&cdc_pdm_default &headset_switch_supply_en
&headset_switch_in>;
pinctrl-1 = <&cdc_pdm_sleep &headset_switch_supply_en
&headset_switch_in>;
pinctrl-names = "default", "sleep";
};
&touchscreen {
interrupts-extended = <&tlmm 13 IRQ_TYPE_EDGE_FALLING>;
vdd-supply = <&pm8916_l16>;
pinctrl-0 = <&ts_int_default>;
pinctrl-names = "default";
};
&tlmm {
accel_int_default: accel-int-default-state {
pins = "gpio115", "gpio119";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
battery_alert_default: battery-alert-default-state {
pins = "gpio62";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
};
headset_switch_in: headset-switch-in-state {
pins = "gpio112";
function = "gpio";
drive-strength = <2>;
bias-disable;
output-low;
};
headset_switch_supply_en: headset-switch-supply-en-state {
pins = "gpio111";
function = "gpio";
drive-strength = <2>;
bias-disable;
output-high;
};
sdc2_cd_default: sdc2-cd-default-state {
pins = "gpio118";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
ts_int_default: ts-int-default-state {
pins = "gpio13";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
};

View File

@ -0,0 +1,105 @@
// SPDX-License-Identifier: GPL-2.0-only
/dts-v1/;
#include "msm8916-motorola-common.dtsi"
/ {
model = "Motorola Moto G 2015";
compatible = "motorola,osprey", "qcom,msm8916";
chassis-type = "handset";
reg_touch_vdda: regulator-touch-vdda {
compatible = "regulator-fixed";
regulator-name = "touch_vdda";
gpio = <&tlmm 114 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-0 = <&touch_vdda_default>;
pinctrl-names = "default";
startup-delay-us = <300>;
vin-supply = <&pm8916_l16>;
};
};
&blsp_i2c1 {
status = "okay";
battery@36 {
compatible = "maxim,max17050";
reg = <0x36>;
interrupts-extended = <&tlmm 49 IRQ_TYPE_EDGE_FALLING>;
pinctrl-0 = <&battery_alert_default>;
pinctrl-names = "default";
maxim,rsns-microohm = <10000>;
maxim,over-heat-temp = <600>;
maxim,cold-temp = <(-200)>;
maxim,dead-volt = <3200>;
maxim,over-volt = <4500>;
};
};
&blsp_i2c6 {
/* magnetometer@c */
};
&pm8916_codec {
qcom,micbias1-ext-cap;
qcom,micbias2-ext-cap;
};
&sdhc_2 {
pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
pinctrl-names = "default", "sleep";
cd-gpios = <&tlmm 25 GPIO_ACTIVE_LOW>;
};
&sound {
audio-routing =
"AMIC1", "MIC BIAS External1",
"AMIC3", "MIC BIAS External1";
};
&touchscreen {
interrupts-extended = <&tlmm 21 IRQ_TYPE_EDGE_FALLING>;
vdd-supply = <&reg_touch_vdda>;
pinctrl-0 = <&ts_int_default>;
pinctrl-names = "default";
};
&tlmm {
battery_alert_default: battery-alert-default-state {
pins = "gpio49";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
};
sdc2_cd_default: sdc2-cd-default-state {
pins = "gpio25";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
ts_int_default: ts-int-default-state {
pins = "gpio21";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
touch_vdda_default: touch-vdda-default-state {
pins = "gpio114";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
};

View File

@ -0,0 +1,83 @@
// SPDX-License-Identifier: GPL-2.0-only
/dts-v1/;
#include "msm8916-motorola-common.dtsi"
/ {
model = "Motorola Moto E 2015 LTE";
compatible = "motorola,surnia", "qcom,msm8916";
chassis-type = "handset";
};
&blsp_i2c4 {
status = "okay";
battery@36 {
compatible = "maxim,max17050";
reg = <0x36>;
interrupts-extended = <&tlmm 12 IRQ_TYPE_EDGE_FALLING>;
pinctrl-0 = <&battery_alert_default>;
pinctrl-names = "default";
maxim,rsns-microohm = <10000>;
maxim,over-heat-temp = <600>;
maxim,cold-temp = <(-200)>;
maxim,dead-volt = <3200>;
maxim,over-volt = <4500>;
};
};
&pm8916_codec {
qcom,micbias1-ext-cap;
qcom,micbias2-ext-cap;
};
&sdhc_2 {
pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
pinctrl-names = "default", "sleep";
cd-gpios = <&tlmm 25 GPIO_ACTIVE_LOW>;
};
&sound {
audio-routing =
"AMIC1", "MIC BIAS External1",
"AMIC3", "MIC BIAS External1";
};
&touchscreen {
interrupts-extended = <&tlmm 21 IRQ_TYPE_EDGE_FALLING>;
vdd-supply = <&pm8916_l16>;
pinctrl-0 = <&ts_int_default>;
pinctrl-names = "default";
};
&tlmm {
battery_alert_default: battery-alert-default-state {
pins = "gpio12";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
};
sdc2_cd_default: sdc2-cd-default-state {
pins = "gpio25";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
ts_int_default: ts-int-default-state {
pins = "gpio21";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
};

View File

@ -28,6 +28,12 @@
};
};
battery: battery {
compatible = "simple-battery";
precharge-current-microamp = <450000>;
precharge-upper-limit-microvolt = <3500000>;
};
clk_pwm: pwm {
compatible = "clk-pwm";
#pwm-cells = <2>;
@ -245,7 +251,7 @@
&blsp_i2c4 {
status = "okay";
battery@35 {
fuel-gauge@35 {
compatible = "richtek,rt5033-battery";
reg = <0x35>;
interrupt-parent = <&tlmm>;
@ -253,6 +259,44 @@
pinctrl-names = "default";
pinctrl-0 = <&fg_alert_default>;
power-supplies = <&charger>;
};
};
&blsp_i2c6 {
status = "okay";
pmic@34 {
compatible = "richtek,rt5033";
reg = <0x34>;
interrupts-extended = <&tlmm 62 IRQ_TYPE_EDGE_FALLING>;
pinctrl-0 = <&pmic_int_default>;
pinctrl-names = "default";
regulators {
rt5033_reg_safe_ldo: SAFE_LDO {
regulator-min-microvolt = <4900000>;
regulator-max-microvolt = <4900000>;
regulator-always-on;
};
/*
* Needed for camera, but not used yet.
* Define empty nodes to allow disabling the unused
* regulators.
*/
LDO {};
BUCK {};
};
charger: charger {
compatible = "richtek,rt5033-charger";
monitored-battery = <&battery>;
richtek,usb-connector = <&usb_con>;
};
};
};
@ -476,6 +520,13 @@
bias-disable;
};
pmic_int_default: pmic-int-default-state {
pins = "gpio62";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
sdc2_cd_default: sdc2-cd-default-state {
pins = "gpio38";
function = "gpio";

View File

@ -55,6 +55,12 @@
"0", "0", "1";
};
&battery {
charge-term-current-microamp = <150000>;
constant-charge-current-max-microamp = <1000000>;
constant-charge-voltage-max-microvolt = <4350000>;
};
&blsp_i2c5 {
status = "okay";

View File

@ -29,6 +29,12 @@
"0", "0", "1";
};
&battery {
charge-term-current-microamp = <200000>;
constant-charge-current-max-microamp = <1500000>;
constant-charge-voltage-max-microvolt = <4350000>;
};
&blsp_i2c5 {
status = "okay";

View File

@ -23,6 +23,12 @@
chassis-type = "handset";
};
&battery {
charge-term-current-microamp = <200000>;
constant-charge-current-max-microamp = <1500000>;
constant-charge-voltage-max-microvolt = <4350000>;
};
&blsp_i2c5 {
status = "okay";

View File

@ -23,6 +23,13 @@
chassis-type = "handset";
};
&battery {
charge-term-current-microamp = <200000>;
constant-charge-current-max-microamp = <1500000>;
constant-charge-voltage-max-microvolt = <4350000>;
};
&pm8916_l17 {
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;

View File

@ -6,6 +6,7 @@
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
/ {
aliases {
@ -26,6 +27,12 @@
};
};
battery: battery {
compatible = "simple-battery";
precharge-current-microamp = <450000>;
precharge-upper-limit-microvolt = <3500000>;
};
clk_pwm_backlight: backlight {
compatible = "pwm-backlight";
pwms = <&clk_pwm 0 100000>;
@ -78,6 +85,35 @@
max-microvolt = <3300000>;
};
i2c_nfc: i2c-nfc {
compatible = "i2c-gpio";
sda-gpios = <&tlmm 0 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
scl-gpios = <&tlmm 1 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
pinctrl-0 = <&nfc_i2c_default>;
pinctrl-names = "default";
#address-cells = <1>;
#size-cells = <0>;
s3fwrn5_nfc: nfc@27 {
compatible = "samsung,s3fwrn5-i2c";
reg = <0x27>;
interrupts-extended = <&tlmm 21 IRQ_TYPE_EDGE_RISING>;
en-gpios = <&tlmm 20 GPIO_ACTIVE_HIGH>;
wake-gpios = <&tlmm 49 GPIO_ACTIVE_HIGH>;
clocks = <&rpmcc RPM_SMD_BB_CLK2_PIN>;
pinctrl-0 = <&nfc_default>, <&nfc_clk_req>;
pinctrl-names = "default";
status = "disabled";
};
};
reg_motor_vdd: regulator-motor-vdd {
compatible = "regulator-fixed";
regulator-name = "motor_vdd";
@ -114,6 +150,82 @@
interrupts-extended = <&tlmm 12 IRQ_TYPE_EDGE_FALLING>;
pinctrl-0 = <&muic_int_default>;
pinctrl-names = "default";
usb_con: connector {
compatible = "usb-b-connector";
label = "micro-USB";
type = "micro";
};
};
};
&blsp_i2c2 {
/* Available sensors vary depending on model variant */
status = "okay";
bosch_accel: accelerometer@10 {
compatible = "bosch,bmc150_accel";
reg = <0x10>;
interrupts-extended = <&tlmm 115 IRQ_TYPE_EDGE_RISING>;
vdd-supply = <&pm8916_l5>;
vddio-supply = <&pm8916_l5>;
pinctrl-0 = <&accel_int_default>;
pinctrl-names = "default";
mount-matrix = "0", "-1", "0",
"-1", "0", "0",
"0", "0", "1";
status = "disabled";
};
bosch_magn: magnetometer@12 {
compatible = "bosch,bmc150_magn";
reg = <0x12>;
vdd-supply = <&pm8916_l5>;
vddio-supply = <&pm8916_l5>;
mount-matrix = "0", "-1", "0",
"-1", "0", "0",
"0", "0", "1";
status = "disabled";
};
st_accel: accelerometer@1d {
compatible = "st,lsm303c-accel";
reg = <0x1d>;
interrupts-extended = <&tlmm 115 IRQ_TYPE_LEVEL_HIGH>;
vdd-supply = <&pm8916_l17>;
vddio-supply = <&pm8916_l5>;
pinctrl-0 = <&accel_int_default>;
pinctrl-names = "default";
st,drdy-int-pin = <1>;
mount-matrix = "0", "-1", "0",
"1", "0", "0",
"0", "0", "-1";
status = "disabled";
};
st_magn: magnetometer@1e {
compatible = "st,lsm303c-magn";
reg = <0x1e>;
vdd-supply = <&pm8916_l17>;
vddio-supply = <&pm8916_l5>;
mount-matrix = "0", "-1", "0",
"1", "0", "0",
"0", "0", "-1";
status = "disabled";
};
};
@ -128,6 +240,8 @@
pinctrl-0 = <&fg_alert_default>;
pinctrl-names = "default";
power-supplies = <&charger>;
};
};
@ -151,6 +265,42 @@
};
};
&blsp_i2c6 {
status = "okay";
pmic@34 {
compatible = "richtek,rt5033";
reg = <0x34>;
interrupts-extended = <&tlmm 62 IRQ_TYPE_EDGE_FALLING>;
pinctrl-0 = <&pmic_int_default>;
pinctrl-names = "default";
regulators {
rt5033_reg_safe_ldo: SAFE_LDO {
regulator-min-microvolt = <4900000>;
regulator-max-microvolt = <4900000>;
regulator-always-on;
};
/*
* Needed for camera, but not used yet.
* Define empty nodes to allow disabling the unused
* regulators.
*/
LDO {};
BUCK {};
};
charger: charger {
compatible = "richtek,rt5033-charger";
monitored-battery = <&battery>;
richtek,usb-connector = <&usb_con>;
};
};
};
&blsp_uart2 {
status = "okay";
};
@ -223,6 +373,13 @@
};
&tlmm {
accel_int_default: accel-int-default-state {
pins = "gpio115";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
backlight_en_default: backlight-en-default-state {
pins = "gpio98";
function = "gpio";
@ -263,6 +420,36 @@
bias-disable;
};
nfc_default: nfc-default-state {
irq-pins {
pins = "gpio21";
function = "gpio";
drive-strength = <2>;
bias-pull-down;
};
nfc-pins {
pins = "gpio20", "gpio49";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
};
nfc_i2c_default: nfc-i2c-default-state {
pins = "gpio0", "gpio1";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
pmic_int_default: pmic-int-default-state {
pins = "gpio62";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
sdc2_cd_default: sdc2-cd-default-state {
pins = "gpio38";
function = "gpio";
@ -284,3 +471,13 @@
bias-disable;
};
};
&pm8916_gpios {
nfc_clk_req: nfc-clk-req-state {
pins = "gpio2";
function = "func1";
power-source = <PM8916_GPIO_L2>;
bias-disable;
input-enable;
};
};

View File

@ -21,6 +21,76 @@
};
};
&battery {
charge-term-current-microamp = <200000>;
constant-charge-current-max-microamp = <1000000>;
constant-charge-voltage-max-microvolt = <4350000>;
};
&bosch_accel {
status = "okay";
};
&bosch_magn {
status = "okay";
};
&blsp_i2c6 {
/* pmic@34 is on i2c_nfc instead */
/delete-node/ pmic@34;
nfc@27 {
compatible = "samsung,s3fwrn5-i2c";
reg = <0x27>;
interrupts-extended = <&tlmm 21 IRQ_TYPE_EDGE_RISING>;
en-gpios = <&tlmm 20 GPIO_ACTIVE_HIGH>;
wake-gpios = <&tlmm 49 GPIO_ACTIVE_HIGH>;
clocks = <&rpmcc RPM_SMD_BB_CLK2_PIN>;
pinctrl-0 = <&nfc_default>, <&nfc_clk_req>;
pinctrl-names = "default";
};
};
&i2c_nfc {
/* nfc@27 is on &blsp_i2c6 */
pmic@34 {
compatible = "richtek,rt5033";
reg = <0x34>;
interrupts-extended = <&tlmm 62 IRQ_TYPE_EDGE_FALLING>;
pinctrl-0 = <&pmic_int_default>;
pinctrl-names = "default";
regulators {
rt5033_reg_safe_ldo: SAFE_LDO {
regulator-min-microvolt = <4900000>;
regulator-max-microvolt = <4900000>;
regulator-always-on;
};
/*
* Needed for camera, but not used yet.
* Define empty nodes to allow disabling the unused
* regulators.
*/
LDO {};
BUCK {};
};
charger: charger {
compatible = "richtek,rt5033-charger";
monitored-battery = <&battery>;
richtek,usb-connector = <&usb_con>;
};
};
};
&mpss_mem {
/* Firmware for gprimeltecan needs more space */
reg = <0x0 0x86800000 0x0 0x5400000>;

View File

@ -41,6 +41,12 @@
};
};
&battery {
charge-term-current-microamp = <150000>;
constant-charge-current-max-microamp = <1000000>;
constant-charge-voltage-max-microvolt = <4400000>;
};
&reg_motor_vdd {
gpio = <&tlmm 72 GPIO_ACTIVE_HIGH>;
};

View File

@ -10,6 +10,20 @@
chassis-type = "handset";
};
&battery {
charge-term-current-microamp = <200000>;
constant-charge-current-max-microamp = <1000000>;
constant-charge-voltage-max-microvolt = <4350000>;
};
&bosch_accel {
status = "okay";
};
&bosch_magn {
status = "okay";
};
&mpss_mem {
/* Firmware for grandprimelte needs more space */
reg = <0x0 0x86800000 0x0 0x5400000>;

View File

@ -15,6 +15,12 @@
interrupts-extended = <&tlmm 12 IRQ_TYPE_EDGE_FALLING>;
pinctrl-0 = <&muic_int_default>;
pinctrl-names = "default";
usb_con: connector {
compatible = "usb-b-connector";
label = "micro-USB";
type = "micro";
};
};
};
@ -26,3 +32,15 @@
&clk_pwm_backlight {
status = "disabled";
};
&s3fwrn5_nfc {
status = "okay";
};
&st_accel {
compatible = "st,lis2hh12";
mount-matrix = "1", "0", "0",
"0", "-1", "0",
"0", "0", "1";
status = "okay";
};

View File

@ -10,6 +10,12 @@
chassis-type = "handset";
};
&battery {
charge-term-current-microamp = <150000>;
constant-charge-current-max-microamp = <700000>;
constant-charge-voltage-max-microvolt = <4400000>;
};
&mpss_mem {
/* Firmware for rossa needs more space */
reg = <0x0 0x86800000 0x0 0x5800000>;

View File

@ -308,7 +308,7 @@
smd-edge {
interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
qcom,ipc = <&apcs 8 0>;
mboxes = <&apcs 0>;
qcom,smd-edge = <15>;
rpm_requests: rpm-requests {
@ -360,7 +360,7 @@
interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
qcom,ipc = <&apcs 8 14>;
mboxes = <&apcs 14>;
qcom,local-pid = <0>;
qcom,remote-pid = <1>;
@ -385,7 +385,7 @@
interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
qcom,ipc = <&apcs 8 18>;
mboxes = <&apcs 18>;
qcom,local-pid = <0>;
qcom,remote-pid = <4>;
@ -410,8 +410,7 @@
#address-cells = <1>;
#size-cells = <0>;
qcom,ipc-1 = <&apcs 8 13>;
qcom,ipc-3 = <&apcs 8 19>;
mboxes = <0>, <&apcs 13>, <0>, <&apcs 19>;
apps_smsm: apps@0 {
reg = <0>;
@ -1978,7 +1977,7 @@
interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
qcom,smd-edge = <0>;
qcom,ipc = <&apcs 8 12>;
mboxes = <&apcs 12>;
qcom,remote-pid = <1>;
label = "hexagon";
@ -2459,7 +2458,7 @@
smd-edge {
interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
qcom,ipc = <&apcs 8 17>;
mboxes = <&apcs 17>;
qcom,smd-edge = <6>;
qcom,remote-pid = <4>;
@ -2626,7 +2625,6 @@
thermal-zones {
cpu0-1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 5>;
@ -2656,7 +2654,6 @@
cpu2-3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 4>;
@ -2686,7 +2683,6 @@
gpu-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 2>;
@ -2713,7 +2709,6 @@
camera-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 1>;
@ -2728,7 +2723,6 @@
modem-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 0>;

View File

@ -33,6 +33,15 @@
};
};
battery: battery {
compatible = "simple-battery";
charge-term-current-microamp = <150000>;
constant-charge-current-max-microamp = <1500000>;
constant-charge-voltage-max-microvolt = <4300000>;
precharge-current-microamp = <450000>;
precharge-upper-limit-microvolt = <3500000>;
};
gpio-hall-sensor {
compatible = "gpio-keys";
@ -82,7 +91,7 @@
#address-cells = <1>;
#size-cells = <0>;
battery@35 {
fuel-gauge@35 {
compatible = "richtek,rt5033-battery";
reg = <0x35>;
@ -91,6 +100,8 @@
pinctrl-0 = <&fg_alert_default>;
pinctrl-names = "default";
power-supplies = <&charger>;
};
};
@ -325,6 +336,42 @@
};
};
&blsp_i2c6 {
status = "okay";
pmic@34 {
compatible = "richtek,rt5033";
reg = <0x34>;
interrupts-extended = <&tlmm 62 IRQ_TYPE_EDGE_FALLING>;
pinctrl-0 = <&pmic_int_default>;
pinctrl-names = "default";
regulators {
rt5033_reg_safe_ldo: SAFE_LDO {
regulator-min-microvolt = <4900000>;
regulator-max-microvolt = <4900000>;
regulator-always-on;
};
/*
* Needed for camera, but not used yet.
* Define empty nodes to allow disabling the unused
* regulators.
*/
LDO {};
BUCK {};
};
charger: charger {
compatible = "richtek,rt5033-charger";
monitored-battery = <&battery>;
richtek,usb-connector = <&usb_con>;
};
};
};
&blsp_uart2 {
status = "okay";
};
@ -510,6 +557,13 @@
bias-disable;
};
pmic_int_default: pmic-int-default-state {
pins = "gpio62";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
reg_tsp_en_default: reg-tsp-en-default-state {
pins = "gpio73";
function = "gpio";

View File

@ -248,7 +248,7 @@
smd-edge {
interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
qcom,ipc = <&apcs1_mbox 8 0>;
mboxes = <&apcs1_mbox 0>;
qcom,smd-edge = <15>;
rpm_requests: rpm-requests {
@ -443,8 +443,7 @@
#address-cells = <1>;
#size-cells = <0>;
qcom,ipc-1 = <&apcs1_mbox 8 13>;
qcom,ipc-3 = <&apcs1_mbox 8 19>;
mboxes = <0>, <&apcs1_mbox 13>, <0>, <&apcs1_mbox 19>;
apps_smsm: apps@0 {
reg = <0>;
@ -2067,7 +2066,7 @@
smd-edge {
interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
qcom,ipc = <&apcs1_mbox 8 17>;
mboxes = <&apcs1_mbox 17>;
qcom,smd-edge = <6>;
qcom,remote-pid = <4>;
@ -2299,7 +2298,6 @@
thermal_zones: thermal-zones {
cpu0-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 5>;
@ -2330,7 +2328,6 @@
cpu1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 6>;
@ -2361,7 +2358,6 @@
cpu2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 7>;
@ -2392,7 +2388,6 @@
cpu3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 8>;
@ -2423,7 +2418,6 @@
cpu4567-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 9>;
@ -2454,7 +2448,6 @@
gpu-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 3>;
@ -2482,7 +2475,6 @@
modem1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 0>;
@ -2497,7 +2489,6 @@
modem2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 2>;
@ -2512,7 +2503,6 @@
camera-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 1>;

View File

@ -301,5 +301,6 @@
};
&usb3_dwc3 {
/delete-property/ usb-role-switch;
dr_mode = "peripheral";
};

View File

@ -321,5 +321,6 @@
};
&usb3_dwc3 {
/delete-property/ usb-role-switch;
dr_mode = "peripheral";
};

View File

@ -326,5 +326,6 @@
};
&usb3_dwc3 {
/delete-property/ usb-role-switch;
dr_mode = "peripheral";
};

View File

@ -322,5 +322,6 @@
};
&usb3_dwc3 {
/delete-property/ usb-role-switch;
dr_mode = "peripheral";
};

View File

@ -357,5 +357,6 @@
};
&usb3_dwc3 {
/delete-property/ usb-role-switch;
dr_mode = "peripheral";
};

View File

@ -195,7 +195,7 @@
smd-edge {
interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
qcom,ipc = <&apcs 8 0>;
mboxes = <&apcs 0>;
qcom,smd-edge = <15>;
rpm_requests: rpm-requests {
@ -361,7 +361,7 @@
interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
qcom,ipc = <&apcs 8 14>;
mboxes = <&apcs 14>;
qcom,local-pid = <0>;
qcom,remote-pid = <1>;
@ -386,7 +386,7 @@
interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
qcom,ipc = <&apcs 8 18>;
mboxes = <&apcs 18>;
qcom,local-pid = <0>;
qcom,remote-pid = <4>;
@ -411,8 +411,7 @@
#address-cells = <1>;
#size-cells = <0>;
qcom,ipc-1 = <&apcs 8 13>;
qcom,ipc-3 = <&apcs 8 19>;
mboxes = <0>, <&apcs 13>, <0>, <&apcs 19>;
apps_smsm: apps@0 {
reg = <0>;
@ -1267,7 +1266,7 @@
interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
qcom,smd-edge = <0>;
qcom,ipc = <&apcs 8 12>;
mboxes = <&apcs 12>;
qcom,remote-pid = <1>;
label = "modem";
@ -1748,7 +1747,7 @@
smd-edge {
interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
qcom,ipc = <&apcs 8 17>;
mboxes = <&apcs 17>;
qcom,smd-edge = <6>;
qcom,remote-pid = <4>;
@ -1968,8 +1967,9 @@
thermal-zones {
cpu0-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 9>;
trips {
cpu0_alert: trip-point0 {
temperature = <80000>;
@ -1991,8 +1991,9 @@
};
cpu1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 10>;
trips {
cpu1_alert: trip-point0 {
temperature = <80000>;
@ -2014,8 +2015,9 @@
};
cpu2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 11>;
trips {
cpu2_alert: trip-point0 {
temperature = <80000>;
@ -2037,8 +2039,9 @@
};
cpu3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 12>;
trips {
cpu3_alert: trip-point0 {
temperature = <80000>;
@ -2060,7 +2063,6 @@
};
cpu4-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 4>;
trips {
cpu4_alert: trip-point0 {
@ -2083,7 +2085,6 @@
};
cpu5-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 5>;
trips {
cpu5_alert: trip-point0 {
@ -2106,7 +2107,6 @@
};
cpu6-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 6>;
trips {
cpu6_alert: trip-point0 {
@ -2129,7 +2129,6 @@
};
cpu7-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 7>;
trips {
cpu7_alert: trip-point0 {
@ -2153,7 +2152,6 @@
gpu-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 15>;
trips {

View File

@ -8,8 +8,8 @@
#include "msm8976.dtsi"
&pmu {
interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
&pmu_a72 {
interrupts = <GIC_PPI 7 (GIC_CPU_MASK_RAW(0x30) | IRQ_TYPE_LEVEL_HIGH)>;
};
&tsens {

View File

@ -222,11 +222,17 @@
reg = <0x0 0x80000000 0x0 0x0>;
};
pmu: pmu {
compatible = "arm,armv8-pmuv3";
interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
pmu-a53 {
compatible = "arm,cortex-a53-pmu";
interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
};
pmu_a72: pmu-a72 {
compatible = "arm,cortex-a72-pmu";
interrupts = <GIC_PPI 7 (GIC_CPU_MASK_RAW(0xf0) | IRQ_TYPE_LEVEL_HIGH)>;
};
psci {
compatible = "arm,psci-1.0";
method = "smc";
@ -237,7 +243,7 @@
smd-edge {
interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
qcom,ipc = <&apcs 8 0>;
mboxes = <&apcs 0>;
qcom,smd-edge = <15>;
rpm_requests: rpm-requests {
@ -361,7 +367,7 @@
smp2p-hexagon {
compatible = "qcom,smp2p";
interrupts = <GIC_SPI 291 IRQ_TYPE_EDGE_RISING>;
qcom,ipc = <&apcs 8 10>;
mboxes = <&apcs 10>;
qcom,local-pid = <0>;
qcom,remote-pid = <2>;
@ -384,7 +390,7 @@
smp2p-modem {
compatible = "qcom,smp2p";
interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
qcom,ipc = <&apcs 8 14>;
mboxes = <&apcs 14>;
qcom,local-pid = <0>;
qcom,remote-pid = <1>;
@ -407,7 +413,7 @@
smp2p-wcnss {
compatible = "qcom,smp2p";
interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
qcom,ipc = <&apcs 8 18>;
mboxes = <&apcs 18>;
qcom,local-pid = <0>;
qcom,remote-pid = <4>;
@ -433,9 +439,7 @@
#address-cells = <1>;
#size-cells = <0>;
qcom,ipc-1 = <&apcs 8 13>;
qcom,ipc-2 = <&apcs 8 9>;
qcom,ipc-3 = <&apcs 8 19>;
mboxes = <0>, <&apcs 13>, <&apcs 9>, <&apcs 19>;
apps_smsm: apps@0 {
reg = <0>;
@ -771,6 +775,36 @@
drive-strength = <2>;
bias-disable;
};
wcss_wlan_default: wcss-wlan-default-state {
wcss-wlan2-pins {
pins = "gpio40";
function = "wcss_wlan2";
drive-strength = <6>;
bias-pull-up;
};
wcss-wlan1-pins {
pins = "gpio41";
function = "wcss_wlan1";
drive-strength = <6>;
bias-pull-up;
};
wcss-wlan0-pins {
pins = "gpio42";
function = "wcss_wlan0";
drive-strength = <6>;
bias-pull-up;
};
wcss-wlan-pins {
pins = "gpio43", "gpio44";
function = "wcss_wlan";
drive-strength = <6>;
bias-pull-up;
};
};
};
gcc: clock-controller@1800000 {
@ -785,10 +819,10 @@
clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
<&rpmcc RPM_SMD_XO_A_CLK_SRC>,
<0>,
<0>,
<0>,
<0>;
<&mdss_dsi0_phy 1>,
<&mdss_dsi0_phy 0>,
<&mdss_dsi1_phy 1>,
<&mdss_dsi1_phy 0>;
clock-names = "xo",
"xo_a",
"dsi0pll",
@ -808,6 +842,430 @@
reg = <0x01937000 0x30000>;
};
mdss: display-subsystem@1a00000 {
compatible = "qcom,mdss";
reg = <0x01a00000 0x1000>,
<0x01ab0000 0x3000>;
reg-names = "mdss_phys", "vbif_phys";
power-domains = <&gcc MDSS_GDSC>;
interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
interrupt-controller;
#interrupt-cells = <1>;
clocks = <&gcc GCC_MDSS_AHB_CLK>,
<&gcc GCC_MDSS_AXI_CLK>,
<&gcc GCC_MDSS_VSYNC_CLK>,
<&gcc GCC_MDSS_MDP_CLK>;
clock-names = "iface",
"bus",
"vsync",
"core";
#address-cells = <1>;
#size-cells = <1>;
ranges;
status = "disabled";
mdss_mdp: display-controller@1a01000 {
compatible = "qcom,msm8976-mdp5", "qcom,mdp5";
reg = <0x01a01000 0x89000>;
reg-names = "mdp_phys";
interrupt-parent = <&mdss>;
interrupts = <0>;
clocks = <&gcc GCC_MDSS_AHB_CLK>,
<&gcc GCC_MDSS_AXI_CLK>,
<&gcc GCC_MDSS_MDP_CLK>,
<&gcc GCC_MDSS_VSYNC_CLK>,
<&gcc GCC_MDP_TBU_CLK>,
<&gcc GCC_MDP_RT_TBU_CLK>;
clock-names = "iface",
"bus",
"core",
"vsync",
"tbu",
"tbu_rt";
operating-points-v2 = <&mdp_opp_table>;
power-domains = <&gcc MDSS_GDSC>;
iommus = <&apps_iommu 22>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
mdss_mdp5_intf1_out: endpoint {
remote-endpoint = <&mdss_dsi0_in>;
};
};
port@1 {
reg = <1>;
mdss_mdp5_intf2_out: endpoint {
remote-endpoint = <&mdss_dsi1_in>;
};
};
};
mdp_opp_table: opp-table {
compatible = "operating-points-v2";
opp-177780000 {
opp-hz = /bits/ 64 <177780000>;
required-opps = <&rpmpd_opp_svs>;
};
opp-270000000 {
opp-hz = /bits/ 64 <270000000>;
required-opps = <&rpmpd_opp_svs_plus>;
};
opp-320000000 {
opp-hz = /bits/ 64 <320000000>;
required-opps = <&rpmpd_opp_nom>;
};
opp-360000000 {
opp-hz = /bits/ 64 <360000000>;
required-opps = <&rpmpd_opp_turbo>;
};
};
};
mdss_dsi0: dsi@1a94000 {
compatible = "qcom,msm8976-dsi-ctrl", "qcom,mdss-dsi-ctrl";
reg = <0x01a94000 0x300>;
reg-names = "dsi_ctrl";
interrupt-parent = <&mdss>;
interrupts = <4>;
clocks = <&gcc GCC_MDSS_MDP_CLK>,
<&gcc GCC_MDSS_AHB_CLK>,
<&gcc GCC_MDSS_AXI_CLK>,
<&gcc GCC_MDSS_BYTE0_CLK>,
<&gcc GCC_MDSS_PCLK0_CLK>,
<&gcc GCC_MDSS_ESC0_CLK>;
clock-names = "mdp_core",
"iface",
"bus",
"byte",
"pixel",
"core";
assigned-clocks = <&gcc GCC_MDSS_BYTE0_CLK_SRC>,
<&gcc GCC_MDSS_PCLK0_CLK_SRC>;
assigned-clock-parents = <&mdss_dsi0_phy 0>,
<&mdss_dsi0_phy 1>;
phys = <&mdss_dsi0_phy>;
operating-points-v2 = <&dsi0_opp_table>;
power-domains = <&gcc MDSS_GDSC>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
mdss_dsi0_in: endpoint {
remote-endpoint = <&mdss_mdp5_intf1_out>;
};
};
port@1 {
reg = <1>;
mdss_dsi0_out: endpoint {
};
};
};
dsi0_opp_table: opp-table {
compatible = "operating-points-v2";
opp-125000000 {
opp-hz = /bits/ 64 <125000000>;
required-opps = <&rpmpd_opp_svs>;
};
opp-161250000 {
opp-hz = /bits/ 64 <161250000>;
required-opps = <&rpmpd_opp_svs_plus>;
};
opp-187500000 {
opp-hz = /bits/ 64 <187500000>;
required-opps = <&rpmpd_opp_nom>;
};
};
};
mdss_dsi1: dsi@1a96000 {
compatible = "qcom,msm8976-dsi-ctrl", "qcom,mdss-dsi-ctrl";
reg = <0x01a96000 0x300>;
reg-names = "dsi_ctrl";
interrupt-parent = <&mdss>;
interrupts = <5>;
clocks = <&gcc GCC_MDSS_MDP_CLK>,
<&gcc GCC_MDSS_AHB_CLK>,
<&gcc GCC_MDSS_AXI_CLK>,
<&gcc GCC_MDSS_BYTE1_CLK>,
<&gcc GCC_MDSS_PCLK1_CLK>,
<&gcc GCC_MDSS_ESC1_CLK>;
clock-names = "mdp_core",
"iface",
"bus",
"byte",
"pixel",
"core";
assigned-clocks = <&gcc GCC_MDSS_BYTE1_CLK_SRC>,
<&gcc GCC_MDSS_PCLK1_CLK_SRC>;
assigned-clock-parents = <&mdss_dsi1_phy 0>,
<&mdss_dsi1_phy 1>;
phys = <&mdss_dsi1_phy>;
operating-points-v2 = <&dsi0_opp_table>;
power-domains = <&gcc MDSS_GDSC>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
mdss_dsi1_in: endpoint {
remote-endpoint = <&mdss_mdp5_intf2_out>;
};
};
port@1 {
reg = <1>;
mdss_dsi1_out: endpoint {
};
};
};
};
mdss_dsi0_phy: phy@1a94a00 {
compatible = "qcom,dsi-phy-28nm-hpm-fam-b";
reg = <0x01a94a00 0xd4>,
<0x01a94400 0x280>,
<0x01a94b80 0x30>;
reg-names = "dsi_pll",
"dsi_phy",
"dsi_phy_regulator";
#clock-cells = <1>;
#phy-cells = <0>;
clocks = <&gcc GCC_MDSS_AHB_CLK>,
<&rpmcc RPM_SMD_XO_CLK_SRC>;
clock-names = "iface", "ref";
status = "disabled";
};
mdss_dsi1_phy: phy@1a96a00 {
compatible = "qcom,dsi-phy-28nm-hpm-fam-b";
reg = <0x01a96a00 0xd4>,
<0x01a96400 0x280>,
<0x01a96b80 0x30>;
reg-names = "dsi_pll",
"dsi_phy",
"dsi_phy_regulator";
#clock-cells = <1>;
#phy-cells = <0>;
clocks = <&gcc GCC_MDSS_AHB_CLK>,
<&rpmcc RPM_SMD_XO_CLK_SRC>;
clock-names = "iface", "ref";
status = "disabled";
};
};
adreno_gpu: gpu@1c00000 {
compatible = "qcom,adreno-510.0", "qcom,adreno";
reg = <0x01c00000 0x40000>;
reg-names = "kgsl_3d0_reg_memory";
interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "kgsl_3d0_irq";
clocks = <&gcc GCC_GFX3D_OXILI_CLK>,
<&gcc GCC_GFX3D_OXILI_AHB_CLK>,
<&gcc GCC_GFX3D_OXILI_GMEM_CLK>,
<&gcc GCC_GFX3D_BIMC_CLK>,
<&gcc GCC_GFX3D_OXILI_TIMER_CLK>,
<&gcc GCC_GFX3D_OXILI_AON_CLK>;
clock-names = "core",
"iface",
"mem",
"mem_iface",
"rbbmtimer",
"alwayson";
power-domains = <&gcc OXILI_GX_GDSC>;
iommus = <&gpu_iommu 0>;
operating-points-v2 = <&gpu_opp_table>;
status = "disabled";
gpu_opp_table: opp-table {
compatible = "operating-points-v2";
opp-200000000 {
opp-hz = /bits/ 64 <200000000>;
required-opps = <&rpmpd_opp_low_svs>;
opp-supported-hw = <0xff>;
};
opp-300000000 {
opp-hz = /bits/ 64 <300000000>;
required-opps = <&rpmpd_opp_svs>;
opp-supported-hw = <0xff>;
};
opp-400000000 {
opp-hz = /bits/ 64 <400000000>;
required-opps = <&rpmpd_opp_nom>;
opp-supported-hw = <0xff>;
};
opp-480000000 {
opp-hz = /bits/ 64 <480000000>;
required-opps = <&rpmpd_opp_nom_plus>;
opp-supported-hw = <0xff>;
};
opp-540000000 {
opp-hz = /bits/ 64 <540000000>;
required-opps = <&rpmpd_opp_turbo>;
opp-supported-hw = <0xff>;
};
opp-600000000 {
opp-hz = /bits/ 64 <600000000>;
required-opps = <&rpmpd_opp_turbo>;
opp-supported-hw = <0xff>;
};
};
};
apps_iommu: iommu@1ee0000 {
compatible = "qcom,msm8976-iommu", "qcom,msm-iommu-v2";
reg = <0x01ee0000 0x3000>;
ranges = <0 0x01e20000 0x20000>;
clocks = <&gcc GCC_SMMU_CFG_CLK>,
<&gcc GCC_APSS_TCU_CLK>;
clock-names = "iface", "bus";
qcom,iommu-secure-id = <17>;
#address-cells = <1>;
#size-cells = <1>;
#iommu-cells = <1>;
/* VFE */
iommu-ctx@15000 {
compatible = "qcom,msm-iommu-v2-ns";
reg = <0x15000 0x1000>;
qcom,ctx-asid = <20>;
interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
};
/* VENUS NS */
iommu-ctx@16000 {
compatible = "qcom,msm-iommu-v2-ns";
reg = <0x16000 0x1000>;
qcom,ctx-asid = <21>;
interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
};
/* MDP0 */
iommu-ctx@17000 {
compatible = "qcom,msm-iommu-v2-ns";
reg = <0x17000 0x1000>;
qcom,ctx-asid = <22>;
interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
};
};
gpu_iommu: iommu@1f08000 {
compatible = "qcom,msm8976-iommu", "qcom,msm-iommu-v2";
ranges = <0 0x01f08000 0x8000>;
clocks = <&gcc GCC_SMMU_CFG_CLK>,
<&gcc GCC_GFX3D_TCU_CLK>;
clock-names = "iface", "bus";
power-domains = <&gcc OXILI_CX_GDSC>;
qcom,iommu-secure-id = <18>;
#address-cells = <1>;
#size-cells = <1>;
#iommu-cells = <1>;
/* gfx3d user */
iommu-ctx@0 {
compatible = "qcom,msm-iommu-v2-ns";
reg = <0x0 0x1000>;
qcom,ctx-asid = <0>;
interrupts = <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>;
};
/* gfx3d secure */
iommu-ctx@1000 {
compatible = "qcom,msm-iommu-v2-sec";
reg = <0x1000 0x1000>;
qcom,ctx-asid = <2>;
interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
};
/* gfx3d priv */
iommu-ctx@2000 {
compatible = "qcom,msm-iommu-v2-sec";
reg = <0x2000 0x1000>;
qcom,ctx-asid = <1>;
interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>;
};
};
spmi_bus: spmi@200f000 {
compatible = "qcom,spmi-pmic-arb";
reg = <0x0200f000 0x1000>,
@ -1034,6 +1492,81 @@
status = "disabled";
};
wcnss: remoteproc@a204000 {
compatible = "qcom,pronto-v3-pil", "qcom,pronto";
reg = <0x0a204000 0x2000>,
<0x0a202000 0x1000>,
<0x0a21b000 0x3000>;
reg-names = "ccu",
"dxe",
"pmu";
memory-region = <&wcnss_fw_mem>;
interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
<&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
<&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
<&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
<&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "wdog",
"fatal",
"ready",
"handover",
"stop-ack";
power-domains = <&rpmpd MSM8976_VDDCX>,
<&rpmpd MSM8976_VDDMX>;
power-domain-names = "cx", "mx";
qcom,smem-states = <&wcnss_smp2p_out 0>;
qcom,smem-state-names = "stop";
pinctrl-0 = <&wcss_wlan_default>;
pinctrl-names = "default";
status = "disabled";
wcnss_iris: iris {
/* Separate chip, compatible is board-specific */
clocks = <&rpmcc RPM_SMD_RF_CLK2>;
clock-names = "xo";
};
smd-edge {
interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
mboxes = <&apcs 17>;
qcom,smd-edge = <6>;
qcom,remote-pid = <4>;
label = "pronto";
wcnss_ctrl: wcnss {
compatible = "qcom,wcnss";
qcom,smd-channels = "WCNSS_CTRL";
qcom,mmio = <&wcnss>;
wcnss_bt: bluetooth {
compatible = "qcom,wcnss-bt";
};
wcnss_wifi: wifi {
compatible = "qcom,wcnss-wlan";
interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "tx", "rx";
qcom,smem-states = <&apps_smsm 10>,
<&apps_smsm 9>;
qcom,smem-state-names = "tx-enable",
"tx-rings-empty";
};
};
};
};
intc: interrupt-controller@b000000 {
compatible = "qcom,msm-qgic2";
reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>;
@ -1124,7 +1657,6 @@
thermal-zones {
aoss0-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 0>;
@ -1139,7 +1671,6 @@
modem-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 1>;
trips {
@ -1153,7 +1684,6 @@
qdsp-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 2>;
trips {
@ -1167,7 +1697,6 @@
cam-isp-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 3>;
trips {
@ -1181,7 +1710,7 @@
cpu4-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 4>;
trips {
@ -1205,7 +1734,7 @@
cpu5-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 5>;
trips {
@ -1229,7 +1758,7 @@
cpu6-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 6>;
trips {
@ -1253,7 +1782,7 @@
cpu7-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 7>;
trips {
@ -1277,7 +1806,7 @@
big-l2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 8>;
trips {
@ -1301,7 +1830,7 @@
cpu0-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 9>;
trips {
@ -1325,7 +1854,7 @@
gpu-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 10>;
trips {

View File

@ -183,7 +183,7 @@
smd-edge {
interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
qcom,ipc = <&apcs 8 0>;
mboxes = <&apcs 0>;
qcom,smd-edge = <15>;
qcom,remote-pid = <6>;
@ -300,7 +300,7 @@
interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
qcom,ipc = <&apcs 8 10>;
mboxes = <&apcs 10>;
qcom,local-pid = <0>;
qcom,remote-pid = <2>;
@ -325,7 +325,7 @@
interrupt-parent = <&intc>;
interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
qcom,ipc = <&apcs 8 14>;
mboxes = <&apcs 14>;
qcom,local-pid = <0>;
qcom,remote-pid = <1>;
@ -1093,10 +1093,10 @@
timer: timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 2 0xff08>,
<GIC_PPI 3 0xff08>,
<GIC_PPI 4 0xff08>,
<GIC_PPI 1 0xff08>;
interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
};
vph_pwr: vph-pwr-regulator {

View File

@ -405,7 +405,6 @@
&hsusb_phy1 {
status = "okay";
extcon = <&typec>;
vdda-pll-supply = <&vreg_l12a_1p8>;
vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;

View File

@ -982,6 +982,8 @@
<&mmcc MDSS_MDP_CLK>;
clock-names = "iface", "core";
resets = <&mmcc MDSS_BCR>;
#address-cells = <1>;
#size-cells = <1>;
ranges;
@ -2077,24 +2079,20 @@
power-domains = <&gcc UFS_GDSC>;
clock-names =
"core_clk_src",
"core_clk",
"bus_clk",
"bus_aggr_clk",
"iface_clk",
"core_clk_unipro_src",
"core_clk_unipro",
"core_clk_ice",
"ref_clk",
"tx_lane0_sync_clk",
"rx_lane0_sync_clk";
clocks =
<&gcc UFS_AXI_CLK_SRC>,
<&gcc GCC_UFS_AXI_CLK>,
<&gcc GCC_SYS_NOC_UFS_AXI_CLK>,
<&gcc GCC_AGGRE2_UFS_AXI_CLK>,
<&gcc GCC_UFS_AHB_CLK>,
<&gcc UFS_ICE_CORE_CLK_SRC>,
<&gcc GCC_UFS_UNIPRO_CORE_CLK>,
<&gcc GCC_UFS_ICE_CORE_CLK>,
<&rpmcc RPM_SMD_LN_BB_CLK>,
@ -2105,10 +2103,8 @@
<0 0>,
<0 0>,
<0 0>,
<0 0>,
<150000000 300000000>,
<75000000 150000000>,
<0 0>,
<150000000 300000000>,
<0 0>,
<0 0>,
<0 0>;
@ -2483,6 +2479,13 @@
status = "disabled";
glink-edge {
interrupts = <GIC_SPI 179 IRQ_TYPE_EDGE_RISING>;
label = "dsps";
qcom,remote-pid = <3>;
mboxes = <&apcs_glb 27>;
};
smd-edge {
interrupts = <GIC_SPI 176 IRQ_TYPE_EDGE_RISING>;
@ -2552,6 +2555,13 @@
memory-region = <&mdata_mem>;
};
glink-edge {
interrupts = <GIC_SPI 452 IRQ_TYPE_EDGE_RISING>;
label = "modem";
qcom,remote-pid = <1>;
mboxes = <&apcs_glb 15>;
};
smd-edge {
interrupts = <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>;
@ -3497,6 +3507,14 @@
status = "disabled";
glink-edge {
interrupts = <GIC_SPI 157 IRQ_TYPE_EDGE_RISING>;
label = "lpass";
qcom,remote-pid = <2>;
mboxes = <&apcs_glb 9>;
};
smd-edge {
interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
@ -3553,6 +3571,63 @@
};
};
};
fastrpc {
compatible = "qcom,fastrpc";
qcom,smd-channels = "fastrpcsmd-apps-dsp";
label = "adsp";
qcom,non-secure-domain;
#address-cells = <1>;
#size-cells = <0>;
cb@5 {
compatible = "qcom,fastrpc-compute-cb";
reg = <5>;
iommus = <&lpass_q6_smmu 5>;
};
cb@6 {
compatible = "qcom,fastrpc-compute-cb";
reg = <6>;
iommus = <&lpass_q6_smmu 6>;
};
cb@7 {
compatible = "qcom,fastrpc-compute-cb";
reg = <7>;
iommus = <&lpass_q6_smmu 7>;
};
cb@8 {
compatible = "qcom,fastrpc-compute-cb";
reg = <8>;
iommus = <&lpass_q6_smmu 8>;
};
cb@9 {
compatible = "qcom,fastrpc-compute-cb";
reg = <9>;
iommus = <&lpass_q6_smmu 9>;
};
cb@10 {
compatible = "qcom,fastrpc-compute-cb";
reg = <10>;
iommus = <&lpass_q6_smmu 10>;
};
cb@11 {
compatible = "qcom,fastrpc-compute-cb";
reg = <11>;
iommus = <&lpass_q6_smmu 11>;
};
cb@12 {
compatible = "qcom,fastrpc-compute-cb";
reg = <12>;
iommus = <&lpass_q6_smmu 12>;
};
};
};
};
@ -3654,7 +3729,6 @@
thermal-zones {
cpu0-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 3>;
@ -3675,7 +3749,6 @@
cpu1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 5>;
@ -3696,7 +3769,6 @@
cpu2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 8>;
@ -3717,7 +3789,6 @@
cpu3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 10>;
@ -3738,7 +3809,6 @@
gpu-top-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens1 6>;
@ -3760,7 +3830,6 @@
gpu-bottom-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens1 7>;
@ -3782,7 +3851,6 @@
m4m-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 1>;
@ -3797,7 +3865,6 @@
l3-or-venus-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 2>;
@ -3812,7 +3879,6 @@
cluster0-l2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 7>;
@ -3827,7 +3893,6 @@
cluster1-l2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 12>;
@ -3842,7 +3907,6 @@
camera-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens1 1>;
@ -3857,7 +3921,6 @@
q6-dsp-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens1 2>;
@ -3872,7 +3935,6 @@
mem-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens1 3>;
@ -3887,7 +3949,6 @@
modemtx-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens1 4>;

View File

@ -488,7 +488,6 @@
thermal-zones {
cpu0-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 1>;
@ -509,7 +508,6 @@
cpu1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 2>;
@ -530,7 +528,6 @@
cpu2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 3>;
@ -551,7 +548,6 @@
cpu3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 4>;
@ -572,7 +568,6 @@
cpu4-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 7>;
@ -593,7 +588,6 @@
cpu5-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 8>;
@ -614,7 +608,6 @@
cpu6-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 9>;
@ -635,7 +628,6 @@
cpu7-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 10>;
@ -656,7 +648,6 @@
gpu-bottom-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 12>;
@ -671,7 +662,6 @@
gpu-top-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 13>;
@ -686,7 +676,6 @@
clust0-mhm-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 5>;
@ -701,7 +690,6 @@
clust1-mhm-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 6>;
@ -716,7 +704,6 @@
cluster1-l2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens0 11>;
@ -731,7 +718,6 @@
modem-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens1 1>;
@ -746,7 +732,6 @@
mem-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens1 2>;
@ -761,7 +746,6 @@
wlan-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens1 3>;
@ -776,7 +760,6 @@
q6-dsp-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens1 4>;
@ -791,7 +774,6 @@
camera-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens1 5>;
@ -806,7 +788,6 @@
multimedia-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens1 6>;
@ -1590,7 +1571,6 @@
* SoC VDDMX RPM Power Domain in the Adreno driver.
*/
power-domains = <&gpucc GPU_GX_GDSC>;
status = "disabled";
};
gpucc: clock-controller@5065000 {
@ -3020,6 +3000,54 @@
};
};
venus: video-codec@cc00000 {
compatible = "qcom,msm8998-venus";
reg = <0x0cc00000 0xff000>;
interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&mmcc VIDEO_TOP_GDSC>;
clocks = <&mmcc VIDEO_CORE_CLK>,
<&mmcc VIDEO_AHB_CLK>,
<&mmcc VIDEO_AXI_CLK>,
<&mmcc VIDEO_MAXI_CLK>;
clock-names = "core", "iface", "bus", "mbus";
iommus = <&mmss_smmu 0x400>,
<&mmss_smmu 0x401>,
<&mmss_smmu 0x40a>,
<&mmss_smmu 0x407>,
<&mmss_smmu 0x40e>,
<&mmss_smmu 0x40f>,
<&mmss_smmu 0x408>,
<&mmss_smmu 0x409>,
<&mmss_smmu 0x40b>,
<&mmss_smmu 0x40c>,
<&mmss_smmu 0x40d>,
<&mmss_smmu 0x410>,
<&mmss_smmu 0x421>,
<&mmss_smmu 0x428>,
<&mmss_smmu 0x429>,
<&mmss_smmu 0x42b>,
<&mmss_smmu 0x42c>,
<&mmss_smmu 0x42d>,
<&mmss_smmu 0x411>,
<&mmss_smmu 0x431>;
memory-region = <&venus_mem>;
status = "disabled";
video-decoder {
compatible = "venus-decoder";
clocks = <&mmcc VIDEO_SUBCORE0_CLK>;
clock-names = "core";
power-domains = <&mmcc VIDEO_SUBCORE0_GDSC>;
};
video-encoder {
compatible = "venus-encoder";
clocks = <&mmcc VIDEO_SUBCORE1_CLK>;
clock-names = "core";
power-domains = <&mmcc VIDEO_SUBCORE1_GDSC>;
};
};
mmss_smmu: iommu@cd00000 {
compatible = "qcom,msm8998-smmu-v2", "qcom,smmu-v2";
reg = <0x0cd00000 0x40000>;
@ -3195,6 +3223,7 @@
iommus = <&anoc2_smmu 0x1900>,
<&anoc2_smmu 0x1901>;
qcom,snoc-host-cap-8bit-quirk;
qcom,no-msa-ready-indicator;
};
};
};

View File

@ -10,7 +10,6 @@
thermal-zones {
pm6125-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm6125_temp>;

View File

@ -13,7 +13,7 @@
thermal-zones {
pm6150_thermal: pm6150-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm6150_temp>;
trips {

View File

@ -10,9 +10,6 @@
/ {
thermal-zones {
pm6150l-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pm6150l_temp>;
trips {

View File

@ -10,7 +10,6 @@
thermal-zones {
pm6350-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm6350_temp>;

View File

@ -13,7 +13,6 @@
thermal-zones {
pm660-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&pm660_temp>;
@ -74,6 +73,23 @@
};
};
pm660_charger: charger@1000 {
compatible = "qcom,pm660-charger";
reg = <0x1000>;
interrupts = <0x0 0x13 0x4 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x12 0x2 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x16 0x1 IRQ_TYPE_EDGE_RISING>,
<0x0 0x13 0x6 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "usb-plugin", "bat-ov", "wdog-bark", "usbin-icl-change";
io-channels = <&pm660_rradc 3>,
<&pm660_rradc 4>;
io-channel-names = "usbin_i", "usbin_v";
status = "disabled";
};
pm660_temp: temp-alarm@2400 {
compatible = "qcom,spmi-temp-alarm";
reg = <0x2400>;
@ -181,6 +197,14 @@
};
};
pm660_rradc: adc@4500 {
compatible = "qcom,pm660-rradc";
reg = <0x4500>;
#io-channel-cells = <1>;
status = "disabled";
};
pm660_gpios: gpio@c000 {
compatible = "qcom,pm660-gpio", "qcom,spmi-gpio";
reg = <0xc000>;

View File

@ -13,7 +13,6 @@
thermal-zones {
pm660l-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&pm660l_temp>;

View File

@ -11,7 +11,6 @@
thermal-zones {
pm7250b-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm7250b_temp>;
@ -45,6 +44,52 @@
#address-cells = <1>;
#size-cells = <0>;
pm7250b_vbus: usb-vbus-regulator@1100 {
compatible = "qcom,pm7250b-vbus-reg", "qcom,pm8150b-vbus-reg";
reg = <0x1100>;
status = "disabled";
};
pm7250b_typec: typec@1500 {
compatible = "qcom,pm7250b-typec", "qcom,pm8150b-typec";
reg = <0x1500>,
<0x1700>;
interrupts = <PM7250B_SID 0x15 0x00 IRQ_TYPE_EDGE_RISING>,
<PM7250B_SID 0x15 0x01 IRQ_TYPE_EDGE_BOTH>,
<PM7250B_SID 0x15 0x02 IRQ_TYPE_EDGE_RISING>,
<PM7250B_SID 0x15 0x03 IRQ_TYPE_EDGE_BOTH>,
<PM7250B_SID 0x15 0x04 IRQ_TYPE_EDGE_RISING>,
<PM7250B_SID 0x15 0x05 IRQ_TYPE_EDGE_RISING>,
<PM7250B_SID 0x15 0x06 IRQ_TYPE_EDGE_BOTH>,
<PM7250B_SID 0x15 0x07 IRQ_TYPE_EDGE_RISING>,
<PM7250B_SID 0x17 0x00 IRQ_TYPE_EDGE_RISING>,
<PM7250B_SID 0x17 0x01 IRQ_TYPE_EDGE_RISING>,
<PM7250B_SID 0x17 0x02 IRQ_TYPE_EDGE_RISING>,
<PM7250B_SID 0x17 0x03 IRQ_TYPE_EDGE_RISING>,
<PM7250B_SID 0x17 0x04 IRQ_TYPE_EDGE_RISING>,
<PM7250B_SID 0x17 0x05 IRQ_TYPE_EDGE_RISING>,
<PM7250B_SID 0x17 0x06 IRQ_TYPE_EDGE_RISING>,
<PM7250B_SID 0x17 0x07 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "or-rid-detect-change",
"vpd-detect",
"cc-state-change",
"vconn-oc",
"vbus-change",
"attach-detach",
"legacy-cable-detect",
"try-snk-src-detect",
"sig-tx",
"sig-rx",
"msg-tx",
"msg-rx",
"msg-tx-failed",
"msg-tx-discarded",
"msg-rx-discarded",
"fr-swap";
vdd-vbus-supply = <&pm7250b_vbus>;
status = "disabled";
};
pm7250b_temp: temp-alarm@2400 {
compatible = "qcom,spmi-temp-alarm";
reg = <0x2400>;

View File

@ -35,7 +35,7 @@
&thermal_zones {
pm7325_thermal: pm7325-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm7325_temp_alarm>;
trips {

View File

@ -10,7 +10,6 @@
thermal-zones {
pm7550ba-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm7550ba_temp_alarm>;

View File

@ -10,7 +10,6 @@
thermal-zones {
pm8010-m-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm8010_m_temp_alarm>;
@ -31,7 +30,6 @@
pm8010-n-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm8010_n_temp_alarm>;

View File

@ -13,7 +13,6 @@
thermal-zones {
pm8150-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm8150_temp>;

View File

@ -12,7 +12,6 @@
thermal-zones {
pm8150b-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm8150b_temp>;

View File

@ -12,7 +12,6 @@
thermal-zones {
pm8150l-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm8150l_temp>;

View File

@ -10,7 +10,7 @@
thermal-zones {
pm8350_thermal: pm8350-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm8350_temp_alarm>;
trips {

View File

@ -10,7 +10,7 @@
thermal-zones {
pm8350b_thermal: pm8350b-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm8350b_temp_alarm>;
trips {

View File

@ -48,7 +48,7 @@
thermal-zones {
pm8350c_thermal: pm8350c-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm8350c_temp_alarm>;
trips {

View File

@ -10,7 +10,6 @@
thermal-zones {
pm8450-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm8450_temp_alarm>;

View File

@ -10,7 +10,6 @@
thermal-zones {
pm8550-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm8550_temp_alarm>;

View File

@ -10,7 +10,6 @@
thermal-zones {
pm8550b-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm8550b_temp_alarm>;

View File

@ -10,7 +10,6 @@
thermal-zones {
pm8550ve-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm8550ve_temp_alarm>;

View File

@ -10,7 +10,6 @@
thermal-zones {
pm8550vs-c-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm8550vs_c_temp_alarm>;
@ -31,7 +30,6 @@
pm8550vs-d-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm8550vs_d_temp_alarm>;
@ -52,7 +50,6 @@
pm8550vs-e-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm8550vs_e_temp_alarm>;
@ -73,7 +70,6 @@
pm8550vs-g-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm8550vs_g_temp_alarm>;

View File

@ -4,8 +4,37 @@
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/spmi/spmi.h>
&spmi_bus {
/ {
thermal-zones {
pm8916-thermal {
polling-delay-passive = <100>;
thermal-sensors = <&pm8916_temp>;
trips {
trip0 {
temperature = <105000>;
hysteresis = <0>;
type = "passive";
};
trip1 {
temperature = <125000>;
hysteresis = <0>;
type = "hot";
};
trip2 {
temperature = <145000>;
hysteresis = <0>;
type = "critical";
};
};
};
};
};
&spmi_bus {
pm8916_0: pmic@0 {
compatible = "qcom,pm8916", "qcom,spmi-pmic";
reg = <0x0 SPMI_USID>;

View File

@ -9,9 +9,6 @@
/ {
thermal-zones {
pm8953-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pm8953_temp>;
trips {

View File

@ -8,7 +8,6 @@
thermal-zones {
pm8994-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&pm8994_temp>;

View File

@ -11,7 +11,6 @@
thermal-zones {
pm8998-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&pm8998_temp>;

View File

@ -11,7 +11,6 @@
thermal-zones {
pmi632-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pmi632_temp>;
@ -200,5 +199,11 @@
status = "disabled";
};
pmi632_vib: vibrator@5700 {
compatible = "qcom,pmi632-vib";
reg = <0x5700>;
status = "disabled";
};
};
};

View File

@ -84,6 +84,14 @@
#address-cells = <1>;
#size-cells = <0>;
pmi8950_pwm: pwm@b000 {
compatible = "qcom,pmi8950-pwm";
reg = <0xb000 0x100>;
#pwm-cells = <2>;
status = "disabled";
};
pmi8950_wled: leds@d800 {
compatible = "qcom,pmi8950-wled";
reg = <0xd800>, <0xd900>;

View File

@ -12,7 +12,6 @@
thermal-zones {
pmm8155au-1-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pmm8155au_1_temp>;

View File

@ -11,7 +11,6 @@
thermal-zones {
pmm8155au-2-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pmm8155au_2_temp>;

View File

@ -36,7 +36,7 @@
thermal-zones {
pmr735a_thermal: pmr735a-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pmr735a_temp_alarm>;
trips {

View File

@ -10,7 +10,7 @@
thermal-zones {
pmr735b_thermal: pmr735b-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pmr735b_temp_alarm>;
trips {

View File

@ -10,7 +10,6 @@
thermal-zones {
pmr735d-k-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pmr735d_k_temp_alarm>;

View File

@ -10,7 +10,6 @@
thermal-zones {
pmr735d-l-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pmr735d_l_temp_alarm>;

View File

@ -12,7 +12,6 @@
thermal-zones {
pms405-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&pms405_temp>;

View File

@ -10,7 +10,6 @@
thermal-zones {
pmx75-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pmx75_temp_alarm>;

View File

@ -7,6 +7,7 @@
#include <dt-bindings/clock/qcom,dispcc-qcm2290.h>
#include <dt-bindings/clock/qcom,gcc-qcm2290.h>
#include <dt-bindings/clock/qcom,qcm2290-gpucc.h>
#include <dt-bindings/clock/qcom,rpmcc.h>
#include <dt-bindings/dma/qcom-gpi.h>
#include <dt-bindings/firmware/qcom,scm.h>
@ -758,6 +759,11 @@
reg = <0x25b 0x1>;
bits = <1 4>;
};
gpu_speed_bin: gpu-speed-bin@2006 {
reg = <0x2006 0x2>;
bits = <5 8>;
};
};
pmu@1b8e300 {
@ -1425,6 +1431,154 @@
};
};
gpu: gpu@5900000 {
compatible = "qcom,adreno-07000200", "qcom,adreno";
reg = <0x0 0x05900000 0x0 0x40000>;
reg-names = "kgsl_3d0_reg_memory";
interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gpucc GPU_CC_GX_GFX3D_CLK>,
<&gpucc GPU_CC_AHB_CLK>,
<&gcc GCC_BIMC_GPU_AXI_CLK>,
<&gcc GCC_GPU_MEMNOC_GFX_CLK>,
<&gpucc GPU_CC_CX_GMU_CLK>,
<&gpucc GPU_CC_CXO_CLK>;
clock-names = "core",
"iface",
"mem_iface",
"alt_mem_iface",
"gmu",
"xo";
interconnects = <&bimc MASTER_GFX3D RPM_ALWAYS_TAG
&bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
interconnect-names = "gfx-mem";
iommus = <&adreno_smmu 0 1>,
<&adreno_smmu 2 0>;
operating-points-v2 = <&gpu_opp_table>;
power-domains = <&rpmpd QCM2290_VDDCX>;
qcom,gmu = <&gmu_wrapper>;
nvmem-cells = <&gpu_speed_bin>;
nvmem-cell-names = "speed_bin";
#cooling-cells = <2>;
status = "disabled";
zap-shader {
memory-region = <&pil_gpu_mem>;
};
gpu_opp_table: opp-table {
compatible = "operating-points-v2";
/* TODO: Scale RPM_SMD_BIMC_GPU_CLK w/ turbo freqs */
opp-1123200000 {
opp-hz = /bits/ 64 <1123200000>;
required-opps = <&rpmpd_opp_turbo_plus>;
opp-peak-kBps = <6881000>;
opp-supported-hw = <0x3>;
turbo-mode;
};
opp-1017600000 {
opp-hz = /bits/ 64 <1017600000>;
required-opps = <&rpmpd_opp_turbo>;
opp-peak-kBps = <6881000>;
opp-supported-hw = <0x3>;
turbo-mode;
};
opp-921600000 {
opp-hz = /bits/ 64 <921600000>;
required-opps = <&rpmpd_opp_nom_plus>;
opp-peak-kBps = <6881000>;
opp-supported-hw = <0x3>;
};
opp-844800000 {
opp-hz = /bits/ 64 <844800000>;
required-opps = <&rpmpd_opp_nom>;
opp-peak-kBps = <6881000>;
opp-supported-hw = <0x7>;
};
opp-672000000 {
opp-hz = /bits/ 64 <672000000>;
required-opps = <&rpmpd_opp_svs_plus>;
opp-peak-kBps = <3879000>;
opp-supported-hw = <0xf>;
};
opp-537600000 {
opp-hz = /bits/ 64 <537600000>;
required-opps = <&rpmpd_opp_svs>;
opp-peak-kBps = <2929000>;
opp-supported-hw = <0xf>;
};
opp-355200000 {
opp-hz = /bits/ 64 <355200000>;
required-opps = <&rpmpd_opp_low_svs>;
opp-peak-kBps = <1720000>;
opp-supported-hw = <0xf>;
};
};
};
gmu_wrapper: gmu@596a000 {
compatible = "qcom,adreno-gmu-wrapper";
reg = <0x0 0x0596a000 0x0 0x30000>;
reg-names = "gmu";
power-domains = <&gpucc GPU_CX_GDSC>,
<&gpucc GPU_GX_GDSC>;
power-domain-names = "cx",
"gx";
};
gpucc: clock-controller@5990000 {
compatible = "qcom,qcm2290-gpucc";
reg = <0x0 0x05990000 0x0 0x9000>;
clocks = <&gcc GCC_GPU_CFG_AHB_CLK>,
<&rpmcc RPM_SMD_XO_CLK_SRC>,
<&gcc GCC_GPU_GPLL0_CLK_SRC>,
<&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
power-domains = <&rpmpd QCM2290_VDDCX>;
required-opps = <&rpmpd_opp_low_svs>;
#clock-cells = <1>;
#reset-cells = <1>;
#power-domain-cells = <1>;
};
adreno_smmu: iommu@59a0000 {
compatible = "qcom,qcm2290-smmu-500", "qcom,adreno-smmu",
"qcom,smmu-500", "arm,mmu-500";
reg = <0x0 0x059a0000 0x0 0x10000>;
interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
<&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>,
<&gcc GCC_GPU_SNOC_DVM_GFX_CLK>;
clock-names = "mem",
"hlos",
"iface";
power-domains = <&gpucc GPU_CX_GDSC>;
#global-interrupts = <1>;
#iommu-cells = <2>;
};
mdss: display-subsystem@5e00000 {
compatible = "qcom,qcm2290-mdss";
reg = <0x0 0x05e00000 0x0 0x1000>;
@ -1924,9 +2078,6 @@
thermal-zones {
mapss-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens0 0>;
trips {
@ -1951,9 +2102,6 @@
};
video-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens0 1>;
trips {
@ -1978,9 +2126,6 @@
};
wlan-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens0 2>;
trips {
@ -2005,9 +2150,6 @@
};
cpuss0-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens0 3>;
trips {
@ -2032,9 +2174,6 @@
};
cpuss1-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens0 4>;
trips {
@ -2059,9 +2198,6 @@
};
mdm0-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens0 5>;
trips {
@ -2086,9 +2222,6 @@
};
mdm1-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens0 6>;
trips {
@ -2113,9 +2246,6 @@
};
gpu-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens0 7>;
trips {
@ -2140,9 +2270,6 @@
};
hm-center-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens0 8>;
trips {
@ -2167,9 +2294,6 @@
};
camera-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens0 9>;
trips {

View File

@ -167,7 +167,7 @@
thermal-zones {
camera-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pmk8350_adc_tm 2>;
trips {
@ -181,7 +181,7 @@
chg-skin-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pm7250b_adc_tm 0>;
trips {
@ -195,7 +195,7 @@
conn-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pm7250b_adc_tm 1>;
trips {
@ -207,9 +207,28 @@
};
};
pm8008-thermal {
polling-delay-passive = <100>;
thermal-sensors = <&pm8008>;
trips {
trip0 {
temperature = <95000>;
hysteresis = <0>;
type = "passive";
};
trip1 {
temperature = <115000>;
hysteresis = <0>;
type = "critical";
};
};
};
quiet-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pmk8350_adc_tm 1>;
trips {
@ -223,7 +242,7 @@
rear-cam-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pmk8350_adc_tm 4>;
trips {
@ -237,7 +256,7 @@
sdm-skin-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pmk8350_adc_tm 3>;
trips {
@ -251,7 +270,7 @@
xo-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pmk8350_adc_tm 0>;
trips {
@ -271,46 +290,54 @@
qcom,pmic-id = "b";
vreg_s1b: smps1 {
regulator-name = "vreg_s1b";
regulator-min-microvolt = <1840000>;
regulator-max-microvolt = <2040000>;
};
vreg_s7b: smps7 {
regulator-name = "vreg_s7b";
regulator-min-microvolt = <535000>;
regulator-max-microvolt = <1120000>;
};
vreg_s8b: smps8 {
regulator-name = "vreg_s8b";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1500000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
};
vreg_l1b: ldo1 {
regulator-name = "vreg_l1b";
regulator-min-microvolt = <825000>;
regulator-max-microvolt = <925000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l2b: ldo2 {
regulator-name = "vreg_l2b";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3544000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3b: ldo3 {
regulator-name = "vreg_l3b";
regulator-min-microvolt = <312000>;
regulator-max-microvolt = <910000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6b: ldo6 {
regulator-name = "vreg_l6b";
regulator-min-microvolt = <1140000>;
regulator-max-microvolt = <1260000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7b: ldo7 {
regulator-name = "vreg_l7b";
/* Constrained for UFS VCC, at least until UFS driver scales voltage */
regulator-min-microvolt = <2952000>;
regulator-max-microvolt = <2952000>;
@ -318,66 +345,77 @@
};
vreg_l8b: ldo8 {
regulator-name = "vreg_l8b";
regulator-min-microvolt = <870000>;
regulator-max-microvolt = <970000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l9b: ldo9 {
regulator-name = "vreg_l9b";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1304000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l11b: ldo11 {
regulator-name = "vreg_l11b";
regulator-min-microvolt = <1504000>;
regulator-max-microvolt = <2000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l12b: ldo12 {
regulator-name = "vreg_l12b";
regulator-min-microvolt = <751000>;
regulator-max-microvolt = <824000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l13b: ldo13 {
regulator-name = "vreg_l13b";
regulator-min-microvolt = <530000>;
regulator-max-microvolt = <824000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l14b: ldo14 {
regulator-name = "vreg_l14b";
regulator-min-microvolt = <1080000>;
regulator-max-microvolt = <1304000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l15b: ldo15 {
regulator-name = "vreg_l15b";
regulator-min-microvolt = <765000>;
regulator-max-microvolt = <1020000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l16b: ldo16 {
regulator-name = "vreg_l16b";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1300000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l17b: ldo17 {
regulator-name = "vreg_l17b";
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <1900000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l18b: ldo18 {
regulator-name = "vreg_l18b";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l19b: ldo19 {
regulator-name = "vreg_l19b";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
@ -389,60 +427,70 @@
qcom,pmic-id = "c";
vreg_s1c: smps1 {
regulator-name = "vreg_s1c";
regulator-min-microvolt = <2190000>;
regulator-max-microvolt = <2210000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s9c: smps9 {
regulator-name = "vreg_s9c";
regulator-min-microvolt = <1010000>;
regulator-max-microvolt = <1170000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l1c: ldo1 {
regulator-name = "vreg_l1c";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1980000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l2c: ldo2 {
regulator-name = "vreg_l2c";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1950000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3c: ldo3 {
regulator-name = "vreg_l3c";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3400000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l4c: ldo4 {
regulator-name = "vreg_l4c";
regulator-min-microvolt = <1620000>;
regulator-max-microvolt = <3300000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l5c: ldo5 {
regulator-name = "vreg_l5c";
regulator-min-microvolt = <1620000>;
regulator-max-microvolt = <3300000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6c: ldo6 {
regulator-name = "vreg_l6c";
regulator-min-microvolt = <1650000>;
regulator-max-microvolt = <3544000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7c: ldo7 {
regulator-name = "vreg_l7c";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3544000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l8c: ldo8 {
regulator-name = "vreg_l8c";
regulator-min-microvolt = <1620000>;
regulator-max-microvolt = <2000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
@ -451,36 +499,42 @@
};
vreg_l9c: ldo9 {
regulator-name = "vreg_l9c";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3544000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l10c: ldo10 {
regulator-name = "vreg_l10c";
regulator-min-microvolt = <720000>;
regulator-max-microvolt = <1050000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l11c: ldo11 {
regulator-name = "vreg_l11c";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <3544000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l12c: ldo12 {
regulator-name = "vreg_l12c";
regulator-min-microvolt = <1650000>;
regulator-max-microvolt = <2000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l13c: ldo13 {
regulator-name = "vreg_l13c";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3544000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_bob: bob {
regulator-name = "vreg_bob";
regulator-min-microvolt = <3008000>;
regulator-max-microvolt = <3960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
@ -522,7 +576,76 @@
&i2c1 {
status = "okay";
/* PM8008 PMIC @ 8 and 9 */
pm8008: pmic@8 {
compatible = "qcom,pm8008";
reg = <0x8>;
interrupts-extended = <&tlmm 25 IRQ_TYPE_EDGE_RISING>;
reset-gpios = <&pm8350c_gpios 3 GPIO_ACTIVE_LOW>;
vdd-l1-l2-supply = <&vreg_s8b>;
vdd-l3-l4-supply = <&vreg_bob>;
vdd-l5-supply = <&vreg_bob>;
vdd-l6-supply = <&vreg_s1b>;
vdd-l7-supply = <&vreg_bob>;
pinctrl-names = "default";
pinctrl-0 = <&pm8008_int_default>, <&pm8008_reset_n_default>;
gpio-controller;
#gpio-cells = <2>;
gpio-ranges = <&pm8008 0 0 2>;
interrupt-controller;
#interrupt-cells = <2>;
#thermal-sensor-cells = <0>;
regulators {
vreg_l1p: ldo1 {
regulator-name = "vreg_l1p";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1200000>;
};
vreg_l2p: ldo2 {
regulator-name = "vreg_l2p";
regulator-min-microvolt = <950000>;
regulator-max-microvolt = <1152000>;
};
vreg_l3p: ldo3 {
regulator-name = "vreg_l3p";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3000000>;
};
vreg_l4p: ldo4 {
regulator-name = "vreg_l4p";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <2900000>;
};
vreg_l5p: ldo5 {
regulator-name = "vreg_l5p";
regulator-min-microvolt = <2704000>;
regulator-max-microvolt = <2900000>;
};
vreg_l6p: ldo6 {
regulator-name = "vreg_l6p";
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <1904000>;
};
vreg_l7p: ldo7 {
regulator-name = "vreg_l7p";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3000000>;
};
};
};
/* Pixelworks @ 26 */
/* FSA4480 USB audio switch @ 42 */
/* AW86927FCR haptics @ 5a */
@ -551,7 +674,7 @@
&ipa {
qcom,gsi-loader = "self";
memory-region = <&ipa_fw_mem>;
firmware-name = "qcom/qcm6490/fairphone5/ipa_fws.mdt";
firmware-name = "qcom/qcm6490/fairphone5/ipa_fws.mbn";
status = "okay";
};
@ -653,6 +776,14 @@
};
};
&pm8350c_gpios {
pm8008_reset_n_default: pm8008-reset-n-default-state {
pins = "gpio3";
function = PMIC_GPIO_FUNC_NORMAL;
bias-pull-down;
};
};
&pmk8350_rtc {
status = "okay";
};
@ -810,6 +941,13 @@
bias-pull-up;
};
pm8008_int_default: pm8008-int-default-state {
pins = "gpio25";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
qup_uart7_sleep_cts: qup-uart7-sleep-cts-state {
pins = "gpio28";
function = "gpio";
@ -864,7 +1002,6 @@
};
&uart5 {
compatible = "qcom,geni-debug-uart";
status = "okay";
};

View File

@ -658,7 +658,6 @@
};
&uart5 {
compatible = "qcom,geni-debug-uart";
status = "okay";
};
@ -667,6 +666,7 @@
};
&usb_1_dwc3 {
/delete-property/ usb-role-switch;
dr_mode = "peripheral";
};

View File

@ -0,0 +1,961 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2023, Luca Weiss <luca.weiss@fairphone.com>
* Copyright (c) 2024, Caleb Connolly <caleb@postmarketos.org>
*/
/dts-v1/;
#define PM7250B_SID 8
#define PM7250B_SID1 9
#include <dt-bindings/iio/qcom,spmi-adc7-pm7325.h>
#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include "sc7280.dtsi"
#include "pm7250b.dtsi"
#include "pm7325.dtsi"
#include "pm8350c.dtsi" /* PM7350C */
#include "pmk8350.dtsi" /* PMK7325 */
/delete-node/ &rmtfs_mem;
/ {
model = "SHIFT SHIFTphone 8";
compatible = "shift,otter", "qcom,qcm6490";
chassis-type = "handset";
aliases {
serial0 = &uart5;
serial1 = &uart7;
};
chosen {
#address-cells = <2>;
#size-cells = <2>;
ranges;
stdout-path = "serial0:115200n8";
framebuffer0: framebuffer@a000000 {
compatible = "simple-framebuffer";
reg = <0x0 0xe1000000 0x0 (2400 * 1080 * 4)>;
width = <1080>;
height = <2400>;
stride = <(1080 * 4)>;
format = "a8r8g8b8";
clocks = <&gcc GCC_DISP_HF_AXI_CLK>;
};
};
gpio-keys {
compatible = "gpio-keys";
pinctrl-0 = <&volume_down_default>;
pinctrl-names = "default";
key-volume-up {
label = "Volume up";
gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEUP>;
debounce-interval = <15>;
};
};
pmic-glink {
compatible = "qcom,qcm6490-pmic-glink", "qcom,pmic-glink";
#address-cells = <1>;
#size-cells = <0>;
connector@0 {
compatible = "usb-c-connector";
reg = <0>;
power-role = "dual";
data-role = "dual";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
pmic_glink_hs_in: endpoint {
remote-endpoint = <&usb_1_dwc3_hs>;
};
};
port@1 {
reg = <1>;
pmic_glink_ss_in: endpoint {
remote-endpoint = <&usb_dp_qmpphy_out>;
};
};
port@2 {
reg = <2>;
pmic_glink_sbu: endpoint {
remote-endpoint = <&fsa4480_sbu_mux>;
};
};
};
};
};
reserved-memory {
cont_splash_mem: cont-splash@e1000000 {
reg = <0x0 0xe1000000 0x0 0x2300000>;
no-map;
};
cdsp_mem: cdsp@88f00000 {
reg = <0x0 0x88f00000 0x0 0x1e00000>;
no-map;
};
rmtfs_mem: rmtfs@f8500000 {
compatible = "qcom,rmtfs-mem";
reg = <0x0 0xf8500000 0x0 0x600000>;
no-map;
qcom,client-id = <1>;
qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>, <QCOM_SCM_VMID_NAV>;
};
};
thermal-zones {
camera-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pmk8350_adc_tm 2>;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
chg-skin-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pm7250b_adc_tm 0>;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
conn-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pm7250b_adc_tm 1>;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
quiet-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pmk8350_adc_tm 1>;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
rear-cam-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pmk8350_adc_tm 4>;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
sdm-skin-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pmk8350_adc_tm 3>;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
xo-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pmk8350_adc_tm 0>;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
};
};
&apps_rsc {
regulators-0 {
compatible = "qcom,pm7325-rpmh-regulators";
qcom,pmic-id = "b";
vreg_s1b: smps1 {
regulator-name = "vreg_s1b";
regulator-min-microvolt = <1840000>;
regulator-max-microvolt = <2040000>;
};
vreg_s7b: smps7 {
regulator-name = "vreg_s7b";
regulator-min-microvolt = <535000>;
regulator-max-microvolt = <1120000>;
};
vreg_s8b: smps8 {
regulator-name = "vreg_s8b";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1500000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
};
vreg_l1b: ldo1 {
regulator-name = "vreg_l1b";
regulator-min-microvolt = <825000>;
regulator-max-microvolt = <925000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l2b: ldo2 {
regulator-name = "vreg_l2b";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3544000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3b: ldo3 {
regulator-name = "vreg_l3b";
regulator-min-microvolt = <312000>;
regulator-max-microvolt = <910000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6b: ldo6 {
regulator-name = "vreg_l6b";
regulator-min-microvolt = <1140000>;
regulator-max-microvolt = <1260000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7b: ldo7 {
regulator-name = "vreg_l7b";
/* Constrained for UFS VCC, at least until UFS driver scales voltage */
regulator-min-microvolt = <2952000>;
regulator-max-microvolt = <2952000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l8b: ldo8 {
regulator-name = "vreg_l8b";
regulator-min-microvolt = <870000>;
regulator-max-microvolt = <970000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l9b: ldo9 {
regulator-name = "vreg_l9b";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1304000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l11b: ldo11 {
regulator-name = "vreg_l11b";
regulator-min-microvolt = <1504000>;
regulator-max-microvolt = <2000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l12b: ldo12 {
regulator-name = "vreg_l12b";
regulator-min-microvolt = <751000>;
regulator-max-microvolt = <824000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l13b: ldo13 {
regulator-name = "vreg_l13b";
regulator-min-microvolt = <530000>;
regulator-max-microvolt = <824000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l14b: ldo14 {
regulator-name = "vreg_l14b";
regulator-min-microvolt = <1080000>;
regulator-max-microvolt = <1304000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l15b: ldo15 {
regulator-name = "vreg_l15b";
regulator-min-microvolt = <765000>;
regulator-max-microvolt = <1020000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l16b: ldo16 {
regulator-name = "vreg_l16b";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1300000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l17b: ldo17 {
regulator-name = "vreg_l17b";
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <1900000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l18b: ldo18 {
regulator-name = "vreg_l18b";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l19b: ldo19 {
regulator-name = "vreg_l19b";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
regulators-1 {
compatible = "qcom,pm8350c-rpmh-regulators";
qcom,pmic-id = "c";
vreg_s1c: smps1 {
regulator-name = "vreg_s1c";
regulator-min-microvolt = <2190000>;
regulator-max-microvolt = <2210000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s9c: smps9 {
regulator-name = "vreg_s9c";
regulator-min-microvolt = <1010000>;
regulator-max-microvolt = <1170000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l1c: ldo1 {
regulator-name = "vreg_l1c";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1980000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l2c: ldo2 {
regulator-name = "vreg_l2c";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1950000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3c: ldo3 {
regulator-name = "vreg_l3c";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3400000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l4c: ldo4 {
regulator-name = "vreg_l4c";
regulator-min-microvolt = <1620000>;
regulator-max-microvolt = <3300000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l5c: ldo5 {
regulator-name = "vreg_l5c";
regulator-min-microvolt = <1620000>;
regulator-max-microvolt = <3300000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6c: ldo6 {
regulator-name = "vreg_l6c";
regulator-min-microvolt = <1650000>;
regulator-max-microvolt = <3544000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7c: ldo7 {
regulator-name = "vreg_l7c";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3544000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l8c: ldo8 {
regulator-name = "vreg_l8c";
regulator-min-microvolt = <1620000>;
regulator-max-microvolt = <2000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l9c: ldo9 {
regulator-name = "vreg_l9c";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3544000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l10c: ldo10 {
regulator-name = "vreg_l10c";
regulator-min-microvolt = <720000>;
regulator-max-microvolt = <1050000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l11c: ldo11 {
regulator-name = "vreg_l11c";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <3544000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l12c: ldo12 {
regulator-name = "vreg_l12c";
regulator-min-microvolt = <1650000>;
regulator-max-microvolt = <2000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l13c: ldo13 {
regulator-name = "vreg_l13c";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3544000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_bob: bob {
regulator-name = "vreg_bob";
regulator-min-microvolt = <3008000>;
regulator-max-microvolt = <3960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
};
};
};
&gcc {
protected-clocks = <GCC_CFG_NOC_LPASS_CLK>,
<GCC_EDP_CLKREF_EN>,
<GCC_MSS_CFG_AHB_CLK>,
<GCC_MSS_GPLL0_MAIN_DIV_CLK_SRC>,
<GCC_MSS_OFFLINE_AXI_CLK>,
<GCC_MSS_Q6SS_BOOT_CLK_SRC>,
<GCC_MSS_Q6_MEMNOC_AXI_CLK>,
<GCC_MSS_SNOC_AXI_CLK>,
<GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
<GCC_QSPI_CORE_CLK>,
<GCC_QSPI_CORE_CLK_SRC>,
<GCC_SEC_CTRL_CLK_SRC>,
<GCC_WPSS_AHB_BDG_MST_CLK>,
<GCC_WPSS_AHB_CLK>,
<GCC_WPSS_RSCP_CLK>;
};
&gpi_dma0 {
status = "okay";
};
&gpi_dma1 {
status = "okay";
};
&gpu {
status = "okay";
};
&gpu_zap_shader {
firmware-name = "qcom/qcm6490/SHIFT/otter/a660_zap.mbn";
};
&i2c1 {
status = "okay";
/* PM8008 PMIC @ 8 and 9 */
/* rtc6226 FM receiver @ 64 */
typec-mux@42 {
compatible = "fcs,fsa4480";
reg = <0x42>;
vcc-supply = <&vreg_bob>;
mode-switch;
orientation-switch;
port {
fsa4480_sbu_mux: endpoint {
remote-endpoint = <&pmic_glink_sbu>;
};
};
};
};
&i2c4 {
status = "okay";
/* tas2563 audio codec @ 4d */
};
&i2c9 {
status = "okay";
/* TMS(?) NFC @ 28 */
/* Ti drv2624 haptics @ 5a */
};
&i2c13 {
status = "okay";
/* focaltech FT3658U @ 38 */
};
&ipa {
qcom,gsi-loader = "self";
memory-region = <&ipa_fw_mem>;
firmware-name = "qcom/qcm6490/SHIFT/otter/ipa_fws.mbn";
status = "okay";
};
&pm7250b_adc {
channel@4d {
reg = <ADC5_AMUX_THM1_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
label = "charger_skin_therm";
};
channel@4f {
reg = <ADC5_AMUX_THM3_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
label = "conn_therm";
};
};
&pm7250b_adc_tm {
status = "okay";
charger-skin-therm@0 {
reg = <0>;
io-channels = <&pm7250b_adc ADC5_AMUX_THM1_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time-us = <200>;
};
conn-therm@1 {
reg = <1>;
io-channels = <&pm7250b_adc ADC5_AMUX_THM3_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time-us = <200>;
};
};
&pm7325_gpios {
volume_down_default: volume-down-default-state {
pins = "gpio6";
function = PMIC_GPIO_FUNC_NORMAL;
power-source = <1>;
bias-pull-up;
input-enable;
};
};
&pmk8350_adc_tm {
status = "okay";
xo-therm@0 {
reg = <0>;
io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time-us = <200>;
};
quiet-therm@1 {
reg = <1>;
io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM1_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time-us = <200>;
};
cam-flash-therm@2 {
reg = <2>;
io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM2_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time-us = <200>;
};
sdm-skin-therm@3 {
reg = <3>;
io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM3_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time-us = <200>;
};
wide-rfc-therm@4 {
reg = <4>;
io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM4_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time-us = <200>;
};
};
&pmk8350_rtc {
status = "okay";
};
&pmk8350_vadc {
status = "okay";
channel@44 {
reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
label = "pmk8350_xo_therm";
};
channel@144 {
reg = <PM7325_ADC7_AMUX_THM1_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
label = "pm7325_quiet_therm";
};
channel@145 {
reg = <PM7325_ADC7_AMUX_THM2_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
label = "pm7325_cam_flash_therm";
};
channel@146 {
reg = <PM7325_ADC7_AMUX_THM3_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
label = "pm7325_sdm_skin_therm";
};
channel@147 {
reg = <PM7325_ADC7_AMUX_THM4_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
label = "pm7325_wide_rfc_therm";
};
};
&pon_pwrkey {
status = "okay";
};
&pon_resin {
linux,code = <KEY_VOLUMEDOWN>;
status = "okay";
};
&qup_spi13_cs {
drive-strength = <6>;
bias-disable;
};
&qup_spi13_data_clk {
drive-strength = <6>;
bias-disable;
};
&qup_uart5_rx {
drive-strength = <2>;
bias-disable;
};
&qup_uart5_tx {
drive-strength = <2>;
bias-disable;
};
&qupv3_id_0 {
status = "okay";
};
&qupv3_id_1 {
status = "okay";
};
&remoteproc_adsp {
firmware-name = "qcom/qcm6490/SHIFT/otter/adsp.mbn";
status = "okay";
};
&remoteproc_cdsp {
firmware-name = "qcom/qcm6490/SHIFT/otter/cdsp.mbn";
status = "okay";
};
&remoteproc_mpss {
firmware-name = "qcom/qcm6490/SHIFT/otter/modem.mbn";
status = "okay";
};
&remoteproc_wpss {
firmware-name = "qcom/qcm6490/SHIFT/otter/wpss.mbn";
status = "okay";
};
&sdc2_clk {
drive-strength = <16>;
bias-disable;
};
&sdc2_cmd {
drive-strength = <10>;
bias-pull-up;
};
&sdc2_data {
drive-strength = <10>;
bias-pull-up;
};
&sdhc_2 {
vmmc-supply = <&vreg_l9c>;
vqmmc-supply = <&vreg_l6c>;
pinctrl-0 = <&sdc2_clk>, <&sdc2_cmd>, <&sdc2_data>;
pinctrl-1 = <&sdc2_clk_sleep>, <&sdc2_cmd_sleep>, <&sdc2_data_sleep>;
status = "okay";
};
&tlmm {
/*
* 48-52: protected by XPU, not sure why.
*/
gpio-reserved-ranges = <48 4>;
bluetooth_enable_default: bluetooth-enable-default-state {
pins = "gpio85";
function = "gpio";
output-low;
bias-disable;
};
qup_uart7_sleep_cts: qup-uart7-sleep-cts-state {
pins = "gpio28";
function = "gpio";
/*
* Configure a bias-bus-hold on CTS to lower power
* usage when Bluetooth is turned off. Bus hold will
* maintain a low power state regardless of whether
* the Bluetooth module drives the pin in either
* direction or leaves the pin fully unpowered.
*/
bias-bus-hold;
};
qup_uart7_sleep_rts: qup-uart7-sleep-rts-state {
pins = "gpio29";
function = "gpio";
/*
* Configure pull-down on RTS. As RTS is active low
* signal, pull it low to indicate the BT SoC that it
* can wakeup the system anytime from suspend state by
* pulling RX low (by sending wakeup bytes).
*/
bias-pull-down;
};
qup_uart7_sleep_tx: qup-uart7-sleep-tx-state {
pins = "gpio30";
function = "gpio";
/*
* Configure pull-up on TX when it isn't actively driven
* to prevent BT SoC from receiving garbage during sleep.
*/
bias-pull-up;
};
qup_uart7_sleep_rx: qup-uart7-sleep-rx-state {
pins = "gpio31";
function = "gpio";
/*
* Configure a pull-up on RX. This is needed to avoid
* garbage data when the TX pin of the Bluetooth module
* is floating which may cause spurious wakeups.
*/
bias-pull-up;
};
sw_ctrl_default: sw-ctrl-default-state {
pins = "gpio86";
function = "gpio";
bias-pull-down;
};
};
&uart5 {
compatible = "qcom,geni-debug-uart";
status = "okay";
};
&uart7 {
/delete-property/interrupts;
interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
<&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
pinctrl-1 = <&qup_uart7_sleep_cts>, <&qup_uart7_sleep_rts>, <&qup_uart7_sleep_tx>, <&qup_uart7_sleep_rx>;
pinctrl-names = "default", "sleep";
status = "okay";
bluetooth: bluetooth {
compatible = "qcom,wcn6750-bt";
pinctrl-0 = <&bluetooth_enable_default>, <&sw_ctrl_default>;
pinctrl-names = "default";
enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
vddio-supply = <&vreg_l19b>;
vddaon-supply = <&vreg_s7b>;
vddbtcxmx-supply = <&vreg_s7b>;
vddrfacmn-supply = <&vreg_s7b>;
vddrfa0p8-supply = <&vreg_s7b>;
vddrfa1p7-supply = <&vreg_s1b>;
vddrfa1p2-supply = <&vreg_s8b>;
vddrfa2p2-supply = <&vreg_s1c>;
vddasd-supply = <&vreg_l11c>;
max-speed = <3200000>;
};
};
&ufs_mem_hc {
reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
vcc-supply = <&vreg_l7b>;
vcc-max-microamp = <800000>;
/*
* Technically l9b enables an eLDO (supplied by s1b) which then powers
* VCCQ2 of the UFS.
*/
vccq-supply = <&vreg_l9b>;
vccq-max-microamp = <900000>;
status = "okay";
};
&ufs_mem_phy {
vdda-phy-supply = <&vreg_l10c>;
vdda-pll-supply = <&vreg_l6b>;
status = "okay";
};
&usb_1 {
status = "okay";
};
&usb_1_dwc3 {
dr_mode = "otg";
usb-role-switch;
};
&usb_1_dwc3_hs {
remote-endpoint = <&pmic_glink_hs_in>;
};
&usb_dp_qmpphy_out {
remote-endpoint = <&pmic_glink_ss_in>;
};
&usb_1_hsphy {
vdda-pll-supply = <&vreg_l10c>;
vdda18-supply = <&vreg_l1c>;
vdda33-supply = <&vreg_l2b>;
qcom,hs-crossover-voltage-microvolt = <28000>;
qcom,hs-output-impedance-micro-ohms = <2600000>;
qcom,hs-rise-fall-time-bp = <5430>;
qcom,hs-disconnect-bp = <1743>;
qcom,hs-amplitude-bp = <2430>;
qcom,pre-emphasis-amplitude-bp = <20000>;
qcom,pre-emphasis-duration-bp = <20000>;
qcom,squelch-detector-bp = <(-2090)>;
orientation-switch;
status = "okay";
};
&usb_1_qmpphy {
vdda-phy-supply = <&vreg_l6b>;
vdda-pll-supply = <&vreg_l1b>;
status = "okay";
};
&wifi {
qcom,ath11k-calibration-variant = "SHIFTphone_8";
status = "okay";
};

View File

@ -1324,7 +1324,7 @@
};
apcs_hfpll: clock-controller@b016000 {
compatible = "qcom,hfpll";
compatible = "qcom,qcs404-hfpll";
reg = <0x0b016000 0x30>;
#clock-cells = <0>;
clock-output-names = "apcs_hfpll";
@ -1531,10 +1531,10 @@
timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 2 0xff08>,
<GIC_PPI 3 0xff08>,
<GIC_PPI 4 0xff08>,
<GIC_PPI 1 0xff08>;
interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
};
smp2p-adsp {
@ -1600,7 +1600,6 @@
thermal-zones {
aoss-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 0>;
@ -1615,7 +1614,6 @@
q6-hvx-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 1>;
@ -1630,7 +1628,6 @@
lpass-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 2>;
@ -1645,7 +1642,6 @@
wlan-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 3>;
@ -1660,7 +1656,6 @@
cluster-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 4>;
@ -1694,7 +1689,6 @@
cpu0-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 5>;
@ -1728,7 +1722,6 @@
cpu1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 6>;
@ -1762,7 +1755,6 @@
cpu2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 7>;
@ -1796,7 +1788,6 @@
cpu3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 8>;
@ -1830,7 +1821,6 @@
gpu-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsens 9>;

View File

@ -52,6 +52,25 @@
};
};
hdmi-connector {
compatible = "hdmi-connector";
type = "a";
port {
hdmi_con: endpoint {
remote-endpoint = <&lt9611_out>;
};
};
};
lt9611_1v2: lt9611-vdd12-regulator {
compatible = "regulator-fixed";
regulator-name = "LT9611_1V2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
};
reserved-memory {
xbl_mem: xbl@80700000 {
reg = <0x0 0x80700000 0x0 0x100000>;
@ -530,6 +549,54 @@
<GCC_WPSS_RSCP_CLK>;
};
&gpi_dma0 {
status = "okay";
};
&gpi_dma1 {
status = "okay";
};
&i2c0 {
clock-frequency = <400000>;
status = "okay";
lt9611_codec: hdmi-bridge@2b {
compatible = "lontium,lt9611uxc";
reg = <0x2b>;
interrupts-extended = <&tlmm 24 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&pm7250b_gpios 2 GPIO_ACTIVE_HIGH>;
vdd-supply = <&lt9611_1v2>;
vcc-supply = <&vreg_l11c_2p8>;
pinctrl-names = "default";
pinctrl-0 = <&lt9611_irq_pin &lt9611_rst_pin>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
lt9611_a: endpoint {
remote-endpoint = <&mdss_dsi0_out>;
};
};
port@2 {
reg = <2>;
lt9611_out: endpoint {
remote-endpoint = <&hdmi_con>;
};
};
};
};
};
&i2c1 {
status = "okay";
@ -587,6 +654,21 @@
remote-endpoint = <&usb_dp_qmpphy_dp_in>;
};
&mdss_dsi {
vdda-supply = <&vreg_l6b_1p2>;
status = "okay";
};
&mdss_dsi0_out {
remote-endpoint = <&lt9611_a>;
data-lanes = <0 1 2 3>;
};
&mdss_dsi_phy {
vdds-supply = <&vreg_l10c_0p88>;
status = "okay";
};
&mdss_edp {
status = "okay";
};
@ -602,10 +684,18 @@
status = "okay";
};
&pmk8350_rtc {
status = "okay";
};
&qupv3_id_0 {
status = "okay";
};
&qupv3_id_1 {
status = "okay";
};
&remoteproc_adsp {
firmware-name = "qcom/qcs6490/adsp.mbn";
status = "okay";
@ -632,7 +722,6 @@
};
&uart5 {
compatible = "qcom,geni-debug-uart";
status = "okay";
};
@ -711,3 +800,23 @@
function = "gpio";
bias-disable;
};
&pm7250b_gpios {
lt9611_rst_pin: lt9611-rst-state {
pins = "gpio2";
function = "normal";
output-high;
input-disable;
power-source = <0>;
};
};
&tlmm {
lt9611_irq_pin: lt9611-irq-state {
pins = "gpio24";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
};

View File

@ -0,0 +1,315 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2023-2024, Qualcomm Innovation Center, Inc. All rights reserved.
*/
/dts-v1/;
#include <dt-bindings/leds/common.h>
#include "qcs8550-aim300.dtsi"
#include "pm8010.dtsi"
#include "pmr735d_a.dtsi"
#include "pmr735d_b.dtsi"
/ {
model = "Qualcomm Technologies, Inc. QCS8550 AIM300 AIOT";
compatible = "qcom,qcs8550-aim300-aiot", "qcom,qcs8550-aim300", "qcom,qcs8550",
"qcom,sm8550";
aliases {
serial0 = &uart7;
};
chosen {
stdout-path = "serial0:115200n8";
};
gpio-keys {
compatible = "gpio-keys";
pinctrl-0 = <&volume_up_n>;
pinctrl-names = "default";
key-volume-up {
label = "Volume Up";
debounce-interval = <15>;
gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEUP>;
linux,can-disable;
wakeup-source;
};
};
pmic-glink {
compatible = "qcom,sm8550-pmic-glink", "qcom,pmic-glink";
#address-cells = <1>;
#size-cells = <0>;
orientation-gpios = <&tlmm 11 GPIO_ACTIVE_HIGH>;
connector@0 {
compatible = "usb-c-connector";
reg = <0>;
power-role = "dual";
data-role = "dual";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
pmic_glink_hs_in: endpoint {
remote-endpoint = <&usb_1_dwc3_hs>;
};
};
port@1 {
reg = <1>;
pmic_glink_ss_in: endpoint {
remote-endpoint = <&redriver_ss_out>;
};
};
port@2 {
reg = <2>;
pmic_glink_sbu: endpoint {
remote-endpoint = <&fsa4480_sbu_mux>;
};
};
};
};
};
vph_pwr: regulator-vph-pwr {
compatible = "regulator-fixed";
regulator-name = "vph_pwr";
regulator-min-microvolt = <3700000>;
regulator-max-microvolt = <3700000>;
regulator-always-on;
regulator-boot-on;
};
};
&apps_rsc {
regulators-0 {
vdd-bob1-supply = <&vph_pwr>;
vdd-bob2-supply = <&vph_pwr>;
};
regulators-3 {
vdd-s4-supply = <&vph_pwr>;
vdd-s5-supply = <&vph_pwr>;
};
regulators-4 {
vdd-s4-supply = <&vph_pwr>;
};
regulators-5 {
vdd-s1-supply = <&vph_pwr>;
vdd-s2-supply = <&vph_pwr>;
vdd-s3-supply = <&vph_pwr>;
vdd-s4-supply = <&vph_pwr>;
vdd-s5-supply = <&vph_pwr>;
vdd-s6-supply = <&vph_pwr>;
};
};
&i2c_hub_2 {
status = "okay";
typec-mux@42 {
compatible = "fcs,fsa4480";
reg = <0x42>;
vcc-supply = <&vreg_bob1>;
mode-switch;
orientation-switch;
port {
fsa4480_sbu_mux: endpoint {
remote-endpoint = <&pmic_glink_sbu>;
};
};
};
typec-retimer@1c {
compatible = "onnn,nb7vpq904m";
reg = <0x1c>;
vcc-supply = <&vreg_l15b_1p8>;
orientation-switch;
retimer-switch;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
redriver_ss_out: endpoint {
remote-endpoint = <&pmic_glink_ss_in>;
};
};
port@1 {
reg = <1>;
redriver_ss_in: endpoint {
data-lanes = <3 2 1 0>;
remote-endpoint = <&usb_dp_qmpphy_out>;
};
};
};
};
};
&mdss_dsi0 {
status = "okay";
panel@0 {
compatible = "visionox,vtdr6130";
reg = <0>;
pinctrl-0 = <&dsi_active>, <&te_default>;
pinctrl-1 = <&dsi_suspend>, <&te_default>;
pinctrl-names = "default", "sleep";
reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
vci-supply = <&vreg_l13b_3p0>;
vdd-supply = <&vreg_l11b_1p2>;
vddio-supply = <&vreg_l12b_1p8>;
port {
panel0_in: endpoint {
remote-endpoint = <&mdss_dsi0_out>;
};
};
};
};
&mdss_dsi0_out {
remote-endpoint = <&panel0_in>;
data-lanes = <0 1 2 3>;
};
&mdss_dsi0_phy {
status = "okay";
};
&pcie0 {
status = "okay";
};
&pcie0_phy {
status = "okay";
};
&pcie1 {
status = "okay";
};
&pcie1_phy {
status = "okay";
};
&pm8550_gpios {
volume_up_n: volume-up-n-state {
pins = "gpio6";
function = "normal";
power-source = <1>;
bias-pull-up;
input-enable;
};
};
&pon_pwrkey {
status = "okay";
};
&pon_resin {
linux,code = <KEY_VOLUMEDOWN>;
status = "okay";
};
&qupv3_id_0 {
status = "okay";
};
&remoteproc_adsp {
firmware-name = "qcom/qcs8550/adsp.mbn",
"qcom/qcs8550/adsp_dtb.mbn";
status = "okay";
};
&remoteproc_cdsp {
firmware-name = "qcom/qcs8550/cdsp.mbn",
"qcom/qcs8550/cdsp_dtb.mbn";
status = "okay";
};
&swr1 {
status = "okay";
};
&swr2 {
status = "okay";
};
&tlmm {
gpio-reserved-ranges = <32 8>;
dsi_active: dsi-active-state {
pins = "gpio133";
function = "gpio";
drive-strength = <8>;
bias-disable;
};
dsi_suspend: dsi-suspend-state {
pins = "gpio133";
function = "gpio";
drive-strength = <2>;
bias-pull-down;
};
te_default: te-default-state {
pins = "gpio86";
function = "mdp_vsync";
drive-strength = <2>;
bias-pull-down;
};
};
&uart7 {
status = "okay";
};
&usb_1 {
status = "okay";
};
&usb_1_dwc3_hs {
remote-endpoint = <&pmic_glink_hs_in>;
};
&usb_1_hsphy {
status = "okay";
};
&usb_dp_qmpphy {
status = "okay";
};
&usb_dp_qmpphy_out {
remote-endpoint = <&redriver_ss_in>;
};

View File

@ -0,0 +1,405 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2023-2024, Qualcomm Innovation Center, Inc. All rights reserved.
*/
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include "qcs8550.dtsi"
#include "pm8550.dtsi"
#include "pm8550b.dtsi"
#define PMK8550VE_SID 5
#include "pm8550ve.dtsi"
#include "pm8550vs.dtsi"
#include "pmk8550.dtsi"
&apps_rsc {
regulators-0 {
compatible = "qcom,pm8550-rpmh-regulators";
qcom,pmic-id = "b";
vdd-l1-l4-l10-supply = <&vreg_s6g_1p86>;
vdd-l2-l13-l14-supply = <&vreg_bob1>;
vdd-l3-supply = <&vreg_s4g_1p25>;
vdd-l5-l16-supply = <&vreg_bob1>;
vdd-l6-l7-supply = <&vreg_bob1>;
vdd-l8-l9-supply = <&vreg_bob1>;
vdd-l11-supply = <&vreg_s4g_1p25>;
vdd-l12-supply = <&vreg_s6g_1p86>;
vdd-l15-supply = <&vreg_s6g_1p86>;
vdd-l17-supply = <&vreg_bob2>;
vreg_bob1: bob1 {
regulator-name = "vreg_bob1";
regulator-min-microvolt = <3296000>;
regulator-max-microvolt = <3960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_bob2: bob2 {
regulator-name = "vreg_bob2";
regulator-min-microvolt = <2720000>;
regulator-max-microvolt = <3960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l1b_1p8: ldo1 {
regulator-name = "vreg_l1b_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l2b_3p0: ldo2 {
regulator-name = "vreg_l2b_3p0";
regulator-min-microvolt = <3008000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l5b_3p1: ldo5 {
regulator-name = "vreg_l5b_3p1";
regulator-min-microvolt = <3104000>;
regulator-max-microvolt = <3104000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6b_1p8: ldo6 {
regulator-name = "vreg_l6b_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7b_1p8: ldo7 {
regulator-name = "vreg_l7b_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l8b_1p8: ldo8 {
regulator-name = "vreg_l8b_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l9b_2p9: ldo9 {
regulator-name = "vreg_l9b_2p9";
regulator-min-microvolt = <2960000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l11b_1p2: ldo11 {
regulator-name = "vreg_l11b_1p2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1504000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l12b_1p8: ldo12 {
regulator-name = "vreg_l12b_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l13b_3p0: ldo13 {
regulator-name = "vreg_l13b_3p0";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l14b_3p2: ldo14 {
regulator-name = "vreg_l14b_3p2";
regulator-min-microvolt = <3200000>;
regulator-max-microvolt = <3200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l15b_1p8: ldo15 {
regulator-name = "vreg_l15b_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l16b_2p8: ldo16 {
regulator-name = "vreg_l16b_2p8";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l17b_2p5: ldo17 {
regulator-name = "vreg_l17b_2p5";
regulator-min-microvolt = <2504000>;
regulator-max-microvolt = <2504000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
regulators-1 {
compatible = "qcom,pm8550vs-rpmh-regulators";
qcom,pmic-id = "c";
vdd-l1-supply = <&vreg_s4g_1p25>;
vdd-l2-supply = <&vreg_s4e_0p95>;
vdd-l3-supply = <&vreg_s4e_0p95>;
vreg_l3c_0p9: ldo3 {
regulator-name = "vreg_l3c_0p9";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
regulators-2 {
compatible = "qcom,pm8550vs-rpmh-regulators";
qcom,pmic-id = "d";
vdd-l1-supply = <&vreg_s4e_0p95>;
vdd-l2-supply = <&vreg_s4e_0p95>;
vdd-l3-supply = <&vreg_s4e_0p95>;
vreg_l1d_0p88: ldo1 {
regulator-name = "vreg_l1d_0p88";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <920000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
regulators-3 {
compatible = "qcom,pm8550vs-rpmh-regulators";
qcom,pmic-id = "e";
vdd-l1-supply = <&vreg_s4e_0p95>;
vdd-l2-supply = <&vreg_s4e_0p95>;
vdd-l3-supply = <&vreg_s4g_1p25>;
vreg_s4e_0p95: smps4 {
regulator-name = "vreg_s4e_0p95";
regulator-min-microvolt = <904000>;
regulator-max-microvolt = <984000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s5e_1p08: smps5 {
regulator-name = "vreg_s5e_1p08";
regulator-min-microvolt = <1010000>;
regulator-max-microvolt = <1120000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l1e_0p88: ldo1 {
regulator-name = "vreg_l1e_0p88";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l2e_0p9: ldo2 {
regulator-name = "vreg_l2e_0p9";
regulator-min-microvolt = <870000>;
regulator-max-microvolt = <970000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3e_1p2: ldo3 {
regulator-name = "vreg_l3e_1p2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
regulators-4 {
compatible = "qcom,pm8550ve-rpmh-regulators";
qcom,pmic-id = "f";
vdd-l1-supply = <&vreg_s4e_0p95>;
vdd-l2-supply = <&vreg_s4e_0p95>;
vdd-l3-supply = <&vreg_s4e_0p95>;
vreg_s4f_0p5: smps4 {
regulator-name = "vreg_s4f_0p5";
regulator-min-microvolt = <300000>;
regulator-max-microvolt = <700000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l1f_0p9: ldo1 {
regulator-name = "vreg_l1f_0p9";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l2f_0p88: ldo2 {
regulator-name = "vreg_l2f_0p88";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3f_0p88: ldo3 {
regulator-name = "vreg_l3f_0p88";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
regulators-5 {
compatible = "qcom,pm8550vs-rpmh-regulators";
qcom,pmic-id = "g";
vdd-l1-supply = <&vreg_s4g_1p25>;
vdd-l2-supply = <&vreg_s4g_1p25>;
vdd-l3-supply = <&vreg_s4g_1p25>;
vreg_s1g_1p25: smps1 {
regulator-name = "vreg_s1g_1p25";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1300000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s2g_0p85: smps2 {
regulator-name = "vreg_s2g_0p85";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1036000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s3g_0p8: smps3 {
regulator-name = "vreg_s3g_0p8";
regulator-min-microvolt = <300000>;
regulator-max-microvolt = <1004000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s4g_1p25: smps4 {
regulator-name = "vreg_s4g_1p25";
regulator-min-microvolt = <1256000>;
regulator-max-microvolt = <1408000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s5g_0p85: smps5 {
regulator-name = "vreg_s5g_0p85";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1004000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s6g_1p86: smps6 {
regulator-name = "vreg_s6g_1p86";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l1g_1p2: ldo1 {
regulator-name = "vreg_l1g_1p2";
regulator-min-microvolt = <1128000>;
regulator-max-microvolt = <1272000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l2g_1p2: ldo2 {
regulator-name = "vreg_l2g_1p2";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3g_1p2: ldo3 {
regulator-name = "vreg_l3g_1p2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
};
&mdss_dsi0 {
vdda-supply = <&vreg_l3e_1p2>;
};
&mdss_dsi0_phy {
vdds-supply = <&vreg_l1e_0p88>;
};
&pcie0 {
perst-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&pcie0_default_state>;
pinctrl-names = "default";
};
&pcie0_phy {
vdda-phy-supply = <&vreg_l1e_0p88>;
vdda-pll-supply = <&vreg_l3e_1p2>;
};
&pcie1 {
perst-gpios = <&tlmm 97 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 99 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&pcie1_default_state>;
pinctrl-names = "default";
};
&pcie1_phy {
vdda-phy-supply = <&vreg_l3c_0p9>;
vdda-pll-supply = <&vreg_l3e_1p2>;
vdda-qref-supply = <&vreg_l1e_0p88>;
};
&pm8550b_eusb2_repeater {
vdd18-supply = <&vreg_l15b_1p8>;
vdd3-supply = <&vreg_l5b_3p1>;
};
&sleep_clk {
clock-frequency = <32000>;
};
&ufs_mem_hc {
reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
vcc-supply = <&vreg_l17b_2p5>;
vcc-max-microamp = <1300000>;
vccq-supply = <&vreg_l1g_1p2>;
vccq-max-microamp = <1200000>;
vdd-hba-supply = <&vreg_l3g_1p2>;
status = "okay";
};
&ufs_mem_phy {
vdda-phy-supply = <&vreg_l1d_0p88>;
vdda-pll-supply = <&vreg_l3e_1p2>;
status = "okay";
};
&usb_1_hsphy {
phys = <&pm8550b_eusb2_repeater>;
vdd-supply = <&vreg_l1e_0p88>;
vdda12-supply = <&vreg_l3e_1p2>;
};
&usb_dp_qmpphy {
vdda-phy-supply = <&vreg_l3e_1p2>;
vdda-pll-supply = <&vreg_l3f_0p88>;
};
&xo_board {
clock-frequency = <76800000>;
};

View File

@ -0,0 +1,162 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2023-2024, Qualcomm Innovation Center, Inc. All rights reserved.
*/
#include "sm8550.dtsi"
/delete-node/ &reserved_memory;
/ {
reserved_memory: reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
/* These are 3 types of reserved memory regions here:
* 1. Firmware related regions which aren't shared with kernel.
* The device tree source in kernel doesn't need to have node to
* indicate the firmware related reserved information. Bootloader
* conveys the information by updating devicetree at runtime.
* This will be described as: UEFI saves the physical address of
* the UEFI System Table to dts file's chosen node. Kernel read this
* table and add reserved memory regions to efi config table. Current
* reserved memory region may have reserved region which was not yet
* used, release note of the firmware have such kind of information.
* 2. Firmware related memory regions which are shared with Kernel
* The device tree source in the kernel needs to include nodes
* that indicate fimware-related shared information. A label name
* is suggested because this type of shared information needs to
* be referenced by specific drivers for handling purposes.
* Unlike previous platforms, QCS8550 boots using EFI and describes
* most reserved regions in the ESRT memory map. As a result, reserved
* memory regions which aren't relevant to the kernel(like the hypervisor
( region) don't need to be described in DT.
* 3. Remoteproc regions.
* Remoteproc regions will be reserved and then assigned to
* subsystem firmware later.
* Here is a reserved memory map for this platform:
* 0x80000000 +-------------------+
* | |
* | Firmware Related |
* | |
* 0x8a800000 +-------------------+
* | |
* | Remoteproc Region |
* | |
* 0xa7000000 +-------------------+
* | |
* | Kernel Available |
* | |
* 0xd4d00000 +-------------------+
* | |
* | Firmware Related |
* | |
* 0x100000000 +-------------------+
*/
aop_image_mem: aop-image-region@81c00000 {
reg = <0x0 0x81c00000 0x0 0x60000>;
no-map;
};
aop_cmd_db_mem: aop-cmd-db-region@81c60000 {
compatible = "qcom,cmd-db";
reg = <0x0 0x81c60000 0x0 0x20000>;
no-map;
};
aop_config_mem: aop-config-region@81c80000 {
no-map;
reg = <0x0 0x81c80000 0x0 0x20000>;
};
smem_mem: smem-region@81d00000 {
compatible = "qcom,smem";
reg = <0x0 0x81d00000 0x0 0x200000>;
hwlocks = <&tcsr_mutex 3>;
no-map;
};
adsp_mhi_mem: adsp-mhi-region@81f00000 {
reg = <0x0 0x81f00000 0x0 0x20000>;
no-map;
};
mpss_mem: mpss-region@8a800000 {
reg = <0x0 0x8a800000 0x0 0x10800000>;
no-map;
};
q6_mpss_dtb_mem: q6-mpss-dtb-region@9b000000 {
reg = <0x0 0x9b000000 0x0 0x80000>;
no-map;
};
ipa_fw_mem: ipa-fw-region@9b080000 {
reg = <0x0 0x9b080000 0x0 0x10000>;
no-map;
};
ipa_gsi_mem: ipa-gsi-region@9b090000 {
reg = <0x0 0x9b090000 0x0 0xa000>;
no-map;
};
gpu_micro_code_mem: gpu-micro-code-region@9b09a000 {
reg = <0x0 0x9b09a000 0x0 0x2000>;
no-map;
};
spss_region_mem: spss-region@9b100000 {
reg = <0x0 0x9b100000 0x0 0x180000>;
no-map;
};
spu_secure_shared_memory_mem: spu-secure-shared-memory-region@9b280000 {
reg = <0x0 0x9b280000 0x0 0x80000>;
no-map;
};
camera_mem: camera-region@9b300000 {
reg = <0x0 0x9b300000 0x0 0x800000>;
no-map;
};
video_mem: video-region@9bb00000 {
reg = <0x0 0x9bb00000 0x0 0x700000>;
no-map;
};
cvp_mem: cvp-region@9c200000 {
reg = <0x0 0x9c200000 0x0 0x700000>;
no-map;
};
cdsp_mem: cdsp-region@9c900000 {
reg = <0x0 0x9c900000 0x0 0x2000000>;
no-map;
};
q6_cdsp_dtb_mem: q6-cdsp-dtb-region@9e900000 {
reg = <0x0 0x9e900000 0x0 0x80000>;
no-map;
};
q6_adsp_dtb_mem: q6-adsp-dtb-region@9e980000 {
reg = <0x0 0x9e980000 0x0 0x80000>;
no-map;
};
adspslpi_mem: adspslpi-region@9ea00000 {
reg = <0x0 0x9ea00000 0x0 0x4080000>;
no-map;
};
mpss_dsm_mem: mpss_dsm_region@d4d00000 {
reg = <0x0 0xd4d00000 0x0 0x3300000>;
no-map;
};
};
};

View File

@ -500,3 +500,26 @@
&uart7 {
status = "okay";
};
&usb_1 {
status = "okay";
};
&usb_1_dwc3 {
dr_mode = "peripheral";
};
&usb_1_hsphy {
vdda-pll-supply = <&vreg_l8a_0p91>;
vdda18-supply = <&vreg_l14a_1p8>;
vdda33-supply = <&vreg_l2a_2p3>;
status = "okay";
};
&usb_1_qmpphy {
vdda-phy-supply = <&vreg_l8a_0p91>;
vdda-pll-supply = <&vreg_l3a_1p2>;
status = "okay";
};

View File

@ -6,6 +6,8 @@
#include <dt-bindings/clock/qcom,qdu1000-gcc.h>
#include <dt-bindings/clock/qcom,rpmh.h>
#include <dt-bindings/dma/qcom-gpi.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interconnect/qcom,icc.h>
#include <dt-bindings/interconnect/qcom,qdu1000-rpmh.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/power/qcom-rpmpd.h>
@ -913,6 +915,126 @@
};
};
usb_1_hsphy: phy@88e3000 {
compatible = "qcom,qdu1000-usb-hs-phy",
"qcom,usb-snps-hs-7nm-phy";
reg = <0x0 0x088e3000 0x0 0x120>;
#phy-cells = <0>;
clocks =<&gcc GCC_USB2_CLKREF_EN>;
clock-names = "ref";
resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
status = "disabled";
};
usb_1_qmpphy: phy@88e5000 {
compatible = "qcom,qdu1000-qmp-usb3-uni-phy";
reg = <0x0 0x088e5000 0x0 0x2000>;
clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
<&gcc GCC_USB2_CLKREF_EN>,
<&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>,
<&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
clock-names = "aux",
"ref",
"com_aux",
"pipe";
resets = <&gcc GCC_USB3_PHY_PRIM_BCR>,
<&gcc GCC_USB3PHY_PHY_PRIM_BCR>;
reset-names = "phy",
"phy_phy";
#clock-cells = <0>;
clock-output-names = "usb3_uni_phy_pipe_clk_src";
#phy-cells = <0>;
status = "disabled";
};
usb_1: usb@a6f8800 {
compatible = "qcom,qdu1000-dwc3", "qcom,dwc3";
reg = <0 0x0a6f8800 0 0x400>;
#address-cells = <2>;
#size-cells = <2>;
ranges;
clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
<&gcc GCC_USB30_PRIM_MASTER_CLK>,
<&gcc GCC_USB30_PRIM_SLEEP_CLK>,
<&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>;
clock-names = "cfg_noc",
"core",
"sleep",
"mock_utmi";
assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
<&gcc GCC_USB30_PRIM_MASTER_CLK>;
assigned-clock-rates = <19200000>, <200000000>;
interrupts-extended = <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
<&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
<&pdc 8 IRQ_TYPE_EDGE_BOTH>,
<&pdc 9 IRQ_TYPE_EDGE_BOTH>,
<&pdc 6 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "pwr_event",
"hs_phy_irq",
"dp_hs_phy_irq",
"dm_hs_phy_irq",
"ss_phy_irq";
power-domains = <&gcc USB30_PRIM_GDSC>;
required-opps = <&rpmhpd_opp_nom>;
resets = <&gcc GCC_USB30_PRIM_BCR>;
interconnects = <&system_noc MASTER_USB3 QCOM_ICC_TAG_ALWAYS
&mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
&system_noc SLAVE_USB3_0 QCOM_ICC_TAG_ALWAYS>;
interconnect-names = "usb-ddr",
"apps-usb";
status = "disabled";
usb_1_dwc3: usb@a600000 {
compatible = "snps,dwc3";
reg = <0 0x0a600000 0 0xcd00>;
interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
iommus = <&apps_smmu 0xc0 0x0>;
snps,dis_u2_susphy_quirk;
snps,dis_enblslpm_quirk;
phys = <&usb_1_hsphy>,
<&usb_1_qmpphy>;
phy-names = "usb2-phy",
"usb3-phy";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
usb_1_dwc3_hs: endpoint {
};
};
port@1 {
reg = <1>;
usb_1_dwc3_ss: endpoint {
};
};
};
};
};
pdc: interrupt-controller@b220000 {
compatible = "qcom,qdu1000-pdc", "qcom,pdc";
reg = <0x0 0xb220000 0x0 0x30000>, <0x0 0x174000f0 0x0 0x64>;
@ -1464,6 +1586,21 @@
reg-names = "llcc0_base",
"llcc_broadcast_base";
interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
nvmem-cells = <&multi_chan_ddr>;
nvmem-cell-names = "multi-chan-ddr";
};
sec_qfprom: efuse@221c8000 {
compatible = "qcom,qdu1000-sec-qfprom", "qcom,sec-qfprom";
reg = <0 0x221c8000 0 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
multi_chan_ddr: multi-chan-ddr@12b {
reg = <0x12b 0x1>;
bits = <0 2>;
};
};
};

View File

@ -59,6 +59,17 @@
};
};
i2c2_gpio: i2c {
compatible = "i2c-gpio";
sda-gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>;
scl-gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
leds {
compatible = "gpio-leds";
@ -199,7 +210,15 @@
status = "okay";
};
&i2c2 {
&gpu {
status = "okay";
zap-shader {
firmware-name = "qcom/qcm2290/a702_zap.mbn";
};
};
&i2c2_gpio {
clock-frequency = <400000>;
status = "okay";

View File

@ -60,6 +60,17 @@
};
};
i2c2_gpio: i2c {
compatible = "i2c-gpio";
sda-gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>;
scl-gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
leds {
compatible = "gpio-leds";
@ -190,7 +201,7 @@
};
};
&i2c2 {
&i2c2_gpio {
clock-frequency = <400000>;
status = "okay";
@ -294,7 +305,7 @@
&pmi632_vbus {
regulator-min-microamp = <500000>;
regulator-max-microamp = <3000000>;
regulator-max-microamp = <1000000>;
status = "okay";
};
@ -403,6 +414,8 @@
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-allow-set-load;
regulator-always-on;
regulator-boot-on;
};
vreg_l10a_1p8: l10 {

View File

@ -108,10 +108,69 @@
regulator-always-on;
};
qca6390-pmu {
compatible = "qcom,qca6390-pmu";
pinctrl-names = "default";
pinctrl-0 = <&bt_en_state>, <&wlan_en_state>;
vddaon-supply = <&vreg_s6a_0p95>;
vddpmu-supply = <&vreg_s2f_0p95>;
vddrfa0p95-supply = <&vreg_s2f_0p95>;
vddrfa1p3-supply = <&vreg_s8c_1p3>;
vddrfa1p9-supply = <&vreg_s5a_1p9>;
vddpcie1p3-supply = <&vreg_s8c_1p3>;
vddpcie1p9-supply = <&vreg_s5a_1p9>;
vddio-supply = <&vreg_s4a_1p8>;
wlan-enable-gpios = <&tlmm 20 GPIO_ACTIVE_HIGH>;
bt-enable-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
regulators {
vreg_pmu_rfa_cmn: ldo0 {
regulator-name = "vreg_pmu_rfa_cmn";
};
vreg_pmu_aon_0p59: ldo1 {
regulator-name = "vreg_pmu_aon_0p59";
};
vreg_pmu_wlcx_0p8: ldo2 {
regulator-name = "vreg_pmu_wlcx_0p8";
};
vreg_pmu_wlmx_0p85: ldo3 {
regulator-name = "vreg_pmu_wlmx_0p85";
};
vreg_pmu_btcmx_0p85: ldo4 {
regulator-name = "vreg_pmu_btcmx_0p85";
};
vreg_pmu_rfa_0p8: ldo5 {
regulator-name = "vreg_pmu_rfa_0p8";
};
vreg_pmu_rfa_1p2: ldo6 {
regulator-name = "vreg_pmu_rfa_1p2";
};
vreg_pmu_rfa_1p7: ldo7 {
regulator-name = "vreg_pmu_rfa_1p7";
};
vreg_pmu_pcie_0p9: ldo8 {
regulator-name = "vreg_pmu_pcie_0p9";
};
vreg_pmu_pcie_1p8: ldo9 {
regulator-name = "vreg_pmu_pcie_1p8";
};
};
};
thermal-zones {
conn-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pm8150b_adc_tm 0>;
trips {
@ -124,8 +183,6 @@
};
pm8150l-pcb-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pm8150l_adc_tm 1>;
trips {
@ -138,8 +195,6 @@
};
skin-msm-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pm8150l_adc_tm 0>;
trips {
@ -152,8 +207,6 @@
};
wifi-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pm8150_adc_tm 1>;
trips {
@ -166,8 +219,6 @@
};
xo-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pm8150_adc_tm 0>;
trips {
@ -734,6 +785,23 @@
vdda-pll-supply = <&vreg_l9a_1p2>;
};
&pcieport0 {
wifi@0 {
compatible = "pci17cb,1101";
reg = <0x10000 0x0 0x0 0x0 0x0>;
vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
vddaon-supply = <&vreg_pmu_aon_0p59>;
vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
vddrfa1p7-supply = <&vreg_pmu_rfa_1p7>;
vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
};
};
&pcie1 {
status = "okay";
};
@ -1303,6 +1371,14 @@
function = "gpio";
bias-pull-up;
};
wlan_en_state: wlan-default-state {
pins = "gpio20";
function = "gpio";
drive-strength = <16>;
output-low;
bias-pull-up;
};
};
&uart6 {
@ -1311,17 +1387,12 @@
bluetooth {
compatible = "qcom,qca6390-bt";
pinctrl-names = "default";
pinctrl-0 = <&bt_en_state>;
enable-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
vddio-supply = <&vreg_s4a_1p8>;
vddpmu-supply = <&vreg_s2f_0p95>;
vddaon-supply = <&vreg_s6a_0p95>;
vddrfa0p9-supply = <&vreg_s2f_0p95>;
vddrfa1p3-supply = <&vreg_s8c_1p3>;
vddrfa1p9-supply = <&vreg_s5a_1p9>;
vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
vddaon-supply = <&vreg_pmu_aon_0p59>;
vddbtcmx-supply = <&vreg_pmu_btcmx_0p85>;
vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
vddrfa1p7-supply = <&vreg_pmu_rfa_1p7>;
};
};
@ -1356,8 +1427,8 @@
usb-role-switch;
};
&usb_1_role_switch_out {
remote-endpoint = <&pm8150b_role_switch_in>;
&usb_1_dwc3_hs_out {
remote-endpoint = <&pm8150b_hs_in>;
};
&usb_1_hsphy {
@ -1373,7 +1444,6 @@
vdda-phy-supply = <&vreg_l9a_1p2>;
vdda-pll-supply = <&vreg_l18a_0p92>;
orientation-switch;
};
&usb_1_qmpphy_out {
@ -1465,8 +1535,8 @@
port@0 {
reg = <0>;
pm8150b_role_switch_in: endpoint {
remote-endpoint = <&usb_1_role_switch_out>;
pm8150b_hs_in: endpoint {
remote-endpoint = <&usb_1_dwc3_hs_out>;
};
};

View File

@ -467,3 +467,26 @@
&uart7 {
status = "okay";
};
&usb_1 {
status = "okay";
};
&usb_1_dwc3 {
dr_mode = "peripheral";
};
&usb_1_hsphy {
vdda-pll-supply = <&vreg_l8a_0p91>;
vdda18-supply = <&vreg_l14a_1p8>;
vdda33-supply = <&vreg_l2a_2p3>;
status = "okay";
};
&usb_1_qmpphy {
vdda-phy-supply = <&vreg_l8a_0p91>;
vdda-pll-supply = <&vreg_l3a_1p2>;
status = "okay";
};

View File

@ -10,7 +10,7 @@
thermal-zones {
pmm8654au_0_thermal: pm8775-0-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pmm8654au_0_temp_alarm>;
trips {
@ -30,7 +30,7 @@
pmm8654au_1_thermal: pm8775-1-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pmm8654au_1_temp_alarm>;
trips {
@ -50,7 +50,7 @@
pmm8654au_2_thermal: pm8775-2-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pmm8654au_2_temp_alarm>;
trips {
@ -70,7 +70,7 @@
pmm8654au_3_thermal: pm8775-3-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pmm8654au_3_temp_alarm>;
trips {

View File

@ -0,0 +1,47 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2023, Linaro Limited
*/
/dts-v1/;
#include "sa8775p-ride.dtsi"
/ {
model = "Qualcomm SA8775P Ride Rev3";
compatible = "qcom,sa8775p-ride-r3", "qcom,sa8775p";
};
&ethernet0 {
phy-mode = "2500base-x";
};
&ethernet1 {
phy-mode = "2500base-x";
};
&mdio {
compatible = "snps,dwmac-mdio";
#address-cells = <1>;
#size-cells = <0>;
sgmii_phy0: phy@8 {
compatible = "ethernet-phy-id31c3.1c33";
reg = <0x8>;
device_type = "ethernet-phy";
interrupts-extended = <&tlmm 7 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&pmm8654au_2_gpios 8 GPIO_ACTIVE_LOW>;
reset-assert-us = <11000>;
reset-deassert-us = <70000>;
};
sgmii_phy1: phy@0 {
compatible = "ethernet-phy-id31c3.1c33";
reg = <0x0>;
device_type = "ethernet-phy";
interrupts-extended = <&tlmm 26 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&pmm8654au_2_gpios 9 GPIO_ACTIVE_LOW>;
reset-assert-us = <11000>;
reset-deassert-us = <70000>;
};
};

View File

@ -5,835 +5,43 @@
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include "sa8775p.dtsi"
#include "sa8775p-pmics.dtsi"
#include "sa8775p-ride.dtsi"
/ {
model = "Qualcomm SA8775P Ride";
compatible = "qcom,sa8775p-ride", "qcom,sa8775p";
aliases {
ethernet0 = &ethernet0;
ethernet1 = &ethernet1;
i2c11 = &i2c11;
i2c18 = &i2c18;
serial0 = &uart10;
serial1 = &uart12;
serial2 = &uart17;
spi16 = &spi16;
ufshc1 = &ufs_mem_hc;
};
chosen {
stdout-path = "serial0:115200n8";
};
};
&apps_rsc {
regulators-0 {
compatible = "qcom,pmm8654au-rpmh-regulators";
qcom,pmic-id = "a";
vreg_s4a: smps4 {
regulator-name = "vreg_s4a";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1816000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s5a: smps5 {
regulator-name = "vreg_s5a";
regulator-min-microvolt = <1850000>;
regulator-max-microvolt = <1996000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s9a: smps9 {
regulator-name = "vreg_s9a";
regulator-min-microvolt = <535000>;
regulator-max-microvolt = <1120000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l4a: ldo4 {
regulator-name = "vreg_l4a";
regulator-min-microvolt = <788000>;
regulator-max-microvolt = <1050000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l5a: ldo5 {
regulator-name = "vreg_l5a";
regulator-min-microvolt = <870000>;
regulator-max-microvolt = <950000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6a: ldo6 {
regulator-name = "vreg_l6a";
regulator-min-microvolt = <870000>;
regulator-max-microvolt = <970000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7a: ldo7 {
regulator-name = "vreg_l7a";
regulator-min-microvolt = <720000>;
regulator-max-microvolt = <950000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l8a: ldo8 {
regulator-name = "vreg_l8a";
regulator-min-microvolt = <2504000>;
regulator-max-microvolt = <3300000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l9a: ldo9 {
regulator-name = "vreg_l9a";
regulator-min-microvolt = <2970000>;
regulator-max-microvolt = <3544000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
};
regulators-1 {
compatible = "qcom,pmm8654au-rpmh-regulators";
qcom,pmic-id = "c";
vreg_l1c: ldo1 {
regulator-name = "vreg_l1c";
regulator-min-microvolt = <1140000>;
regulator-max-microvolt = <1260000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l2c: ldo2 {
regulator-name = "vreg_l2c";
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <1100000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3c: ldo3 {
regulator-name = "vreg_l3c";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1300000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l4c: ldo4 {
regulator-name = "vreg_l4c";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
/*
* FIXME: This should have regulator-allow-set-load but
* we're getting an over-current fault from the PMIC
* when switching to LPM.
*/
};
vreg_l5c: ldo5 {
regulator-name = "vreg_l5c";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1300000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6c: ldo6 {
regulator-name = "vreg_l6c";
regulator-min-microvolt = <1620000>;
regulator-max-microvolt = <1980000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7c: ldo7 {
regulator-name = "vreg_l7c";
regulator-min-microvolt = <1620000>;
regulator-max-microvolt = <2000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l8c: ldo8 {
regulator-name = "vreg_l8c";
regulator-min-microvolt = <2400000>;
regulator-max-microvolt = <3300000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l9c: ldo9 {
regulator-name = "vreg_l9c";
regulator-min-microvolt = <1650000>;
regulator-max-microvolt = <2700000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
};
regulators-2 {
compatible = "qcom,pmm8654au-rpmh-regulators";
qcom,pmic-id = "e";
vreg_s4e: smps4 {
regulator-name = "vreg_s4e";
regulator-min-microvolt = <970000>;
regulator-max-microvolt = <1520000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s7e: smps7 {
regulator-name = "vreg_s7e";
regulator-min-microvolt = <1010000>;
regulator-max-microvolt = <1170000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s9e: smps9 {
regulator-name = "vreg_s9e";
regulator-min-microvolt = <300000>;
regulator-max-microvolt = <570000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6e: ldo6 {
regulator-name = "vreg_l6e";
regulator-min-microvolt = <1280000>;
regulator-max-microvolt = <1450000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l8e: ldo8 {
regulator-name = "vreg_l8e";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1950000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
};
};
&ethernet0 {
phy-mode = "sgmii";
phy-handle = <&sgmii_phy0>;
pinctrl-0 = <&ethernet0_default>;
pinctrl-names = "default";
snps,mtl-rx-config = <&mtl_rx_setup>;
snps,mtl-tx-config = <&mtl_tx_setup>;
snps,ps-speed = <1000>;
status = "okay";
mdio {
compatible = "snps,dwmac-mdio";
#address-cells = <1>;
#size-cells = <0>;
sgmii_phy0: phy@8 {
compatible = "ethernet-phy-id0141.0dd4";
reg = <0x8>;
device_type = "ethernet-phy";
interrupts-extended = <&tlmm 7 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&pmm8654au_2_gpios 8 GPIO_ACTIVE_LOW>;
reset-assert-us = <11000>;
reset-deassert-us = <70000>;
};
sgmii_phy1: phy@a {
compatible = "ethernet-phy-id0141.0dd4";
reg = <0xa>;
device_type = "ethernet-phy";
interrupts-extended = <&tlmm 26 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&pmm8654au_2_gpios 9 GPIO_ACTIVE_LOW>;
reset-assert-us = <11000>;
reset-deassert-us = <70000>;
};
};
mtl_rx_setup: rx-queues-config {
snps,rx-queues-to-use = <4>;
snps,rx-sched-sp;
queue0 {
snps,dcb-algorithm;
snps,map-to-dma-channel = <0x0>;
snps,route-up;
snps,priority = <0x1>;
};
queue1 {
snps,dcb-algorithm;
snps,map-to-dma-channel = <0x1>;
snps,route-ptp;
};
queue2 {
snps,avb-algorithm;
snps,map-to-dma-channel = <0x2>;
snps,route-avcp;
};
queue3 {
snps,avb-algorithm;
snps,map-to-dma-channel = <0x3>;
snps,priority = <0xc>;
};
};
mtl_tx_setup: tx-queues-config {
snps,tx-queues-to-use = <4>;
snps,tx-sched-sp;
queue0 {
snps,dcb-algorithm;
};
queue1 {
snps,dcb-algorithm;
};
queue2 {
snps,avb-algorithm;
snps,send_slope = <0x1000>;
snps,idle_slope = <0x1000>;
snps,high_credit = <0x3e800>;
snps,low_credit = <0xffc18000>;
};
queue3 {
snps,avb-algorithm;
snps,send_slope = <0x1000>;
snps,idle_slope = <0x1000>;
snps,high_credit = <0x3e800>;
snps,low_credit = <0xffc18000>;
};
};
};
&ethernet1 {
phy-mode = "sgmii";
phy-handle = <&sgmii_phy1>;
};
snps,mtl-rx-config = <&mtl_rx_setup1>;
snps,mtl-tx-config = <&mtl_tx_setup1>;
snps,ps-speed = <1000>;
&mdio {
compatible = "snps,dwmac-mdio";
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
mtl_rx_setup1: rx-queues-config {
snps,rx-queues-to-use = <4>;
snps,rx-sched-sp;
queue0 {
snps,dcb-algorithm;
snps,map-to-dma-channel = <0x0>;
snps,route-up;
snps,priority = <0x1>;
};
queue1 {
snps,dcb-algorithm;
snps,map-to-dma-channel = <0x1>;
snps,route-ptp;
};
queue2 {
snps,avb-algorithm;
snps,map-to-dma-channel = <0x2>;
snps,route-avcp;
};
queue3 {
snps,avb-algorithm;
snps,map-to-dma-channel = <0x3>;
snps,priority = <0xc>;
};
sgmii_phy0: phy@8 {
compatible = "ethernet-phy-id0141.0dd4";
reg = <0x8>;
device_type = "ethernet-phy";
interrupts-extended = <&tlmm 7 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&pmm8654au_2_gpios 8 GPIO_ACTIVE_LOW>;
reset-assert-us = <11000>;
reset-deassert-us = <70000>;
};
mtl_tx_setup1: tx-queues-config {
snps,tx-queues-to-use = <4>;
snps,tx-sched-sp;
queue0 {
snps,dcb-algorithm;
};
queue1 {
snps,dcb-algorithm;
};
queue2 {
snps,avb-algorithm;
snps,send_slope = <0x1000>;
snps,idle_slope = <0x1000>;
snps,high_credit = <0x3e800>;
snps,low_credit = <0xffc18000>;
};
queue3 {
snps,avb-algorithm;
snps,send_slope = <0x1000>;
snps,idle_slope = <0x1000>;
snps,high_credit = <0x3e800>;
snps,low_credit = <0xffc18000>;
};
sgmii_phy1: phy@a {
compatible = "ethernet-phy-id0141.0dd4";
reg = <0xa>;
device_type = "ethernet-phy";
interrupts-extended = <&tlmm 26 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&pmm8654au_2_gpios 9 GPIO_ACTIVE_LOW>;
reset-assert-us = <11000>;
reset-deassert-us = <70000>;
};
};
&i2c11 {
clock-frequency = <400000>;
pinctrl-0 = <&qup_i2c11_default>;
pinctrl-names = "default";
status = "okay";
};
&i2c18 {
clock-frequency = <400000>;
pinctrl-0 = <&qup_i2c18_default>;
pinctrl-names = "default";
status = "okay";
};
&pmm8654au_0_gpios {
gpio-line-names = "DS_EN",
"POFF_COMPLETE",
"UFS0_VER_ID",
"FAST_POFF",
"DBU1_PON_DONE",
"AOSS_SLEEP",
"CAM_DES0_EN",
"CAM_DES1_EN",
"CAM_DES2_EN",
"CAM_DES3_EN",
"UEFI",
"ANALOG_PON_OPT";
};
&pmm8654au_0_pon_resin {
linux,code = <KEY_VOLUMEDOWN>;
status = "okay";
};
&pmm8654au_1_gpios {
gpio-line-names = "PMIC_C_ID0",
"PMIC_C_ID1",
"UFS1_VER_ID",
"IPA_PWR",
"",
"WLAN_DBU4_EN",
"WLAN_EN",
"BT_EN",
"USB2_PWR_EN",
"USB2_FAULT";
usb2_en_state: usb2-en-state {
pins = "gpio9";
function = "normal";
output-high;
power-source = <0>;
};
};
&pmm8654au_2_gpios {
gpio-line-names = "PMIC_E_ID0",
"PMIC_E_ID1",
"USB0_PWR_EN",
"USB0_FAULT",
"SENSOR_IRQ_1",
"SENSOR_IRQ_2",
"SENSOR_RST",
"SGMIIO0_RST",
"SGMIIO1_RST",
"USB1_PWR_ENABLE",
"USB1_FAULT",
"VMON_SPX8";
usb0_en_state: usb0-en-state {
pins = "gpio3";
function = "normal";
output-high;
power-source = <0>;
};
usb1_en_state: usb1-en-state {
pins = "gpio10";
function = "normal";
output-high;
power-source = <0>;
};
};
&pmm8654au_3_gpios {
gpio-line-names = "PMIC_G_ID0",
"PMIC_G_ID1",
"GNSS_RST",
"GNSS_EN",
"GNSS_BOOT_MODE";
};
&qupv3_id_1 {
status = "okay";
};
&qupv3_id_2 {
status = "okay";
};
&serdes0 {
phy-supply = <&vreg_l5a>;
status = "okay";
};
&serdes1 {
phy-supply = <&vreg_l5a>;
status = "okay";
};
&sleep_clk {
clock-frequency = <32764>;
};
&spi16 {
pinctrl-0 = <&qup_spi16_default>;
pinctrl-names = "default";
status = "okay";
};
&tlmm {
ethernet0_default: ethernet0-default-state {
ethernet0_mdc: ethernet0-mdc-pins {
pins = "gpio8";
function = "emac0_mdc";
drive-strength = <16>;
bias-pull-up;
};
ethernet0_mdio: ethernet0-mdio-pins {
pins = "gpio9";
function = "emac0_mdio";
drive-strength = <16>;
bias-pull-up;
};
};
qup_uart10_default: qup-uart10-state {
pins = "gpio46", "gpio47";
function = "qup1_se3";
};
qup_spi16_default: qup-spi16-state {
pins = "gpio86", "gpio87", "gpio88", "gpio89";
function = "qup2_se2";
drive-strength = <6>;
bias-disable;
};
qup_i2c11_default: qup-i2c11-state {
pins = "gpio48", "gpio49";
function = "qup1_se4";
drive-strength = <2>;
bias-pull-up;
};
qup_i2c18_default: qup-i2c18-state {
pins = "gpio95", "gpio96";
function = "qup2_se4";
drive-strength = <2>;
bias-pull-up;
};
qup_uart12_default: qup-uart12-state {
qup_uart12_cts: qup-uart12-cts-pins {
pins = "gpio52";
function = "qup1_se5";
bias-disable;
};
qup_uart12_rts: qup-uart12-rts-pins {
pins = "gpio53";
function = "qup1_se5";
bias-pull-down;
};
qup_uart12_tx: qup-uart12-tx-pins {
pins = "gpio54";
function = "qup1_se5";
bias-pull-up;
};
qup_uart12_rx: qup-uart12-rx-pins {
pins = "gpio55";
function = "qup1_se5";
bias-pull-down;
};
};
qup_uart17_default: qup-uart17-state {
qup_uart17_cts: qup-uart17-cts-pins {
pins = "gpio91";
function = "qup2_se3";
bias-disable;
};
qup_uart17_rts: qup0-uart17-rts-pins {
pins = "gpio92";
function = "qup2_se3";
bias-pull-down;
};
qup_uart17_tx: qup0-uart17-tx-pins {
pins = "gpio93";
function = "qup2_se3";
bias-pull-up;
};
qup_uart17_rx: qup0-uart17-rx-pins {
pins = "gpio94";
function = "qup2_se3";
bias-pull-down;
};
};
pcie0_default_state: pcie0-default-state {
perst-pins {
pins = "gpio2";
function = "gpio";
drive-strength = <2>;
bias-pull-down;
};
clkreq-pins {
pins = "gpio1";
function = "pcie0_clkreq";
drive-strength = <2>;
bias-pull-up;
};
wake-pins {
pins = "gpio0";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
};
};
pcie1_default_state: pcie1-default-state {
perst-pins {
pins = "gpio4";
function = "gpio";
drive-strength = <2>;
bias-pull-down;
};
clkreq-pins {
pins = "gpio3";
function = "pcie1_clkreq";
drive-strength = <2>;
bias-pull-up;
};
wake-pins {
pins = "gpio5";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
};
};
};
&pcie0 {
perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pcie0_default_state>;
status = "okay";
};
&pcie1 {
perst-gpios = <&tlmm 4 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 5 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pcie1_default_state>;
status = "okay";
};
&pcie0_phy {
vdda-phy-supply = <&vreg_l5a>;
vdda-pll-supply = <&vreg_l1c>;
status = "okay";
};
&pcie1_phy {
vdda-phy-supply = <&vreg_l5a>;
vdda-pll-supply = <&vreg_l1c>;
status = "okay";
};
&uart10 {
compatible = "qcom,geni-debug-uart";
pinctrl-0 = <&qup_uart10_default>;
pinctrl-names = "default";
status = "okay";
};
&uart12 {
pinctrl-0 = <&qup_uart12_default>;
pinctrl-names = "default";
status = "okay";
};
&uart17 {
pinctrl-0 = <&qup_uart17_default>;
pinctrl-names = "default";
status = "okay";
};
&ufs_mem_hc {
reset-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
vcc-supply = <&vreg_l8a>;
vcc-max-microamp = <1100000>;
vccq-supply = <&vreg_l4c>;
vccq-max-microamp = <1200000>;
status = "okay";
};
&ufs_mem_phy {
vdda-phy-supply = <&vreg_l4a>;
vdda-pll-supply = <&vreg_l1c>;
status = "okay";
};
&usb_0 {
pinctrl-names = "default";
pinctrl-0 = <&usb0_en_state>;
status = "okay";
};
&usb_0_dwc3 {
dr_mode = "peripheral";
};
&usb_0_hsphy {
vdda-pll-supply = <&vreg_l7a>;
vdda18-supply = <&vreg_l6c>;
vdda33-supply = <&vreg_l9a>;
status = "okay";
};
&usb_0_qmpphy {
vdda-phy-supply = <&vreg_l1c>;
vdda-pll-supply = <&vreg_l7a>;
status = "okay";
};
&usb_1 {
pinctrl-names = "default";
pinctrl-0 = <&usb1_en_state>;
status = "okay";
};
&usb_1_dwc3 {
dr_mode = "host";
};
&usb_1_hsphy {
vdda-pll-supply = <&vreg_l7a>;
vdda18-supply = <&vreg_l6c>;
vdda33-supply = <&vreg_l9a>;
status = "okay";
};
&usb_1_qmpphy {
vdda-phy-supply = <&vreg_l1c>;
vdda-pll-supply = <&vreg_l7a>;
status = "okay";
};
&usb_2 {
pinctrl-names = "default";
pinctrl-0 = <&usb2_en_state>;
status = "okay";
};
&usb_2_dwc3 {
dr_mode = "host";
};
&usb_2_hsphy {
vdda-pll-supply = <&vreg_l7a>;
vdda18-supply = <&vreg_l6c>;
vdda33-supply = <&vreg_l9a>;
status = "okay";
};
&xo_board_clk {
clock-frequency = <38400000>;
};

Some files were not shown because too many files have changed in this diff Show More