123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- * Allwinner A1X Pin Controller
- The pins controlled by sunXi pin controller are organized in banks,
- each bank has 32 pins. Each pin has 7 multiplexing functions, with
- the first two functions being GPIO in and out. The configuration on
- the pins includes drive strength and pull-up.
- Required properties:
- - compatible: Should be one of the followings (depending on you SoC):
- "allwinner,sun4i-a10-pinctrl"
- "allwinner,sun5i-a10s-pinctrl"
- "allwinner,sun5i-a13-pinctrl"
- "allwinner,sun6i-a31-pinctrl"
- "allwinner,sun6i-a31s-pinctrl"
- "allwinner,sun6i-a31-r-pinctrl"
- "allwinner,sun7i-a20-pinctrl"
- "allwinner,sun8i-a23-pinctrl"
- "allwinner,sun8i-a23-r-pinctrl"
- "allwinner,sun8i-a33-pinctrl"
- "allwinner,sun8i-a83t-pinctrl"
- - reg: Should contain the register physical address and length for the
- pin controller.
- Please refer to pinctrl-bindings.txt in this directory for details of the
- common pinctrl bindings used by client devices.
- A pinctrl node should contain at least one subnodes representing the
- pinctrl groups available on the machine. Each subnode will list the
- pins it needs, and how they should be configured, with regard to muxer
- configuration, drive strength and pullups. If one of these options is
- not set, its actual value will be unspecified.
- Required subnode-properties:
- - allwinner,pins: List of strings containing the pin name.
- - allwinner,function: Function to mux the pins listed above to.
- Optional subnode-properties:
- - allwinner,drive: Integer. Represents the current sent to the pin
- 0: 10 mA
- 1: 20 mA
- 2: 30 mA
- 3: 40 mA
- - allwinner,pull: Integer.
- 0: No resistor
- 1: Pull-up resistor
- 2: Pull-down resistor
- Examples:
- pio: pinctrl@01c20800 {
- compatible = "allwinner,sun5i-a13-pinctrl";
- reg = <0x01c20800 0x400>;
- #address-cells = <1>;
- #size-cells = <0>;
- uart1_pins_a: uart1@0 {
- allwinner,pins = "PE10", "PE11";
- allwinner,function = "uart1";
- allwinner,drive = <0>;
- allwinner,pull = <0>;
- };
- uart1_pins_b: uart1@1 {
- allwinner,pins = "PG3", "PG4";
- allwinner,function = "uart1";
- allwinner,drive = <0>;
- allwinner,pull = <0>;
- };
- };
- GPIO and interrupt controller
- -----------------------------
- This hardware also acts as a GPIO controller and an interrupt
- controller.
- Consumers that would want to refer to one or the other (or both)
- should provide through the usual *-gpios and interrupts properties a
- cell with 3 arguments, first the number of the bank, then the pin
- inside that bank, and finally the flags for the GPIO/interrupts.
- Example:
- xio: gpio@38 {
- compatible = "nxp,pcf8574a";
- reg = <0x38>;
- gpio-controller;
- #gpio-cells = <2>;
- interrupt-parent = <&pio>;
- interrupts = <6 0 IRQ_TYPE_EDGE_FALLING>;
- interrupt-controller;
- #interrupt-cells = <2>;
- };
- reg_usb1_vbus: usb1-vbus {
- compatible = "regulator-fixed";
- regulator-name = "usb1-vbus";
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
- gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>;
- };
|