Message ID | 20230625191151.7808-2-linux@fw-web.de |
---|---|
State | New |
Headers | show |
Series | Fix emmc hs400 mode on mt7986 | expand |
> 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 > >
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 --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: