2024-05-21 21:10:51

by Jonas Karlman

[permalink] [raw]
Subject: [PATCH 00/13] rockchip: Fixes and improvements for ROCK Pi S

This series include fixes for DT schema validation, fixes and improve
support for onboard features of the Radxa ROCK Pi S board.

Patch 1-2 fixes DT schema validation of ethernet and audio codec.

Patch 3 fixes use of onboard SD NAND and eMMC.

Patch 4-7 improve details and support for onboard features.

Patch 8 add OTP device node to SoC DT.

Patch 9-11 add support for RK3308 IO voltage domain to driver and DT.

Patch 12-13 correctly configures IO voltage domain and fixes WiFi/BT.

This series have been tested on a v1.3 board having a RK3308B SoC.

David Wu (1):
soc: rockchip: io-domain: Add RK3308 IO voltage domains

Jonas Karlman (12):
dt-bindings: net: rockchip-dwmac: Fix rockchip,rk3308-gmac compatible
arm64: dts: rockchip: rk3308: Fix codec@ff560000 reset-names
arm64: dts: rockchip: rk3308-rock-pi-s: Fix SD NAND and eMMC init
arm64: dts: rockchip: rk3308-rock-pi-s: Add sdmmc related properties
arm64: dts: rockchip: rk3308-rock-pi-s: Add pinctrl for UART0
arm64: dts: rockchip: rk3308-rock-pi-s: Rename LED related pinctrl
nodes
arm64: dts: rockchip: rk3308-rock-pi-s: Add mdio and ethernet-phy
nodes
arm64: dts: rockchip: Add OTP device node for RK3308
dt-bindings: power: rockchip: Document RK3308 IO voltage domains
arm64: dts: rockchip: Add RK3308 IO voltage domains
arm64: dts: rockchip: rk3308-rock-pi-s: Enable the io-domains node
arm64: dts: rockchip: rk3308-rock-pi-s: Update WIFi/BT related nodes

.../devicetree/bindings/net/snps,dwmac.yaml | 1 +
.../bindings/power/rockchip-io-domain.yaml | 24 +++++
.../boot/dts/rockchip/rk3308-rock-pi-s.dts | 99 ++++++++++++++++---
arch/arm64/boot/dts/rockchip/rk3308.dtsi | 31 +++++-
drivers/soc/rockchip/io-domain.c | 40 ++++++++
5 files changed, 182 insertions(+), 13 deletions(-)

--
2.43.2



2024-05-21 21:11:07

by Jonas Karlman

[permalink] [raw]
Subject: [PATCH 01/13] dt-bindings: net: rockchip-dwmac: Fix rockchip,rk3308-gmac compatible

Schema validation using rockchip,rk3308-gmac compatible fails with:

ethernet@ff4e0000: compatible: ['rockchip,rk3308-gmac'] does not contain items matching the given schema
from schema $id: http://devicetree.org/schemas/net/rockchip-dwmac.yaml#
ethernet@ff4e0000: Unevaluated properties are not allowed ('interrupt-names', 'interrupts', 'phy-mode',
'reg', 'reset-names', 'resets', 'snps,reset-active-low', 'snps,reset-delays-us',
'snps,reset-gpio' were unexpected)
from schema $id: http://devicetree.org/schemas/net/rockchip-dwmac.yaml#

Add rockchip,rk3308-gmac to snps,dwmac.yaml to fix DT schema validation.

Fixes: 2cc8c910f515 ("dt-bindings: net: rockchip-dwmac: add rk3308 gmac compatible")
Signed-off-by: Jonas Karlman <[email protected]>
---
Documentation/devicetree/bindings/net/snps,dwmac.yaml | 1 +
1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
index 21cc27e75f50..3bab4e1f3fbf 100644
--- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml
+++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
@@ -76,6 +76,7 @@ properties:
- rockchip,rk3128-gmac
- rockchip,rk3228-gmac
- rockchip,rk3288-gmac
+ - rockchip,rk3308-gmac
- rockchip,rk3328-gmac
- rockchip,rk3366-gmac
- rockchip,rk3368-gmac
--
2.43.2


2024-05-21 21:11:24

by Jonas Karlman

[permalink] [raw]
Subject: [PATCH 02/13] arm64: dts: rockchip: rk3308: Fix codec@ff560000 reset-names

The commit 30d72458624b ("arm64: dts: rockchip: add the internal audio
codec on rk3308") added codec@ff560000 node to SoC DT. However, the
node does not pass DT schema validation:

codec@ff560000: reset-names:0: 'codec' was expected
from schema $id: http://devicetree.org/schemas/sound/rockchip,rk3308-codec.yaml#

Use the expected codec reset name to fix this.

Fixes: 30d72458624b ("arm64: dts: rockchip: add the internal audio codec on rk3308")
Signed-off-by: Jonas Karlman <[email protected]>
---
arch/arm64/boot/dts/rockchip/rk3308.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3308.dtsi b/arch/arm64/boot/dts/rockchip/rk3308.dtsi
index 962ea893999b..c00da150a22f 100644
--- a/arch/arm64/boot/dts/rockchip/rk3308.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3308.dtsi
@@ -811,7 +811,7 @@ codec: codec@ff560000 {
clocks = <&cru SCLK_I2S2_8CH_TX_OUT>,
<&cru SCLK_I2S2_8CH_RX_OUT>,
<&cru PCLK_ACODEC>;
- reset-names = "codec-reset";
+ reset-names = "codec";
resets = <&cru SRST_ACODEC_P>;
#sound-dai-cells = <0>;
status = "disabled";
--
2.43.2


2024-05-21 21:11:30

by Jonas Karlman

[permalink] [raw]
Subject: [PATCH 03/13] arm64: dts: rockchip: rk3308-rock-pi-s: Fix SD NAND and eMMC init

Radxa ROCK Pi S have optional onboard SD NAND on board revision v1.1,
v1.2 and v1.3, revision v1.5 changed to use optional onboard eMMC.

The optional SD NAND typically fails to initialize:

mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
mmc0: error -110 whilst initialising SD card
mmc_host mmc0: Bus speed (slot 0) = 300000Hz (slot req 300000Hz, actual 300000HZ div = 0)
mmc0: error -110 whilst initialising SD card
mmc_host mmc0: Bus speed (slot 0) = 200000Hz (slot req 200000Hz, actual 200000HZ div = 0)
mmc0: error -110 whilst initialising SD card
mmc_host mmc0: Bus speed (slot 0) = 100000Hz (slot req 100000Hz, actual 100000HZ div = 0)
mmc0: error -110 whilst initialising SD card

Add pinctrl and cap-sd-highspeed to fix SD NAND initialization. Also
drop bus-width and mmc-hs200-1_8v to fix eMMC initialization on the new
v1.5 board revision, only 3v3 signal voltage is used.

Fixes: 2e04c25b1320 ("arm64: dts: rockchip: add ROCK Pi S DTS support")
Signed-off-by: Jonas Karlman <[email protected]>
---
Hardware revision changes can be found at:
- https://wiki.radxa.com/RockpiS/hardware/revisions
- https://docs.radxa.com/en/rockpi/rockpis/hardware/hardware-revision
---
arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts b/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
index b47fe02c33fb..84f4b4a44644 100644
--- a/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
@@ -126,10 +126,12 @@ &cpu0 {
};

&emmc {
- bus-width = <4>;
cap-mmc-highspeed;
- mmc-hs200-1_8v;
+ cap-sd-highspeed;
+ no-sdio;
non-removable;
+ pinctrl-names = "default";
+ pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd>;
vmmc-supply = <&vcc_io>;
status = "okay";
};
--
2.43.2


2024-05-21 21:11:58

by Jonas Karlman

[permalink] [raw]
Subject: [PATCH 04/13] arm64: dts: rockchip: rk3308-rock-pi-s: Add sdmmc related properties

Add cap-mmc-highspeed to allow use of high speed MMC mode using an eMMC
to uSD board. Use disable-wp to signal that no physical write-protect
line is present. Also add vcc_io used for card and IO line power as
vmmc-supply.

Fixes: 2e04c25b1320 ("arm64: dts: rockchip: add ROCK Pi S DTS support")
Signed-off-by: Jonas Karlman <[email protected]>
---
arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts | 3 +++
1 file changed, 3 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts b/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
index 84f4b4a44644..a2ec62a377e1 100644
--- a/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
@@ -266,7 +266,10 @@ &sdio {
};

&sdmmc {
+ cap-mmc-highspeed;
cap-sd-highspeed;
+ disable-wp;
+ vmmc-supply = <&vcc_io>;
status = "okay";
};

--
2.43.2


2024-05-21 21:13:09

by Jonas Karlman

[permalink] [raw]
Subject: [PATCH 07/13] arm64: dts: rockchip: rk3308-rock-pi-s: Add mdio and ethernet-phy nodes

Be explicit about the Ethernet port and define mdio and ethernet-phy
nodes in the device tree for ROCK Pi S.

Fixes: bc3753aed81f ("arm64: dts: rockchip: rock-pi-s add more peripherals")
Signed-off-by: Jonas Karlman <[email protected]>
---
.../boot/dts/rockchip/rk3308-rock-pi-s.dts | 26 ++++++++++++++++---
1 file changed, 23 insertions(+), 3 deletions(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts b/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
index d4cf6026241c..f6fb90e13ad0 100644
--- a/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
@@ -144,11 +144,25 @@ &emmc {

&gmac {
clock_in_out = "output";
+ phy-handle = <&rtl8201f>;
phy-supply = <&vcc_io>;
- snps,reset-gpio = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
- snps,reset-active-low;
- snps,reset-delays-us = <0 50000 50000>;
status = "okay";
+
+ mdio {
+ compatible = "snps,dwmac-mdio";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ rtl8201f: ethernet-phy@1 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <1>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&mac_rst>;
+ reset-assert-us = <20000>;
+ reset-deassert-us = <50000>;
+ reset-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
+ };
+ };
};

&gpio0 {
@@ -221,6 +235,12 @@ &pinctrl {
pinctrl-names = "default";
pinctrl-0 = <&rtc_32k>;

+ gmac {
+ mac_rst: mac-rst {
+ rockchip,pins = <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
leds {
green_led: green-led {
rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
--
2.43.2


2024-05-21 21:14:08

by Jonas Karlman

[permalink] [raw]
Subject: [PATCH 08/13] arm64: dts: rockchip: Add OTP device node for RK3308

The RK3308 SoC contains a controller for one-time-programmable memory,
add a device node for it.

Signed-off-by: Jonas Karlman <[email protected]>
---
arch/arm64/boot/dts/rockchip/rk3308.dtsi | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3308.dtsi b/arch/arm64/boot/dts/rockchip/rk3308.dtsi
index c00da150a22f..6531ede13af9 100644
--- a/arch/arm64/boot/dts/rockchip/rk3308.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3308.dtsi
@@ -556,6 +556,30 @@ saradc: saradc@ff1e0000 {
status = "disabled";
};

+ otp: efuse@ff210000 {
+ compatible = "rockchip,rk3308-otp";
+ reg = <0x0 0xff210000 0x0 0x4000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ clocks = <&cru SCLK_OTP_USR>, <&cru PCLK_OTP_NS>,
+ <&cru PCLK_OTP_PHY>;
+ clock-names = "otp", "apb_pclk", "phy";
+ resets = <&cru SRST_OTP_PHY>;
+ reset-names = "phy";
+
+ cpu_id: id@7 {
+ reg = <0x07 0x10>;
+ };
+
+ cpu_leakage: cpu-leakage@17 {
+ reg = <0x17 0x1>;
+ };
+
+ logic_leakage: logic-leakage@18 {
+ reg = <0x18 0x1>;
+ };
+ };
+
dmac0: dma-controller@ff2c0000 {
compatible = "arm,pl330", "arm,primecell";
reg = <0x0 0xff2c0000 0x0 0x4000>;
--
2.43.2


2024-05-21 21:14:20

by Jonas Karlman

[permalink] [raw]
Subject: [PATCH 05/13] arm64: dts: rockchip: rk3308-rock-pi-s: Add pinctrl for UART0

UAR0 CTS/RTS is not wired to any pin and is not used for the default
serial console use of UART0 on ROCK Pi S.

Override the SoC defined pinctrl props to limit configuration of the
two xfer pins wired to one of the GPIO pin headers.

Fixes: 2e04c25b1320 ("arm64: dts: rockchip: add ROCK Pi S DTS support")
Signed-off-by: Jonas Karlman <[email protected]>
---
arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts b/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
index a2ec62a377e1..08d1be3a5de7 100644
--- a/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
@@ -288,6 +288,8 @@ u2phy_otg: otg-port {
};

&uart0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0_xfer>;
status = "okay";
};

--
2.43.2


2024-05-21 21:15:19

by Jonas Karlman

[permalink] [raw]
Subject: [PATCH 09/13] dt-bindings: power: rockchip: Document RK3308 IO voltage domains

Document dt-bindings for RK3308 IO voltage domains.

Signed-off-by: Jonas Karlman <[email protected]>
---
.../bindings/power/rockchip-io-domain.yaml | 24 +++++++++++++++++++
1 file changed, 24 insertions(+)

diff --git a/Documentation/devicetree/bindings/power/rockchip-io-domain.yaml b/Documentation/devicetree/bindings/power/rockchip-io-domain.yaml
index d71fc72d4464..c434277218ea 100644
--- a/Documentation/devicetree/bindings/power/rockchip-io-domain.yaml
+++ b/Documentation/devicetree/bindings/power/rockchip-io-domain.yaml
@@ -50,6 +50,7 @@ properties:
- rockchip,rk3188-io-voltage-domain
- rockchip,rk3228-io-voltage-domain
- rockchip,rk3288-io-voltage-domain
+ - rockchip,rk3308-io-voltage-domain
- rockchip,rk3328-io-voltage-domain
- rockchip,rk3368-io-voltage-domain
- rockchip,rk3368-pmu-io-voltage-domain
@@ -71,6 +72,7 @@ allOf:
- $ref: "#/$defs/rk3188"
- $ref: "#/$defs/rk3228"
- $ref: "#/$defs/rk3288"
+ - $ref: "#/$defs/rk3308"
- $ref: "#/$defs/rk3328"
- $ref: "#/$defs/rk3368"
- $ref: "#/$defs/rk3368-pmu"
@@ -194,6 +196,28 @@ $defs:
wifi-supply:
description: The supply connected to APIO3_VDD. Also known as SDIO0.

+ rk3308:
+ if:
+ properties:
+ compatible:
+ contains:
+ const: rockchip,rk3308-io-voltage-domain
+
+ then:
+ properties:
+ vccio0-supply:
+ description: The supply connected to VCCIO0.
+ vccio1-supply:
+ description: The supply connected to VCCIO1.
+ vccio2-supply:
+ description: The supply connected to VCCIO2.
+ vccio3-supply:
+ description: The supply connected to VCCIO3.
+ vccio4-supply:
+ description: The supply connected to VCCIO4.
+ vccio5-supply:
+ description: The supply connected to VCCIO5.
+
rk3328:
if:
properties:
--
2.43.2


2024-05-21 21:15:33

by Jonas Karlman

[permalink] [raw]
Subject: [PATCH 10/13] soc: rockchip: io-domain: Add RK3308 IO voltage domains

From: David Wu <[email protected]>

Add IO voltage domains support for the RK3308 SoC.

Signed-off-by: David Wu <[email protected]>
Signed-off-by: Jianqun Xu <[email protected]>
Signed-off-by: Jonas Karlman <[email protected]>
---
drivers/soc/rockchip/io-domain.c | 40 ++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

diff --git a/drivers/soc/rockchip/io-domain.c b/drivers/soc/rockchip/io-domain.c
index 18f809c160a7..fd9fd31f71c2 100644
--- a/drivers/soc/rockchip/io-domain.c
+++ b/drivers/soc/rockchip/io-domain.c
@@ -39,6 +39,10 @@
#define RK3288_SOC_CON2_FLASH0 BIT(7)
#define RK3288_SOC_FLASH_SUPPLY_NUM 2

+#define RK3308_SOC_CON0 0x300
+#define RK3308_SOC_CON0_VCCIO3 BIT(8)
+#define RK3308_SOC_VCCIO3_SUPPLY_NUM 3
+
#define RK3328_SOC_CON4 0x410
#define RK3328_SOC_CON4_VCCIO2 BIT(7)
#define RK3328_SOC_VCCIO2_SUPPLY_NUM 1
@@ -229,6 +233,25 @@ static void rk3288_iodomain_init(struct rockchip_iodomain *iod)
dev_warn(iod->dev, "couldn't update flash0 ctrl\n");
}

+static void rk3308_iodomain_init(struct rockchip_iodomain *iod)
+{
+ int ret;
+ u32 val;
+
+ /* if no vccio3 supply we should leave things alone */
+ if (!iod->supplies[RK3308_SOC_VCCIO3_SUPPLY_NUM].reg)
+ return;
+
+ /*
+ * set vccio3 iodomain to also use this framework
+ * instead of a special gpio.
+ */
+ val = RK3308_SOC_CON0_VCCIO3 | (RK3308_SOC_CON0_VCCIO3 << 16);
+ ret = regmap_write(iod->grf, RK3308_SOC_CON0, val);
+ if (ret < 0)
+ dev_warn(iod->dev, "couldn't update vccio3 vsel ctrl\n");
+}
+
static void rk3328_iodomain_init(struct rockchip_iodomain *iod)
{
int ret;
@@ -376,6 +399,19 @@ static const struct rockchip_iodomain_soc_data soc_data_rk3288 = {
.init = rk3288_iodomain_init,
};

+static const struct rockchip_iodomain_soc_data soc_data_rk3308 = {
+ .grf_offset = 0x300,
+ .supply_names = {
+ "vccio0",
+ "vccio1",
+ "vccio2",
+ "vccio3",
+ "vccio4",
+ "vccio5",
+ },
+ .init = rk3308_iodomain_init,
+};
+
static const struct rockchip_iodomain_soc_data soc_data_rk3328 = {
.grf_offset = 0x410,
.supply_names = {
@@ -528,6 +564,10 @@ static const struct of_device_id rockchip_iodomain_match[] = {
.compatible = "rockchip,rk3288-io-voltage-domain",
.data = &soc_data_rk3288
},
+ {
+ .compatible = "rockchip,rk3308-io-voltage-domain",
+ .data = &soc_data_rk3308
+ },
{
.compatible = "rockchip,rk3328-io-voltage-domain",
.data = &soc_data_rk3328
--
2.43.2


2024-05-21 21:15:37

by Jonas Karlman

[permalink] [raw]
Subject: [PATCH 06/13] arm64: dts: rockchip: rk3308-rock-pi-s: Rename LED related pinctrl nodes

The nodename, <name>-gpio, of referenced pinctrl nodes for the two LEDs
on the ROCK Pi S cause DT schema validation error:

leds: green-led-gpio: {'rockchip,pins': [[0, 6, 0, 90]], 'phandle': [[98]]} is not of type 'array'
from schema $id: http://devicetree.org/schemas/gpio/gpio-consumer.yaml#
leds: heartbeat-led-gpio: {'rockchip,pins': [[0, 5, 0, 90]], 'phandle': [[99]]} is not of type 'array'
from schema $id: http://devicetree.org/schemas/gpio/gpio-consumer.yaml#

Rename the pinctrl nodes and symbols to pass DT schema validation, also
extend LED nodes with information about color and function.

Fixes: 2e04c25b1320 ("arm64: dts: rockchip: add ROCK Pi S DTS support")
Signed-off-by: Jonas Karlman <[email protected]>
---
arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts b/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
index 08d1be3a5de7..d4cf6026241c 100644
--- a/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
@@ -5,6 +5,8 @@
*/

/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
#include "rk3308.dtsi"

/ {
@@ -24,17 +26,21 @@ chosen {
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
- pinctrl-0 = <&green_led_gio>, <&heartbeat_led_gpio>;
+ pinctrl-0 = <&green_led>, <&heartbeat_led>;

green-led {
+ color = <LED_COLOR_ID_GREEN>;
default-state = "on";
+ function = LED_FUNCTION_POWER;
gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
label = "rockpis:green:power";
linux,default-trigger = "default-on";
};

blue-led {
+ color = <LED_COLOR_ID_BLUE>;
default-state = "on";
+ function = LED_FUNCTION_HEARTBEAT;
gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
label = "rockpis:blue:user";
linux,default-trigger = "heartbeat";
@@ -216,11 +222,11 @@ &pinctrl {
pinctrl-0 = <&rtc_32k>;

leds {
- green_led_gio: green-led-gpio {
+ green_led: green-led {
rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
};

- heartbeat_led_gpio: heartbeat-led-gpio {
+ heartbeat_led: heartbeat-led {
rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
--
2.43.2


2024-05-21 21:16:41

by Jonas Karlman

[permalink] [raw]
Subject: [PATCH 11/13] arm64: dts: rockchip: Add RK3308 IO voltage domains

Add a disabled RK3308 IO voltage domains node to SoC DT.

Signed-off-by: Jonas Karlman <[email protected]>
---
arch/arm64/boot/dts/rockchip/rk3308.dtsi | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3308.dtsi b/arch/arm64/boot/dts/rockchip/rk3308.dtsi
index 6531ede13af9..31c25de2d689 100644
--- a/arch/arm64/boot/dts/rockchip/rk3308.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3308.dtsi
@@ -173,6 +173,11 @@ grf: grf@ff000000 {
compatible = "rockchip,rk3308-grf", "syscon", "simple-mfd";
reg = <0x0 0xff000000 0x0 0x08000>;

+ io_domains: io-domains {
+ compatible = "rockchip,rk3308-io-voltage-domain";
+ status = "disabled";
+ };
+
reboot-mode {
compatible = "syscon-reboot-mode";
offset = <0x500>;
--
2.43.2


2024-05-21 21:17:08

by Jonas Karlman

[permalink] [raw]
Subject: [PATCH 12/13] arm64: dts: rockchip: rk3308-rock-pi-s: Enable the io-domains node

The VCCIO4 io-domain used for WiFi/BT is using 1v8 IO signal voltage.

Add io-domains node with the VCCIO supplies connected on the board.

Signed-off-by: Jonas Karlman <[email protected]>
---
arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts b/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
index f6fb90e13ad0..5c702f00b27f 100644
--- a/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
@@ -231,6 +231,16 @@ &i2c1 {
status = "okay";
};

+&io_domains {
+ vccio0-supply = <&vcc_io>;
+ vccio1-supply = <&vcc_io>;
+ vccio2-supply = <&vcc_io>;
+ vccio3-supply = <&vcc_io>;
+ vccio4-supply = <&vcc_1v8>;
+ vccio5-supply = <&vcc_io>;
+ status = "okay";
+};
+
&pinctrl {
pinctrl-names = "default";
pinctrl-0 = <&rtc_32k>;
--
2.43.2


2024-05-21 21:17:29

by Jonas Karlman

[permalink] [raw]
Subject: [PATCH 13/13] arm64: dts: rockchip: rk3308-rock-pi-s: Update WIFi/BT related nodes

Update WiFi SDIO and BT UART related props to better reflect details
about the optional onboard RTL8723DS WiFi/BT module.

Also correct the compatible used for bluetooth to match the WiFi/BT
module used on the board.

Fixes: bc3753aed81f ("arm64: dts: rockchip: rock-pi-s add more peripherals")
Signed-off-by: Jonas Karlman <[email protected]>
---
.../boot/dts/rockchip/rk3308-rock-pi-s.dts | 40 +++++++++++++++++--
1 file changed, 36 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts b/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
index 5c702f00b27f..62d18ca769a1 100644
--- a/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
@@ -17,6 +17,7 @@ aliases {
ethernet0 = &gmac;
mmc0 = &emmc;
mmc1 = &sdmmc;
+ mmc2 = &sdio;
};

chosen {
@@ -245,6 +246,20 @@ &pinctrl {
pinctrl-names = "default";
pinctrl-0 = <&rtc_32k>;

+ bluetooth {
+ bt_reg_on: bt-reg-on {
+ rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+
+ bt_wake_host: bt-wake-host {
+ rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>;
+ };
+
+ host_wake_bt: host-wake-bt {
+ rockchip,pins = <4 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
gmac {
mac_rst: mac-rst {
rockchip,pins = <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
@@ -294,11 +309,24 @@ &sdio {
cap-sd-highspeed;
cap-sdio-irq;
keep-power-in-suspend;
- max-frequency = <1000000>;
+ max-frequency = <100000000>;
mmc-pwrseq = <&sdio_pwrseq>;
+ no-mmc;
+ no-sd;
non-removable;
- sd-uhs-sdr104;
+ sd-uhs-sdr50;
+ vmmc-supply = <&vcc_io>;
+ vqmmc-supply = <&vcc_1v8>;
status = "okay";
+
+ rtl8723ds: wifi@1 {
+ reg = <1>;
+ interrupt-parent = <&gpio0>;
+ interrupts = <RK_PA0 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "host-wake";
+ pinctrl-names = "default";
+ pinctrl-0 = <&wifi_host_wake>;
+ };
};

&sdmmc {
@@ -330,12 +358,16 @@ &uart0 {
};

&uart4 {
+ uart-has-rtscts;
status = "okay";

bluetooth {
- compatible = "realtek,rtl8723bs-bt";
- device-wake-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>;
+ compatible = "realtek,rtl8723ds-bt";
+ device-wake-gpios = <&gpio4 RK_PB2 GPIO_ACTIVE_HIGH>;
+ enable-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>;
host-wake-gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&bt_reg_on &bt_wake_host &host_wake_bt>;
};
};

--
2.43.2


2024-05-21 21:34:56

by Heiko Stuebner

[permalink] [raw]
Subject: Re: [PATCH 01/13] dt-bindings: net: rockchip-dwmac: Fix rockchip,rk3308-gmac compatible

Am Dienstag, 21. Mai 2024, 23:10:04 CEST schrieb Jonas Karlman:
> Schema validation using rockchip,rk3308-gmac compatible fails with:
>
> ethernet@ff4e0000: compatible: ['rockchip,rk3308-gmac'] does not contain items matching the given schema
> from schema $id: http://devicetree.org/schemas/net/rockchip-dwmac.yaml#
> ethernet@ff4e0000: Unevaluated properties are not allowed ('interrupt-names', 'interrupts', 'phy-mode',
> 'reg', 'reset-names', 'resets', 'snps,reset-active-low', 'snps,reset-delays-us',
> 'snps,reset-gpio' were unexpected)
> from schema $id: http://devicetree.org/schemas/net/rockchip-dwmac.yaml#
>
> Add rockchip,rk3308-gmac to snps,dwmac.yaml to fix DT schema validation.
>
> Fixes: 2cc8c910f515 ("dt-bindings: net: rockchip-dwmac: add rk3308 gmac compatible")
> Signed-off-by: Jonas Karlman <[email protected]>

Reviewed-by: Heiko Stuebner <[email protected]>

I'm not sure how the network tree works these days, but this patch is the
only one that should go through the network tree.


> ---
> Documentation/devicetree/bindings/net/snps,dwmac.yaml | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
> index 21cc27e75f50..3bab4e1f3fbf 100644
> --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml
> +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
> @@ -76,6 +76,7 @@ properties:
> - rockchip,rk3128-gmac
> - rockchip,rk3228-gmac
> - rockchip,rk3288-gmac
> + - rockchip,rk3308-gmac
> - rockchip,rk3328-gmac
> - rockchip,rk3366-gmac
> - rockchip,rk3368-gmac
>





2024-05-22 10:06:53

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 09/13] dt-bindings: power: rockchip: Document RK3308 IO voltage domains

On 21/05/2024 23:10, Jonas Karlman wrote:
> Document dt-bindings for RK3308 IO voltage domains.
>
> Signed-off-by: Jonas Karlman <[email protected]>
> ---

Reviewed-by: Krzysztof Kozlowski <[email protected]>

Best regards,
Krzysztof


2024-05-22 10:16:42

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 01/13] dt-bindings: net: rockchip-dwmac: Fix rockchip,rk3308-gmac compatible

On 21/05/2024 23:10, Jonas Karlman wrote:
> Schema validation using rockchip,rk3308-gmac compatible fails with:
>
> ethernet@ff4e0000: compatible: ['rockchip,rk3308-gmac'] does not contain items matching the given schema
> from schema $id: http://devicetree.org/schemas/net/rockchip-dwmac.yaml#
> ethernet@ff4e0000: Unevaluated properties are not allowed ('interrupt-names', 'interrupts', 'phy-mode',
> 'reg', 'reset-names', 'resets', 'snps,reset-active-low', 'snps,reset-delays-us',
> 'snps,reset-gpio' were unexpected)
> from schema $id: http://devicetree.org/schemas/net/rockchip-dwmac.yaml#
>
> Add rockchip,rk3308-gmac to snps,dwmac.yaml to fix DT schema validation.

Acked-by: Krzysztof Kozlowski <[email protected]>

Best regards,
Krzysztof


2024-05-23 11:40:27

by Paolo Abeni

[permalink] [raw]
Subject: Re: [PATCH 01/13] dt-bindings: net: rockchip-dwmac: Fix rockchip,rk3308-gmac compatible

On Tue, 2024-05-21 at 23:34 +0200, Heiko Stübner wrote:
> Am Dienstag, 21. Mai 2024, 23:10:04 CEST schrieb Jonas Karlman:
> > Schema validation using rockchip,rk3308-gmac compatible fails with:
> >
> > ethernet@ff4e0000: compatible: ['rockchip,rk3308-gmac'] does not contain items matching the given schema
> > from schema $id: http://devicetree.org/schemas/net/rockchip-dwmac.yaml#
> > ethernet@ff4e0000: Unevaluated properties are not allowed ('interrupt-names', 'interrupts', 'phy-mode',
> > 'reg', 'reset-names', 'resets', 'snps,reset-active-low', 'snps,reset-delays-us',
> > 'snps,reset-gpio' were unexpected)
> > from schema $id: http://devicetree.org/schemas/net/rockchip-dwmac.yaml#
> >
> > Add rockchip,rk3308-gmac to snps,dwmac.yaml to fix DT schema validation.
> >
> > Fixes: 2cc8c910f515 ("dt-bindings: net: rockchip-dwmac: add rk3308 gmac compatible")
> > Signed-off-by: Jonas Karlman <[email protected]>
>
> Reviewed-by: Heiko Stuebner <[email protected]>
>
> I'm not sure how the network tree works these days, but this patch is the
> only one that should go through the network tree.

It looks like the rest of the series has no dependency and will be
merged
via other trees.

If so, I think it would be cleaner if you could submit this patch
individually to the net tree, including the target tree 'net' into the
subj. 

That will trigger successfully our CI - that currently does little for
DT changes but still more then nothing and things could improve in the
future.

Thanks,

Paolo


2024-05-27 22:42:47

by Heiko Stuebner

[permalink] [raw]
Subject: Re: (subset) [PATCH 00/13] rockchip: Fixes and improvements for ROCK Pi S

On Tue, 21 May 2024 21:10:03 +0000, Jonas Karlman wrote:
> This series include fixes for DT schema validation, fixes and improve
> support for onboard features of the Radxa ROCK Pi S board.
>
> Patch 1-2 fixes DT schema validation of ethernet and audio codec.
>
> Patch 3 fixes use of onboard SD NAND and eMMC.
>
> [...]

Applied, thanks!

[02/13] arm64: dts: rockchip: rk3308: Fix codec@ff560000 reset-names
commit: cb1622df6a28e3eac34a8b95feba2dd2dc6cd887
[03/13] arm64: dts: rockchip: rk3308-rock-pi-s: Fix SD NAND and eMMC init
commit: 1fb98c855ccd7bc7f50c7a9626fbb8440454760b
[04/13] arm64: dts: rockchip: rk3308-rock-pi-s: Add sdmmc related properties
commit: fc0daeccc384233eadfa9d5ddbd00159653c6bdc
[05/13] arm64: dts: rockchip: rk3308-rock-pi-s: Add pinctrl for UART0
commit: 7affb86ef62581e3475ce3e0a7640da1f2ee29f8
[06/13] arm64: dts: rockchip: rk3308-rock-pi-s: Rename LED related pinctrl nodes
commit: d2a52f678883fe4bc00bca89366b1ba504750abf
[07/13] arm64: dts: rockchip: rk3308-rock-pi-s: Add mdio and ethernet-phy nodes
commit: 4b64ed510ed946a4e4ca6d51d6512bf5361f6a04
[08/13] arm64: dts: rockchip: Add OTP device node for RK3308
commit: 36d3bbc8cdbef2f83391f7708888265ac4c37a99
[09/13] dt-bindings: power: rockchip: Document RK3308 IO voltage domains
commit: 579e5b476307797b3a1260bec544dbbabcce1de5
[10/13] soc: rockchip: io-domain: Add RK3308 IO voltage domains
commit: 0536fa6e6fa3e48f4ca11855b586c277be524fbe
[11/13] arm64: dts: rockchip: Add RK3308 IO voltage domains
commit: d1829ba469d5743734e37d59fece73e3668ab084
[12/13] arm64: dts: rockchip: rk3308-rock-pi-s: Enable the io-domains node
commit: 100b3bdee6035192f6d4a1847970fe004bb505fb
[13/13] arm64: dts: rockchip: rk3308-rock-pi-s: Update WIFi/BT related nodes
commit: 12c3ec878cbe3709782e85b88124abecc3bb8617

I've split this up slightly.
Some patches for 6.10 as fixes, and the rest for 6.11 .
Edited patch7 (for 6.11) to apply without patch6 (6.10)
That disappears during a merge of those branches.


Best regards,
--
Heiko Stuebner <[email protected]>

2024-05-27 22:43:39

by Heiko Stuebner

[permalink] [raw]
Subject: Re: (subset) [PATCH 00/13] rockchip: Fixes and improvements for ROCK Pi S

Am Dienstag, 28. Mai 2024, 00:42:16 CEST schrieb Heiko Stuebner:
> On Tue, 21 May 2024 21:10:03 +0000, Jonas Karlman wrote:
> > This series include fixes for DT schema validation, fixes and improve
> > support for onboard features of the Radxa ROCK Pi S board.
> >
> > Patch 1-2 fixes DT schema validation of ethernet and audio codec.
> >
> > Patch 3 fixes use of onboard SD NAND and eMMC.
> >
> > [...]
>
> Applied, thanks!
>
> [02/13] arm64: dts: rockchip: rk3308: Fix codec@ff560000 reset-names
> commit: cb1622df6a28e3eac34a8b95feba2dd2dc6cd887
> [03/13] arm64: dts: rockchip: rk3308-rock-pi-s: Fix SD NAND and eMMC init
> commit: 1fb98c855ccd7bc7f50c7a9626fbb8440454760b
> [04/13] arm64: dts: rockchip: rk3308-rock-pi-s: Add sdmmc related properties
> commit: fc0daeccc384233eadfa9d5ddbd00159653c6bdc
> [05/13] arm64: dts: rockchip: rk3308-rock-pi-s: Add pinctrl for UART0
> commit: 7affb86ef62581e3475ce3e0a7640da1f2ee29f8
> [06/13] arm64: dts: rockchip: rk3308-rock-pi-s: Rename LED related pinctrl nodes
> commit: d2a52f678883fe4bc00bca89366b1ba504750abf
> [07/13] arm64: dts: rockchip: rk3308-rock-pi-s: Add mdio and ethernet-phy nodes
> commit: 4b64ed510ed946a4e4ca6d51d6512bf5361f6a04
> [08/13] arm64: dts: rockchip: Add OTP device node for RK3308
> commit: 36d3bbc8cdbef2f83391f7708888265ac4c37a99
> [09/13] dt-bindings: power: rockchip: Document RK3308 IO voltage domains
> commit: 579e5b476307797b3a1260bec544dbbabcce1de5
> [10/13] soc: rockchip: io-domain: Add RK3308 IO voltage domains
> commit: 0536fa6e6fa3e48f4ca11855b586c277be524fbe
> [11/13] arm64: dts: rockchip: Add RK3308 IO voltage domains
> commit: d1829ba469d5743734e37d59fece73e3668ab084
> [12/13] arm64: dts: rockchip: rk3308-rock-pi-s: Enable the io-domains node
> commit: 100b3bdee6035192f6d4a1847970fe004bb505fb
> [13/13] arm64: dts: rockchip: rk3308-rock-pi-s: Update WIFi/BT related nodes
> commit: 12c3ec878cbe3709782e85b88124abecc3bb8617
>
> I've split this up slightly.
> Some patches for 6.10 as fixes, and the rest for 6.11 .
> Edited patch7 (for 6.11) to apply without patch6 (6.10)
> That disappears during a merge of those branches.

and as stated, please re-send patch1 separately.

Thanks
Heiko



2024-05-28 08:24:38

by Jonas Karlman

[permalink] [raw]
Subject: Re: (subset) [PATCH 00/13] rockchip: Fixes and improvements for ROCK Pi S

Hi Heiko,

On 2024-05-28 00:43, Heiko Stübner wrote:
> Am Dienstag, 28. Mai 2024, 00:42:16 CEST schrieb Heiko Stuebner:
>> On Tue, 21 May 2024 21:10:03 +0000, Jonas Karlman wrote:
>>> This series include fixes for DT schema validation, fixes and improve
>>> support for onboard features of the Radxa ROCK Pi S board.
>>>
>>> Patch 1-2 fixes DT schema validation of ethernet and audio codec.
>>>
>>> Patch 3 fixes use of onboard SD NAND and eMMC.
>>>
>>> [...]
>>
>> Applied, thanks!
>>
>> [02/13] arm64: dts: rockchip: rk3308: Fix codec@ff560000 reset-names
>> commit: cb1622df6a28e3eac34a8b95feba2dd2dc6cd887
>> [03/13] arm64: dts: rockchip: rk3308-rock-pi-s: Fix SD NAND and eMMC init
>> commit: 1fb98c855ccd7bc7f50c7a9626fbb8440454760b
>> [04/13] arm64: dts: rockchip: rk3308-rock-pi-s: Add sdmmc related properties
>> commit: fc0daeccc384233eadfa9d5ddbd00159653c6bdc
>> [05/13] arm64: dts: rockchip: rk3308-rock-pi-s: Add pinctrl for UART0
>> commit: 7affb86ef62581e3475ce3e0a7640da1f2ee29f8
>> [06/13] arm64: dts: rockchip: rk3308-rock-pi-s: Rename LED related pinctrl nodes
>> commit: d2a52f678883fe4bc00bca89366b1ba504750abf
>> [07/13] arm64: dts: rockchip: rk3308-rock-pi-s: Add mdio and ethernet-phy nodes
>> commit: 4b64ed510ed946a4e4ca6d51d6512bf5361f6a04
>> [08/13] arm64: dts: rockchip: Add OTP device node for RK3308
>> commit: 36d3bbc8cdbef2f83391f7708888265ac4c37a99
>> [09/13] dt-bindings: power: rockchip: Document RK3308 IO voltage domains
>> commit: 579e5b476307797b3a1260bec544dbbabcce1de5
>> [10/13] soc: rockchip: io-domain: Add RK3308 IO voltage domains
>> commit: 0536fa6e6fa3e48f4ca11855b586c277be524fbe
>> [11/13] arm64: dts: rockchip: Add RK3308 IO voltage domains
>> commit: d1829ba469d5743734e37d59fece73e3668ab084
>> [12/13] arm64: dts: rockchip: rk3308-rock-pi-s: Enable the io-domains node
>> commit: 100b3bdee6035192f6d4a1847970fe004bb505fb
>> [13/13] arm64: dts: rockchip: rk3308-rock-pi-s: Update WIFi/BT related nodes
>> commit: 12c3ec878cbe3709782e85b88124abecc3bb8617
>>
>> I've split this up slightly.
>> Some patches for 6.10 as fixes, and the rest for 6.11 .
>> Edited patch7 (for 6.11) to apply without patch6 (6.10)
>> That disappears during a merge of those branches.
>
> and as stated, please re-send patch1 separately.

Thanks!, I will re-send first patch shortly :-)

Regards,
Jonas

>
> Thanks
> Heiko
>
>