[PATCH] arm64: dts: imx8m-venice: Pass "brcm,bcm4329-fmac"

Krzysztof Kozlowski krzysztof.kozlowski at linaro.org
Tue Aug 8 23:33:09 PDT 2023


On 09/08/2023 01:52, Tim Harvey wrote:
> On Sun, Aug 6, 2023 at 4:33 PM Fabio Estevam <festevam at gmail.com> wrote:
>>
>> From: Fabio Estevam <festevam at denx.de>
>>
>> Pass "brcm,bcm4329-fmac" to fix the following schema warnings:
>>
>> imx8mp-venice-gw74xx.dtb: wifi at 0: compatible: 'oneOf' conditional failed, one must be fixed:
>>         ['cypress,cyw4373-fmac'] is too short
>>         'cypress,cyw4373-fmac' is not one of ['brcm,bcm4329-fmac', 'pci14e4,43dc', 'pci14e4,4464', 'pci14e4,4488', 'pci14e4,4425', 'pci14e4,4433']
>>         from schema $id: http://devicetree.org/schemas/net/wireless/brcm,bcm4329-fmac.yaml#
>>
>> imx8mn-venice-gw7902.dtb: wifi at 0: compatible: 'oneOf' conditional failed, one must be fixed:
>>         ['brcm,bcm43455-fmac'] is too short
>>         'brcm,bcm43455-fmac' is not one of ['brcm,bcm4329-fmac', 'pci14e4,43dc', 'pci14e4,4464', 'pci14e4,4488', 'pci14e4,4425', 'pci14e4,4433']
>>         from schema $id: http://devicetree.org/schemas/net/wireless/brcm,bcm4329-fmac.yaml#
>>
>> Signed-off-by: Fabio Estevam <festevam at denx.de>
>> ---
>>  arch/arm64/boot/dts/freescale/imx8mm-venice-gw7901.dts | 2 +-
>>  arch/arm64/boot/dts/freescale/imx8mm-venice-gw7902.dts | 2 +-
>>  arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts | 2 +-
>>  arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts | 2 +-
>>  4 files changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-venice-gw7901.dts b/arch/arm64/boot/dts/freescale/imx8mm-venice-gw7901.dts
>> index 21d7b16d6f84..cde29aa1a0a2 100644
>> --- a/arch/arm64/boot/dts/freescale/imx8mm-venice-gw7901.dts
>> +++ b/arch/arm64/boot/dts/freescale/imx8mm-venice-gw7901.dts
>> @@ -801,7 +801,7 @@ &usdhc1 {
>>         status = "okay";
>>
>>         wifi at 0 {
>> -               compatible = "brcm,bcm43455-fmac";
>> +               compatible = "brcm,bcm43455-fmac", "brcm,bcm4329-fmac";
>>                 reg = <0>;
>>         };
>>  };
>> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-venice-gw7902.dts b/arch/arm64/boot/dts/freescale/imx8mm-venice-gw7902.dts
>> index 964cc4fc2ddf..0bff7a6fdca6 100644
>> --- a/arch/arm64/boot/dts/freescale/imx8mm-venice-gw7902.dts
>> +++ b/arch/arm64/boot/dts/freescale/imx8mm-venice-gw7902.dts
>> @@ -726,7 +726,7 @@ &usdhc2 {
>>         status = "okay";
>>
>>         wifi at 0 {
>> -               compatible = "brcm,bcm43455-fmac";
>> +               compatible = "brcm,bcm43455-fmac", "brcm,bcm4329-fmac";
>>                 reg = <0>;
>>         };
>>  };
>> diff --git a/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts b/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts
>> index 3ac011bbc025..9a36edc60394 100644
>> --- a/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts
>> +++ b/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts
>> @@ -679,7 +679,7 @@ &usdhc2 {
>>         status = "okay";
>>
>>         wifi at 0 {
>> -               compatible = "brcm,bcm43455-fmac";
>> +               compatible = "brcm,bcm43455-fmac", "brcm,bcm4329-fmac";
>>                 reg = <0>;
>>         };
>>  };
>> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts b/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts
>> index 3473423ac939..faa370a5885f 100644
>> --- a/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts
>> +++ b/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts
>> @@ -737,7 +737,7 @@ &usdhc1 {
>>         status = "okay";
>>
>>         wifi at 0 {
>> -               compatible = "cypress,cyw4373-fmac";
>> +               compatible = "cypress,cyw4373-fmac", "brcm,bcm4329-fmac";
>>                 reg = <0>;
>>         };
>>  };
>> --
>> 2.34.1
>>
> 
> Fabio,
> 
> Thank you for your continued efforts to squash out all these
> dt-binding warnings/issues.
> 
> Can you explain what the difference is in the dt-binding yaml between
> compatible/oneOf/items/{enum,const} and compatible/oneOf/enum? The

items defines a list. items with enum and const, defines a list of two
items, where first is an enum (so oneOf few) and second is fixed.

compatible/oneOf/enum is not a list. Or you could look at it as
one-element-list.


> first list for Documentation/devicetree/bindings/net/wireless/brcm,bcm4329-fmac.yaml
> has a much larger set of enums including the bcm43455 on these boards
> but the second set of enums has a much more limited set.

What's the question here? Both define different things. One defines
compatible devices with some model, second defines just some devices.


> There is no
> driver code to look at for this because it is bound via SDIO device
> id's instead of the dt compatible property.
> 
> Best regards,
> 
> Tim

Best regards,
Krzysztof




More information about the linux-arm-kernel mailing list