rockchip: sync rk3528 support with upstream

This commit is contained in:
aiamadeus 2025-07-15 23:09:26 +08:00
parent 07d0c1621f
commit d339d73f03
8 changed files with 33 additions and 105 deletions

View File

@ -371,7 +371,6 @@
mmc-pwrseq = <&sdio_pwrseq>;
pinctrl-names = "default";
pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
post-power-on-delay-ms = <50>;
non-removable;
sd-uhs-sdr104;
status = "okay";
@ -395,9 +394,6 @@
pinctrl-names = "default";
pinctrl-0 = <&sdmmc_bus4 &sdmmc_clk &sdmmc_cmd &sdmmc_det>;
rockchip,default-sample-phase = <90>;
sd-uhs-sdr12;
sd-uhs-sdr25;
sd-uhs-sdr50;
sd-uhs-sdr104;
vmmc-supply = <&vcc3v3_sd>;
vqmmc-supply = <&vccio_sd>;

View File

@ -119,25 +119,25 @@
vdd_arm: vdd-arm {
compatible = "pwm-regulator";
pwms = <&pwm1 0 5000 1>;
pwm-supply = <&vcc5v0_sys>;
regulator-name = "vdd_arm";
regulator-min-microvolt = <746000>;
regulator-max-microvolt = <1201000>;
regulator-always-on;
regulator-boot-on;
regulator-settling-time-up-us = <250>;
pwm-supply = <&vcc5v0_sys>;
};
vdd_logic: vdd-logic {
compatible = "pwm-regulator";
pwms = <&pwm2 0 5000 1>;
pwm-supply = <&vcc5v0_sys>;
regulator-name = "vdd_logic";
regulator-min-microvolt = <705000>;
regulator-max-microvolt = <1006000>;
regulator-always-on;
regulator-boot-on;
regulator-settling-time-up-us = <250>;
pwm-supply = <&vcc5v0_sys>;
};
};
@ -266,9 +266,6 @@
pinctrl-names = "default";
pinctrl-0 = <&sdmmc_bus4 &sdmmc_clk &sdmmc_cmd &sdmmc_det>;
rockchip,default-sample-phase = <90>;
sd-uhs-sdr12;
sd-uhs-sdr25;
sd-uhs-sdr50;
sd-uhs-sdr104;
vmmc-supply = <&vcc3v3_sd>;
vqmmc-supply = <&vccio_sd>;

View File

@ -131,25 +131,25 @@
vdd_arm: vdd-arm {
compatible = "pwm-regulator";
pwms = <&pwm1 0 5000 1>;
pwm-supply = <&vcc5v0_sys>;
regulator-name = "vdd_arm";
regulator-min-microvolt = <746000>;
regulator-max-microvolt = <1201000>;
regulator-always-on;
regulator-boot-on;
regulator-settling-time-up-us = <250>;
pwm-supply = <&vcc5v0_sys>;
};
vdd_logic: vdd-logic {
compatible = "pwm-regulator";
pwms = <&pwm2 0 5000 1>;
pwm-supply = <&vcc5v0_sys>;
regulator-name = "vdd_logic";
regulator-min-microvolt = <705000>;
regulator-max-microvolt = <1006000>;
regulator-always-on;
regulator-boot-on;
regulator-settling-time-up-us = <250>;
pwm-supply = <&vcc5v0_sys>;
};
};
@ -287,9 +287,6 @@
pinctrl-names = "default";
pinctrl-0 = <&sdmmc_bus4 &sdmmc_clk &sdmmc_cmd &sdmmc_det>;
rockchip,default-sample-phase = <90>;
sd-uhs-sdr12;
sd-uhs-sdr25;
sd-uhs-sdr50;
sd-uhs-sdr104;
vmmc-supply = <&vcc3v3_sd>;
vqmmc-supply = <&vccio_sd>;

View File

@ -311,9 +311,6 @@
pinctrl-names = "default";
pinctrl-0 = <&sdmmc_bus4 &sdmmc_clk &sdmmc_cmd &sdmmc_det>;
rockchip,default-sample-phase = <90>;
sd-uhs-sdr12;
sd-uhs-sdr25;
sd-uhs-sdr50;
sd-uhs-sdr104;
vmmc-supply = <&vcc_3v3>;
vqmmc-supply = <&vccio_sd>;

View File

@ -41,7 +41,6 @@
serial7 = &uart7;
spi0 = &spi0;
spi1 = &spi1;
spi2 = &sfc;
};
cpus {
@ -137,31 +136,31 @@
opp-1008000000 {
opp-hz = /bits/ 64 <1008000000>;
opp-microvolt = <825000 825000 1100000>;
opp-microvolt = <850000 850000 1100000>;
clock-latency-ns = <40000>;
};
opp-1200000000 {
opp-hz = /bits/ 64 <1200000000>;
opp-microvolt = <825000 825000 1100000>;
opp-microvolt = <850000 850000 1100000>;
clock-latency-ns = <40000>;
};
opp-1416000000 {
opp-hz = /bits/ 64 <1416000000>;
opp-microvolt = <962500 962500 1100000>;
opp-microvolt = <925000 925000 1100000>;
clock-latency-ns = <40000>;
};
opp-1608000000 {
opp-hz = /bits/ 64 <1608000000>;
opp-microvolt = <1012500 1012500 1100000>;
opp-microvolt = <975000 975000 1100000>;
clock-latency-ns = <40000>;
};
opp-1800000000 {
opp-hz = /bits/ 64 <1800000000>;
opp-microvolt = <1062500 1062500 1100000>;
opp-microvolt = <1037500 1037500 1100000>;
clock-latency-ns = <40000>;
};
@ -258,7 +257,8 @@
};
pcie2x1: pcie@fe4f0000 {
compatible = "rockchip,rk3528-pcie", "rockchip,rk3568-pcie";
compatible = "rockchip,rk3528-pcie",
"rockchip,rk3568-pcie";
reg = <0x0 0xfe000000 0x0 0x400000>,
<0x0 0xfe4f0000 0x0 0x010000>,
<0x0 0xfc000000 0x0 0x100000>;
@ -272,13 +272,10 @@
interrupt-names = "msi", "pmc", "sys", "legacy", "msg", "err";
bus-range = <0x0 0xff>;
clocks = <&cru ACLK_PCIE>, <&cru HCLK_PCIE_SLV>,
<&cru HCLK_PCIE_DBI>, <&cru PCLK_CRU_PCIE>,
<&cru CLK_PCIE_AUX>, <&cru PCLK_PCIE>,
<&cru PCLK_PCIE_PHY>;
clock-names = "aclk", "hclk_slv",
"hclk_dbi", "pclk_cru",
"aux", "pclk",
"pipe";
<&cru HCLK_PCIE_DBI>, <&cru PCLK_PCIE>,
<&cru CLK_PCIE_AUX>;
clock-names = "aclk_mst", "aclk_slv",
"aclk_dbi", "pclk", "aux";
device_type = "pci";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 7>;
@ -297,9 +294,8 @@
ranges = <0x01000000 0x0 0xfc100000 0x0 0xfc100000 0x0 0x00100000
0x02000000 0x0 0xfc200000 0x0 0xfc200000 0x0 0x01e00000
0x03000000 0x1 0x00000000 0x1 0x00000000 0x0 0x40000000>;
resets = <&cru SRST_RESETN_PCIE_POWER_UP>, <&cru SRST_PRESETN_PCIE>,
<&cru SRST_PRESETN_CRU_PCIE>;
reset-names = "pwr", "periph", "preset_cru";
resets = <&cru SRST_RESETN_PCIE_POWER_UP>, <&cru SRST_PRESETN_PCIE>;
reset-names = "pwr", "pipe";
#address-cells = <3>;
#size-cells = <2>;
status = "disabled";
@ -686,14 +682,14 @@
compatible = "rockchip,rk3528-spi", "rockchip,rk3066-spi";
reg = <0x0 0xff9c0000 0x0 0x1000>;
interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&cru CLK_SPI0>, <&cru PCLK_SPI0>, <&cru SCLK_IN_SPI0>;
clock-names = "spiclk", "apb_pclk", "sclk_in";
dmas = <&dmac 25>, <&dmac 24>;
dma-names = "tx", "rx";
pinctrl-names = "default";
pinctrl-0 = <&spi0_csn0 &spi0_csn1 &spi0_pins>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
@ -701,14 +697,14 @@
compatible = "rockchip,rk3528-spi", "rockchip,rk3066-spi";
reg = <0x0 0xff9d0000 0x0 0x1000>;
interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&cru CLK_SPI1>, <&cru PCLK_SPI1>, <&cru SCLK_IN_SPI1>;
clock-names = "spiclk", "apb_pclk", "sclk_in";
dmas = <&dmac 31>, <&dmac 30>;
dma-names = "tx", "rx";
pinctrl-names = "default";
pinctrl-0 = <&spi1_csn0 &spi1_csn1 &spi1_pins>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
@ -917,8 +913,8 @@
reg = <0x0 0xffa90000 0x0 0x10>;
clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>;
clock-names = "pwm", "pclk";
pinctrl-names = "default";
pinctrl-0 = <&pwm0m0_pins>;
pinctrl-names = "active";
#pwm-cells = <3>;
status = "disabled";
};
@ -928,8 +924,8 @@
reg = <0x0 0xffa90010 0x0 0x10>;
clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>;
clock-names = "pwm", "pclk";
pinctrl-names = "default";
pinctrl-0 = <&pwm1m0_pins>;
pinctrl-names = "active";
#pwm-cells = <3>;
status = "disabled";
};
@ -939,8 +935,8 @@
reg = <0x0 0xffa90020 0x0 0x10>;
clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>;
clock-names = "pwm", "pclk";
pinctrl-names = "default";
pinctrl-0 = <&pwm2m0_pins>;
pinctrl-names = "active";
#pwm-cells = <3>;
status = "disabled";
};
@ -950,8 +946,8 @@
reg = <0x0 0xffa90030 0x0 0x10>;
clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>;
clock-names = "pwm", "pclk";
pinctrl-names = "default";
pinctrl-0 = <&pwm3m0_pins>;
pinctrl-names = "active";
#pwm-cells = <3>;
status = "disabled";
};
@ -961,8 +957,8 @@
reg = <0x0 0xffa98000 0x0 0x10>;
clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
clock-names = "pwm", "pclk";
pinctrl-names = "default";
pinctrl-0 = <&pwm4m0_pins>;
pinctrl-names = "active";
#pwm-cells = <3>;
status = "disabled";
};
@ -972,8 +968,8 @@
reg = <0x0 0xffa98010 0x0 0x10>;
clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
clock-names = "pwm", "pclk";
pinctrl-names = "default";
pinctrl-0 = <&pwm5m0_pins>;
pinctrl-names = "active";
#pwm-cells = <3>;
status = "disabled";
};
@ -983,8 +979,8 @@
reg = <0x0 0xffa98020 0x0 0x10>;
clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
clock-names = "pwm", "pclk";
pinctrl-names = "default";
pinctrl-0 = <&pwm6m0_pins>;
pinctrl-names = "active";
#pwm-cells = <3>;
status = "disabled";
};
@ -994,8 +990,8 @@
reg = <0x0 0xffa98030 0x0 0x10>;
clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
clock-names = "pwm", "pclk";
pinctrl-names = "default";
pinctrl-0 = <&pwm7m0_pins>;
pinctrl-names = "active";
#pwm-cells = <3>;
status = "disabled";
};
@ -1084,7 +1080,8 @@
};
pdm: pdm@ffbb0000 {
compatible = "rockchip,rk3528-pdm", "rockchip,rk3568-pdm";
compatible = "rockchip,rk3528-pdm",
"rockchip,rk3568-pdm";
reg = <0x0 0xffbb0000 0x0 0x1000>;
clocks = <&cru MCLK_PDM>, <&cru HCLK_PDM>;
clock-names = "pdm_clk", "pdm_hclk";
@ -1102,7 +1099,8 @@
};
spdif: spdif@ffbc0000 {
compatible = "rockchip,rk3528-spdif", "rockchip,rk3568-spdif";
compatible = "rockchip,rk3528-spdif",
"rockchip,rk3568-spdif";
reg = <0x0 0xffbc0000 0x0 0x1000>;
interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
clock-names = "mclk", "hclk";

View File

@ -1,19 +0,0 @@
--- a/drivers/pci/controller/dwc/pcie-dw-rockchip.c
+++ b/drivers/pci/controller/dwc/pcie-dw-rockchip.c
@@ -307,9 +307,13 @@ static int rockchip_pcie_probe(struct platform_device *pdev)
if (ret)
return ret;
- ret = reset_control_assert(rockchip->rst);
- if (ret)
- return ret;
+ if (of_machine_is_compatible("rockchip,rk3528")) {
+ dev_warn(dev, "RockChip refuses to admit it's a bug\n");
+ } else {
+ ret = reset_control_assert(rockchip->rst);
+ if (ret)
+ return ret;
+ }
/* DON'T MOVE ME: must be enable before PHY init */
rockchip->vpcie3v3 = devm_regulator_get_optional(dev, "vpcie3v3");

View File

@ -1,19 +0,0 @@
--- a/drivers/pci/controller/dwc/pcie-dw-rockchip.c
+++ b/drivers/pci/controller/dwc/pcie-dw-rockchip.c
@@ -521,9 +521,13 @@ static int rockchip_pcie_probe(struct pl
if (ret)
return ret;
- ret = reset_control_assert(rockchip->rst);
- if (ret)
- return ret;
+ if (of_machine_is_compatible("rockchip,rk3528")) {
+ dev_warn(dev, "RockChip refuses to admit it's a bug\n");
+ } else {
+ ret = reset_control_assert(rockchip->rst);
+ if (ret)
+ return ret;
+ }
/* DON'T MOVE ME: must be enable before PHY init */
rockchip->vpcie3v3 = devm_regulator_get_optional(dev, "vpcie3v3");

View File

@ -1,19 +0,0 @@
--- a/drivers/pci/controller/dwc/pcie-dw-rockchip.c
+++ b/drivers/pci/controller/dwc/pcie-dw-rockchip.c
@@ -307,9 +307,13 @@ static int rockchip_pcie_probe(struct platform_device *pdev)
if (ret)
return ret;
- ret = reset_control_assert(rockchip->rst);
- if (ret)
- return ret;
+ if (of_machine_is_compatible("rockchip,rk3528")) {
+ dev_warn(dev, "RockChip refuses to admit it's a bug\n");
+ } else {
+ ret = reset_control_assert(rockchip->rst);
+ if (ret)
+ return ret;
+ }
/* DON'T MOVE ME: must be enable before PHY init */
rockchip->vpcie3v3 = devm_regulator_get_optional(dev, "vpcie3v3");