diff options
Diffstat (limited to 'arch/arm/include/asm/arch-zynq')
| -rw-r--r-- | arch/arm/include/asm/arch-zynq/clk.h | 29 | ||||
| -rw-r--r-- | arch/arm/include/asm/arch-zynq/hardware.h | 40 | ||||
| -rw-r--r-- | arch/arm/include/asm/arch-zynq/spl.h | 18 | ||||
| -rw-r--r-- | arch/arm/include/asm/arch-zynq/sys_proto.h | 2 | 
4 files changed, 86 insertions, 3 deletions
diff --git a/arch/arm/include/asm/arch-zynq/clk.h b/arch/arm/include/asm/arch-zynq/clk.h new file mode 100644 index 000000000..250c5bc07 --- /dev/null +++ b/arch/arm/include/asm/arch-zynq/clk.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2013 Xilinx Inc. + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + +#ifndef _ZYNQ_CLK_H_ +#define _ZYNQ_CLK_H_ + +enum zynq_clk { +	armpll_clk, ddrpll_clk, iopll_clk, +	cpu_6or4x_clk, cpu_3or2x_clk, cpu_2x_clk, cpu_1x_clk, +	ddr2x_clk, ddr3x_clk, dci_clk, +	lqspi_clk, smc_clk, pcap_clk, gem0_clk, gem1_clk, +	fclk0_clk, fclk1_clk, fclk2_clk, fclk3_clk, can0_clk, can1_clk, +	sdio0_clk, sdio1_clk, uart0_clk, uart1_clk, spi0_clk, spi1_clk, dma_clk, +	usb0_aper_clk, usb1_aper_clk, gem0_aper_clk, gem1_aper_clk, +	sdio0_aper_clk, sdio1_aper_clk, spi0_aper_clk, spi1_aper_clk, +	can0_aper_clk, can1_aper_clk, i2c0_aper_clk, i2c1_aper_clk, +	uart0_aper_clk, uart1_aper_clk, gpio_aper_clk, lqspi_aper_clk, +	smc_aper_clk, swdt_clk, dbg_trc_clk, dbg_apb_clk, clk_max}; + +void zynq_clk_early_init(void); +int zynq_clk_set_rate(enum zynq_clk clk, unsigned long rate); +unsigned long zynq_clk_get_rate(enum zynq_clk clk); +const char *zynq_clk_get_name(enum zynq_clk clk); +unsigned long get_uart_clk(int dev_id); + +#endif diff --git a/arch/arm/include/asm/arch-zynq/hardware.h b/arch/arm/include/asm/arch-zynq/hardware.h index cd6967772..39184da40 100644 --- a/arch/arm/include/asm/arch-zynq/hardware.h +++ b/arch/arm/include/asm/arch-zynq/hardware.h @@ -7,6 +7,8 @@  #ifndef _ASM_ARCH_HARDWARE_H  #define _ASM_ARCH_HARDWARE_H +#define ZYNQ_SERIAL_BASEADDR0		0xE0000000 +#define ZYNQ_SERIAL_BASEADDR1		0xE0001000  #define ZYNQ_SYS_CTRL_BASEADDR		0xF8000000  #define ZYNQ_DEV_CFG_APB_BASEADDR	0xF8007000  #define ZYNQ_SCU_BASEADDR		0xF8F00000 @@ -21,17 +23,51 @@  #define ZYNQ_SPI_BASEADDR1		0xE0007000  #define ZYNQ_DDRC_BASEADDR		0xF8006000 +/* Bootmode setting values */ +#define ZYNQ_BM_MASK		0xF +#define ZYNQ_BM_NOR		0x2 +#define ZYNQ_BM_SD		0x5 +#define ZYNQ_BM_JTAG		0x0 +  /* Reflect slcr offsets */  struct slcr_regs {  	u32 scl; /* 0x0 */  	u32 slcr_lock; /* 0x4 */  	u32 slcr_unlock; /* 0x8 */ -	u32 reserved0[75]; +	u32 reserved0_1[61]; +	u32 arm_pll_ctrl; /* 0x100 */ +	u32 ddr_pll_ctrl; /* 0x104 */ +	u32 io_pll_ctrl; /* 0x108 */ +	u32 reserved0_2[5]; +	u32 arm_clk_ctrl; /* 0x120 */ +	u32 ddr_clk_ctrl; /* 0x124 */ +	u32 dci_clk_ctrl; /* 0x128 */ +	u32 aper_clk_ctrl; /* 0x12c */ +	u32 reserved0_3[2];  	u32 gem0_rclk_ctrl; /* 0x138 */  	u32 gem1_rclk_ctrl; /* 0x13c */  	u32 gem0_clk_ctrl; /* 0x140 */  	u32 gem1_clk_ctrl; /* 0x144 */ -	u32 reserved1[46]; +	u32 smc_clk_ctrl; /* 0x148 */ +	u32 lqspi_clk_ctrl; /* 0x14c */ +	u32 sdio_clk_ctrl; /* 0x150 */ +	u32 uart_clk_ctrl; /* 0x154 */ +	u32 spi_clk_ctrl; /* 0x158 */ +	u32 can_clk_ctrl; /* 0x15c */ +	u32 can_mioclk_ctrl; /* 0x160 */ +	u32 dbg_clk_ctrl; /* 0x164 */ +	u32 pcap_clk_ctrl; /* 0x168 */ +	u32 reserved0_4[1]; +	u32 fpga0_clk_ctrl; /* 0x170 */ +	u32 reserved0_5[3]; +	u32 fpga1_clk_ctrl; /* 0x180 */ +	u32 reserved0_6[3]; +	u32 fpga2_clk_ctrl; /* 0x190 */ +	u32 reserved0_7[3]; +	u32 fpga3_clk_ctrl; /* 0x1a0 */ +	u32 reserved0_8[8]; +	u32 clk_621_true; /* 0x1c4 */ +	u32 reserved1[14];  	u32 pss_rst_ctrl; /* 0x200 */  	u32 reserved2[15];  	u32 fpga_rst_ctrl; /* 0x240 */ diff --git a/arch/arm/include/asm/arch-zynq/spl.h b/arch/arm/include/asm/arch-zynq/spl.h new file mode 100644 index 000000000..5789d28bb --- /dev/null +++ b/arch/arm/include/asm/arch-zynq/spl.h @@ -0,0 +1,18 @@ +/* + * (C) Copyright 2014 Xilinx, Inc. Michal Simek + * + * SPDX-License-Identifier:	GPL-2.0+ + */ +#ifndef	_ASM_ARCH_SPL_H_ +#define	_ASM_ARCH_SPL_H_ + +extern void ps7_init(void); + +#define BOOT_DEVICE_NONE	0 +#define BOOT_DEVICE_RAM		1 +#define BOOT_DEVICE_SPI		2 +#define BOOT_DEVICE_MMC1	3 +#define BOOT_DEVICE_MMC2	4 +#define BOOT_DEVICE_MMC2_2	5 + +#endif diff --git a/arch/arm/include/asm/arch-zynq/sys_proto.h b/arch/arm/include/asm/arch-zynq/sys_proto.h index 8f925af8a..0a2ba058f 100644 --- a/arch/arm/include/asm/arch-zynq/sys_proto.h +++ b/arch/arm/include/asm/arch-zynq/sys_proto.h @@ -10,7 +10,7 @@  extern void zynq_slcr_lock(void);  extern void zynq_slcr_unlock(void);  extern void zynq_slcr_cpu_reset(void); -extern void zynq_slcr_gem_clk_setup(u32 gem_id, u32 rclk, u32 clk); +extern void zynq_slcr_gem_clk_setup(u32 gem_id, unsigned long clk_rate);  extern void zynq_slcr_devcfg_disable(void);  extern void zynq_slcr_devcfg_enable(void);  extern u32 zynq_slcr_get_boot_mode(void);  |