Skip to contentSkip to conversation

dt-bindings: ata: Add 'ata-generic' binding

PATCH Applied Rob Herring 3 participants 4 messages Oct 11, 2022 – Oct 21, 2022

Subsystems (2)
lore
Share & tools
lore

Rob Herring

author maintainer
#0 lore raw

PATCH 1/1 dt-bindings: ata: Add 'ata-generic' binding

The 'ata-generic' binding has been around since 2008, but never documented.

Cc Alexander Shiyan <[email protected]>

---
AFAICT, the ata-generic,use16bit property has no effect in Linux. The 32-bit transfers fallback to 16-bit if ATA_PFLAG_PIO32 flag is not set which it doesn't appear to ever be set. Looking at the history, the driver always used 16-bit mode.

Linus, Okay with being maintainer here?

---
 .../devicetree/bindings/ata/ata-generic.yaml  | 58 +++++++++++++++++++
 1 file changed, 58 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/ata/ata-generic.yaml
Documentation/devicetree/bindings/ata/ata-generic.yaml new file +58 -0
new file mode 100644
index 000000000000..0697927f3d7e
@@ -0,0 +1,58 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/ata/ata-generic.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Generic Parallel ATA Controller
+
+maintainers:
+  - Linus Walleij <[email protected]>
+
+description:
+  Generic Parallel ATA controllers supporting PIO modes only.
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - arm,vexpress-cf
+          - fsl,mpc8349emitx-pata
+      - const: ata-generic
+
+  reg:
+    items:
+      - description: Command interface registers
+      - description: Control interface registers
+
+  reg-shift:
+    enum: [ 1, 2 ]
+
+  interrupts:
+    maxItems: 1
+
+  ata-generic,use16bit:
+    type: boolean
+    description: Use 16-bit accesses instead of 32-bit for data transfers
+
+  pio-mode:
+    description: Maximum ATA PIO transfer mode
+    $ref: /schemas/types.yaml#/definitions/uint32
+    maximum: 6
+    default: 0
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    compact-flash@1a000 {
+        compatible = "arm,vexpress-cf", "ata-generic";
+        reg = <0x1a000 0x100>,
+              <0x1a100 0xf00>;
+        reg-shift = <2>;
+    };
+...
Signature · 1 line
2.35.1
Acked-by on v1 1/1
#1 lore raw
Quoted 5 lines · Rob Herring

The 'ata-generic' binding has been around since 2008, but never documented.

Cc Alexander Shiyan <[email protected]>
Quoted 7 lines

---
AFAICT, the ata-generic,use16bit property has no effect in Linux. The 32-bit transfers fallback to 16-bit if ATA_PFLAG_PIO32 flag is not set which it doesn't appear to ever be set. Looking at the history, the driver always used 16-bit mode.

Linus, Okay with being maintainer here?

If Linus reply is positive, feel free to add:

I can take this one through the libata tree also if you prefer.

Quoted 70 lines
---
 .../devicetree/bindings/ata/ata-generic.yaml  | 58 +++++++++++++++++++
 1 file changed, 58 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/ata/ata-generic.yaml
Documentation/devicetree/bindings/ata/ata-generic.yaml new file +58 -0
new file mode 100644
index 000000000000..0697927f3d7e
@@ -0,0 +1,58 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/ata/ata-generic.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Generic Parallel ATA Controller
+
+maintainers:
+  - Linus Walleij <[email protected]>
+
+description:
+  Generic Parallel ATA controllers supporting PIO modes only.
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - arm,vexpress-cf
+          - fsl,mpc8349emitx-pata
+      - const: ata-generic
+
+  reg:
+    items:
+      - description: Command interface registers
+      - description: Control interface registers
+
+  reg-shift:
+    enum: [ 1, 2 ]
+
+  interrupts:
+    maxItems: 1
+
+  ata-generic,use16bit:
+    type: boolean
+    description: Use 16-bit accesses instead of 32-bit for data transfers
+
+  pio-mode:
+    description: Maximum ATA PIO transfer mode
+    $ref: /schemas/types.yaml#/definitions/uint32
+    maximum: 6
+    default: 0
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    compact-flash@1a000 {
+        compatible = "arm,vexpress-cf", "ata-generic";
+        reg = <0x1a000 0x100>,
+              <0x1a100 0xf00>;
+        reg-shift = <2>;
+    };
+...
Signature · 2 lines
Damien Le Moal
Western Digital Research
#2 lore raw
In reply to Rob Herring
Quoted 5 lines · Rob Herring

The 'ata-generic' binding has been around since 2008, but never documented.

Cc Alexander Shiyan <[email protected]>
Quoted 7 lines

---
AFAICT, the ata-generic,use16bit property has no effect in Linux. The 32-bit transfers fallback to 16-bit if ATA_PFLAG_PIO32 flag is not set which it doesn't appear to ever be set. Looking at the history, the driver always used 16-bit mode.

Linus, Okay with being maintainer here?

Yeah one more or less :)
But ATA was never my strong card. What about Sergey Semin? He surely seems to be on top of ATA stuff. Or add us both.

Yours,
Linus Walleij

author maintainer Applied
#3 lore raw
In reply to Rob Herring
Quoted 11 lines · Rob Herring

The 'ata-generic' binding has been around since 2008, but never documented.

Cc Alexander Shiyan <[email protected]>

---
AFAICT, the ata-generic,use16bit property has no effect in Linux. The 32-bit transfers fallback to 16-bit if ATA_PFLAG_PIO32 flag is not set which it doesn't appear to ever be set. Looking at the history, the driver always used 16-bit mode.

Quoted 7 lines

Linus, Okay with being maintainer here?

---
 .../devicetree/bindings/ata/ata-generic.yaml  | 58 +++++++++++++++++++
 1 file changed, 58 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/ata/ata-generic.yaml

Applied, thanks!