devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5] RK3576 OTP support
@ 2024-11-19 13:29 Heiko Stuebner
  2024-11-19 13:29 ` [PATCH 1/5] clk: rockchip: rk3576: define clk_otp_phy_g Heiko Stuebner
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Heiko Stuebner @ 2024-11-19 13:29 UTC (permalink / raw)
  To: srinivas.kandagatla
  Cc: robh, krzk+dt, conor+dt, heiko, detlev.casanova, devicetree,
	linux-arm-kernel, linux-rockchip, linux-kernel, linux-clk,
	sebastian.reichel

This enables OTP support in the nvmem driver for rk3576.

I expect to pick the clock patch (patch1) and the arm64-dts patch (patch5)
myself, after the nvmem-driver and -binding patches have been applied
(patches 2-4).

But kept them together for people wanting to try this series.

Heiko Stuebner (5):
  clk: rockchip: rk3576: define clk_otp_phy_g
  nvmem: rockchip-otp: Move read-offset into variant-data
  dt-bindings: nvmem: rockchip,otp: Add compatible for RK3576
  nvmem: rockchip-otp: add rk3576 variant data
  arm64: dts: rockchip: add rk3576 otp node

 .../bindings/nvmem/rockchip,otp.yaml          | 18 +++++++++
 arch/arm64/boot/dts/rockchip/rk3576.dtsi      | 39 +++++++++++++++++++
 drivers/clk/rockchip/clk-rk3576.c             |  2 +
 drivers/nvmem/rockchip-otp.c                  | 17 +++++++-
 4 files changed, 74 insertions(+), 2 deletions(-)

-- 
2.45.2


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/5] clk: rockchip: rk3576: define clk_otp_phy_g
  2024-11-19 13:29 [PATCH 0/5] RK3576 OTP support Heiko Stuebner
@ 2024-11-19 13:29 ` Heiko Stuebner
  2024-11-19 13:45   ` Diederik de Haas
  2024-11-19 13:29 ` [PATCH 2/5] nvmem: rockchip-otp: Move read-offset into variant-data Heiko Stuebner
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 9+ messages in thread
From: Heiko Stuebner @ 2024-11-19 13:29 UTC (permalink / raw)
  To: srinivas.kandagatla
  Cc: robh, krzk+dt, conor+dt, heiko, detlev.casanova, devicetree,
	linux-arm-kernel, linux-rockchip, linux-kernel, linux-clk,
	sebastian.reichel

The phy clock of the OTP block is also present, but was not defined
so far. Though its clk-id already existed, so just define its location.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
 drivers/clk/rockchip/clk-rk3576.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/clk/rockchip/clk-rk3576.c b/drivers/clk/rockchip/clk-rk3576.c
index 595e010341f7..029939a98416 100644
--- a/drivers/clk/rockchip/clk-rk3576.c
+++ b/drivers/clk/rockchip/clk-rk3576.c
@@ -541,6 +541,8 @@ static struct rockchip_clk_branch rk3576_clk_branches[] __initdata = {
 			RK3576_CLKGATE_CON(5), 14, GFLAGS),
 	GATE(CLK_OTPC_AUTO_RD_G, "clk_otpc_auto_rd_g", "xin24m", 0,
 			RK3576_CLKGATE_CON(5), 15, GFLAGS),
+	GATE(CLK_OTP_PHY_G, "clk_otp_phy_g", "xin24m", 0,
+			RK3588_CLKGATE_CON(6), 0, GFLAGS),
 	COMPOSITE(CLK_MIPI_CAMERAOUT_M0, "clk_mipi_cameraout_m0", mux_24m_spll_gpll_cpll_p, 0,
 			RK3576_CLKSEL_CON(38), 8, 2, MFLAGS, 0, 8, DFLAGS,
 			RK3576_CLKGATE_CON(6), 3, GFLAGS),
-- 
2.45.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/5] nvmem: rockchip-otp: Move read-offset into variant-data
  2024-11-19 13:29 [PATCH 0/5] RK3576 OTP support Heiko Stuebner
  2024-11-19 13:29 ` [PATCH 1/5] clk: rockchip: rk3576: define clk_otp_phy_g Heiko Stuebner
@ 2024-11-19 13:29 ` Heiko Stuebner
  2024-11-19 13:29 ` [PATCH 3/5] dt-bindings: nvmem: rockchip,otp: Add compatible for RK3576 Heiko Stuebner
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Heiko Stuebner @ 2024-11-19 13:29 UTC (permalink / raw)
  To: srinivas.kandagatla
  Cc: robh, krzk+dt, conor+dt, heiko, detlev.casanova, devicetree,
	linux-arm-kernel, linux-rockchip, linux-kernel, linux-clk,
	sebastian.reichel

The RK3588 has an offset into the OTP area where the readable area begins
and automatically adds this to the start address.
Other variants are very much similar to rk3588, just with a different
offset, so move that value into variant-data.

To match the size in bytes, store this value also in bytes and not in
number of blocks.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
 drivers/nvmem/rockchip-otp.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/nvmem/rockchip-otp.c b/drivers/nvmem/rockchip-otp.c
index ebc3f0b24166..3edfbfc2d722 100644
--- a/drivers/nvmem/rockchip-otp.c
+++ b/drivers/nvmem/rockchip-otp.c
@@ -59,7 +59,6 @@
 #define RK3588_OTPC_AUTO_EN		0x08
 #define RK3588_OTPC_INT_ST		0x84
 #define RK3588_OTPC_DOUT0		0x20
-#define RK3588_NO_SECURE_OFFSET		0x300
 #define RK3588_NBYTES			4
 #define RK3588_BURST_NUM		1
 #define RK3588_BURST_SHIFT		8
@@ -69,6 +68,7 @@
 
 struct rockchip_data {
 	int size;
+	int read_offset;
 	const char * const *clks;
 	int num_clks;
 	nvmem_reg_read_t reg_read;
@@ -196,7 +196,7 @@ static int rk3588_otp_read(void *context, unsigned int offset,
 	addr_start = round_down(offset, RK3588_NBYTES) / RK3588_NBYTES;
 	addr_end = round_up(offset + bytes, RK3588_NBYTES) / RK3588_NBYTES;
 	addr_len = addr_end - addr_start;
-	addr_start += RK3588_NO_SECURE_OFFSET;
+	addr_start += otp->data->read_offset / RK3588_NBYTES;
 
 	buf = kzalloc(array_size(addr_len, RK3588_NBYTES), GFP_KERNEL);
 	if (!buf)
@@ -280,6 +280,7 @@ static const char * const rk3588_otp_clocks[] = {
 
 static const struct rockchip_data rk3588_data = {
 	.size = 0x400,
+	.read_offset = 0xc00,
 	.clks = rk3588_otp_clocks,
 	.num_clks = ARRAY_SIZE(rk3588_otp_clocks),
 	.reg_read = rk3588_otp_read,
-- 
2.45.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3/5] dt-bindings: nvmem: rockchip,otp: Add compatible for RK3576
  2024-11-19 13:29 [PATCH 0/5] RK3576 OTP support Heiko Stuebner
  2024-11-19 13:29 ` [PATCH 1/5] clk: rockchip: rk3576: define clk_otp_phy_g Heiko Stuebner
  2024-11-19 13:29 ` [PATCH 2/5] nvmem: rockchip-otp: Move read-offset into variant-data Heiko Stuebner
@ 2024-11-19 13:29 ` Heiko Stuebner
  2024-11-20  8:57   ` Krzysztof Kozlowski
  2024-11-19 13:29 ` [PATCH 4/5] nvmem: rockchip-otp: add rk3576 variant data Heiko Stuebner
  2024-11-19 13:29 ` [PATCH 5/5] arm64: dts: rockchip: add rk3576 otp node Heiko Stuebner
  4 siblings, 1 reply; 9+ messages in thread
From: Heiko Stuebner @ 2024-11-19 13:29 UTC (permalink / raw)
  To: srinivas.kandagatla
  Cc: robh, krzk+dt, conor+dt, heiko, detlev.casanova, devicetree,
	linux-arm-kernel, linux-rockchip, linux-kernel, linux-clk,
	sebastian.reichel

Document the OTP memory found on Rockchip RK3576 SoC.

The RK3576 uses the same set of clocks as the px30/rk3308
but has one reset more, so adapt the binding to handle this
variant as well.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
 .../bindings/nvmem/rockchip,otp.yaml           | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/Documentation/devicetree/bindings/nvmem/rockchip,otp.yaml b/Documentation/devicetree/bindings/nvmem/rockchip,otp.yaml
index a44d44b32809..dae7543a0179 100644
--- a/Documentation/devicetree/bindings/nvmem/rockchip,otp.yaml
+++ b/Documentation/devicetree/bindings/nvmem/rockchip,otp.yaml
@@ -14,6 +14,7 @@ properties:
     enum:
       - rockchip,px30-otp
       - rockchip,rk3308-otp
+      - rockchip,rk3576-otp
       - rockchip,rk3588-otp
 
   reg:
@@ -68,6 +69,23 @@ allOf:
           items:
             - const: phy
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - rockchip,rk3576-otp
+    then:
+      properties:
+        clocks:
+          minItems: 3
+        resets:
+          minItems: 2
+        reset-names:
+          items:
+            - const: otp
+            - const: apb
+
   - if:
       properties:
         compatible:
-- 
2.45.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 4/5] nvmem: rockchip-otp: add rk3576 variant data
  2024-11-19 13:29 [PATCH 0/5] RK3576 OTP support Heiko Stuebner
                   ` (2 preceding siblings ...)
  2024-11-19 13:29 ` [PATCH 3/5] dt-bindings: nvmem: rockchip,otp: Add compatible for RK3576 Heiko Stuebner
@ 2024-11-19 13:29 ` Heiko Stuebner
  2024-11-19 13:29 ` [PATCH 5/5] arm64: dts: rockchip: add rk3576 otp node Heiko Stuebner
  4 siblings, 0 replies; 9+ messages in thread
From: Heiko Stuebner @ 2024-11-19 13:29 UTC (permalink / raw)
  To: srinivas.kandagatla
  Cc: robh, krzk+dt, conor+dt, heiko, detlev.casanova, devicetree,
	linux-arm-kernel, linux-rockchip, linux-kernel, linux-clk,
	sebastian.reichel

The variant works very similar to the rk3588, just with a different
read-offset and size.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
 drivers/nvmem/rockchip-otp.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/nvmem/rockchip-otp.c b/drivers/nvmem/rockchip-otp.c
index 3edfbfc2d722..d88f12c53242 100644
--- a/drivers/nvmem/rockchip-otp.c
+++ b/drivers/nvmem/rockchip-otp.c
@@ -274,6 +274,14 @@ static const struct rockchip_data px30_data = {
 	.reg_read = px30_otp_read,
 };
 
+static const struct rockchip_data rk3576_data = {
+	.size = 0x100,
+	.read_offset = 0x700,
+	.clks = px30_otp_clocks,
+	.num_clks = ARRAY_SIZE(px30_otp_clocks),
+	.reg_read = rk3588_otp_read,
+};
+
 static const char * const rk3588_otp_clocks[] = {
 	"otp", "apb_pclk", "phy", "arb",
 };
@@ -295,6 +303,10 @@ static const struct of_device_id rockchip_otp_match[] = {
 		.compatible = "rockchip,rk3308-otp",
 		.data = &px30_data,
 	},
+	{
+		.compatible = "rockchip,rk3576-otp",
+		.data = &rk3576_data,
+	},
 	{
 		.compatible = "rockchip,rk3588-otp",
 		.data = &rk3588_data,
-- 
2.45.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 5/5] arm64: dts: rockchip: add rk3576 otp node
  2024-11-19 13:29 [PATCH 0/5] RK3576 OTP support Heiko Stuebner
                   ` (3 preceding siblings ...)
  2024-11-19 13:29 ` [PATCH 4/5] nvmem: rockchip-otp: add rk3576 variant data Heiko Stuebner
@ 2024-11-19 13:29 ` Heiko Stuebner
  4 siblings, 0 replies; 9+ messages in thread
From: Heiko Stuebner @ 2024-11-19 13:29 UTC (permalink / raw)
  To: srinivas.kandagatla
  Cc: robh, krzk+dt, conor+dt, heiko, detlev.casanova, devicetree,
	linux-arm-kernel, linux-rockchip, linux-kernel, linux-clk,
	sebastian.reichel

This adds the otp node to the rk3576 soc devicetree including the
individual fields we know about.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
 arch/arm64/boot/dts/rockchip/rk3576.dtsi | 39 ++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3576.dtsi b/arch/arm64/boot/dts/rockchip/rk3576.dtsi
index 436232ffe4d1..c70c9dcfad82 100644
--- a/arch/arm64/boot/dts/rockchip/rk3576.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3576.dtsi
@@ -1149,6 +1149,45 @@ sdhci: mmc@2a330000 {
 			status = "disabled";
 		};
 
+		otp: otp@2a580000 {
+			compatible = "rockchip,rk3576-otp";
+			reg = <0x0 0x2a580000 0x0 0x400>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+			clocks = <&cru CLK_OTPC_NS>, <&cru PCLK_OTPC_NS>,
+				 <&cru CLK_OTP_PHY_G>;
+			clock-names = "otp", "apb_pclk", "phy";
+			resets = <&cru SRST_OTPC_NS>, <&cru SRST_P_OTPC_NS>;
+			reset-names = "otp", "apb";
+
+			/* Data cells */
+			cpu_code: cpu-code@2 {
+				reg = <0x02 0x2>;
+			};
+			otp_cpu_version: cpu-version@5 {
+				reg = <0x05 0x1>;
+				bits = <3 3>;
+			};
+			otp_id: id@a {
+				reg = <0x0a 0x10>;
+			};
+			cpub_leakage: cpub-leakage@1e {
+				reg = <0x1e 0x1>;
+			};
+			cpul_leakage: cpul-leakage@1f {
+				reg = <0x1f 0x1>;
+			};
+			npu_leakage: npu-leakage@20 {
+				reg = <0x20 0x1>;
+			};
+			gpu_leakage: gpu-leakage@21 {
+				reg = <0x21 0x1>;
+			};
+			log_leakage: log-leakage@22 {
+				reg = <0x22 0x1>;
+			};
+		};
+
 		gic: interrupt-controller@2a701000 {
 			compatible = "arm,gic-400";
 			reg = <0x0 0x2a701000 0 0x10000>,
-- 
2.45.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/5] clk: rockchip: rk3576: define clk_otp_phy_g
  2024-11-19 13:29 ` [PATCH 1/5] clk: rockchip: rk3576: define clk_otp_phy_g Heiko Stuebner
@ 2024-11-19 13:45   ` Diederik de Haas
  2024-11-19 13:51     ` Heiko Stübner
  0 siblings, 1 reply; 9+ messages in thread
From: Diederik de Haas @ 2024-11-19 13:45 UTC (permalink / raw)
  To: Heiko Stuebner, srinivas.kandagatla
  Cc: robh, krzk+dt, conor+dt, detlev.casanova, devicetree,
	linux-arm-kernel, linux-rockchip, linux-kernel, linux-clk,
	sebastian.reichel

[-- Attachment #1: Type: text/plain, Size: 1138 bytes --]

On Tue Nov 19, 2024 at 2:29 PM CET, Heiko Stuebner wrote:
> The phy clock of the OTP block is also present, but was not defined
> so far. Though its clk-id already existed, so just define its location.
>
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> ---
>  drivers/clk/rockchip/clk-rk3576.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/drivers/clk/rockchip/clk-rk3576.c b/drivers/clk/rockchip/clk-rk3576.c
> index 595e010341f7..029939a98416 100644
> --- a/drivers/clk/rockchip/clk-rk3576.c
> +++ b/drivers/clk/rockchip/clk-rk3576.c
> @@ -541,6 +541,8 @@ static struct rockchip_clk_branch rk3576_clk_branches[] __initdata = {
>  			RK3576_CLKGATE_CON(5), 14, GFLAGS),
>  	GATE(CLK_OTPC_AUTO_RD_G, "clk_otpc_auto_rd_g", "xin24m", 0,
>  			RK3576_CLKGATE_CON(5), 15, GFLAGS),
> +	GATE(CLK_OTP_PHY_G, "clk_otp_phy_g", "xin24m", 0,
> +			RK3588_CLKGATE_CON(6), 0, GFLAGS),

RK3588? 

Cheers,
  Diederik

>  	COMPOSITE(CLK_MIPI_CAMERAOUT_M0, "clk_mipi_cameraout_m0", mux_24m_spll_gpll_cpll_p, 0,
>  			RK3576_CLKSEL_CON(38), 8, 2, MFLAGS, 0, 8, DFLAGS,
>  			RK3576_CLKGATE_CON(6), 3, GFLAGS),


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/5] clk: rockchip: rk3576: define clk_otp_phy_g
  2024-11-19 13:45   ` Diederik de Haas
@ 2024-11-19 13:51     ` Heiko Stübner
  0 siblings, 0 replies; 9+ messages in thread
From: Heiko Stübner @ 2024-11-19 13:51 UTC (permalink / raw)
  To: srinivas.kandagatla, Diederik de Haas
  Cc: robh, krzk+dt, conor+dt, detlev.casanova, devicetree,
	linux-arm-kernel, linux-rockchip, linux-kernel, linux-clk,
	sebastian.reichel

Am Dienstag, 19. November 2024, 14:45:53 CET schrieb Diederik de Haas:
> On Tue Nov 19, 2024 at 2:29 PM CET, Heiko Stuebner wrote:
> > The phy clock of the OTP block is also present, but was not defined
> > so far. Though its clk-id already existed, so just define its location.
> >
> > Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> > ---
> >  drivers/clk/rockchip/clk-rk3576.c | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/clk/rockchip/clk-rk3576.c b/drivers/clk/rockchip/clk-rk3576.c
> > index 595e010341f7..029939a98416 100644
> > --- a/drivers/clk/rockchip/clk-rk3576.c
> > +++ b/drivers/clk/rockchip/clk-rk3576.c
> > @@ -541,6 +541,8 @@ static struct rockchip_clk_branch rk3576_clk_branches[] __initdata = {
> >  			RK3576_CLKGATE_CON(5), 14, GFLAGS),
> >  	GATE(CLK_OTPC_AUTO_RD_G, "clk_otpc_auto_rd_g", "xin24m", 0,
> >  			RK3576_CLKGATE_CON(5), 15, GFLAGS),
> > +	GATE(CLK_OTP_PHY_G, "clk_otp_phy_g", "xin24m", 0,
> > +			RK3588_CLKGATE_CON(6), 0, GFLAGS),
> 
> RK3588? 

darn copy-paste, thanks for noticing ;-)

At least the register and bit number is correct though ... according to the TRM.
So I messed up only the constant and did not notice due to the gate being
ungated by default of course.


Heiko



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/5] dt-bindings: nvmem: rockchip,otp: Add compatible for RK3576
  2024-11-19 13:29 ` [PATCH 3/5] dt-bindings: nvmem: rockchip,otp: Add compatible for RK3576 Heiko Stuebner
@ 2024-11-20  8:57   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 9+ messages in thread
From: Krzysztof Kozlowski @ 2024-11-20  8:57 UTC (permalink / raw)
  To: Heiko Stuebner
  Cc: srinivas.kandagatla, robh, krzk+dt, conor+dt, detlev.casanova,
	devicetree, linux-arm-kernel, linux-rockchip, linux-kernel,
	linux-clk, sebastian.reichel

On Tue, Nov 19, 2024 at 02:29:14PM +0100, Heiko Stuebner wrote:
> Document the OTP memory found on Rockchip RK3576 SoC.
> 
> The RK3576 uses the same set of clocks as the px30/rk3308
> but has one reset more, so adapt the binding to handle this
> variant as well.
> 
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> ---
>  .../bindings/nvmem/rockchip,otp.yaml           | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/nvmem/rockchip,otp.yaml b/Documentation/devicetree/bindings/nvmem/rockchip,otp.yaml
> index a44d44b32809..dae7543a0179 100644
> --- a/Documentation/devicetree/bindings/nvmem/rockchip,otp.yaml
> +++ b/Documentation/devicetree/bindings/nvmem/rockchip,otp.yaml
> @@ -14,6 +14,7 @@ properties:
>      enum:
>        - rockchip,px30-otp
>        - rockchip,rk3308-otp
> +      - rockchip,rk3576-otp
>        - rockchip,rk3588-otp
>  
>    reg:
> @@ -68,6 +69,23 @@ allOf:
>            items:
>              - const: phy
>  
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - rockchip,rk3576-otp
> +    then:
> +      properties:
> +        clocks:
> +          minItems: 3

That's redundant. 3 is there already. You wanted maxItems?

Missing constraint on clock-names (existing binding should be fixed as
well, separate patch).

> +        resets:
> +          minItems: 2

missing maxItems

> +        reset-names:
> +          items:
> +            - const: otp
> +            - const: apb

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2024-11-20  8:57 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-19 13:29 [PATCH 0/5] RK3576 OTP support Heiko Stuebner
2024-11-19 13:29 ` [PATCH 1/5] clk: rockchip: rk3576: define clk_otp_phy_g Heiko Stuebner
2024-11-19 13:45   ` Diederik de Haas
2024-11-19 13:51     ` Heiko Stübner
2024-11-19 13:29 ` [PATCH 2/5] nvmem: rockchip-otp: Move read-offset into variant-data Heiko Stuebner
2024-11-19 13:29 ` [PATCH 3/5] dt-bindings: nvmem: rockchip,otp: Add compatible for RK3576 Heiko Stuebner
2024-11-20  8:57   ` Krzysztof Kozlowski
2024-11-19 13:29 ` [PATCH 4/5] nvmem: rockchip-otp: add rk3576 variant data Heiko Stuebner
2024-11-19 13:29 ` [PATCH 5/5] arm64: dts: rockchip: add rk3576 otp node Heiko Stuebner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).