1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/pinctrl/brcm,bcm6318-pinctrl.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Broadcom BCM6318 pin controller
8
9maintainers:
10  - Álvaro Fernández Rojas <noltari@gmail.com>
11  - Jonas Gorski <jonas.gorski@gmail.com>
12
13description:
14  Bindings for Broadcom's BCM6318 memory-mapped pin controller.
15
16properties:
17  compatible:
18    const: brcm,bcm6318-pinctrl
19
20  reg:
21    maxItems: 2
22
23patternProperties:
24  '-pins$':
25    type: object
26    $ref: pinmux-node.yaml#
27    additionalProperties: false
28
29    properties:
30      function:
31        enum: [ ephy0_spd_led, ephy1_spd_led, ephy2_spd_led, ephy3_spd_led,
32                ephy0_act_led, ephy1_act_led, ephy2_act_led, ephy3_act_led,
33                serial_led_data, serial_led_clk, inet_act_led, inet_fail_led,
34                dsl_led, post_fail_led, wlan_wps_led, usb_pwron,
35                usb_device_led, usb_active ]
36
37      pins:
38        enum: [ gpio0, gpio1, gpio2, gpio3, gpio4, gpio5, gpio6, gpio7,
39                gpio8, gpio9, gpio10, gpio11, gpio12, gpio13, gpio40 ]
40
41    patternProperties:
42      '-pins$':
43        $ref: '#/patternProperties/-pins$'
44
45allOf:
46  - $ref: pinctrl.yaml#
47
48required:
49  - compatible
50  - reg
51
52additionalProperties: false
53
54examples:
55  - |
56    pinctrl@18 {
57      compatible = "brcm,bcm6318-pinctrl";
58      reg = <0x18 0x10>, <0x54 0x18>;
59
60      pinctrl_ephy0_spd_led: ephy0_spd_led-pins {
61        function = "ephy0_spd_led";
62        pins = "gpio0";
63      };
64
65      pinctrl_ephy1_spd_led: ephy1_spd_led-pins {
66        function = "ephy1_spd_led";
67        pins = "gpio1";
68      };
69
70      pinctrl_ephy2_spd_led: ephy2_spd_led-pins {
71        function = "ephy2_spd_led";
72        pins = "gpio2";
73      };
74
75      pinctrl_ephy3_spd_led: ephy3_spd_led-pins {
76        function = "ephy3_spd_led";
77        pins = "gpio3";
78      };
79
80      pinctrl_ephy0_act_led: ephy0_act_led-pins {
81        function = "ephy0_act_led";
82        pins = "gpio4";
83      };
84
85      pinctrl_ephy1_act_led: ephy1_act_led-pins {
86        function = "ephy1_act_led";
87        pins = "gpio5";
88      };
89
90      pinctrl_ephy2_act_led: ephy2_act_led-pins {
91        function = "ephy2_act_led";
92        pins = "gpio6";
93      };
94
95      pinctrl_ephy3_act_led: ephy3_act_led-pins {
96        function = "ephy3_act_led";
97        pins = "gpio7";
98      };
99
100      pinctrl_serial_led: serial_led-pins {
101        pinctrl_serial_led_data: serial_led_data-pins {
102          function = "serial_led_data";
103          pins = "gpio6";
104        };
105
106        pinctrl_serial_led_clk: serial_led_clk-pins {
107          function = "serial_led_clk";
108          pins = "gpio7";
109        };
110      };
111
112      pinctrl_inet_act_led: inet_act_led-pins {
113        function = "inet_act_led";
114        pins = "gpio8";
115      };
116
117      pinctrl_inet_fail_led: inet_fail_led-pins {
118        function = "inet_fail_led";
119        pins = "gpio9";
120      };
121
122      pinctrl_dsl_led: dsl_led-pins {
123        function = "dsl_led";
124        pins = "gpio10";
125      };
126
127      pinctrl_post_fail_led: post_fail_led-pins {
128        function = "post_fail_led";
129        pins = "gpio11";
130      };
131
132      pinctrl_wlan_wps_led: wlan_wps_led-pins {
133        function = "wlan_wps_led";
134        pins = "gpio12";
135      };
136
137      pinctrl_usb_pwron: usb_pwron-pins {
138        function = "usb_pwron";
139        pins = "gpio13";
140      };
141
142      pinctrl_usb_device_led: usb_device_led-pins {
143        function = "usb_device_led";
144        pins = "gpio13";
145      };
146
147      pinctrl_usb_active: usb_active-pins {
148        function = "usb_active";
149        pins = "gpio40";
150      };
151    };
152