diff mbox series

[v1,1/2] dt-bindings: mmc: mtk-sd: update assigned-clocks/clock-parents for mt7986

Message ID 20230625191151.7808-2-linux@fw-web.de
State New
Headers show
Series Fix emmc hs400 mode on mt7986 | expand

Commit Message

Frank Wunderlich June 25, 2023, 7:11 p.m. UTC
From: Frank Wunderlich <frank-w@public-files.de>

MT7986 has 2 clock-parents so update the binding for it.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
---
 Documentation/devicetree/bindings/mmc/mtk-sd.yaml | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Frank Wunderlich June 27, 2023, 12:09 p.m. UTC | #1
> Gesendet: Dienstag, 27. Juni 2023 um 12:44 Uhr
> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org>
> Betreff: Re: [PATCH v1 1/2] dt-bindings: mmc: mtk-sd: update assigned-clocks/clock-parents for mt7986
>
> On 25/06/2023 21:11, Frank Wunderlich wrote:
> > From: Frank Wunderlich <frank-w@public-files.de>
> >
> > MT7986 has 2 clock-parents so update the binding for it.
>
> You didn't test it, I think. If you do, then you will see errors from
> other trees.

Hi,

i tested it of course...which errors do you see?

this is basicly how i tested it (in case anything has changed):

        logfile=dtbs_arm64.log
        exec 3> >(tee $logfile)
        ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make DT_CHECKER_FLAGS=-m dt_binding_check 2>&3
        if [[ $? -ne 0 ]];then echo "arm64 binding check failed!";cat $logfile;exit 1;fi
        ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make defconfig #dtbs_check need kernel-config
        ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make -j8 DT_CHECKER_FLAGS=-m dtbs_check 2>&3
        if [[ $? -ne 0 ]];then echo "arm64 dtbs_check failed!";cat $logfile;exit 1;fi

and looked into the resulting logfile for keywords like mmc like mtk-sd

i tried running dtbs_check with passing the yaml-file, but of course all compatibles not matching this file were reported.

ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make -j6 DT_CHECKER_FLAGS=-m dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/mmc/mtk-sd.yaml

but this spits out many errors "failed to match any schema with compatible" because i defined only the changed one...

maybe there is another way to check only one yaml file against all dtbs without these unrelated errors.

pipeline in dt-bindings-patchwork is clean too
https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20230625191151.7808-2-linux@fw-web.de/

> Anyway, I don't understand why defining it in the first place. Just drop
> the assigned-clock* from the binding.

as it was defined (not looked where it was used) i only used the soc-specific branch to update the MaxItems...just to not break anything. After that the message i got before was fixed

arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dtb: mmc@11230000: assigned-clocks: [[4, 35], [4, 34]] is too long
arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dtb: mmc@11230000: assigned-clock-parents: [[5, 6], [4, 18]] is too long

but if the right way is to drop the MaxItems from generic (or the property itself - where is it taken from then?). The only
include i see is Documentation/devicetree/bindings/mmc/mmc-controller.yaml and there the assigned-clock* is not defined. And the

unevaluatedProperties: false

tells me that removing the generic one will result in unevaluated propety error.

regards Frank


> Best regards,
> Krzysztof
>
>
Krzysztof Kozlowski June 27, 2023, 1:37 p.m. UTC | #2
On 27/06/2023 14:09, Frank Wunderlich wrote:
>> Gesendet: Dienstag, 27. Juni 2023 um 12:44 Uhr
>> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org>
>> Betreff: Re: [PATCH v1 1/2] dt-bindings: mmc: mtk-sd: update assigned-clocks/clock-parents for mt7986
>>
>> On 25/06/2023 21:11, Frank Wunderlich wrote:
>>> From: Frank Wunderlich <frank-w@public-files.de>
>>>
>>> MT7986 has 2 clock-parents so update the binding for it.
>>
>> You didn't test it, I think. If you do, then you will see errors from
>> other trees.
> 
> Hi,
> 
> i tested it of course...which errors do you see?

The top-level said it can be maximum 1, so raising it in allOf:if:then:
should not be enough

> 11
> this is basicly how i tested it (in case anything has changed):
> 
>         logfile=dtbs_arm64.log
>         exec 3> >(tee $logfile)
>         ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make DT_CHECKER_FLAGS=-m dt_binding_check 2>&3
>         if [[ $? -ne 0 ]];then echo "arm64 binding check failed!";cat $logfile;exit 1;fi
>         ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make defconfig #dtbs_check need kernel-config
>         ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make -j8 DT_CHECKER_FLAGS=-m dtbs_check 2>&3
>         if [[ $? -ne 0 ]];then echo "arm64 dtbs_check failed!";cat $logfile;exit 1;fi

A bit over-complicated... why not running dtbs_check against the schema
you changed?

> 
> and looked into the resulting logfile for keywords like mmc like mtk-sd
> 
> i tried running dtbs_check with passing the yaml-file, but of course all compatibles not matching this file were reported.
> 
> ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make -j6 DT_CHECKER_FLAGS=-m dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/mmc/mtk-sd.yaml
> 
> but this spits out many errors "failed to match any schema with compatible" because i defined only the changed one...
> 
> maybe there is another way to check only one yaml file against all dtbs without these unrelated errors.
> 
> pipeline in dt-bindings-patchwork is clean too
> https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20230625191151.7808-2-linux@fw-web.de/

Maybe that binding just fails to apply to DTS because of missing or not
correct compatibles.

> 
>> Anyway, I don't understand why defining it in the first place. Just drop
>> the assigned-clock* from the binding.
> 
> as it was defined (not looked where it was used) i only used the soc-specific branch to update the MaxItems...just to not break anything. After that the message i got before was fixed
> 
> arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dtb: mmc@11230000: assigned-clocks: [[4, 35], [4, 34]] is too long
> arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dtb: mmc@11230000: assigned-clock-parents: [[5, 6], [4, 18]] is too long
> 
> but if the right way is to drop the MaxItems from generic (or the property itself - where is it taken from then?). The only
> include i see is Documentation/devicetree/bindings/mmc/mmc-controller.yaml and there the assigned-clock* is not defined. And the

The way is to entirely drop assigned-clocks. I don't think there are
much benefits of having them in the bindings. Maybe if specific rates
are required, then yes - device cannot work with other rates and you can
verify it with dtbs_check. But otherwise it is like adding values of
'reg' or 'interrupts'. Plus some board might require third item and then
what?

Best regards,
Krzysztof
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/mmc/mtk-sd.yaml b/Documentation/devicetree/bindings/mmc/mtk-sd.yaml
index 46eefdd19a2c..485516dcc759 100644
--- a/Documentation/devicetree/bindings/mmc/mtk-sd.yaml
+++ b/Documentation/devicetree/bindings/mmc/mtk-sd.yaml
@@ -247,6 +247,10 @@  allOf:
               - mediatek,mt7986-mmc
     then:
       properties:
+        assigned-clocks:
+          maxItems: 2
+        assigned-clock-parents:
+          maxItems: 2
         clocks:
           minItems: 3
           items: