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

From: Tim Harvey
Date: Wed Aug 09 2023 - 13:27:08 EST


On Tue, Aug 8, 2023 at 11:33 PM Krzysztof Kozlowski
<krzysztof.kozlowski@xxxxxxxxxx> wrote:
>
> 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
>

Krzysztof,

Thanks for the explanation. I see now that if I want to specify
anything other than the enums in the second item (brcm,bcm4329-fmac,
and the pci14e4*), per the first item I must follow it with
'brcm,bcm4329-fmac'.

Acked-by: Tim Harvey <tharvey@xxxxxxxxxxxxx>

best regards,

Tim