This is a generic binding for simple MMIO GPIO controllers. Although we have a single driver for these controllers, they were previously spread over several files. Consolidate them. The register descriptions are adapted from the comments in the source. There is no set order for the registers, and some registers may be omitted. Because of this, reg-names is mandatory, and no order is specified. Rename brcm,bcm6345-gpio to brcm,bcm63xx-gpio to reflect that bcm6345 has moved. Signed-off-by: Sean Anderson <sean.anderson@seco.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
163 lines
3.9 KiB
YAML
163 lines
3.9 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/mfd/brcm,bcm6328-gpio-sysctl.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Broadcom BCM6328 GPIO System Controller
|
|
|
|
maintainers:
|
|
- Álvaro Fernández Rojas <noltari@gmail.com>
|
|
- Jonas Gorski <jonas.gorski@gmail.com>
|
|
|
|
description:
|
|
Broadcom BCM6328 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,bcm6328-gpio-sysctl
|
|
- const: syscon
|
|
- const: simple-mfd
|
|
|
|
ranges:
|
|
maxItems: 1
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
patternProperties:
|
|
"^gpio@[0-9a-f]+$":
|
|
# Child node
|
|
type: object
|
|
$ref: "../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: "../pinctrl/brcm,bcm6328-pinctrl.yaml"
|
|
description:
|
|
Pin controller for the SoC pins. This child node definition
|
|
should follow the bindings specified in
|
|
Documentation/devicetree/bindings/pinctrl/brcm,bcm6328-pinctrl.yaml.
|
|
|
|
required:
|
|
- "#address-cells"
|
|
- compatible
|
|
- ranges
|
|
- reg
|
|
- "#size-cells"
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
syscon@10000080 {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
compatible = "brcm,bcm6328-gpio-sysctl", "syscon", "simple-mfd";
|
|
reg = <0x10000080 0x80>;
|
|
ranges = <0 0x10000080 0x80>;
|
|
|
|
gpio@0 {
|
|
compatible = "brcm,bcm6328-gpio";
|
|
reg-names = "dirout", "dat";
|
|
reg = <0x0 0x8>, <0x8 0x8>;
|
|
|
|
gpio-controller;
|
|
gpio-ranges = <&pinctrl 0 0 32>;
|
|
#gpio-cells = <2>;
|
|
};
|
|
|
|
pinctrl: pinctrl@18 {
|
|
compatible = "brcm,bcm6328-pinctrl";
|
|
reg = <0x18 0x10>;
|
|
|
|
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 = "gpio11";
|
|
};
|
|
|
|
pinctrl_pcie_clkreq: pcie_clkreq-pins {
|
|
function = "pcie_clkreq";
|
|
pins = "gpio16";
|
|
};
|
|
|
|
pinctrl_ephy0_spd_led: ephy0_spd_led-pins {
|
|
function = "led";
|
|
pins = "gpio17";
|
|
};
|
|
|
|
pinctrl_ephy1_spd_led: ephy1_spd_led-pins {
|
|
function = "led";
|
|
pins = "gpio18";
|
|
};
|
|
|
|
pinctrl_ephy2_spd_led: ephy2_spd_led-pins {
|
|
function = "led";
|
|
pins = "gpio19";
|
|
};
|
|
|
|
pinctrl_ephy3_spd_led: ephy3_spd_led-pins {
|
|
function = "led";
|
|
pins = "gpio20";
|
|
};
|
|
|
|
pinctrl_ephy0_act_led: ephy0_act_led-pins {
|
|
function = "ephy0_act_led";
|
|
pins = "gpio25";
|
|
};
|
|
|
|
pinctrl_ephy1_act_led: ephy1_act_led-pins {
|
|
function = "ephy1_act_led";
|
|
pins = "gpio26";
|
|
};
|
|
|
|
pinctrl_ephy2_act_led: ephy2_act_led-pins {
|
|
function = "ephy2_act_led";
|
|
pins = "gpio27";
|
|
};
|
|
|
|
pinctrl_ephy3_act_led: ephy3_act_led-pins {
|
|
function = "ephy3_act_led";
|
|
pins = "gpio28";
|
|
};
|
|
|
|
pinctrl_hsspi_cs1: hsspi_cs1-pins {
|
|
function = "hsspi_cs1";
|
|
pins = "hsspi_cs1";
|
|
};
|
|
|
|
pinctrl_usb_port1_device: usb_port1_device-pins {
|
|
function = "usb_device_port";
|
|
pins = "usb_port1";
|
|
};
|
|
|
|
pinctrl_usb_port1_host: usb_port1_host-pins {
|
|
function = "usb_host_port";
|
|
pins = "usb_port1";
|
|
};
|
|
};
|
|
};
|