* [PATCH 1/8] ARM: dts: rockchip: rv1126: Add alternate UART pins
2023-11-13 12:06 [PATCH 0/8] Add support for Sonoff iHost RV1126 Smart Home Gateway Tim Lunn
@ 2023-11-13 12:06 ` Tim Lunn
2023-11-13 12:06 ` [PATCH 2/8] ARM: dts: rockchip: rv1126: Serial aliases Tim Lunn
` (6 subsequent siblings)
7 siblings, 0 replies; 14+ messages in thread
From: Tim Lunn @ 2023-11-13 12:06 UTC (permalink / raw)
To: linux-rockchip, devicetree
Cc: Jagan Teki, Krzysztof Kozlowski, Tim Lunn, Rob Herring,
Heiko Stuebner, linux-arm-kernel, Conor Dooley
Add uart3m2_xfer and uart4m2_xfer pins for Rockchip RV1126. These are
used as serial ports for the indicator and Zigbee radio on the iHost.
Signed-off-by: Tim Lunn <tim@feathertop.org>
---
arch/arm/boot/dts/rockchip/rv1126-pinctrl.dtsi | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/arch/arm/boot/dts/rockchip/rv1126-pinctrl.dtsi b/arch/arm/boot/dts/rockchip/rv1126-pinctrl.dtsi
index bb34b0c9cb4a..4f85b7b3fc4c 100644
--- a/arch/arm/boot/dts/rockchip/rv1126-pinctrl.dtsi
+++ b/arch/arm/boot/dts/rockchip/rv1126-pinctrl.dtsi
@@ -263,6 +263,14 @@ uart3m0_xfer: uart3m0-xfer {
/* uart3_tx_m0 */
<3 RK_PC6 4 &pcfg_pull_up>;
};
+ /omit-if-no-ref/
+ uart3m2_xfer: uart3m2-xfer {
+ rockchip,pins =
+ /* uart3_rx_m2 */
+ <3 RK_PA1 4 &pcfg_pull_up>,
+ /* uart3_tx_m2 */
+ <3 RK_PA0 4 &pcfg_pull_up>;
+ };
};
uart4 {
/omit-if-no-ref/
@@ -273,6 +281,14 @@ uart4m0_xfer: uart4m0-xfer {
/* uart4_tx_m0 */
<3 RK_PA4 4 &pcfg_pull_up>;
};
+ /omit-if-no-ref/
+ uart4m2_xfer: uart4m2-xfer {
+ rockchip,pins =
+ /* uart4_rx_m2 */
+ <1 RK_PD4 3 &pcfg_pull_up>,
+ /* uart4_tx_m2 */
+ <1 RK_PD5 3 &pcfg_pull_up>;
+ };
};
uart5 {
/omit-if-no-ref/
--
2.40.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 2/8] ARM: dts: rockchip: rv1126: Serial aliases
2023-11-13 12:06 [PATCH 0/8] Add support for Sonoff iHost RV1126 Smart Home Gateway Tim Lunn
2023-11-13 12:06 ` [PATCH 1/8] ARM: dts: rockchip: rv1126: Add alternate UART pins Tim Lunn
@ 2023-11-13 12:06 ` Tim Lunn
2023-11-13 12:07 ` [PATCH 3/8] i2c: rk3x: Adjust grf offset for i2c2 on rv1126 Tim Lunn
` (5 subsequent siblings)
7 siblings, 0 replies; 14+ messages in thread
From: Tim Lunn @ 2023-11-13 12:06 UTC (permalink / raw)
To: linux-rockchip, devicetree
Cc: Jagan Teki, Krzysztof Kozlowski, Tim Lunn, Rob Herring,
Heiko Stuebner, linux-arm-kernel, Conor Dooley
Add serial aliases for uart nodes so that serial devices are created
Signed-off-by: Tim Lunn <tim@feathertop.org>
---
arch/arm/boot/dts/rockchip/rv1126.dtsi | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm/boot/dts/rockchip/rv1126.dtsi b/arch/arm/boot/dts/rockchip/rv1126.dtsi
index 9ccd1bad6229..6c5c928f06c7 100644
--- a/arch/arm/boot/dts/rockchip/rv1126.dtsi
+++ b/arch/arm/boot/dts/rockchip/rv1126.dtsi
@@ -21,6 +21,11 @@ / {
aliases {
i2c0 = &i2c0;
+ serial0 = &uart0;
+ serial1 = &uart1;
+ serial2 = &uart2;
+ serial3 = &uart3;
+ serial4 = &uart4;
};
cpus {
--
2.40.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 3/8] i2c: rk3x: Adjust grf offset for i2c2 on rv1126
2023-11-13 12:06 [PATCH 0/8] Add support for Sonoff iHost RV1126 Smart Home Gateway Tim Lunn
2023-11-13 12:06 ` [PATCH 1/8] ARM: dts: rockchip: rv1126: Add alternate UART pins Tim Lunn
2023-11-13 12:06 ` [PATCH 2/8] ARM: dts: rockchip: rv1126: Serial aliases Tim Lunn
@ 2023-11-13 12:07 ` Tim Lunn
2023-11-16 19:54 ` Heiko Stuebner
2023-11-13 12:07 ` [PATCH 4/8] ARM: dts: rockchip: rv1126: Add i2c2 nodes Tim Lunn
` (4 subsequent siblings)
7 siblings, 1 reply; 14+ messages in thread
From: Tim Lunn @ 2023-11-13 12:07 UTC (permalink / raw)
To: linux-rockchip, devicetree
Cc: Jagan Teki, Krzysztof Kozlowski, Tim Lunn, Rob Herring,
Heiko Stuebner, linux-arm-kernel, Conor Dooley, Andi Shyti,
linux-i2c
Rockchip RV1126 has a special case grf offset/mask for i2c2
Signed-off-by: Tim Lunn <tim@feathertop.org>
---
drivers/i2c/busses/i2c-rk3x.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/i2c/busses/i2c-rk3x.c b/drivers/i2c/busses/i2c-rk3x.c
index a044ca0c35a1..83b7bf7b48a7 100644
--- a/drivers/i2c/busses/i2c-rk3x.c
+++ b/drivers/i2c/busses/i2c-rk3x.c
@@ -1288,8 +1288,12 @@ static int rk3x_i2c_probe(struct platform_device *pdev)
return -EINVAL;
}
- /* 27+i: write mask, 11+i: value */
- value = BIT(27 + bus_nr) | BIT(11 + bus_nr);
+ if (i2c->soc_data == &rv1126_soc_data && bus_nr == 2)
+ /* rv1126 i2c2 set pmugrf offset-0x118, bit-4 */
+ value = BIT(20) | BIT(4);
+ else
+ /* 27+i: write mask, 11+i: value */
+ value = BIT(27 + bus_nr) | BIT(11 + bus_nr);
ret = regmap_write(grf, i2c->soc_data->grf_offset, value);
if (ret != 0) {
--
2.40.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 3/8] i2c: rk3x: Adjust grf offset for i2c2 on rv1126
2023-11-13 12:07 ` [PATCH 3/8] i2c: rk3x: Adjust grf offset for i2c2 on rv1126 Tim Lunn
@ 2023-11-16 19:54 ` Heiko Stuebner
2023-11-18 0:31 ` Tim Lunn
0 siblings, 1 reply; 14+ messages in thread
From: Heiko Stuebner @ 2023-11-16 19:54 UTC (permalink / raw)
To: linux-rockchip, devicetree, Tim Lunn
Cc: Jagan Teki, Krzysztof Kozlowski, Tim Lunn, Rob Herring,
linux-arm-kernel, Conor Dooley, Andi Shyti, linux-i2c
Hi,
Am Montag, 13. November 2023, 13:07:00 CET schrieb Tim Lunn:
> Rockchip RV1126 has a special case grf offset/mask for i2c2
This sounds misleading. When looking at the soc-data, the grf offset
seems to be the same for all busses of the rv1126, only the offset
seems to be different for i2c2.
Sadly I don't have (and didn't find any) rv1126 TRM, so couldn't verify.
Change itself looks nice. As it's only this one bus of one soc so far,
we likely won't need a more involved solution just now.
> Signed-off-by: Tim Lunn <tim@feathertop.org>
> ---
>
> drivers/i2c/busses/i2c-rk3x.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-rk3x.c b/drivers/i2c/busses/i2c-rk3x.c
> index a044ca0c35a1..83b7bf7b48a7 100644
> --- a/drivers/i2c/busses/i2c-rk3x.c
> +++ b/drivers/i2c/busses/i2c-rk3x.c
> @@ -1288,8 +1288,12 @@ static int rk3x_i2c_probe(struct platform_device *pdev)
> return -EINVAL;
> }
>
> - /* 27+i: write mask, 11+i: value */
> - value = BIT(27 + bus_nr) | BIT(11 + bus_nr);
> + if (i2c->soc_data == &rv1126_soc_data && bus_nr == 2)
> + /* rv1126 i2c2 set pmugrf offset-0x118, bit-4 */
same here, comment could drop the offset reference I guess.
> + value = BIT(20) | BIT(4);
> + else
> + /* 27+i: write mask, 11+i: value */
> + value = BIT(27 + bus_nr) | BIT(11 + bus_nr);
>
> ret = regmap_write(grf, i2c->soc_data->grf_offset, value);
> if (ret != 0) {
>
Heiko
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/8] i2c: rk3x: Adjust grf offset for i2c2 on rv1126
2023-11-16 19:54 ` Heiko Stuebner
@ 2023-11-18 0:31 ` Tim Lunn
0 siblings, 0 replies; 14+ messages in thread
From: Tim Lunn @ 2023-11-18 0:31 UTC (permalink / raw)
To: Heiko Stuebner, linux-rockchip, devicetree
Cc: Jagan Teki, Krzysztof Kozlowski, Rob Herring, linux-arm-kernel,
Conor Dooley, Andi Shyti, linux-i2c
Hi Heiko,
On 11/17/23 06:54, Heiko Stuebner wrote:
> Hi,
>
> Am Montag, 13. November 2023, 13:07:00 CET schrieb Tim Lunn:
>> Rockchip RV1126 has a special case grf offset/mask for i2c2
> This sounds misleading. When looking at the soc-data, the grf offset
> seems to be the same for all busses of the rv1126, only the offset
> seems to be different for i2c2.
>
> Sadly I don't have (and didn't find any) rv1126 TRM, so couldn't verify.
>
> Change itself looks nice. As it's only this one bus of one soc so far,
> we likely won't need a more involved solution just now.
>
Thanks for your comments. I agree it sounds a bit misleading, I will clarify
the commit message and comments in v2 of this series.
Unfortunately I dont have access to the TRM either, however I have validated
that this fixes i2c2 on actual hardware.
>
>> Signed-off-by: Tim Lunn <tim@feathertop.org>
>> ---
>>
>> drivers/i2c/busses/i2c-rk3x.c | 8 ++++++--
>> 1 file changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/i2c/busses/i2c-rk3x.c b/drivers/i2c/busses/i2c-rk3x.c
>> index a044ca0c35a1..83b7bf7b48a7 100644
>> --- a/drivers/i2c/busses/i2c-rk3x.c
>> +++ b/drivers/i2c/busses/i2c-rk3x.c
>> @@ -1288,8 +1288,12 @@ static int rk3x_i2c_probe(struct platform_device *pdev)
>> return -EINVAL;
>> }
>>
>> - /* 27+i: write mask, 11+i: value */
>> - value = BIT(27 + bus_nr) | BIT(11 + bus_nr);
>> + if (i2c->soc_data == &rv1126_soc_data && bus_nr == 2)
>> + /* rv1126 i2c2 set pmugrf offset-0x118, bit-4 */
> same here, comment could drop the offset reference I guess.
>
>> + value = BIT(20) | BIT(4);
>> + else
>> + /* 27+i: write mask, 11+i: value */
>> + value = BIT(27 + bus_nr) | BIT(11 + bus_nr);
>>
>> ret = regmap_write(grf, i2c->soc_data->grf_offset, value);
>> if (ret != 0) {
>>
>
> Heiko
>
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 4/8] ARM: dts: rockchip: rv1126: Add i2c2 nodes
2023-11-13 12:06 [PATCH 0/8] Add support for Sonoff iHost RV1126 Smart Home Gateway Tim Lunn
` (2 preceding siblings ...)
2023-11-13 12:07 ` [PATCH 3/8] i2c: rk3x: Adjust grf offset for i2c2 on rv1126 Tim Lunn
@ 2023-11-13 12:07 ` Tim Lunn
2023-11-13 12:07 ` [PATCH 5/8] ARM: dts: rockchip: rv1126: Split up rgmii1 pinctrl Tim Lunn
` (3 subsequent siblings)
7 siblings, 0 replies; 14+ messages in thread
From: Tim Lunn @ 2023-11-13 12:07 UTC (permalink / raw)
To: linux-rockchip, devicetree
Cc: Jagan Teki, Krzysztof Kozlowski, Tim Lunn, Rob Herring,
Heiko Stuebner, linux-arm-kernel, Conor Dooley
Add i2c2 node and i2c2_xfer pinctrl for Rockchip RV1126
Signed-off-by: Tim Lunn <tim@feathertop.org>
---
arch/arm/boot/dts/rockchip/rv1126-pinctrl.dtsi | 10 ++++++++++
arch/arm/boot/dts/rockchip/rv1126.dtsi | 15 +++++++++++++++
2 files changed, 25 insertions(+)
diff --git a/arch/arm/boot/dts/rockchip/rv1126-pinctrl.dtsi b/arch/arm/boot/dts/rockchip/rv1126-pinctrl.dtsi
index 4f85b7b3fc4c..167a48afa3a4 100644
--- a/arch/arm/boot/dts/rockchip/rv1126-pinctrl.dtsi
+++ b/arch/arm/boot/dts/rockchip/rv1126-pinctrl.dtsi
@@ -87,6 +87,16 @@ i2c0_xfer: i2c0-xfer {
<0 RK_PB5 1 &pcfg_pull_none_drv_level_0_smt>;
};
};
+ i2c2 {
+ /omit-if-no-ref/
+ i2c2_xfer: i2c2-xfer {
+ rockchip,pins =
+ /* i2c2_scl */
+ <0 RK_PC2 1 &pcfg_pull_none_drv_level_0_smt>,
+ /* i2c2_sda */
+ <0 RK_PC3 1 &pcfg_pull_none_drv_level_0_smt>;
+ };
+ };
pwm2 {
/omit-if-no-ref/
pwm2m0_pins: pwm2m0-pins {
diff --git a/arch/arm/boot/dts/rockchip/rv1126.dtsi b/arch/arm/boot/dts/rockchip/rv1126.dtsi
index 6c5c928f06c7..cf1df75df418 100644
--- a/arch/arm/boot/dts/rockchip/rv1126.dtsi
+++ b/arch/arm/boot/dts/rockchip/rv1126.dtsi
@@ -21,6 +21,7 @@ / {
aliases {
i2c0 = &i2c0;
+ i2c2 = &i2c2;
serial0 = &uart0;
serial1 = &uart1;
serial2 = &uart2;
@@ -236,6 +237,20 @@ i2c0: i2c@ff3f0000 {
status = "disabled";
};
+ i2c2: i2c@ff400000 {
+ compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c";
+ reg = <0xff400000 0x1000>;
+ interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+ rockchip,grf = <&pmugrf>;
+ clocks = <&pmucru CLK_I2C2>, <&pmucru PCLK_I2C2>;
+ clock-names = "i2c", "pclk";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c2_xfer>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
+ };
+
uart1: serial@ff410000 {
compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart";
reg = <0xff410000 0x100>;
--
2.40.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 5/8] ARM: dts: rockchip: rv1126: Split up rgmii1 pinctrl
2023-11-13 12:06 [PATCH 0/8] Add support for Sonoff iHost RV1126 Smart Home Gateway Tim Lunn
` (3 preceding siblings ...)
2023-11-13 12:07 ` [PATCH 4/8] ARM: dts: rockchip: rv1126: Add i2c2 nodes Tim Lunn
@ 2023-11-13 12:07 ` Tim Lunn
2023-11-13 12:07 ` [PATCH 6/8] ARM: dts: rockchip: rv1126: Add ethernet alias Tim Lunn
` (2 subsequent siblings)
7 siblings, 0 replies; 14+ messages in thread
From: Tim Lunn @ 2023-11-13 12:07 UTC (permalink / raw)
To: linux-rockchip, devicetree
Cc: Jagan Teki, Krzysztof Kozlowski, Tim Lunn, Rob Herring,
Heiko Stuebner, linux-arm-kernel, Conor Dooley
Split up the pinctrl definitions for rgmii1 so it can be shared
with devices using an RMII PHY.
Signed-off-by: Tim Lunn <tim@feathertop.org>
---
.../dts/rockchip/rv1126-edgeble-neu2-io.dts | 2 +-
.../arm/boot/dts/rockchip/rv1126-pinctrl.dtsi | 46 +++++++++++++------
2 files changed, 34 insertions(+), 14 deletions(-)
diff --git a/arch/arm/boot/dts/rockchip/rv1126-edgeble-neu2-io.dts b/arch/arm/boot/dts/rockchip/rv1126-edgeble-neu2-io.dts
index f09be8405964..0c2396b8f8db 100644
--- a/arch/arm/boot/dts/rockchip/rv1126-edgeble-neu2-io.dts
+++ b/arch/arm/boot/dts/rockchip/rv1126-edgeble-neu2-io.dts
@@ -61,7 +61,7 @@ &gmac {
phy-mode = "rgmii";
phy-supply = <&vcc_3v3>;
pinctrl-names = "default";
- pinctrl-0 = <&rgmiim1_pins &clk_out_ethernetm1_pins>;
+ pinctrl-0 = <&rgmiim1_miim &rgmiim1_bus2 &rgmiim1_bus4 &clk_out_ethernetm1_pins>;
tx_delay = <0x2a>;
rx_delay = <0x1a>;
status = "okay";
diff --git a/arch/arm/boot/dts/rockchip/rv1126-pinctrl.dtsi b/arch/arm/boot/dts/rockchip/rv1126-pinctrl.dtsi
index 167a48afa3a4..06b1d7f2d858 100644
--- a/arch/arm/boot/dts/rockchip/rv1126-pinctrl.dtsi
+++ b/arch/arm/boot/dts/rockchip/rv1126-pinctrl.dtsi
@@ -115,36 +115,56 @@ pwm11m0_pins: pwm11m0-pins {
};
rgmii {
/omit-if-no-ref/
- rgmiim1_pins: rgmiim1-pins {
+ rgmiim1_miim: rgmiim1-miim {
rockchip,pins =
/* rgmii_mdc_m1 */
<2 RK_PC2 2 &pcfg_pull_none>,
/* rgmii_mdio_m1 */
- <2 RK_PC1 2 &pcfg_pull_none>,
- /* rgmii_rxclk_m1 */
- <2 RK_PD3 2 &pcfg_pull_none>,
+ <2 RK_PC1 2 &pcfg_pull_none>;
+ };
+ /omit-if-no-ref/
+ rgmiim1_rxer: rgmiim1-rxer {
+ rockchip,pins =
+ /* rgmii_rxer_m1 */
+ <2 RK_PC0 2 &pcfg_pull_none>;
+ };
+ /omit-if-no-ref/
+ rgmiim1_bus2: rgmiim1-bus2 {
+ rockchip,pins =
/* rgmii_rxd0_m1 */
<2 RK_PB5 2 &pcfg_pull_none>,
/* rgmii_rxd1_m1 */
<2 RK_PB6 2 &pcfg_pull_none>,
- /* rgmii_rxd2_m1 */
- <2 RK_PC7 2 &pcfg_pull_none>,
- /* rgmii_rxd3_m1 */
- <2 RK_PD0 2 &pcfg_pull_none>,
/* rgmii_rxdv_m1 */
<2 RK_PB4 2 &pcfg_pull_none>,
- /* rgmii_txclk_m1 */
- <2 RK_PD2 2 &pcfg_pull_none_drv_level_3>,
/* rgmii_txd0_m1 */
<2 RK_PC3 2 &pcfg_pull_none_drv_level_3>,
/* rgmii_txd1_m1 */
<2 RK_PC4 2 &pcfg_pull_none_drv_level_3>,
+ /* rgmii_txen_m1 */
+ <2 RK_PC6 2 &pcfg_pull_none_drv_level_3>;
+ };
+ /omit-if-no-ref/
+ rgmiim1_bus4: rgmiim1-bus4 {
+ rockchip,pins =
+ /* rgmii_rxclk_m1 */
+ <2 RK_PD3 2 &pcfg_pull_none>,
+ /* rgmii_rxd2_m1 */
+ <2 RK_PC7 2 &pcfg_pull_none>,
+ /* rgmii_rxd3_m1 */
+ <2 RK_PD0 2 &pcfg_pull_none>,
+ /* rgmii_txclk_m1 */
+ <2 RK_PD2 2 &pcfg_pull_none_drv_level_3>,
/* rgmii_txd2_m1 */
<2 RK_PD1 2 &pcfg_pull_none_drv_level_3>,
/* rgmii_txd3_m1 */
- <2 RK_PA4 2 &pcfg_pull_none_drv_level_3>,
- /* rgmii_txen_m1 */
- <2 RK_PC6 2 &pcfg_pull_none_drv_level_3>;
+ <2 RK_PA4 2 &pcfg_pull_none_drv_level_3>;
+ };
+ /omit-if-no-ref/
+ rgmiim1_mclkinout: rgmiim1-mclkinout {
+ rockchip,pins =
+ /* rgmii_clk_m1 */
+ <2 RK_PB7 2 &pcfg_pull_none>;
};
};
sdmmc0 {
--
2.40.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 6/8] ARM: dts: rockchip: rv1126: Add ethernet alias
2023-11-13 12:06 [PATCH 0/8] Add support for Sonoff iHost RV1126 Smart Home Gateway Tim Lunn
` (4 preceding siblings ...)
2023-11-13 12:07 ` [PATCH 5/8] ARM: dts: rockchip: rv1126: Split up rgmii1 pinctrl Tim Lunn
@ 2023-11-13 12:07 ` Tim Lunn
2023-11-13 12:07 ` [PATCH 7/8] ARM: dts: Add Sonoff iHost Smart Home Hub Tim Lunn
2023-11-13 12:07 ` [PATCH 8/8] dt-bindings: arm: rockchip: Add Sonoff iHost Tim Lunn
7 siblings, 0 replies; 14+ messages in thread
From: Tim Lunn @ 2023-11-13 12:07 UTC (permalink / raw)
To: linux-rockchip, devicetree
Cc: Jagan Teki, Krzysztof Kozlowski, Tim Lunn, Rob Herring,
Heiko Stuebner, linux-arm-kernel, Conor Dooley
Add alias for ethernet0 to pick up mac address from u-boot/DT
Signed-off-by: Tim Lunn <tim@feathertop.org>
---
arch/arm/boot/dts/rockchip/rv1126.dtsi | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm/boot/dts/rockchip/rv1126.dtsi b/arch/arm/boot/dts/rockchip/rv1126.dtsi
index cf1df75df418..bfbd4918e745 100644
--- a/arch/arm/boot/dts/rockchip/rv1126.dtsi
+++ b/arch/arm/boot/dts/rockchip/rv1126.dtsi
@@ -20,6 +20,7 @@ / {
interrupt-parent = <&gic>;
aliases {
+ ethernet0 = &gmac;
i2c0 = &i2c0;
i2c2 = &i2c2;
serial0 = &uart0;
--
2.40.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 7/8] ARM: dts: Add Sonoff iHost Smart Home Hub
2023-11-13 12:06 [PATCH 0/8] Add support for Sonoff iHost RV1126 Smart Home Gateway Tim Lunn
` (5 preceding siblings ...)
2023-11-13 12:07 ` [PATCH 6/8] ARM: dts: rockchip: rv1126: Add ethernet alias Tim Lunn
@ 2023-11-13 12:07 ` Tim Lunn
2023-11-18 12:09 ` Heiko Stübner
2023-11-13 12:07 ` [PATCH 8/8] dt-bindings: arm: rockchip: Add Sonoff iHost Tim Lunn
7 siblings, 1 reply; 14+ messages in thread
From: Tim Lunn @ 2023-11-13 12:07 UTC (permalink / raw)
To: linux-rockchip, devicetree
Cc: Jagan Teki, Krzysztof Kozlowski, Tim Lunn, Rob Herring,
Heiko Stuebner, linux-arm-kernel, Conor Dooley
Sonoff iHost is gateway device designed to provide a Smart Home Hub,
it is based on Rockchip RV1126. There is also a version with 2GB RAM
based off the RV1109 dual core SoC.
Features:
- Rockchip RV1126
- 4GB DDR4
- 8GB eMMC
- microSD slot
- RMII Ethernet PHY
- 1x USB 2.0 Host
- 1x USB 2.0 OTG
- Realtek RTL8723DS WiFi/BT
- EFR32MG21 Silabs Zigbee radio
- Speaker/Microphone
This patch adds the initial device tree for this device, it is largely
based off the device trees for mainline Edgeble Neu2 and downstream
Rockchip rv1126-evb-v13 configs. It has been adapted with relevant
peripheral and GPIO pins for the iHost.
Signed-off-by: Tim Lunn <tim@feathertop.org>
---
arch/arm/boot/dts/rockchip/Makefile | 2 +
.../boot/dts/rockchip/rv1109-sonoff-ihost.dts | 13 +
arch/arm/boot/dts/rockchip/rv1109.dtsi | 23 +
.../boot/dts/rockchip/rv1126-sonoff-ihost.dts | 13 +
.../dts/rockchip/rv1126-sonoff-ihost.dtsi | 409 ++++++++++++++++++
5 files changed, 460 insertions(+)
create mode 100644 arch/arm/boot/dts/rockchip/rv1109-sonoff-ihost.dts
create mode 100644 arch/arm/boot/dts/rockchip/rv1109.dtsi
create mode 100644 arch/arm/boot/dts/rockchip/rv1126-sonoff-ihost.dts
create mode 100644 arch/arm/boot/dts/rockchip/rv1126-sonoff-ihost.dtsi
diff --git a/arch/arm/boot/dts/rockchip/Makefile b/arch/arm/boot/dts/rockchip/Makefile
index 0f46e18fe275..4d4533d6f407 100644
--- a/arch/arm/boot/dts/rockchip/Makefile
+++ b/arch/arm/boot/dts/rockchip/Makefile
@@ -2,7 +2,9 @@
dtb-$(CONFIG_ARCH_ROCKCHIP) += \
rv1108-elgin-r1.dtb \
rv1108-evb.dtb \
+ rv1109-sonoff-ihost.dtb \
rv1126-edgeble-neu2-io.dtb \
+ rv1126-sonoff-ihost.dtb \
rk3036-evb.dtb \
rk3036-kylin.dtb \
rk3066a-bqcurie2.dtb \
diff --git a/arch/arm/boot/dts/rockchip/rv1109-sonoff-ihost.dts b/arch/arm/boot/dts/rockchip/rv1109-sonoff-ihost.dts
new file mode 100644
index 000000000000..3bfdb00ac8e1
--- /dev/null
+++ b/arch/arm/boot/dts/rockchip/rv1109-sonoff-ihost.dts
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2020 Rockchip Electronics Co., Ltd.
+ */
+
+/dts-v1/;
+#include "rv1109.dtsi"
+#include "rv1126-sonoff-ihost.dtsi"
+
+/ {
+ model = "Sonoff iHost 2G";
+ compatible = "itead,sonoff-ihost", "rockchip,rv1109";
+};
diff --git a/arch/arm/boot/dts/rockchip/rv1109.dtsi b/arch/arm/boot/dts/rockchip/rv1109.dtsi
new file mode 100644
index 000000000000..9cbaa08ab1b8
--- /dev/null
+++ b/arch/arm/boot/dts/rockchip/rv1109.dtsi
@@ -0,0 +1,23 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd.
+ */
+
+/dts-v1/;
+
+#include "rv1126.dtsi"
+
+/ {
+ compatible = "rockchip,rv1109";
+
+ cpus {
+ /delete-node/ cpu@f02;
+ /delete-node/ cpu@f03;
+ };
+
+ arm-pmu {
+ interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-affinity = <&cpu0>, <&cpu1>;
+ };
+};
diff --git a/arch/arm/boot/dts/rockchip/rv1126-sonoff-ihost.dts b/arch/arm/boot/dts/rockchip/rv1126-sonoff-ihost.dts
new file mode 100644
index 000000000000..106d1e42f285
--- /dev/null
+++ b/arch/arm/boot/dts/rockchip/rv1126-sonoff-ihost.dts
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2020 Rockchip Electronics Co., Ltd.
+ */
+
+/dts-v1/;
+#include "rv1126.dtsi"
+#include "rv1126-sonoff-ihost.dtsi"
+
+/ {
+ model = "Sonoff iHost 4G";
+ compatible = "itead,sonoff-ihost", "rockchip,rv1126";
+};
diff --git a/arch/arm/boot/dts/rockchip/rv1126-sonoff-ihost.dtsi b/arch/arm/boot/dts/rockchip/rv1126-sonoff-ihost.dtsi
new file mode 100644
index 000000000000..9060795d88f3
--- /dev/null
+++ b/arch/arm/boot/dts/rockchip/rv1126-sonoff-ihost.dtsi
@@ -0,0 +1,409 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2020 Rockchip Electronics Co., Ltd.
+ * Copyright (c) 2022 Edgeble AI Technologies Pvt. Ltd.
+ */
+
+/ {
+ aliases {
+ mmc0 = &emmc;
+ };
+
+ chosen {
+ stdout-path = "serial2:1500000n8";
+ };
+
+ vcc5v0_sys: regulator-vcc5v0-sys {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc5v0_sys";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ };
+
+ sdio_pwrseq: pwrseq-sdio {
+ compatible = "mmc-pwrseq-simple";
+ clocks = <&rk809 1>;
+ clock-names = "ext_clock";
+ pinctrl-names = "default";
+ pinctrl-0 = <&wifi_enable_h>;
+ reset-gpios = <&gpio1 RK_PD0 GPIO_ACTIVE_LOW>;
+ };
+};
+
+&cpu0 {
+ cpu-supply = <&vdd_arm>;
+};
+
+&emmc {
+ bus-width = <8>;
+ cap-mmc-highspeed;
+ mmc-hs200-1_8v;
+ non-removable;
+ pinctrl-names = "default";
+ pinctrl-0 = <&emmc_bus8 &emmc_cmd &emmc_clk &emmc_rstnout>;
+ rockchip,default-sample-phase = <90>;
+ vmmc-supply = <&vcc_3v3>;
+ vqmmc-supply = <&vcc_1v8>;
+ status = "okay";
+};
+
+&i2c0 {
+ clock-frequency = <400000>;
+ status = "okay";
+
+ rk809: pmic@20 {
+ compatible = "rockchip,rk809";
+ reg = <0x20>;
+ interrupt-parent = <&gpio0>;
+ interrupts = <RK_PB1 IRQ_TYPE_LEVEL_LOW>;
+ #clock-cells = <1>;
+ clock-output-names = "rk808-clkout1", "rk808-clkout2";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pmic_int_l>;
+ rockchip,system-power-controller;
+ wakeup-source;
+
+ vcc1-supply = <&vcc5v0_sys>;
+ vcc2-supply = <&vcc5v0_sys>;
+ vcc3-supply = <&vcc5v0_sys>;
+ vcc4-supply = <&vcc5v0_sys>;
+ vcc5-supply = <&vcc_buck5>;
+ vcc6-supply = <&vcc_buck5>;
+ vcc7-supply = <&vcc5v0_sys>;
+ vcc8-supply = <&vcc3v3_sys>;
+ vcc9-supply = <&vcc5v0_sys>;
+
+ regulators {
+ vdd_npu_vepu: DCDC_REG1 {
+ regulator-name = "vdd_npu_vepu";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-initial-mode = <0x2>;
+ regulator-min-microvolt = <650000>;
+ regulator-max-microvolt = <950000>;
+ regulator-ramp-delay = <6001>;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vdd_arm: DCDC_REG2 {
+ regulator-name = "vdd_arm";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-initial-mode = <0x2>;
+ regulator-min-microvolt = <725000>;
+ regulator-max-microvolt = <1350000>;
+ regulator-ramp-delay = <6001>;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc_ddr: DCDC_REG3 {
+ regulator-name = "vcc_ddr";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-initial-mode = <0x2>;
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ };
+ };
+
+ vcc3v3_sys: DCDC_REG4 {
+ regulator-name = "vcc3v3_sys";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-initial-mode = <0x2>;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <3300000>;
+ };
+ };
+
+ vcc_buck5: DCDC_REG5 {
+ regulator-name = "vcc_buck5";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <2200000>;
+ regulator-max-microvolt = <2200000>;
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <2200000>;
+ };
+ };
+
+ vcc_0v8: LDO_REG1 {
+ regulator-name = "vcc_0v8";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <800000>;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc1v8_pmu: LDO_REG2 {
+ regulator-name = "vcc1v8_pmu";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <1800000>;
+ };
+ };
+
+ vdd0v8_pmu: LDO_REG3 {
+ regulator-name = "vcc0v8_pmu";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <800000>;
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <800000>;
+ };
+ };
+
+ vcc_1v8: LDO_REG4 {
+ regulator-name = "vcc_1v8";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <1800000>;
+ };
+ };
+
+ vcc_dovdd: LDO_REG5 {
+ regulator-name = "vcc_dovdd";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc_dvdd: LDO_REG6 {
+ regulator-name = "vcc_dvdd";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc_avdd: LDO_REG7 {
+ regulator-name = "vcc_avdd";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vccio_sd: LDO_REG8 {
+ regulator-name = "vccio_sd";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc3v3_sd: LDO_REG9 {
+ regulator-name = "vcc3v3_sd";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc_5v0: SWITCH_REG1 {
+ regulator-name = "vcc_5v0";
+ };
+
+ vcc_3v3: SWITCH_REG2 {
+ regulator-name = "vcc_3v3";
+ regulator-always-on;
+ regulator-boot-on;
+ };
+ };
+ };
+};
+
+&i2c2 {
+ status = "okay";
+ clock-frequency = <400000>;
+
+ pcf8563: rtc@51 {
+ compatible = "nxp,pcf8563";
+ reg = <0x51>;
+ #clock-cells = <0>;
+ interrupt-parent = <&gpio0>;
+ interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
+ clock-output-names = "xin32k";
+ };
+};
+
+&gmac {
+ assigned-clocks = <&cru CLK_GMAC_SRC_M1>, <&cru CLK_GMAC_SRC>,
+ <&cru CLK_GMAC_TX_RX>;
+ assigned-clock-parents = <&cru CLK_GMAC_RGMII_M1>, <&cru CLK_GMAC_SRC_M1>,
+ <&cru RMII_MODE_CLK>;
+ assigned-clock-rates = <0>, <50000000>;
+ clock_in_out = "output";
+ phy-handle = <&phy>;
+ phy-mode = "rmii";
+ phy-supply = <&vcc_3v3>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&rgmiim1_miim &rgmiim1_rxer &rgmiim1_bus2 &rgmiim1_mclkinout>;
+ status = "okay";
+};
+
+&mdio {
+ phy: ethernet-phy@0 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <0x0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <ð_phy_rst>;
+ reset-active-low;
+ reset-assert-us = <50000>;
+ reset-deassert-us = <10000>;
+ reset-gpios = <&gpio2 RK_PA6 GPIO_ACTIVE_LOW>;
+ };
+};
+
+&pinctrl {
+ ethernet {
+ eth_phy_rst: eth-phy-rst {
+ rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_down>;
+ };
+ };
+ bt {
+ bt_enable: bt-enable {
+ rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+
+ bt_wake_dev: bt-wake-dev {
+ rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+
+ bt_wake_host: bt-wake-host {
+ rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
+ pmic {
+ pmic_int_l: pmic-int-l {
+ rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
+ };
+ };
+
+ wifi {
+ wifi_enable_h: wifi-enable-h {
+ rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+};
+
+&pmu_io_domains {
+ pmuio0-supply = <&vcc1v8_pmu>;
+ pmuio1-supply = <&vcc3v3_sys>;
+ vccio1-supply = <&vcc_1v8>;
+ vccio2-supply = <&vccio_sd>;
+ vccio3-supply = <&vcc_1v8>;
+ vccio4-supply = <&vcc_dovdd>;
+ vccio5-supply = <&vcc_1v8>;
+ vccio6-supply = <&vcc_1v8>;
+ vccio7-supply = <&vcc_dovdd>;
+ status = "okay";
+};
+
+&saradc {
+ vref-supply = <&vcc_1v8>;
+ status = "okay";
+};
+
+&sdio {
+ bus-width = <4>;
+ cap-sd-highspeed;
+ cap-sdio-irq;
+ keep-power-in-suspend;
+ max-frequency = <100000000>;
+ mmc-pwrseq = <&sdio_pwrseq>;
+ non-removable;
+ pinctrl-names = "default";
+ pinctrl-0 = <&sdmmc1_clk &sdmmc1_cmd &sdmmc1_bus4>;
+ rockchip,default-sample-phase = <90>;
+ sd-uhs-sdr104;
+ vmmc-supply = <&vcc3v3_sys>;
+ vqmmc-supply = <&vcc_1v8>;
+ status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;
+};
+
+&sdmmc {
+ bus-width = <4>;
+ cap-mmc-highspeed;
+ cap-sd-highspeed;
+ card-detect-delay = <200>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_bus4 &sdmmc0_det>;
+ rockchip,default-sample-phase = <90>;
+ sd-uhs-sdr12;
+ sd-uhs-sdr25;
+ sd-uhs-sdr104;
+ vqmmc-supply = <&vccio_sd>;
+ status = "okay";
+};
+
+&uart0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0_xfer &uart0_ctsn &uart0_rtsn>;
+ uart-has-rtscts;
+ status = "okay";
+
+ bluetooth {
+ compatible = "realtek,rtl8723ds-bt";
+ device-wake-gpios = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>; /* BT_WAKE */
+ enable-gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>; /* BT_RST */
+ host-wake-gpios = <&gpio1 RK_PC5 GPIO_ACTIVE_HIGH>; /* BT_WAKE_HOST */
+ max-speed = <2000000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&bt_enable>, <&bt_wake_dev>, <&bt_wake_host>;
+ };
+};
+
+&uart2 {
+ status = "okay";
+};
+
+&uart3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart3m2_xfer>;
+ status = "okay";
+};
+
+&uart4 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart4m2_xfer>;
+ status = "okay";
+};
--
2.40.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 7/8] ARM: dts: Add Sonoff iHost Smart Home Hub
2023-11-13 12:07 ` [PATCH 7/8] ARM: dts: Add Sonoff iHost Smart Home Hub Tim Lunn
@ 2023-11-18 12:09 ` Heiko Stübner
2023-11-19 3:05 ` Tim Lunn
0 siblings, 1 reply; 14+ messages in thread
From: Heiko Stübner @ 2023-11-18 12:09 UTC (permalink / raw)
To: linux-rockchip, devicetree, Tim Lunn
Cc: Jagan Teki, Krzysztof Kozlowski, Tim Lunn, Rob Herring,
linux-arm-kernel, Conor Dooley
Hi Tim,
Am Montag, 13. November 2023, 13:07:04 CET schrieb Tim Lunn:
> Sonoff iHost is gateway device designed to provide a Smart Home Hub,
> it is based on Rockchip RV1126. There is also a version with 2GB RAM
> based off the RV1109 dual core SoC.
>
> Features:
> - Rockchip RV1126
> - 4GB DDR4
> - 8GB eMMC
> - microSD slot
> - RMII Ethernet PHY
> - 1x USB 2.0 Host
> - 1x USB 2.0 OTG
> - Realtek RTL8723DS WiFi/BT
> - EFR32MG21 Silabs Zigbee radio
> - Speaker/Microphone
>
> This patch adds the initial device tree for this device, it is largely
> based off the device trees for mainline Edgeble Neu2 and downstream
> Rockchip rv1126-evb-v13 configs. It has been adapted with relevant
> peripheral and GPIO pins for the iHost.
>
> Signed-off-by: Tim Lunn <tim@feathertop.org>
> diff --git a/arch/arm/boot/dts/rockchip/rv1109.dtsi b/arch/arm/boot/dts/rockchip/rv1109.dtsi
> new file mode 100644
> index 000000000000..9cbaa08ab1b8
> --- /dev/null
> +++ b/arch/arm/boot/dts/rockchip/rv1109.dtsi
> @@ -0,0 +1,23 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd.
> + */
> +
> +/dts-v1/;
> +
> +#include "rv1126.dtsi"
> +
> +/ {
> + compatible = "rockchip,rv1109";
> +
> + cpus {
> + /delete-node/ cpu@f02;
> + /delete-node/ cpu@f03;
> + };
> +
> + arm-pmu {
> + interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
> + interrupt-affinity = <&cpu0>, <&cpu1>;
> + };
> +};
this definitly wants to be its own patch ;-) .
I.e. you add support for the rv1109, which seems to be the same as rv1126, just
with 2 instead of 4 cpu cores.
> +&sdio {
> + bus-width = <4>;
> + cap-sd-highspeed;
> + cap-sdio-irq;
> + keep-power-in-suspend;
> + max-frequency = <100000000>;
> + mmc-pwrseq = <&sdio_pwrseq>;
> + non-removable;
> + pinctrl-names = "default";
> + pinctrl-0 = <&sdmmc1_clk &sdmmc1_cmd &sdmmc1_bus4>;
> + rockchip,default-sample-phase = <90>;
> + sd-uhs-sdr104;
> + vmmc-supply = <&vcc3v3_sys>;
> + vqmmc-supply = <&vcc_1v8>;
> + status = "okay";
> + #address-cells = <1>;
> + #size-cells = <0>;
I don't think the *-cells are needed here
Thanks
Heiko
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 7/8] ARM: dts: Add Sonoff iHost Smart Home Hub
2023-11-18 12:09 ` Heiko Stübner
@ 2023-11-19 3:05 ` Tim Lunn
0 siblings, 0 replies; 14+ messages in thread
From: Tim Lunn @ 2023-11-19 3:05 UTC (permalink / raw)
To: Heiko Stübner, linux-rockchip, devicetree
Cc: Jagan Teki, Krzysztof Kozlowski, Rob Herring, linux-arm-kernel,
Conor Dooley
Hi Heiko,
On 11/18/23 23:09, Heiko Stübner wrote:
> Hi Tim,
>
> Am Montag, 13. November 2023, 13:07:04 CET schrieb Tim Lunn:
>> Sonoff iHost is gateway device designed to provide a Smart Home Hub,
>> it is based on Rockchip RV1126. There is also a version with 2GB RAM
>> based off the RV1109 dual core SoC.
>>
>> Features:
>> - Rockchip RV1126
>> - 4GB DDR4
>> - 8GB eMMC
>> - microSD slot
>> - RMII Ethernet PHY
>> - 1x USB 2.0 Host
>> - 1x USB 2.0 OTG
>> - Realtek RTL8723DS WiFi/BT
>> - EFR32MG21 Silabs Zigbee radio
>> - Speaker/Microphone
>>
>> This patch adds the initial device tree for this device, it is largely
>> based off the device trees for mainline Edgeble Neu2 and downstream
>> Rockchip rv1126-evb-v13 configs. It has been adapted with relevant
>> peripheral and GPIO pins for the iHost.
>>
>> Signed-off-by: Tim Lunn <tim@feathertop.org>
>
>> diff --git a/arch/arm/boot/dts/rockchip/rv1109.dtsi b/arch/arm/boot/dts/rockchip/rv1109.dtsi
>> new file mode 100644
>> index 000000000000..9cbaa08ab1b8
>> --- /dev/null
>> +++ b/arch/arm/boot/dts/rockchip/rv1109.dtsi
>> @@ -0,0 +1,23 @@
>> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>> +/*
>> + * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd.
>> + */
>> +
>> +/dts-v1/;
>> +
>> +#include "rv1126.dtsi"
>> +
>> +/ {
>> + compatible = "rockchip,rv1109";
>> +
>> + cpus {
>> + /delete-node/ cpu@f02;
>> + /delete-node/ cpu@f03;
>> + };
>> +
>> + arm-pmu {
>> + interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
>> + <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
>> + interrupt-affinity = <&cpu0>, <&cpu1>;
>> + };
>> +};
> this definitly wants to be its own patch ;-) .
>
> I.e. you add support for the rv1109, which seems to be the same as rv1126, just
> with 2 instead of 4 cpu cores.
I will split this out. Yes, rv1109 is identical to the rv1126 apart from
the number of cores.
I initially hoped rv1109 could just use the same device tree, but having
the extra cores enabled ends
up causing panics.
>
>
>
>> +&sdio {
>> + bus-width = <4>;
>> + cap-sd-highspeed;
>> + cap-sdio-irq;
>> + keep-power-in-suspend;
>> + max-frequency = <100000000>;
>> + mmc-pwrseq = <&sdio_pwrseq>;
>> + non-removable;
>> + pinctrl-names = "default";
>> + pinctrl-0 = <&sdmmc1_clk &sdmmc1_cmd &sdmmc1_bus4>;
>> + rockchip,default-sample-phase = <90>;
>> + sd-uhs-sdr104;
>> + vmmc-supply = <&vcc3v3_sys>;
>> + vqmmc-supply = <&vcc_1v8>;
>> + status = "okay";
>> + #address-cells = <1>;
>> + #size-cells = <0>;
> I don't think the *-cells are needed here
>
Ok, i will check and remove.
Regards
Tim
>
> Thanks
> Heiko
>
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 8/8] dt-bindings: arm: rockchip: Add Sonoff iHost
2023-11-13 12:06 [PATCH 0/8] Add support for Sonoff iHost RV1126 Smart Home Gateway Tim Lunn
` (6 preceding siblings ...)
2023-11-13 12:07 ` [PATCH 7/8] ARM: dts: Add Sonoff iHost Smart Home Hub Tim Lunn
@ 2023-11-13 12:07 ` Tim Lunn
2023-11-16 18:10 ` Rob Herring
7 siblings, 1 reply; 14+ messages in thread
From: Tim Lunn @ 2023-11-13 12:07 UTC (permalink / raw)
To: linux-rockchip, devicetree
Cc: Jagan Teki, Krzysztof Kozlowski, Tim Lunn, Rob Herring,
Heiko Stuebner, linux-arm-kernel, Conor Dooley
Sonoff iHost is a smart home hub with built in radios for wifi/bt
and Zigbee. It is based off the Rockchip RV1126 (or RV1109) SoC.
Signed-off-by: Tim Lunn <tim@feathertop.org>
---
Documentation/devicetree/bindings/arm/rockchip.yaml | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Documentation/devicetree/bindings/arm/rockchip.yaml
index 5f7c6c4aad8f..a26bbcd00deb 100644
--- a/Documentation/devicetree/bindings/arm/rockchip.yaml
+++ b/Documentation/devicetree/bindings/arm/rockchip.yaml
@@ -922,6 +922,13 @@ properties:
- const: rockchip,rk3568-bpi-r2pro
- const: rockchip,rk3568
+ - description: Sonoff iHost Smart Home Hub
+ items:
+ - const: itead,sonoff-ihost
+ - enum:
+ - rockchip,rv1126
+ - rockchip,rv1109
+
additionalProperties: true
...
--
2.40.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 8/8] dt-bindings: arm: rockchip: Add Sonoff iHost
2023-11-13 12:07 ` [PATCH 8/8] dt-bindings: arm: rockchip: Add Sonoff iHost Tim Lunn
@ 2023-11-16 18:10 ` Rob Herring
0 siblings, 0 replies; 14+ messages in thread
From: Rob Herring @ 2023-11-16 18:10 UTC (permalink / raw)
To: Tim Lunn
Cc: Krzysztof Kozlowski, Jagan Teki, Conor Dooley, linux-rockchip,
Rob Herring, devicetree, linux-arm-kernel, Heiko Stuebner
On Mon, 13 Nov 2023 23:07:05 +1100, Tim Lunn wrote:
> Sonoff iHost is a smart home hub with built in radios for wifi/bt
> and Zigbee. It is based off the Rockchip RV1126 (or RV1109) SoC.
>
> Signed-off-by: Tim Lunn <tim@feathertop.org>
>
> ---
>
> Documentation/devicetree/bindings/arm/rockchip.yaml | 7 +++++++
> 1 file changed, 7 insertions(+)
>
Acked-by: Rob Herring <robh@kernel.org>
^ permalink raw reply [flat|nested] 14+ messages in thread