# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/pinctrl/marvell,ap806-pinctrl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Marvell AP806 pin controller

maintainers:
  - Gregory Clement <gregory.clement@bootlin.com>
  - Miquel Raynal <miquel.raynal@bootlin.com>

properties:
  compatible:
    const: marvell,ap806-pinctrl

  reg:
    maxItems: 1

patternProperties:
  '-pins$':
    type: object
    additionalProperties: false

    properties:
      marvell,function:
        $ref: /schemas/types.yaml#/definitions/string
        description:
          Indicates the function to select.
        enum: [ gpio, i2c0, sdio, spi0, uart0, uart1 ]

      marvell,pins:
        $ref: /schemas/types.yaml#/definitions/string-array
        description:
          Array of MPP pins to be used for the given function.
        minItems: 1
        maxItems: 20
        items:
          enum: [
            mpp0, mpp1, mpp2, mpp3, mpp4, mpp5, mpp6, mpp7, mpp8, mpp9, mpp10,
            mpp11, mpp12, mpp13, mpp14, mpp15, mpp16, mpp17, mpp18, mpp19
          ]

allOf:
  - $ref: pinctrl.yaml#

required:
  - compatible

additionalProperties: false

examples:
  - |
    pinctrl {
        compatible = "marvell,ap806-pinctrl";

        uart0_pins: uart0-pins {
            marvell,pins = "mpp11", "mpp19";
            marvell,function = "uart0";
        };
    };
