659 lines
12 KiB
Plaintext
659 lines
12 KiB
Plaintext
// 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 "sa8540p.dtsi"
|
|
#include "sa8540p-pmics.dtsi"
|
|
|
|
/ {
|
|
model = "Qualcomm SA8540P Ride";
|
|
compatible = "qcom,sa8540p-ride", "qcom,sa8540p";
|
|
|
|
aliases {
|
|
i2c0 = &i2c0;
|
|
i2c1 = &i2c1;
|
|
i2c12 = &i2c12;
|
|
i2c15 = &i2c15;
|
|
i2c18 = &i2c18;
|
|
serial0 = &uart17;
|
|
};
|
|
|
|
chosen {
|
|
stdout-path = "serial0:115200n8";
|
|
};
|
|
};
|
|
|
|
&apps_rsc {
|
|
regulators-0 {
|
|
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>;
|
|
};
|
|
|
|
vreg_l5a: ldo5 {
|
|
regulator-name = "vreg_l5a";
|
|
regulator-min-microvolt = <912000>;
|
|
regulator-max-microvolt = <912000>;
|
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
|
};
|
|
|
|
vreg_l7a: ldo7 {
|
|
regulator-name = "vreg_l7a";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
|
};
|
|
|
|
vreg_l11a: ldo11 {
|
|
regulator-name = "vreg_l11a";
|
|
regulator-min-microvolt = <880000>;
|
|
regulator-max-microvolt = <880000>;
|
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
|
};
|
|
|
|
vreg_l13a: ldo13 {
|
|
regulator-name = "vreg_l13a";
|
|
regulator-min-microvolt = <3072000>;
|
|
regulator-max-microvolt = <3072000>;
|
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
|
};
|
|
};
|
|
|
|
regulators-1 {
|
|
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>;
|
|
};
|
|
|
|
vreg_l2c: ldo2 {
|
|
regulator-name = "vreg_l2c";
|
|
regulator-min-microvolt = <3072000>;
|
|
regulator-max-microvolt = <3072000>;
|
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
|
};
|
|
|
|
vreg_l4c: ldo4 {
|
|
regulator-name = "vreg_l4c";
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <1208000>;
|
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
|
};
|
|
|
|
vreg_l6c: ldo6 {
|
|
regulator-name = "vreg_l6c";
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <1200000>;
|
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
|
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
|
|
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>;
|
|
};
|
|
|
|
vreg_l17c: ldo17 {
|
|
regulator-name = "vreg_l17c";
|
|
regulator-min-microvolt = <2504000>;
|
|
regulator-max-microvolt = <2504000>;
|
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
|
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
|
|
RPMH_REGULATOR_MODE_HPM>;
|
|
regulator-allow-set-load;
|
|
};
|
|
};
|
|
|
|
regulators-2 {
|
|
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>;
|
|
};
|
|
|
|
vreg_l7g: ldo7 {
|
|
regulator-name = "vreg_l7g";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
|
};
|
|
|
|
vreg_l8g: ldo8 {
|
|
regulator-name = "vreg_l8g";
|
|
regulator-min-microvolt = <880000>;
|
|
regulator-max-microvolt = <880000>;
|
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
|
};
|
|
};
|
|
};
|
|
|
|
ðernet0 {
|
|
snps,mtl-rx-config = <ðernet0_mtl_rx_setup>;
|
|
snps,mtl-tx-config = <ðernet0_mtl_tx_setup>;
|
|
|
|
max-speed = <1000>;
|
|
phy-handle = <&rgmii_phy>;
|
|
phy-mode = "rgmii-txid";
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <ðernet0_default>;
|
|
|
|
status = "okay";
|
|
|
|
mdio {
|
|
compatible = "snps,dwmac-mdio";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
/* Marvell 88EA1512 */
|
|
rgmii_phy: phy@8 {
|
|
compatible = "ethernet-phy-id0141.0dd4";
|
|
reg = <0x8>;
|
|
|
|
interrupts-extended = <&tlmm 127 IRQ_TYPE_EDGE_FALLING>;
|
|
|
|
reset-gpios = <&pmm8540c_gpios 1 GPIO_ACTIVE_LOW>;
|
|
reset-assert-us = <11000>;
|
|
reset-deassert-us = <70000>;
|
|
|
|
device_type = "ethernet-phy";
|
|
|
|
/* Set to RGMII_SGMII mode and soft reset. Turn off auto-negotiation
|
|
* from userspace to talk to the switch on the SGMII side of things
|
|
*/
|
|
marvell,reg-init =
|
|
/* Set MODE[2:0] to RGMII_SGMII */
|
|
<0x12 0x14 0xfff8 0x4>,
|
|
/* Soft reset required after changing MODE[2:0] */
|
|
<0x12 0x14 0x7fff 0x8000>;
|
|
};
|
|
};
|
|
|
|
ethernet0_mtl_rx_setup: rx-queues-config {
|
|
snps,rx-queues-to-use = <1>;
|
|
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>;
|
|
};
|
|
};
|
|
|
|
ethernet0_mtl_tx_setup: tx-queues-config {
|
|
snps,tx-queues-to-use = <1>;
|
|
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>;
|
|
};
|
|
};
|
|
};
|
|
|
|
ðernet1 {
|
|
snps,mtl-rx-config = <ðernet1_mtl_rx_setup>;
|
|
snps,mtl-tx-config = <ðernet1_mtl_tx_setup>;
|
|
|
|
max-speed = <1000>;
|
|
phy-mode = "rgmii-txid";
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <ðernet1_default>;
|
|
|
|
status = "okay";
|
|
|
|
fixed-link {
|
|
speed = <1000>;
|
|
full-duplex;
|
|
};
|
|
|
|
ethernet1_mtl_rx_setup: rx-queues-config {
|
|
snps,rx-queues-to-use = <1>;
|
|
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>;
|
|
};
|
|
};
|
|
|
|
ethernet1_mtl_tx_setup: tx-queues-config {
|
|
snps,tx-queues-to-use = <1>;
|
|
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>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&i2c0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2c0_default>;
|
|
|
|
status = "okay";
|
|
};
|
|
|
|
&i2c1 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2c1_default>;
|
|
|
|
status = "okay";
|
|
};
|
|
|
|
&i2c12 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2c12_default>;
|
|
|
|
status = "okay";
|
|
};
|
|
|
|
&i2c15 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2c15_default>;
|
|
|
|
status = "okay";
|
|
};
|
|
|
|
&i2c18 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2c18_default>;
|
|
|
|
status = "okay";
|
|
};
|
|
|
|
&pcie2a {
|
|
ranges = <0x01000000 0x0 0x3c200000 0x0 0x3c200000 0x0 0x100000>,
|
|
<0x02000000 0x0 0x3c300000 0x0 0x3c300000 0x0 0x1d00000>,
|
|
<0x03000000 0x5 0x00000000 0x5 0x00000000 0x1 0x00000000>;
|
|
|
|
perst-gpios = <&tlmm 143 GPIO_ACTIVE_LOW>;
|
|
wake-gpios = <&tlmm 145 GPIO_ACTIVE_HIGH>;
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pcie2a_default>;
|
|
|
|
status = "okay";
|
|
};
|
|
|
|
&pcie2a_phy {
|
|
vdda-phy-supply = <&vreg_l11a>;
|
|
vdda-pll-supply = <&vreg_l3a>;
|
|
|
|
status = "okay";
|
|
};
|
|
|
|
&pcie3a {
|
|
ranges = <0x01000000 0x0 0x40200000 0x0 0x40200000 0x0 0x100000>,
|
|
<0x02000000 0x0 0x40300000 0x0 0x40300000 0x0 0x20000000>,
|
|
<0x03000000 0x6 0x00000000 0x6 0x00000000 0x2 0x00000000>;
|
|
|
|
perst-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
|
|
wake-gpios = <&tlmm 56 GPIO_ACTIVE_HIGH>;
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pcie3a_default>;
|
|
|
|
status = "okay";
|
|
};
|
|
|
|
&pcie3a_phy {
|
|
vdda-phy-supply = <&vreg_l11a>;
|
|
vdda-pll-supply = <&vreg_l3a>;
|
|
|
|
status = "okay";
|
|
};
|
|
|
|
&pmm8540a_rtc {
|
|
nvmem-cells = <&rtc_offset>;
|
|
nvmem-cell-names = "offset";
|
|
|
|
status = "okay";
|
|
};
|
|
|
|
&pmm8540c_sdam_2 {
|
|
status = "okay";
|
|
|
|
rtc_offset: rtc-offset@a0 {
|
|
reg = <0xa0 0x4>;
|
|
};
|
|
};
|
|
|
|
&qup0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&qup1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&qup2 {
|
|
status = "okay";
|
|
};
|
|
|
|
&remoteproc_nsp0 {
|
|
firmware-name = "qcom/sa8540p/cdsp0.mbn";
|
|
status = "okay";
|
|
};
|
|
|
|
&remoteproc_nsp1 {
|
|
firmware-name = "qcom/sa8540p/cdsp1.mbn";
|
|
status = "okay";
|
|
};
|
|
|
|
&uart17 {
|
|
compatible = "qcom,geni-debug-uart";
|
|
status = "okay";
|
|
};
|
|
|
|
&ufs_mem_hc {
|
|
reset-gpios = <&tlmm 228 GPIO_ACTIVE_LOW>;
|
|
|
|
vcc-supply = <&vreg_l17c>;
|
|
vccq-supply = <&vreg_l6c>;
|
|
|
|
status = "okay";
|
|
};
|
|
|
|
&ufs_mem_phy {
|
|
vdda-phy-supply = <&vreg_l8g>;
|
|
vdda-pll-supply = <&vreg_l3g>;
|
|
|
|
status = "okay";
|
|
};
|
|
|
|
&usb_0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&usb_0_dwc3 {
|
|
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_2_hsphy0 {
|
|
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";
|
|
};
|
|
|
|
&xo_board_clk {
|
|
clock-frequency = <38400000>;
|
|
};
|
|
|
|
/* PINCTRL */
|
|
|
|
&tlmm {
|
|
ethernet0_default: ethernet0-default-state {
|
|
mdc-pins {
|
|
pins = "gpio175";
|
|
function = "rgmii_0";
|
|
drive-strength = <16>;
|
|
bias-pull-up;
|
|
};
|
|
|
|
mdio-pins {
|
|
pins = "gpio176";
|
|
function = "rgmii_0";
|
|
drive-strength = <16>;
|
|
bias-pull-up;
|
|
};
|
|
|
|
rgmii-tx-pins {
|
|
pins = "gpio183", "gpio184", "gpio185", "gpio186", "gpio187", "gpio188";
|
|
function = "rgmii_0";
|
|
drive-strength = <16>;
|
|
bias-pull-up;
|
|
};
|
|
|
|
rgmii-rx-pins {
|
|
pins = "gpio177", "gpio178", "gpio179", "gpio180", "gpio181", "gpio182";
|
|
function = "rgmii_0";
|
|
drive-strength = <16>;
|
|
bias-disable;
|
|
};
|
|
};
|
|
|
|
ethernet1_default: ethernet1-default-state {
|
|
mdc-pins {
|
|
pins = "gpio97";
|
|
function = "rgmii_1";
|
|
drive-strength = <16>;
|
|
bias-pull-up;
|
|
};
|
|
|
|
mdio-pins {
|
|
pins = "gpio98";
|
|
function = "rgmii_1";
|
|
drive-strength = <16>;
|
|
bias-pull-up;
|
|
};
|
|
|
|
rgmii-tx-pins {
|
|
pins = "gpio105", "gpio106", "gpio107", "gpio108", "gpio109", "gpio110";
|
|
function = "rgmii_1";
|
|
drive-strength = <16>;
|
|
bias-pull-up;
|
|
};
|
|
|
|
rgmii-rx-pins {
|
|
pins = "gpio99", "gpio100", "gpio101", "gpio102", "gpio103", "gpio104";
|
|
function = "rgmii_1";
|
|
drive-strength = <16>;
|
|
bias-disable;
|
|
};
|
|
};
|
|
|
|
i2c0_default: i2c0-default-state {
|
|
/* To USB7002T-I/KDXVA0 USB hub (SIP1 only) */
|
|
pins = "gpio135", "gpio136";
|
|
function = "qup0";
|
|
drive-strength = <2>;
|
|
bias-pull-up;
|
|
};
|
|
|
|
i2c1_default: i2c1-default-state {
|
|
/* To PM40028B-F3EI PCIe switch */
|
|
pins = "gpio158", "gpio159";
|
|
function = "qup1";
|
|
drive-strength = <2>;
|
|
bias-pull-up;
|
|
};
|
|
|
|
i2c12_default: i2c12-default-state {
|
|
/* To Maxim max20411 */
|
|
pins = "gpio0", "gpio1";
|
|
function = "qup12";
|
|
drive-strength = <2>;
|
|
bias-pull-up;
|
|
};
|
|
|
|
i2c15_default: i2c15-default-state {
|
|
/* To display connector (SIP1 only) */
|
|
pins = "gpio36", "gpio37";
|
|
function = "qup15";
|
|
drive-strength = <2>;
|
|
bias-pull-up;
|
|
};
|
|
|
|
i2c18_default: i2c18-default-state {
|
|
/* To ASM330LHH IMU (SIP1 only) */
|
|
pins = "gpio66", "gpio67";
|
|
function = "qup18";
|
|
drive-strength = <2>;
|
|
bias-pull-up;
|
|
};
|
|
|
|
pcie2a_default: pcie2a-default-state {
|
|
perst-pins {
|
|
pins = "gpio143";
|
|
function = "gpio";
|
|
drive-strength = <2>;
|
|
bias-pull-down;
|
|
};
|
|
|
|
clkreq-pins {
|
|
pins = "gpio142";
|
|
function = "pcie2a_clkreq";
|
|
drive-strength = <2>;
|
|
bias-pull-up;
|
|
};
|
|
|
|
wake-pins {
|
|
pins = "gpio145";
|
|
function = "gpio";
|
|
drive-strength = <2>;
|
|
bias-pull-up;
|
|
};
|
|
};
|
|
|
|
pcie3a_default: pcie3a-default-state {
|
|
perst-pins {
|
|
pins = "gpio151";
|
|
function = "gpio";
|
|
drive-strength = <2>;
|
|
bias-pull-down;
|
|
};
|
|
|
|
clkreq-pins {
|
|
pins = "gpio150";
|
|
function = "pcie3a_clkreq";
|
|
drive-strength = <2>;
|
|
bias-pull-up;
|
|
};
|
|
|
|
wake-pins {
|
|
pins = "gpio56";
|
|
function = "gpio";
|
|
drive-strength = <2>;
|
|
bias-pull-up;
|
|
};
|
|
};
|
|
};
|