The 'ata-generic' binding has been around since 2008, but never
documented.
Cc: Alexander Shiyan <[email protected]>
Signed-off-by: Rob Herring <[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
diff --git a/Documentation/devicetree/bindings/ata/ata-generic.yaml b/Documentation/devicetree/bindings/ata/ata-generic.yaml
new file mode 100644
index 000000000000..0697927f3d7e
--- /dev/null
+++ b/Documentation/devicetree/bindings/ata/ata-generic.yaml
@@ -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>;
+ };
+...
--
2.35.1
On 10/11/22 22:58, Rob Herring wrote:
> The 'ata-generic' binding has been around since 2008, but never
> documented.
>
> Cc: Alexander Shiyan <[email protected]>
> Signed-off-by: Rob Herring <[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?
If Linus reply is positive, feel free to add:
Acked-by: Damien Le Moal <[email protected]>
I can take this one through the libata tree also if you prefer.
>
> ---
> .../devicetree/bindings/ata/ata-generic.yaml | 58 +++++++++++++++++++
> 1 file changed, 58 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/ata/ata-generic.yaml
>
> diff --git a/Documentation/devicetree/bindings/ata/ata-generic.yaml b/Documentation/devicetree/bindings/ata/ata-generic.yaml
> new file mode 100644
> index 000000000000..0697927f3d7e
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/ata/ata-generic.yaml
> @@ -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>;
> + };
> +...
--
Damien Le Moal
Western Digital Research
On Tue, Oct 11, 2022 at 4:00 PM Rob Herring <[email protected]> wrote:
> The 'ata-generic' binding has been around since 2008, but never
> documented.
>
> Cc: Alexander Shiyan <[email protected]>
> Signed-off-by: Rob Herring <[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?
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
On Tue, 11 Oct 2022 08:58:50 -0500, Rob Herring wrote:
> The 'ata-generic' binding has been around since 2008, but never
> documented.
>
> Cc: Alexander Shiyan <[email protected]>
> Signed-off-by: Rob Herring <[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
>
Applied, thanks!