2022-02-21 16:44:53

by Daniel Kestrel

[permalink] [raw]
Subject: [PATCH 2/3] dt-bindings: remoteproc: Add AVM WASP

AVM Fritzbox router boards may contain an additional ATH79
based SoC that has the wifi cards connected.
This patch adds bindings for this remote processor.

Signed-off-by: Daniel Kestrel <[email protected]>
---
.../bindings/remoteproc/avm,wasp-rproc.yaml | 93 +++++++++++++++++++
1 file changed, 93 insertions(+)
create mode 100644 Documentation/devicetree/bindings/remoteproc/avm,wasp-rproc.yaml

diff --git a/Documentation/devicetree/bindings/remoteproc/avm,wasp-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/avm,wasp-rproc.yaml
new file mode 100644
index 000000000000..21f3bbcc4202
--- /dev/null
+++ b/Documentation/devicetree/bindings/remoteproc/avm,wasp-rproc.yaml
@@ -0,0 +1,93 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/remoteproc/avm,wasp-rproc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: AVM WASP processor controller bindings
+
+maintainers:
+ - Daniel Kestrel <[email protected]>
+
+description: |
+ This document defines the bindings for the remoteproc component that loads and
+ boots firmwares on the AVM Wireless Assistent Support Processor (WASP) SoC
+ that is attached to some AVM Fritzbox devices (3390, 3490, 5490, 5491, 7490).
+
+properties:
+ compatible:
+ const: avm,wasp
+
+ ath9k-firmware:
+ $ref: /schemas/types.yaml#/definitions/string
+ description: |
+ Should contain the name of the ath9k eeprom that is to be loaded from
+ the lantiq host flash. Wifi on the WASP SoC does not work without it.
+ The file should be located on the firmware search path.
+
+ ath10k-caldata:
+ $ref: /schemas/types.yaml#/definitions/string
+ description: |
+ Should contain the name of the ath10k caldata that is to be loaded from
+ the lantiq host flash. Wifi on the WASP SoC does not work without it.
+ The file should be located on the firmware search path.
+
+ wasp-netboot-firmware:
+ $ref: /schemas/types.yaml#/definitions/string
+ description: |
+ Should contain the name of the netboot firmware that is to be loaded
+ and started on the WASP SoC using mdio in order to be able to load
+ the initramfs image as a second stage.
+ The file should be located on the firmware search path.
+
+ wasp-netboot-mdio:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description: Reference to the Lantiq GSWIP switch mdio.
+
+ wasp-initramfs-port:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description: Reference to the network port, where the WASP SoC is connected to.
+
+ wasp-initramfs-image:
+ $ref: /schemas/types.yaml#/definitions/string
+ description: |
+ Should contain the name of the initramfs linux image that is to be loaded
+ and started on the WASP SoC.
+ The file should be located on the firmware search path.
+
+ reset-gpio:
+ $ref: /schemas/types.yaml#/definitions/phandle-array
+ description: Reference and parameters for the reset gpio of the WASP SoC.
+
+ startup-gpio:
+ $ref: /schemas/types.yaml#/definitions/phandle-array
+ description: Reference and parameters for the power switch gpio of the WASP SoC.
+
+required:
+ - compatible
+ - ath9k-firmware
+ - ath10k-caldata
+ - wasp-netboot-firmware
+ - wasp-netboot-mdio
+ - wasp-initramfs-port
+ - wasp-initramfs-image
+ - reset-gpio
+ - startup-gpio
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+
+ avm-wasp {
+ compatible = "avm,wasp";
+ ath9k-firmware = "ath9k-eeprom-ahb-18100000.wmac.bin";
+ ath10k-caldata = "ath10k/cal-pci-0000:00:00.0.bin";
+ wasp-netboot-firmware = "netboot.fw";
+ wasp-netboot-mdio = <&gswip_mdio>;
+ wasp-initramfs-port = <&port5>;
+ wasp-initramfs-image = "avm_fritzx490-wasp-initramfs-kernel.bin";
+ reset-gpio = <&gpio 34 GPIO_ACTIVE_HIGH>;
+ startup-gpio = <&gpio 5 GPIO_ACTIVE_HIGH>;
+ };
--
2.17.1


2022-02-21 18:12:49

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 2/3] dt-bindings: remoteproc: Add AVM WASP

On 21/02/2022 14:53, Daniel Kestrel wrote:
> AVM Fritzbox router boards may contain an additional ATH79
> based SoC that has the wifi cards connected.
> This patch adds bindings for this remote processor.
>
> Signed-off-by: Daniel Kestrel <[email protected]>
> ---
> .../bindings/remoteproc/avm,wasp-rproc.yaml | 93 +++++++++++++++++++
> 1 file changed, 93 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/remoteproc/avm,wasp-rproc.yaml
>
> diff --git a/Documentation/devicetree/bindings/remoteproc/avm,wasp-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/avm,wasp-rproc.yaml
> new file mode 100644
> index 000000000000..21f3bbcc4202
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/remoteproc/avm,wasp-rproc.yaml
> @@ -0,0 +1,93 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/remoteproc/avm,wasp-rproc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: AVM WASP processor controller bindings
> +
> +maintainers:
> + - Daniel Kestrel <[email protected]>
> +
> +description: |
> + This document defines the bindings for the remoteproc component that loads and
> + boots firmwares on the AVM Wireless Assistent Support Processor (WASP) SoC
> + that is attached to some AVM Fritzbox devices (3390, 3490, 5490, 5491, 7490).
> +
> +properties:
> + compatible:
> + const: avm,wasp
> +
> + ath9k-firmware:
> + $ref: /schemas/types.yaml#/definitions/string
> + description: |
> + Should contain the name of the ath9k eeprom that is to be loaded from
> + the lantiq host flash. Wifi on the WASP SoC does not work without it.
> + The file should be located on the firmware search path.

Are you sure this is a property of hardware? It looks like runtime
configuration parameter.

> +
> + ath10k-caldata:
> + $ref: /schemas/types.yaml#/definitions/string
> + description: |
> + Should contain the name of the ath10k caldata that is to be loaded from
> + the lantiq host flash. Wifi on the WASP SoC does not work without it.
> + The file should be located on the firmware search path.

Same.

> +
> + wasp-netboot-firmware:
> + $ref: /schemas/types.yaml#/definitions/string
> + description: |
> + Should contain the name of the netboot firmware that is to be loaded
> + and started on the WASP SoC using mdio in order to be able to load
> + the initramfs image as a second stage.
> + The file should be located on the firmware search path.

Same.

> +
> + wasp-netboot-mdio:
> + $ref: /schemas/types.yaml#/definitions/phandle
> + description: Reference to the Lantiq GSWIP switch mdio.

Vendor prefix.

> +
> + wasp-initramfs-port:
> + $ref: /schemas/types.yaml#/definitions/phandle
> + description: Reference to the network port, where the WASP SoC is connected to.

Vendor prefix.

> +
> + wasp-initramfs-image:
> + $ref: /schemas/types.yaml#/definitions/string
> + description: |
> + Should contain the name of the initramfs linux image that is to be loaded
> + and started on the WASP SoC.
> + The file should be located on the firmware search path.

initramfs path looks even less like a property of hardware... If you
change initramfs from CPIO to initrd or GZ, hardware changes as well?

> + reset-gpio:
> + $ref: /schemas/types.yaml#/definitions/phandle-array
> + description: Reference and parameters for the reset gpio of the WASP SoC.

Wrong suffix, unneeded type. Did you run dt_binding_check?

"Reference and parameters" are obvious, so they should be skipped.

> +
> + startup-gpio:
> + $ref: /schemas/types.yaml#/definitions/phandle-array
> + description: Reference and parameters for the power switch gpio of the WASP SoC.

Same.

> +
> +required:
> + - compatible
> + - ath9k-firmware
> + - ath10k-caldata
> + - wasp-netboot-firmware
> + - wasp-netboot-mdio
> + - wasp-initramfs-port
> + - wasp-initramfs-image
> + - reset-gpio
> + - startup-gpio
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> +
> + avm-wasp {

Generic node name describing class of a device. AVM is company, WASP is
product, so neither of them are generic.


Best regards,
Krzysztof

2022-02-22 15:52:23

by Daniel Kestrel

[permalink] [raw]
Subject: Re: [PATCH 2/3] dt-bindings: remoteproc: Add AVM WASP

Am Mo., 21. Feb. 2022 um 17:47 Uhr schrieb Krzysztof Kozlowski
<[email protected]>:
>
> On 21/02/2022 14:53, Daniel Kestrel wrote:
> > AVM Fritzbox router boards may contain an additional ATH79
> > based SoC that has the wifi cards connected.
> > This patch adds bindings for this remote processor.
> >
> > Signed-off-by: Daniel Kestrel <[email protected]>
> > ---
> > .../bindings/remoteproc/avm,wasp-rproc.yaml | 93 +++++++++++++++++++
> > 1 file changed, 93 insertions(+)
> > create mode 100644 Documentation/devicetree/bindings/remoteproc/avm,wasp-rproc.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/remoteproc/avm,wasp-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/avm,wasp-rproc.yaml
> > new file mode 100644
> > index 000000000000..21f3bbcc4202
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/remoteproc/avm,wasp-rproc.yaml
> > @@ -0,0 +1,93 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/remoteproc/avm,wasp-rproc.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: AVM WASP processor controller bindings
> > +
> > +maintainers:
> > + - Daniel Kestrel <[email protected]>
> > +
> > +description: |
> > + This document defines the bindings for the remoteproc component that loads and
> > + boots firmwares on the AVM Wireless Assistent Support Processor (WASP) SoC
> > + that is attached to some AVM Fritzbox devices (3390, 3490, 5490, 5491, 7490).
> > +
> > +properties:
> > + compatible:
> > + const: avm,wasp
> > +
> > + ath9k-firmware:
> > + $ref: /schemas/types.yaml#/definitions/string
> > + description: |
> > + Should contain the name of the ath9k eeprom that is to be loaded from
> > + the lantiq host flash. Wifi on the WASP SoC does not work without it.
> > + The file should be located on the firmware search path.
>
> Are you sure this is a property of hardware? It looks like runtime
> configuration parameter.
>
> > +
> > + ath10k-caldata:
> > + $ref: /schemas/types.yaml#/definitions/string
> > + description: |
> > + Should contain the name of the ath10k caldata that is to be loaded from
> > + the lantiq host flash. Wifi on the WASP SoC does not work without it.
> > + The file should be located on the firmware search path.
>
> Same.
>
> > +
> > + wasp-netboot-firmware:
> > + $ref: /schemas/types.yaml#/definitions/string
> > + description: |
> > + Should contain the name of the netboot firmware that is to be loaded
> > + and started on the WASP SoC using mdio in order to be able to load
> > + the initramfs image as a second stage.
> > + The file should be located on the firmware search path.
>
> Same.
>
> > +
> > + wasp-netboot-mdio:
> > + $ref: /schemas/types.yaml#/definitions/phandle
> > + description: Reference to the Lantiq GSWIP switch mdio.
>
> Vendor prefix.
>
> > +
> > + wasp-initramfs-port:
> > + $ref: /schemas/types.yaml#/definitions/phandle
> > + description: Reference to the network port, where the WASP SoC is connected to.
>
> Vendor prefix.
>
> > +
> > + wasp-initramfs-image:
> > + $ref: /schemas/types.yaml#/definitions/string
> > + description: |
> > + Should contain the name of the initramfs linux image that is to be loaded
> > + and started on the WASP SoC.
> > + The file should be located on the firmware search path.
>
> initramfs path looks even less like a property of hardware... If you
> change initramfs from CPIO to initrd or GZ, hardware changes as well?
>
> > + reset-gpio:
> > + $ref: /schemas/types.yaml#/definitions/phandle-array
> > + description: Reference and parameters for the reset gpio of the WASP SoC.
>
> Wrong suffix, unneeded type. Did you run dt_binding_check?

Hi Krzystof,

Sorry for missing the dt_binding_check.
I have switched to use devm_gpiod_get and it does not work if the
suffix is not -gpio
or -gpios (see of_find_gpio method).
Would avm,reset-gpio be ok to use here?

Thanks.
>
> "Reference and parameters" are obvious, so they should be skipped.
>
> > +
> > + startup-gpio:
> > + $ref: /schemas/types.yaml#/definitions/phandle-array
> > + description: Reference and parameters for the power switch gpio of the WASP SoC.
>
> Same.
Is avm,startup-gpio ok, like above?
>
> > +
> > +required:
> > + - compatible
> > + - ath9k-firmware
> > + - ath10k-caldata
> > + - wasp-netboot-firmware
> > + - wasp-netboot-mdio
> > + - wasp-initramfs-port
> > + - wasp-initramfs-image
> > + - reset-gpio
> > + - startup-gpio
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > + - |
> > + #include <dt-bindings/gpio/gpio.h>
> > +
> > + avm-wasp {
>
> Generic node name describing class of a device. AVM is company, WASP is
> product, so neither of them are generic.
>
>
> Best regards,
> Krzysztof

2022-02-23 12:20:46

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 2/3] dt-bindings: remoteproc: Add AVM WASP

On 22/02/2022 16:27, Kestrel seventyfour wrote:
> Am Mo., 21. Feb. 2022 um 17:47 Uhr schrieb Krzysztof Kozlowski
> <[email protected]>:
>>
>> On 21/02/2022 14:53, Daniel Kestrel wrote:
>>> AVM Fritzbox router boards may contain an additional ATH79
>>> based SoC that has the wifi cards connected.
>>> This patch adds bindings for this remote processor.
>>>
>>> Signed-off-by: Daniel Kestrel <[email protected]>
>>> ---
>>> .../bindings/remoteproc/avm,wasp-rproc.yaml | 93 +++++++++++++++++++
>>> 1 file changed, 93 insertions(+)
>>> create mode 100644 Documentation/devicetree/bindings/remoteproc/avm,wasp-rproc.yaml
>>>
>>> diff --git a/Documentation/devicetree/bindings/remoteproc/avm,wasp-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/avm,wasp-rproc.yaml
>>> new file mode 100644
>>> index 000000000000..21f3bbcc4202
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/remoteproc/avm,wasp-rproc.yaml
>>> @@ -0,0 +1,93 @@
>>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>>> +%YAML 1.2
>>> +---
>>> +$id: http://devicetree.org/schemas/remoteproc/avm,wasp-rproc.yaml#
>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>> +
>>> +title: AVM WASP processor controller bindings
>>> +
>>> +maintainers:
>>> + - Daniel Kestrel <[email protected]>
>>> +
>>> +description: |
>>> + This document defines the bindings for the remoteproc component that loads and
>>> + boots firmwares on the AVM Wireless Assistent Support Processor (WASP) SoC
>>> + that is attached to some AVM Fritzbox devices (3390, 3490, 5490, 5491, 7490).
>>> +
>>> +properties:
>>> + compatible:
>>> + const: avm,wasp
>>> +
>>> + ath9k-firmware:
>>> + $ref: /schemas/types.yaml#/definitions/string
>>> + description: |
>>> + Should contain the name of the ath9k eeprom that is to be loaded from
>>> + the lantiq host flash. Wifi on the WASP SoC does not work without it.
>>> + The file should be located on the firmware search path.
>>
>> Are you sure this is a property of hardware? It looks like runtime
>> configuration parameter.
>>
>>> +
>>> + ath10k-caldata:
>>> + $ref: /schemas/types.yaml#/definitions/string
>>> + description: |
>>> + Should contain the name of the ath10k caldata that is to be loaded from
>>> + the lantiq host flash. Wifi on the WASP SoC does not work without it.
>>> + The file should be located on the firmware search path.
>>
>> Same.
>>
>>> +
>>> + wasp-netboot-firmware:
>>> + $ref: /schemas/types.yaml#/definitions/string
>>> + description: |
>>> + Should contain the name of the netboot firmware that is to be loaded
>>> + and started on the WASP SoC using mdio in order to be able to load
>>> + the initramfs image as a second stage.
>>> + The file should be located on the firmware search path.
>>
>> Same.
>>
>>> +
>>> + wasp-netboot-mdio:
>>> + $ref: /schemas/types.yaml#/definitions/phandle
>>> + description: Reference to the Lantiq GSWIP switch mdio.
>>
>> Vendor prefix.
>>
>>> +
>>> + wasp-initramfs-port:
>>> + $ref: /schemas/types.yaml#/definitions/phandle
>>> + description: Reference to the network port, where the WASP SoC is connected to.
>>
>> Vendor prefix.
>>
>>> +
>>> + wasp-initramfs-image:
>>> + $ref: /schemas/types.yaml#/definitions/string
>>> + description: |
>>> + Should contain the name of the initramfs linux image that is to be loaded
>>> + and started on the WASP SoC.
>>> + The file should be located on the firmware search path.
>>
>> initramfs path looks even less like a property of hardware... If you
>> change initramfs from CPIO to initrd or GZ, hardware changes as well?
>>
>>> + reset-gpio:
>>> + $ref: /schemas/types.yaml#/definitions/phandle-array
>>> + description: Reference and parameters for the reset gpio of the WASP SoC.
>>
>> Wrong suffix, unneeded type. Did you run dt_binding_check?
>
> Hi Krzystof,
>
> Sorry for missing the dt_binding_check.
> I have switched to use devm_gpiod_get and it does not work if the
> suffix is not -gpio
> or -gpios (see of_find_gpio method).
> Would avm,reset-gpio be ok to use here?

No, because the suffix must be -gpios.
These are the legacy, often deprecated properties:
git grep '\-gpio:' -- Documentation/devicetree/ | grep yaml

These are proper:
git grep '\-gpios:' -- Documentation/devicetree/ | grep yaml


>
> Thanks.
>>
>> "Reference and parameters" are obvious, so they should be skipped.
>>
>>> +
>>> + startup-gpio:
>>> + $ref: /schemas/types.yaml#/definitions/phandle-array
>>> + description: Reference and parameters for the power switch gpio of the WASP SoC.
>>
>> Same.
> Is avm,startup-gpio ok, like above?

avm,startup-gpios


Best regards,
Krzysztof

2022-02-24 16:45:39

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH 2/3] dt-bindings: remoteproc: Add AVM WASP

On Mon, Feb 21, 2022 at 05:47:34PM +0100, Krzysztof Kozlowski wrote:
> On 21/02/2022 14:53, Daniel Kestrel wrote:
> > AVM Fritzbox router boards may contain an additional ATH79
> > based SoC that has the wifi cards connected.
> > This patch adds bindings for this remote processor.
> >
> > Signed-off-by: Daniel Kestrel <[email protected]>
> > ---
> > .../bindings/remoteproc/avm,wasp-rproc.yaml | 93 +++++++++++++++++++
> > 1 file changed, 93 insertions(+)
> > create mode 100644 Documentation/devicetree/bindings/remoteproc/avm,wasp-rproc.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/remoteproc/avm,wasp-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/avm,wasp-rproc.yaml
> > new file mode 100644
> > index 000000000000..21f3bbcc4202
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/remoteproc/avm,wasp-rproc.yaml
> > @@ -0,0 +1,93 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/remoteproc/avm,wasp-rproc.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: AVM WASP processor controller bindings
> > +
> > +maintainers:
> > + - Daniel Kestrel <[email protected]>
> > +
> > +description: |
> > + This document defines the bindings for the remoteproc component that loads and
> > + boots firmwares on the AVM Wireless Assistent Support Processor (WASP) SoC
> > + that is attached to some AVM Fritzbox devices (3390, 3490, 5490, 5491, 7490).
> > +
> > +properties:
> > + compatible:
> > + const: avm,wasp
> > +
> > + ath9k-firmware:
> > + $ref: /schemas/types.yaml#/definitions/string
> > + description: |
> > + Should contain the name of the ath9k eeprom that is to be loaded from
> > + the lantiq host flash. Wifi on the WASP SoC does not work without it.
> > + The file should be located on the firmware search path.
>
> Are you sure this is a property of hardware? It looks like runtime
> configuration parameter.

The standardish name for this is 'firmware-name'.

'name of the ath9k eeprom' is an odd description given there is no
eeprom in this case. Where it is loaded from exactly is outside the
scope of this binding.

>
> > +
> > + ath10k-caldata:
> > + $ref: /schemas/types.yaml#/definitions/string
> > + description: |
> > + Should contain the name of the ath10k caldata that is to be loaded from
> > + the lantiq host flash. Wifi on the WASP SoC does not work without it.
> > + The file should be located on the firmware search path.
>
> Same.

Ideally, 'firmware-name' would cover both cases and just provide a base
name that the driver transforms into file names.

>
> > +
> > + wasp-netboot-firmware:
> > + $ref: /schemas/types.yaml#/definitions/string
> > + description: |
> > + Should contain the name of the netboot firmware that is to be loaded
> > + and started on the WASP SoC using mdio in order to be able to load
> > + the initramfs image as a second stage.

initramfs is a Linux detail and should not be in binding.

> > + The file should be located on the firmware search path.
>
> Same.
>
> > +
> > + wasp-netboot-mdio:
> > + $ref: /schemas/types.yaml#/definitions/phandle
> > + description: Reference to the Lantiq GSWIP switch mdio.
>
> Vendor prefix.
>
> > +
> > + wasp-initramfs-port:
> > + $ref: /schemas/types.yaml#/definitions/phandle
> > + description: Reference to the network port, where the WASP SoC is connected to.
>
> Vendor prefix.
>
> > +
> > + wasp-initramfs-image:
> > + $ref: /schemas/types.yaml#/definitions/string
> > + description: |
> > + Should contain the name of the initramfs linux image that is to be loaded
> > + and started on the WASP SoC.
> > + The file should be located on the firmware search path.
>
> initramfs path looks even less like a property of hardware... If you
> change initramfs from CPIO to initrd or GZ, hardware changes as well?

And simply not how standard initramfs loading works. Boot menu files are
how one gives the bootloader a location of initramfs file and chosen is
how the kernel gets the memory location it was loaded to.

Rob