162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/ufs/samsung,exynos-ufs.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Samsung SoC series UFS host controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Alim Akhtar <alim.akhtar@samsung.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  Each Samsung UFS host controller instance should have its own node.
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciallOf:
1662306a36Sopenharmony_ci  - $ref: ufs-common.yaml
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciproperties:
1962306a36Sopenharmony_ci  compatible:
2062306a36Sopenharmony_ci    enum:
2162306a36Sopenharmony_ci      - samsung,exynos7-ufs
2262306a36Sopenharmony_ci      - samsung,exynosautov9-ufs
2362306a36Sopenharmony_ci      - samsung,exynosautov9-ufs-vh
2462306a36Sopenharmony_ci      - tesla,fsd-ufs
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci  reg:
2762306a36Sopenharmony_ci    items:
2862306a36Sopenharmony_ci      - description: HCI register
2962306a36Sopenharmony_ci      - description: vendor specific register
3062306a36Sopenharmony_ci      - description: unipro register
3162306a36Sopenharmony_ci      - description: UFS protector register
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci  reg-names:
3462306a36Sopenharmony_ci    items:
3562306a36Sopenharmony_ci      - const: hci
3662306a36Sopenharmony_ci      - const: vs_hci
3762306a36Sopenharmony_ci      - const: unipro
3862306a36Sopenharmony_ci      - const: ufsp
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci  clocks:
4162306a36Sopenharmony_ci    items:
4262306a36Sopenharmony_ci      - description: ufs link core clock
4362306a36Sopenharmony_ci      - description: unipro main clock
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci  clock-names:
4662306a36Sopenharmony_ci    items:
4762306a36Sopenharmony_ci      - const: core_clk
4862306a36Sopenharmony_ci      - const: sclk_unipro_main
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci  phys:
5162306a36Sopenharmony_ci    maxItems: 1
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci  phy-names:
5462306a36Sopenharmony_ci    const: ufs-phy
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci  samsung,sysreg:
5762306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle-array
5862306a36Sopenharmony_ci    description: Should be phandle/offset pair. The phandle to the syscon node
5962306a36Sopenharmony_ci                 which indicates the FSYSx sysreg interface and the offset of
6062306a36Sopenharmony_ci                 the control register for UFS io coherency setting.
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci  dma-coherent: true
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_cirequired:
6562306a36Sopenharmony_ci  - compatible
6662306a36Sopenharmony_ci  - reg
6762306a36Sopenharmony_ci  - phys
6862306a36Sopenharmony_ci  - phy-names
6962306a36Sopenharmony_ci  - clocks
7062306a36Sopenharmony_ci  - clock-names
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ciunevaluatedProperties: false
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ciexamples:
7562306a36Sopenharmony_ci  - |
7662306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
7762306a36Sopenharmony_ci    #include <dt-bindings/clock/exynos7-clk.h>
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci    ufs: ufs@15570000 {
8062306a36Sopenharmony_ci       compatible = "samsung,exynos7-ufs";
8162306a36Sopenharmony_ci       reg = <0x15570000 0x100>,
8262306a36Sopenharmony_ci             <0x15570100 0x100>,
8362306a36Sopenharmony_ci             <0x15571000 0x200>,
8462306a36Sopenharmony_ci             <0x15572000 0x300>;
8562306a36Sopenharmony_ci       reg-names = "hci", "vs_hci", "unipro", "ufsp";
8662306a36Sopenharmony_ci       interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
8762306a36Sopenharmony_ci       clocks = <&clock_fsys1 ACLK_UFS20_LINK>,
8862306a36Sopenharmony_ci                <&clock_fsys1 SCLK_UFSUNIPRO20_USER>;
8962306a36Sopenharmony_ci       clock-names = "core_clk", "sclk_unipro_main";
9062306a36Sopenharmony_ci       pinctrl-names = "default";
9162306a36Sopenharmony_ci       pinctrl-0 = <&ufs_rst_n &ufs_refclk_out>;
9262306a36Sopenharmony_ci       phys = <&ufs_phy>;
9362306a36Sopenharmony_ci       phy-names = "ufs-phy";
9462306a36Sopenharmony_ci    };
9562306a36Sopenharmony_ci...
96