xref: /freebsd/sys/contrib/device-tree/Bindings/mfd/brcm,bcm6358-gpio-sysctl.yaml (revision 2eb4d8dc723da3cf7d735a3226ae49da4c8c5dbc)
1*2eb4d8dcSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*2eb4d8dcSEmmanuel Vadot%YAML 1.2
3*2eb4d8dcSEmmanuel Vadot---
4*2eb4d8dcSEmmanuel Vadot$id: http://devicetree.org/schemas/mfd/brcm,bcm6358-gpio-sysctl.yaml#
5*2eb4d8dcSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*2eb4d8dcSEmmanuel Vadot
7*2eb4d8dcSEmmanuel Vadottitle: Broadcom BCM6358 GPIO System Controller Device Tree Bindings
8*2eb4d8dcSEmmanuel Vadot
9*2eb4d8dcSEmmanuel Vadotmaintainers:
10*2eb4d8dcSEmmanuel Vadot  - Álvaro Fernández Rojas <noltari@gmail.com>
11*2eb4d8dcSEmmanuel Vadot  - Jonas Gorski <jonas.gorski@gmail.com>
12*2eb4d8dcSEmmanuel Vadot
13*2eb4d8dcSEmmanuel Vadotdescription:
14*2eb4d8dcSEmmanuel Vadot  Broadcom BCM6358 SoC GPIO system controller which provides a register map
15*2eb4d8dcSEmmanuel Vadot  for controlling the GPIO and pins of the SoC.
16*2eb4d8dcSEmmanuel Vadot
17*2eb4d8dcSEmmanuel Vadotproperties:
18*2eb4d8dcSEmmanuel Vadot  "#address-cells": true
19*2eb4d8dcSEmmanuel Vadot
20*2eb4d8dcSEmmanuel Vadot  "#size-cells": true
21*2eb4d8dcSEmmanuel Vadot
22*2eb4d8dcSEmmanuel Vadot  compatible:
23*2eb4d8dcSEmmanuel Vadot    items:
24*2eb4d8dcSEmmanuel Vadot      - const: brcm,bcm6358-gpio-sysctl
25*2eb4d8dcSEmmanuel Vadot      - const: syscon
26*2eb4d8dcSEmmanuel Vadot      - const: simple-mfd
27*2eb4d8dcSEmmanuel Vadot
28*2eb4d8dcSEmmanuel Vadot  ranges:
29*2eb4d8dcSEmmanuel Vadot    maxItems: 1
30*2eb4d8dcSEmmanuel Vadot
31*2eb4d8dcSEmmanuel Vadot  reg:
32*2eb4d8dcSEmmanuel Vadot    maxItems: 1
33*2eb4d8dcSEmmanuel Vadot
34*2eb4d8dcSEmmanuel VadotpatternProperties:
35*2eb4d8dcSEmmanuel Vadot  "^gpio@[0-9a-f]+$":
36*2eb4d8dcSEmmanuel Vadot    # Child node
37*2eb4d8dcSEmmanuel Vadot    type: object
38*2eb4d8dcSEmmanuel Vadot    $ref: "../gpio/brcm,bcm6345-gpio.yaml"
39*2eb4d8dcSEmmanuel Vadot    description:
40*2eb4d8dcSEmmanuel Vadot      GPIO controller for the SoC GPIOs. This child node definition
41*2eb4d8dcSEmmanuel Vadot      should follow the bindings specified in
42*2eb4d8dcSEmmanuel Vadot      Documentation/devicetree/bindings/gpio/brcm,bcm6345-gpio.yaml.
43*2eb4d8dcSEmmanuel Vadot
44*2eb4d8dcSEmmanuel Vadot  "^pinctrl@[0-9a-f]+$":
45*2eb4d8dcSEmmanuel Vadot    # Child node
46*2eb4d8dcSEmmanuel Vadot    type: object
47*2eb4d8dcSEmmanuel Vadot    $ref: "../pinctrl/brcm,bcm6358-pinctrl.yaml"
48*2eb4d8dcSEmmanuel Vadot    description:
49*2eb4d8dcSEmmanuel Vadot      Pin controller for the SoC pins. This child node definition
50*2eb4d8dcSEmmanuel Vadot      should follow the bindings specified in
51*2eb4d8dcSEmmanuel Vadot      Documentation/devicetree/bindings/pinctrl/brcm,bcm6358-pinctrl.yaml.
52*2eb4d8dcSEmmanuel Vadot
53*2eb4d8dcSEmmanuel Vadotrequired:
54*2eb4d8dcSEmmanuel Vadot  - "#address-cells"
55*2eb4d8dcSEmmanuel Vadot  - compatible
56*2eb4d8dcSEmmanuel Vadot  - ranges
57*2eb4d8dcSEmmanuel Vadot  - reg
58*2eb4d8dcSEmmanuel Vadot  - "#size-cells"
59*2eb4d8dcSEmmanuel Vadot
60*2eb4d8dcSEmmanuel VadotadditionalProperties: false
61*2eb4d8dcSEmmanuel Vadot
62*2eb4d8dcSEmmanuel Vadotexamples:
63*2eb4d8dcSEmmanuel Vadot  - |
64*2eb4d8dcSEmmanuel Vadot    syscon@fffe0080 {
65*2eb4d8dcSEmmanuel Vadot      #address-cells = <1>;
66*2eb4d8dcSEmmanuel Vadot      #size-cells = <1>;
67*2eb4d8dcSEmmanuel Vadot      compatible = "brcm,bcm6358-gpio-sysctl", "syscon", "simple-mfd";
68*2eb4d8dcSEmmanuel Vadot      reg = <0xfffe0080 0x80>;
69*2eb4d8dcSEmmanuel Vadot      ranges = <0 0xfffe0080 0x80>;
70*2eb4d8dcSEmmanuel Vadot
71*2eb4d8dcSEmmanuel Vadot      gpio@0 {
72*2eb4d8dcSEmmanuel Vadot        compatible = "brcm,bcm6358-gpio";
73*2eb4d8dcSEmmanuel Vadot        reg-names = "dirout", "dat";
74*2eb4d8dcSEmmanuel Vadot        reg = <0x0 0x8>, <0x8 0x8>;
75*2eb4d8dcSEmmanuel Vadot
76*2eb4d8dcSEmmanuel Vadot        gpio-controller;
77*2eb4d8dcSEmmanuel Vadot        gpio-ranges = <&pinctrl 0 0 40>;
78*2eb4d8dcSEmmanuel Vadot        #gpio-cells = <2>;
79*2eb4d8dcSEmmanuel Vadot      };
80*2eb4d8dcSEmmanuel Vadot
81*2eb4d8dcSEmmanuel Vadot      pinctrl: pinctrl@18 {
82*2eb4d8dcSEmmanuel Vadot        compatible = "brcm,bcm6358-pinctrl";
83*2eb4d8dcSEmmanuel Vadot        reg = <0x18 0x4>;
84*2eb4d8dcSEmmanuel Vadot
85*2eb4d8dcSEmmanuel Vadot        pinctrl_ebi_cs: ebi_cs-pins {
86*2eb4d8dcSEmmanuel Vadot          function = "ebi_cs";
87*2eb4d8dcSEmmanuel Vadot          groups = "ebi_cs_grp";
88*2eb4d8dcSEmmanuel Vadot        };
89*2eb4d8dcSEmmanuel Vadot
90*2eb4d8dcSEmmanuel Vadot        pinctrl_uart1: uart1-pins {
91*2eb4d8dcSEmmanuel Vadot          function = "uart1";
92*2eb4d8dcSEmmanuel Vadot          groups = "uart1_grp";
93*2eb4d8dcSEmmanuel Vadot        };
94*2eb4d8dcSEmmanuel Vadot
95*2eb4d8dcSEmmanuel Vadot        pinctrl_serial_led: serial_led-pins {
96*2eb4d8dcSEmmanuel Vadot          function = "serial_led";
97*2eb4d8dcSEmmanuel Vadot          groups = "serial_led_grp";
98*2eb4d8dcSEmmanuel Vadot        };
99*2eb4d8dcSEmmanuel Vadot
100*2eb4d8dcSEmmanuel Vadot        pinctrl_legacy_led: legacy_led-pins {
101*2eb4d8dcSEmmanuel Vadot          function = "legacy_led";
102*2eb4d8dcSEmmanuel Vadot          groups = "legacy_led_grp";
103*2eb4d8dcSEmmanuel Vadot        };
104*2eb4d8dcSEmmanuel Vadot
105*2eb4d8dcSEmmanuel Vadot        pinctrl_led: led-pins {
106*2eb4d8dcSEmmanuel Vadot          function = "led";
107*2eb4d8dcSEmmanuel Vadot          groups = "led_grp";
108*2eb4d8dcSEmmanuel Vadot        };
109*2eb4d8dcSEmmanuel Vadot
110*2eb4d8dcSEmmanuel Vadot        pinctrl_spi_cs_23: spi_cs-pins {
111*2eb4d8dcSEmmanuel Vadot          function = "spi_cs";
112*2eb4d8dcSEmmanuel Vadot          groups = "spi_cs_grp";
113*2eb4d8dcSEmmanuel Vadot        };
114*2eb4d8dcSEmmanuel Vadot
115*2eb4d8dcSEmmanuel Vadot        pinctrl_utopia: utopia-pins {
116*2eb4d8dcSEmmanuel Vadot          function = "utopia";
117*2eb4d8dcSEmmanuel Vadot          groups = "utopia_grp";
118*2eb4d8dcSEmmanuel Vadot        };
119*2eb4d8dcSEmmanuel Vadot
120*2eb4d8dcSEmmanuel Vadot        pinctrl_pwm_syn_clk: pwm_syn_clk-pins {
121*2eb4d8dcSEmmanuel Vadot          function = "pwm_syn_clk";
122*2eb4d8dcSEmmanuel Vadot          groups = "pwm_syn_clk_grp";
123*2eb4d8dcSEmmanuel Vadot        };
124*2eb4d8dcSEmmanuel Vadot
125*2eb4d8dcSEmmanuel Vadot        pinctrl_sys_irq: sys_irq-pins {
126*2eb4d8dcSEmmanuel Vadot          function = "sys_irq";
127*2eb4d8dcSEmmanuel Vadot          groups = "sys_irq_grp";
128*2eb4d8dcSEmmanuel Vadot        };
129*2eb4d8dcSEmmanuel Vadot      };
130*2eb4d8dcSEmmanuel Vadot    };
131