xref: /freebsd/sys/contrib/device-tree/Bindings/gpio/sgpio-aspeed.txt (revision 7fdf597e96a02165cfe22ff357b857d5fa15ed8a)
1Aspeed SGPIO controller Device Tree Bindings
2--------------------------------------------
3
4This SGPIO controller is for ASPEED AST2500 SoC, it supports up to 80 full
5featured Serial GPIOs. Each of the Serial GPIO pins can be programmed to
6support the following options:
7- Support interrupt option for each input port and various interrupt
8  sensitivity option (level-high, level-low, edge-high, edge-low)
9- Support reset tolerance option for each output port
10- Directly connected to APB bus and its shift clock is from APB bus clock
11  divided by a programmable value.
12- Co-work with external signal-chained TTL components (74LV165/74LV595)
13
14Required properties:
15
16- compatible : Should be one of
17  "aspeed,ast2400-sgpio", "aspeed,ast2500-sgpio"
18- #gpio-cells : Should be 2, see gpio.txt
19- reg : Address and length of the register set for the device
20- gpio-controller : Marks the device node as a GPIO controller
21- interrupts : Interrupt specifier, see interrupt-controller/interrupts.txt
22- interrupt-controller : Mark the GPIO controller as an interrupt-controller
23- ngpios : number of *hardware* GPIO lines, see gpio.txt. This will expose
24  2 software GPIOs per hardware GPIO: one for hardware input, one for hardware
25  output. Up to 80 pins, must be a multiple of 8.
26- clocks : A phandle to the APB clock for SGPM clock division
27- bus-frequency : SGPM CLK frequency
28
29The sgpio and interrupt properties are further described in their respective
30bindings documentation:
31
32- Documentation/devicetree/bindings/gpio/gpio.txt
33- Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
34
35  Example:
36	sgpio: sgpio@1e780200 {
37		#gpio-cells = <2>;
38		compatible = "aspeed,ast2500-sgpio";
39		gpio-controller;
40		interrupts = <40>;
41		reg = <0x1e780200 0x0100>;
42		clocks = <&syscon ASPEED_CLK_APB>;
43		interrupt-controller;
44		ngpios = <8>;
45		bus-frequency = <12000000>;
46	};
47