--- /dev/null
+* Clock bindings for Freescale i.MX7ULP
+
+i.MX7ULP Clock functions are under joint control of the System
+Clock Generation (SCG) modules, Peripheral Clock Control (PCC)
+modules, and Core Mode Controller (CMC)1 blocks
+
+The clocking scheme provides clear separation between M4 domain
+and A7 domain. Except for a few clock sources shared between two
+domains, such as the System Oscillator clock, the Slow IRC (SIRC),
+and and the Fast IRC clock (FIRCLK), clock sources and clock
+management are separated and contained within each domain.
+
+M4 clock management consists of SCG0, PCC0, PCC1, and CMC0 modules.
+A7 clock management consists of SCG1, PCC2, PCC3, and CMC1 modules.
+
+Note: this binding doc is only for A7 clock domain.
+
+System Clock Generation (SCG) modules:
+---------------------------------------------------------------------
+The System Clock Generation (SCG) is responsible for clock generation
+and distribution across this device. Functions performed by the SCG
+include: clock reference selection, generation of clock used to derive
+processor, system, peripheral bus and external memory interface clocks,
+source selection for peripheral clocks and control of power saving
+clock gating mode.
+
+Required properties:
+
+- compatible:  Should be "fsl,imx7ulp-scg1".
+- reg :        Should contain registers location and length.
+- #clock-cells:        Should be <1>.
+- clocks:      Should contain the fixed input clocks.
+- clock-names:  Should contain the following clock names:
+               "rosc", "sosc", "sirc", "firc", "upll", "mpll".
+
+Peripheral Clock Control (PCC) modules:
+---------------------------------------------------------------------
+The Peripheral Clock Control (PCC) is responsible for clock selection,
+optional division and clock gating mode for peripherals in their
+respected power domain
+
+Required properties:
+- compatible:  Should be one of:
+                 "fsl,imx7ulp-pcc2",
+                 "fsl,imx7ulp-pcc3".
+- reg :        Should contain registers location and length.
+- #clock-cells:        Should be <1>.
+- clocks:      Should contain the fixed input clocks.
+- clock-names:  Should contain the following clock names:
+               "nic1_bus_clk", "nic1_clk", "ddr_clk", "apll_pfd2",
+               "apll_pfd1", "apll_pfd0", "upll", "sosc_bus_clk",
+               "mpll", "firc_bus_clk", "rosc", "spll_bus_clk";
+
+The clock consumer should specify the desired clock by having the clock
+ID in its "clocks" phandle cell.
+See include/dt-bindings/clock/imx7ulp-clock.h
+for the full list of i.MX7ULP clock IDs of each module.
+
+Examples:
+
+#include <dt-bindings/clock/imx7ulp-clock.h>
+
+scg1: scg1@403e0000 {
+       compatible = "fsl,imx7ulp-scg1;
+       reg = <0x403e0000 0x10000>;
+       clocks = <&rosc>, <&sosc>, <&sirc>,
+                <&firc>, <&upll>, <&mpll>;
+       clock-names = "rosc", "sosc", "sirc",
+                     "firc", "upll", "mpll";
+       #clock-cells = <1>;
+};
+
+pcc2: pcc2@403f0000 {
+       compatible = "fsl,imx7ulp-pcc2";
+       reg = <0x403f0000 0x10000>;
+       #clock-cells = <1>;
+       clocks = <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>,
+                <&scg1 IMX7ULP_CLK_NIC1_DIV>,
+                <&scg1 IMX7ULP_CLK_DDR_DIV>,
+                <&scg1 IMX7ULP_CLK_APLL_PFD2>,
+                <&scg1 IMX7ULP_CLK_APLL_PFD1>,
+                <&scg1 IMX7ULP_CLK_APLL_PFD0>,
+                <&scg1 IMX7ULP_CLK_UPLL>,
+                <&scg1 IMX7ULP_CLK_SOSC_BUS_CLK>,
+                <&scg1 IMX7ULP_CLK_MIPI_PLL>,
+                <&scg1 IMX7ULP_CLK_FIRC_BUS_CLK>,
+                <&scg1 IMX7ULP_CLK_ROSC>,
+                <&scg1 IMX7ULP_CLK_SPLL_BUS_CLK>;
+       clock-names = "nic1_bus_clk", "nic1_clk", "ddr_clk",
+                     "apll_pfd2", "apll_pfd1", "apll_pfd0",
+                     "upll", "sosc_bus_clk", "mpll",
+                     "firc_bus_clk", "rosc", "spll_bus_clk";
+};
+
+usdhc1: usdhc@40380000 {
+       compatible = "fsl,imx7ulp-usdhc";
+       reg = <0x40380000 0x10000>;
+       interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
+       clocks = <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>,
+                <&scg1 IMX7ULP_CLK_NIC1_DIV>,
+                <&pcc2 IMX7ULP_CLK_USDHC1>;
+       clock-names ="ipg", "ahb", "per";
+       bus-width = <4>;
+};
 
--- /dev/null
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright 2017~2018 NXP
+ *
+ */
+
+#ifndef __DT_BINDINGS_CLOCK_IMX7ULP_H
+#define __DT_BINDINGS_CLOCK_IMX7ULP_H
+
+/* SCG1 */
+
+#define IMX7ULP_CLK_DUMMY              0
+#define IMX7ULP_CLK_ROSC               1
+#define IMX7ULP_CLK_SOSC               2
+#define IMX7ULP_CLK_FIRC               3
+#define IMX7ULP_CLK_SPLL_PRE_SEL       4
+#define IMX7ULP_CLK_SPLL_PRE_DIV       5
+#define IMX7ULP_CLK_SPLL               6
+#define IMX7ULP_CLK_SPLL_POST_DIV1     7
+#define IMX7ULP_CLK_SPLL_POST_DIV2     8
+#define IMX7ULP_CLK_SPLL_PFD0          9
+#define IMX7ULP_CLK_SPLL_PFD1          10
+#define IMX7ULP_CLK_SPLL_PFD2          11
+#define IMX7ULP_CLK_SPLL_PFD3          12
+#define IMX7ULP_CLK_SPLL_PFD_SEL       13
+#define IMX7ULP_CLK_SPLL_SEL           14
+#define IMX7ULP_CLK_APLL_PRE_SEL       15
+#define IMX7ULP_CLK_APLL_PRE_DIV       16
+#define IMX7ULP_CLK_APLL               17
+#define IMX7ULP_CLK_APLL_POST_DIV1     18
+#define IMX7ULP_CLK_APLL_POST_DIV2     19
+#define IMX7ULP_CLK_APLL_PFD0          20
+#define IMX7ULP_CLK_APLL_PFD1          21
+#define IMX7ULP_CLK_APLL_PFD2          22
+#define IMX7ULP_CLK_APLL_PFD3          23
+#define IMX7ULP_CLK_APLL_PFD_SEL       24
+#define IMX7ULP_CLK_APLL_SEL           25
+#define IMX7ULP_CLK_UPLL               26
+#define IMX7ULP_CLK_SYS_SEL            27
+#define IMX7ULP_CLK_CORE_DIV           28
+#define IMX7ULP_CLK_BUS_DIV            29
+#define IMX7ULP_CLK_PLAT_DIV           30
+#define IMX7ULP_CLK_DDR_SEL            31
+#define IMX7ULP_CLK_DDR_DIV            32
+#define IMX7ULP_CLK_NIC_SEL            33
+#define IMX7ULP_CLK_NIC0_DIV           34
+#define IMX7ULP_CLK_GPU_DIV            35
+#define IMX7ULP_CLK_NIC1_DIV           36
+#define IMX7ULP_CLK_NIC1_BUS_DIV       37
+#define IMX7ULP_CLK_NIC1_EXT_DIV       38
+#define IMX7ULP_CLK_MIPI_PLL           39
+#define IMX7ULP_CLK_SIRC               40
+#define IMX7ULP_CLK_SOSC_BUS_CLK       41
+#define IMX7ULP_CLK_FIRC_BUS_CLK       42
+#define IMX7ULP_CLK_SPLL_BUS_CLK       43
+
+#define IMX7ULP_CLK_SCG1_END           44
+
+/* PCC2 */
+#define IMX7ULP_CLK_DMA1               0
+#define IMX7ULP_CLK_RGPIO2P1           1
+#define IMX7ULP_CLK_FLEXBUS            2
+#define IMX7ULP_CLK_SEMA42_1           3
+#define IMX7ULP_CLK_DMA_MUX1           4
+#define IMX7ULP_CLK_SNVS               5
+#define IMX7ULP_CLK_CAAM               6
+#define IMX7ULP_CLK_LPTPM4             7
+#define IMX7ULP_CLK_LPTPM5             8
+#define IMX7ULP_CLK_LPIT1              9
+#define IMX7ULP_CLK_LPSPI2             10
+#define IMX7ULP_CLK_LPSPI3             11
+#define IMX7ULP_CLK_LPI2C4             12
+#define IMX7ULP_CLK_LPI2C5             13
+#define IMX7ULP_CLK_LPUART4            14
+#define IMX7ULP_CLK_LPUART5            15
+#define IMX7ULP_CLK_FLEXIO1            16
+#define IMX7ULP_CLK_USB0               17
+#define IMX7ULP_CLK_USB1               18
+#define IMX7ULP_CLK_USB_PHY            19
+#define IMX7ULP_CLK_USB_PL301          20
+#define IMX7ULP_CLK_USDHC0             21
+#define IMX7ULP_CLK_USDHC1             22
+#define IMX7ULP_CLK_WDG1               23
+#define IMX7ULP_CLK_WDG2               24
+
+#define IMX7ULP_CLK_PCC2_END           25
+
+/* PCC3 */
+#define IMX7ULP_CLK_LPTPM6             0
+#define IMX7ULP_CLK_LPTPM7             1
+#define IMX7ULP_CLK_LPI2C6             2
+#define IMX7ULP_CLK_LPI2C7             3
+#define IMX7ULP_CLK_LPUART6            4
+#define IMX7ULP_CLK_LPUART7            5
+#define IMX7ULP_CLK_VIU                        6
+#define IMX7ULP_CLK_DSI                        7
+#define IMX7ULP_CLK_LCDIF              8
+#define IMX7ULP_CLK_MMDC               9
+#define IMX7ULP_CLK_PCTLC              10
+#define IMX7ULP_CLK_PCTLD              11
+#define IMX7ULP_CLK_PCTLE              12
+#define IMX7ULP_CLK_PCTLF              13
+#define IMX7ULP_CLK_GPU3D              14
+#define IMX7ULP_CLK_GPU2D              15
+
+#define IMX7ULP_CLK_PCC3_END           16
+
+#endif /* __DT_BINDINGS_CLOCK_IMX7ULP_H */