| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) | 
 | %YAML 1.2 | 
 | --- | 
 | $id: http://devicetree.org/schemas/mfd/brcm,bcm6318-gpio-sysctl.yaml# | 
 | $schema: http://devicetree.org/meta-schemas/core.yaml# | 
 |  | 
 | title: Broadcom BCM6318 GPIO System Controller | 
 |  | 
 | maintainers: | 
 |   - Álvaro Fernández Rojas <noltari@gmail.com> | 
 |   - Jonas Gorski <jonas.gorski@gmail.com> | 
 |  | 
 | description: | 
 |   Broadcom BCM6318 SoC GPIO system controller which provides a register map | 
 |   for controlling the GPIO and pins of the SoC. | 
 |  | 
 | properties: | 
 |   "#address-cells": true | 
 |  | 
 |   "#size-cells": true | 
 |  | 
 |   compatible: | 
 |     items: | 
 |       - const: brcm,bcm6318-gpio-sysctl | 
 |       - const: syscon | 
 |       - const: simple-mfd | 
 |  | 
 |   ranges: | 
 |     maxItems: 1 | 
 |  | 
 |   reg: | 
 |     maxItems: 1 | 
 |  | 
 | patternProperties: | 
 |   "^gpio@[0-9a-f]+$": | 
 |     # Child node | 
 |     type: object | 
 |     $ref: /schemas/gpio/brcm,bcm63xx-gpio.yaml | 
 |     description: | 
 |       GPIO controller for the SoC GPIOs. This child node definition | 
 |       should follow the bindings specified in | 
 |       Documentation/devicetree/bindings/gpio/brcm,bcm63xx-gpio.yaml. | 
 |  | 
 |   "^pinctrl@[0-9a-f]+$": | 
 |     # Child node | 
 |     type: object | 
 |     $ref: /schemas/pinctrl/brcm,bcm6318-pinctrl.yaml | 
 |     description: | 
 |       Pin controller for the SoC pins. This child node definition | 
 |       should follow the bindings specified in | 
 |       Documentation/devicetree/bindings/pinctrl/brcm,bcm6318-pinctrl.yaml. | 
 |  | 
 | required: | 
 |   - "#address-cells" | 
 |   - compatible | 
 |   - ranges | 
 |   - reg | 
 |   - "#size-cells" | 
 |  | 
 | additionalProperties: false | 
 |  | 
 | examples: | 
 |   - | | 
 |     syscon@10000080 { | 
 |       #address-cells = <1>; | 
 |       #size-cells = <1>; | 
 |       compatible = "brcm,bcm6318-gpio-sysctl", "syscon", "simple-mfd"; | 
 |       reg = <0x10000080 0x80>; | 
 |       ranges = <0 0x10000080 0x80>; | 
 |  | 
 |       gpio@0 { | 
 |         compatible = "brcm,bcm6318-gpio"; | 
 |         reg-names = "dirout", "dat"; | 
 |         reg = <0x0 0x8>, <0x8 0x8>; | 
 |  | 
 |         gpio-controller; | 
 |         gpio-ranges = <&pinctrl 0 0 50>; | 
 |         #gpio-cells = <2>; | 
 |       }; | 
 |  | 
 |       pinctrl: pinctrl@10 { | 
 |         compatible = "brcm,bcm6318-pinctrl"; | 
 |         reg = <0x18 0x10>, <0x54 0x18>; | 
 |  | 
 |         pinctrl_ephy0_spd_led: ephy0_spd_led-pins { | 
 |           function = "ephy0_spd_led"; | 
 |           pins = "gpio0"; | 
 |         }; | 
 |  | 
 |         pinctrl_ephy1_spd_led: ephy1_spd_led-pins { | 
 |           function = "ephy1_spd_led"; | 
 |           pins = "gpio1"; | 
 |         }; | 
 |  | 
 |         pinctrl_ephy2_spd_led: ephy2_spd_led-pins { | 
 |           function = "ephy2_spd_led"; | 
 |           pins = "gpio2"; | 
 |         }; | 
 |  | 
 |         pinctrl_ephy3_spd_led: ephy3_spd_led-pins { | 
 |           function = "ephy3_spd_led"; | 
 |           pins = "gpio3"; | 
 |         }; | 
 |  | 
 |         pinctrl_ephy0_act_led: ephy0_act_led-pins { | 
 |           function = "ephy0_act_led"; | 
 |           pins = "gpio4"; | 
 |         }; | 
 |  | 
 |         pinctrl_ephy1_act_led: ephy1_act_led-pins { | 
 |           function = "ephy1_act_led"; | 
 |           pins = "gpio5"; | 
 |         }; | 
 |  | 
 |         pinctrl_ephy2_act_led: ephy2_act_led-pins { | 
 |           function = "ephy2_act_led"; | 
 |           pins = "gpio6"; | 
 |         }; | 
 |  | 
 |         pinctrl_ephy3_act_led: ephy3_act_led-pins { | 
 |           function = "ephy3_act_led"; | 
 |           pins = "gpio7"; | 
 |         }; | 
 |  | 
 |         pinctrl_serial_led: serial_led-pins { | 
 |           pinctrl_serial_led_data: serial_led_data-pins { | 
 |             function = "serial_led_data"; | 
 |             pins = "gpio6"; | 
 |           }; | 
 |  | 
 |           pinctrl_serial_led_clk: serial_led_clk-pins { | 
 |             function = "serial_led_clk"; | 
 |             pins = "gpio7"; | 
 |           }; | 
 |         }; | 
 |  | 
 |         pinctrl_inet_act_led: inet_act_led-pins { | 
 |           function = "inet_act_led"; | 
 |           pins = "gpio8"; | 
 |         }; | 
 |  | 
 |         pinctrl_inet_fail_led: inet_fail_led-pins { | 
 |           function = "inet_fail_led"; | 
 |           pins = "gpio9"; | 
 |         }; | 
 |  | 
 |         pinctrl_dsl_led: dsl_led-pins { | 
 |           function = "dsl_led"; | 
 |           pins = "gpio10"; | 
 |         }; | 
 |  | 
 |         pinctrl_post_fail_led: post_fail_led-pins { | 
 |           function = "post_fail_led"; | 
 |           pins = "gpio11"; | 
 |         }; | 
 |  | 
 |         pinctrl_wlan_wps_led: wlan_wps_led-pins { | 
 |           function = "wlan_wps_led"; | 
 |           pins = "gpio12"; | 
 |         }; | 
 |  | 
 |         pinctrl_usb_pwron: usb_pwron-pins { | 
 |           function = "usb_pwron"; | 
 |           pins = "gpio13"; | 
 |         }; | 
 |  | 
 |         pinctrl_usb_device_led: usb_device_led-pins { | 
 |           function = "usb_device_led"; | 
 |           pins = "gpio13"; | 
 |         }; | 
 |  | 
 |         pinctrl_usb_active: usb_active-pins { | 
 |           function = "usb_active"; | 
 |           pins = "gpio40"; | 
 |         }; | 
 |       }; | 
 |     }; |