xref: /linux/Documentation/devicetree/bindings/ufs/samsung,exynos-ufs.yaml (revision 1260ed77798502de9c98020040d2995008de10cc)
1e22e509cSAlim Akhtar# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2e22e509cSAlim Akhtar%YAML 1.2
3e22e509cSAlim Akhtar---
4e22e509cSAlim Akhtar$id: http://devicetree.org/schemas/ufs/samsung,exynos-ufs.yaml#
5e22e509cSAlim Akhtar$schema: http://devicetree.org/meta-schemas/core.yaml#
6e22e509cSAlim Akhtar
7dd3cb467SAndrew Lunntitle: Samsung SoC series UFS host controller
8e22e509cSAlim Akhtar
9e22e509cSAlim Akhtarmaintainers:
10e22e509cSAlim Akhtar  - Alim Akhtar <alim.akhtar@samsung.com>
11e22e509cSAlim Akhtar
12e22e509cSAlim Akhtardescription: |
13e22e509cSAlim Akhtar  Each Samsung UFS host controller instance should have its own node.
14cebe2234SKrzysztof Kozlowski
15e22e509cSAlim Akhtarproperties:
16e22e509cSAlim Akhtar  compatible:
17e22e509cSAlim Akhtar    enum:
18438e23b6SPeter Griffin      - google,gs101-ufs
19e22e509cSAlim Akhtar      - samsung,exynos7-ufs
2014d9f6b0SChanho Park      - samsung,exynosautov9-ufs
2114d9f6b0SChanho Park      - samsung,exynosautov9-ufs-vh
22ea83df8eSAlim Akhtar      - tesla,fsd-ufs
23e22e509cSAlim Akhtar
24e22e509cSAlim Akhtar  reg:
25e22e509cSAlim Akhtar    items:
26e22e509cSAlim Akhtar      - description: HCI register
27e22e509cSAlim Akhtar      - description: vendor specific register
28e22e509cSAlim Akhtar      - description: unipro register
29e22e509cSAlim Akhtar      - description: UFS protector register
30e22e509cSAlim Akhtar
31e22e509cSAlim Akhtar  reg-names:
32e22e509cSAlim Akhtar    items:
33e22e509cSAlim Akhtar      - const: hci
34e22e509cSAlim Akhtar      - const: vs_hci
35e22e509cSAlim Akhtar      - const: unipro
36e22e509cSAlim Akhtar      - const: ufsp
37e22e509cSAlim Akhtar
38e22e509cSAlim Akhtar  clocks:
39438e23b6SPeter Griffin    minItems: 2
40e22e509cSAlim Akhtar    items:
41e22e509cSAlim Akhtar      - description: ufs link core clock
42e22e509cSAlim Akhtar      - description: unipro main clock
43438e23b6SPeter Griffin      - description: fmp clock
44438e23b6SPeter Griffin      - description: ufs aclk clock
45438e23b6SPeter Griffin      - description: ufs pclk clock
46438e23b6SPeter Griffin      - description: sysreg clock
47e22e509cSAlim Akhtar
48e22e509cSAlim Akhtar  clock-names:
49438e23b6SPeter Griffin    minItems: 2
50e22e509cSAlim Akhtar    items:
51e22e509cSAlim Akhtar      - const: core_clk
52e22e509cSAlim Akhtar      - const: sclk_unipro_main
53438e23b6SPeter Griffin      - const: fmp
54438e23b6SPeter Griffin      - const: aclk
55438e23b6SPeter Griffin      - const: pclk
56438e23b6SPeter Griffin      - const: sysreg
57e22e509cSAlim Akhtar
58e22e509cSAlim Akhtar  phys:
59e22e509cSAlim Akhtar    maxItems: 1
60e22e509cSAlim Akhtar
61e22e509cSAlim Akhtar  phy-names:
62e22e509cSAlim Akhtar    const: ufs-phy
63e22e509cSAlim Akhtar
6457e9befaSChanho Park  samsung,sysreg:
65e246514aSKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/phandle-array
664e06ec07SRob Herring    items:
674e06ec07SRob Herring      - items:
684e06ec07SRob Herring          - description: phandle to FSYSx sysreg node
694e06ec07SRob Herring          - description: offset of the control register for UFS io coherency setting
704e06ec07SRob Herring    description:
714e06ec07SRob Herring      Phandle and offset to the FSYSx sysreg for UFS io coherency setting.
7257e9befaSChanho Park
7357e9befaSChanho Park  dma-coherent: true
7457e9befaSChanho Park
75e22e509cSAlim Akhtarrequired:
76e22e509cSAlim Akhtar  - compatible
77e22e509cSAlim Akhtar  - reg
78e22e509cSAlim Akhtar  - phys
79e22e509cSAlim Akhtar  - phy-names
80e22e509cSAlim Akhtar  - clocks
81e22e509cSAlim Akhtar  - clock-names
82e22e509cSAlim Akhtar
83438e23b6SPeter GriffinallOf:
84438e23b6SPeter Griffin  - $ref: ufs-common.yaml
85438e23b6SPeter Griffin  - if:
86438e23b6SPeter Griffin      properties:
87438e23b6SPeter Griffin        compatible:
88438e23b6SPeter Griffin          contains:
89438e23b6SPeter Griffin            const: google,gs101-ufs
90438e23b6SPeter Griffin
91438e23b6SPeter Griffin    then:
92438e23b6SPeter Griffin      properties:
93438e23b6SPeter Griffin        clocks:
94438e23b6SPeter Griffin          minItems: 6
95438e23b6SPeter Griffin
96438e23b6SPeter Griffin        clock-names:
97438e23b6SPeter Griffin          minItems: 6
98438e23b6SPeter Griffin
99438e23b6SPeter Griffin    else:
100438e23b6SPeter Griffin      properties:
101438e23b6SPeter Griffin        clocks:
102438e23b6SPeter Griffin          maxItems: 2
103438e23b6SPeter Griffin
104438e23b6SPeter Griffin        clock-names:
105438e23b6SPeter Griffin          maxItems: 2
106438e23b6SPeter Griffin
107cebe2234SKrzysztof KozlowskiunevaluatedProperties: false
108e22e509cSAlim Akhtar
109e22e509cSAlim Akhtarexamples:
110e22e509cSAlim Akhtar  - |
111e22e509cSAlim Akhtar    #include <dt-bindings/interrupt-controller/arm-gic.h>
112e22e509cSAlim Akhtar    #include <dt-bindings/clock/exynos7-clk.h>
113e22e509cSAlim Akhtar
114e22e509cSAlim Akhtar    ufs: ufs@15570000 {
115e22e509cSAlim Akhtar        compatible = "samsung,exynos7-ufs";
116e22e509cSAlim Akhtar        reg = <0x15570000 0x100>,
117e22e509cSAlim Akhtar              <0x15570100 0x100>,
118e22e509cSAlim Akhtar              <0x15571000 0x200>,
119e22e509cSAlim Akhtar              <0x15572000 0x300>;
120e22e509cSAlim Akhtar        reg-names = "hci", "vs_hci", "unipro", "ufsp";
121e22e509cSAlim Akhtar        interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
122e22e509cSAlim Akhtar        clocks = <&clock_fsys1 ACLK_UFS20_LINK>,
123e22e509cSAlim Akhtar                 <&clock_fsys1 SCLK_UFSUNIPRO20_USER>;
124e22e509cSAlim Akhtar        clock-names = "core_clk", "sclk_unipro_main";
125e22e509cSAlim Akhtar        pinctrl-names = "default";
126e22e509cSAlim Akhtar        pinctrl-0 = <&ufs_rst_n &ufs_refclk_out>;
127e22e509cSAlim Akhtar        phys = <&ufs_phy>;
128e22e509cSAlim Akhtar        phy-names = "ufs-phy";
129e22e509cSAlim Akhtar    };
130e22e509cSAlim Akhtar...
131