On 06/01/2023 20:33, Andreas Kemnade wrote: > On Fri, 6 Jan 2023 09:41:01 +0100 > Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> wrote: > >> On 05/01/2023 22:38, Andreas Kemnade wrote: >>> Currently make dtbs_check shows lots of errors because imx*.dtsi does >>> not use single compatibles but combinations of them. >>> Allow all the combinations used there. >>> >>> Patches fixing the dtsi files according to binding documentation were >>> submitted multiple times and are commonly rejected, so relax the rules. >>> Example: >>> https://lore.kernel.org/linux-devicetree/72e1194e10ccb4f87aed96265114f0963e805092.camel@xxxxxxxxxxxxxx/ >>> >>> Reason: compatibility of new dtbs with old kernels or bootloaders. >>> >>> This will significantly reduce noise on make dtbs_check. >>> >>> Signed-off-by: Andreas Kemnade <andreas@xxxxxxxxxxxx> >>> --- >>> .../bindings/mmc/fsl-imx-esdhc.yaml | 24 +++++++++++++++++++ >>> 1 file changed, 24 insertions(+) >>> >>> diff --git a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml >>> index dc6256f04b42..118ebb75f136 100644 >>> --- a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml >>> +++ b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml >>> @@ -37,6 +37,30 @@ properties: >>> - fsl,imx8mm-usdhc >>> - fsl,imxrt1050-usdhc >>> - nxp,s32g2-usdhc >> >> You must drop the items from enum above. Binding saying: >> compatible="A" >> or: >> compatible="A", "B" >> >> is not correct. Either A is or is not compatible with B. >> > hmm, here we have A = B + some additional features > or > A = B + some additional features and additional quirks required. So why do you allow A alone? > > For the latter we have e.g. > A= > static const struct esdhc_soc_data usdhc_imx6sx_data = { > .flags = ESDHC_FLAG_USDHC | ESDHC_FLAG_STD_TUNING > | ESDHC_FLAG_HAVE_CAP1 | ESDHC_FLAG_HS200 > | ESDHC_FLAG_STATE_LOST_IN_LPMODE > | ESDHC_FLAG_BROKEN_AUTO_CMD23, > }; > B= > static const struct esdhc_soc_data usdhc_imx6sl_data = { > .flags = ESDHC_FLAG_USDHC | ESDHC_FLAG_STD_TUNING > | ESDHC_FLAG_HAVE_CAP1 | ESDHC_FLAG_ERR004536 > | ESDHC_FLAG_HS200 > | ESDHC_FLAG_BROKEN_AUTO_CMD23, > }; > > so there is the difference in ESDHC_FLAG_STATE_LOST_IN_LPMODE. > That might make no difference in some usage scenario (e.g. some bootloader > not doing any LPMODE), but I wonder why > we need to *enforce* specifying such half-compatible things. I asked to remove half-compatible. Not to enforce. Best regards, Krzysztof