-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
arm64: dts: qcom: add SA8540P and ADP
Introduce the Qualcomm SA8540P automotive platform and the SA8295P ADP development board. The SA8540P and SC8280XP are fairly similar, so the SA8540P is built ontop of the SC8280XP dtsi to reduce duplication. As more advanced features are integrated this might be re-evaluated. This initial contribution supports SMP, CPUFreq, cluster idle, UFS, RPMh regulators, debug UART, PMICs, remoteprocs (NSPs crashes shortly after booting) and USB. The SA8295P ADP contains four PM8450 PMICs, which according to their revid are compatible with PM8150. They are defined within the ADP for now, to avoid creating additional .dtsi files for PM8150 with just addresses changed - and to allow using the labels from the schematics. Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> Reviewed-by: Johan Hovold <johan+linaro@kernel.org> Link: https://lore.kernel.org/r/20220629041438.1352536-6-bjorn.andersson@linaro.org
- Loading branch information
Bjorn Andersson
committed
Jul 3, 2022
1 parent
ccd3517
commit 519183a
Showing
3 changed files
with
523 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,389 @@ | ||
// SPDX-License-Identifier: BSD-3-Clause | ||
/* | ||
* Copyright (c) 2021, The Linux Foundation. All rights reserved. | ||
* Copyright (c) 2022, Linaro Limited | ||
*/ | ||
|
||
/dts-v1/; | ||
|
||
#include <dt-bindings/gpio/gpio.h> | ||
#include <dt-bindings/regulator/qcom,rpmh-regulator.h> | ||
#include <dt-bindings/spmi/spmi.h> | ||
|
||
#include "sa8540p.dtsi" | ||
|
||
/ { | ||
model = "Qualcomm SA8295P ADP"; | ||
compatible = "qcom,sa8295p-adp", "qcom,sa8540p"; | ||
|
||
aliases { | ||
serial0 = &qup2_uart17; | ||
}; | ||
|
||
chosen { | ||
stdout-path = "serial0:115200n8"; | ||
}; | ||
}; | ||
|
||
&apps_rsc { | ||
pmm8540-a-regulators { | ||
compatible = "qcom,pm8150-rpmh-regulators"; | ||
qcom,pmic-id = "a"; | ||
|
||
vreg_l3a: ldo3 { | ||
regulator-name = "vreg_l3a"; | ||
regulator-min-microvolt = <1200000>; | ||
regulator-max-microvolt = <1208000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
regulator-allow-set-load; | ||
}; | ||
|
||
vreg_l5a: ldo5 { | ||
regulator-name = "vreg_l5a"; | ||
regulator-min-microvolt = <912000>; | ||
regulator-max-microvolt = <912000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
regulator-allow-set-load; | ||
}; | ||
|
||
vreg_l7a: ldo7 { | ||
regulator-name = "vreg_l7a"; | ||
regulator-min-microvolt = <1800000>; | ||
regulator-max-microvolt = <1800000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
regulator-allow-set-load; | ||
}; | ||
|
||
vreg_l13a: ldo13 { | ||
regulator-name = "vreg_l13a"; | ||
regulator-min-microvolt = <3072000>; | ||
regulator-max-microvolt = <3072000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
regulator-allow-set-load; | ||
}; | ||
}; | ||
|
||
pmm8540-c-regulators { | ||
compatible = "qcom,pm8150-rpmh-regulators"; | ||
qcom,pmic-id = "c"; | ||
|
||
vreg_l1c: ldo1 { | ||
regulator-name = "vreg_l1c"; | ||
regulator-min-microvolt = <912000>; | ||
regulator-max-microvolt = <912000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
regulator-allow-set-load; | ||
}; | ||
|
||
vreg_l2c: ldo2 { | ||
regulator-name = "vreg_l2c"; | ||
regulator-min-microvolt = <3072000>; | ||
regulator-max-microvolt = <3072000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
regulator-allow-set-load; | ||
}; | ||
|
||
vreg_l3c: ldo3 { | ||
regulator-name = "vreg_l3c"; | ||
regulator-min-microvolt = <1200000>; | ||
regulator-max-microvolt = <1200000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
regulator-allow-set-load; | ||
}; | ||
|
||
vreg_l4c: ldo4 { | ||
regulator-name = "vreg_l4c"; | ||
regulator-min-microvolt = <1200000>; | ||
regulator-max-microvolt = <1208000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
regulator-allow-set-load; | ||
}; | ||
|
||
vreg_l6c: ldo6 { | ||
regulator-name = "vreg_l6c"; | ||
regulator-min-microvolt = <1200000>; | ||
regulator-max-microvolt = <1200000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
regulator-allow-set-load; | ||
}; | ||
|
||
vreg_l7c: ldo7 { | ||
regulator-name = "vreg_l7c"; | ||
regulator-min-microvolt = <1800000>; | ||
regulator-max-microvolt = <1800000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
regulator-allow-set-load; | ||
}; | ||
|
||
vreg_l10c: ldo10 { | ||
regulator-name = "vreg_l10c"; | ||
regulator-min-microvolt = <2504000>; | ||
regulator-max-microvolt = <2504000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
regulator-allow-set-load; | ||
}; | ||
|
||
vreg_l17c: ldo17 { | ||
regulator-name = "vreg_l17c"; | ||
regulator-min-microvolt = <2504000>; | ||
regulator-max-microvolt = <2504000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
regulator-allow-set-load; | ||
}; | ||
}; | ||
|
||
pmm8540-g-regulators { | ||
compatible = "qcom,pm8150-rpmh-regulators"; | ||
qcom,pmic-id = "g"; | ||
|
||
vreg_l3g: ldo3 { | ||
regulator-name = "vreg_l3g"; | ||
regulator-min-microvolt = <1200000>; | ||
regulator-max-microvolt = <1200000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
regulator-allow-set-load; | ||
}; | ||
|
||
vreg_l7g: ldo7 { | ||
regulator-name = "vreg_l7g"; | ||
regulator-min-microvolt = <1800000>; | ||
regulator-max-microvolt = <1800000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
regulator-allow-set-load; | ||
}; | ||
|
||
vreg_l8g: ldo8 { | ||
regulator-name = "vreg_l8g"; | ||
regulator-min-microvolt = <880000>; | ||
regulator-max-microvolt = <880000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
regulator-allow-set-load; | ||
}; | ||
}; | ||
}; | ||
|
||
&qup2 { | ||
status = "okay"; | ||
}; | ||
|
||
&qup2_uart17 { | ||
compatible = "qcom,geni-debug-uart"; | ||
status = "okay"; | ||
}; | ||
|
||
&remoteproc_adsp { | ||
firmware-name = "qcom/sa8540p/adsp.mbn"; | ||
status = "okay"; | ||
}; | ||
|
||
&remoteproc_nsp0 { | ||
firmware-name = "qcom/sa8540p/cdsp.mbn"; | ||
status = "okay"; | ||
}; | ||
|
||
&remoteproc_nsp1 { | ||
firmware-name = "qcom/sa8540p/cdsp1.mbn"; | ||
status = "okay"; | ||
}; | ||
|
||
&spmi_bus { | ||
pm8450a: pmic@0 { | ||
compatible = "qcom,pm8150", "qcom,spmi-pmic"; | ||
reg = <0x0 SPMI_USID>; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
pm8450a_gpios: gpio@c000 { | ||
compatible = "qcom,pm8150-gpio"; | ||
reg = <0xc000>; | ||
gpio-controller; | ||
#gpio-cells = <2>; | ||
interrupt-controller; | ||
#interrupt-cells = <2>; | ||
}; | ||
}; | ||
|
||
pm8450c: pmic@4 { | ||
compatible = "qcom,pm8150", "qcom,spmi-pmic"; | ||
reg = <0x4 SPMI_USID>; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
pm8450c_gpios: gpio@c000 { | ||
compatible = "qcom,pm8150-gpio"; | ||
reg = <0xc000>; | ||
gpio-controller; | ||
#gpio-cells = <2>; | ||
interrupt-controller; | ||
#interrupt-cells = <2>; | ||
}; | ||
}; | ||
|
||
pm8450e: pmic@8 { | ||
compatible = "qcom,pm8150", "qcom,spmi-pmic"; | ||
reg = <0x8 SPMI_USID>; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
pm8450e_gpios: gpio@c000 { | ||
compatible = "qcom,pm8150-gpio"; | ||
reg = <0xc000>; | ||
gpio-controller; | ||
#gpio-cells = <2>; | ||
interrupt-controller; | ||
#interrupt-cells = <2>; | ||
}; | ||
}; | ||
|
||
pm8450g: pmic@c { | ||
compatible = "qcom,pm8150", "qcom,spmi-pmic"; | ||
reg = <0xc SPMI_USID>; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
pm8450g_gpios: gpio@c000 { | ||
compatible = "qcom,pm8150-gpio"; | ||
reg = <0xc000>; | ||
gpio-controller; | ||
#gpio-cells = <2>; | ||
interrupt-controller; | ||
#interrupt-cells = <2>; | ||
}; | ||
}; | ||
}; | ||
|
||
&ufs_mem_hc { | ||
reset-gpios = <&tlmm 228 GPIO_ACTIVE_LOW>; | ||
|
||
vcc-supply = <&vreg_l17c>; | ||
vcc-max-microamp = <800000>; | ||
vccq-supply = <&vreg_l6c>; | ||
vccq-max-microamp = <900000>; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&ufs_mem_phy { | ||
vdda-phy-supply = <&vreg_l8g>; | ||
vdda-pll-supply = <&vreg_l3g>; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&ufs_card_hc { | ||
reset-gpios = <&tlmm 229 GPIO_ACTIVE_LOW>; | ||
|
||
vcc-supply = <&vreg_l10c>; | ||
vcc-max-microamp = <800000>; | ||
vccq-supply = <&vreg_l3c>; | ||
vccq-max-microamp = <900000>; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&ufs_card_phy { | ||
vdda-phy-supply = <&vreg_l8g>; | ||
vdda-pll-supply = <&vreg_l3g>; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&usb_0 { | ||
status = "okay"; | ||
}; | ||
|
||
&usb_0_dwc3 { | ||
/* TODO: Define USB-C connector properly */ | ||
dr_mode = "peripheral"; | ||
}; | ||
|
||
&usb_0_hsphy { | ||
vdda-pll-supply = <&vreg_l5a>; | ||
vdda18-supply = <&vreg_l7a>; | ||
vdda33-supply = <&vreg_l13a>; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&usb_0_qmpphy { | ||
vdda-phy-supply = <&vreg_l3a>; | ||
vdda-pll-supply = <&vreg_l5a>; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&usb_1 { | ||
status = "okay"; | ||
}; | ||
|
||
&usb_1_dwc3 { | ||
/* TODO: Define USB-C connector properly */ | ||
dr_mode = "host"; | ||
}; | ||
|
||
&usb_1_hsphy { | ||
vdda-pll-supply = <&vreg_l1c>; | ||
vdda18-supply = <&vreg_l7c>; | ||
vdda33-supply = <&vreg_l2c>; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&usb_1_qmpphy { | ||
vdda-phy-supply = <&vreg_l4c>; | ||
vdda-pll-supply = <&vreg_l1c>; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&usb_2_hsphy0 { | ||
vdda-pll-supply = <&vreg_l5a>; | ||
vdda18-supply = <&vreg_l7g>; | ||
vdda33-supply = <&vreg_l13a>; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&usb_2_hsphy1 { | ||
vdda-pll-supply = <&vreg_l5a>; | ||
vdda18-supply = <&vreg_l7g>; | ||
vdda33-supply = <&vreg_l13a>; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&usb_2_hsphy2 { | ||
vdda-pll-supply = <&vreg_l5a>; | ||
vdda18-supply = <&vreg_l7g>; | ||
vdda33-supply = <&vreg_l13a>; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&usb_2_hsphy3 { | ||
vdda-pll-supply = <&vreg_l5a>; | ||
vdda18-supply = <&vreg_l7g>; | ||
vdda33-supply = <&vreg_l13a>; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&usb_2_qmpphy0 { | ||
vdda-phy-supply = <&vreg_l3a>; | ||
vdda-pll-supply = <&vreg_l5a>; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&usb_2_qmpphy1 { | ||
vdda-phy-supply = <&vreg_l3a>; | ||
vdda-pll-supply = <&vreg_l5a>; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&xo_board_clk { | ||
clock-frequency = <38400000>; | ||
}; | ||
|
||
/* PINCTRL */ |
Oops, something went wrong.