mbox series

[v3,0/2] ATH10K YAML conversion

Message ID 20230406-topic-ath10k_bindings-v3-0-00895afc7764@linaro.org
Headers show
Series ATH10K YAML conversion | expand

Message

Konrad Dybcio April 6, 2023, 12:55 p.m. UTC
v2 -> v3:
- Ran dt_binding_check explicitly to uncover an issue with the
  example - I had 2 levels of wifi-firmware{}.. Fixed that..

I hope you folks don't mind me resending so quickly, but it was a
trivial issue. Patch 2 unchanged.

v2: https://lore.kernel.org/r/20230406-topic-ath10k_bindings-v2-0-557f884a65d1@linaro.org

v1 -> v2:

Dropped:
- '|' in /description
- /properties/resets/minItems
- Unnecessary level of 'items:' in /properties/ext-fem-name
- reserved-memory in examples
- status in examples
- labels in examples

Added:
- /properties/wifi-firmware/additionalProperties: false
- /properties/wifi-firmware/properties/iommus
- /properties/qcom,coexist-support/enum (and reworded the description)
- wifi-firmware and supplies in the SNoC example

Patch 2 is unchanged, picked up rb.

v1: https://lore.kernel.org/r/20230406-topic-ath10k_bindings-v1-0-1ef181c50236@linaro.org

This is my attempt at (finally) moving ATH10K to YAML.
One inexistent dt property came out as part of that.

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
Konrad Dybcio (2):
      dt-bindings: net: Convert ATH10K to YAML
      arm64: dts: qcom: sdm845-polaris: Drop inexistent properties

 .../bindings/net/wireless/qcom,ath10k.txt          | 215 -------------
 .../bindings/net/wireless/qcom,ath10k.yaml         | 357 +++++++++++++++++++++
 arch/arm64/boot/dts/qcom/sdm845-xiaomi-polaris.dts |   2 -
 3 files changed, 357 insertions(+), 217 deletions(-)
---
base-commit: 8417c8f5007bf4567ccffda850a3157c7d905f67
change-id: 20230406-topic-ath10k_bindings-9af5fa834235

Best regards,

Comments

Rob Herring (Arm) April 6, 2023, 5:09 p.m. UTC | #1
On Thu, 06 Apr 2023 14:55:44 +0200, Konrad Dybcio wrote:
> Convert the ATH10K bindings to YAML.
> 
> Dropped properties that are absent at the current state of mainline:
> - qcom,msi_addr
> - qcom,msi_base
> 
> qcom,coexist-support and qcom,coexist-gpio-pin do very little and should
> be reconsidered on the driver side, especially the latter one.
> 
> Somewhat based on the ath11k bindings.
> 
> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
> ---
>  .../bindings/net/wireless/qcom,ath10k.txt          | 215 -------------
>  .../bindings/net/wireless/qcom,ath10k.yaml         | 357 +++++++++++++++++++++
>  2 files changed, 357 insertions(+), 215 deletions(-)
> 

Running 'make dtbs_check' with the schema in this patch gives the
following warnings. Consider if they are expected or the schema is
incorrect. These may not be new warnings.

Note that it is not yet a requirement to have 0 warnings for dtbs_check.
This will change in the future.

Full log is available here: https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20230406-topic-ath10k_bindings-v3-1-00895afc7764@linaro.org


wifi@0,0: reg: [[65536, 0, 0, 0, 0], [50397200, 0, 0, 0, 2097152]] is too long
	arch/arm64/boot/dts/rockchip/rk3399-gru-scarlet-dumo.dtb

wifi@18800000: 'qcom,snoc-host-cap-skip-quirk' does not match any of the regexes: 'pinctrl-[0-9]+'
	arch/arm64/boot/dts/qcom/sdm845-xiaomi-polaris.dtb
Krzysztof Kozlowski April 6, 2023, 5:15 p.m. UTC | #2
On 06/04/2023 14:55, Konrad Dybcio wrote:
> Convert the ATH10K bindings to YAML.
> 
> Dropped properties that are absent at the current state of mainline:
> - qcom,msi_addr
> - qcom,msi_base
> 
> qcom,coexist-support and qcom,coexist-gpio-pin do very little and should
> be reconsidered on the driver side, especially the latter one.
> 
> Somewhat based on the ath11k bindings.


> +  - reg
> +
> +additionalProperties: false
> +
> +allOf:
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - qcom,ipq4019-wifi
> +    then:
> +      properties:
> +        interrupts:
> +          minItems: 17
> +          maxItems: 17
> +
> +        interrupt-names:
> +          minItems: 17

Drop minItems (the number of items is defined by listing them below, as
you did).

> +          items:
> +            - const: msi0
> +            - const: msi1
> +            - const: msi2
> +            - const: msi3
> +            - const: msi4
> +            - const: msi5
> +            - const: msi6
> +            - const: msi7
> +            - const: msi8
> +            - const: msi9
> +            - const: msi10
> +            - const: msi11
> +            - const: msi12
> +            - const: msi13
> +            - const: msi14
> +            - const: msi15
> +            - const: legacy
> +
> +        clocks:
> +          items:
> +            - description: Wi-Fi command clock
> +            - description: Wi-Fi reference clock
> +            - description: Wi-Fi RTC clock
> +
> +        clock-names:
> +          items:
> +            - const: wifi_wcss_cmd
> +            - const: wifi_wcss_ref
> +            - const: wifi_wcss_rtc
> +
> +      required:
> +        - clocks
> +        - clock-names
> +        - interrupts
> +        - interrupt-names
> +        - resets
> +        - reset-names
> +
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - qcom,wcn3990-wifi
> +
> +    then:
> +      properties:
> +        clocks:
> +          minItems: 1
> +          items:
> +            - description: XO reference clock
> +            - description: Qualcomm Debug Subsystem clock
> +
> +        clock-names:
> +          minItems: 1
> +          items:
> +            - const: cxo_ref_clk_pin
> +            - const: qdss
> +
> +        interrupts:
> +          items:
> +            - description: CE0
> +            - description: CE1
> +            - description: CE2
> +            - description: CE3
> +            - description: CE4
> +            - description: CE5
> +            - description: CE6
> +            - description: CE7
> +            - description: CE8
> +            - description: CE9
> +            - description: CE10
> +            - description: CE11

What about interrupt-names here? If they are not expected, then just
interrupt-names: false



Best regards,
Krzysztof
Konrad Dybcio April 6, 2023, 6:26 p.m. UTC | #3
On 6.04.2023 19:15, Krzysztof Kozlowski wrote:
> On 06/04/2023 14:55, Konrad Dybcio wrote:
>> Convert the ATH10K bindings to YAML.
>>
>> Dropped properties that are absent at the current state of mainline:
>> - qcom,msi_addr
>> - qcom,msi_base
>>
>> qcom,coexist-support and qcom,coexist-gpio-pin do very little and should
>> be reconsidered on the driver side, especially the latter one.
>>
>> Somewhat based on the ath11k bindings.
> 
> 
>> +  - reg
>> +
>> +additionalProperties: false
>> +
>> +allOf:
>> +  - if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            enum:
>> +              - qcom,ipq4019-wifi
>> +    then:
>> +      properties:
>> +        interrupts:
>> +          minItems: 17
>> +          maxItems: 17
>> +
>> +        interrupt-names:
>> +          minItems: 17
> 
> Drop minItems (the number of items is defined by listing them below, as
> you did).
OK

> 
>> +          items:
>> +            - const: msi0
>> +            - const: msi1
>> +            - const: msi2
>> +            - const: msi3
>> +            - const: msi4
>> +            - const: msi5
>> +            - const: msi6
>> +            - const: msi7
>> +            - const: msi8
>> +            - const: msi9
>> +            - const: msi10
>> +            - const: msi11
>> +            - const: msi12
>> +            - const: msi13
>> +            - const: msi14
>> +            - const: msi15
>> +            - const: legacy
>> +
>> +        clocks:
>> +          items:
>> +            - description: Wi-Fi command clock
>> +            - description: Wi-Fi reference clock
>> +            - description: Wi-Fi RTC clock
>> +
>> +        clock-names:
>> +          items:
>> +            - const: wifi_wcss_cmd
>> +            - const: wifi_wcss_ref
>> +            - const: wifi_wcss_rtc
>> +
>> +      required:
>> +        - clocks
>> +        - clock-names
>> +        - interrupts
>> +        - interrupt-names
>> +        - resets
>> +        - reset-names
>> +
>> +  - if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            enum:
>> +              - qcom,wcn3990-wifi
>> +
>> +    then:
>> +      properties:
>> +        clocks:
>> +          minItems: 1
>> +          items:
>> +            - description: XO reference clock
>> +            - description: Qualcomm Debug Subsystem clock
>> +
>> +        clock-names:
>> +          minItems: 1
>> +          items:
>> +            - const: cxo_ref_clk_pin
>> +            - const: qdss
>> +
>> +        interrupts:
>> +          items:
>> +            - description: CE0
>> +            - description: CE1
>> +            - description: CE2
>> +            - description: CE3
>> +            - description: CE4
>> +            - description: CE5
>> +            - description: CE6
>> +            - description: CE7
>> +            - description: CE8
>> +            - description: CE9
>> +            - description: CE10
>> +            - description: CE11
> 
> What about interrupt-names here? If they are not expected, then just
> interrupt-names: false
They obviously wouldn't hurt, but they're unused on the driver side:

for (i = 0; i < CE_COUNT; i++) {
		ret = platform_get_irq(ar_snoc->dev, i);

So I will forbid them.

Konrad
> 
> 
> 
> Best regards,
> Krzysztof
>
Krzysztof Kozlowski April 6, 2023, 6:30 p.m. UTC | #4
On 06/04/2023 20:26, Konrad Dybcio wrote:

>>> +        interrupts:
>>> +          items:
>>> +            - description: CE0
>>> +            - description: CE1
>>> +            - description: CE2
>>> +            - description: CE3
>>> +            - description: CE4
>>> +            - description: CE5
>>> +            - description: CE6
>>> +            - description: CE7
>>> +            - description: CE8
>>> +            - description: CE9
>>> +            - description: CE10
>>> +            - description: CE11
>>
>> What about interrupt-names here? If they are not expected, then just
>> interrupt-names: false
> They obviously wouldn't hurt, but they're unused on the driver side:
> 
> for (i = 0; i < CE_COUNT; i++) {
> 		ret = platform_get_irq(ar_snoc->dev, i);
> 
> So I will forbid them.

Assuming DTS does not have them.

Best regards,
Krzysztof
Konrad Dybcio April 6, 2023, 6:39 p.m. UTC | #5
On 6.04.2023 20:30, Krzysztof Kozlowski wrote:
> On 06/04/2023 20:26, Konrad Dybcio wrote:
> 
>>>> +        interrupts:
>>>> +          items:
>>>> +            - description: CE0
>>>> +            - description: CE1
>>>> +            - description: CE2
>>>> +            - description: CE3
>>>> +            - description: CE4
>>>> +            - description: CE5
>>>> +            - description: CE6
>>>> +            - description: CE7
>>>> +            - description: CE8
>>>> +            - description: CE9
>>>> +            - description: CE10
>>>> +            - description: CE11
>>>
>>> What about interrupt-names here? If they are not expected, then just
>>> interrupt-names: false
>> They obviously wouldn't hurt, but they're unused on the driver side:
>>
>> for (i = 0; i < CE_COUNT; i++) {
>> 		ret = platform_get_irq(ar_snoc->dev, i);
>>
>> So I will forbid them.
> 
> Assuming DTS does not have them.
Tested locally, no warnings, so looks like nobody used them in dt.

Konrad
> 
> Best regards,
> Krzysztof
>
Bjorn Andersson April 7, 2023, 6:36 p.m. UTC | #6
On Thu, 06 Apr 2023 14:55:43 +0200, Konrad Dybcio wrote:
> v2 -> v3:
> - Ran dt_binding_check explicitly to uncover an issue with the
>   example - I had 2 levels of wifi-firmware{}.. Fixed that..
> 
> I hope you folks don't mind me resending so quickly, but it was a
> trivial issue. Patch 2 unchanged.
> 
> [...]

Applied, thanks!

[2/2] arm64: dts: qcom: sdm845-polaris: Drop inexistent properties
      commit: fbc3a1df2866608ca43e7e6d602f66208a5afd88

Best regards,