xref: /freebsd/sys/contrib/device-tree/Bindings/fsi/aspeed,ast2600-fsi-master.yaml (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1*0e8011faSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*0e8011faSEmmanuel Vadot%YAML 1.2
3*0e8011faSEmmanuel Vadot---
4*0e8011faSEmmanuel Vadot$id: http://devicetree.org/schemas/fsi/aspeed,ast2600-fsi-master.yaml#
5*0e8011faSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*0e8011faSEmmanuel Vadot
7*0e8011faSEmmanuel Vadottitle: Aspeed FSI master
8*0e8011faSEmmanuel Vadot
9*0e8011faSEmmanuel Vadotmaintainers:
10*0e8011faSEmmanuel Vadot  - Eddie James <eajames@linux.ibm.com>
11*0e8011faSEmmanuel Vadot
12*0e8011faSEmmanuel Vadotdescription:
13*0e8011faSEmmanuel Vadot  The AST2600 and later contain two identical FSI masters. They share a
14*0e8011faSEmmanuel Vadot  clock and have a separate interrupt line and output pins.
15*0e8011faSEmmanuel Vadot
16*0e8011faSEmmanuel Vadotproperties:
17*0e8011faSEmmanuel Vadot  compatible:
18*0e8011faSEmmanuel Vadot    enum:
19*0e8011faSEmmanuel Vadot      - aspeed,ast2600-fsi-master
20*0e8011faSEmmanuel Vadot      - aspeed,ast2700-fsi-master
21*0e8011faSEmmanuel Vadot
22*0e8011faSEmmanuel Vadot  clocks:
23*0e8011faSEmmanuel Vadot    maxItems: 1
24*0e8011faSEmmanuel Vadot
25*0e8011faSEmmanuel Vadot  cfam-reset-gpios:
26*0e8011faSEmmanuel Vadot    maxItems: 1
27*0e8011faSEmmanuel Vadot    description:
28*0e8011faSEmmanuel Vadot      Output GPIO pin for CFAM reset
29*0e8011faSEmmanuel Vadot
30*0e8011faSEmmanuel Vadot  fsi-routing-gpios:
31*0e8011faSEmmanuel Vadot    maxItems: 1
32*0e8011faSEmmanuel Vadot    description:
33*0e8011faSEmmanuel Vadot      Output GPIO pin for setting the FSI mux (internal or cabled)
34*0e8011faSEmmanuel Vadot
35*0e8011faSEmmanuel Vadot  fsi-mux-gpios:
36*0e8011faSEmmanuel Vadot    maxItems: 1
37*0e8011faSEmmanuel Vadot    description:
38*0e8011faSEmmanuel Vadot      Input GPIO pin for detecting the desired FSI mux state
39*0e8011faSEmmanuel Vadot
40*0e8011faSEmmanuel Vadot  interrupts:
41*0e8011faSEmmanuel Vadot    maxItems: 1
42*0e8011faSEmmanuel Vadot
43*0e8011faSEmmanuel Vadotif:
44*0e8011faSEmmanuel Vadot  properties:
45*0e8011faSEmmanuel Vadot    compatible:
46*0e8011faSEmmanuel Vadot      contains:
47*0e8011faSEmmanuel Vadot        enum:
48*0e8011faSEmmanuel Vadot          - aspeed,ast2600-fsi-master
49*0e8011faSEmmanuel Vadotthen:
50*0e8011faSEmmanuel Vadot  properties:
51*0e8011faSEmmanuel Vadot    reg:
52*0e8011faSEmmanuel Vadot      maxItems: 1
53*0e8011faSEmmanuel Vadotelse:
54*0e8011faSEmmanuel Vadot  properties:
55*0e8011faSEmmanuel Vadot    reg:
56*0e8011faSEmmanuel Vadot      minItems: 1
57*0e8011faSEmmanuel Vadot      items:
58*0e8011faSEmmanuel Vadot        - description: OPB control registers
59*0e8011faSEmmanuel Vadot        - description: FSI controller registers
60*0e8011faSEmmanuel Vadot        - description: FSI link address space
61*0e8011faSEmmanuel Vadot    reg-names:
62*0e8011faSEmmanuel Vadot      items:
63*0e8011faSEmmanuel Vadot        - const: opb
64*0e8011faSEmmanuel Vadot        - const: ctrl
65*0e8011faSEmmanuel Vadot        - const: fsi
66*0e8011faSEmmanuel Vadot
67*0e8011faSEmmanuel Vadotrequired:
68*0e8011faSEmmanuel Vadot  - compatible
69*0e8011faSEmmanuel Vadot  - reg
70*0e8011faSEmmanuel Vadot  - clocks
71*0e8011faSEmmanuel Vadot  - interrupts
72*0e8011faSEmmanuel Vadot
73*0e8011faSEmmanuel VadotallOf:
74*0e8011faSEmmanuel Vadot  - $ref: fsi-controller.yaml#
75*0e8011faSEmmanuel Vadot
76*0e8011faSEmmanuel VadotunevaluatedProperties: false
77*0e8011faSEmmanuel Vadot
78*0e8011faSEmmanuel Vadotexamples:
79*0e8011faSEmmanuel Vadot  - |
80*0e8011faSEmmanuel Vadot    #include <dt-bindings/clock/ast2600-clock.h>
81*0e8011faSEmmanuel Vadot    #include <dt-bindings/gpio/aspeed-gpio.h>
82*0e8011faSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
83*0e8011faSEmmanuel Vadot    fsi-master@1e79b000 {
84*0e8011faSEmmanuel Vadot        compatible = "aspeed,ast2600-fsi-master";
85*0e8011faSEmmanuel Vadot        reg = <0x1e79b000 0x94>;
86*0e8011faSEmmanuel Vadot        #address-cells = <2>;
87*0e8011faSEmmanuel Vadot        #size-cells = <0>;
88*0e8011faSEmmanuel Vadot        interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
89*0e8011faSEmmanuel Vadot        pinctrl-names = "default";
90*0e8011faSEmmanuel Vadot        pinctrl-0 = <&pinctrl_fsi1_default>;
91*0e8011faSEmmanuel Vadot        clocks = <&syscon ASPEED_CLK_GATE_FSICLK>;
92*0e8011faSEmmanuel Vadot        fsi-routing-gpios = <&gpio0 ASPEED_GPIO(Q, 7) GPIO_ACTIVE_HIGH>;
93*0e8011faSEmmanuel Vadot        fsi-mux-gpios = <&gpio0 ASPEED_GPIO(B, 0) GPIO_ACTIVE_HIGH>;
94*0e8011faSEmmanuel Vadot        cfam-reset-gpios = <&gpio0 ASPEED_GPIO(Q, 0) GPIO_ACTIVE_LOW>;
95*0e8011faSEmmanuel Vadot
96*0e8011faSEmmanuel Vadot        cfam@0,0 {
97*0e8011faSEmmanuel Vadot            reg = <0 0>;
98*0e8011faSEmmanuel Vadot            #address-cells = <1>;
99*0e8011faSEmmanuel Vadot            #size-cells = <1>;
100*0e8011faSEmmanuel Vadot            chip-id = <0>;
101*0e8011faSEmmanuel Vadot        };
102*0e8011faSEmmanuel Vadot    };
103*0e8011faSEmmanuel Vadot  - |
104*0e8011faSEmmanuel Vadot    bus {
105*0e8011faSEmmanuel Vadot        #address-cells = <2>;
106*0e8011faSEmmanuel Vadot        #size-cells = <2>;
107*0e8011faSEmmanuel Vadot
108*0e8011faSEmmanuel Vadot        fsi-master@21800000 {
109*0e8011faSEmmanuel Vadot            compatible = "aspeed,ast2700-fsi-master";
110*0e8011faSEmmanuel Vadot            reg = <0x0 0x21800000 0x0 0x100>,
111*0e8011faSEmmanuel Vadot                  <0x0 0x21000000 0x0 0x1000>,
112*0e8011faSEmmanuel Vadot                  <0x0 0x20000000 0x0 0x1000000>;
113*0e8011faSEmmanuel Vadot            reg-names = "opb", "ctrl", "fsi";
114*0e8011faSEmmanuel Vadot            #interrupt-cells = <1>;
115*0e8011faSEmmanuel Vadot            interrupt-controller;
116*0e8011faSEmmanuel Vadot            interrupts-extended = <&intc 6>;
117*0e8011faSEmmanuel Vadot            pinctrl-names = "default";
118*0e8011faSEmmanuel Vadot            pinctrl-0 = <&pinctrl_fsi0_default>;
119*0e8011faSEmmanuel Vadot            clocks = <&syscon 40>;
120*0e8011faSEmmanuel Vadot        };
121*0e8011faSEmmanuel Vadot    };
122