1*ac5f8197SRafał Miłecki# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*ac5f8197SRafał Miłecki%YAML 1.2
3*ac5f8197SRafał Miłecki---
4*ac5f8197SRafał Miłecki$id: http://devicetree.org/schemas/pinctrl/brcm,ns-pinmux.yaml#
5*ac5f8197SRafał Miłecki$schema: http://devicetree.org/meta-schemas/core.yaml#
6*ac5f8197SRafał Miłecki
7*ac5f8197SRafał Miłeckititle: Broadcom Northstar pins mux controller
8*ac5f8197SRafał Miłecki
9*ac5f8197SRafał Miłeckimaintainers:
10*ac5f8197SRafał Miłecki  - Rafał Miłecki <rafal@milecki.pl>
11*ac5f8197SRafał Miłecki
12*ac5f8197SRafał Miłeckidescription:
13*ac5f8197SRafał Miłecki  Some of Northstar SoCs's pins can be used for various purposes thanks to the
14*ac5f8197SRafał Miłecki  mux controller. This binding allows describing mux controller and listing
15*ac5f8197SRafał Miłecki  available functions. They can be referenced later by other bindings to let
16*ac5f8197SRafał Miłecki  system configure controller correctly.
17*ac5f8197SRafał Miłecki
18*ac5f8197SRafał Miłecki  A list of pins varies across chipsets so few bindings are available.
19*ac5f8197SRafał Miłecki
20*ac5f8197SRafał Miłecki  Node of the pinmux must be nested in the CRU (Central Resource Unit) "syscon"
21*ac5f8197SRafał Miłecki  node.
22*ac5f8197SRafał Miłecki
23*ac5f8197SRafał Miłeckiproperties:
24*ac5f8197SRafał Miłecki  compatible:
25*ac5f8197SRafał Miłecki    enum:
26*ac5f8197SRafał Miłecki      - brcm,bcm4708-pinmux
27*ac5f8197SRafał Miłecki      - brcm,bcm4709-pinmux
28*ac5f8197SRafał Miłecki      - brcm,bcm53012-pinmux
29*ac5f8197SRafał Miłecki
30*ac5f8197SRafał Miłecki  offset:
31*ac5f8197SRafał Miłecki    description: offset of pin registers in the CRU block
32*ac5f8197SRafał Miłecki    maxItems: 1
33*ac5f8197SRafał Miłecki    $ref: /schemas/types.yaml#/definitions/uint32-array
34*ac5f8197SRafał Miłecki
35*ac5f8197SRafał MiłeckipatternProperties:
36*ac5f8197SRafał Miłecki  '-pins$':
37*ac5f8197SRafał Miłecki    type: object
38*ac5f8197SRafał Miłecki    description: pin node
39*ac5f8197SRafał Miłecki    $ref: pinmux-node.yaml#
40*ac5f8197SRafał Miłecki
41*ac5f8197SRafał Miłecki    properties:
42*ac5f8197SRafał Miłecki      function:
43*ac5f8197SRafał Miłecki        enum: [ spi, i2c, pwm, uart1, mdio, uart2, sdio ]
44*ac5f8197SRafał Miłecki      groups:
45*ac5f8197SRafał Miłecki        minItems: 1
46*ac5f8197SRafał Miłecki        maxItems: 4
47*ac5f8197SRafał Miłecki        items:
48*ac5f8197SRafał Miłecki          enum: [ spi_grp, i2c_grp, pwm0_grp, pwm1_grp, pwm2_grp, pwm3_grp,
49*ac5f8197SRafał Miłecki                  uart1_grp, mdio_grp, uart2_grp, sdio_pwr_grp, sdio_1p8v_grp ]
50*ac5f8197SRafał Miłecki
51*ac5f8197SRafał Miłecki    required:
52*ac5f8197SRafał Miłecki      - function
53*ac5f8197SRafał Miłecki      - groups
54*ac5f8197SRafał Miłecki
55*ac5f8197SRafał Miłecki    additionalProperties: false
56*ac5f8197SRafał Miłecki
57*ac5f8197SRafał MiłeckiallOf:
58*ac5f8197SRafał Miłecki  - if:
59*ac5f8197SRafał Miłecki      properties:
60*ac5f8197SRafał Miłecki        compatible:
61*ac5f8197SRafał Miłecki          contains:
62*ac5f8197SRafał Miłecki            const: brcm,bcm4708-pinmux
63*ac5f8197SRafał Miłecki    then:
64*ac5f8197SRafał Miłecki      patternProperties:
65*ac5f8197SRafał Miłecki        '-pins$':
66*ac5f8197SRafał Miłecki          properties:
67*ac5f8197SRafał Miłecki            function:
68*ac5f8197SRafał Miłecki              enum: [ spi, i2c, pwm, uart1 ]
69*ac5f8197SRafał Miłecki            groups:
70*ac5f8197SRafał Miłecki              items:
71*ac5f8197SRafał Miłecki                enum: [ spi_grp, i2c_grp, pwm0_grp, pwm1_grp, pwm2_grp, pwm3_grp,
72*ac5f8197SRafał Miłecki                        uart1_grp ]
73*ac5f8197SRafał Miłecki
74*ac5f8197SRafał Miłeckirequired:
75*ac5f8197SRafał Miłecki  - offset
76*ac5f8197SRafał Miłecki
77*ac5f8197SRafał MiłeckiadditionalProperties: false
78*ac5f8197SRafał Miłecki
79*ac5f8197SRafał Miłeckiexamples:
80*ac5f8197SRafał Miłecki  - |
81*ac5f8197SRafał Miłecki    cru@1800c100 {
82*ac5f8197SRafał Miłecki        compatible = "syscon", "simple-mfd";
83*ac5f8197SRafał Miłecki        reg = <0x1800c100 0x1a4>;
84*ac5f8197SRafał Miłecki
85*ac5f8197SRafał Miłecki        pinctrl {
86*ac5f8197SRafał Miłecki            compatible = "brcm,bcm4708-pinmux";
87*ac5f8197SRafał Miłecki            offset = <0xc0>;
88*ac5f8197SRafał Miłecki
89*ac5f8197SRafał Miłecki            spi-pins {
90*ac5f8197SRafał Miłecki                function = "spi";
91*ac5f8197SRafał Miłecki                groups = "spi_grp";
92*ac5f8197SRafał Miłecki            };
93*ac5f8197SRafał Miłecki        };
94*ac5f8197SRafał Miłecki    };
95