2022-10-11 14:13:52

by Rob Herring (Arm)

[permalink] [raw]
Subject: [PATCH] dt-bindings: ata: Add 'ata-generic' binding

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


2022-10-17 03:23:22

by Damien Le Moal

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: ata: Add 'ata-generic' binding

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

2022-10-17 10:52:49

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: ata: Add 'ata-generic' binding

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

2022-10-21 22:03:57

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: ata: Add 'ata-generic' binding

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!