Commit 4d48614e authored by Kevin Hilman's avatar Kevin Hilman

Merge branch 'zte/soc' into next/soc

* zte/soc:
  ARM: zx: Add basic defconfig support for ZX296702
  ARM: dts: zx: add an initial zx296702 dts and doc
  clk: zx: add clock support to zx296702
  dt-bindings: Add #defines for ZTE ZX296702 clocks
parents 259f47eb 405817f6
ZTE platforms device tree bindings
---------------------------------------
- ZX296702 board:
Required root node properties:
- compatible = "zte,zx296702-ad1", "zte,zx296702"
System management required properties:
- compatible = "zte,sysctrl"
Low power management required properties:
- compatible = "zte,zx296702-pcu"
Bus matrix required properties:
- compatible = "zte,zx-bus-matrix"
Device Tree Clock bindings for ZTE zx296702
This binding uses the common clock binding[1].
[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
Required properties:
- compatible : shall be one of the following:
"zte,zx296702-topcrm-clk":
zx296702 top clock selection, divider and gating
"zte,zx296702-lsp0crpm-clk" and
"zte,zx296702-lsp1crpm-clk":
zx296702 device level clock selection and gating
- reg: Address and length of the register set
The clock consumer should specify the desired clock by having the clock
ID in its "clocks" phandle cell. See include/dt-bindings/clock/zx296702-clock.h
for the full list of zx296702 clock IDs.
topclk: topcrm@0x09800000 {
compatible = "zte,zx296702-topcrm-clk";
reg = <0x09800000 0x1000>;
#clock-cells = <1>;
};
uart0: serial@0x09405000 {
compatible = "zte,zx296702-uart";
reg = <0x09405000 0x1000>;
interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&lsp1clk ZX296702_UART0_PCLK>;
status = "disabled";
};
* ARM AMBA Primecell PL011 serial UART
Required properties:
- compatible: must be "arm,primecell", "arm,pl011"
- compatible: must be "arm,primecell", "arm,pl011", "zte,zx296702-uart"
- reg: exactly one register range with length 0x1000
- interrupts: exactly one interrupt specifier
......
......@@ -211,3 +211,4 @@ xillybus Xillybus Ltd.
xlnx Xilinx
zyxel ZyXEL Communications Corp.
zarlink Zarlink Semiconductor
zte ZTE Corp.
......@@ -660,6 +660,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \
mt6592-evb.dtb \
mt8127-moose.dtb \
mt8135-evbp1.dtb
dtb-$(CONFIG_ARCH_ZX) += zx296702-ad1.dtb
endif
always := $(dtb-y)
......
/dts-v1/;
#include "zx296702.dtsi"
/ {
model = "ZTE ZX296702 AD1 Board";
compatible = "zte,zx296702-ad1", "zte,zx296702";
aliases {
serial0 = &uart0;
serial1 = &uart1;
};
memory {
reg = <0x50000000 0x20000000>;
};
};
&mmc0 {
num-slots = <1>;
supports-highspeed;
non-removable;
disable-wp;
status = "okay";
slot@0 {
reg = <0>;
bus-width = <4>;
};
};
&mmc1 {
num-slots = <1>;
supports-highspeed;
non-removable;
disable-wp;
status = "okay";
slot@0 {
reg = <0>;
bus-width = <8>;
};
};
&uart0 {
status = "okay";
};
#include "skeleton.dtsi"
#include <dt-bindings/clock/zx296702-clock.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
/ {
cpus {
#address-cells = <1>;
#size-cells = <0>;
enable-method = "zte,zx296702-smp";
cpu@0 {
compatible = "arm,cortex-a9";
device_type = "cpu";
next-level-cache = <&l2cc>;
reg = <0>;
};
cpu@1 {
compatible = "arm,cortex-a9";
device_type = "cpu";
next-level-cache = <&l2cc>;
reg = <1>;
};
};
soc {
#address-cells = <1>;
#size-cells = <1>;
compatible = "simple-bus";
interrupt-parent = <&intc>;
ranges;
matrix: bus-matrix@400000 {
compatible = "zte,zx-bus-matrix";
reg = <0x00400000 0x1000>;
};
intc: interrupt-controller@00801000 {
compatible = "arm,cortex-a9-gic";
#interrupt-cells = <3>;
#address-cells = <1>;
#size-cells = <1>;
interrupt-controller;
reg = <0x00801000 0x1000>,
<0x00800100 0x100>;
};
global_timer: timer@008000200 {
compatible = "arm,cortex-a9-global-timer";
reg = <0x00800200 0x20>;
interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
interrupt-parent = <&intc>;
clocks = <&topclk ZX296702_A9_PERIPHCLK>;
};
l2cc: l2-cache-controller@0x00c00000 {
compatible = "arm,pl310-cache";
reg = <0x00c00000 0x1000>;
cache-unified;
cache-level = <2>;
arm,data-latency = <1 1 1>;
arm,tag-latency = <1 1 1>;
arm,double-linefill = <1>;
arm,double-linefill-incr = <0>;
};
pcu: pcu@0xa0008000 {
compatible = "zte,zx296702-pcu";
reg = <0xa0008000 0x1000>;
};
topclk: topclk@0x09800000 {
compatible = "zte,zx296702-topcrm-clk";
reg = <0x09800000 0x1000>;
#clock-cells = <1>;
};
lsp1clk: lsp1clk@0x09400000 {
compatible = "zte,zx296702-lsp1crpm-clk";
reg = <0x09400000 0x1000>;
#clock-cells = <1>;
};
lsp0clk: lsp0clk@0x0b000000 {
compatible = "zte,zx296702-lsp0crpm-clk";
reg = <0x0b000000 0x1000>;
#clock-cells = <1>;
};
uart0: serial@0x09405000 {
compatible = "zte,zx296702-uart";
reg = <0x09405000 0x1000>;
interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&lsp1clk ZX296702_UART0_WCLK>;
status = "disabled";
};
uart1: serial@0x09406000 {
compatible = "zte,zx296702-uart";
reg = <0x09406000 0x1000>;
interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&lsp1clk ZX296702_UART1_WCLK>;
status = "disabled";
};
mmc0: mmc@0x09408000 {
compatible = "snps,dw-mshc";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x09408000 0x1000>;
interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
fifo-depth = <32>;
clocks = <&lsp1clk ZX296702_SDMMC0_PCLK>,
<&lsp1clk ZX296702_SDMMC0_WCLK>;
clock-names = "biu", "ciu";
status = "disabled";
};
mmc1: mmc@0x0b003000 {
compatible = "snps,dw-mshc";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x0b003000 0x1000>;
interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
fifo-depth = <32>;
clocks = <&lsp0clk ZX296702_SDMMC1_PCLK>,
<&lsp0clk ZX296702_SDMMC1_WCLK>;
clock-names = "biu", "ciu";
status = "disabled";
};
sysctrl: sysctrl@0xa0007000 {
compatible = "zte,sysctrl", "syscon";
reg = <0xa0007000 0x1000>;
};
};
};
CONFIG_EXPERIMENTAL=y
CONFIG_SYSVIPC=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_CGROUPS=y
CONFIG_CGROUP_DEBUG=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_RESOURCE_COUNTERS=y
CONFIG_CGROUP_SCHED=y
CONFIG_RT_GROUP_SCHED=y
CONFIG_NAMESPACES=y
CONFIG_USER_NS=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y
CONFIG_PERF_EVENTS=y
CONFIG_SLAB=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_CFQ is not set
CONFIG_ARCH_ZX=y
CONFIG_SOC_ZX296702=y
# CONFIG_SWP_EMULATE is not set
CONFIG_ARM_ERRATA_754322=y
CONFIG_ARM_ERRATA_775420=y
CONFIG_SMP=y
CONFIG_VMSPLIT_2G=y
CONFIG_PREEMPT=y
CONFIG_AEABI=y
CONFIG_KSM=y
# CONFIG_IOMMU_SUPPORT is not set
CONFIG_VFP=y
CONFIG_NEON=y
CONFIG_KERNEL_MODE_NEON=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_HIBERNATION=y
CONFIG_PM_RUNTIME=y
CONFIG_PM_DEBUG=y
CONFIG_SUSPEND_TIME=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="console=ttyAMA0,115200 debug earlyprintk root=/dev/ram rw rootwait"
#CONFIG_NET is not set
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_DMA_CMA=y
CONFIG_CMA_SIZE_MBYTES=192
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=1
CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_UID_STAT=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_SG=y
CONFIG_CHR_DEV_SCH=y
CONFIG_SCSI_MULTI_LUN=y
CONFIG_MD=y
CONFIG_BLK_DEV_DM=y
CONFIG_DM_CRYPT=y
CONFIG_DM_UEVENT=y
CONFIG_DM_VERITY=y
CONFIG_NETDEVICES=y
# CONFIG_INPUT_MOUSE is not set
CONFIG_SERIO=y
CONFIG_SERIO_LIBPS2=y
CONFIG_SPI=y
CONFIG_LOGO=y
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_CONSOLE_POLL=y
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
CONFIG_SERIAL_OF_PLATFORM=y
# CONFIG_LEGACY_PTYS is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_HWMON is not set
# CONFIG_USB_SUPPORT is not set
CONFIG_MMC=y
CONFIG_MMC_UNSAFE_RESUME=y
CONFIG_MMC_BLOCK_MINORS=16
CONFIG_MMC_DW=y
CONFIG_MMC_DW_IDMAC=y
CONFIG_EXT2_FS=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
CONFIG_EXT4_DEBUG=y
CONFIG_FUSE_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=936
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
#CONFIG_NFS_FS is not set
CONFIG_NLS_CODEPAGE_936=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_UTF8=y
CONFIG_PRINTK_TIME=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO=y
CONFIG_FRAME_WARN=4096
CONFIG_DEBUG_FS=y
CONFIG_DEBUG_MEMORY_INIT=y
CONFIG_PANIC_TIMEOUT=5
# CONFIG_SCHED_DEBUG is not set
CONFIG_SCHEDSTATS=y
CONFIG_TIMER_STATS=y
CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_RCU_CPU_STALL_TIMEOUT=60
# CONFIG_FTRACE is not set
CONFIG_KGDB=y
CONFIG_KGDB_KDB=y
# CONFIG_ARM_UNWIND is not set
CONFIG_DEBUG_PREEMPT=y
CONFIG_DEBUG_USER=y
CONFIG_DEBUG_LL=y
CONFIG_DYNAMIC_DEBUG=y
CONFIG_STACKTRACE=y
CONFIG_DEBUG_ZTE_ZX=y
CONFIG_EARLY_PRINTK=y
CONFIG_CRYPTO_LZO=y
CONFIG_GPIOLIB=y
......@@ -73,4 +73,5 @@ obj-$(CONFIG_ARCH_OMAP2PLUS) += ti/
obj-$(CONFIG_ARCH_U8500) += ux500/
obj-$(CONFIG_COMMON_CLK_VERSATILE) += versatile/
obj-$(CONFIG_X86) += x86/
obj-$(CONFIG_ARCH_ZX) += zte/
obj-$(CONFIG_ARCH_ZYNQ) += zynq/
obj-y := clk-pll.o
obj-$(CONFIG_SOC_ZX296702) += clk-zx296702.o
/*
* Copyright 2014 Linaro Ltd.
* Copyright (C) 2014 ZTE Corporation.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/clk-provider.h>
#include <linux/err.h>
#include <linux/io.h>
#include <linux/iopoll.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
#include "clk.h"
#define to_clk_zx_pll(_hw) container_of(_hw, struct clk_zx_pll, hw)
#define CFG0_CFG1_OFFSET 4
#define LOCK_FLAG BIT(30)
#define POWER_DOWN BIT(31)
static int rate_to_idx(struct clk_zx_pll *zx_pll, unsigned long rate)
{
const struct zx_pll_config *config = zx_pll->lookup_table;
int i;
for (i = 0; i < zx_pll->count; i++) {
if (config[i].rate > rate)
return i > 0 ? i - 1 : 0;
if (config[i].rate == rate)
return i;
}
return i - 1;
}
static int hw_to_idx(struct clk_zx_pll *zx_pll)
{
const struct zx_pll_config *config = zx_pll->lookup_table;
u32 hw_cfg0, hw_cfg1;
int i;
hw_cfg0 = readl_relaxed(zx_pll->reg_base);
hw_cfg1 = readl_relaxed(zx_pll->reg_base + CFG0_CFG1_OFFSET);
/* For matching the value in lookup table */
hw_cfg0 &= ~LOCK_FLAG;
hw_cfg0 |= POWER_DOWN;
for (i = 0; i < zx_pll->count; i++) {
if (hw_cfg0 == config[i].cfg0 && hw_cfg1 == config[i].cfg1)
return i;
}
return -EINVAL;
}
static unsigned long zx_pll_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate)
{
struct clk_zx_pll *zx_pll = to_clk_zx_pll(hw);
int idx;
idx = hw_to_idx(zx_pll);
if (unlikely(idx == -EINVAL))
return 0;
return zx_pll->lookup_table[idx].rate;
}
static long zx_pll_round_rate(struct clk_hw *hw, unsigned long rate,
unsigned long *prate)
{
struct clk_zx_pll *zx_pll = to_clk_zx_pll(hw);
int idx;
idx = rate_to_idx(zx_pll, rate);
return zx_pll->lookup_table[idx].rate;
}
static int zx_pll_set_rate(struct clk_hw *hw, unsigned long rate,
unsigned long parent_rate)
{
/* Assume current cpu is not running on current PLL */
struct clk_zx_pll *zx_pll = to_clk_zx_pll(hw);
const struct zx_pll_config *config;
int idx;
idx = rate_to_idx(zx_pll, rate);
config = &zx_pll->lookup_table[idx];
writel_relaxed(config->cfg0, zx_pll->reg_base);
writel_relaxed(config->cfg1, zx_pll->reg_base + CFG0_CFG1_OFFSET);
return 0;
}
static int zx_pll_enable(struct clk_hw *hw)
{
struct clk_zx_pll *zx_pll = to_clk_zx_pll(hw);
u32 reg;
reg = readl_relaxed(zx_pll->reg_base);
writel_relaxed(reg & ~POWER_DOWN, zx_pll->reg_base);
return readl_relaxed_poll_timeout(zx_pll->reg_base, reg,
reg & LOCK_FLAG, 0, 100);
}
static void zx_pll_disable(struct clk_hw *hw)
{
struct clk_zx_pll *zx_pll = to_clk_zx_pll(hw);
u32 reg;
reg = readl_relaxed(zx_pll->reg_base);
writel_relaxed(reg | POWER_DOWN, zx_pll->reg_base);
}
static int zx_pll_is_enabled(struct clk_hw *hw)
{
struct clk_zx_pll *zx_pll = to_clk_zx_pll(hw);
u32 reg;
reg = readl_relaxed(zx_pll->reg_base);
return !(reg & POWER_DOWN);
}
static const struct clk_ops zx_pll_ops = {
.recalc_rate = zx_pll_recalc_rate,
.round_rate = zx_pll_round_rate,
.set_rate = zx_pll_set_rate,
.enable = zx_pll_enable,
.disable = zx_pll_disable,
.is_enabled = zx_pll_is_enabled,
};
struct clk *clk_register_zx_pll(const char *name, const char *parent_name,
unsigned long flags, void __iomem *reg_base,
const struct zx_pll_config *lookup_table, int count, spinlock_t *lock)
{
struct clk_zx_pll *zx_pll;
struct clk *clk;
struct clk_init_data init;
zx_pll = kzalloc(sizeof(*zx_pll), GFP_KERNEL);
if (!zx_pll)
return ERR_PTR(-ENOMEM);
init.name = name;
init.ops = &zx_pll_ops;
init.flags = flags;
init.parent_names = parent_name ? &parent_name : NULL;
init.num_parents = parent_name ? 1 : 0;
zx_pll->reg_base = reg_base;
zx_pll->lookup_table = lookup_table;
zx_pll->count = count;
zx_pll->lock = lock;
zx_pll->hw.init = &init;
clk = clk_register(NULL, &zx_pll->hw);
if (IS_ERR(clk))
kfree(zx_pll);
return clk;
}
This diff is collapsed.
/*
* Copyright 2015 Linaro Ltd.
* Copyright (C) 2014 ZTE Corporation.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __ZTE_CLK_H
#define __ZTE_CLK_H
#include <linux/clk-provider.h>
#include <linux/spinlock.h>
struct zx_pll_config {
unsigned long rate;
u32 cfg0;
u32 cfg1;
};
struct clk_zx_pll {
struct clk_hw hw;
void __iomem *reg_base;
const struct zx_pll_config *lookup_table; /* order by rate asc */
int count;
spinlock_t *lock;
};
struct clk *clk_register_zx_pll(const char *name, const char *parent_name,
unsigned long flags, void __iomem *reg_base,
const struct zx_pll_config *lookup_table, int count, spinlock_t *lock);
#endif
/*
* Copyright 2014 Linaro Ltd.
* Copyright (C) 2014 ZTE Corporation.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __DT_BINDINGS_CLOCK_ZX296702_H
#define __DT_BINDINGS_CLOCK_ZX296702_H
#define ZX296702_OSC 0
#define ZX296702_PLL_A9 1
#define ZX296702_PLL_A9_350M 2
#define ZX296702_PLL_MAC_1000M 3
#define ZX296702_PLL_MAC_333M 4
#define ZX296702_PLL_MM0_1188M 5
#define ZX296702_PLL_MM0_396M 6
#define ZX296702_PLL_MM0_198M 7
#define ZX296702_PLL_MM1_108M 8
#define ZX296702_PLL_MM1_72M 9
#define ZX296702_PLL_MM1_54M 10
#define ZX296702_PLL_LSP_104M 11
#define ZX296702_PLL_LSP_26M 12
#define ZX296702_PLL_AUDIO_294M912 13
#define ZX296702_PLL_DDR_266M 14
#define ZX296702_CLK_148M5 15
#define ZX296702_MATRIX_ACLK 16
#define ZX296702_MAIN_HCLK 17
#define ZX296702_MAIN_PCLK 18
#define ZX296702_CLK_500 19
#define ZX296702_CLK_250 20
#define ZX296702_CLK_125 21
#define ZX296702_CLK_74M25 22
#define ZX296702_A9_WCLK 23
#define ZX296702_A9_AS1_ACLK_MUX 24
#define ZX296702_A9_TRACE_CLKIN_MUX 25
#define ZX296702_A9_AS1_ACLK_DIV 26
#define ZX296702_CLK_2 27
#define ZX296702_CLK_27 28
#define ZX296702_DECPPU_ACLK_MUX 29
#define ZX296702_PPU_ACLK_MUX 30
#define ZX296702_MALI400_ACLK_MUX 31
#define ZX296702_VOU_ACLK_MUX 32
#define ZX296702_VOU_MAIN_WCLK_MUX 33
#define ZX296702_VOU_AUX_WCLK_MUX 34
#define ZX296702_VOU_SCALER_WCLK_MUX 35
#define ZX296702_R2D_ACLK_MUX 36
#define ZX296702_R2D_WCLK_MUX 37
#define ZX296702_CLK_50 38
#define ZX296702_CLK_25 39
#define ZX296702_CLK_12 40
#define ZX296702_CLK_16M384 41
#define ZX296702_CLK_32K768 42
#define ZX296702_SEC_WCLK_DIV 43
#define ZX296702_DDR_WCLK_MUX 44
#define ZX296702_NAND_WCLK_MUX 45
#define ZX296702_LSP_26_WCLK_MUX 46
#define ZX296702_A9_AS0_ACLK 47
#define ZX296702_A9_AS1_ACLK 48
#define ZX296702_A9_TRACE_CLKIN 49
#define ZX296702_DECPPU_AXI_M_ACLK 50
#define ZX296702_DECPPU_AHB_S_HCLK 51
#define ZX296702_PPU_AXI_M_ACLK 52
#define ZX296702_PPU_AHB_S_HCLK 53
#define ZX296702_VOU_AXI_M_ACLK 54
#define ZX296702_VOU_APB_PCLK 55
#define ZX296702_VOU_MAIN_CHANNEL_WCLK 56
#define ZX296702_VOU_AUX_CHANNEL_WCLK 57
#define ZX296702_VOU_HDMI_OSCLK_CEC 58
#define ZX296702_VOU_SCALER_WCLK 59
#define ZX296702_MALI400_AXI_M_ACLK 60
#define ZX296702_MALI400_APB_PCLK 61
#define ZX296702_R2D_WCLK 62
#define ZX296702_R2D_AXI_M_ACLK 63
#define ZX296702_R2D_AHB_HCLK 64
#define ZX296702_DDR3_AXI_S0_ACLK 65
#define ZX296702_DDR3_APB_PCLK 66
#define ZX296702_DDR3_WCLK 67
#define ZX296702_USB20_0_AHB_HCLK 68
#define ZX296702_USB20_0_EXTREFCLK 69
#define ZX296702_USB20_1_AHB_HCLK 70
#define ZX296702_USB20_1_EXTREFCLK 71
#define ZX296702_USB20_2_AHB_HCLK 72
#define ZX296702_USB20_2_EXTREFCLK 73
#define ZX296702_GMAC_AXI_M_ACLK 74
#define ZX296702_GMAC_APB_PCLK 75
#define ZX296702_GMAC_125_CLKIN 76
#define ZX296702_GMAC_RMII_CLKIN 77
#define ZX296702_GMAC_25M_CLK 78
#define ZX296702_NANDFLASH_AHB_HCLK 79
#define ZX296702_NANDFLASH_WCLK 80
#define ZX296702_LSP0_APB_PCLK 81
#define ZX296702_LSP0_AHB_HCLK 82
#define ZX296702_LSP0_26M_WCLK 83
#define ZX296702_LSP0_104M_WCLK 84
#define ZX296702_LSP0_16M384_WCLK 85
#define ZX296702_LSP1_APB_PCLK 86
#define ZX296702_LSP1_26M_WCLK 87
#define ZX296702_LSP1_104M_WCLK 88
#define ZX296702_LSP1_32K_CLK 89
#define ZX296702_AON_HCLK 90
#define ZX296702_SYS_CTRL_PCLK 91
#define ZX296702_DMA_PCLK 92
#define ZX296702_DMA_ACLK 93
#define ZX296702_SEC_HCLK 94
#define ZX296702_AES_WCLK 95
#define ZX296702_DES_WCLK 96
#define ZX296702_IRAM_ACLK 97
#define ZX296702_IROM_ACLK 98
#define ZX296702_BOOT_CTRL_HCLK 99
#define ZX296702_EFUSE_CLK_30 100
#define ZX296702_VOU_MAIN_CHANNEL_DIV 101
#define ZX296702_VOU_AUX_CHANNEL_DIV 102
#define ZX296702_VOU_TV_ENC_HD_DIV 103
#define ZX296702_VOU_TV_ENC_SD_DIV 104
#define ZX296702_VL0_MUX 105
#define ZX296702_VL1_MUX 106
#define ZX296702_VL2_MUX 107
#define ZX296702_GL0_MUX 108
#define ZX296702_GL1_MUX 109
#define ZX296702_GL2_MUX 110
#define ZX296702_WB_MUX 111
#define ZX296702_HDMI_MUX 112
#define ZX296702_VOU_TV_ENC_HD_MUX 113
#define ZX296702_VOU_TV_ENC_SD_MUX 114
#define ZX296702_VL0_CLK 115
#define ZX296702_VL1_CLK 116
#define ZX296702_VL2_CLK 117
#define ZX296702_GL0_CLK 118
#define ZX296702_GL1_CLK 119
#define ZX296702_GL2_CLK 120
#define ZX296702_WB_CLK 121
#define ZX296702_CL_CLK 122
#define ZX296702_MAIN_MIX_CLK 123
#define ZX296702_AUX_MIX_CLK 124
#define ZX296702_HDMI_CLK 125
#define ZX296702_VOU_TV_ENC_HD_DAC_CLK 126
#define ZX296702_VOU_TV_ENC_SD_DAC_CLK 127
#define ZX296702_A9_PERIPHCLK 128
#define ZX296702_TOPCLK_END 129
#define ZX296702_SDMMC1_WCLK_MUX 0
#define ZX296702_SDMMC1_WCLK_DIV 1
#define ZX296702_SDMMC1_WCLK 2
#define ZX296702_SDMMC1_PCLK 3
#define ZX296702_SPDIF0_WCLK_MUX 4
#define ZX296702_SPDIF0_WCLK 5
#define ZX296702_SPDIF0_PCLK 6
#define ZX296702_SPDIF0_DIV 7
#define ZX296702_I2S0_WCLK_MUX 8
#define ZX296702_I2S0_WCLK 9
#define ZX296702_I2S0_PCLK 10
#define ZX296702_I2S0_DIV 11
#define ZX296702_LSP0CLK_END 12
#define ZX296702_UART0_WCLK_MUX 0
#define ZX296702_UART0_WCLK 1
#define ZX296702_UART0_PCLK 2
#define ZX296702_UART1_WCLK_MUX 3
#define ZX296702_UART1_WCLK 4
#define ZX296702_UART1_PCLK 5
#define ZX296702_SDMMC0_WCLK_MUX 6
#define ZX296702_SDMMC0_WCLK_DIV 7
#define ZX296702_SDMMC0_WCLK 8
#define ZX296702_SDMMC0_PCLK 9
#define ZX296702_LSP1CLK_END 10
#endif /* __DT_BINDINGS_CLOCK_ZX296702_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment