Message ID | 1385014298-15700-3-git-send-email-lho@apm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thursday 21 November 2013, Loc Ho wrote: > +SATA host controller nodes are defined to describe on-chip Serial ATA > +controllers. Each SATA controller (pair of ports) have its own node. > + > +Required properties: > +- compatible : Shall be "apm,xgene-ahci" > +- reg : First memory resource shall be the AHCI memory > + resource. > + Second memory resource shall be the host controller > + memory resource. > +- interrupt-parent : Interrupt controller > +- interrupts : Interrupt mapping for SATA host controller IRQ > +- clocks : Reference to the clock entry > +- phys : PHY reference > +- phy-names : Name of the PHY reference. The name should be > + formed by "sataphy" plus lower case hex for the > + lower 32-bit PHY CSR address (2nd memory resource) I've tried to explain this before, but apparently you missed the point: Any "*-names" property is supposed to be the identifier inside the device you are describing, *not* an identifier for what it points to, as that already has a name. The idea is that the driver can ask for phy (or clock, irq, memory, etc) "foo" here, with foo identifying the functionality in the device. If you only have one phy, you probably don't want to name it at all. If you imagine a device that was connected to two different phys depending on the mode it's used in (e.g. SATA-II vs SATA-6G), you would list this as - phy-names : one name per references in the "phys" property. valid names are "sata-ii" and "sata-6g". If the generic phy subsystem requires you to name this, I'd suggest either changing the phy subsystem to make the name optional, or to just call it "serdes", as that is the kind of phy you are connected to. Does this make more sense to you now? Arnd
Hi, >> +SATA host controller nodes are defined to describe on-chip Serial ATA >> +controllers. Each SATA controller (pair of ports) have its own node. >> + >> +Required properties: >> +- compatible : Shall be "apm,xgene-ahci" >> +- reg : First memory resource shall be the AHCI memory >> + resource. >> + Second memory resource shall be the host controller >> + memory resource. >> +- interrupt-parent : Interrupt controller >> +- interrupts : Interrupt mapping for SATA host controller IRQ >> +- clocks : Reference to the clock entry >> +- phys : PHY reference >> +- phy-names : Name of the PHY reference. The name should be >> + formed by "sataphy" plus lower case hex for the >> + lower 32-bit PHY CSR address (2nd memory resource) > > I've tried to explain this before, but apparently you missed the point: > > Any "*-names" property is supposed to be the identifier inside the device you > are describing, *not* an identifier for what it points to, as that already > has a name. The idea is that the driver can ask for phy (or clock, irq, > memory, etc) "foo" here, with foo identifying the functionality in the > device. If you only have one phy, you probably don't want to name it at > all. If you imagine a device that was connected to two different phys > depending on the mode it's used in (e.g. SATA-II vs SATA-6G), you would > list this as > > - phy-names : one name per references in the "phys" property. > valid names are "sata-ii" and "sata-6g". > > If the generic phy subsystem requires you to name this, I'd suggest either > changing the phy subsystem to make the name optional, or to just call it > "serdes", as that is the kind of phy you are connected to. > > Does this make more sense to you now? > [Loc Ho] Okay... Got it. I will name it as 'sata-6g' -Loc
diff --git a/Documentation/devicetree/bindings/ata/apm-xgene.txt b/Documentation/devicetree/bindings/ata/apm-xgene.txt new file mode 100644 index 0000000..ec470b8 --- /dev/null +++ b/Documentation/devicetree/bindings/ata/apm-xgene.txt @@ -0,0 +1,56 @@ +* APM X-Gene 6.0 Gb/s SATA host controller nodes + +SATA host controller nodes are defined to describe on-chip Serial ATA +controllers. Each SATA controller (pair of ports) have its own node. + +Required properties: +- compatible : Shall be "apm,xgene-ahci" +- reg : First memory resource shall be the AHCI memory + resource. + Second memory resource shall be the host controller + memory resource. +- interrupt-parent : Interrupt controller +- interrupts : Interrupt mapping for SATA host controller IRQ +- clocks : Reference to the clock entry +- phys : PHY reference +- phy-names : Name of the PHY reference. The name should be + formed by "sataphy" plus lower case hex for the + lower 32-bit PHY CSR address (2nd memory resource) + +Optional properties: +- status : Shall be "ok" if enabled or "na" if disabled. + Default is "ok". + +Example: + sata0: sata@1a000000 { + compatible = "apm,xgene-ahci"; + reg = <0x0 0x1a000000 0x0 0x100000>, + <0x0 0x1f210000 0x0 0x10000>; + interrupt-parent = <&gic>; + interrupts = <0x0 0x86 0x4>; + status = "disabled"; + phys = <&sataphy0>; + phy-names = "sataphy1f210000"; + }; + + sata1: sata@1a400000 { + compatible = "apm,xgene-ahci"; + reg = <0x0 0x1a400000 0x0 0x100000>, + <0x0 0x1f220000 0x0 0x10000>; + interrupt-parent = <&gic>; + interrupts = <0x0 0x87 0x4>; + status = "ok"; + phys = <&sataphy1>; + phy-names = "sataphy1f220000"; + }; + + sata2: sata@1a800000 { + compatible = "apm,xgene-ahci"; + reg = <0x0 0x1a800000 0x0 0x100000>, + <0x0 0x1f230000 0x0 0x10000>; + interrupt-parent = <&gic>; + interrupts = <0x0 0x88 0x4>; + status = "ok"; + phys = <&sataphy2>; + phy-names = "sataphy1f230000"; + };