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