123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- AXP209 GPIO & pinctrl controller
- This driver follows the usual GPIO bindings found in
- Documentation/devicetree/bindings/gpio/gpio.txt
- This driver follows the usual pinctrl bindings found in
- Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
- This driver employs the per-pin muxing pattern.
- Required properties:
- - compatible: Should be one of:
- - "x-powers,axp209-gpio"
- - "x-powers,axp813-gpio"
- - #gpio-cells: Should be two. The first cell is the pin number and the
- second is the GPIO flags.
- - gpio-controller: Marks the device node as a GPIO controller.
- This node must be a subnode of the axp20x PMIC, documented in
- Documentation/devicetree/bindings/mfd/axp20x.txt
- Example:
- axp209: pmic@34 {
- compatible = "x-powers,axp209";
- reg = <0x34>;
- interrupt-parent = <&nmi_intc>;
- interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
- interrupt-controller;
- #interrupt-cells = <1>;
- axp_gpio: gpio {
- compatible = "x-powers,axp209-gpio";
- gpio-controller;
- #gpio-cells = <2>;
- };
- };
- The GPIOs can be muxed to other functions and therefore, must be a subnode of
- axp_gpio.
- Example:
- &axp_gpio {
- gpio0_adc: gpio0-adc {
- pins = "GPIO0";
- function = "adc";
- };
- };
- &example_node {
- pinctrl-names = "default";
- pinctrl-0 = <&gpio0_adc>;
- };
- GPIOs and their functions
- -------------------------
- Each GPIO is independent from the other (i.e. GPIO0 in gpio_in function does
- not force GPIO1 and GPIO2 to be in gpio_in function as well).
- axp209
- ------
- GPIO | Functions
- ------------------------
- GPIO0 | gpio_in, gpio_out, ldo, adc
- GPIO1 | gpio_in, gpio_out, ldo, adc
- GPIO2 | gpio_in, gpio_out
- axp813
- ------
- GPIO | Functions
- ------------------------
- GPIO0 | gpio_in, gpio_out, ldo, adc
- GPIO1 | gpio_in, gpio_out, ldo
|