On 11/03/22 12:53, Chris Packham wrote: > Hi Rob, > > On 11/03/22 12:25, Rob Herring wrote: >> On Thu, Mar 10, 2022 at 04:00:36PM +1300, Chris Packham wrote: >>> Add JSON schema for marvell,ac5-pinctrl present on the Marvell 98DX2530 >>> SoC. >>> >>> Signed-off-by: Chris Packham <chris.packham@xxxxxxxxxxxxxxxxxxx> >>> --- >>> .../bindings/pinctrl/marvell,ac5-pinctrl.yaml | 73 >>> +++++++++++++++++++ >>> 1 file changed, 73 insertions(+) >>> create mode 100644 >>> Documentation/devicetree/bindings/pinctrl/marvell,ac5-pinctrl.yaml >>> >>> diff --git >>> a/Documentation/devicetree/bindings/pinctrl/marvell,ac5-pinctrl.yaml >>> b/Documentation/devicetree/bindings/pinctrl/marvell,ac5-pinctrl.yaml >>> new file mode 100644 >>> index 000000000000..c7ab3d0e8420 >>> --- /dev/null >>> +++ >>> b/Documentation/devicetree/bindings/pinctrl/marvell,ac5-pinctrl.yaml >>> @@ -0,0 +1,73 @@ >>> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause >>> +%YAML 1.2 >>> +--- >>> +$id: >>> http://scanmail.trustwave.com/?c=20988&d=5Iiq4o6Dmr7xiwkJNrr25TNxYxK78lIUEWeJ-yq0UA&u=http%3a%2f%2fdevicetree%2eorg%2fschemas%2fpinctrl%2fmarvell%2cac5-pinctrl%2eyaml%23 >>> +$schema: >>> http://scanmail.trustwave.com/?c=20988&d=5Iiq4o6Dmr7xiwkJNrr25TNxYxK78lIUEWPe_X2yXg&u=http%3a%2f%2fdevicetree%2eorg%2fmeta-schemas%2fcore%2eyaml%23 >>> + >>> +title: Marvell AC5 pin controller >>> + >>> +maintainers: >>> + - Chris Packham <chris.packham@xxxxxxxxxxxxxxxxxxx> >>> + >>> +description: >>> + Bindings for Marvell's AC5 memory-mapped pin controller. >>> + >>> +properties: >>> + compatible: >>> + items: >>> + - const: marvell,ac5-pinctrl >>> + - const: syscon >>> + - const: simple-mfd >> How is this a 'syscon' or 'simple-mfd' For syscon, what other >> functions/registers does it have? For simple-mfd, what other functions? >> You haven't defined them in the schema. > > It's in the vendor dts I have and it's likely there because > marvell,armada-37xx-pinctrl.txt has the same syscon and simple-mfd > compatibles. Looking at how this is used I think it's more like the > older mvebu pinctrl devices. I'll remove these two compatibles and > update the dtsi file. Actually turns out I do need the syscon compatible because the driver calls mvebu_pinctrl_simple_regmap_probe() which relies on the syscon compatible. I'm still not sure what to put in the binding doc other than "syscon" is needed because it is needed. > >> >> blank line needed here. >> >>> + reg: >>> + maxItems: 1 >>> + >>> +patternProperties: >>> + '-pins$': >>> + type: object >>> + $ref: pinmux-node.yaml# >>> + >>> + properties: >>> + marvell,function: >>> + $ref: "/schemas/types.yaml#/definitions/string" >>> + description: >>> + Indicates the function to select. >>> + enum: [ gpio, i2c0, i2c1, nand, sdio, spi0, spi1, uart0, >>> uart1, uart2, uart3 ] >>> + >>> + marvell,pins: >>> + $ref: /schemas/types.yaml#/definitions/string-array >>> + description: >>> + Array of MPP pins to be used for the given function. >>> + minItems: 1 >>> + items: >>> + enum: [ mpp0, mpp1, mpp2, mpp3, mpp4, mpp5, mpp6, mpp7, >>> mpp8, mpp9, >>> + mpp10, mpp11, mpp12, mpp13, mpp14, mpp15, mpp16, >>> mpp17, mpp18, mpp19, >>> + mpp20, mpp21, mpp22, mpp23, mpp24, mpp25, mpp26, >>> mpp27, mpp28, mpp29, >>> + mpp30, mpp31, mpp32, mpp33, mpp34, mpp35, mpp36, >>> mpp37, mpp38, mpp39, >>> + mpp40, mpp41, mpp42, mpp43, mpp44, mpp45 ] >>> + >>> +allOf: >>> + - $ref: "pinctrl.yaml#" >>> + >>> +required: >>> + - compatible >>> + - reg >>> + >>> +additionalProperties: false >>> + >>> +examples: >>> + - | >>> + pinctrl@80020100 { >>> + compatible = "marvell,ac5-pinctrl", >>> + "syscon", "simple-mfd"; >>> + reg = <0x80020100 0x20>; >>> + >>> + i2c0_pins: i2c0-pins { >>> + marvell,pins = "mpp26", "mpp27"; >>> + marvell,function = "i2c0"; >>> + }; >>> + >>> + i2c0_gpio: i2c0-gpio-pins { >>> + marvell,pins = "mpp26", "mpp27"; >>> + marvell,function = "gpio"; >>> + }; >>> + }; >>> -- >>> 2.35.1 >>> >>>