devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/4] CAST Controller Area Network driver support
@ 2024-09-22 14:51 Hal Feng
  2024-09-22 14:51 ` [PATCH v2 1/4] dt-bindings: vendor-prefixes: Add cast vendor prefix Hal Feng
                   ` (3 more replies)
  0 siblings, 4 replies; 19+ messages in thread
From: Hal Feng @ 2024-09-22 14:51 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Marc Kleine-Budde,
	Vincent Mailhol, David S . Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Philipp Zabel, Palmer Dabbelt, Paul Walmsley,
	Albert Ou
  Cc: Emil Renner Berthing, William Qiu, Hal Feng, devicetree,
	linux-can, netdev, linux-riscv, linux-kernel

This patchset adds support for the CAST Controller Area Network Bus
Controller (version fd-7x10N00S00) which is used in StarFive JH7110 SoC.
Note that the CAN FD license for JH7110 has expired, so JH7110 only
supports CAN CC now.

Changes since v1:
Patch 1:
- Add company information in the commit message.
Patch 2:
- Add description for the hardware.
- Move "allOf" stuff down after the property definitions.
- Rename compatible names, clock names, reset names and syscon register
  names.
- Rewrite the example.
Patch 3:
- Reorder all functions for readability.
- Simplify register definitions and register access functions.
- Improve syscon related code.
- Use clk_bulk interface.
- Enable the clocks during .ndo_open() and disable during .ndo_stop().
- Use can_put_echo_skb() and can_get_echo_skb().
- Stop the TX queue when entering .ndo_start_xmit() and restart the TX
  queue after the transmission finished.
- Simplify logic and remove redundant code.
- Improve coding style.
Patch 4:
- Update the nodes according to the new dt-bindings.

History:
v1: https://lore.kernel.org/all/20240129031239.17037-1-william.qiu@starfivetech.com/

William Qiu (4):
  dt-bindings: vendor-prefixes: Add cast vendor prefix
  dt-bindings: can: Add CAST CAN Bus Controller
  can: Add driver for CAST CAN Bus Controller
  riscv: dts: starfive: jh7110: Add CAN nodes

 .../bindings/net/can/cast,can-ctrl.yaml       | 106 ++
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 MAINTAINERS                                   |   8 +
 arch/riscv/boot/dts/starfive/jh7110.dtsi      |  32 +
 drivers/net/can/Kconfig                       |   7 +
 drivers/net/can/Makefile                      |   1 +
 drivers/net/can/cast_can.c                    | 936 ++++++++++++++++++
 7 files changed, 1092 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/net/can/cast,can-ctrl.yaml
 create mode 100644 drivers/net/can/cast_can.c


base-commit: 98f7e32f20d28ec452afb208f9cffc08448a2652
-- 
2.43.2


^ permalink raw reply	[flat|nested] 19+ messages in thread
* RE: [PATCH v2 2/4] dt-bindings: can: Add CAST CAN Bus Controller
@ 2024-10-25  3:05 Hal Feng
  0 siblings, 0 replies; 19+ messages in thread
From: Hal Feng @ 2024-10-25  3:05 UTC (permalink / raw)
  To: Rob Herring
  Cc: Krzysztof Kozlowski, Conor Dooley, Marc Kleine-Budde,
	Vincent Mailhol, David S . Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Philipp Zabel, Palmer Dabbelt, Paul Walmsley,
	Albert Ou, Emil Renner Berthing, William Qiu,
	devicetree@vger.kernel.org, linux-can@vger.kernel.org,
	netdev@vger.kernel.org, linux-riscv@lists.infradead.org,
	linux-kernel@vger.kernel.org

> On 25.9.24 04:03, Rob Herring wrote:
> On Sun, Sep 22, 2024 at 10:51:48PM +0800, Hal Feng wrote:
> > From: William Qiu <william.qiu@starfivetech.com>
> >
> > Add bindings for CAST CAN Bus Controller.
> >
> > Signed-off-by: William Qiu <william.qiu@starfivetech.com>
> > Signed-off-by: Hal Feng <hal.feng@starfivetech.com>
> > ---
> >  .../bindings/net/can/cast,can-ctrl.yaml       | 106 ++++++++++++++++++
> >  1 file changed, 106 insertions(+)
> >  create mode 100644
> > Documentation/devicetree/bindings/net/can/cast,can-ctrl.yaml
> >
> > diff --git
> > a/Documentation/devicetree/bindings/net/can/cast,can-ctrl.yaml
> > b/Documentation/devicetree/bindings/net/can/cast,can-ctrl.yaml
> > new file mode 100644
> > index 000000000000..2870cff80164
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/net/can/cast,can-ctrl.yaml
> > @@ -0,0 +1,106 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/net/can/cast,can-ctrl.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: CAST CAN Bus Controller
> > +
> > +description:
> > +  This CAN Bus Controller, also called CAN-CTRL, implements a highly
> > +  featured and reliable CAN bus controller that performs serial
> > +  communication according to the CAN protocol.
> > +
> > +  The CAN-CTRL comes in three variants, they are CC, FD, and XL.
> > +  The CC variant supports only Classical CAN, the FD variant adds
> > + support  for CAN FD, and the XL variant supports the Classical CAN,
> > + CAN FD, and  CAN XL standards.
> > +
> > +maintainers:
> > +  - William Qiu <william.qiu@starfivetech.com>
> > +  - Hal Feng <hal.feng@starfivetech.com>
> > +
> > +properties:
> > +  compatible:
> > +    items:
> > +      - enum:
> > +        - starfive,jh7110-can
> > +      - const: cast,can-ctrl-fd-7x10N00S00
> 
> What's the 7x10...? Perhaps some explanation on it.

7x10N00S00 is the CAN IP product version.

> 
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  interrupts:
> > +    maxItems: 1
> > +
> > +  clocks:
> > +    minItems: 3
> > +
> > +  clock-names:
> > +    items:
> > +      - const: apb
> > +      - const: timer
> > +      - const: core
> > +
> > +  resets:
> > +    minItems: 3
> > +
> > +  reset-names:
> > +    items:
> > +      - const: apb
> > +      - const: timer
> > +      - const: core
> > +
> > +  starfive,syscon:
> > +    $ref: /schemas/types.yaml#/definitions/phandle-array
> > +    items:
> > +      - items:
> > +          - description: phandle to System Register Controller syscon node
> > +          - description: offset of SYS_SYSCONSAIF__SYSCFG register for CAN
> controller
> > +          - description: shift of SYS_SYSCONSAIF__SYSCFG register for CAN
> controller
> > +          - description: mask of SYS_SYSCONSAIF__SYSCFG register for CAN
> controller
> > +    description:
> > +      Should be four parameters, the phandle to System Register Controller
> > +      syscon node and the offset/shift/mask of SYS_SYSCONSAIF__SYSCFG
> register
> > +      for CAN controller.
> 
> This just repeats what the schema says. More useful would be what you need
> to access/control in this register.

OK, will improve the description here. Thanks.

Best regards,
Hal

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

end of thread, other threads:[~2024-10-28 15:29 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-22 14:51 [PATCH v2 0/4] CAST Controller Area Network driver support Hal Feng
2024-09-22 14:51 ` [PATCH v2 1/4] dt-bindings: vendor-prefixes: Add cast vendor prefix Hal Feng
2024-09-22 14:51 ` [PATCH v2 2/4] dt-bindings: can: Add CAST CAN Bus Controller Hal Feng
2024-09-24 18:01   ` Rob Herring (Arm)
2024-09-24 20:03   ` Rob Herring
2024-09-22 14:51 ` [PATCH v2 3/4] can: Add driver for " Hal Feng
2024-09-22 16:33   ` Andrew Lunn
2024-09-23  7:53     ` Hal Feng
2024-09-23 12:12       ` Andrew Lunn
2024-10-28 14:18       ` Marc Kleine-Budde
2024-09-22 21:13   ` Marc Kleine-Budde
2024-10-25  1:45     ` Hal Feng
2024-10-28 15:28       ` Marc Kleine-Budde
2024-09-23  3:41   ` Vincent MAILHOL
2024-10-15  9:30     ` Hal Feng
2024-10-16  5:05       ` Vincent MAILHOL
2024-10-16 14:16         ` Vincent MAILHOL
2024-09-22 14:51 ` [PATCH v2 4/4] riscv: dts: starfive: jh7110: Add CAN nodes Hal Feng
  -- strict thread matches above, loose matches on Subject: below --
2024-10-25  3:05 [PATCH v2 2/4] dt-bindings: can: Add CAST CAN Bus Controller Hal Feng

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).