Message ID | 20191231172458.25984-1-linus.walleij@linaro.org |
---|---|
State | New |
Headers | show |
Series | [1/2] dt-bindings: Create DT bindings for [PS]ATA controllers | expand |
Hello! On 12/31/2019 08:24 PM, Linus Walleij wrote: > I need to create subnodes for drives connected to PATA > or SATA host controllers, and this needs to be supported > generally, so create a common YAML binding for > "pata-controller" or "sata-controller" that will support > subnodes with drives. > > Cc: Rob Herring <robh+dt@kernel.org> > Cc: devicetree@vger.kernel.org > Signed-off-by: Linus Walleij <linus.walleij@linaro.org> > --- > .../bindings/ata/pata-sata-common.yaml | 47 +++++++++++++++++++ > 1 file changed, 47 insertions(+) > create mode 100644 Documentation/devicetree/bindings/ata/pata-sata-common.yaml > > diff --git a/Documentation/devicetree/bindings/ata/pata-sata-common.yaml b/Documentation/devicetree/bindings/ata/pata-sata-common.yaml > new file mode 100644 > index 000000000000..d94aa20a29e3 > --- /dev/null > +++ b/Documentation/devicetree/bindings/ata/pata-sata-common.yaml > @@ -0,0 +1,47 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/ata/pata-sata-common.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Common Properties for Parallel and Serial AT attachment controllers > + > +maintainers: > + - Linus Walleij <linus.walleij@linaro.org> > + > +description: | > + This document defines device tree properties common to most Parallel > + (PATA) and Serial (SATA) AT attachment storage devices. It doesn't > + constitue a device tree binding specification by itself but is meant to > + be referenced by device tree bindings. > + > + The PATA/SATA controller device tree bindings are responsible for > + defining whether each property is required or optional. > + > +properties: > + $nodename: > + pattern: "^[ps]ata-controller(@.*)?$" I thought the DT spec has long ago standardized the node name as "ide" and "sata"? > + description: > + Specifies the host controller node. > + > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 [...] MBR, Sergei
On Tue, Dec 31, 2019 at 6:46 PM Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> wrote: > On 12/31/2019 08:24 PM, Linus Walleij wrote: > > +properties: > > + $nodename: > > + pattern: "^[ps]ata-controller(@.*)?$" > > I thought the DT spec has long ago standardized the node name as "ide" and "sata"? I'm not 100% sure (Rob can answer) but I have *half-guessed* that the process so far has been that when we define a schema for some generic node name we also invent some new generic node name like this, or else all the old DTS files people have will generate (lots of) errors. The DTS files can then opt in to the schema by simply renaming its nodes in accordance: "ide" -> "pata-controller", "sata" -> "sata-controller" (I have such a patch for the Gemini that I made this for.) If I'm wrong I'll switch to to ide@ and sata@. Rob? Yours, Linus Walleij
On Tue, Dec 31, 2019 at 10:56 AM Linus Walleij <linus.walleij@linaro.org> wrote: > > On Tue, Dec 31, 2019 at 6:46 PM Sergei Shtylyov > <sergei.shtylyov@cogentembedded.com> wrote: > > On 12/31/2019 08:24 PM, Linus Walleij wrote: > > > > +properties: > > > + $nodename: > > > + pattern: "^[ps]ata-controller(@.*)?$" > > > > I thought the DT spec has long ago standardized the node name as "ide" and "sata"? Correct. > I'm not 100% sure (Rob can answer) but I have *half-guessed* that the process > so far has been that when we define a schema for some generic node name > we also invent some new generic node name like this, or else all the old DTS > files people have will generate (lots of) errors. The list of generic node names is a lot longer than what we have schema for currently. > The DTS files can then opt in to the schema by simply renaming its nodes > in accordance: "ide" -> "pata-controller", "sata" -> "sata-controller" > (I have such a patch for the Gemini that I made this for.) > > If I'm wrong I'll switch to to ide@ and sata@. > > Rob? > > Yours, > Linus Walleij
On Tue, Dec 31, 2019 at 10:25 AM Linus Walleij <linus.walleij@linaro.org> wrote: > > I need to create subnodes for drives connected to PATA > or SATA host controllers, and this needs to be supported > generally, so create a common YAML binding for > "pata-controller" or "sata-controller" that will support > subnodes with drives. > > Cc: Rob Herring <robh+dt@kernel.org> > Cc: devicetree@vger.kernel.org > Signed-off-by: Linus Walleij <linus.walleij@linaro.org> > --- > .../bindings/ata/pata-sata-common.yaml | 47 +++++++++++++++++++ > 1 file changed, 47 insertions(+) > create mode 100644 Documentation/devicetree/bindings/ata/pata-sata-common.yaml > > diff --git a/Documentation/devicetree/bindings/ata/pata-sata-common.yaml b/Documentation/devicetree/bindings/ata/pata-sata-common.yaml > new file mode 100644 > index 000000000000..d94aa20a29e3 > --- /dev/null > +++ b/Documentation/devicetree/bindings/ata/pata-sata-common.yaml > @@ -0,0 +1,47 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/ata/pata-sata-common.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Common Properties for Parallel and Serial AT attachment controllers > + > +maintainers: > + - Linus Walleij <linus.walleij@linaro.org> > + > +description: | > + This document defines device tree properties common to most Parallel > + (PATA) and Serial (SATA) AT attachment storage devices. It doesn't > + constitue a device tree binding specification by itself but is meant to > + be referenced by device tree bindings. > + > + The PATA/SATA controller device tree bindings are responsible for > + defining whether each property is required or optional. > + > +properties: > + $nodename: > + pattern: "^[ps]ata-controller(@.*)?$" > + description: > + Specifies the host controller node. > + > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 > + > +patternProperties: > + "^drive@[0-1]$": > + description: | > + DT nodes for drives connected on the PATA or SATA host. The master drive > + will have ID number 0 and the slave drive will have ID number 1. > + type: object See ata/ahci-platform.txt. We already have child nodes defined as ports which is essentially a drive (though IIRC SATA can have a mux). Arguably, we could have both ports and then a drive child under that, but I've never seen a case of a drive needing DT properties (that would imply a non-standard connector). So either split this into separate IDE/PATA and SATA schemas or extend this to work with SATA ports. Also, you might consider if you need a regulator property for IDE. > + > + properties: > + reg: > + minimum: 0 > + maximum: 1 > + description: > + The ID number of the drive, 0 for the master and 1 for the slave. Why do you need to describe the drives in DT for IDE? They are discoverable, right? And unlike SATA, the power to master and slave is shared. Rob
diff --git a/Documentation/devicetree/bindings/ata/pata-sata-common.yaml b/Documentation/devicetree/bindings/ata/pata-sata-common.yaml new file mode 100644 index 000000000000..d94aa20a29e3 --- /dev/null +++ b/Documentation/devicetree/bindings/ata/pata-sata-common.yaml @@ -0,0 +1,47 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/ata/pata-sata-common.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Common Properties for Parallel and Serial AT attachment controllers + +maintainers: + - Linus Walleij <linus.walleij@linaro.org> + +description: | + This document defines device tree properties common to most Parallel + (PATA) and Serial (SATA) AT attachment storage devices. It doesn't + constitue a device tree binding specification by itself but is meant to + be referenced by device tree bindings. + + The PATA/SATA controller device tree bindings are responsible for + defining whether each property is required or optional. + +properties: + $nodename: + pattern: "^[ps]ata-controller(@.*)?$" + description: + Specifies the host controller node. + + "#address-cells": + const: 1 + + "#size-cells": + const: 0 + +patternProperties: + "^drive@[0-1]$": + description: | + DT nodes for drives connected on the PATA or SATA host. The master drive + will have ID number 0 and the slave drive will have ID number 1. + type: object + + properties: + reg: + minimum: 0 + maximum: 1 + description: + The ID number of the drive, 0 for the master and 1 for the slave. + +...
I need to create subnodes for drives connected to PATA or SATA host controllers, and this needs to be supported generally, so create a common YAML binding for "pata-controller" or "sata-controller" that will support subnodes with drives. Cc: Rob Herring <robh+dt@kernel.org> Cc: devicetree@vger.kernel.org Signed-off-by: Linus Walleij <linus.walleij@linaro.org> --- .../bindings/ata/pata-sata-common.yaml | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 Documentation/devicetree/bindings/ata/pata-sata-common.yaml -- 2.21.0