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

title: Broadcom BCM4908 pin controller

maintainers:
  - Rafał Miłecki <rafal@milecki.pl>

description:
  Binding for pin controller present on BCM4908 family SoCs.

properties:
  compatible:
    const: brcm,bcm4908-pinctrl

  reg:
    maxItems: 1

patternProperties:
  '-pins$':
    type: object
    $ref: pinmux-node.yaml#
    additionalProperties: false

    properties:
      function:
        enum: [ led_0, led_1, led_2, led_3, led_4, led_5, led_6, led_7, led_8,
                led_9, led_10, led_11, led_12, led_13, led_14, led_15, led_16,
                led_17, led_18, led_19, led_20, led_21, led_22, led_23, led_24,
                led_25, led_26, led_27, led_28, led_29, led_30, led_31,
                hs_uart, i2c, i2s, nand_ctrl, nand_data, emmc_ctrl, usb0_pwr,
                usb1_pwr ]

      groups:
        minItems: 1
        maxItems: 2
        items:
          enum: [ led_0_grp_a, led_1_grp_a, led_2_grp_a, led_3_grp_a,
                  led_4_grp_a, led_5_grp_a, led_6_grp_a, led_7_grp_a,
                  led_8_grp_a, led_9_grp_a, led_10_grp_a, led_10_grp_b,
                  led_11_grp_a, led_11_grp_b, led_12_grp_a, led_12_grp_b,
                  led_13_grp_a, led_13_grp_b, led_14_grp_a, led_15_grp_a,
                  led_16_grp_a, led_17_grp_a, led_18_grp_a, led_19_grp_a,
                  led_20_grp_a, led_21_grp_a, led_22_grp_a, led_23_grp_a,
                  led_24_grp_a, led_25_grp_a, led_26_grp_a, led_27_grp_a,
                  led_28_grp_a, led_29_grp_a, led_30_grp_a, led_31_grp_a,
                  led_31_grp_b, hs_uart_grp, i2c_grp_a, i2c_grp_b, i2s_grp,
                  nand_ctrl_grp, nand_data_grp, emmc_ctrl_grp, usb0_pwr_grp,
                  usb1_pwr_grp ]

allOf:
  - $ref: pinctrl.yaml#

required:
  - compatible
  - reg

unevaluatedProperties: false

examples:
  - |
    pinctrl@ff800560 {
        compatible = "brcm,bcm4908-pinctrl";
        reg = <0xff800560 0x10>;

        led_0-a-pins {
            function = "led_0";
            groups = "led_0_grp_a";
        };
    };