xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/brcm,ns-pinmux.yaml (revision 354d7675fe12ace9cde344cb79c7ded792802f88)
15956d97fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
25956d97fSEmmanuel Vadot%YAML 1.2
35956d97fSEmmanuel Vadot---
45956d97fSEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/brcm,ns-pinmux.yaml#
55956d97fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
65956d97fSEmmanuel Vadot
75956d97fSEmmanuel Vadottitle: Broadcom Northstar pins mux controller
85956d97fSEmmanuel Vadot
95956d97fSEmmanuel Vadotmaintainers:
105956d97fSEmmanuel Vadot  - Rafał Miłecki <rafal@milecki.pl>
115956d97fSEmmanuel Vadot
125956d97fSEmmanuel Vadotdescription:
135956d97fSEmmanuel Vadot  Some of Northstar SoCs's pins can be used for various purposes thanks to the
145956d97fSEmmanuel Vadot  mux controller. This binding allows describing mux controller and listing
155956d97fSEmmanuel Vadot  available functions. They can be referenced later by other bindings to let
165956d97fSEmmanuel Vadot  system configure controller correctly.
175956d97fSEmmanuel Vadot
185956d97fSEmmanuel Vadot  A list of pins varies across chipsets so few bindings are available.
195956d97fSEmmanuel Vadot
205956d97fSEmmanuel Vadotproperties:
215956d97fSEmmanuel Vadot  compatible:
225956d97fSEmmanuel Vadot    enum:
235956d97fSEmmanuel Vadot      - brcm,bcm4708-pinmux
245956d97fSEmmanuel Vadot      - brcm,bcm4709-pinmux
255956d97fSEmmanuel Vadot      - brcm,bcm53012-pinmux
265956d97fSEmmanuel Vadot
27*354d7675SEmmanuel Vadot  reg:
285956d97fSEmmanuel Vadot    maxItems: 1
29*354d7675SEmmanuel Vadot
30*354d7675SEmmanuel Vadot  reg-names:
31*354d7675SEmmanuel Vadot    const: cru_gpio_control
325956d97fSEmmanuel Vadot
335956d97fSEmmanuel VadotpatternProperties:
345956d97fSEmmanuel Vadot  '-pins$':
355956d97fSEmmanuel Vadot    type: object
365956d97fSEmmanuel Vadot    description: pin node
375956d97fSEmmanuel Vadot    $ref: pinmux-node.yaml#
385956d97fSEmmanuel Vadot
395956d97fSEmmanuel Vadot    properties:
405956d97fSEmmanuel Vadot      function:
415956d97fSEmmanuel Vadot        enum: [ spi, i2c, pwm, uart1, mdio, uart2, sdio ]
425956d97fSEmmanuel Vadot      groups:
435956d97fSEmmanuel Vadot        minItems: 1
445956d97fSEmmanuel Vadot        maxItems: 4
455956d97fSEmmanuel Vadot        items:
465956d97fSEmmanuel Vadot          enum: [ spi_grp, i2c_grp, pwm0_grp, pwm1_grp, pwm2_grp, pwm3_grp,
475956d97fSEmmanuel Vadot                  uart1_grp, mdio_grp, uart2_grp, sdio_pwr_grp, sdio_1p8v_grp ]
485956d97fSEmmanuel Vadot
495956d97fSEmmanuel Vadot    required:
505956d97fSEmmanuel Vadot      - function
515956d97fSEmmanuel Vadot      - groups
525956d97fSEmmanuel Vadot
535956d97fSEmmanuel Vadot    additionalProperties: false
545956d97fSEmmanuel Vadot
555956d97fSEmmanuel VadotallOf:
565956d97fSEmmanuel Vadot  - if:
575956d97fSEmmanuel Vadot      properties:
585956d97fSEmmanuel Vadot        compatible:
595956d97fSEmmanuel Vadot          contains:
605956d97fSEmmanuel Vadot            const: brcm,bcm4708-pinmux
615956d97fSEmmanuel Vadot    then:
625956d97fSEmmanuel Vadot      patternProperties:
635956d97fSEmmanuel Vadot        '-pins$':
645956d97fSEmmanuel Vadot          properties:
655956d97fSEmmanuel Vadot            function:
665956d97fSEmmanuel Vadot              enum: [ spi, i2c, pwm, uart1 ]
675956d97fSEmmanuel Vadot            groups:
685956d97fSEmmanuel Vadot              items:
695956d97fSEmmanuel Vadot                enum: [ spi_grp, i2c_grp, pwm0_grp, pwm1_grp, pwm2_grp, pwm3_grp,
705956d97fSEmmanuel Vadot                        uart1_grp ]
715956d97fSEmmanuel Vadot
725956d97fSEmmanuel Vadotrequired:
73*354d7675SEmmanuel Vadot  - reg
74*354d7675SEmmanuel Vadot  - reg-names
755956d97fSEmmanuel Vadot
765956d97fSEmmanuel VadotadditionalProperties: false
775956d97fSEmmanuel Vadot
785956d97fSEmmanuel Vadotexamples:
795956d97fSEmmanuel Vadot  - |
80*354d7675SEmmanuel Vadot    pin-controller@1800c1c0 {
815956d97fSEmmanuel Vadot        compatible = "brcm,bcm4708-pinmux";
82*354d7675SEmmanuel Vadot        reg = <0x1800c1c0 0x24>;
83*354d7675SEmmanuel Vadot        reg-names = "cru_gpio_control";
845956d97fSEmmanuel Vadot
855956d97fSEmmanuel Vadot        spi-pins {
865956d97fSEmmanuel Vadot            function = "spi";
875956d97fSEmmanuel Vadot            groups = "spi_grp";
885956d97fSEmmanuel Vadot        };
895956d97fSEmmanuel Vadot    };
90