Message ID | 20240625215442.190557-2-robh@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [net-next] dt-bindings: net: Define properties at top-level | expand |
On 25/06/2024 23:54, Rob Herring (Arm) wrote: > Convention is DT schemas should define all properties at the top-level > and not inside of if/then schemas. That minimizes the if/then schemas > and is more future proof. > > Signed-off-by: Rob Herring (Arm) <robh@kernel.org> > --- Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Best regards, Krzysztof
Hi Rob On Tue, Jun 25, 2024 at 03:54:41PM -0600, Rob Herring (Arm) wrote: > Convention is DT schemas should define all properties at the top-level > and not inside of if/then schemas. That minimizes the if/then schemas > and is more future proof. > > Signed-off-by: Rob Herring (Arm) <robh@kernel.org> > --- > .../devicetree/bindings/net/mediatek,net.yaml | 28 +-- > .../devicetree/bindings/net/snps,dwmac.yaml | 167 +++++++++--------- For Synopsys DW MACs you can just move the PBL-properties constraints to the top-level schema part with no compatible-based conditional validation left. It's because the DMA PBL settings are available on all the DW MAC IP-cores (DW MAC, DW GMAC, DW QoS Eth, DW XGMAC, DW XLGMAC). Moreover the STMMAC driver responsible for the DW MAC device handling parses the pbl* properties for all IP-cores irrespective from the device compatible string. Alternatively you can just merge in the attached patch, which BTW you have already reviewed sometime ago. -Serge(y) > 2 files changed, 105 insertions(+), 90 deletions(-) > > diff --git a/Documentation/devicetree/bindings/net/mediatek,net.yaml b/Documentation/devicetree/bindings/net/mediatek,net.yaml > index 3202dc7967c5..686b5c2fae40 100644 > --- a/Documentation/devicetree/bindings/net/mediatek,net.yaml > +++ b/Documentation/devicetree/bindings/net/mediatek,net.yaml > @@ -68,6 +68,17 @@ properties: > Phandle to the syscon node that handles the path from GMAC to > PHY variants. > > + mediatek,pcie-mirror: > + $ref: /schemas/types.yaml#/definitions/phandle > + description: > + Phandle to the mediatek pcie-mirror controller. > + > + mediatek,pctl: > + $ref: /schemas/types.yaml#/definitions/phandle > + description: > + Phandle to the syscon node that handles the ports slew rate and > + driver current. > + > mediatek,sgmiisys: > $ref: /schemas/types.yaml#/definitions/phandle-array > minItems: 1 > @@ -131,15 +142,12 @@ allOf: > > mediatek,infracfg: false > > - mediatek,pctl: > - $ref: /schemas/types.yaml#/definitions/phandle > - description: > - Phandle to the syscon node that handles the ports slew rate and > - driver current. > - > mediatek,wed: false > > mediatek,wed-pcie: false > + else: > + properties: > + mediatek,pctl: false > > - if: > properties: > @@ -201,12 +209,10 @@ allOf: > minItems: 1 > maxItems: 1 > > - mediatek,pcie-mirror: > - $ref: /schemas/types.yaml#/definitions/phandle > - description: > - Phandle to the mediatek pcie-mirror controller. > - > mediatek,wed-pcie: false > + else: > + properties: > + mediatek,pcie-mirror: false > > - if: > properties: > diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > index 21cc27e75f50..023865b6f497 100644 > --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml > +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > @@ -485,6 +485,38 @@ properties: > description: > Frequency division factor for MDC clock. > > + snps,pbl: > + description: > + Programmable Burst Length (tx and rx) > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [1, 2, 4, 8, 16, 32] > + > + snps,txpbl: > + description: > + Tx Programmable Burst Length. If set, DMA tx will use this value rather > + than snps,pbl. > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [1, 2, 4, 8, 16, 32] > + > + snps,rxpbl: > + description: > + Rx Programmable Burst Length. If set, DMA rx will use this value rather > + than snps,pbl. > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [1, 2, 4, 8, 16, 32] > + > + snps,no-pbl-x8: > + $ref: /schemas/types.yaml#/definitions/flag > + description: > + Don\'t multiply the pbl/txpbl/rxpbl values by 8. For core rev < 3.50, > + don\'t multiply the values by 4. > + > + snps,tso: > + $ref: /schemas/types.yaml#/definitions/flag > + description: > + Enables the TSO feature otherwise it will be managed by MAC HW capability > + register. > + > mdio: > $ref: mdio.yaml# > unevaluatedProperties: false > @@ -568,95 +600,72 @@ allOf: > - if: > properties: > compatible: > - contains: > - enum: > - - allwinner,sun7i-a20-gmac > - - allwinner,sun8i-a83t-emac > - - allwinner,sun8i-h3-emac > - - allwinner,sun8i-r40-gmac > - - allwinner,sun8i-v3s-emac > - - allwinner,sun50i-a64-emac > - - ingenic,jz4775-mac > - - ingenic,x1000-mac > - - ingenic,x1600-mac > - - ingenic,x1830-mac > - - ingenic,x2000-mac > - - qcom,sa8775p-ethqos > - - qcom,sc8280xp-ethqos > - - snps,dwmac-3.50a > - - snps,dwmac-4.10a > - - snps,dwmac-4.20a > - - snps,dwmac-5.20 > - - snps,dwxgmac > - - snps,dwxgmac-2.10 > - - st,spear600-gmac > + not: > + contains: > + enum: > + - allwinner,sun7i-a20-gmac > + - allwinner,sun8i-a83t-emac > + - allwinner,sun8i-h3-emac > + - allwinner,sun8i-r40-gmac > + - allwinner,sun8i-v3s-emac > + - allwinner,sun50i-a64-emac > + - ingenic,jz4775-mac > + - ingenic,x1000-mac > + - ingenic,x1600-mac > + - ingenic,x1830-mac > + - ingenic,x2000-mac > + - qcom,sa8775p-ethqos > + - qcom,sc8280xp-ethqos > + - snps,dwmac-3.50a > + - snps,dwmac-4.10a > + - snps,dwmac-4.20a > + - snps,dwmac-5.20 > + - snps,dwxgmac > + - snps,dwxgmac-2.10 > + - st,spear600-gmac > > then: > properties: > - snps,pbl: > - description: > - Programmable Burst Length (tx and rx) > - $ref: /schemas/types.yaml#/definitions/uint32 > - enum: [1, 2, 4, 8, 16, 32] > - > - snps,txpbl: > - description: > - Tx Programmable Burst Length. If set, DMA tx will use this > - value rather than snps,pbl. > - $ref: /schemas/types.yaml#/definitions/uint32 > - enum: [1, 2, 4, 8, 16, 32] > - > - snps,rxpbl: > - description: > - Rx Programmable Burst Length. If set, DMA rx will use this > - value rather than snps,pbl. > - $ref: /schemas/types.yaml#/definitions/uint32 > - enum: [1, 2, 4, 8, 16, 32] > - > - snps,no-pbl-x8: > - $ref: /schemas/types.yaml#/definitions/flag > - description: > - Don\'t multiply the pbl/txpbl/rxpbl values by 8. For core > - rev < 3.50, don\'t multiply the values by 4. > + snps,pbl: false > + snps,txpbl: false > + snps,rxpbl: false > + snps,no-pbl-x8: false > > - if: > properties: > compatible: > - contains: > - enum: > - - allwinner,sun7i-a20-gmac > - - allwinner,sun8i-a83t-emac > - - allwinner,sun8i-h3-emac > - - allwinner,sun8i-r40-gmac > - - allwinner,sun8i-v3s-emac > - - allwinner,sun50i-a64-emac > - - loongson,ls2k-dwmac > - - loongson,ls7a-dwmac > - - ingenic,jz4775-mac > - - ingenic,x1000-mac > - - ingenic,x1600-mac > - - ingenic,x1830-mac > - - ingenic,x2000-mac > - - qcom,qcs404-ethqos > - - qcom,sa8775p-ethqos > - - qcom,sc8280xp-ethqos > - - qcom,sm8150-ethqos > - - snps,dwmac-4.00 > - - snps,dwmac-4.10a > - - snps,dwmac-4.20a > - - snps,dwmac-5.10a > - - snps,dwmac-5.20 > - - snps,dwxgmac > - - snps,dwxgmac-2.10 > - - st,spear600-gmac > + not: > + contains: > + enum: > + - allwinner,sun7i-a20-gmac > + - allwinner,sun8i-a83t-emac > + - allwinner,sun8i-h3-emac > + - allwinner,sun8i-r40-gmac > + - allwinner,sun8i-v3s-emac > + - allwinner,sun50i-a64-emac > + - loongson,ls2k-dwmac > + - loongson,ls7a-dwmac > + - ingenic,jz4775-mac > + - ingenic,x1000-mac > + - ingenic,x1600-mac > + - ingenic,x1830-mac > + - ingenic,x2000-mac > + - qcom,qcs404-ethqos > + - qcom,sa8775p-ethqos > + - qcom,sc8280xp-ethqos > + - qcom,sm8150-ethqos > + - snps,dwmac-4.00 > + - snps,dwmac-4.10a > + - snps,dwmac-4.20a > + - snps,dwmac-5.10a > + - snps,dwmac-5.20 > + - snps,dwxgmac > + - snps,dwxgmac-2.10 > + - st,spear600-gmac > > then: > properties: > - snps,tso: > - $ref: /schemas/types.yaml#/definitions/flag > - description: > - Enables the TSO feature otherwise it will be managed by > - MAC HW capability register. > + snps,tso: false > > additionalProperties: true > > -- > 2.43.0 > >
Hi Rob, kernel test robot noticed the following build warnings: [auto build test WARNING on net-next/main] url: https://github.com/intel-lab-lkp/linux/commits/Rob-Herring-Arm/dt-bindings-net-Define-properties-at-top-level/20240626-091748 base: net-next/main patch link: https://lore.kernel.org/r/20240625215442.190557-2-robh%40kernel.org patch subject: [PATCH net-next] dt-bindings: net: Define properties at top-level config: arc-randconfig-051-20240628 (https://download.01.org/0day-ci/archive/20240628/202406280202.IRKWOMQk-lkp@intel.com/config) compiler: arceb-elf-gcc (GCC) 13.2.0 dtschema version: 2024.6.dev2+g3b69bad reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240628/202406280202.IRKWOMQk-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202406280202.IRKWOMQk-lkp@intel.com/ dtcheck warnings: (new ones prefixed by >>) arch/arc/boot/dts/axs101.dtb: axs10x_mb: connector: 'ranges' is a required property from schema $id: http://devicetree.org/schemas/simple-bus.yaml# arch/arc/boot/dts/axs101.dtb: axs10x_mb: clocks: 'ranges' is a required property from schema $id: http://devicetree.org/schemas/simple-bus.yaml# arch/arc/boot/dts/axs101.dtb: axs10x_mb: sound_playback: 'ranges' is a required property from schema $id: http://devicetree.org/schemas/simple-bus.yaml# arch/arc/boot/dts/axs101.dtb: /axs10x_mb/i2sclk@100a0: failed to match any schema with compatible: ['snps,axs10x-i2s-pll-clock'] arch/arc/boot/dts/axs101.dtb: i2cclk: clock-frequency:0:0: 50000000 is greater than the maximum of 5000000 from schema $id: http://devicetree.org/schemas/i2c/i2c-controller.yaml# arch/arc/boot/dts/axs101.dtb: /axs10x_mb/pguclk@10080: failed to match any schema with compatible: ['snps,axs10x-pgu-pll-clock'] >> arch/arc/boot/dts/axs101.dtb: ethernet@18000: snps,pbl: False schema does not allow [[32]] from schema $id: http://devicetree.org/schemas/net/snps,dwmac.yaml# arch/arc/boot/dts/axs101.dtb: uart@20000: $nodename:0: 'uart@20000' does not match '^serial(@.*)?$' from schema $id: http://devicetree.org/schemas/serial/snps-dw-apb-uart.yaml# arch/arc/boot/dts/axs101.dtb: uart@20000: Unevaluated properties are not allowed ('baud' was unexpected) from schema $id: http://devicetree.org/schemas/serial/snps-dw-apb-uart.yaml# arch/arc/boot/dts/axs101.dtb: uart@21000: $nodename:0: 'uart@21000' does not match '^serial(@.*)?$' from schema $id: http://devicetree.org/schemas/serial/snps-dw-apb-uart.yaml# arch/arc/boot/dts/axs101.dtb: uart@21000: Unevaluated properties are not allowed ('baud' was unexpected) from schema $id: http://devicetree.org/schemas/serial/snps-dw-apb-uart.yaml# arch/arc/boot/dts/axs101.dtb: uart@22000: $nodename:0: 'uart@22000' does not match '^serial(@.*)?$' -- from schema $id: http://devicetree.org/schemas/serial/snps-dw-apb-uart.yaml# arch/arc/boot/dts/axs103.dtb: /cpu_card/pct: failed to match any schema with compatible: ['snps,archs-pct'] arch/arc/boot/dts/axs103.dtb: axs10x_mb: $nodename:0: 'axs10x_mb' does not match '^([a-z][a-z0-9\\-]+-bus|bus|localbus|soc|axi|ahb|apb)(@.+)?$' from schema $id: http://devicetree.org/schemas/simple-bus.yaml# arch/arc/boot/dts/axs103.dtb: axs10x_mb: connector: 'ranges' is a required property from schema $id: http://devicetree.org/schemas/simple-bus.yaml# arch/arc/boot/dts/axs103.dtb: axs10x_mb: clocks: 'ranges' is a required property from schema $id: http://devicetree.org/schemas/simple-bus.yaml# arch/arc/boot/dts/axs103.dtb: axs10x_mb: sound_playback: 'ranges' is a required property from schema $id: http://devicetree.org/schemas/simple-bus.yaml# >> arch/arc/boot/dts/axs103.dtb: ethernet@18000: snps,pbl: False schema does not allow [[32]] from schema $id: http://devicetree.org/schemas/net/snps,dwmac.yaml# arch/arc/boot/dts/axs103.dtb: usb@40000: Unevaluated properties are not allowed ('dma-coherent' was unexpected) from schema $id: http://devicetree.org/schemas/usb/generic-ehci.yaml# arch/arc/boot/dts/axs103.dtb: usb@60000: Unevaluated properties are not allowed ('dma-coherent' was unexpected) from schema $id: http://devicetree.org/schemas/usb/generic-ohci.yaml# arch/arc/boot/dts/axs103.dtb: mmc@15000: Unevaluated properties are not allowed ('dma-coherent' was unexpected) from schema $id: http://devicetree.org/schemas/mmc/synopsys-dw-mshc.yaml# arch/arc/boot/dts/axs103.dtb: /axs10x_mb/i2sclk@100a0: failed to match any schema with compatible: ['snps,axs10x-i2s-pll-clock'] arch/arc/boot/dts/axs103.dtb: i2cclk: clock-frequency:0:0: 50000000 is greater than the maximum of 5000000 from schema $id: http://devicetree.org/schemas/i2c/i2c-controller.yaml# -- from schema $id: http://devicetree.org/schemas/serial/snps-dw-apb-uart.yaml# arch/arc/boot/dts/axs103_idu.dtb: /cpu_card/pct: failed to match any schema with compatible: ['snps,archs-pct'] arch/arc/boot/dts/axs103_idu.dtb: axs10x_mb: $nodename:0: 'axs10x_mb' does not match '^([a-z][a-z0-9\\-]+-bus|bus|localbus|soc|axi|ahb|apb)(@.+)?$' from schema $id: http://devicetree.org/schemas/simple-bus.yaml# arch/arc/boot/dts/axs103_idu.dtb: axs10x_mb: connector: 'ranges' is a required property from schema $id: http://devicetree.org/schemas/simple-bus.yaml# arch/arc/boot/dts/axs103_idu.dtb: axs10x_mb: clocks: 'ranges' is a required property from schema $id: http://devicetree.org/schemas/simple-bus.yaml# arch/arc/boot/dts/axs103_idu.dtb: axs10x_mb: sound_playback: 'ranges' is a required property from schema $id: http://devicetree.org/schemas/simple-bus.yaml# >> arch/arc/boot/dts/axs103_idu.dtb: ethernet@18000: snps,pbl: False schema does not allow [[32]] from schema $id: http://devicetree.org/schemas/net/snps,dwmac.yaml# arch/arc/boot/dts/axs103_idu.dtb: usb@40000: Unevaluated properties are not allowed ('dma-coherent' was unexpected) from schema $id: http://devicetree.org/schemas/usb/generic-ehci.yaml# arch/arc/boot/dts/axs103_idu.dtb: usb@60000: Unevaluated properties are not allowed ('dma-coherent' was unexpected) from schema $id: http://devicetree.org/schemas/usb/generic-ohci.yaml# arch/arc/boot/dts/axs103_idu.dtb: mmc@15000: Unevaluated properties are not allowed ('dma-coherent' was unexpected) from schema $id: http://devicetree.org/schemas/mmc/synopsys-dw-mshc.yaml# arch/arc/boot/dts/axs103_idu.dtb: /axs10x_mb/i2sclk@100a0: failed to match any schema with compatible: ['snps,axs10x-i2s-pll-clock'] arch/arc/boot/dts/axs103_idu.dtb: i2cclk: clock-frequency:0:0: 50000000 is greater than the maximum of 5000000 from schema $id: http://devicetree.org/schemas/i2c/i2c-controller.yaml# -- arch/arc/boot/dts/hsdk.dtb: soc: gpu-core-clk: 'ranges' is a required property from schema $id: http://devicetree.org/schemas/simple-bus.yaml# arch/arc/boot/dts/hsdk.dtb: soc: mmcclk-biu: 'ranges' is a required property from schema $id: http://devicetree.org/schemas/simple-bus.yaml# arch/arc/boot/dts/hsdk.dtb: soc: gpu-cfg-clk: 'ranges' is a required property from schema $id: http://devicetree.org/schemas/simple-bus.yaml# arch/arc/boot/dts/hsdk.dtb: /soc/reset-controller@8a0: failed to match any schema with compatible: ['snps,hsdk-reset'] arch/arc/boot/dts/hsdk.dtb: /soc/core-clk@0: failed to match any schema with compatible: ['snps,hsdk-core-pll-clock'] arch/arc/boot/dts/hsdk.dtb: serial@5000: Unevaluated properties are not allowed ('baud' was unexpected) from schema $id: http://devicetree.org/schemas/serial/snps-dw-apb-uart.yaml# >> arch/arc/boot/dts/hsdk.dtb: ethernet@8000: snps,pbl: False schema does not allow [[32]] from schema $id: http://devicetree.org/schemas/net/snps,dwmac.yaml# arch/arc/boot/dts/hsdk.dtb: usb@60000: Unevaluated properties are not allowed ('dma-coherent' was unexpected) from schema $id: http://devicetree.org/schemas/usb/generic-ohci.yaml# arch/arc/boot/dts/hsdk.dtb: usb@40000: Unevaluated properties are not allowed ('dma-coherent' was unexpected) from schema $id: http://devicetree.org/schemas/usb/generic-ehci.yaml# arch/arc/boot/dts/hsdk.dtb: mmc@a000: Unevaluated properties are not allowed ('dma-coherent', 'num-slots' were unexpected) from schema $id: http://devicetree.org/schemas/mmc/synopsys-dw-mshc.yaml# arch/arc/boot/dts/hsdk.dtb: /soc/gpio@14b0: failed to match any schema with compatible: ['snps,creg-gpio-hsdk'] arch/arc/boot/dts/hsdk.dtb: dmac@80000: '#dma-cells' is a required property from schema $id: http://devicetree.org/schemas/dma/snps,dw-axi-dmac.yaml# -- arch/arc/boot/dts/vdk_hs38.dtb: /cpu_card/archs-intc@cpu: failed to match any schema with compatible: ['snps,archs-intc'] arch/arc/boot/dts/vdk_hs38.dtb: dw-apb-uart@5000: $nodename:0: 'dw-apb-uart@5000' does not match '^serial(@.*)?$' from schema $id: http://devicetree.org/schemas/serial/snps-dw-apb-uart.yaml# arch/arc/boot/dts/vdk_hs38.dtb: dw-apb-uart@5000: Unevaluated properties are not allowed ('baud' was unexpected) from schema $id: http://devicetree.org/schemas/serial/snps-dw-apb-uart.yaml# arch/arc/boot/dts/vdk_hs38.dtb: /interrupt-controller@e0012000: failed to match any schema with compatible: ['snps,dw-apb-ictl'] arch/arc/boot/dts/vdk_hs38.dtb: axs10x_mb_vdk: $nodename:0: 'axs10x_mb_vdk' does not match '^([a-z][a-z0-9\\-]+-bus|bus|localbus|soc|axi|ahb|apb)(@.+)?$' from schema $id: http://devicetree.org/schemas/simple-bus.yaml# arch/arc/boot/dts/vdk_hs38.dtb: axs10x_mb_vdk: clocks: 'ranges' is a required property from schema $id: http://devicetree.org/schemas/simple-bus.yaml# >> arch/arc/boot/dts/vdk_hs38.dtb: ethernet@18000: snps,pbl: False schema does not allow [[32]] from schema $id: http://devicetree.org/schemas/net/snps,dwmac.yaml# arch/arc/boot/dts/vdk_hs38.dtb: uart@20000: $nodename:0: 'uart@20000' does not match '^serial(@.*)?$' from schema $id: http://devicetree.org/schemas/serial/snps-dw-apb-uart.yaml# arch/arc/boot/dts/vdk_hs38.dtb: uart@20000: Unevaluated properties are not allowed ('baud' was unexpected) from schema $id: http://devicetree.org/schemas/serial/snps-dw-apb-uart.yaml# arch/arc/boot/dts/vdk_hs38.dtb: uart@21000: $nodename:0: 'uart@21000' does not match '^serial(@.*)?$' from schema $id: http://devicetree.org/schemas/serial/snps-dw-apb-uart.yaml# arch/arc/boot/dts/vdk_hs38.dtb: uart@21000: Unevaluated properties are not allowed ('baud' was unexpected) from schema $id: http://devicetree.org/schemas/serial/snps-dw-apb-uart.yaml# arch/arc/boot/dts/vdk_hs38.dtb: uart@22000: $nodename:0: 'uart@22000' does not match '^serial(@.*)?$' -- arch/arc/boot/dts/vdk_hs38_smp.dtb: /cpu_card/idu-interrupt-controller: failed to match any schema with compatible: ['snps,archs-idu-intc'] arch/arc/boot/dts/vdk_hs38_smp.dtb: dw-apb-uart@5000: $nodename:0: 'dw-apb-uart@5000' does not match '^serial(@.*)?$' from schema $id: http://devicetree.org/schemas/serial/snps-dw-apb-uart.yaml# arch/arc/boot/dts/vdk_hs38_smp.dtb: dw-apb-uart@5000: Unevaluated properties are not allowed ('baud' was unexpected) from schema $id: http://devicetree.org/schemas/serial/snps-dw-apb-uart.yaml# arch/arc/boot/dts/vdk_hs38_smp.dtb: /interrupt-controller@e0012000: failed to match any schema with compatible: ['snps,dw-apb-ictl'] arch/arc/boot/dts/vdk_hs38_smp.dtb: axs10x_mb_vdk: $nodename:0: 'axs10x_mb_vdk' does not match '^([a-z][a-z0-9\\-]+-bus|bus|localbus|soc|axi|ahb|apb)(@.+)?$' from schema $id: http://devicetree.org/schemas/simple-bus.yaml# arch/arc/boot/dts/vdk_hs38_smp.dtb: axs10x_mb_vdk: clocks: 'ranges' is a required property from schema $id: http://devicetree.org/schemas/simple-bus.yaml# >> arch/arc/boot/dts/vdk_hs38_smp.dtb: ethernet@18000: snps,pbl: False schema does not allow [[32]] from schema $id: http://devicetree.org/schemas/net/snps,dwmac.yaml# arch/arc/boot/dts/vdk_hs38_smp.dtb: uart@20000: $nodename:0: 'uart@20000' does not match '^serial(@.*)?$' from schema $id: http://devicetree.org/schemas/serial/snps-dw-apb-uart.yaml# arch/arc/boot/dts/vdk_hs38_smp.dtb: uart@20000: Unevaluated properties are not allowed ('baud' was unexpected) from schema $id: http://devicetree.org/schemas/serial/snps-dw-apb-uart.yaml# arch/arc/boot/dts/vdk_hs38_smp.dtb: uart@21000: $nodename:0: 'uart@21000' does not match '^serial(@.*)?$' from schema $id: http://devicetree.org/schemas/serial/snps-dw-apb-uart.yaml# arch/arc/boot/dts/vdk_hs38_smp.dtb: uart@21000: Unevaluated properties are not allowed ('baud' was unexpected) from schema $id: http://devicetree.org/schemas/serial/snps-dw-apb-uart.yaml# arch/arc/boot/dts/vdk_hs38_smp.dtb: uart@22000: $nodename:0: 'uart@22000' does not match '^serial(@.*)?$'
On Wed, Jun 26, 2024 at 9:05 AM Serge Semin <fancer.lancer@gmail.com> wrote: > > Hi Rob > > On Tue, Jun 25, 2024 at 03:54:41PM -0600, Rob Herring (Arm) wrote: > > Convention is DT schemas should define all properties at the top-level > > and not inside of if/then schemas. That minimizes the if/then schemas > > and is more future proof. > > > > Signed-off-by: Rob Herring (Arm) <robh@kernel.org> > > --- > > .../devicetree/bindings/net/mediatek,net.yaml | 28 +-- > > > .../devicetree/bindings/net/snps,dwmac.yaml | 167 +++++++++--------- > > For Synopsys DW MACs you can just move the PBL-properties constraints to > the top-level schema part with no compatible-based conditional > validation left. It's because the DMA PBL settings are available on all the > DW MAC IP-cores (DW MAC, DW GMAC, DW QoS Eth, DW XGMAC, DW XLGMAC). > Moreover the STMMAC driver responsible for the DW MAC device handling > parses the pbl* properties for all IP-cores irrespective from the > device compatible string. That's definitely better. Will still need the TSO flag part though, really, who cares if someone wants to set that on h/w without TSO... > > Alternatively you can just merge in the attached patch, which BTW you > have already reviewed sometime ago. Can you send that to the list since it changed from the last version. Rob
On Thu, Jun 27, 2024 at 01:03:01PM -0600, Rob Herring wrote: > On Wed, Jun 26, 2024 at 9:05 AM Serge Semin <fancer.lancer@gmail.com> wrote: > > > > Hi Rob > > > > On Tue, Jun 25, 2024 at 03:54:41PM -0600, Rob Herring (Arm) wrote: > > > Convention is DT schemas should define all properties at the top-level > > > and not inside of if/then schemas. That minimizes the if/then schemas > > > and is more future proof. > > > > > > Signed-off-by: Rob Herring (Arm) <robh@kernel.org> > > > --- > > > .../devicetree/bindings/net/mediatek,net.yaml | 28 +-- > > > > > .../devicetree/bindings/net/snps,dwmac.yaml | 167 +++++++++--------- > > > > For Synopsys DW MACs you can just move the PBL-properties constraints to > > the top-level schema part with no compatible-based conditional > > validation left. It's because the DMA PBL settings are available on all the > > DW MAC IP-cores (DW MAC, DW GMAC, DW QoS Eth, DW XGMAC, DW XLGMAC). > > Moreover the STMMAC driver responsible for the DW MAC device handling > > parses the pbl* properties for all IP-cores irrespective from the > > device compatible string. > > That's definitely better. > Will still need the TSO flag part though, > really, who cares if someone wants to set that on h/w without TSO... Besides the TSO property description is wrong in describing the semantics of the DT-property and MAC HW-capability. The description says that the property enables the TSO feature "otherwise it will be managed by MAC HW capability register." So it means that the "snps,tso" property was supposed to be utilized for force-enabling the TSO feature irrelevant of the MAC HW-capability register data. Instead the STMMAC driver enables the TSO engine only if both "snps,tso" DT-property is specified and the TSO-feature has been detected via the MAC HW capability. > > > > > Alternatively you can just merge in the attached patch, which BTW you > > have already reviewed sometime ago. > > Can you send that to the list since it changed from the last version. Ok. Please find the submitted patch here: https://lore.kernel.org/netdev/20240628154515.8783-1-fancer.lancer@gmail.com -Serge(y) > > Rob
diff --git a/Documentation/devicetree/bindings/net/mediatek,net.yaml b/Documentation/devicetree/bindings/net/mediatek,net.yaml index 3202dc7967c5..686b5c2fae40 100644 --- a/Documentation/devicetree/bindings/net/mediatek,net.yaml +++ b/Documentation/devicetree/bindings/net/mediatek,net.yaml @@ -68,6 +68,17 @@ properties: Phandle to the syscon node that handles the path from GMAC to PHY variants. + mediatek,pcie-mirror: + $ref: /schemas/types.yaml#/definitions/phandle + description: + Phandle to the mediatek pcie-mirror controller. + + mediatek,pctl: + $ref: /schemas/types.yaml#/definitions/phandle + description: + Phandle to the syscon node that handles the ports slew rate and + driver current. + mediatek,sgmiisys: $ref: /schemas/types.yaml#/definitions/phandle-array minItems: 1 @@ -131,15 +142,12 @@ allOf: mediatek,infracfg: false - mediatek,pctl: - $ref: /schemas/types.yaml#/definitions/phandle - description: - Phandle to the syscon node that handles the ports slew rate and - driver current. - mediatek,wed: false mediatek,wed-pcie: false + else: + properties: + mediatek,pctl: false - if: properties: @@ -201,12 +209,10 @@ allOf: minItems: 1 maxItems: 1 - mediatek,pcie-mirror: - $ref: /schemas/types.yaml#/definitions/phandle - description: - Phandle to the mediatek pcie-mirror controller. - mediatek,wed-pcie: false + else: + properties: + mediatek,pcie-mirror: false - if: properties: diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml index 21cc27e75f50..023865b6f497 100644 --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml @@ -485,6 +485,38 @@ properties: description: Frequency division factor for MDC clock. + snps,pbl: + description: + Programmable Burst Length (tx and rx) + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [1, 2, 4, 8, 16, 32] + + snps,txpbl: + description: + Tx Programmable Burst Length. If set, DMA tx will use this value rather + than snps,pbl. + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [1, 2, 4, 8, 16, 32] + + snps,rxpbl: + description: + Rx Programmable Burst Length. If set, DMA rx will use this value rather + than snps,pbl. + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [1, 2, 4, 8, 16, 32] + + snps,no-pbl-x8: + $ref: /schemas/types.yaml#/definitions/flag + description: + Don\'t multiply the pbl/txpbl/rxpbl values by 8. For core rev < 3.50, + don\'t multiply the values by 4. + + snps,tso: + $ref: /schemas/types.yaml#/definitions/flag + description: + Enables the TSO feature otherwise it will be managed by MAC HW capability + register. + mdio: $ref: mdio.yaml# unevaluatedProperties: false @@ -568,95 +600,72 @@ allOf: - if: properties: compatible: - contains: - enum: - - allwinner,sun7i-a20-gmac - - allwinner,sun8i-a83t-emac - - allwinner,sun8i-h3-emac - - allwinner,sun8i-r40-gmac - - allwinner,sun8i-v3s-emac - - allwinner,sun50i-a64-emac - - ingenic,jz4775-mac - - ingenic,x1000-mac - - ingenic,x1600-mac - - ingenic,x1830-mac - - ingenic,x2000-mac - - qcom,sa8775p-ethqos - - qcom,sc8280xp-ethqos - - snps,dwmac-3.50a - - snps,dwmac-4.10a - - snps,dwmac-4.20a - - snps,dwmac-5.20 - - snps,dwxgmac - - snps,dwxgmac-2.10 - - st,spear600-gmac + not: + contains: + enum: + - allwinner,sun7i-a20-gmac + - allwinner,sun8i-a83t-emac + - allwinner,sun8i-h3-emac + - allwinner,sun8i-r40-gmac + - allwinner,sun8i-v3s-emac + - allwinner,sun50i-a64-emac + - ingenic,jz4775-mac + - ingenic,x1000-mac + - ingenic,x1600-mac + - ingenic,x1830-mac + - ingenic,x2000-mac + - qcom,sa8775p-ethqos + - qcom,sc8280xp-ethqos + - snps,dwmac-3.50a + - snps,dwmac-4.10a + - snps,dwmac-4.20a + - snps,dwmac-5.20 + - snps,dwxgmac + - snps,dwxgmac-2.10 + - st,spear600-gmac then: properties: - snps,pbl: - description: - Programmable Burst Length (tx and rx) - $ref: /schemas/types.yaml#/definitions/uint32 - enum: [1, 2, 4, 8, 16, 32] - - snps,txpbl: - description: - Tx Programmable Burst Length. If set, DMA tx will use this - value rather than snps,pbl. - $ref: /schemas/types.yaml#/definitions/uint32 - enum: [1, 2, 4, 8, 16, 32] - - snps,rxpbl: - description: - Rx Programmable Burst Length. If set, DMA rx will use this - value rather than snps,pbl. - $ref: /schemas/types.yaml#/definitions/uint32 - enum: [1, 2, 4, 8, 16, 32] - - snps,no-pbl-x8: - $ref: /schemas/types.yaml#/definitions/flag - description: - Don\'t multiply the pbl/txpbl/rxpbl values by 8. For core - rev < 3.50, don\'t multiply the values by 4. + snps,pbl: false + snps,txpbl: false + snps,rxpbl: false + snps,no-pbl-x8: false - if: properties: compatible: - contains: - enum: - - allwinner,sun7i-a20-gmac - - allwinner,sun8i-a83t-emac - - allwinner,sun8i-h3-emac - - allwinner,sun8i-r40-gmac - - allwinner,sun8i-v3s-emac - - allwinner,sun50i-a64-emac - - loongson,ls2k-dwmac - - loongson,ls7a-dwmac - - ingenic,jz4775-mac - - ingenic,x1000-mac - - ingenic,x1600-mac - - ingenic,x1830-mac - - ingenic,x2000-mac - - qcom,qcs404-ethqos - - qcom,sa8775p-ethqos - - qcom,sc8280xp-ethqos - - qcom,sm8150-ethqos - - snps,dwmac-4.00 - - snps,dwmac-4.10a - - snps,dwmac-4.20a - - snps,dwmac-5.10a - - snps,dwmac-5.20 - - snps,dwxgmac - - snps,dwxgmac-2.10 - - st,spear600-gmac + not: + contains: + enum: + - allwinner,sun7i-a20-gmac + - allwinner,sun8i-a83t-emac + - allwinner,sun8i-h3-emac + - allwinner,sun8i-r40-gmac + - allwinner,sun8i-v3s-emac + - allwinner,sun50i-a64-emac + - loongson,ls2k-dwmac + - loongson,ls7a-dwmac + - ingenic,jz4775-mac + - ingenic,x1000-mac + - ingenic,x1600-mac + - ingenic,x1830-mac + - ingenic,x2000-mac + - qcom,qcs404-ethqos + - qcom,sa8775p-ethqos + - qcom,sc8280xp-ethqos + - qcom,sm8150-ethqos + - snps,dwmac-4.00 + - snps,dwmac-4.10a + - snps,dwmac-4.20a + - snps,dwmac-5.10a + - snps,dwmac-5.20 + - snps,dwxgmac + - snps,dwxgmac-2.10 + - st,spear600-gmac then: properties: - snps,tso: - $ref: /schemas/types.yaml#/definitions/flag - description: - Enables the TSO feature otherwise it will be managed by - MAC HW capability register. + snps,tso: false additionalProperties: true
Convention is DT schemas should define all properties at the top-level and not inside of if/then schemas. That minimizes the if/then schemas and is more future proof. Signed-off-by: Rob Herring (Arm) <robh@kernel.org> --- .../devicetree/bindings/net/mediatek,net.yaml | 28 +-- .../devicetree/bindings/net/snps,dwmac.yaml | 167 +++++++++--------- 2 files changed, 105 insertions(+), 90 deletions(-)