diff mbox

[v4,2/4] Documentation:: Add documentation for APM X-Gene SoC SATA host controller DTS binding

Message ID 1385014298-15700-3-git-send-email-lho@apm.com
State Not Applicable
Delegated to: David Miller
Headers show

Commit Message

Loc Ho Nov. 21, 2013, 6:11 a.m. UTC
Documentation:: Add documentation for APM X-Gene SoC SATA host controller DTS binding

Signed-off-by: Loc Ho <lho@apm.com>
Signed-off-by: Tuan Phan <tphan@apm.com>
Signed-off-by: Suman Tripathi <stripathi@apm.com>
---
 .../devicetree/bindings/ata/apm-xgene.txt          |   56 ++++++++++++++++++++
 1 files changed, 56 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/ata/apm-xgene.txt

Comments

Arnd Bergmann Nov. 21, 2013, 12:16 p.m. UTC | #1
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
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Loc Ho Nov. 21, 2013, 5:49 p.m. UTC | #2
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
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

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";
+		};