1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/ufs/samsung,exynos-ufs.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Samsung SoC series UFS host controller Device Tree Bindings
8
9maintainers:
10  - Alim Akhtar <alim.akhtar@samsung.com>
11
12description: |
13  Each Samsung UFS host controller instance should have its own node.
14
15allOf:
16  - $ref: ufs-common.yaml
17
18properties:
19  compatible:
20    enum:
21      - samsung,exynos7-ufs
22      - samsung,exynosautov9-ufs
23      - samsung,exynosautov9-ufs-vh
24
25  reg:
26    items:
27      - description: HCI register
28      - description: vendor specific register
29      - description: unipro register
30      - description: UFS protector register
31
32  reg-names:
33    items:
34      - const: hci
35      - const: vs_hci
36      - const: unipro
37      - const: ufsp
38
39  clocks:
40    items:
41      - description: ufs link core clock
42      - description: unipro main clock
43
44  clock-names:
45    items:
46      - const: core_clk
47      - const: sclk_unipro_main
48
49  phys:
50    maxItems: 1
51
52  phy-names:
53    const: ufs-phy
54
55  samsung,sysreg:
56    $ref: '/schemas/types.yaml#/definitions/phandle-array'
57    description: Should be phandle/offset pair. The phandle to the syscon node
58                 which indicates the FSYSx sysreg interface and the offset of
59                 the control register for UFS io coherency setting.
60
61  dma-coherent: true
62
63required:
64  - compatible
65  - reg
66  - phys
67  - phy-names
68  - clocks
69  - clock-names
70
71unevaluatedProperties: false
72
73examples:
74  - |
75    #include <dt-bindings/interrupt-controller/arm-gic.h>
76    #include <dt-bindings/clock/exynos7-clk.h>
77
78    ufs: ufs@15570000 {
79       compatible = "samsung,exynos7-ufs";
80       reg = <0x15570000 0x100>,
81             <0x15570100 0x100>,
82             <0x15571000 0x200>,
83             <0x15572000 0x300>;
84       reg-names = "hci", "vs_hci", "unipro", "ufsp";
85       interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
86       clocks = <&clock_fsys1 ACLK_UFS20_LINK>,
87                <&clock_fsys1 SCLK_UFSUNIPRO20_USER>;
88       clock-names = "core_clk", "sclk_unipro_main";
89       pinctrl-names = "default";
90       pinctrl-0 = <&ufs_rst_n &ufs_refclk_out>;
91       phys = <&ufs_phy>;
92       phy-names = "ufs-phy";
93    };
94...
95