On 01/10/2020 11:17 AM, Linus Walleij wrote: > I need to create subnodes for drives connected to SATA > host controllers, and this needs to be supported > generally, so create a common YAML binding for > "sata" that will support subnodes with ports. > > This has been designed as a subset of > ata/ahci-platform.txt with the bare essentials and > should be possible to extend or superset to cover the > common bindings. > > Cc: Rob Herring <robh+dt@xxxxxxxxxx> > Cc: devicetree@xxxxxxxxxxxxxxx > Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> > --- > ChangeLog v2->v3: > - Split off into its own RFC patch > - Only support sata-port@ in this binding > - Opt to support devices 0..14 on the sata-port in > line with ahci-platforn.txt not modeling the port > multiplier in the device tree at all. > ChangeLog v1->v2: > - Use ide@ and sata@ as node names. > - Use ide-port@ and sata-port@ for the ports toward the > drives, rather than letting the subnodes be the drives > themselves. > --- > .../devicetree/bindings/ata/sata-common.yaml | 51 +++++++++++++++++++ > 1 file changed, 51 insertions(+) > create mode 100644 Documentation/devicetree/bindings/ata/sata-common.yaml > > diff --git a/Documentation/devicetree/bindings/ata/sata-common.yaml b/Documentation/devicetree/bindings/ata/sata-common.yaml > new file mode 100644 > index 000000000000..9f6718a69dfd > --- /dev/null > +++ b/Documentation/devicetree/bindings/ata/sata-common.yaml > @@ -0,0 +1,51 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/ata/sata-common.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Common Properties for Serial AT attachment (SATA) controllers > + > +maintainers: > + - Linus Walleij <linus.walleij@xxxxxxxxxx> > + > +description: | > + This document defines device tree properties common to most Serial > + AT attachment (SATA) storage devices. It doesn't constitue a device tree > + binding specification by itself but is meant to be referenced by device > + tree bindings. > + > + The SATA controller-specific device tree bindings are responsible for > + defining whether each property is required or optional. > + > +properties: > + $nodename: > + pattern: "^sata(@.*)?$" > + description: > + Specifies the host controller node. SATA host controller nodes are named > + "sata" > + > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 > + > +patternProperties: > + "^sata-port@[0-1]$": > + description: | > + DT nodes for ports connected on the SATA host. The master drive will have > + ID number 0 and the slave drive will have ID number 1. The SATA port Mhm... SATA doesn't have master/slave drives, there's only 1 drive pert port, IIRC. > + nodes will be named "sata-port". > + type: object > + > + properties: > + reg: > + minimum: 0 > + maximum: 14 > + description: > + The ID number of the drive port SATA can potentially use a port > + multiplier making it possible to connect up to 15 disks to a single > + SATA port. > + > +... MBR, Sergei