xref: /linux/Documentation/devicetree/bindings/ufs/samsung,exynos-ufs.yaml (revision 621cde16e49b3ecf7d59a8106a20aaebfb4a59a9)
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:
18*438e23b6SPeter 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:
39*438e23b6SPeter Griffin    minItems: 2
40e22e509cSAlim Akhtar    items:
41e22e509cSAlim Akhtar      - description: ufs link core clock
42e22e509cSAlim Akhtar      - description: unipro main clock
43*438e23b6SPeter Griffin      - description: fmp clock
44*438e23b6SPeter Griffin      - description: ufs aclk clock
45*438e23b6SPeter Griffin      - description: ufs pclk clock
46*438e23b6SPeter Griffin      - description: sysreg clock
47e22e509cSAlim Akhtar
48e22e509cSAlim Akhtar  clock-names:
49*438e23b6SPeter Griffin    minItems: 2
50e22e509cSAlim Akhtar    items:
51e22e509cSAlim Akhtar      - const: core_clk
52e22e509cSAlim Akhtar      - const: sclk_unipro_main
53*438e23b6SPeter Griffin      - const: fmp
54*438e23b6SPeter Griffin      - const: aclk
55*438e23b6SPeter Griffin      - const: pclk
56*438e23b6SPeter 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
83*438e23b6SPeter GriffinallOf:
84*438e23b6SPeter Griffin  - $ref: ufs-common.yaml
85*438e23b6SPeter Griffin  - if:
86*438e23b6SPeter Griffin      properties:
87*438e23b6SPeter Griffin        compatible:
88*438e23b6SPeter Griffin          contains:
89*438e23b6SPeter Griffin            const: google,gs101-ufs
90*438e23b6SPeter Griffin
91*438e23b6SPeter Griffin    then:
92*438e23b6SPeter Griffin      properties:
93*438e23b6SPeter Griffin        clocks:
94*438e23b6SPeter Griffin          minItems: 6
95*438e23b6SPeter Griffin
96*438e23b6SPeter Griffin        clock-names:
97*438e23b6SPeter Griffin          minItems: 6
98*438e23b6SPeter Griffin
99*438e23b6SPeter Griffin    else:
100*438e23b6SPeter Griffin      properties:
101*438e23b6SPeter Griffin        clocks:
102*438e23b6SPeter Griffin          maxItems: 2
103*438e23b6SPeter Griffin
104*438e23b6SPeter Griffin        clock-names:
105*438e23b6SPeter Griffin          maxItems: 2
106*438e23b6SPeter 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