xref: /freebsd-src/sys/contrib/device-tree/Bindings/ufs/cdns,ufshc.yaml (revision 8bab661a3316d8bd9b9fbd11a3b4371b91507bd2)
1c9ccf3a3SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2c9ccf3a3SEmmanuel Vadot%YAML 1.2
3c9ccf3a3SEmmanuel Vadot---
4c9ccf3a3SEmmanuel Vadot$id: http://devicetree.org/schemas/ufs/cdns,ufshc.yaml#
5c9ccf3a3SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c9ccf3a3SEmmanuel Vadot
7c9ccf3a3SEmmanuel Vadottitle: Cadence Universal Flash Storage (UFS) Controller
8c9ccf3a3SEmmanuel Vadot
9c9ccf3a3SEmmanuel Vadotmaintainers:
10c9ccf3a3SEmmanuel Vadot  - Jan Kotas <jank@cadence.com>
11c9ccf3a3SEmmanuel Vadot
12c9ccf3a3SEmmanuel Vadot# Select only our matches, not all jedec,ufs-2.0
13c9ccf3a3SEmmanuel Vadotselect:
14c9ccf3a3SEmmanuel Vadot  properties:
15c9ccf3a3SEmmanuel Vadot    compatible:
16c9ccf3a3SEmmanuel Vadot      contains:
17c9ccf3a3SEmmanuel Vadot        enum:
18c9ccf3a3SEmmanuel Vadot          - cdns,ufshc
19c9ccf3a3SEmmanuel Vadot          - cdns,ufshc-m31-16nm
20c9ccf3a3SEmmanuel Vadot  required:
21c9ccf3a3SEmmanuel Vadot    - compatible
22c9ccf3a3SEmmanuel Vadot
23c9ccf3a3SEmmanuel VadotallOf:
24c9ccf3a3SEmmanuel Vadot  - $ref: ufs-common.yaml
25c9ccf3a3SEmmanuel Vadot
26c9ccf3a3SEmmanuel Vadotproperties:
27c9ccf3a3SEmmanuel Vadot  compatible:
28c9ccf3a3SEmmanuel Vadot    items:
29c9ccf3a3SEmmanuel Vadot      - enum:
30c9ccf3a3SEmmanuel Vadot          - cdns,ufshc
31c9ccf3a3SEmmanuel Vadot            # CDNS UFS HC + M31 16nm PHY
32c9ccf3a3SEmmanuel Vadot          - cdns,ufshc-m31-16nm
33c9ccf3a3SEmmanuel Vadot      - const: jedec,ufs-2.0
34c9ccf3a3SEmmanuel Vadot
35c9ccf3a3SEmmanuel Vadot  clocks:
36c9ccf3a3SEmmanuel Vadot    minItems: 1
37c9ccf3a3SEmmanuel Vadot    maxItems: 3
38c9ccf3a3SEmmanuel Vadot
39c9ccf3a3SEmmanuel Vadot  clock-names:
40c9ccf3a3SEmmanuel Vadot    minItems: 1
41c9ccf3a3SEmmanuel Vadot    items:
42c9ccf3a3SEmmanuel Vadot      - const: core_clk
43c9ccf3a3SEmmanuel Vadot      - const: phy_clk
44c9ccf3a3SEmmanuel Vadot      - const: ref_clk
45c9ccf3a3SEmmanuel Vadot
46c9ccf3a3SEmmanuel Vadot  power-domains:
47c9ccf3a3SEmmanuel Vadot    maxItems: 1
48c9ccf3a3SEmmanuel Vadot
49c9ccf3a3SEmmanuel Vadot  reg:
50c9ccf3a3SEmmanuel Vadot    maxItems: 1
51c9ccf3a3SEmmanuel Vadot
52*8bab661aSEmmanuel Vadot  dma-coherent: true
53*8bab661aSEmmanuel Vadot
54c9ccf3a3SEmmanuel Vadotrequired:
55c9ccf3a3SEmmanuel Vadot  - compatible
56c9ccf3a3SEmmanuel Vadot  - clocks
57c9ccf3a3SEmmanuel Vadot  - clock-names
58c9ccf3a3SEmmanuel Vadot  - reg
59c9ccf3a3SEmmanuel Vadot
60c9ccf3a3SEmmanuel VadotunevaluatedProperties: false
61c9ccf3a3SEmmanuel Vadot
62c9ccf3a3SEmmanuel Vadotexamples:
63c9ccf3a3SEmmanuel Vadot  - |
64c9ccf3a3SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
65c9ccf3a3SEmmanuel Vadot
66c9ccf3a3SEmmanuel Vadot    ufs@fd030000 {
67c9ccf3a3SEmmanuel Vadot        compatible = "cdns,ufshc", "jedec,ufs-2.0";
68c9ccf3a3SEmmanuel Vadot        reg = <0xfd030000 0x10000>;
69c9ccf3a3SEmmanuel Vadot        interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
70c9ccf3a3SEmmanuel Vadot        freq-table-hz = <0 0>, <0 0>;
71c9ccf3a3SEmmanuel Vadot        clocks = <&ufs_core_clk>, <&ufs_phy_clk>;
72c9ccf3a3SEmmanuel Vadot        clock-names = "core_clk", "phy_clk";
73c9ccf3a3SEmmanuel Vadot    };
74