xref: /freebsd/sys/contrib/device-tree/Bindings/gpio/gpio-xilinx.txt (revision 5def4c47d4bd90b209b9b4a4ba9faec15846d8fd)
1c66ec88fSEmmanuel VadotXilinx plb/axi GPIO controller
2c66ec88fSEmmanuel Vadot
3c66ec88fSEmmanuel VadotDual channel GPIO controller with configurable number of pins
4c66ec88fSEmmanuel Vadot(from 1 to 32 per channel). Every pin can be configured as
5c66ec88fSEmmanuel Vadotinput/output/tristate. Both channels share the same global IRQ but
6c66ec88fSEmmanuel Vadotlocal interrupts can be enabled on channel basis.
7c66ec88fSEmmanuel Vadot
8c66ec88fSEmmanuel VadotRequired properties:
9c66ec88fSEmmanuel Vadot- compatible : Should be "xlnx,xps-gpio-1.00.a"
10c66ec88fSEmmanuel Vadot- reg : Address and length of the register set for the device
11c66ec88fSEmmanuel Vadot- #gpio-cells : Should be two. The first cell is the pin number and the
12c66ec88fSEmmanuel Vadot  second cell is used to specify optional parameters (currently unused).
13c66ec88fSEmmanuel Vadot- gpio-controller : Marks the device node as a GPIO controller.
14c66ec88fSEmmanuel Vadot
15c66ec88fSEmmanuel VadotOptional properties:
16*5def4c47SEmmanuel Vadot- clocks : Input clock specifier. Refer to common clock bindings.
17c66ec88fSEmmanuel Vadot- interrupts : Interrupt mapping for GPIO IRQ.
18c66ec88fSEmmanuel Vadot- xlnx,all-inputs : if n-th bit is setup, GPIO-n is input
19c66ec88fSEmmanuel Vadot- xlnx,dout-default : if n-th bit is 1, GPIO-n default value is 1
20c66ec88fSEmmanuel Vadot- xlnx,gpio-width : gpio width
21c66ec88fSEmmanuel Vadot- xlnx,tri-default : if n-th bit is 1, GPIO-n is in tristate mode
22c66ec88fSEmmanuel Vadot- xlnx,is-dual : if 1, controller also uses the second channel
23c66ec88fSEmmanuel Vadot- xlnx,all-inputs-2 : as above but for the second channel
24c66ec88fSEmmanuel Vadot- xlnx,dout-default-2 : as above but the second channel
25c66ec88fSEmmanuel Vadot- xlnx,gpio2-width : as above but for the second channel
26c66ec88fSEmmanuel Vadot- xlnx,tri-default-2 : as above but for the second channel
27c66ec88fSEmmanuel Vadot
28c66ec88fSEmmanuel Vadot
29c66ec88fSEmmanuel VadotExample:
30c66ec88fSEmmanuel Vadotgpio: gpio@40000000 {
31c66ec88fSEmmanuel Vadot	#gpio-cells = <2>;
32c66ec88fSEmmanuel Vadot	compatible = "xlnx,xps-gpio-1.00.a";
33*5def4c47SEmmanuel Vadot	clocks = <&clkc25>;
34c66ec88fSEmmanuel Vadot	gpio-controller ;
35c66ec88fSEmmanuel Vadot	interrupt-parent = <&microblaze_0_intc>;
36c66ec88fSEmmanuel Vadot	interrupts = < 6 2 >;
37c66ec88fSEmmanuel Vadot	reg = < 0x40000000 0x10000 >;
38c66ec88fSEmmanuel Vadot	xlnx,all-inputs = <0x0>;
39c66ec88fSEmmanuel Vadot	xlnx,all-inputs-2 = <0x0>;
40c66ec88fSEmmanuel Vadot	xlnx,dout-default = <0x0>;
41c66ec88fSEmmanuel Vadot	xlnx,dout-default-2 = <0x0>;
42c66ec88fSEmmanuel Vadot	xlnx,gpio-width = <0x2>;
43c66ec88fSEmmanuel Vadot	xlnx,gpio2-width = <0x2>;
44c66ec88fSEmmanuel Vadot	xlnx,interrupt-present = <0x1>;
45c66ec88fSEmmanuel Vadot	xlnx,is-dual = <0x1>;
46c66ec88fSEmmanuel Vadot	xlnx,tri-default = <0xffffffff>;
47c66ec88fSEmmanuel Vadot	xlnx,tri-default-2 = <0xffffffff>;
48c66ec88fSEmmanuel Vadot} ;
49