diff mbox series

[can-next,v2,01/20] dt-bindings: can: rockchip_canfd: add rockchip CAN-FD controller

Message ID 20240731-rockchip-canfd-v2-1-d9604c5b4be8@pengutronix.de (mailing list archive)
State Awaiting Upstream
Delegated to: Netdev Maintainers
Headers show
Series an: rockchip_canfd: add support for CAN-FD IP core found on Rockchip RK3568 | expand

Checks

Context Check Description
netdev/series_format fail Series longer than 15 patches
netdev/tree_selection success Guessed tree name to be net-next, async
netdev/ynl success Generated files up to date; no warnings/errors; no diff in generated;
netdev/fixes_present success Fixes tag not required for -next series
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 42 this patch: 42
netdev/build_tools success No tools touched, skip
netdev/cc_maintainers success CCed 15 of 15 maintainers
netdev/build_clang success Errors and warnings before: 44 this patch: 44
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/deprecated_api success None detected
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success No Fixes tag
netdev/build_allmodconfig_warn success Errors and warnings before: 49 this patch: 49
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 89 lines checked
netdev/build_clang_rust success No Rust files in patch. Skipping build
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0

Commit Message

Marc Kleine-Budde July 31, 2024, 9:37 a.m. UTC
Add documentation for the rockchip rk3568 CAN-FD controller.

Co-developed-by: Elaine Zhang <zhangqing@rock-chips.com>
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
 .../bindings/net/can/rockchip,canfd.yaml           | 76 ++++++++++++++++++++++
 MAINTAINERS                                        |  7 ++
 2 files changed, 83 insertions(+)

Comments

Rob Herring Aug. 6, 2024, 4:50 p.m. UTC | #1
On Wed, Jul 31, 2024 at 11:37:03AM +0200, Marc Kleine-Budde wrote:
> Add documentation for the rockchip rk3568 CAN-FD controller.
> 
> Co-developed-by: Elaine Zhang <zhangqing@rock-chips.com>
> Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
> ---
>  .../bindings/net/can/rockchip,canfd.yaml           | 76 ++++++++++++++++++++++

rockchip,rk3568-canfd.yaml

>  MAINTAINERS                                        |  7 ++
>  2 files changed, 83 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/net/can/rockchip,canfd.yaml b/Documentation/devicetree/bindings/net/can/rockchip,canfd.yaml
> new file mode 100644
> index 000000000000..444269f630f4
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/can/rockchip,canfd.yaml
> @@ -0,0 +1,76 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/can/rockchip,canfd.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title:
> +  Rockchip CAN-FD controller
> +
> +maintainers:
> +  - Marc Kleine-Budde <mkl@pengutronix.de>
> +
> +allOf:
> +  - $ref: can-controller.yaml#
> +
> +properties:
> +  compatible:
> +    oneOf:
> +      - const: rockchip,rk3568-canfd
> +      - items:
> +          - enum:
> +              - rockchip,rk3568v2-canfd
> +              - rockchip,rk3568v3-canfd
> +          - const: rockchip,rk3568-canfd

Given you already know there are differences in the versions to handle 
and there's no existing driver supporting the fallback, I don't know 
that a fallback is too useful here.

> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  clocks:
> +    maxItems: 2
> +
> +  clock-names:
> +    items:
> +      - const: baud
> +      - const: pclk
> +
> +  resets:
> +    maxItems: 2
> +
> +  reset-names:
> +    items:
> +      - const: core
> +      - const: apb
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +  - clocks
> +  - resets
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/clock/rk3568-cru.h>
> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +
> +    soc {
> +        #address-cells = <2>;
> +        #size-cells = <2>;
> +
> +        can0: can@fe570000 {

Drop unused labels.

> +            compatible = "rockchip,rk3568-canfd";
> +            reg = <0x0 0xfe570000 0x0 0x1000>;
> +            interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
> +            clocks = <&cru CLK_CAN0>, <&cru PCLK_CAN0>;
> +            clock-names = "baud", "pclk";
> +            resets = <&cru SRST_CAN0>, <&cru SRST_P_CAN0>;
> +            reset-names = "core", "apb";
> +        };
> +    };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index c0a3d9e93689..d225dc39bd89 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -19694,6 +19694,13 @@ F:	Documentation/ABI/*/sysfs-driver-hid-roccat*
>  F:	drivers/hid/hid-roccat*
>  F:	include/linux/hid-roccat*
>  
> +ROCKCHIP CAN-FD DRIVER
> +M:	Marc Kleine-Budde <mkl@pengutronix.de>
> +R:	kernel@pengutronix.de
> +L:	linux-can@vger.kernel.org
> +S:	Maintained
> +F:	Documentation/devicetree/bindings/net/can/rockchip,canfd.yaml
> +
>  ROCKCHIP CRYPTO DRIVERS
>  M:	Corentin Labbe <clabbe@baylibre.com>
>  L:	linux-crypto@vger.kernel.org
> 
> -- 
> 2.43.0
> 
>
Marc Kleine-Budde Aug. 6, 2024, 7:55 p.m. UTC | #2
On 06.08.2024 10:50:20, Rob Herring wrote:
> On Wed, Jul 31, 2024 at 11:37:03AM +0200, Marc Kleine-Budde wrote:
> > Add documentation for the rockchip rk3568 CAN-FD controller.
> > 
> > Co-developed-by: Elaine Zhang <zhangqing@rock-chips.com>
> > Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
> > Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
> > ---
> >  .../bindings/net/can/rockchip,canfd.yaml           | 76 ++++++++++++++++++++++
> 
> rockchip,rk3568-canfd.yaml

Thanks, will rename.

> >  MAINTAINERS                                        |  7 ++
> >  2 files changed, 83 insertions(+)
> > 
> > diff --git a/Documentation/devicetree/bindings/net/can/rockchip,canfd.yaml b/Documentation/devicetree/bindings/net/can/rockchip,canfd.yaml
> > new file mode 100644
> > index 000000000000..444269f630f4
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/net/can/rockchip,canfd.yaml
> > @@ -0,0 +1,76 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/net/can/rockchip,canfd.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title:
> > +  Rockchip CAN-FD controller
> > +
> > +maintainers:
> > +  - Marc Kleine-Budde <mkl@pengutronix.de>
> > +
> > +allOf:
> > +  - $ref: can-controller.yaml#
> > +
> > +properties:
> > +  compatible:
> > +    oneOf:
> > +      - const: rockchip,rk3568-canfd
> > +      - items:
> > +          - enum:
> > +              - rockchip,rk3568v2-canfd
> > +              - rockchip,rk3568v3-canfd
> > +          - const: rockchip,rk3568-canfd
> 
> Given you already know there are differences in the versions to handle 
> and there's no existing driver supporting the fallback, I don't know 
> that a fallback is too useful here.

Let me re-think out loud about the compatibilities:

There is a CAN-FD IP core in the rockchip,rk3568 SoC.
 
In the silicon revision v2 of the SoC it has 12 documented errata und
silicon revision v3 some of them are fixed. This means the driver can
skip some of the workarounds.

The v3 revision works with all the errata of the v2 active, currently
with a probably not measurable increase of CPU load. This might change
in the future, if more v2 workarounds are added. These might
degrade performance.

So it's for the v2 silicon revision:
compatible = "rockchip,rk3568v2-canfd";

And for the v3 silicon revision:
compatible = "rockchip,rk3568v3-canfd", "rockchip,rk3568v2-canfd";

Which is documented in the yaml as:

properties:
  compatible:
    oneOf:
      - const: rockchip,rk3568v2-canfd
      - items:
          - const: rockchip,rk3568v3-canfd
          - const: rockchip,rk3568v2-canfd

regards,
Marc
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/net/can/rockchip,canfd.yaml b/Documentation/devicetree/bindings/net/can/rockchip,canfd.yaml
new file mode 100644
index 000000000000..444269f630f4
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/can/rockchip,canfd.yaml
@@ -0,0 +1,76 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/can/rockchip,canfd.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title:
+  Rockchip CAN-FD controller
+
+maintainers:
+  - Marc Kleine-Budde <mkl@pengutronix.de>
+
+allOf:
+  - $ref: can-controller.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: rockchip,rk3568-canfd
+      - items:
+          - enum:
+              - rockchip,rk3568v2-canfd
+              - rockchip,rk3568v3-canfd
+          - const: rockchip,rk3568-canfd
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 2
+
+  clock-names:
+    items:
+      - const: baud
+      - const: pclk
+
+  resets:
+    maxItems: 2
+
+  reset-names:
+    items:
+      - const: core
+      - const: apb
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - resets
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/rk3568-cru.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        can0: can@fe570000 {
+            compatible = "rockchip,rk3568-canfd";
+            reg = <0x0 0xfe570000 0x0 0x1000>;
+            interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
+            clocks = <&cru CLK_CAN0>, <&cru PCLK_CAN0>;
+            clock-names = "baud", "pclk";
+            resets = <&cru SRST_CAN0>, <&cru SRST_P_CAN0>;
+            reset-names = "core", "apb";
+        };
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index c0a3d9e93689..d225dc39bd89 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -19694,6 +19694,13 @@  F:	Documentation/ABI/*/sysfs-driver-hid-roccat*
 F:	drivers/hid/hid-roccat*
 F:	include/linux/hid-roccat*
 
+ROCKCHIP CAN-FD DRIVER
+M:	Marc Kleine-Budde <mkl@pengutronix.de>
+R:	kernel@pengutronix.de
+L:	linux-can@vger.kernel.org
+S:	Maintained
+F:	Documentation/devicetree/bindings/net/can/rockchip,canfd.yaml
+
 ROCKCHIP CRYPTO DRIVERS
 M:	Corentin Labbe <clabbe@baylibre.com>
 L:	linux-crypto@vger.kernel.org