1*9247752bSChris Packham# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*9247752bSChris Packham%YAML 1.2
3*9247752bSChris Packham---
4*9247752bSChris Packham$id: http://devicetree.org/schemas/pinctrl/marvell,ac5-pinctrl.yaml#
5*9247752bSChris Packham$schema: http://devicetree.org/meta-schemas/core.yaml#
6*9247752bSChris Packham
7*9247752bSChris Packhamtitle: Marvell AC5 pin controller
8*9247752bSChris Packham
9*9247752bSChris Packhammaintainers:
10*9247752bSChris Packham  - Chris Packham <chris.packham@alliedtelesis.co.nz>
11*9247752bSChris Packham
12*9247752bSChris Packhamdescription:
13*9247752bSChris Packham  Bindings for Marvell's AC5 memory-mapped pin controller.
14*9247752bSChris Packham
15*9247752bSChris Packhamproperties:
16*9247752bSChris Packham  compatible:
17*9247752bSChris Packham    items:
18*9247752bSChris Packham      - const: marvell,ac5-pinctrl
19*9247752bSChris Packham
20*9247752bSChris Packham  reg:
21*9247752bSChris Packham    maxItems: 1
22*9247752bSChris Packham
23*9247752bSChris PackhampatternProperties:
24*9247752bSChris Packham  '-pins$':
25*9247752bSChris Packham    type: object
26*9247752bSChris Packham    $ref: pinmux-node.yaml#
27*9247752bSChris Packham
28*9247752bSChris Packham    properties:
29*9247752bSChris Packham      marvell,function:
30*9247752bSChris Packham        $ref: "/schemas/types.yaml#/definitions/string"
31*9247752bSChris Packham        description:
32*9247752bSChris Packham          Indicates the function to select.
33*9247752bSChris Packham        enum: [ dev_init_done, ge, gpio, i2c0, i2c1, int_out, led, nand, pcie, ptp, sdio,
34*9247752bSChris Packham                spi0, spi1, synce, tsen_int, uart0, uart1, uart2, uart3, uartsd, wd_int, xg ]
35*9247752bSChris Packham
36*9247752bSChris Packham      marvell,pins:
37*9247752bSChris Packham        $ref: /schemas/types.yaml#/definitions/string-array
38*9247752bSChris Packham        description:
39*9247752bSChris Packham          Array of MPP pins to be used for the given function.
40*9247752bSChris Packham        minItems: 1
41*9247752bSChris Packham        items:
42*9247752bSChris Packham          enum: [ mpp0, mpp1, mpp2, mpp3, mpp4, mpp5, mpp6, mpp7, mpp8, mpp9,
43*9247752bSChris Packham                  mpp10, mpp11, mpp12, mpp13, mpp14, mpp15, mpp16, mpp17, mpp18, mpp19,
44*9247752bSChris Packham                  mpp20, mpp21, mpp22, mpp23, mpp24, mpp25, mpp26, mpp27, mpp28, mpp29,
45*9247752bSChris Packham                  mpp30, mpp31, mpp32, mpp33, mpp34, mpp35, mpp36, mpp37, mpp38, mpp39,
46*9247752bSChris Packham                  mpp40, mpp41, mpp42, mpp43, mpp44, mpp45 ]
47*9247752bSChris Packham
48*9247752bSChris PackhamallOf:
49*9247752bSChris Packham  - $ref: "pinctrl.yaml#"
50*9247752bSChris Packham
51*9247752bSChris Packhamrequired:
52*9247752bSChris Packham  - compatible
53*9247752bSChris Packham  - reg
54*9247752bSChris Packham
55*9247752bSChris PackhamadditionalProperties: false
56*9247752bSChris Packham
57*9247752bSChris Packhamexamples:
58*9247752bSChris Packham  - |
59*9247752bSChris Packham    pinctrl@80020100 {
60*9247752bSChris Packham      compatible = "marvell,ac5-pinctrl";
61*9247752bSChris Packham      reg = <0x80020100 0x20>;
62*9247752bSChris Packham
63*9247752bSChris Packham      i2c0_pins: i2c0-pins {
64*9247752bSChris Packham        marvell,pins = "mpp26", "mpp27";
65*9247752bSChris Packham        marvell,function = "i2c0";
66*9247752bSChris Packham      };
67*9247752bSChris Packham
68*9247752bSChris Packham      i2c0_gpio: i2c0-gpio-pins {
69*9247752bSChris Packham        marvell,pins = "mpp26", "mpp27";
70*9247752bSChris Packham        marvell,function = "gpio";
71*9247752bSChris Packham      };
72*9247752bSChris Packham    };
73