Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

Aspeed SGPIO controller Device Tree Bindings
--------------------------------------------

This SGPIO controller is for ASPEED AST2500 SoC, it supports up to 80 full
featured Serial GPIOs. Each of the Serial GPIO pins can be programmed to
support the following options:
- Support interrupt option for each input port and various interrupt
  sensitivity option (level-high, level-low, edge-high, edge-low)
- Support reset tolerance option for each output port
- Directly connected to APB bus and its shift clock is from APB bus clock
  divided by a programmable value.
- Co-work with external signal-chained TTL components (74LV165/74LV595)

Required properties:

- compatible : Should be one of
  "aspeed,ast2400-sgpio", "aspeed,ast2500-sgpio"
- #gpio-cells : Should be 2, see gpio.txt
- reg : Address and length of the register set for the device
- gpio-controller : Marks the device node as a GPIO controller
- interrupts : Interrupt specifier, see interrupt-controller/interrupts.txt
- interrupt-controller : Mark the GPIO controller as an interrupt-controller
- ngpios : number of GPIO lines, see gpio.txt
  (should be multiple of 8, up to 80 pins)
- clocks : A phandle to the APB clock for SGPM clock division
- bus-frequency : SGPM CLK frequency

The sgpio and interrupt properties are further described in their respective
bindings documentation:

- Documentation/devicetree/bindings/gpio/gpio.txt
- Documentation/devicetree/bindings/interrupt-controller/interrupts.txt

  Example:
	sgpio: sgpio@1e780200 {
		#gpio-cells = <2>;
		compatible = "aspeed,ast2500-sgpio";
		gpio-controller;
		interrupts = <40>;
		reg = <0x1e780200 0x0100>;
		clocks = <&syscon ASPEED_CLK_APB>;
		interrupt-controller;
		ngpios = <8>;
		bus-frequency = <12000000>;
	};