hc
2023-11-07 5e8555e3ea324daaf0e38422bcba48c4df33a0d9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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