xref: /freebsd/sys/contrib/device-tree/Bindings/ata/cortina,gemini-sata-bridge.yaml (revision 7ef62cebc2f965b0f640263e179276928885e33d)
1*c9ccf3a3SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*c9ccf3a3SEmmanuel Vadot%YAML 1.2
3*c9ccf3a3SEmmanuel Vadot---
4*c9ccf3a3SEmmanuel Vadot$id: http://devicetree.org/schemas/ata/cortina,gemini-sata-bridge.yaml#
5*c9ccf3a3SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*c9ccf3a3SEmmanuel Vadot
7*c9ccf3a3SEmmanuel Vadottitle: Cortina Systems Gemini SATA Bridge
8*c9ccf3a3SEmmanuel Vadot
9*c9ccf3a3SEmmanuel Vadotmaintainers:
10*c9ccf3a3SEmmanuel Vadot  - Linus Walleij <linus.walleij@linaro.org>
11*c9ccf3a3SEmmanuel Vadot
12*c9ccf3a3SEmmanuel Vadotdescription: |
13*c9ccf3a3SEmmanuel Vadot    The Gemini SATA bridge in a SoC-internal PATA to SATA bridge that
14*c9ccf3a3SEmmanuel Vadot    takes two Faraday Technology FTIDE010 PATA controllers and bridges
15*c9ccf3a3SEmmanuel Vadot    them in different configurations to two SATA ports.
16*c9ccf3a3SEmmanuel Vadot
17*c9ccf3a3SEmmanuel Vadotproperties:
18*c9ccf3a3SEmmanuel Vadot  compatible:
19*c9ccf3a3SEmmanuel Vadot    const: cortina,gemini-sata-bridge
20*c9ccf3a3SEmmanuel Vadot
21*c9ccf3a3SEmmanuel Vadot  reg:
22*c9ccf3a3SEmmanuel Vadot    maxItems: 1
23*c9ccf3a3SEmmanuel Vadot
24*c9ccf3a3SEmmanuel Vadot  resets:
25*c9ccf3a3SEmmanuel Vadot    maxItems: 2
26*c9ccf3a3SEmmanuel Vadot    description: phandles to the reset lines for both SATA bridges
27*c9ccf3a3SEmmanuel Vadot
28*c9ccf3a3SEmmanuel Vadot  reset-names:
29*c9ccf3a3SEmmanuel Vadot    items:
30*c9ccf3a3SEmmanuel Vadot      - const: sata0
31*c9ccf3a3SEmmanuel Vadot      - const: sata1
32*c9ccf3a3SEmmanuel Vadot
33*c9ccf3a3SEmmanuel Vadot  clocks:
34*c9ccf3a3SEmmanuel Vadot    maxItems: 2
35*c9ccf3a3SEmmanuel Vadot    description: phandles to the compulsory peripheral clocks
36*c9ccf3a3SEmmanuel Vadot
37*c9ccf3a3SEmmanuel Vadot  clock-names:
38*c9ccf3a3SEmmanuel Vadot    items:
39*c9ccf3a3SEmmanuel Vadot      - const: SATA0_PCLK
40*c9ccf3a3SEmmanuel Vadot      - const: SATA1_PCLK
41*c9ccf3a3SEmmanuel Vadot
42*c9ccf3a3SEmmanuel Vadot  syscon:
43*c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
44*c9ccf3a3SEmmanuel Vadot    description: a phandle to the global Gemini system controller
45*c9ccf3a3SEmmanuel Vadot
46*c9ccf3a3SEmmanuel Vadot  cortina,gemini-ata-muxmode:
47*c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
48*c9ccf3a3SEmmanuel Vadot    enum:
49*c9ccf3a3SEmmanuel Vadot      - 0
50*c9ccf3a3SEmmanuel Vadot      - 1
51*c9ccf3a3SEmmanuel Vadot      - 2
52*c9ccf3a3SEmmanuel Vadot      - 3
53*c9ccf3a3SEmmanuel Vadot    description: |
54*c9ccf3a3SEmmanuel Vadot      Tell the desired multiplexing mode for the ATA controller and SATA
55*c9ccf3a3SEmmanuel Vadot      bridges.
56*c9ccf3a3SEmmanuel Vadot      Mode 0: ata0 master <-> sata0
57*c9ccf3a3SEmmanuel Vadot              ata1 master <-> sata1
58*c9ccf3a3SEmmanuel Vadot              ata0 slave interface brought out on IDE pads
59*c9ccf3a3SEmmanuel Vadot      Mode 1: ata0 master <-> sata0
60*c9ccf3a3SEmmanuel Vadot              ata1 master <-> sata1
61*c9ccf3a3SEmmanuel Vadot              ata1 slave interface brought out on IDE pads
62*c9ccf3a3SEmmanuel Vadot      Mode 2: ata1 master <-> sata1
63*c9ccf3a3SEmmanuel Vadot              ata1 slave  <-> sata0
64*c9ccf3a3SEmmanuel Vadot              ata0 master and slave interfaces brought out on IDE pads
65*c9ccf3a3SEmmanuel Vadot      Mode 3: ata0 master <-> sata0
66*c9ccf3a3SEmmanuel Vadot              ata0 slave  <-> sata1
67*c9ccf3a3SEmmanuel Vadot              ata1 master and slave interfaces brought out on IDE pads
68*c9ccf3a3SEmmanuel Vadot
69*c9ccf3a3SEmmanuel Vadot  cortina,gemini-enable-ide-pins:
70*c9ccf3a3SEmmanuel Vadot    type: boolean
71*c9ccf3a3SEmmanuel Vadot    description: Enables the PATA to IDE connection.
72*c9ccf3a3SEmmanuel Vadot      The muxmode setting decides whether ATA0 or ATA1 is brought out,
73*c9ccf3a3SEmmanuel Vadot      and whether master, slave or both interfaces get brought out.
74*c9ccf3a3SEmmanuel Vadot
75*c9ccf3a3SEmmanuel Vadot  cortina,gemini-enable-sata-bridge:
76*c9ccf3a3SEmmanuel Vadot    type: boolean
77*c9ccf3a3SEmmanuel Vadot    description: Enables the PATA to SATA bridge inside the Gemnini SoC.
78*c9ccf3a3SEmmanuel Vadot      The Muxmode decides what PATA blocks will be muxed out and how.
79*c9ccf3a3SEmmanuel Vadot
80*c9ccf3a3SEmmanuel Vadotrequired:
81*c9ccf3a3SEmmanuel Vadot  - clocks
82*c9ccf3a3SEmmanuel Vadot  - clock-names
83*c9ccf3a3SEmmanuel Vadot  - cortina,gemini-ata-muxmode
84*c9ccf3a3SEmmanuel Vadot  - resets
85*c9ccf3a3SEmmanuel Vadot  - reset-names
86*c9ccf3a3SEmmanuel Vadot  - compatible
87*c9ccf3a3SEmmanuel Vadot  - reg
88*c9ccf3a3SEmmanuel Vadot  - syscon
89*c9ccf3a3SEmmanuel Vadot
90*c9ccf3a3SEmmanuel VadotadditionalProperties: false
91*c9ccf3a3SEmmanuel Vadot
92*c9ccf3a3SEmmanuel Vadotexamples:
93*c9ccf3a3SEmmanuel Vadot  - |
94*c9ccf3a3SEmmanuel Vadot    #include <dt-bindings/clock/cortina,gemini-clock.h>
95*c9ccf3a3SEmmanuel Vadot    sata@46000000 {
96*c9ccf3a3SEmmanuel Vadot      compatible = "cortina,gemini-sata-bridge";
97*c9ccf3a3SEmmanuel Vadot      reg = <0x46000000 0x100>;
98*c9ccf3a3SEmmanuel Vadot      resets = <&rcon 26>, <&rcon 27>;
99*c9ccf3a3SEmmanuel Vadot      reset-names = "sata0", "sata1";
100*c9ccf3a3SEmmanuel Vadot      clocks = <&gcc GEMINI_CLK_GATE_SATA0>,
101*c9ccf3a3SEmmanuel Vadot               <&gcc GEMINI_CLK_GATE_SATA1>;
102*c9ccf3a3SEmmanuel Vadot      clock-names = "SATA0_PCLK", "SATA1_PCLK";
103*c9ccf3a3SEmmanuel Vadot      syscon = <&syscon>;
104*c9ccf3a3SEmmanuel Vadot      cortina,gemini-ata-muxmode = <3>;
105*c9ccf3a3SEmmanuel Vadot      cortina,gemini-enable-ide-pins;
106*c9ccf3a3SEmmanuel Vadot      cortina,gemini-enable-sata-bridge;
107*c9ccf3a3SEmmanuel Vadot    };
108