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

From: Krzysztof Kozlowski
Date: Wed Aug 09 2023 - 02:33:16 EST


On 09/08/2023 01:52, Tim Harvey wrote:
> On Sun, Aug 6, 2023 at 4:33 PM Fabio Estevam <festevam@xxxxxxxxx> wrote:
>>
>> From: Fabio Estevam <festevam@xxxxxxx>
>>
>> Pass "brcm,bcm4329-fmac" to fix the following schema warnings:
>>
>> imx8mp-venice-gw74xx.dtb: wifi@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@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@xxxxxxx>
>> ---
>> 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@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@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@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@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