Re: [RFC PATCH] dt-bindings: can: convert tcan4x5x.txt to DT schema

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Nov 04, 2024 at 10:27:04AM +0100, Krzysztof Kozlowski wrote:
> On 04/11/2024 09:56, Sean Nyekjaer wrote:
> > Convert binding doc tcan4x5x.txt to yaml.
> > 
> > Signed-off-by: Sean Nyekjaer <sean@xxxxxxxxxx>
> > ---
> > 
> > Can we somehow reference bosch,mram-cfg from the bosch,m_can.yaml?
> > I have searched for yaml files that tries the same, but it's usually
> > includes a whole node.
> > 
> > I have also tried:
> > $ref: /schema/bosch,m_can.yaml#/properties/bosch,mram-cfg
> 
> Yes, this would work just with full path, so /schemas/net/can/...
> 
> See:
> Documentation/devicetree/bindings/pinctrl/starfive,jh7100-pinctrl.yaml
> 
> But you can also just copy it. Ideally this should be moved to common
> schema or replaced with more generic property, but these do not have to
>be part of this conversion.


diff --git a/Documentation/devicetree/bindings/net/can/ti,tcan4x5x.yaml b/Documentation/devicetree/bindings/net/can/ti,tcan4x5x.yaml
index 9ff52b8b3063..0fc37b10e899 100644
--- a/Documentation/devicetree/bindings/net/can/ti,tcan4x5x.yaml
+++ b/Documentation/devicetree/bindings/net/can/ti,tcan4x5x.yaml
@@ -50,7 +50,7 @@ properties:
     maxItems: 1

   bosch,mram-cfg:
-    $ref: bosch,m_can.yaml#
+    $ref: /schemas/net/can/bosch,m_can.yaml#/properties/bosch,mram-cfg

   spi-max-frequency:
     description:

Still results in:
% make dt_binding_check DT_SCHEMA_FILES=ti,tcan4x5x.yaml
  SCHEMA  Documentation/devicetree/bindings/processed-schema.json
  CHKDT   Documentation/devicetree/bindings
Documentation/devicetree/bindings/net/can/ti,tcan4x5x.yaml: properties:bosch,mram-cfg: 'anyOf' conditional failed, one must be fixed:
        'description' is a dependency of '$ref'
        '/schemas/net/can/bosch,m_can.yaml#/properties/bosch,mram-cfg' does not match 'types.yaml#/definitions/'
                hint: A vendor property needs a $ref to types.yaml
        '/schemas/net/can/bosch,m_can.yaml#/properties/bosch,mram-cfg' does not match '^#/(definitions|\\$defs)/'
                hint: A vendor property can have a $ref to a a $defs schema
        hint: Vendor specific properties must have a type and description unless they have a defined, common suffix.
        from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#

> 
> > 
> > Any hints to share a property?
> > 
> >  .../devicetree/bindings/net/can/tcan4x5x.txt  | 48 ---------
> >  .../bindings/net/can/ti,tcan4x5x.yaml         | 97 +++++++++++++++++++
> >  2 files changed, 97 insertions(+), 48 deletions(-)
> >  delete mode 100644 Documentation/devicetree/bindings/net/can/tcan4x5x.txt
> >  create mode 100644 Documentation/devicetree/bindings/net/can/ti,tcan4x5x.yaml
> > 
> 
> ...
> 
> > diff --git a/Documentation/devicetree/bindings/net/can/ti,tcan4x5x.yaml b/Documentation/devicetree/bindings/net/can/ti,tcan4x5x.yaml
> > new file mode 100644
> > index 000000000000..62c108fac6b3
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/net/can/ti,tcan4x5x.yaml
> > @@ -0,0 +1,97 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/net/can/ti,tcan4x5x.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Texas Instruments TCAN4x5x CAN Controller
> > +
> > +maintainers:
> > +  - Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx>
> > +
> > +allOf:
> > +  - $ref: can-controller.yaml#
> > +
> > +properties:
> > +  compatible:
> > +    oneOf:
> > +      - enum:
> > +          - ti,tcan4552
> > +          - ti,tcan4553
> > +          - ti,tcan4x5x
> 
> That's not really what old binding said.
> 
> It said for example:
> "ti,tcan4552", "ti,tcan4x5x"
> 
> Which is not allowed above. You need list. Considering there are no
> in-tree users of ti,tcan4x5x alone, I would allow only lists followed by
> ti,tcan4x5x. IOW: disallow ti,tcan4x5x alone.
> 
> Mention this change to the binding in the commit message.
> 
> 

I would prefer to not change anything other that doing the conversion to
DT schema.

> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  interrupts:
> > +    maxItems: 1
> > +
> > +  clocks:
> > +    maxItems: 1
> > +
> > +  vdd-supply:
> > +    description: Regulator that powers the CAN controller.
> > +
> > +  xceiver-supply:
> > +    description: Regulator that powers the CAN transceiver.
> 
> You need to mention all changes done to the binding in the commit msg.
> 
Is this a change? It existed in the old doc aswell...

> > +
> > +  reset-gpios:
> > +    description: Hardwired output GPIO. If not defined then software reset.
> > +    maxItems: 1
> > +
> > +  device-state-gpios:
> > +    description: Input GPIO that indicates if the device is in a sleep state or if the device is active.
> > +      Not available with tcan4552/4553.
> > +    maxItems: 1
> > +
> > +  device-wake-gpios:
> > +    description: Wake up GPIO to wake up the TCAN device. Not available with tcan4552/4553.
> > +    maxItems: 1
> > +
> > +  bosch,mram-cfg:
> > +    $ref: bosch,m_can.yaml#
> > +
> > +  spi-max-frequency:
> > +    description:
> > +      Must be half or less of "clocks" frequency.
> > +    maximum: 10000000
> 
> Old binding said 18 MHz?
> 

Good catch.

> > +
> > +  wakeup-source:
> > +    $ref: /schemas/types.yaml#/definitions/flag
> > +    description:
> > +      Enable CAN remote wakeup.
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +  - interrupts
> > +  - clocks
> > +  - bosch,mram-cfg
> > +
> 
> Missing allOf: with $ref to spi-peripheral-props. See other SPI devices.
> 
> 

Added for v2.

> > +additionalProperties: false
> 
> And this becomes unevaluatedProperties: false
> 
> Best regards,
> Krzysztof
> 

Added for v2.

Br,
/Sean




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux