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