On 9/11/22 13:07, Krzysztof Kozlowski wrote: > On 11/09/2022 11:09, Iskren Chernev wrote: >> >> >> On 9/11/22 11:40, Krzysztof Kozlowski wrote: >>> On 10/09/2022 16:32, Iskren Chernev wrote: >>>> Add support for Qualcomm SM6115 SoC. This includes: >>>> - GCC >>>> - Pinctrl >>>> - RPM (CC+PD) >>>> - USB >>>> - MMC >>>> - UFS >>>> >>>> Signed-off-by: Iskren Chernev <iskren.chernev@xxxxxxxxx> >>>> --- >>>> pending issues with dtschema: >>>> - for some reason, using pinctrl phandles (in mmc) breaks the pinctrl >>>> schema (4 times) >>>> .output/arch/arm64/boot/dts/qcom/sm4250-oneplus-billie2.dtb: pinctrl@500000: sdc1-on-state: 'oneOf' conditional failed, one must be fixed: >>>> 'pins' is a required property >>>> 'clk', 'cmd', 'data', 'rclk' do not match any of the regexes: 'pinctrl-[0-9]+' >>>> [[26]] is not of type 'object' >>>> From schema: /home/iskren/src/pmos/linux-postmarketos/Documentation/devicetree/bindings/pinctrl/qcom,sm6115-pinctrl.yaml >>> >>> It's the same as 06367559766b7c9bd96d2baef8bfc5a9bb451e25. I propose to >>> fix it the same way. I can do a biger change for all pinctrls, so here >>> you would need to add "-pins" prefix to entries (see patch >>> 4fcdaf4b0320f93d0ccb4d36b795ed258fb07b27). >> >> OK, that makes sense. One thing that is a bit odd -- the current pattern >> "(pinconf|-pins)$" matches anything that ends in pinconf OR -pins (so it could >> be sth-pinconf). > > Yeah, I am fixing it to ^(pinconf|.*-pins)$ > >> Also, if you only have a single block, isn't the idea to just >> list it in the -states node. I mean we either force everybody to nest with >> a pinconf, or we allow -pins for nested stuff and directly in -state for the >> non-nested. Just my 2c. > > I didn't get this one... We allow exactly this, don't we (in PMIC GPIOs)? Currently the schema (you linked) has: patternProperties: '-state$': oneOf: - $ref: "#/$defs/qcom-pmic-gpio-state" // 1st case - patternProperties: // 2nd case "(pinconf|-pins)$": $ref: "#/$defs/qcom-pmic-gpio-state" additionalProperties: false The idea being that you can have pinctrl@xxx { basic-state { // this matches the first state in oneOf pins: "gpio1"; funciton: "normal"; }; nested-state { some-pins { // this matches the second state in oneOf pins: "gpio1"; funciton: "normal"; }; other-pins { pins: "gpio2" funciton: "normal"; }; } // but also, matching second state in oneOf nested-basic-state { pinconf { pins: "gpio1"; funciton: "normal"; }; }; }; So I'm saying, we should either choose basic-state and nested-state, in which case we don't need the "^pinconf$" variant, or we can have nested-state and nested-basic-state, in which case we don't need the 1st case of the oneOf. Otherwise people have to choose between basic-state and nested-basic-state, which are equivalent in semantics. On a tangent -- why specifying the .* regex of pinctrl subnodes has effect on pinctrl references in other nodes. I.e I don't understand why this fix fixes the issue (but it does). > Best regards, > Krzysztof