From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 3738AC25B75 for ; Sun, 19 May 2024 18:43:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=uZXWas5ukHEaA5Jn9t3g/H9xbH54tGsztdHb+DbhZy8=; b=AL5Jh57BCpX4We LkeG+beo46ajbU582odz9QZgfGhxlJCnNhJSsQfRkmvIiAhP9v469+Kn5CFfbnbCwk6Jl+4Zae73P MSnDqSxsQIegSK8xxAVXF2tuPa1N/rGH9cc33TdUSQLdvlkp1CefAXOMgtNUuWe9umUBCQvEtDclA u/lq+yj4btB0sm7X+WTtQxXKKdOAR2DfFcaNnwS2aE2S/eOP9cEwMQHMJoggYNGPBMntr0H9f1EZL aOY8NjSX6C3r6oX7xilqHeIjzS3uGs6tQ97DF5aP0JmUTU7fghcLXs/KRhRddK8i1mGhqRWMuYq6y vaVl/0lTBy2+j28XgkFQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s8lV5-0000000CWgY-1nry; Sun, 19 May 2024 18:43:15 +0000 Received: from mail-ed1-x532.google.com ([2a00:1450:4864:20::532]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s8lUc-0000000CWLm-0oZC for linux-arm-kernel@lists.infradead.org; Sun, 19 May 2024 18:42:48 +0000 Received: by mail-ed1-x532.google.com with SMTP id 4fb4d7f45d1cf-5755fafa5a7so1384126a12.1 for ; Sun, 19 May 2024 11:42:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1716144165; x=1716748965; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=M7SjlJl42p0vv40zj9mQVcZTHeMqcgXlSP/MvwIgG+g=; b=af5hKVNLSwIq9j0nlW/oLrRGQvm0obvV2uNAHJUN1PBR3FqYXw4b8RW1nibQSPxcCl 88N9QZDvIIghnm01FjNjgcrIQt8pS3fHJCCQfgddLFoaMsYmVIoJFx1Q6cawcJdWkb2P pWqp9VBXo/tvF1JHaSoqOY6DcOaFzVN2gI6UkGkdV26T7to0l+oa87QNoOHROsOFpVdy YTKn/JG4nQG4rYFIPO7g6ttDsiO0UqdofOsE6QPAM+iQB2Vir7565nBgexxVb1UYkVuQ SUae5+z/YRebzcTlmRqaXeKRAeVk/Z3Bx4ZGn+rgTbF5kUjKffhV12qVOTs9cckBvBzH bNvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716144165; x=1716748965; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=M7SjlJl42p0vv40zj9mQVcZTHeMqcgXlSP/MvwIgG+g=; b=BLsc+T7vPRB/40EzsBZHDrfLno3N19hnJ3G5m7M8+86wor4eGJ3JmgjbcyS8xzBlh5 gw0DwMPnbJIeyd/kFf+e0hlV8BdIKnBuhzSiqb1APtsjf0IwUFkgrGmOqpSG+lsqLCJq KyJyprVmg5/p8X7hBcxn8hkcf+/h8l16iHFhWCtqNGe0AU7f8fbOSZSqdj8tL5PiS2Ci tjE1/lRgzVDqQ32E8IiXzUTdOyAzeH1VfjV+DUKT20XDGCTy/GLC/fdeePdnToYt0Yd0 lZCHaW99SAHDZQrH/9tc3v7vD5PtL+Hq0ZSE/gs0EtsmWzsLBgS1GqNUN24kcZR/0tQq 9aNg== X-Forwarded-Encrypted: i=1; AJvYcCUjGCaYFhioHO62hsE44Ikq0Mu3hxm+zZnrkObQrQsFwYuENODnoWaILZnRSkih+pKzf7q9lKM5AALyUIVKZuoYUKgkd/aQa+d4fVQqDKf1iXg2TLY= X-Gm-Message-State: AOJu0YyG9fCIoemkTOdUfa57Qmf2NRGtK/VNImujQSzeTCWdjhO2z6n1 AhmQtZJGuaLBCUg44AB2Gtm0O1ccIsub3G8DeuYGMEadfSLKeg5REPgZ12La9CM= X-Google-Smtp-Source: AGHT+IEsFEpdSqOAM6J5qyzDUCJneEXJ3Ysf7DmgHnwA7qHARRDxO2SQ1UpJZcz+0tw+btI581FdDA== X-Received: by 2002:a50:c359:0:b0:574:fe5f:4f79 with SMTP id 4fb4d7f45d1cf-574fe5f5348mr6793830a12.24.1716144164805; Sun, 19 May 2024 11:42:44 -0700 (PDT) Received: from [127.0.1.1] ([178.197.206.169]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-575313d97desm1789397a12.41.2024.05.19.11.42.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 May 2024 11:42:44 -0700 (PDT) From: Krzysztof Kozlowski Date: Sun, 19 May 2024 20:42:21 +0200 Subject: [PATCH 6/8] dt-bindings: mfd: syscon: Split and enforce documenting MFD children MIME-Version: 1.0 Message-Id: <20240519-dt-bindings-mfd-syscon-split-v1-6-aaf996e2313a@linaro.org> References: <20240519-dt-bindings-mfd-syscon-split-v1-0-aaf996e2313a@linaro.org> In-Reply-To: <20240519-dt-bindings-mfd-syscon-split-v1-0-aaf996e2313a@linaro.org> To: Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Lars Povlsen , Steen Hegelund , Daniel Machon , UNGLinuxDriver@microchip.com, Nishanth Menon , Matthias Brugger , AngeloGioacchino Del Regno Cc: Jiaxun Yang , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Krzysztof Kozlowski X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=11415; i=krzysztof.kozlowski@linaro.org; h=from:subject:message-id; bh=qtoYw3fdVhclXTClljRbEBWK7+OTsR0mSt+0Br6IjhU=; b=owEBbQKS/ZANAwAKAcE3ZuaGi4PXAcsmYgBmSkgVnvLOsAJbHLJZCtbySDycWCqH0kFau5Quu 6kHj0zLHKyJAjMEAAEKAB0WIQTd0mIoPREbIztuuKjBN2bmhouD1wUCZkpIFQAKCRDBN2bmhouD 11QlEACYNX//aIKpWxoPYETKQidjY/01vwBwUZEG3iDc/egKhwD2iVfGd0rm6KjUtPJhvdtZAnP fYeCYFMi9Lri8n7rvQFpDAm7PLaiGyL0+U0gq5RIj7JYkXwoxVPfFGoXv+MJQZypBBZwJ/qjK0U 3/YY2b3dJgwNBg3jQQvKxHQJaInhAijErYzdTFydtQomLKu5T4t73Ru/DduOLdSqEv1pofdcdg7 7ncFXrD7zoxDSC2E0yUvua44Uv4wigxUweERoCJeWvQ8vdLlcIc4d5RroOuCLsX6At7owc5N8xs bNI75Le0SoUU4Isqk1mEhEHB+lYuWx8nZEVyyhay3/7xcWDnxlao4ICn8LfDTNrWq0KPEFnRaKB N0lLM2rRnkJ5V7XCK9Wzssuv9oKZbirV3M+J95ZplRoXldvrPKmgqvdwnaDMWjzkR3JgiwdCfSE bjdiO7w8n8Q6Np9PdQ3DnT7ha/rliYae3kculV9a8FMiOaKc7AgilHdtePkXVPTUXMiayc10wd5 tYx0OQsKfvNIrtRMXoOyEz6VAxjX0K6VWjr4kauUpfbJrEKTdlmbTsK7irRWNBhUBe23lWr1dPC 1dY0Sn/+w2ynLy6N54QC1G3Ez5J4hib7NBVB2+c96ynOLH5QvRspEOb80cCgSgTLkzY+xw1Vvpr wpkAzYsUZ8Em3Ew== X-Developer-Key: i=krzysztof.kozlowski@linaro.org; a=openpgp; fpr=9BD07E0E0C51F8D59677B7541B93437D3B41629B X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240519_114246_508247_81BD5F2A X-CRM114-Status: GOOD ( 17.42 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Simple syscon nodes can be documented in common syscon.yaml, however devices with simple-mfd compatible, thus with some children, should have their own schema listing these children. Such listing makes the binding specific, allows better validation (so the incorrect child would not appear in the simple-mfd node) and actually enforces repeated rule for simple-mfd devices: "simple-mfd" is only for simple devices, where the children do not depend on the parent. Currently the syscon+simple-mfd binding is quite broad and allows any child or property, thus above rule cannot be enforced. Split the syscon.yaml binding into: 1. Common syscon properties, used potentially by many bindings. 2. Simple syscon devices (NO simple-mfd!). Signed-off-by: Krzysztof Kozlowski --- Depends on: 1. https://lore.kernel.org/r/20240510123018.3902184-1-robh@kernel.org 2. Previous patches in the series. --- .../devicetree/bindings/mfd/syscon-common.yaml | 72 +++++++ Documentation/devicetree/bindings/mfd/syscon.yaml | 212 +++++++++------------ 2 files changed, 162 insertions(+), 122 deletions(-) diff --git a/Documentation/devicetree/bindings/mfd/syscon-common.yaml b/Documentation/devicetree/bindings/mfd/syscon-common.yaml new file mode 100644 index 000000000000..c3ff3a7afce3 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/syscon-common.yaml @@ -0,0 +1,72 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mfd/syscon-common.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: System Controller Registers R/W Common Properties + +description: | + System controller node represents a register region containing a set + of miscellaneous registers. The registers are not cohesive enough to + represent as any specific type of device. The typical use-case is + for some other node's driver, or platform-specific code, to acquire + a reference to the syscon node (e.g. by phandle, node path, or + search using a specific compatible value), interrogate the node (or + associated OS driver) to determine the location of the registers, + and access the registers directly. + +maintainers: + - Lee Jones + +select: + properties: + compatible: + contains: + enum: + - syscon + + required: + - compatible + +properties: + compatible: + contains: + const: syscon + minItems: 2 + maxItems: 5 # Should be enough + + reg: + maxItems: 1 + + reg-io-width: + description: | + The size (in bytes) of the IO accesses that should be performed + on the device. + enum: [1, 2, 4, 8] + +required: + - compatible + - reg + +allOf: + - if: + properties: + compatible: + contains: + const: simple-mfd + then: + properties: + compatible: + minItems: 3 + maxItems: 5 + +additionalProperties: true + +examples: + - | + syscon: syscon@1c00000 { + compatible = "allwinner,sun8i-h3-system-controller", "syscon"; + reg = <0x01c00000 0x1000>; + }; +... diff --git a/Documentation/devicetree/bindings/mfd/syscon.yaml b/Documentation/devicetree/bindings/mfd/syscon.yaml index b17fa0487178..70e3961bc96f 100644 --- a/Documentation/devicetree/bindings/mfd/syscon.yaml +++ b/Documentation/devicetree/bindings/mfd/syscon.yaml @@ -4,7 +4,7 @@ $id: http://devicetree.org/schemas/mfd/syscon.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# -title: System Controller Registers R/W +title: System Controller Devices description: | System controller node represents a register region containing a set @@ -19,122 +19,99 @@ description: | maintainers: - Lee Jones -select: - properties: - compatible: - contains: - enum: - - syscon - - required: - - compatible - properties: compatible: - anyOf: - - items: - - enum: - - al,alpine-sysfabric-service - - allwinner,sun8i-a83t-system-controller - - allwinner,sun8i-h3-system-controller - - allwinner,sun8i-v3s-system-controller - - allwinner,sun50i-a64-system-controller - - altr,l3regs - - altr,sdr-ctl - - amd,pensando-elba-syscon - - amlogic,meson-mx-assist - - amlogic,meson-mx-bootrom - - amlogic,meson8-analog-top - - amlogic,meson8b-analog-top - - amlogic,meson8-pmu - - amlogic,meson8b-pmu - - apm,xgene-csw - - apm,xgene-efuse - - apm,xgene-mcb - - apm,xgene-rb - - apm,xgene-scu - - atmel,sama5d2-sfrbu - - atmel,sama5d3-nfc-io - - atmel,sama5d3-sfrbu - - atmel,sama5d4-sfrbu - - axis,artpec6-syscon - - brcm,cru-clkset - - brcm,sr-cdru - - brcm,sr-mhb - - cirrus,ep7209-syscon1 - - cirrus,ep7209-syscon2 - - cirrus,ep7209-syscon3 - - cnxt,cx92755-uc - - freecom,fsg-cs2-system-controller - - fsl,imx93-aonmix-ns-syscfg - - fsl,imx93-wakeupmix-syscfg - - fsl,ls1088a-reset - - fsl,vf610-anatop - - fsl,vf610-mscm-cpucfg - - hisilicon,dsa-subctrl - - hisilicon,hi6220-sramctrl - - hisilicon,hip04-ppe - - hisilicon,pcie-sas-subctrl - - hisilicon,peri-subctrl - - hpe,gxp-sysreg - - loongson,ls1b-syscon - - loongson,ls1c-syscon - - lsi,axxia-syscon - - marvell,armada-3700-cpu-misc - - marvell,armada-3700-nb-pm - - marvell,armada-3700-avs - - marvell,armada-3700-usb2-host-misc - - marvell,dove-global-config - - mediatek,mt2701-pctl-a-syscfg - - mediatek,mt2712-pctl-a-syscfg - - mediatek,mt6397-pctl-pmic-syscfg - - mediatek,mt8135-pctl-a-syscfg - - mediatek,mt8135-pctl-b-syscfg - - mediatek,mt8173-pctl-a-syscfg - - mediatek,mt8365-syscfg - - microchip,lan966x-cpu-syscon - - microchip,sam9x60-sfr - - microchip,sama7g5-ddr3phy - - mscc,ocelot-cpu-syscon - - mstar,msc313-pmsleep - - nuvoton,ma35d1-sys - - nuvoton,wpcm450-shm - - rockchip,px30-qos - - rockchip,rk3036-qos - - rockchip,rk3066-qos - - rockchip,rk3128-qos - - rockchip,rk3228-qos - - rockchip,rk3288-qos - - rockchip,rk3368-qos - - rockchip,rk3399-qos - - rockchip,rk3568-qos - - rockchip,rk3588-qos - - rockchip,rv1126-qos - - st,spear1340-misc - - stericsson,nomadik-pmu - - starfive,jh7100-sysmain - - ti,am62-usb-phy-ctrl - - ti,am62p-cpsw-mac-efuse - - ti,am654-dss-oldi-io-ctrl - - ti,j784s4-pcie-ctrl - - ti,keystone-pllctrl - - - const: syscon - - - contains: - const: syscon - minItems: 2 - maxItems: 5 # Should be enough + items: + - enum: + - al,alpine-sysfabric-service + - allwinner,sun8i-a83t-system-controller + - allwinner,sun8i-h3-system-controller + - allwinner,sun8i-v3s-system-controller + - allwinner,sun50i-a64-system-controller + - altr,l3regs + - altr,sdr-ctl + - amd,pensando-elba-syscon + - amlogic,meson-mx-assist + - amlogic,meson-mx-bootrom + - amlogic,meson8-analog-top + - amlogic,meson8b-analog-top + - amlogic,meson8-pmu + - amlogic,meson8b-pmu + - apm,xgene-csw + - apm,xgene-efuse + - apm,xgene-mcb + - apm,xgene-rb + - apm,xgene-scu + - atmel,sama5d2-sfrbu + - atmel,sama5d3-nfc-io + - atmel,sama5d3-sfrbu + - atmel,sama5d4-sfrbu + - axis,artpec6-syscon + - brcm,cru-clkset + - brcm,sr-cdru + - brcm,sr-mhb + - cirrus,ep7209-syscon1 + - cirrus,ep7209-syscon2 + - cirrus,ep7209-syscon3 + - cnxt,cx92755-uc + - freecom,fsg-cs2-system-controller + - fsl,imx93-aonmix-ns-syscfg + - fsl,imx93-wakeupmix-syscfg + - fsl,ls1088a-reset + - fsl,vf610-anatop + - fsl,vf610-mscm-cpucfg + - hisilicon,dsa-subctrl + - hisilicon,hi6220-sramctrl + - hisilicon,hip04-ppe + - hisilicon,pcie-sas-subctrl + - hisilicon,peri-subctrl + - hpe,gxp-sysreg + - loongson,ls1b-syscon + - loongson,ls1c-syscon + - lsi,axxia-syscon + - marvell,armada-3700-cpu-misc + - marvell,armada-3700-nb-pm + - marvell,armada-3700-avs + - marvell,armada-3700-usb2-host-misc + - marvell,dove-global-config + - mediatek,mt2701-pctl-a-syscfg + - mediatek,mt2712-pctl-a-syscfg + - mediatek,mt6397-pctl-pmic-syscfg + - mediatek,mt8135-pctl-a-syscfg + - mediatek,mt8135-pctl-b-syscfg + - mediatek,mt8173-pctl-a-syscfg + - mediatek,mt8365-syscfg + - microchip,lan966x-cpu-syscon + - microchip,sam9x60-sfr + - microchip,sama7g5-ddr3phy + - mscc,ocelot-cpu-syscon + - mstar,msc313-pmsleep + - nuvoton,ma35d1-sys + - nuvoton,wpcm450-shm + - rockchip,px30-qos + - rockchip,rk3036-qos + - rockchip,rk3066-qos + - rockchip,rk3128-qos + - rockchip,rk3228-qos + - rockchip,rk3288-qos + - rockchip,rk3368-qos + - rockchip,rk3399-qos + - rockchip,rk3568-qos + - rockchip,rk3588-qos + - rockchip,rv1126-qos + - st,spear1340-misc + - stericsson,nomadik-pmu + - starfive,jh7100-sysmain + - ti,am62-usb-phy-ctrl + - ti,am62p-cpsw-mac-efuse + - ti,am654-dss-oldi-io-ctrl + - ti,j784s4-pcie-ctrl + - ti,keystone-pllctrl + - const: syscon reg: maxItems: 1 - reg-io-width: - description: | - The size (in bytes) of the IO accesses that should be performed - on the device. - enum: [1, 2, 4, 8] - resets: maxItems: 1 @@ -143,18 +120,9 @@ required: - reg allOf: - - if: - properties: - compatible: - contains: - const: simple-mfd - then: - properties: - compatible: - minItems: 3 - maxItems: 5 + - $ref: syscon-common.yaml# -additionalProperties: true +unevaluatedProperties: false examples: - | -- 2.43.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel