xref: /freebsd/sys/contrib/device-tree/Bindings/gpio/aspeed,sgpio.yaml (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1354d7675SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2354d7675SEmmanuel Vadot%YAML 1.2
3354d7675SEmmanuel Vadot---
4354d7675SEmmanuel Vadot$id: http://devicetree.org/schemas/gpio/aspeed,sgpio.yaml#
5354d7675SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6354d7675SEmmanuel Vadot
7354d7675SEmmanuel Vadottitle: Aspeed SGPIO controller
8354d7675SEmmanuel Vadot
9354d7675SEmmanuel Vadotmaintainers:
10354d7675SEmmanuel Vadot  - Andrew Jeffery <andrew@aj.id.au>
11354d7675SEmmanuel Vadot
12354d7675SEmmanuel Vadotdescription:
13354d7675SEmmanuel Vadot  This SGPIO controller is for ASPEED AST2400, AST2500 and AST2600 SoC,
14354d7675SEmmanuel Vadot  AST2600 have two sgpio master one with 128 pins another one with 80 pins,
15354d7675SEmmanuel Vadot  AST2500/AST2400 have one sgpio master with 80 pins. Each of the Serial
16354d7675SEmmanuel Vadot  GPIO pins can be programmed to support the following options
17354d7675SEmmanuel Vadot  - Support interrupt option for each input port and various interrupt
18354d7675SEmmanuel Vadot    sensitivity option (level-high, level-low, edge-high, edge-low)
19354d7675SEmmanuel Vadot  - Support reset tolerance option for each output port
20354d7675SEmmanuel Vadot  - Directly connected to APB bus and its shift clock is from APB bus clock
21354d7675SEmmanuel Vadot    divided by a programmable value.
22354d7675SEmmanuel Vadot  - Co-work with external signal-chained TTL components (74LV165/74LV595)
23354d7675SEmmanuel Vadot
24354d7675SEmmanuel Vadotproperties:
25354d7675SEmmanuel Vadot  compatible:
26354d7675SEmmanuel Vadot    enum:
27354d7675SEmmanuel Vadot      - aspeed,ast2400-sgpio
28354d7675SEmmanuel Vadot      - aspeed,ast2500-sgpio
29354d7675SEmmanuel Vadot      - aspeed,ast2600-sgpiom
30354d7675SEmmanuel Vadot
31354d7675SEmmanuel Vadot  reg:
32354d7675SEmmanuel Vadot    maxItems: 1
33354d7675SEmmanuel Vadot
34354d7675SEmmanuel Vadot  gpio-controller: true
35354d7675SEmmanuel Vadot
36*0e8011faSEmmanuel Vadot  # Each SGPIO is represented as a pair of input and output GPIOs
37*0e8011faSEmmanuel Vadot  gpio-line-names:
38*0e8011faSEmmanuel Vadot    minItems: 160
39*0e8011faSEmmanuel Vadot    maxItems: 256
40*0e8011faSEmmanuel Vadot
41354d7675SEmmanuel Vadot  '#gpio-cells':
42354d7675SEmmanuel Vadot    const: 2
43354d7675SEmmanuel Vadot
44354d7675SEmmanuel Vadot  interrupts:
45354d7675SEmmanuel Vadot    maxItems: 1
46354d7675SEmmanuel Vadot
47354d7675SEmmanuel Vadot  interrupt-controller: true
48354d7675SEmmanuel Vadot
49*0e8011faSEmmanuel Vadot  '#interrupt-cells':
50*0e8011faSEmmanuel Vadot    const: 2
51*0e8011faSEmmanuel Vadot
52354d7675SEmmanuel Vadot  clocks:
53354d7675SEmmanuel Vadot    maxItems: 1
54354d7675SEmmanuel Vadot
55354d7675SEmmanuel Vadot  ngpios: true
56354d7675SEmmanuel Vadot
57354d7675SEmmanuel Vadot  bus-frequency: true
58354d7675SEmmanuel Vadot
59354d7675SEmmanuel Vadotrequired:
60354d7675SEmmanuel Vadot  - compatible
61354d7675SEmmanuel Vadot  - reg
62354d7675SEmmanuel Vadot  - gpio-controller
63354d7675SEmmanuel Vadot  - '#gpio-cells'
64354d7675SEmmanuel Vadot  - interrupts
65354d7675SEmmanuel Vadot  - interrupt-controller
66*0e8011faSEmmanuel Vadot  - '#interrupt-cells'
67354d7675SEmmanuel Vadot  - ngpios
68354d7675SEmmanuel Vadot  - clocks
69354d7675SEmmanuel Vadot  - bus-frequency
70354d7675SEmmanuel Vadot
71354d7675SEmmanuel VadotadditionalProperties: false
72354d7675SEmmanuel Vadot
73354d7675SEmmanuel Vadotexamples:
74354d7675SEmmanuel Vadot  - |
75354d7675SEmmanuel Vadot    #include <dt-bindings/clock/aspeed-clock.h>
76354d7675SEmmanuel Vadot    sgpio: sgpio@1e780200 {
77354d7675SEmmanuel Vadot        #gpio-cells = <2>;
78354d7675SEmmanuel Vadot        compatible = "aspeed,ast2500-sgpio";
79354d7675SEmmanuel Vadot        gpio-controller;
80354d7675SEmmanuel Vadot        interrupts = <40>;
81354d7675SEmmanuel Vadot        reg = <0x1e780200 0x0100>;
82354d7675SEmmanuel Vadot        clocks = <&syscon ASPEED_CLK_APB>;
83354d7675SEmmanuel Vadot        interrupt-controller;
84*0e8011faSEmmanuel Vadot        #interrupt-cells = <2>;
85354d7675SEmmanuel Vadot        ngpios = <80>;
86354d7675SEmmanuel Vadot        bus-frequency = <12000000>;
87354d7675SEmmanuel Vadot    };
88