linux-loongson/arch/arm64/boot/dts/qcom/sa8540p-ride.dts
Russell King (Oracle) 0d5da04d23 arm64: dts: qcom: remove max-speed = 1G for RGMII for ethernet
The RGMII interface is designed for speeds up to 1G. Phylink already
imposes the design limits for MII interfaces, and additional
specification is unnecessary. Therefore, we can remove this property
without any effect.

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/E1u3bkm-000Epw-QU@rmk-PC.armlinux.org.uk
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2025-04-14 21:28:34 -05:00

655 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>;
};
};
};
&ethernet0 {
snps,mtl-rx-config = <&ethernet0_mtl_rx_setup>;
snps,mtl-tx-config = <&ethernet0_mtl_tx_setup>;
phy-handle = <&rgmii_phy>;
phy-mode = "rgmii-txid";
pinctrl-names = "default";
pinctrl-0 = <&ethernet0_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>;
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 {
snps,mtl-rx-config = <&ethernet1_mtl_rx_setup>;
snps,mtl-tx-config = <&ethernet1_mtl_tx_setup>;
phy-mode = "rgmii-txid";
pinctrl-names = "default";
pinctrl-0 = <&ethernet1_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>;
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 = "disabled";
};
&pcie2a_phy {
vdda-phy-supply = <&vreg_l11a>;
vdda-pll-supply = <&vreg_l3a>;
status = "disabled";
};
&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;
};
};
};