1*f2fb1b50SPiyush Mehta# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*f2fb1b50SPiyush Mehta%YAML 1.2 3*f2fb1b50SPiyush Mehta--- 4*f2fb1b50SPiyush Mehta$id: http://devicetree.org/schemas/ata/ceva,ahci-1v84.yaml# 5*f2fb1b50SPiyush Mehta$schema: http://devicetree.org/meta-schemas/core.yaml# 6*f2fb1b50SPiyush Mehta 7*f2fb1b50SPiyush Mehtatitle: Ceva AHCI SATA Controller 8*f2fb1b50SPiyush Mehta 9*f2fb1b50SPiyush Mehtamaintainers: 10*f2fb1b50SPiyush Mehta - Piyush Mehta <piyush.mehta@xilinx.com> 11*f2fb1b50SPiyush Mehta 12*f2fb1b50SPiyush Mehtadescription: | 13*f2fb1b50SPiyush Mehta The Ceva SATA controller mostly conforms to the AHCI interface with some 14*f2fb1b50SPiyush Mehta special extensions to add functionality, is a high-performance dual-port 15*f2fb1b50SPiyush Mehta SATA host controller with an AHCI compliant command layer which supports 16*f2fb1b50SPiyush Mehta advanced features such as native command queuing and frame information 17*f2fb1b50SPiyush Mehta structure (FIS) based switching for systems employing port multipliers. 18*f2fb1b50SPiyush Mehta 19*f2fb1b50SPiyush Mehtaproperties: 20*f2fb1b50SPiyush Mehta compatible: 21*f2fb1b50SPiyush Mehta const: ceva,ahci-1v84 22*f2fb1b50SPiyush Mehta 23*f2fb1b50SPiyush Mehta reg: 24*f2fb1b50SPiyush Mehta maxItems: 1 25*f2fb1b50SPiyush Mehta 26*f2fb1b50SPiyush Mehta clocks: 27*f2fb1b50SPiyush Mehta maxItems: 1 28*f2fb1b50SPiyush Mehta 29*f2fb1b50SPiyush Mehta dma-coherent: true 30*f2fb1b50SPiyush Mehta 31*f2fb1b50SPiyush Mehta interrupts: 32*f2fb1b50SPiyush Mehta maxItems: 1 33*f2fb1b50SPiyush Mehta 34*f2fb1b50SPiyush Mehta iommus: 35*f2fb1b50SPiyush Mehta maxItems: 1 36*f2fb1b50SPiyush Mehta 37*f2fb1b50SPiyush Mehta power-domains: 38*f2fb1b50SPiyush Mehta maxItems: 1 39*f2fb1b50SPiyush Mehta 40*f2fb1b50SPiyush Mehta ceva,p0-cominit-params: 41*f2fb1b50SPiyush Mehta $ref: /schemas/types.yaml#/definitions/uint8-array 42*f2fb1b50SPiyush Mehta description: | 43*f2fb1b50SPiyush Mehta OOB timing value for COMINIT parameter for port 0. 44*f2fb1b50SPiyush Mehta The fields for the above parameter must be as shown below:- 45*f2fb1b50SPiyush Mehta ceva,p0-cominit-params = /bits/ 8 <CIBGMN CIBGMX CIBGN CINMP>; 46*f2fb1b50SPiyush Mehta items: 47*f2fb1b50SPiyush Mehta - description: CINMP - COMINIT Negate Minimum Period. 48*f2fb1b50SPiyush Mehta - description: CIBGN - COMINIT Burst Gap Nominal. 49*f2fb1b50SPiyush Mehta - description: CIBGMX - COMINIT Burst Gap Maximum. 50*f2fb1b50SPiyush Mehta - description: CIBGMN - COMINIT Burst Gap Minimum. 51*f2fb1b50SPiyush Mehta 52*f2fb1b50SPiyush Mehta ceva,p0-comwake-params: 53*f2fb1b50SPiyush Mehta $ref: /schemas/types.yaml#/definitions/uint8-array 54*f2fb1b50SPiyush Mehta description: | 55*f2fb1b50SPiyush Mehta OOB timing value for COMWAKE parameter for port 0. 56*f2fb1b50SPiyush Mehta The fields for the above parameter must be as shown below:- 57*f2fb1b50SPiyush Mehta ceva,p0-comwake-params = /bits/ 8 <CWBGMN CWBGMX CWBGN CWNMP>; 58*f2fb1b50SPiyush Mehta items: 59*f2fb1b50SPiyush Mehta - description: CWBGMN - COMWAKE Burst Gap Minimum. 60*f2fb1b50SPiyush Mehta - description: CWBGMX - COMWAKE Burst Gap Maximum. 61*f2fb1b50SPiyush Mehta - description: CWBGN - COMWAKE Burst Gap Nominal. 62*f2fb1b50SPiyush Mehta - description: CWNMP - COMWAKE Negate Minimum Period. 63*f2fb1b50SPiyush Mehta 64*f2fb1b50SPiyush Mehta ceva,p0-burst-params: 65*f2fb1b50SPiyush Mehta $ref: /schemas/types.yaml#/definitions/uint8-array 66*f2fb1b50SPiyush Mehta description: | 67*f2fb1b50SPiyush Mehta Burst timing value for COM parameter for port 0. 68*f2fb1b50SPiyush Mehta The fields for the above parameter must be as shown below:- 69*f2fb1b50SPiyush Mehta ceva,p0-burst-params = /bits/ 8 <BMX BNM SFD PTST>; 70*f2fb1b50SPiyush Mehta items: 71*f2fb1b50SPiyush Mehta - description: BMX - COM Burst Maximum. 72*f2fb1b50SPiyush Mehta - description: BNM - COM Burst Nominal. 73*f2fb1b50SPiyush Mehta - description: SFD - Signal Failure Detection value. 74*f2fb1b50SPiyush Mehta - description: PTST - Partial to Slumber timer value. 75*f2fb1b50SPiyush Mehta 76*f2fb1b50SPiyush Mehta ceva,p0-retry-params: 77*f2fb1b50SPiyush Mehta $ref: /schemas/types.yaml#/definitions/uint16-array 78*f2fb1b50SPiyush Mehta description: | 79*f2fb1b50SPiyush Mehta Retry interval timing value for port 0. 80*f2fb1b50SPiyush Mehta The fields for the above parameter must be as shown below:- 81*f2fb1b50SPiyush Mehta ceva,p0-retry-params = /bits/ 16 <RIT RCT>; 82*f2fb1b50SPiyush Mehta items: 83*f2fb1b50SPiyush Mehta - description: RIT - Retry Interval Timer. 84*f2fb1b50SPiyush Mehta - description: RCT - Rate Change Timer. 85*f2fb1b50SPiyush Mehta 86*f2fb1b50SPiyush Mehta ceva,p1-cominit-params: 87*f2fb1b50SPiyush Mehta $ref: /schemas/types.yaml#/definitions/uint8-array 88*f2fb1b50SPiyush Mehta description: | 89*f2fb1b50SPiyush Mehta OOB timing value for COMINIT parameter for port 1. 90*f2fb1b50SPiyush Mehta The fields for the above parameter must be as shown below:- 91*f2fb1b50SPiyush Mehta ceva,p1-cominit-params = /bits/ 8 <CIBGMN CIBGMX CIBGN CINMP>; 92*f2fb1b50SPiyush Mehta items: 93*f2fb1b50SPiyush Mehta - description: CINMP - COMINIT Negate Minimum Period. 94*f2fb1b50SPiyush Mehta - description: CIBGN - COMINIT Burst Gap Nominal. 95*f2fb1b50SPiyush Mehta - description: CIBGMX - COMINIT Burst Gap Maximum. 96*f2fb1b50SPiyush Mehta - description: CIBGMN - COMINIT Burst Gap Minimum. 97*f2fb1b50SPiyush Mehta 98*f2fb1b50SPiyush Mehta ceva,p1-comwake-params: 99*f2fb1b50SPiyush Mehta $ref: /schemas/types.yaml#/definitions/uint8-array 100*f2fb1b50SPiyush Mehta description: | 101*f2fb1b50SPiyush Mehta OOB timing value for COMWAKE parameter for port 1. 102*f2fb1b50SPiyush Mehta The fields for the above parameter must be as shown below:- 103*f2fb1b50SPiyush Mehta ceva,p1-comwake-params = /bits/ 8 <CWBGMN CWBGMX CWBGN CWNMP>; 104*f2fb1b50SPiyush Mehta items: 105*f2fb1b50SPiyush Mehta - description: CWBGMN - COMWAKE Burst Gap Minimum. 106*f2fb1b50SPiyush Mehta - description: CWBGMX - COMWAKE Burst Gap Maximum. 107*f2fb1b50SPiyush Mehta - description: CWBGN - COMWAKE Burst Gap Nominal. 108*f2fb1b50SPiyush Mehta - description: CWNMP - COMWAKE Negate Minimum Period. 109*f2fb1b50SPiyush Mehta 110*f2fb1b50SPiyush Mehta ceva,p1-burst-params: 111*f2fb1b50SPiyush Mehta $ref: /schemas/types.yaml#/definitions/uint8-array 112*f2fb1b50SPiyush Mehta description: | 113*f2fb1b50SPiyush Mehta Burst timing value for COM parameter for port 1. 114*f2fb1b50SPiyush Mehta The fields for the above parameter must be as shown below:- 115*f2fb1b50SPiyush Mehta ceva,p1-burst-params = /bits/ 8 <BMX BNM SFD PTST>; 116*f2fb1b50SPiyush Mehta items: 117*f2fb1b50SPiyush Mehta - description: BMX - COM Burst Maximum. 118*f2fb1b50SPiyush Mehta - description: BNM - COM Burst Nominal. 119*f2fb1b50SPiyush Mehta - description: SFD - Signal Failure Detection value. 120*f2fb1b50SPiyush Mehta - description: PTST - Partial to Slumber timer value. 121*f2fb1b50SPiyush Mehta 122*f2fb1b50SPiyush Mehta ceva,p1-retry-params: 123*f2fb1b50SPiyush Mehta $ref: /schemas/types.yaml#/definitions/uint16-array 124*f2fb1b50SPiyush Mehta description: | 125*f2fb1b50SPiyush Mehta Retry interval timing value for port 1. 126*f2fb1b50SPiyush Mehta The fields for the above parameter must be as shown below:- 127*f2fb1b50SPiyush Mehta ceva,pN-retry-params = /bits/ 16 <RIT RCT>; 128*f2fb1b50SPiyush Mehta items: 129*f2fb1b50SPiyush Mehta - description: RIT - Retry Interval Timer. 130*f2fb1b50SPiyush Mehta - description: RCT - Rate Change Timer. 131*f2fb1b50SPiyush Mehta 132*f2fb1b50SPiyush Mehta ceva,broken-gen2: 133*f2fb1b50SPiyush Mehta $ref: /schemas/types.yaml#/definitions/flag 134*f2fb1b50SPiyush Mehta description: | 135*f2fb1b50SPiyush Mehta limit to gen1 speed instead of gen2. 136*f2fb1b50SPiyush Mehta 137*f2fb1b50SPiyush Mehta phys: 138*f2fb1b50SPiyush Mehta maxItems: 1 139*f2fb1b50SPiyush Mehta 140*f2fb1b50SPiyush Mehta phy-names: 141*f2fb1b50SPiyush Mehta items: 142*f2fb1b50SPiyush Mehta - const: sata-phy 143*f2fb1b50SPiyush Mehta 144*f2fb1b50SPiyush Mehta resets: 145*f2fb1b50SPiyush Mehta maxItems: 1 146*f2fb1b50SPiyush Mehta 147*f2fb1b50SPiyush Mehtarequired: 148*f2fb1b50SPiyush Mehta - compatible 149*f2fb1b50SPiyush Mehta - reg 150*f2fb1b50SPiyush Mehta - clocks 151*f2fb1b50SPiyush Mehta - interrupts 152*f2fb1b50SPiyush Mehta - ceva,p0-cominit-params 153*f2fb1b50SPiyush Mehta - ceva,p0-comwake-params 154*f2fb1b50SPiyush Mehta - ceva,p0-burst-params 155*f2fb1b50SPiyush Mehta - ceva,p0-retry-params 156*f2fb1b50SPiyush Mehta - ceva,p1-cominit-params 157*f2fb1b50SPiyush Mehta - ceva,p1-comwake-params 158*f2fb1b50SPiyush Mehta - ceva,p1-burst-params 159*f2fb1b50SPiyush Mehta - ceva,p1-retry-params 160*f2fb1b50SPiyush Mehta 161*f2fb1b50SPiyush MehtaadditionalProperties: false 162*f2fb1b50SPiyush Mehta 163*f2fb1b50SPiyush Mehtaexamples: 164*f2fb1b50SPiyush Mehta - | 165*f2fb1b50SPiyush Mehta #include <dt-bindings/clock/xlnx-zynqmp-clk.h> 166*f2fb1b50SPiyush Mehta #include <dt-bindings/interrupt-controller/irq.h> 167*f2fb1b50SPiyush Mehta #include <dt-bindings/power/xlnx-zynqmp-power.h> 168*f2fb1b50SPiyush Mehta #include <dt-bindings/reset/xlnx-zynqmp-resets.h> 169*f2fb1b50SPiyush Mehta #include <dt-bindings/clock/xlnx-zynqmp-clk.h> 170*f2fb1b50SPiyush Mehta #include <dt-bindings/phy/phy.h> 171*f2fb1b50SPiyush Mehta 172*f2fb1b50SPiyush Mehta sata: ahci@fd0c0000 { 173*f2fb1b50SPiyush Mehta compatible = "ceva,ahci-1v84"; 174*f2fb1b50SPiyush Mehta reg = <0xfd0c0000 0x200>; 175*f2fb1b50SPiyush Mehta interrupt-parent = <&gic>; 176*f2fb1b50SPiyush Mehta interrupts = <0 133 IRQ_TYPE_LEVEL_HIGH>; 177*f2fb1b50SPiyush Mehta clocks = <&zynqmp_clk SATA_REF>; 178*f2fb1b50SPiyush Mehta ceva,p0-cominit-params = /bits/ 8 <0x0F 0x25 0x18 0x29>; 179*f2fb1b50SPiyush Mehta ceva,p0-comwake-params = /bits/ 8 <0x04 0x0B 0x08 0x0F>; 180*f2fb1b50SPiyush Mehta ceva,p0-burst-params = /bits/ 8 <0x0A 0x08 0x4A 0x06>; 181*f2fb1b50SPiyush Mehta ceva,p0-retry-params = /bits/ 16 <0x0216 0x7F06>; 182*f2fb1b50SPiyush Mehta ceva,p1-cominit-params = /bits/ 8 <0x0F 0x25 0x18 0x29>; 183*f2fb1b50SPiyush Mehta ceva,p1-comwake-params = /bits/ 8 <0x04 0x0B 0x08 0x0F>; 184*f2fb1b50SPiyush Mehta ceva,p1-burst-params = /bits/ 8 <0x0A 0x08 0x4A 0x06>; 185*f2fb1b50SPiyush Mehta ceva,p1-retry-params = /bits/ 16 <0x0216 0x7F06>; 186*f2fb1b50SPiyush Mehta ceva,broken-gen2; 187*f2fb1b50SPiyush Mehta phys = <&psgtr 1 PHY_TYPE_SATA 1 1>; 188*f2fb1b50SPiyush Mehta resets = <&zynqmp_reset ZYNQMP_RESET_SATA>; 189*f2fb1b50SPiyush Mehta }; 190