Merge branch 'master' of git://www.denx.de/git/u-boot-imx
This commit is contained in:
@@ -509,6 +509,9 @@ config TARGET_CGTQMX6EVAL
|
||||
config TARGET_EMBESTMX6BOARDS
|
||||
bool "Support embestmx6boards"
|
||||
|
||||
config TARGET_ARISTAINETOS
|
||||
bool "Support aristainetos"
|
||||
|
||||
config TARGET_MX6QARM2
|
||||
bool "Support mx6qarm2"
|
||||
|
||||
@@ -521,6 +524,9 @@ config TARGET_MX6SABRESD
|
||||
config TARGET_MX6SLEVK
|
||||
bool "Support mx6slevk"
|
||||
|
||||
config TARGET_MX6SXSABRESD
|
||||
bool "Support mx6sxsabresd"
|
||||
|
||||
config TARGET_GW_VENTANA
|
||||
bool "Support gw_ventana"
|
||||
|
||||
@@ -770,6 +776,7 @@ config TARGET_JORNADA
|
||||
endchoice
|
||||
|
||||
source "board/8dtech/eco5pk/Kconfig"
|
||||
source "board/aristainetos/Kconfig"
|
||||
source "board/Barix/ipam390/Kconfig"
|
||||
source "board/BuR/kwb/Kconfig"
|
||||
source "board/BuR/tseries/Kconfig"
|
||||
@@ -877,6 +884,7 @@ source "board/freescale/mx6qarm2/Kconfig"
|
||||
source "board/freescale/mx6qsabreauto/Kconfig"
|
||||
source "board/freescale/mx6sabresd/Kconfig"
|
||||
source "board/freescale/mx6slevk/Kconfig"
|
||||
source "board/freescale/mx6sxsabresd/Kconfig"
|
||||
source "board/freescale/vf610twr/Kconfig"
|
||||
source "board/gateworks/gw_ventana/Kconfig"
|
||||
source "board/genesi/mx51_efikamx/Kconfig"
|
||||
|
||||
@@ -10,3 +10,4 @@
|
||||
obj-y := soc.o clock.o
|
||||
obj-$(CONFIG_SPL_BUILD) += ddr.o
|
||||
obj-$(CONFIG_SECURE_BOOT) += hab.o
|
||||
obj-$(CONFIG_MP) += mp.o
|
||||
|
||||
@@ -71,6 +71,24 @@ int enable_i2c_clk(unsigned char enable, unsigned i2c_num)
|
||||
}
|
||||
#endif
|
||||
|
||||
/* spi_num can be from 0 - SPI_MAX_NUM */
|
||||
int enable_spi_clk(unsigned char enable, unsigned spi_num)
|
||||
{
|
||||
u32 reg;
|
||||
u32 mask;
|
||||
|
||||
if (spi_num > SPI_MAX_NUM)
|
||||
return -EINVAL;
|
||||
|
||||
mask = MXC_CCM_CCGR_CG_MASK << (spi_num << 1);
|
||||
reg = __raw_readl(&imx_ccm->CCGR1);
|
||||
if (enable)
|
||||
reg |= mask;
|
||||
else
|
||||
reg &= ~mask;
|
||||
__raw_writel(reg, &imx_ccm->CCGR1);
|
||||
return 0;
|
||||
}
|
||||
static u32 decode_pll(enum pll_clocks pll, u32 infreq)
|
||||
{
|
||||
u32 div;
|
||||
@@ -214,7 +232,7 @@ static u32 get_uart_clk(void)
|
||||
u32 reg, uart_podf;
|
||||
u32 freq = decode_pll(PLL_USBOTG, MXC_HCLK) / 6; /* static divider */
|
||||
reg = __raw_readl(&imx_ccm->cscdr1);
|
||||
#ifdef CONFIG_MX6SL
|
||||
#if (defined(CONFIG_MX6SL) || defined(CONFIG_MX6SX))
|
||||
if (reg & MXC_CCM_CSCDR1_UART_CLK_SEL)
|
||||
freq = MXC_HCLK;
|
||||
#endif
|
||||
@@ -282,7 +300,7 @@ static u32 get_emi_slow_clk(void)
|
||||
return root_freq / (emi_slow_podf + 1);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MX6SL
|
||||
#if (defined(CONFIG_MX6SL) || defined(CONFIG_MX6SX))
|
||||
static u32 get_mmdc_ch0_clk(void)
|
||||
{
|
||||
u32 cbcmr = __raw_readl(&imx_ccm->cbcmr);
|
||||
@@ -355,6 +373,27 @@ int enable_fec_anatop_clock(enum enet_freq freq)
|
||||
reg &= ~BM_ANADIG_PLL_ENET_BYPASS;
|
||||
writel(reg, &anatop->pll_enet);
|
||||
|
||||
#ifdef CONFIG_MX6SX
|
||||
/*
|
||||
* Set enet ahb clock to 200MHz
|
||||
* pll2_pfd2_396m-> ENET_PODF-> ENET_AHB
|
||||
*/
|
||||
reg = readl(&imx_ccm->chsccdr);
|
||||
reg &= ~(MXC_CCM_CHSCCDR_ENET_PRE_CLK_SEL_MASK
|
||||
| MXC_CCM_CHSCCDR_ENET_PODF_MASK
|
||||
| MXC_CCM_CHSCCDR_ENET_CLK_SEL_MASK);
|
||||
/* PLL2 PFD2 */
|
||||
reg |= (4 << MXC_CCM_CHSCCDR_ENET_PRE_CLK_SEL_OFFSET);
|
||||
/* Div = 2*/
|
||||
reg |= (1 << MXC_CCM_CHSCCDR_ENET_PODF_OFFSET);
|
||||
reg |= (0 << MXC_CCM_CHSCCDR_ENET_CLK_SEL_OFFSET);
|
||||
writel(reg, &imx_ccm->chsccdr);
|
||||
|
||||
/* Enable enet system clock */
|
||||
reg = readl(&imx_ccm->CCGR3);
|
||||
reg |= MXC_CCM_CCGR3_ENET_MASK;
|
||||
writel(reg, &imx_ccm->CCGR3);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
@@ -437,6 +476,7 @@ static int enable_enet_pll(uint32_t en)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifndef CONFIG_MX6SX
|
||||
static void ungate_sata_clock(void)
|
||||
{
|
||||
struct mxc_ccm_reg *const imx_ccm =
|
||||
@@ -445,6 +485,7 @@ static void ungate_sata_clock(void)
|
||||
/* Enable SATA clock. */
|
||||
setbits_le32(&imx_ccm->CCGR5, MXC_CCM_CCGR5_SATA_MASK);
|
||||
}
|
||||
#endif
|
||||
|
||||
static void ungate_pcie_clock(void)
|
||||
{
|
||||
@@ -455,11 +496,13 @@ static void ungate_pcie_clock(void)
|
||||
setbits_le32(&imx_ccm->CCGR4, MXC_CCM_CCGR4_PCIE_MASK);
|
||||
}
|
||||
|
||||
#ifndef CONFIG_MX6SX
|
||||
int enable_sata_clock(void)
|
||||
{
|
||||
ungate_sata_clock();
|
||||
return enable_enet_pll(BM_ANADIG_PLL_ENET_ENABLE_SATA);
|
||||
}
|
||||
#endif
|
||||
|
||||
int enable_pcie_clock(void)
|
||||
{
|
||||
@@ -491,7 +534,9 @@ int enable_pcie_clock(void)
|
||||
clrbits_le32(&ccm_regs->cbcmr, MXC_CCM_CBCMR_PCIE_AXI_CLK_SEL);
|
||||
|
||||
/* Party time! Ungate the clock to the PCIe. */
|
||||
#ifndef CONFIG_MX6SX
|
||||
ungate_sata_clock();
|
||||
#endif
|
||||
ungate_pcie_clock();
|
||||
|
||||
return enable_enet_pll(BM_ANADIG_PLL_ENET_ENABLE_SATA |
|
||||
@@ -573,6 +618,7 @@ int do_mx6_showclocks(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifndef CONFIG_MX6SX
|
||||
void enable_ipu_clock(void)
|
||||
{
|
||||
struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
|
||||
@@ -581,6 +627,7 @@ void enable_ipu_clock(void)
|
||||
reg |= MXC_CCM_CCGR3_IPU1_IPU_MASK;
|
||||
writel(reg, &mxc_ccm->CCGR3);
|
||||
}
|
||||
#endif
|
||||
/***************************************************/
|
||||
|
||||
U_BOOT_CMD(
|
||||
|
||||
@@ -197,6 +197,7 @@ void mx6_dram_cfg(const struct mx6_ddr_sysinfo *i,
|
||||
u16 trcd, trc, tras, twr, tmrd, trtp, trp, twtr, trfc, txs, txpr;
|
||||
u16 CS0_END;
|
||||
u16 tdllk = 0x1ff; /* DLL locking time: 512 cycles (JEDEC DDR3) */
|
||||
u8 coladdr;
|
||||
int clkper; /* clock period in picoseconds */
|
||||
int clock; /* clock freq in mHz */
|
||||
int cs;
|
||||
@@ -422,8 +423,13 @@ void mx6_dram_cfg(const struct mx6_ddr_sysinfo *i,
|
||||
mmdc0->mdor = reg;
|
||||
|
||||
/* Step 5: Configure DDR physical parameters (density and burst len) */
|
||||
coladdr = m->coladdr;
|
||||
if (m->coladdr == 8) /* 8-bit COL is 0x3 */
|
||||
coladdr += 4;
|
||||
else if (m->coladdr == 12) /* 12-bit COL is 0x4 */
|
||||
coladdr += 1;
|
||||
reg = (m->rowaddr - 11) << 24 | /* ROW */
|
||||
(m->coladdr - 9) << 20 | /* COL */
|
||||
(coladdr - 9) << 20 | /* COL */
|
||||
(1 << 19) | /* Burst Length = 8 for DDR3 */
|
||||
(i->dsize << 16); /* DDR data bus size */
|
||||
mmdc0->mdctl = reg;
|
||||
|
||||
87
arch/arm/cpu/armv7/mx6/mp.c
Normal file
87
arch/arm/cpu/armv7/mx6/mp.c
Normal file
@@ -0,0 +1,87 @@
|
||||
/*
|
||||
* (C) Copyright 2014
|
||||
* Gabriel Huau <contact@huau-gabriel.fr>
|
||||
*
|
||||
* (C) Copyright 2009 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/errno.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
|
||||
#define MAX_CPUS 4
|
||||
static struct src *src = (struct src *)SRC_BASE_ADDR;
|
||||
|
||||
static uint32_t cpu_reset_mask[MAX_CPUS] = {
|
||||
0, /* We don't really want to modify the cpu0 */
|
||||
SRC_SCR_CORE_1_RESET_MASK,
|
||||
SRC_SCR_CORE_2_RESET_MASK,
|
||||
SRC_SCR_CORE_3_RESET_MASK
|
||||
};
|
||||
|
||||
static uint32_t cpu_ctrl_mask[MAX_CPUS] = {
|
||||
0, /* We don't really want to modify the cpu0 */
|
||||
SRC_SCR_CORE_1_ENABLE_MASK,
|
||||
SRC_SCR_CORE_2_ENABLE_MASK,
|
||||
SRC_SCR_CORE_3_ENABLE_MASK
|
||||
};
|
||||
|
||||
int cpu_reset(int nr)
|
||||
{
|
||||
/* Software reset of the CPU N */
|
||||
src->scr |= cpu_reset_mask[nr];
|
||||
return 0;
|
||||
}
|
||||
|
||||
int cpu_status(int nr)
|
||||
{
|
||||
printf("core %d => %d\n", nr, !!(src->scr & cpu_ctrl_mask[nr]));
|
||||
return 0;
|
||||
}
|
||||
|
||||
int cpu_release(int nr, int argc, char *const argv[])
|
||||
{
|
||||
uint32_t boot_addr;
|
||||
|
||||
boot_addr = simple_strtoul(argv[0], NULL, 16);
|
||||
|
||||
switch (nr) {
|
||||
case 1:
|
||||
src->gpr3 = boot_addr;
|
||||
break;
|
||||
case 2:
|
||||
src->gpr5 = boot_addr;
|
||||
break;
|
||||
case 3:
|
||||
src->gpr7 = boot_addr;
|
||||
break;
|
||||
default:
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* CPU N is ready to start */
|
||||
src->scr |= cpu_ctrl_mask[nr];
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int is_core_valid(unsigned int core)
|
||||
{
|
||||
uint32_t nr_cores = get_nr_cpus();
|
||||
|
||||
if (core > nr_cores)
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int cpu_disable(int nr)
|
||||
{
|
||||
/* Disable the CPU N */
|
||||
src->scr &= ~cpu_ctrl_mask[nr];
|
||||
return 0;
|
||||
}
|
||||
@@ -35,6 +35,12 @@ struct scu_regs {
|
||||
u32 fpga_rev;
|
||||
};
|
||||
|
||||
u32 get_nr_cpus(void)
|
||||
{
|
||||
struct scu_regs *scu = (struct scu_regs *)SCU_BASE_ADDR;
|
||||
return readl(&scu->config) & 3;
|
||||
}
|
||||
|
||||
u32 get_cpu_rev(void)
|
||||
{
|
||||
struct anatop_regs *anatop = (struct anatop_regs *)ANATOP_BASE_ADDR;
|
||||
@@ -79,9 +85,15 @@ u32 __weak get_board_rev(void)
|
||||
void init_aips(void)
|
||||
{
|
||||
struct aipstz_regs *aips1, *aips2;
|
||||
#ifdef CONFIG_MX6SX
|
||||
struct aipstz_regs *aips3;
|
||||
#endif
|
||||
|
||||
aips1 = (struct aipstz_regs *)AIPS1_BASE_ADDR;
|
||||
aips2 = (struct aipstz_regs *)AIPS2_BASE_ADDR;
|
||||
#ifdef CONFIG_MX6SX
|
||||
aips3 = (struct aipstz_regs *)AIPS3_BASE_ADDR;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Set all MPROTx to be non-bufferable, trusted for R/W,
|
||||
@@ -107,6 +119,26 @@ void init_aips(void)
|
||||
writel(0x00000000, &aips2->opacr2);
|
||||
writel(0x00000000, &aips2->opacr3);
|
||||
writel(0x00000000, &aips2->opacr4);
|
||||
|
||||
#ifdef CONFIG_MX6SX
|
||||
/*
|
||||
* Set all MPROTx to be non-bufferable, trusted for R/W,
|
||||
* not forced to user-mode.
|
||||
*/
|
||||
writel(0x77777777, &aips3->mprot0);
|
||||
writel(0x77777777, &aips3->mprot1);
|
||||
|
||||
/*
|
||||
* Set all OPACRx to be non-bufferable, not require
|
||||
* supervisor privilege level for access,allow for
|
||||
* write access and untrusted master access.
|
||||
*/
|
||||
writel(0x00000000, &aips3->opacr0);
|
||||
writel(0x00000000, &aips3->opacr1);
|
||||
writel(0x00000000, &aips3->opacr2);
|
||||
writel(0x00000000, &aips3->opacr3);
|
||||
writel(0x00000000, &aips3->opacr4);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void clear_ldo_ramp(void)
|
||||
@@ -311,6 +343,10 @@ void s_init(void)
|
||||
u32 mask480;
|
||||
u32 mask528;
|
||||
|
||||
|
||||
if (is_cpu_type(MXC_CPU_MX6SX))
|
||||
return;
|
||||
|
||||
/* Due to hardware limitation, on MX6Q we need to gate/ungate all PFDs
|
||||
* to make sure PFD is working right, otherwise, PFDs may
|
||||
* not output clock after reset, MX6DL and MX6SL have added 396M pfd
|
||||
|
||||
@@ -93,6 +93,11 @@ unsigned imx_ddr_size(void)
|
||||
bits += bank_lookup[ESD_MMDC_MISC_GET_BANK(misc)];
|
||||
bits += ESD_MMDC_CTL_GET_WIDTH(ctl);
|
||||
bits += ESD_MMDC_CTL_GET_CS1(ctl);
|
||||
|
||||
/* The MX6 can do only 3840 MiB of DRAM */
|
||||
if (bits == 32)
|
||||
return 0xf0000000;
|
||||
|
||||
return 1 << bits;
|
||||
}
|
||||
#endif
|
||||
@@ -112,6 +117,8 @@ const char *get_imx_type(u32 imxtype)
|
||||
return "6SOLO"; /* Solo version of the mx6 */
|
||||
case MXC_CPU_MX6SL:
|
||||
return "6SL"; /* Solo-Lite version of the mx6 */
|
||||
case MXC_CPU_MX6SX:
|
||||
return "6SX"; /* SoloX version of the mx6 */
|
||||
case MXC_CPU_MX51:
|
||||
return "51";
|
||||
case MXC_CPU_MX53:
|
||||
|
||||
@@ -12,8 +12,7 @@
|
||||
|
||||
int setup_sata(void)
|
||||
{
|
||||
struct iomuxc_base_regs *const iomuxc_regs
|
||||
= (struct iomuxc_base_regs *)IOMUXC_BASE_ADDR;
|
||||
struct iomuxc *const iomuxc_regs = (struct iomuxc *)IOMUXC_BASE_ADDR;
|
||||
int ret;
|
||||
|
||||
if (!is_cpu_type(MXC_CPU_MX6Q) && !is_cpu_type(MXC_CPU_MX6D))
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#define MXC_CPU_MX53 0x53
|
||||
#define MXC_CPU_MX6SL 0x60
|
||||
#define MXC_CPU_MX6DL 0x61
|
||||
#define MXC_CPU_MX6SOLO 0x62
|
||||
#define MXC_CPU_MX6SX 0x62
|
||||
#define MXC_CPU_MX6Q 0x63
|
||||
#define MXC_CPU_MX6D 0x64
|
||||
#define MXC_CPU_MX6SOLO 0x65 /* dummy ID */
|
||||
|
||||
@@ -40,7 +40,7 @@ struct mxc_ccm_reg {
|
||||
u32 cs1cdr;
|
||||
u32 cs2cdr;
|
||||
u32 cdcdr; /* 0x0030 */
|
||||
u32 chscdr;
|
||||
u32 chsccdr;
|
||||
u32 cscdr2;
|
||||
u32 cscdr3;
|
||||
u32 cscdr4; /* 0x0040 */
|
||||
|
||||
@@ -57,6 +57,7 @@ void enable_usboh3_clk(unsigned char enable);
|
||||
int enable_sata_clock(void);
|
||||
int enable_pcie_clock(void);
|
||||
int enable_i2c_clk(unsigned char enable, unsigned i2c_num);
|
||||
int enable_spi_clk(unsigned char enable, unsigned spi_num);
|
||||
void enable_ipu_clock(void);
|
||||
int enable_fec_anatop_clock(enum enet_freq freq);
|
||||
#endif /* __ASM_ARCH_CLOCK_H */
|
||||
|
||||
@@ -113,7 +113,11 @@ struct mxc_ccm_reg {
|
||||
#define MXC_CCM_CCR_WB_COUNT_MASK 0x7
|
||||
#define MXC_CCM_CCR_WB_COUNT_OFFSET (1 << 16)
|
||||
#define MXC_CCM_CCR_COSC_EN (1 << 12)
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define MXC_CCM_CCR_OSCNT_MASK 0x7F
|
||||
#else
|
||||
#define MXC_CCM_CCR_OSCNT_MASK 0xFF
|
||||
#endif
|
||||
#define MXC_CCM_CCR_OSCNT_OFFSET 0
|
||||
|
||||
/* Define the bits in register CCDR */
|
||||
@@ -146,8 +150,10 @@ struct mxc_ccm_reg {
|
||||
#define MXC_CCM_CBCDR_PERIPH_CLK2_PODF_OFFSET 27
|
||||
#define MXC_CCM_CBCDR_PERIPH2_CLK2_SEL (1 << 26)
|
||||
#define MXC_CCM_CBCDR_PERIPH_CLK_SEL (1 << 25)
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define MXC_CCM_CBCDR_MMDC_CH0_PODF_MASK (0x7 << 19)
|
||||
#define MXC_CCM_CBCDR_MMDC_CH0_PODF_OFFSET 19
|
||||
#endif
|
||||
#define MXC_CCM_CBCDR_AXI_PODF_MASK (0x7 << 16)
|
||||
#define MXC_CCM_CBCDR_AXI_PODF_OFFSET 16
|
||||
#define MXC_CCM_CBCDR_AHB_PODF_MASK (0x7 << 10)
|
||||
@@ -173,28 +179,40 @@ struct mxc_ccm_reg {
|
||||
#define MXC_CCM_CBCMR_PRE_PERIPH2_CLK2_SEL (1 << 20)
|
||||
#define MXC_CCM_CBCMR_PRE_PERIPH_CLK_SEL_MASK (0x3 << 18)
|
||||
#define MXC_CCM_CBCMR_PRE_PERIPH_CLK_SEL_OFFSET 18
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define MXC_CCM_CBCMR_GPU2D_CLK_SEL_MASK (0x3 << 16)
|
||||
#define MXC_CCM_CBCMR_GPU2D_CLK_SEL_OFFSET 16
|
||||
#define MXC_CCM_CBCMR_VPU_AXI_CLK_SEL_MASK (0x3 << 14)
|
||||
#define MXC_CCM_CBCMR_VPU_AXI_CLK_SEL_OFFSET 14
|
||||
#endif
|
||||
#define MXC_CCM_CBCMR_PERIPH_CLK2_SEL_MASK (0x3 << 12)
|
||||
#define MXC_CCM_CBCMR_PERIPH_CLK2_SEL_OFFSET 12
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define MXC_CCM_CBCMR_VDOAXI_CLK_SEL (1 << 11)
|
||||
#endif
|
||||
#define MXC_CCM_CBCMR_PCIE_AXI_CLK_SEL (1 << 10)
|
||||
#define MXC_CCM_CBCMR_GPU3D_SHADER_CLK_SEL_MASK (0x3 << 8)
|
||||
#define MXC_CCM_CBCMR_GPU3D_SHADER_CLK_SEL_OFFSET 8
|
||||
#define MXC_CCM_CBCMR_GPU3D_CORE_CLK_SEL_MASK (0x3 << 4)
|
||||
#define MXC_CCM_CBCMR_GPU3D_CORE_CLK_SEL_OFFSET 4
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define MXC_CCM_CBCMR_GPU3D_AXI_CLK_SEL (1 << 1)
|
||||
#define MXC_CCM_CBCMR_GPU2D_AXI_CLK_SEL (1 << 0)
|
||||
#endif
|
||||
|
||||
/* Define the bits in register CSCMR1 */
|
||||
#define MXC_CCM_CSCMR1_ACLK_EMI_SLOW_MASK (0x3 << 29)
|
||||
#define MXC_CCM_CSCMR1_ACLK_EMI_SLOW_OFFSET 29
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define MXC_CCM_CSCMR1_QSPI1_PODF_MASK (0x7 << 26)
|
||||
#define MXC_CCM_CSCMR1_QSPI1_PODF_OFFSET 26
|
||||
#else
|
||||
#define MXC_CCM_CSCMR1_ACLK_EMI_MASK (0x3 << 27)
|
||||
#define MXC_CCM_CSCMR1_ACLK_EMI_OFFSET 27
|
||||
#endif
|
||||
#define MXC_CCM_CSCMR1_ACLK_EMI_SLOW_PODF_MASK (0x7 << 23)
|
||||
#define MXC_CCM_CSCMR1_ACLK_EMI_SLOW_PODF_OFFSET 23
|
||||
/* ACLK_EMI_PODF is LCFIF2_PODF on MX6SX */
|
||||
#define MXC_CCM_CSCMR1_ACLK_EMI_PODF_MASK (0x7 << 20)
|
||||
#define MXC_CCM_CSCMR1_ACLK_EMI_PODF_OFFSET 20
|
||||
#define MXC_CCM_CSCMR1_USDHC4_CLK_SEL (1 << 19)
|
||||
@@ -207,19 +225,38 @@ struct mxc_ccm_reg {
|
||||
#define MXC_CCM_CSCMR1_SSI2_CLK_SEL_OFFSET 12
|
||||
#define MXC_CCM_CSCMR1_SSI1_CLK_SEL_MASK (0x3 << 10)
|
||||
#define MXC_CCM_CSCMR1_SSI1_CLK_SEL_OFFSET 10
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define MXC_CCM_CSCMR1_QSPI1_CLK_SEL_MASK (0x7 << 7)
|
||||
#define MXC_CCM_CSCMR1_QSPI1_CLK_SEL_OFFSET 7
|
||||
#define MXC_CCM_CSCMR1_PER_CLK_SEL_MASK (1 << 6)
|
||||
#define MXC_CCM_CSCMR1_PER_CLK_SEL_OFFSET 6
|
||||
#endif
|
||||
#define MXC_CCM_CSCMR1_PERCLK_PODF_MASK 0x3F
|
||||
|
||||
/* Define the bits in register CSCMR2 */
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define MXC_CCM_CSCMR2_VID_CLK_SEL_MASK (0x7 << 21)
|
||||
#define MXC_CCM_CSCMR2_VID_CLK_SEL_OFFSET 21
|
||||
#endif
|
||||
#define MXC_CCM_CSCMR2_ESAI_PRE_SEL_MASK (0x3 << 19)
|
||||
#define MXC_CCM_CSCMR2_ESAI_PRE_SEL_OFFSET 19
|
||||
#define MXC_CCM_CSCMR2_LDB_DI1_IPU_DIV (1 << 11)
|
||||
#define MXC_CCM_CSCMR2_LDB_DI0_IPU_DIV (1 << 10)
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define MXC_CCM_CSCMR2_CAN_CLK_SEL_MASK (0x3 << 8)
|
||||
#define MXC_CCM_CSCMR2_CAN_CLK_SEL_OFFSET 8
|
||||
#define MXC_CCM_CSCMR2_CAN_CLK_PODF_MASK (0x3F << 2)
|
||||
#define MXC_CCM_CSCMR2_CAN_CLK_PODF_OFFSET 2
|
||||
#else
|
||||
#define MXC_CCM_CSCMR2_CAN_CLK_SEL_MASK (0x3F << 2)
|
||||
#define MXC_CCM_CSCMR2_CAN_CLK_SEL_OFFSET 2
|
||||
#endif
|
||||
|
||||
/* Define the bits in register CSCDR1 */
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define MXC_CCM_CSCDR1_VPU_AXI_PODF_MASK (0x7 << 25)
|
||||
#define MXC_CCM_CSCDR1_VPU_AXI_PODF_OFFSET 25
|
||||
#endif
|
||||
#define MXC_CCM_CSCDR1_USDHC4_PODF_MASK (0x7 << 22)
|
||||
#define MXC_CCM_CSCDR1_USDHC4_PODF_OFFSET 22
|
||||
#define MXC_CCM_CSCDR1_USDHC3_PODF_MASK (0x7 << 19)
|
||||
@@ -228,21 +265,28 @@ struct mxc_ccm_reg {
|
||||
#define MXC_CCM_CSCDR1_USDHC2_PODF_OFFSET 16
|
||||
#define MXC_CCM_CSCDR1_USDHC1_PODF_MASK (0x7 << 11)
|
||||
#define MXC_CCM_CSCDR1_USDHC1_PODF_OFFSET 11
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define MXC_CCM_CSCDR1_USBOH3_CLK_PRED_OFFSET 8
|
||||
#define MXC_CCM_CSCDR1_USBOH3_CLK_PRED_MASK (0x7 << 8)
|
||||
#define MXC_CCM_CSCDR1_USBOH3_CLK_PODF_OFFSET 6
|
||||
#define MXC_CCM_CSCDR1_USBOH3_CLK_PODF_MASK (0x3 << 6)
|
||||
#endif
|
||||
#ifdef CONFIG_MX6SL
|
||||
#define MXC_CCM_CSCDR1_UART_CLK_PODF_MASK 0x1F
|
||||
#define MXC_CCM_CSCDR1_UART_CLK_SEL (1 << 6)
|
||||
#else
|
||||
#define MXC_CCM_CSCDR1_UART_CLK_PODF_MASK 0x3F
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define MXC_CCM_CSCDR1_UART_CLK_SEL (1 << 6)
|
||||
#endif
|
||||
#endif
|
||||
#define MXC_CCM_CSCDR1_UART_CLK_PODF_OFFSET 0
|
||||
|
||||
/* Define the bits in register CS1CDR */
|
||||
#define MXC_CCM_CS1CDR_ESAI_CLK_PODF_MASK (0x3F << 25)
|
||||
#define MXC_CCM_CS1CDR_ESAI_CLK_PODF_OFFSET 25
|
||||
#define MXC_CCM_CS1CDR_SSI3_CLK_PRED_MASK (0x7 << 22)
|
||||
#define MXC_CCM_CS1CDR_SSI3_CLK_PRED_OFFSET 22
|
||||
#define MXC_CCM_CS1CDR_SSI3_CLK_PODF_MASK (0x3F << 16)
|
||||
#define MXC_CCM_CS1CDR_SSI3_CLK_PODF_OFFSET 16
|
||||
#define MXC_CCM_CS1CDR_ESAI_CLK_PRED_MASK (0x3 << 9)
|
||||
@@ -253,6 +297,17 @@ struct mxc_ccm_reg {
|
||||
#define MXC_CCM_CS1CDR_SSI1_CLK_PODF_OFFSET 0
|
||||
|
||||
/* Define the bits in register CS2CDR */
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define MXC_CCM_CS2CDR_QSPI2_CLK_PODF_MASK (0x3F << 21)
|
||||
#define MXC_CCM_CS2CDR_QSPI2_CLK_PODF_OFFSET 21
|
||||
#define MXC_CCM_CS2CDR_QSPI2_CLK_PODF(v) (((v) & 0x3f) << 21)
|
||||
#define MXC_CCM_CS2CDR_QSPI2_CLK_PRED_MASK (0x7 << 18)
|
||||
#define MXC_CCM_CS2CDR_QSPI2_CLK_PRED_OFFSET 18
|
||||
#define MXC_CCM_CS2CDR_QSPI2_CLK_PRED(v) (((v) & 0x7) << 18)
|
||||
#define MXC_CCM_CS2CDR_QSPI2_CLK_SEL_MASK (0x7 << 15)
|
||||
#define MXC_CCM_CS2CDR_QSPI2_CLK_SEL_OFFSET 15
|
||||
#define MXC_CCM_CS2CDR_QSPI2_CLK_SEL(v) (((v) & 0x7) << 15)
|
||||
#else
|
||||
#define MXC_CCM_CS2CDR_ENFC_CLK_PODF_MASK (0x3F << 21)
|
||||
#define MXC_CCM_CS2CDR_ENFC_CLK_PODF_OFFSET 21
|
||||
#define MXC_CCM_CS2CDR_ENFC_CLK_PODF(v) (((v) & 0x3f) << 21)
|
||||
@@ -262,6 +317,7 @@ struct mxc_ccm_reg {
|
||||
#define MXC_CCM_CS2CDR_ENFC_CLK_SEL_MASK (0x3 << 16)
|
||||
#define MXC_CCM_CS2CDR_ENFC_CLK_SEL_OFFSET 16
|
||||
#define MXC_CCM_CS2CDR_ENFC_CLK_SEL(v) (((v) & 0x3) << 16)
|
||||
#endif
|
||||
#define MXC_CCM_CS2CDR_LDB_DI1_CLK_SEL_MASK (0x7 << 12)
|
||||
#define MXC_CCM_CS2CDR_LDB_DI1_CLK_SEL_OFFSET 12
|
||||
#define MXC_CCM_CS2CDR_LDB_DI0_CLK_SEL_MASK (0x7 << 9)
|
||||
@@ -272,13 +328,15 @@ struct mxc_ccm_reg {
|
||||
#define MXC_CCM_CS2CDR_SSI2_CLK_PODF_OFFSET 0
|
||||
|
||||
/* Define the bits in register CDCDR */
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define MXC_CCM_CDCDR_HSI_TX_PODF_MASK (0x7 << 29)
|
||||
#define MXC_CCM_CDCDR_HSI_TX_PODF_OFFSET 29
|
||||
#define MXC_CCM_CDCDR_HSI_TX_CLK_SEL (1 << 28)
|
||||
#endif
|
||||
#define MXC_CCM_CDCDR_SPDIF0_CLK_PRED_MASK (0x7 << 25)
|
||||
#define MXC_CCM_CDCDR_SPDIF0_CLK_PRED_OFFSET 25
|
||||
#define MXC_CCM_CDCDR_SPDIF0_CLK_PODF_MASK (0x7 << 19)
|
||||
#define MXC_CCM_CDCDR_SPDIF0_CLK_PODF_OFFSET 19
|
||||
#define MXC_CCM_CDCDR_SPDIF0_CLK_PODF_MASK (0x7 << 22)
|
||||
#define MXC_CCM_CDCDR_SPDIF0_CLK_PODF_OFFSET 22
|
||||
#define MXC_CCM_CDCDR_SPDIF0_CLK_SEL_MASK (0x3 << 20)
|
||||
#define MXC_CCM_CDCDR_SPDIF0_CLK_SEL_OFFSET 20
|
||||
#define MXC_CCM_CDCDR_SPDIF1_CLK_PRED_MASK (0x7 << 12)
|
||||
@@ -289,6 +347,20 @@ struct mxc_ccm_reg {
|
||||
#define MXC_CCM_CDCDR_SPDIF1_CLK_SEL_OFFSET 7
|
||||
|
||||
/* Define the bits in register CHSCCDR */
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define MXC_CCM_CHSCCDR_ENET_PRE_CLK_SEL_MASK (0x7 << 15)
|
||||
#define MXC_CCM_CHSCCDR_ENET_PRE_CLK_SEL_OFFSET 15
|
||||
#define MXC_CCM_CHSCCDR_ENET_PODF_MASK (0x7 << 12)
|
||||
#define MXC_CCM_CHSCCDR_ENET_PODF_OFFSET 12
|
||||
#define MXC_CCM_CHSCCDR_ENET_CLK_SEL_MASK (0x7 << 9)
|
||||
#define MXC_CCM_CHSCCDR_ENET_CLK_SEL_OFFSET 9
|
||||
#define MXC_CCM_CHSCCDR_M4_PRE_CLK_SEL_MASK (0x7 << 6)
|
||||
#define MXC_CCM_CHSCCDR_M4_PRE_CLK_SEL_OFFSET 6
|
||||
#define MXC_CCM_CHSCCDR_M4_PODF_MASK (0x7 << 3)
|
||||
#define MXC_CCM_CHSCCDR_M4_PODF_OFFSET 3
|
||||
#define MXC_CCM_CHSCCDR_M4_CLK_SEL_MASK (0x7)
|
||||
#define MXC_CCM_CHSCCDR_M4_CLK_SEL_OFFSET 0
|
||||
#else
|
||||
#define MXC_CCM_CHSCCDR_IPU1_DI1_PRE_CLK_SEL_MASK (0x7 << 15)
|
||||
#define MXC_CCM_CHSCCDR_IPU1_DI1_PRE_CLK_SEL_OFFSET 15
|
||||
#define MXC_CCM_CHSCCDR_IPU1_DI1_PODF_MASK (0x7 << 12)
|
||||
@@ -301,6 +373,7 @@ struct mxc_ccm_reg {
|
||||
#define MXC_CCM_CHSCCDR_IPU1_DI0_PODF_OFFSET 3
|
||||
#define MXC_CCM_CHSCCDR_IPU1_DI0_CLK_SEL_MASK (0x7)
|
||||
#define MXC_CCM_CHSCCDR_IPU1_DI0_CLK_SEL_OFFSET 0
|
||||
#endif
|
||||
|
||||
#define CHSCCDR_CLK_SEL_LDB_DI0 3
|
||||
#define CHSCCDR_PODF_DIVIDE_BY_3 2
|
||||
@@ -309,12 +382,14 @@ struct mxc_ccm_reg {
|
||||
/* Define the bits in register CSCDR2 */
|
||||
#define MXC_CCM_CSCDR2_ECSPI_CLK_PODF_MASK (0x3F << 19)
|
||||
#define MXC_CCM_CSCDR2_ECSPI_CLK_PODF_OFFSET 19
|
||||
/* All IPU2_DI1 are LCDIF1 on MX6SX */
|
||||
#define MXC_CCM_CHSCCDR_IPU2_DI1_PRE_CLK_SEL_MASK (0x7 << 15)
|
||||
#define MXC_CCM_CHSCCDR_IPU2_DI1_PRE_CLK_SEL_OFFSET 15
|
||||
#define MXC_CCM_CHSCCDR_IPU2_DI1_PODF_MASK (0x7 << 12)
|
||||
#define MXC_CCM_CHSCCDR_IPU2_DI1_PODF_OFFSET 12
|
||||
#define MXC_CCM_CHSCCDR_IPU2_DI1_CLK_SEL_MASK (0x7 << 9)
|
||||
#define MXC_CCM_CHSCCDR_IPU2_DI1_CLK_SEL_OFFSET 9
|
||||
/* All IPU2_DI0 are LCDIF2 on MX6SX */
|
||||
#define MXC_CCM_CHSCCDR_IPU2_DI0_PRE_CLK_SEL_MASK (0x7 << 6)
|
||||
#define MXC_CCM_CHSCCDR_IPU2_DI0_PRE_CLK_SEL_OFFSET 6
|
||||
#define MXC_CCM_CHSCCDR_IPU2_DI0_PODF_MASK (0x7 << 3)
|
||||
@@ -335,7 +410,9 @@ struct mxc_ccm_reg {
|
||||
/* Define the bits in register CDHIPR */
|
||||
#define MXC_CCM_CDHIPR_ARM_PODF_BUSY (1 << 16)
|
||||
#define MXC_CCM_CDHIPR_PERIPH_CLK_SEL_BUSY (1 << 5)
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define MXC_CCM_CDHIPR_MMDC_CH0_PODF_BUSY (1 << 4)
|
||||
#endif
|
||||
#define MXC_CCM_CDHIPR_PERIPH2_CLK_SEL_BUSY (1 << 3)
|
||||
#define MXC_CCM_CDHIPR_MMDC_CH1_PODF_BUSY (1 << 2)
|
||||
#define MXC_CCM_CDHIPR_AHB_PODF_BUSY (1 << 1)
|
||||
@@ -344,14 +421,18 @@ struct mxc_ccm_reg {
|
||||
/* Define the bits in register CLPCR */
|
||||
#define MXC_CCM_CLPCR_MASK_L2CC_IDLE (1 << 27)
|
||||
#define MXC_CCM_CLPCR_MASK_SCU_IDLE (1 << 26)
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define MXC_CCM_CLPCR_MASK_CORE3_WFI (1 << 25)
|
||||
#define MXC_CCM_CLPCR_MASK_CORE2_WFI (1 << 24)
|
||||
#define MXC_CCM_CLPCR_MASK_CORE1_WFI (1 << 23)
|
||||
#endif
|
||||
#define MXC_CCM_CLPCR_MASK_CORE0_WFI (1 << 22)
|
||||
#define MXC_CCM_CLPCR_BYP_MMDC_CH1_LPM_HS (1 << 21)
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define MXC_CCM_CLPCR_BYP_MMDC_CH0_LPM_HS (1 << 19)
|
||||
#define MXC_CCM_CLPCR_WB_CORE_AT_LPM (1 << 17)
|
||||
#define MXC_CCM_CLPCR_WB_PER_AT_LPM (1 << 17)
|
||||
#endif
|
||||
#define MXC_CCM_CLPCR_WB_PER_AT_LPM (1 << 16)
|
||||
#define MXC_CCM_CLPCR_COSC_PWRDOWN (1 << 11)
|
||||
#define MXC_CCM_CLPCR_STBY_COUNT_MASK (0x3 << 9)
|
||||
#define MXC_CCM_CLPCR_STBY_COUNT_OFFSET 9
|
||||
@@ -359,15 +440,19 @@ struct mxc_ccm_reg {
|
||||
#define MXC_CCM_CLPCR_DIS_REF_OSC (1 << 7)
|
||||
#define MXC_CCM_CLPCR_SBYOS (1 << 6)
|
||||
#define MXC_CCM_CLPCR_ARM_CLK_DIS_ON_LPM (1 << 5)
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define MXC_CCM_CLPCR_LPSR_CLK_SEL_MASK (0x3 << 3)
|
||||
#define MXC_CCM_CLPCR_LPSR_CLK_SEL_OFFSET 3
|
||||
#define MXC_CCM_CLPCR_BYPASS_PMIC_VFUNC_READY (1 << 2)
|
||||
#endif
|
||||
#define MXC_CCM_CLPCR_LPM_MASK 0x3
|
||||
#define MXC_CCM_CLPCR_LPM_OFFSET 0
|
||||
|
||||
/* Define the bits in register CISR */
|
||||
#define MXC_CCM_CISR_ARM_PODF_LOADED (1 << 26)
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define MXC_CCM_CISR_MMDC_CH0_PODF_LOADED (1 << 23)
|
||||
#endif
|
||||
#define MXC_CCM_CISR_PERIPH_CLK_SEL_LOADED (1 << 22)
|
||||
#define MXC_CCM_CISR_MMDC_CH1_PODF_LOADED (1 << 21)
|
||||
#define MXC_CCM_CISR_AHB_PODF_LOADED (1 << 20)
|
||||
@@ -378,11 +463,13 @@ struct mxc_ccm_reg {
|
||||
|
||||
/* Define the bits in register CIMR */
|
||||
#define MXC_CCM_CIMR_MASK_ARM_PODF_LOADED (1 << 26)
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define MXC_CCM_CIMR_MASK_MMDC_CH0_PODF_LOADED (1 << 23)
|
||||
#endif
|
||||
#define MXC_CCM_CIMR_MASK_PERIPH_CLK_SEL_LOADED (1 << 22)
|
||||
#define MXC_CCM_CIMR_MASK_MMDC_CH1_PODF_LOADED (1 << 21)
|
||||
#define MXC_CCM_CIMR_MASK_AHB_PODF_LOADED (1 << 20)
|
||||
#define MXC_CCM_CIMR_MASK_PERIPH2_CLK_SEL_LOADED (1 << 22)
|
||||
#define MXC_CCM_CIMR_MASK_PERIPH2_CLK_SEL_LOADED (1 << 19)
|
||||
#define MXC_CCM_CIMR_MASK_AXI_PODF_LOADED (1 << 17)
|
||||
#define MXC_CCM_CIMR_MASK_COSC_READY (1 << 6)
|
||||
#define MXC_CCM_CIMR_MASK_LRF_PLL 1
|
||||
@@ -393,6 +480,7 @@ struct mxc_ccm_reg {
|
||||
#define MXC_CCM_CCOSR_CKO2_DIV_OFFSET 21
|
||||
#define MXC_CCM_CCOSR_CKO2_SEL_OFFSET 16
|
||||
#define MXC_CCM_CCOSR_CKO2_SEL_MASK (0x1F << 16)
|
||||
#define MXC_CCM_CCOSR_CLK_OUT_SEL (0x1 << 8)
|
||||
#define MXC_CCM_CCOSR_CKOL_EN (0x1 << 7)
|
||||
#define MXC_CCM_CCOSR_CKOL_DIV_MASK (0x7 << 4)
|
||||
#define MXC_CCM_CCOSR_CKOL_DIV_OFFSET 4
|
||||
@@ -400,6 +488,7 @@ struct mxc_ccm_reg {
|
||||
#define MXC_CCM_CCOSR_CKOL_SEL_OFFSET 0
|
||||
|
||||
/* Define the bits in registers CGPR */
|
||||
#define MXC_CCM_CGPR_FAST_PLL_EN (1 << 16)
|
||||
#define MXC_CCM_CGPR_EFUSE_PROG_SUPPLY_GATE (1 << 4)
|
||||
#define MXC_CCM_CGPR_MMDC_EXT_CLK_DIS (1 << 2)
|
||||
#define MXC_CCM_CGPR_PMIC_DELAY_SCALER 1
|
||||
@@ -435,8 +524,13 @@ struct mxc_ccm_reg {
|
||||
#define MXC_CCM_CCGR0_DCIC1_MASK (3 << MXC_CCM_CCGR0_DCIC1_OFFSET)
|
||||
#define MXC_CCM_CCGR0_DCIC2_OFFSET 26
|
||||
#define MXC_CCM_CCGR0_DCIC2_MASK (3 << MXC_CCM_CCGR0_DCIC2_OFFSET)
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define MXC_CCM_CCGR0_AIPS_TZ3_OFFSET 30
|
||||
#define MXC_CCM_CCGR0_AIPS_TZ3_MASK (3 << MXC_CCM_CCGR0_AIPS_TZ3_OFFSET)
|
||||
#else
|
||||
#define MXC_CCM_CCGR0_DTCP_OFFSET 28
|
||||
#define MXC_CCM_CCGR0_DTCP_MASK (3 << MXC_CCM_CCGR0_DTCP_OFFSET)
|
||||
#endif
|
||||
|
||||
#define MXC_CCM_CCGR1_ECSPI1S_OFFSET 0
|
||||
#define MXC_CCM_CCGR1_ECSPI1S_MASK (3 << MXC_CCM_CCGR1_ECSPI1S_OFFSET)
|
||||
@@ -448,27 +542,48 @@ struct mxc_ccm_reg {
|
||||
#define MXC_CCM_CCGR1_ECSPI4S_MASK (3 << MXC_CCM_CCGR1_ECSPI4S_OFFSET)
|
||||
#define MXC_CCM_CCGR1_ECSPI5S_OFFSET 8
|
||||
#define MXC_CCM_CCGR1_ECSPI5S_MASK (3 << MXC_CCM_CCGR1_ECSPI5S_OFFSET)
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define MXC_CCM_CCGR1_ENET_CLK_ENABLE_OFFSET 10
|
||||
#define MXC_CCM_CCGR1_ENET_CLK_ENABLE_MASK (3 << MXC_CCM_CCGR1_ENET_CLK_ENABLE_OFFSET)
|
||||
#endif
|
||||
#define MXC_CCM_CCGR1_EPIT1S_OFFSET 12
|
||||
#define MXC_CCM_CCGR1_EPIT1S_MASK (3 << MXC_CCM_CCGR1_EPIT1S_OFFSET)
|
||||
#define MXC_CCM_CCGR1_EPIT2S_OFFSET 14
|
||||
#define MXC_CCM_CCGR1_EPIT2S_MASK (3 << MXC_CCM_CCGR1_EPIT2S_OFFSET)
|
||||
#define MXC_CCM_CCGR1_ESAIS_OFFSET 16
|
||||
#define MXC_CCM_CCGR1_ESAIS_MASK (3 << MXC_CCM_CCGR1_ESAIS_OFFSET)
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define MXC_CCM_CCGR1_WAKEUP_OFFSET 18
|
||||
#define MXC_CCM_CCGR1_WAKEUP_MASK (3 << MXC_CCM_CCGR1_WAKEUP_OFFSET)
|
||||
#endif
|
||||
#define MXC_CCM_CCGR1_GPT_BUS_OFFSET 20
|
||||
#define MXC_CCM_CCGR1_GPT_BUS_MASK (3 << MXC_CCM_CCGR1_GPT_BUS_OFFSET)
|
||||
#define MXC_CCM_CCGR1_GPT_SERIAL_OFFSET 22
|
||||
#define MXC_CCM_CCGR1_GPT_SERIAL_MASK (3 << MXC_CCM_CCGR1_GPT_SERIAL_OFFSET)
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define MXC_CCM_CCGR1_GPU2D_OFFSET 24
|
||||
#define MXC_CCM_CCGR1_GPU2D_MASK (3 << MXC_CCM_CCGR1_GPU2D_OFFSET)
|
||||
#endif
|
||||
#define MXC_CCM_CCGR1_GPU3D_OFFSET 26
|
||||
#define MXC_CCM_CCGR1_GPU3D_MASK (3 << MXC_CCM_CCGR1_GPU3D_OFFSET)
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define MXC_CCM_CCGR1_OCRAM_S_OFFSET 28
|
||||
#define MXC_CCM_CCGR1_OCRAM_S_MASK (3 << MXC_CCM_CCGR1_OCRAM_S_OFFSET)
|
||||
#define MXC_CCM_CCGR1_CANFD_OFFSET 30
|
||||
#define MXC_CCM_CCGR1_CANFD_MASK (3 << MXC_CCM_CCGR1_CANFD_OFFSET)
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define MXC_CCM_CCGR2_HDMI_TX_IAHBCLK_OFFSET 0
|
||||
#define MXC_CCM_CCGR2_HDMI_TX_IAHBCLK_MASK (3 << MXC_CCM_CCGR2_HDMI_TX_IAHBCLK_OFFSET)
|
||||
#else
|
||||
#define MXC_CCM_CCGR2_CSI_OFFSET 2
|
||||
#define MXC_CCM_CCGR2_CSI_MASK (3 << MXC_CCM_CCGR2_CSI_OFFSET)
|
||||
#endif
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define MXC_CCM_CCGR2_HDMI_TX_ISFRCLK_OFFSET 4
|
||||
#define MXC_CCM_CCGR2_HDMI_TX_ISFRCLK_MASK (3 << MXC_CCM_CCGR2_HDMI_TX_ISFRCLK_OFFSET)
|
||||
#endif
|
||||
#define MXC_CCM_CCGR2_I2C1_SERIAL_OFFSET 6
|
||||
#define MXC_CCM_CCGR2_I2C1_SERIAL_MASK (3 << MXC_CCM_CCGR2_I2C1_SERIAL_OFFSET)
|
||||
#define MXC_CCM_CCGR2_I2C2_SERIAL_OFFSET 8
|
||||
@@ -487,17 +602,33 @@ struct mxc_ccm_reg {
|
||||
#define MXC_CCM_CCGR2_IPMUX3_MASK (3 << MXC_CCM_CCGR2_IPMUX3_OFFSET)
|
||||
#define MXC_CCM_CCGR2_IPSYNC_IP2APB_TZASC1_IPGS_OFFSET 22
|
||||
#define MXC_CCM_CCGR2_IPSYNC_IP2APB_TZASC1_IPGS_MASK (3 << MXC_CCM_CCGR2_IPSYNC_IP2APB_TZASC1_IPGS_OFFSET)
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define MXC_CCM_CCGR2_LCD_OFFSET 28
|
||||
#define MXC_CCM_CCGR2_LCD_MASK (3 << MXC_CCM_CCGR2_LCD_OFFSET)
|
||||
#define MXC_CCM_CCGR2_PXP_OFFSET 30
|
||||
#define MXC_CCM_CCGR2_PXP_MASK (3 << MXC_CCM_CCGR2_PXP_OFFSET)
|
||||
#else
|
||||
#define MXC_CCM_CCGR2_IPSYNC_IP2APB_TZASC2_IPG_OFFSET 24
|
||||
#define MXC_CCM_CCGR2_IPSYNC_IP2APB_TZASC2_IPG_MASK (3 << MXC_CCM_CCGR2_IPSYNC_IP2APB_TZASC2_IPG_OFFSET)
|
||||
#define MXC_CCM_CCGR2_IPSYNC_VDOA_IPG_MASTER_CLK_OFFSET 26
|
||||
#define MXC_CCM_CCGR2_IPSYNC_VDOA_IPG_MASTER_CLK_MASK (3 << MXC_CCM_CCGR2_IPSYNC_VDOA_IPG_MASTER_CLK_OFFSET)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define MXC_CCM_CCGR3_M4_OFFSET 2
|
||||
#define MXC_CCM_CCGR3_M4_MASK (3 << MXC_CCM_CCGR3_M4_OFFSET)
|
||||
#define MXC_CCM_CCGR3_ENET_OFFSET 4
|
||||
#define MXC_CCM_CCGR3_ENET_MASK (3 << MXC_CCM_CCGR3_ENET_OFFSET)
|
||||
#define MXC_CCM_CCGR3_QSPI_OFFSET 14
|
||||
#define MXC_CCM_CCGR3_QSPI_MASK (3 << MXC_CCM_CCGR3_QSPI_OFFSET)
|
||||
#else
|
||||
#define MXC_CCM_CCGR3_IPU1_IPU_OFFSET 0
|
||||
#define MXC_CCM_CCGR3_IPU1_IPU_MASK (3 << MXC_CCM_CCGR3_IPU1_IPU_OFFSET)
|
||||
#define MXC_CCM_CCGR3_IPU1_IPU_DI0_OFFSET 2
|
||||
#define MXC_CCM_CCGR3_IPU1_IPU_DI0_MASK (3 << MXC_CCM_CCGR3_IPU1_IPU_DI0_OFFSET)
|
||||
#define MXC_CCM_CCGR3_IPU1_IPU_DI1_OFFSET 4
|
||||
#define MXC_CCM_CCGR3_IPU1_IPU_DI1_MASK (3 << MXC_CCM_CCGR3_IPU1_IPU_DI1_OFFSET)
|
||||
#endif
|
||||
#define MXC_CCM_CCGR3_IPU2_IPU_OFFSET 6
|
||||
#define MXC_CCM_CCGR3_IPU2_IPU_MASK (3 << MXC_CCM_CCGR3_IPU2_IPU_OFFSET)
|
||||
#define MXC_CCM_CCGR3_IPU2_IPU_DI0_OFFSET 8
|
||||
@@ -506,29 +637,43 @@ struct mxc_ccm_reg {
|
||||
#define MXC_CCM_CCGR3_IPU2_IPU_DI1_MASK (3 << MXC_CCM_CCGR3_IPU2_IPU_DI1_OFFSET)
|
||||
#define MXC_CCM_CCGR3_LDB_DI0_OFFSET 12
|
||||
#define MXC_CCM_CCGR3_LDB_DI0_MASK (3 << MXC_CCM_CCGR3_LDB_DI0_OFFSET)
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define MXC_CCM_CCGR3_QSPI1_OFFSET 14
|
||||
#define MXC_CCM_CCGR3_QSPI1_MASK (3 << MXC_CCM_CCGR3_QSPI1_OFFSET)
|
||||
#else
|
||||
#define MXC_CCM_CCGR3_LDB_DI1_OFFSET 14
|
||||
#define MXC_CCM_CCGR3_LDB_DI1_MASK (3 << MXC_CCM_CCGR3_LDB_DI1_OFFSET)
|
||||
#define MXC_CCM_CCGR3_MIPI_CORE_CFG_OFFSET 16
|
||||
#define MXC_CCM_CCGR3_MIPI_CORE_CFG_MASK (3 << MXC_CCM_CCGR3_MIPI_CORE_CFG_OFFSET)
|
||||
#endif
|
||||
#define MXC_CCM_CCGR3_MLB_OFFSET 18
|
||||
#define MXC_CCM_CCGR3_MLB_MASK (3 << MXC_CCM_CCGR3_MLB_OFFSET)
|
||||
#define MXC_CCM_CCGR3_MMDC_CORE_ACLK_FAST_CORE_P0_OFFSET 20
|
||||
#define MXC_CCM_CCGR3_MMDC_CORE_ACLK_FAST_CORE_P0_MASK (3 << MXC_CCM_CCGR3_MMDC_CORE_ACLK_FAST_CORE_P0_OFFSET)
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define MXC_CCM_CCGR3_MMDC_CORE_ACLK_FAST_CORE_P1_OFFSET 22
|
||||
#define MXC_CCM_CCGR3_MMDC_CORE_ACLK_FAST_CORE_P1_MASK (3 << MXC_CCM_CCGR3_MMDC_CORE_ACLK_FAST_CORE_P1_OFFSET)
|
||||
#endif
|
||||
#define MXC_CCM_CCGR3_MMDC_CORE_IPG_CLK_P0_OFFSET 24
|
||||
#define MXC_CCM_CCGR3_MMDC_CORE_IPG_CLK_P0_MASK (3 << MXC_CCM_CCGR3_MMDC_CORE_IPG_CLK_P0_OFFSET)
|
||||
#define MXC_CCM_CCGR3_MMDC_CORE_IPG_CLK_P1_OFFSET 26
|
||||
#define MXC_CCM_CCGR3_MMDC_CORE_IPG_CLK_P1_MASK (3 << MXC_CCM_CCGR3_MMDC_CORE_IPG_CLK_P1_OFFSET)
|
||||
#define MXC_CCM_CCGR3_OCRAM_OFFSET 28
|
||||
#define MXC_CCM_CCGR3_OCRAM_MASK (3 << MXC_CCM_CCGR3_OCRAM_OFFSET)
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define MXC_CCM_CCGR3_OPENVGAXICLK_OFFSET 30
|
||||
#define MXC_CCM_CCGR3_OPENVGAXICLK_MASK (3 << MXC_CCM_CCGR3_OPENVGAXICLK_OFFSET)
|
||||
#endif
|
||||
|
||||
#define MXC_CCM_CCGR4_PCIE_OFFSET 0
|
||||
#define MXC_CCM_CCGR4_PCIE_MASK (3 << MXC_CCM_CCGR4_PCIE_OFFSET)
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define MXC_CCM_CCGR4_QSPI2_ENFC_OFFSET 10
|
||||
#define MXC_CCM_CCGR4_QSPI2_ENFC_MASK (3 << MXC_CCM_CCGR4_QSPI2_ENFC_OFFSET)
|
||||
#else
|
||||
#define MXC_CCM_CCGR4_PL301_MX6QFAST1_S133_OFFSET 8
|
||||
#define MXC_CCM_CCGR4_PL301_MX6QFAST1_S133_MASK (3 << MXC_CCM_CCGR4_PL301_MX6QFAST1_S133_OFFSET)
|
||||
#endif
|
||||
#define MXC_CCM_CCGR4_PL301_MX6QPER1_BCH_OFFSET 12
|
||||
#define MXC_CCM_CCGR4_PL301_MX6QPER1_BCH_MASK (3 << MXC_CCM_CCGR4_PL301_MX6QPER1_BCH_OFFSET)
|
||||
#define MXC_CCM_CCGR4_PL301_MX6QPER2_MAINCLK_ENABLE_OFFSET 14
|
||||
@@ -552,8 +697,10 @@ struct mxc_ccm_reg {
|
||||
|
||||
#define MXC_CCM_CCGR5_ROM_OFFSET 0
|
||||
#define MXC_CCM_CCGR5_ROM_MASK (3 << MXC_CCM_CCGR5_ROM_OFFSET)
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define MXC_CCM_CCGR5_SATA_OFFSET 4
|
||||
#define MXC_CCM_CCGR5_SATA_MASK (3 << MXC_CCM_CCGR5_SATA_OFFSET)
|
||||
#endif
|
||||
#define MXC_CCM_CCGR5_SDMA_OFFSET 6
|
||||
#define MXC_CCM_CCGR5_SDMA_MASK (3 << MXC_CCM_CCGR5_SDMA_OFFSET)
|
||||
#define MXC_CCM_CCGR5_SPBA_OFFSET 12
|
||||
@@ -570,6 +717,12 @@ struct mxc_ccm_reg {
|
||||
#define MXC_CCM_CCGR5_UART_MASK (3 << MXC_CCM_CCGR5_UART_OFFSET)
|
||||
#define MXC_CCM_CCGR5_UART_SERIAL_OFFSET 26
|
||||
#define MXC_CCM_CCGR5_UART_SERIAL_MASK (3 << MXC_CCM_CCGR5_UART_SERIAL_OFFSET)
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define MXC_CCM_CCGR5_SAI1_OFFSET 20
|
||||
#define MXC_CCM_CCGR5_SAI1_MASK (3 << MXC_CCM_CCGR5_SAI1_OFFSET)
|
||||
#define MXC_CCM_CCGR5_SAI2_OFFSET 30
|
||||
#define MXC_CCM_CCGR5_SAI2_MASK (3 << MXC_CCM_CCGR5_SAI2_OFFSET)
|
||||
#endif
|
||||
|
||||
#define MXC_CCM_CCGR6_USBOH3_OFFSET 0
|
||||
#define MXC_CCM_CCGR6_USBOH3_MASK (3 << MXC_CCM_CCGR6_USBOH3_OFFSET)
|
||||
@@ -583,8 +736,25 @@ struct mxc_ccm_reg {
|
||||
#define MXC_CCM_CCGR6_USDHC4_MASK (3 << MXC_CCM_CCGR6_USDHC4_OFFSET)
|
||||
#define MXC_CCM_CCGR6_EMI_SLOW_OFFSET 10
|
||||
#define MXC_CCM_CCGR6_EMI_SLOW_MASK (3 << MXC_CCM_CCGR6_EMI_SLOW_OFFSET)
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define MXC_CCM_CCGR6_PWM8_OFFSET 16
|
||||
#define MXC_CCM_CCGR6_PWM8_MASK (3 << MXC_CCM_CCGR6_PWM8_OFFSET)
|
||||
#define MXC_CCM_CCGR6_VADC_OFFSET 20
|
||||
#define MXC_CCM_CCGR6_VADC_MASK (3 << MXC_CCM_CCGR6_VADC_OFFSET)
|
||||
#define MXC_CCM_CCGR6_GIS_OFFSET 22
|
||||
#define MXC_CCM_CCGR6_GIS_MASK (3 << MXC_CCM_CCGR6_GIS_OFFSET)
|
||||
#define MXC_CCM_CCGR6_I2C4_OFFSET 24
|
||||
#define MXC_CCM_CCGR6_I2C4_MASK (3 << MXC_CCM_CCGR6_I2C4_OFFSET)
|
||||
#define MXC_CCM_CCGR6_PWM5_OFFSET 26
|
||||
#define MXC_CCM_CCGR6_PWM5_MASK (3 << MXC_CCM_CCGR6_PWM5_OFFSET)
|
||||
#define MXC_CCM_CCGR6_PWM6_OFFSET 28
|
||||
#define MXC_CCM_CCGR6_PWM6_MASK (3 << MXC_CCM_CCGR6_PWM6_OFFSET)
|
||||
#define MXC_CCM_CCGR6_PWM7_OFFSET 30
|
||||
#define MXC_CCM_CCGR6_PWM7_MASK (3 << MXC_CCM_CCGR6_PWM7_OFFSET)
|
||||
#else
|
||||
#define MXC_CCM_CCGR6_VDOAXICLK_OFFSET 12
|
||||
#define MXC_CCM_CCGR6_VDOAXICLK_MASK (3 << MXC_CCM_CCGR6_VDOAXICLK_OFFSET)
|
||||
#endif
|
||||
|
||||
#define BM_ANADIG_PLL_SYS_LOCK 0x80000000
|
||||
#define BP_ANADIG_PLL_SYS_RSVD0 20
|
||||
@@ -811,6 +981,7 @@ struct mxc_ccm_reg {
|
||||
#define BM_ANADIG_PLL_ENET_RSVD1 0x7FE00000
|
||||
#define BF_ANADIG_PLL_ENET_RSVD1(v) \
|
||||
(((v) << 21) & BM_ANADIG_PLL_ENET_RSVD1)
|
||||
#define BM_ANADIG_PLL_ENET_REF_25M_ENABLE 0x00200000
|
||||
#define BM_ANADIG_PLL_ENET_ENABLE_SATA 0x00100000
|
||||
#define BM_ANADIG_PLL_ENET_ENABLE_PCIE 0x00080000
|
||||
#define BM_ANADIG_PLL_ENET_PFD_OFFSET_EN 0x00040000
|
||||
|
||||
@@ -19,6 +19,19 @@
|
||||
#define GPU_2D_ARB_END_ADDR 0x02203FFF
|
||||
#define OPENVG_ARB_BASE_ADDR 0x02204000
|
||||
#define OPENVG_ARB_END_ADDR 0x02207FFF
|
||||
#elif CONFIG_MX6SX
|
||||
#define CAAM_ARB_BASE_ADDR 0x00100000
|
||||
#define CAAM_ARB_END_ADDR 0x00107FFF
|
||||
#define GPU_ARB_BASE_ADDR 0x01800000
|
||||
#define GPU_ARB_END_ADDR 0x01803FFF
|
||||
#define APBH_DMA_ARB_BASE_ADDR 0x01804000
|
||||
#define APBH_DMA_ARB_END_ADDR 0x0180BFFF
|
||||
#define M4_BOOTROM_BASE_ADDR 0x007F8000
|
||||
|
||||
#define MXS_APBH_BASE APBH_DMA_ARB_BASE_ADDR
|
||||
#define MXS_GPMI_BASE (APBH_DMA_ARB_BASE_ADDR + 0x02000)
|
||||
#define MXS_BCH_BASE (APBH_DMA_ARB_BASE_ADDR + 0x04000)
|
||||
|
||||
#else
|
||||
#define CAAM_ARB_BASE_ADDR 0x00100000
|
||||
#define CAAM_ARB_END_ADDR 0x00103FFF
|
||||
@@ -39,14 +52,27 @@
|
||||
#define MXS_BCH_BASE (APBH_DMA_ARB_BASE_ADDR + 0x04000)
|
||||
|
||||
/* GPV - PL301 configuration ports */
|
||||
#ifdef CONFIG_MX6SL
|
||||
#if (defined(CONFIG_MX6SL) || defined(CONFIG_MX6SX))
|
||||
#define GPV2_BASE_ADDR 0x00D00000
|
||||
#else
|
||||
#define GPV2_BASE_ADDR 0x00200000
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define GPV3_BASE_ADDR 0x00E00000
|
||||
#define GPV4_BASE_ADDR 0x00F00000
|
||||
#define GPV5_BASE_ADDR 0x01000000
|
||||
#define GPV6_BASE_ADDR 0x01100000
|
||||
#define PCIE_ARB_BASE_ADDR 0x08000000
|
||||
#define PCIE_ARB_END_ADDR 0x08FFFFFF
|
||||
|
||||
#else
|
||||
#define GPV3_BASE_ADDR 0x00300000
|
||||
#define GPV4_BASE_ADDR 0x00800000
|
||||
#define PCIE_ARB_BASE_ADDR 0x01000000
|
||||
#define PCIE_ARB_END_ADDR 0x01FFFFFF
|
||||
#endif
|
||||
|
||||
#define IRAM_BASE_ADDR 0x00900000
|
||||
#define SCU_BASE_ADDR 0x00A00000
|
||||
#define IC_INTERFACES_BASE_ADDR 0x00A00100
|
||||
@@ -56,13 +82,21 @@
|
||||
#define L2_PL310_BASE 0x00A02000
|
||||
#define GPV0_BASE_ADDR 0x00B00000
|
||||
#define GPV1_BASE_ADDR 0x00C00000
|
||||
#define PCIE_ARB_BASE_ADDR 0x01000000
|
||||
#define PCIE_ARB_END_ADDR 0x01FFFFFF
|
||||
|
||||
#define AIPS1_ARB_BASE_ADDR 0x02000000
|
||||
#define AIPS1_ARB_END_ADDR 0x020FFFFF
|
||||
#define AIPS2_ARB_BASE_ADDR 0x02100000
|
||||
#define AIPS2_ARB_END_ADDR 0x021FFFFF
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define AIPS3_BASE_ADDR 0x02200000
|
||||
#define AIPS3_END_ADDR 0x022FFFFF
|
||||
#define WEIM_ARB_BASE_ADDR 0x50000000
|
||||
#define WEIM_ARB_END_ADDR 0x57FFFFFF
|
||||
#define QSPI1_ARB_BASE_ADDR 0x60000000
|
||||
#define QSPI1_ARB_END_ADDR 0x6FFFFFFF
|
||||
#define QSPI2_ARB_BASE_ADDR 0x70000000
|
||||
#define QSPI2_ARB_END_ADDR 0x7FFFFFFF
|
||||
#else
|
||||
#define SATA_ARB_BASE_ADDR 0x02200000
|
||||
#define SATA_ARB_END_ADDR 0x02203FFF
|
||||
#define OPENVG_ARB_BASE_ADDR 0x02204000
|
||||
@@ -75,8 +109,9 @@
|
||||
#define IPU2_ARB_END_ADDR 0x02BFFFFF
|
||||
#define WEIM_ARB_BASE_ADDR 0x08000000
|
||||
#define WEIM_ARB_END_ADDR 0x0FFFFFFF
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MX6SL
|
||||
#if (defined(CONFIG_MX6SL) || defined(CONFIG_MX6SX))
|
||||
#define MMDC0_ARB_BASE_ADDR 0x80000000
|
||||
#define MMDC0_ARB_END_ADDR 0xFFFFFFFF
|
||||
#define MMDC1_ARB_BASE_ADDR 0xC0000000
|
||||
@@ -88,8 +123,10 @@
|
||||
#define MMDC1_ARB_END_ADDR 0xFFFFFFFF
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define IPU_SOC_BASE_ADDR IPU1_ARB_BASE_ADDR
|
||||
#define IPU_SOC_OFFSET 0x00200000
|
||||
#endif
|
||||
|
||||
/* Defines for Blocks connected via AIPS (SkyBlue) */
|
||||
#define ATZ1_BASE_ADDR AIPS1_ARB_BASE_ADDR
|
||||
@@ -112,7 +149,9 @@
|
||||
#define UART3_IPS_BASE_ADDR (ATZ1_BASE_ADDR + 0x34000)
|
||||
#define UART4_IPS_BASE_ADDR (ATZ1_BASE_ADDR + 0x38000)
|
||||
#else
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define ECSPI5_BASE_ADDR (ATZ1_BASE_ADDR + 0x18000)
|
||||
#endif
|
||||
#define UART1_BASE (ATZ1_BASE_ADDR + 0x20000)
|
||||
#define ESAI1_BASE_ADDR (ATZ1_BASE_ADDR + 0x24000)
|
||||
#define SSI1_BASE_ADDR (ATZ1_BASE_ADDR + 0x28000)
|
||||
@@ -121,8 +160,10 @@
|
||||
#define ASRC_BASE_ADDR (ATZ1_BASE_ADDR + 0x34000)
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define SPBA_BASE_ADDR (ATZ1_BASE_ADDR + 0x3C000)
|
||||
#define VPU_BASE_ADDR (ATZ1_BASE_ADDR + 0x40000)
|
||||
#endif
|
||||
#define AIPS1_ON_BASE_ADDR (ATZ1_BASE_ADDR + 0x7C000)
|
||||
|
||||
#define AIPS1_OFF_BASE_ADDR (ATZ1_BASE_ADDR + 0x80000)
|
||||
@@ -157,6 +198,13 @@
|
||||
#define CSI_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x64000)
|
||||
#define SIPIX_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x68000)
|
||||
#define SDMA_PORT_HOST_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x6C000)
|
||||
#elif CONFIG_MX6SX
|
||||
#define CANFD1_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x68000)
|
||||
#define SDMA_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x6C000)
|
||||
#define CANFD2_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x70000)
|
||||
#define SEMAPHORE1_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x74000)
|
||||
#define SEMAPHORE2_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x78000)
|
||||
#define RDC_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x7C000)
|
||||
#else
|
||||
#define DCIC1_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x64000)
|
||||
#define DCIC2_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x68000)
|
||||
@@ -193,6 +241,8 @@
|
||||
#define MMDC_P0_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x30000)
|
||||
#ifdef CONFIG_MX6SL
|
||||
#define RNGB_IPS_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x34000)
|
||||
#elif CONFIG_MX6SX
|
||||
#define ENET2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x34000)
|
||||
#else
|
||||
#define MMDC_P1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x34000)
|
||||
#endif
|
||||
@@ -202,13 +252,28 @@
|
||||
#define CSU_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x40000)
|
||||
#define IP2APB_PERFMON1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x44000)
|
||||
#define IP2APB_PERFMON2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x48000)
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define DEBUG_MONITOR_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x4C000)
|
||||
#else
|
||||
#define IP2APB_PERFMON3_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x4C000)
|
||||
#endif
|
||||
#define IP2APB_TZASC1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x50000)
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define SAI1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x54000)
|
||||
#else
|
||||
#define IP2APB_TZASC2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x54000)
|
||||
#endif
|
||||
#define AUDMUX_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x58000)
|
||||
#define AUDMUX_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x58000)
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define SAI2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x5C000)
|
||||
#define QSPI1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x60000)
|
||||
#define QSPI2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x64000)
|
||||
#else
|
||||
#define MIPI_CSI2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x5C000)
|
||||
#define MIPI_DSI_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x60000)
|
||||
#define VDOA_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x64000)
|
||||
#endif
|
||||
#define UART2_BASE (AIPS2_OFF_BASE_ADDR + 0x68000)
|
||||
#define UART3_BASE (AIPS2_OFF_BASE_ADDR + 0x6C000)
|
||||
#define UART4_BASE (AIPS2_OFF_BASE_ADDR + 0x70000)
|
||||
@@ -216,10 +281,42 @@
|
||||
#define IP2APB_USBPHY1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x78000)
|
||||
#define IP2APB_USBPHY2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x7C000)
|
||||
|
||||
#ifdef CONFIG_MX6SX
|
||||
#define GIS_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x04000)
|
||||
#define DCIC1_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x0C000)
|
||||
#define DCIC2_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x10000)
|
||||
#define CSI1_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x14000)
|
||||
#define PXP_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x18000)
|
||||
#define CSI2_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x1C000)
|
||||
#define LCDIF1_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x20000)
|
||||
#define LCDIF2_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x24000)
|
||||
#define VADC_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x28000)
|
||||
#define VDEC_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x2C000)
|
||||
#define SPBA_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x3C000)
|
||||
#define AIPS3_CONFIG_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x7C000)
|
||||
#define ADC1_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x80000)
|
||||
#define ADC2_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x84000)
|
||||
#define WDOG3_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x88000)
|
||||
#define ECSPI5_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x8C000)
|
||||
#define HS_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x90000)
|
||||
#define MU_MCU_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x94000)
|
||||
#define CANFD_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x98000)
|
||||
#define MU_DSP_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x9C000)
|
||||
#define UART6_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0xA0000)
|
||||
#define PWM5_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0xA4000)
|
||||
#define PWM6_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0xA8000)
|
||||
#define PWM7_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0xAC000)
|
||||
#define PWM8_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0xB0000)
|
||||
#endif
|
||||
|
||||
#define CHIP_REV_1_0 0x10
|
||||
#define CHIP_REV_1_2 0x12
|
||||
#define CHIP_REV_1_5 0x15
|
||||
#ifndef CONFIG_MX6SX
|
||||
#define IRAM_SIZE 0x00040000
|
||||
#else
|
||||
#define IRAM_SIZE 0x00020000
|
||||
#endif
|
||||
#define FEC_QUIRK_ENET_MAC
|
||||
|
||||
#if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__))
|
||||
@@ -227,6 +324,19 @@
|
||||
|
||||
extern void imx_get_mac_from_fuse(int dev_id, unsigned char *mac);
|
||||
|
||||
#define SRC_SCR_CORE_1_RESET_OFFSET 14
|
||||
#define SRC_SCR_CORE_1_RESET_MASK (1<<SRC_SCR_CORE_1_RESET_OFFSET)
|
||||
#define SRC_SCR_CORE_2_RESET_OFFSET 15
|
||||
#define SRC_SCR_CORE_2_RESET_MASK (1<<SRC_SCR_CORE_2_RESET_OFFSET)
|
||||
#define SRC_SCR_CORE_3_RESET_OFFSET 16
|
||||
#define SRC_SCR_CORE_3_RESET_MASK (1<<SRC_SCR_CORE_3_RESET_OFFSET)
|
||||
#define SRC_SCR_CORE_1_ENABLE_OFFSET 22
|
||||
#define SRC_SCR_CORE_1_ENABLE_MASK (1<<SRC_SCR_CORE_1_ENABLE_OFFSET)
|
||||
#define SRC_SCR_CORE_2_ENABLE_OFFSET 23
|
||||
#define SRC_SCR_CORE_2_ENABLE_MASK (1<<SRC_SCR_CORE_2_ENABLE_OFFSET)
|
||||
#define SRC_SCR_CORE_3_ENABLE_OFFSET 24
|
||||
#define SRC_SCR_CORE_3_ENABLE_MASK (1<<SRC_SCR_CORE_3_ENABLE_OFFSET)
|
||||
|
||||
/* System Reset Controller (SRC) */
|
||||
struct src {
|
||||
u32 scr;
|
||||
@@ -251,6 +361,8 @@ struct src {
|
||||
/* GPR1 bitfields */
|
||||
#define IOMUXC_GPR1_ENET_CLK_SEL_OFFSET 21
|
||||
#define IOMUXC_GPR1_ENET_CLK_SEL_MASK (1 << IOMUXC_GPR1_ENET_CLK_SEL_OFFSET)
|
||||
#define IOMUXC_GPR1_USB_OTG_ID_OFFSET 13
|
||||
#define IOMUXC_GPR1_USB_OTG_ID_SEL_MASK (1 << IOMUXC_GPR1_USB_OTG_ID_OFFSET)
|
||||
|
||||
/* GPR3 bitfields */
|
||||
#define IOMUXC_GPR3_GPU_DBG_OFFSET 29
|
||||
@@ -301,9 +413,10 @@ struct src {
|
||||
|
||||
|
||||
struct iomuxc {
|
||||
#ifdef CONFIG_MX6SX
|
||||
u8 reserved[0x4000];
|
||||
#endif
|
||||
u32 gpr[14];
|
||||
u32 omux[5];
|
||||
/* mux and pad registers */
|
||||
};
|
||||
|
||||
#define IOMUXC_GPR2_COUNTER_RESET_VAL_OFFSET 20
|
||||
@@ -403,6 +516,7 @@ struct cspi_regs {
|
||||
#define MXC_CSPICTRL_RXOVF (1 << 6)
|
||||
#define MXC_CSPIPERIOD_32KHZ (1 << 15)
|
||||
#define MAX_SPI_BYTES 32
|
||||
#define SPI_MAX_NUM 4
|
||||
|
||||
/* Bit position inside CTRL register to be associated with SS */
|
||||
#define MXC_CSPICTRL_CHAN 18
|
||||
@@ -473,6 +587,22 @@ struct fuse_bank0_regs {
|
||||
u32 rsvd7[4];
|
||||
};
|
||||
|
||||
#ifdef CONFIG_MX6SX
|
||||
struct fuse_bank4_regs {
|
||||
u32 sjc_resp_low;
|
||||
u32 rsvd0[3];
|
||||
u32 sjc_resp_high;
|
||||
u32 rsvd1[3];
|
||||
u32 mac_addr_low;
|
||||
u32 rsvd2[3];
|
||||
u32 mac_addr_high;
|
||||
u32 rsvd3[3];
|
||||
u32 mac_addr2;
|
||||
u32 rsvd4[7];
|
||||
u32 gp1;
|
||||
u32 rsvd5[7];
|
||||
};
|
||||
#else
|
||||
struct fuse_bank4_regs {
|
||||
u32 sjc_resp_low;
|
||||
u32 rsvd0[3];
|
||||
@@ -487,6 +617,7 @@ struct fuse_bank4_regs {
|
||||
u32 gp2;
|
||||
u32 rsvd5[3];
|
||||
};
|
||||
#endif
|
||||
|
||||
struct aipstz_regs {
|
||||
u32 mprot0;
|
||||
@@ -650,15 +781,6 @@ struct anatop_regs {
|
||||
#define ANATOP_PFD_CLKGATE_SHIFT(n) (7+((n)*8))
|
||||
#define ANATOP_PFD_CLKGATE_MASK(n) (1<<ANATOP_PFD_CLKGATE_SHIFT(n))
|
||||
|
||||
struct iomuxc_base_regs {
|
||||
u32 gpr[14]; /* 0x000 */
|
||||
u32 obsrv[5]; /* 0x038 */
|
||||
u32 swmux_ctl[197]; /* 0x04c */
|
||||
u32 swpad_ctl[250]; /* 0x360 */
|
||||
u32 swgrp[26]; /* 0x748 */
|
||||
u32 daisy[104]; /* 0x7b0..94c */
|
||||
};
|
||||
|
||||
struct wdog_regs {
|
||||
u16 wcr; /* Control */
|
||||
u16 wsr; /* Service */
|
||||
@@ -667,5 +789,21 @@ struct wdog_regs {
|
||||
u16 wmcr; /* Miscellaneous Control */
|
||||
};
|
||||
|
||||
#define PWMCR_PRESCALER(x) (((x - 1) & 0xFFF) << 4)
|
||||
#define PWMCR_DOZEEN (1 << 24)
|
||||
#define PWMCR_WAITEN (1 << 23)
|
||||
#define PWMCR_DBGEN (1 << 22)
|
||||
#define PWMCR_CLKSRC_IPG_HIGH (2 << 16)
|
||||
#define PWMCR_CLKSRC_IPG (1 << 16)
|
||||
#define PWMCR_EN (1 << 0)
|
||||
|
||||
struct pwm_regs {
|
||||
u32 cr;
|
||||
u32 sr;
|
||||
u32 ir;
|
||||
u32 sar;
|
||||
u32 pr;
|
||||
u32 cnr;
|
||||
};
|
||||
#endif /* __ASSEMBLER__*/
|
||||
#endif /* __ASM_ARCH_MX6_IMX_REGS_H__ */
|
||||
|
||||
@@ -65,6 +65,16 @@
|
||||
#define IOMUX_GPR1_FEC_MASK (IOMUX_GPR1_FEC_CLOCK_MUX1_SEL_MASK \
|
||||
| IOMUX_GPR1_FEC_CLOCK_MUX2_SEL_MASK)
|
||||
|
||||
#define IOMUX_GPR1_FEC1_CLOCK_MUX1_SEL_MASK (0x1 << 17)
|
||||
#define IOMUX_GPR1_FEC1_CLOCK_MUX2_SEL_MASK (0x1 << 13)
|
||||
#define IOMUX_GPR1_FEC1_MASK (IOMUX_GPR1_FEC1_CLOCK_MUX1_SEL_MASK \
|
||||
| IOMUX_GPR1_FEC1_CLOCK_MUX2_SEL_MASK)
|
||||
|
||||
#define IOMUX_GPR1_FEC2_CLOCK_MUX1_SEL_MASK (0x1 << 18)
|
||||
#define IOMUX_GPR1_FEC2_CLOCK_MUX2_SEL_MASK (0x1 << 14)
|
||||
#define IOMUX_GPR1_FEC2_MASK (IOMUX_GPR1_FEC2_CLOCK_MUX1_SEL_MASK \
|
||||
| IOMUX_GPR1_FEC2_CLOCK_MUX2_SEL_MASK)
|
||||
|
||||
#define IOMUXC_GPR13_SATA_PHY_8_RXEQ_0P5DB (0<<24)
|
||||
#define IOMUXC_GPR13_SATA_PHY_8_RXEQ_1P0DB (1<<24)
|
||||
#define IOMUXC_GPR13_SATA_PHY_8_RXEQ_1P5DB (2<<24)
|
||||
|
||||
@@ -13,7 +13,11 @@
|
||||
#if defined(CONFIG_MX6DL) || defined(CONFIG_MX6S)
|
||||
#include "mx6dl-ddr.h"
|
||||
#else
|
||||
#ifdef CONFIG_MX6SX
|
||||
#include "mx6sx-ddr.h"
|
||||
#else
|
||||
#error "Please select cpu"
|
||||
#endif /* CONFIG_MX6SX */
|
||||
#endif /* CONFIG_MX6DL or CONFIG_MX6S */
|
||||
#endif /* CONFIG_MX6Q */
|
||||
#else
|
||||
|
||||
@@ -35,6 +35,8 @@ enum {
|
||||
};
|
||||
#elif defined(CONFIG_MX6SL)
|
||||
#include "mx6sl_pins.h"
|
||||
#elif defined(CONFIG_MX6SX)
|
||||
#include "mx6sx_pins.h"
|
||||
#else
|
||||
#error "Please select cpu"
|
||||
#endif /* CONFIG_MX6Q */
|
||||
|
||||
45
arch/arm/include/asm/arch-mx6/mx6sx-ddr.h
Normal file
45
arch/arm/include/asm/arch-mx6/mx6sx-ddr.h
Normal file
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright (C) 2014 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_MX6SX_DDR_H__
|
||||
#define __ASM_ARCH_MX6SX_DDR_H__
|
||||
|
||||
#ifndef CONFIG_MX6SX
|
||||
#error "wrong CPU"
|
||||
#endif
|
||||
|
||||
#define MX6_IOM_DRAM_DQM0 0x020e02ec
|
||||
#define MX6_IOM_DRAM_DQM1 0x020e02f0
|
||||
#define MX6_IOM_DRAM_DQM2 0x020e02f4
|
||||
#define MX6_IOM_DRAM_DQM3 0x020e02f8
|
||||
|
||||
#define MX6_IOM_DRAM_RAS 0x020e02fc
|
||||
#define MX6_IOM_DRAM_CAS 0x020e0300
|
||||
#define MX6_IOM_DRAM_SDODT0 0x020e0310
|
||||
#define MX6_IOM_DRAM_SDODT1 0x020e0314
|
||||
#define MX6_IOM_DRAM_SDBA2 0x020e0320
|
||||
#define MX6_IOM_DRAM_SDCKE0 0x020e0324
|
||||
#define MX6_IOM_DRAM_SDCKE1 0x020e0328
|
||||
#define MX6_IOM_DRAM_SDCLK_0 0x020e032c
|
||||
#define MX6_IOM_DRAM_RESET 0x020e0340
|
||||
|
||||
#define MX6_IOM_DRAM_SDQS0 0x020e0330
|
||||
#define MX6_IOM_DRAM_SDQS1 0x020e0334
|
||||
#define MX6_IOM_DRAM_SDQS2 0x020e0338
|
||||
#define MX6_IOM_DRAM_SDQS3 0x020e033c
|
||||
|
||||
#define MX6_IOM_GRP_ADDDS 0x020e05f4
|
||||
#define MX6_IOM_DDRMODE_CTL 0x020e05f8
|
||||
#define MX6_IOM_GRP_DDRPKE 0x020e05fc
|
||||
#define MX6_IOM_GRP_DDRMODE 0x020e0608
|
||||
#define MX6_IOM_GRP_B0DS 0x020e060c
|
||||
#define MX6_IOM_GRP_B1DS 0x020e0610
|
||||
#define MX6_IOM_GRP_CTLDS 0x020e0614
|
||||
#define MX6_IOM_GRP_DDR_TYPE 0x020e0618
|
||||
#define MX6_IOM_GRP_B2DS 0x020e061c
|
||||
#define MX6_IOM_GRP_B3DS 0x020e0620
|
||||
|
||||
#endif /*__ASM_ARCH_MX6SX_DDR_H__ */
|
||||
1675
arch/arm/include/asm/arch-mx6/mx6sx_pins.h
Normal file
1675
arch/arm/include/asm/arch-mx6/mx6sx_pins.h
Normal file
File diff suppressed because it is too large
Load Diff
@@ -14,6 +14,7 @@
|
||||
#define soc_rev() (get_cpu_rev() & 0xFF)
|
||||
#define is_soc_rev(rev) (soc_rev() - rev)
|
||||
|
||||
u32 get_nr_cpus(void);
|
||||
u32 get_cpu_rev(void);
|
||||
|
||||
/* returns MXC_CPU_ value */
|
||||
|
||||
Reference in New Issue
Block a user