diff options
Diffstat (limited to 'arch/arm/include/asm')
39 files changed, 1270 insertions, 238 deletions
| diff --git a/arch/arm/include/asm/arch-am33xx/clock.h b/arch/arm/include/asm/arch-am33xx/clock.h index 44c1e5dab..519249e4a 100644 --- a/arch/arm/include/asm/arch-am33xx/clock.h +++ b/arch/arm/include/asm/arch-am33xx/clock.h @@ -13,4 +13,102 @@  #include <asm/arch/clocks_am33xx.h> +#ifdef CONFIG_TI81XX +#include <asm/arch/clock_ti81xx.h> +#endif + +#define LDELAY 1000000 + +/*CM_<clock_domain>__CLKCTRL */ +#define CD_CLKCTRL_CLKTRCTRL_SHIFT		0 +#define CD_CLKCTRL_CLKTRCTRL_MASK		3 + +#define CD_CLKCTRL_CLKTRCTRL_NO_SLEEP		0 +#define CD_CLKCTRL_CLKTRCTRL_SW_SLEEP		1 +#define CD_CLKCTRL_CLKTRCTRL_SW_WKUP		2 + +/* CM_<clock_domain>_<module>_CLKCTRL */ +#define MODULE_CLKCTRL_MODULEMODE_SHIFT		0 +#define MODULE_CLKCTRL_MODULEMODE_MASK		3 +#define MODULE_CLKCTRL_IDLEST_SHIFT		16 +#define MODULE_CLKCTRL_IDLEST_MASK		(3 << 16) + +#define MODULE_CLKCTRL_MODULEMODE_SW_DISABLE		0 +#define MODULE_CLKCTRL_MODULEMODE_SW_EXPLICIT_EN	2 + +#define MODULE_CLKCTRL_IDLEST_FULLY_FUNCTIONAL	0 +#define MODULE_CLKCTRL_IDLEST_TRANSITIONING	1 +#define MODULE_CLKCTRL_IDLEST_IDLE		2 +#define MODULE_CLKCTRL_IDLEST_DISABLED		3 + +/* CM_CLKMODE_DPLL */ +#define CM_CLKMODE_DPLL_REGM4XEN_SHIFT		11 +#define CM_CLKMODE_DPLL_REGM4XEN_MASK		(1 << 11) +#define CM_CLKMODE_DPLL_LPMODE_EN_SHIFT		10 +#define CM_CLKMODE_DPLL_LPMODE_EN_MASK		(1 << 10) +#define CM_CLKMODE_DPLL_RELOCK_RAMP_EN_SHIFT	9 +#define CM_CLKMODE_DPLL_RELOCK_RAMP_EN_MASK	(1 << 9) +#define CM_CLKMODE_DPLL_DRIFTGUARD_EN_SHIFT	8 +#define CM_CLKMODE_DPLL_DRIFTGUARD_EN_MASK	(1 << 8) +#define CM_CLKMODE_DPLL_RAMP_RATE_SHIFT		5 +#define CM_CLKMODE_DPLL_RAMP_RATE_MASK		(0x7 << 5) +#define CM_CLKMODE_DPLL_EN_SHIFT		0 +#define CM_CLKMODE_DPLL_EN_MASK			(0x7 << 0) + +#define CM_CLKMODE_DPLL_DPLL_EN_SHIFT		0 +#define CM_CLKMODE_DPLL_DPLL_EN_MASK		7 + +#define DPLL_EN_STOP			1 +#define DPLL_EN_MN_BYPASS		4 +#define DPLL_EN_LOW_POWER_BYPASS	5 +#define DPLL_EN_LOCK			7 + +/* CM_IDLEST_DPLL fields */ +#define ST_DPLL_CLK_MASK		1 + +/* CM_CLKSEL_DPLL */ +#define CM_CLKSEL_DPLL_M_SHIFT			8 +#define CM_CLKSEL_DPLL_M_MASK			(0x7FF << 8) +#define CM_CLKSEL_DPLL_N_SHIFT			0 +#define CM_CLKSEL_DPLL_N_MASK			0x7F + +struct dpll_params { +	u32 m; +	u32 n; +	s8 m2; +	s8 m3; +	s8 m4; +	s8 m5; +	s8 m6; +}; + +struct dpll_regs { +	u32 cm_clkmode_dpll; +	u32 cm_idlest_dpll; +	u32 cm_autoidle_dpll; +	u32 cm_clksel_dpll; +	u32 cm_div_m2_dpll; +	u32 cm_div_m3_dpll; +	u32 cm_div_m4_dpll; +	u32 cm_div_m5_dpll; +	u32 cm_div_m6_dpll; +}; + +extern const struct dpll_regs dpll_mpu_regs; +extern const struct dpll_regs dpll_core_regs; +extern const struct dpll_regs dpll_per_regs; +extern const struct dpll_regs dpll_ddr_regs; +extern const struct dpll_params dpll_mpu; +extern const struct dpll_params dpll_core; +extern const struct dpll_params dpll_per; +extern const struct dpll_params dpll_ddr; + +extern struct cm_wkuppll *const cmwkup; + +const struct dpll_params *get_dpll_ddr_params(void); +void do_setup_dpll(const struct dpll_regs *, const struct dpll_params *); +void prcm_init(void); +void enable_basic_clocks(void); +void do_enable_clocks(u32 *const *, u32 *const *, u8); +  #endif diff --git a/arch/arm/include/asm/arch-am33xx/clock_ti81xx.h b/arch/arm/include/asm/arch-am33xx/clock_ti81xx.h new file mode 100644 index 000000000..f0699229a --- /dev/null +++ b/arch/arm/include/asm/arch-am33xx/clock_ti81xx.h @@ -0,0 +1,142 @@ +/* + * ti81xx.h + * + * Copyright (C) 2013, Adeneo Embedded <www.adeneo-embedded.com> + * Antoine Tenart, <atenart@adeneo-embedded.com> + * + * This file is released under the terms of GPL v2 and any later version. + * See the file COPYING in the root directory of the source tree for details. + */ + +#ifndef _CLOCK_TI81XX_H_ +#define _CLOCK_TI81XX_H_ + +#define PRCM_MOD_EN     0x2 + +#define CM_DEFAULT_BASE (PRCM_BASE + 0x0500) +#define CM_ALWON_BASE   (PRCM_BASE + 0x1400) + +struct cm_def { +	unsigned int resv0[2]; +	unsigned int l3fastclkstctrl; +	unsigned int resv1[1]; +	unsigned int pciclkstctrl; +	unsigned int resv2[1]; +	unsigned int ducaticlkstctrl; +	unsigned int resv3[1]; +	unsigned int emif0clkctrl; +	unsigned int emif1clkctrl; +	unsigned int dmmclkctrl; +	unsigned int fwclkctrl; +	unsigned int resv4[10]; +	unsigned int usbclkctrl; +	unsigned int resv5[1]; +	unsigned int sataclkctrl; +	unsigned int resv6[4]; +	unsigned int ducaticlkctrl; +	unsigned int pciclkctrl; +}; + +struct cm_alwon { +	unsigned int l3slowclkstctrl; +	unsigned int ethclkstctrl; +	unsigned int l3medclkstctrl; +	unsigned int mmu_clkstctrl; +	unsigned int mmucfg_clkstctrl; +	unsigned int ocmc0clkstctrl; +#if defined(CONFIG_TI814X) +	unsigned int vcpclkstctrl; +#elif defined(CONFIG_TI816X) +	unsigned int ocmc1clkstctrl; +#endif +	unsigned int mpuclkstctrl; +	unsigned int sysclk4clkstctrl; +	unsigned int sysclk5clkstctrl; +	unsigned int sysclk6clkstctrl; +	unsigned int rtcclkstctrl; +	unsigned int l3fastclkstctrl; +	unsigned int resv0[67]; +	unsigned int mcasp0clkctrl; +	unsigned int mcasp1clkctrl; +	unsigned int mcasp2clkctrl; +	unsigned int mcbspclkctrl; +	unsigned int uart0clkctrl; +	unsigned int uart1clkctrl; +	unsigned int uart2clkctrl; +	unsigned int gpio0clkctrl; +	unsigned int gpio1clkctrl; +	unsigned int i2c0clkctrl; +	unsigned int i2c1clkctrl; +#if defined(CONFIG_TI814X) +	unsigned int mcasp345clkctrl; +	unsigned int atlclkctrl; +	unsigned int mlbclkctrl; +	unsigned int pataclkctrl; +	unsigned int resv1[1]; +	unsigned int uart3clkctrl; +	unsigned int uart4clkctrl; +	unsigned int uart5clkctrl; +#elif defined(CONFIG_TI816X) +	unsigned int resv1[1]; +	unsigned int timer1clkctrl; +	unsigned int timer2clkctrl; +	unsigned int timer3clkctrl; +	unsigned int timer4clkctrl; +	unsigned int timer5clkctrl; +	unsigned int timer6clkctrl; +	unsigned int timer7clkctrl; +#endif +	unsigned int wdtimerclkctrl; +	unsigned int spiclkctrl; +	unsigned int mailboxclkctrl; +	unsigned int spinboxclkctrl; +	unsigned int mmudataclkctrl; +	unsigned int resv2[2]; +	unsigned int mmucfgclkctrl; +#if defined(CONFIG_TI814X) +	unsigned int resv3[2]; +#elif defined(CONFIG_TI816X) +	unsigned int resv3[1]; +	unsigned int sdioclkctrl; +#endif +	unsigned int ocmc0clkctrl; +#if defined(CONFIG_TI814X) +	unsigned int vcpclkctrl; +#elif defined(CONFIG_TI816X) +	unsigned int ocmc1clkctrl; +#endif +	unsigned int resv4[2]; +	unsigned int controlclkctrl; +	unsigned int resv5[2]; +	unsigned int gpmcclkctrl; +	unsigned int ethernet0clkctrl; +	unsigned int ethernet1clkctrl; +	unsigned int mpuclkctrl; +#if defined(CONFIG_TI814X) +	unsigned int debugssclkctrl; +#elif defined(CONFIG_TI816X) +	unsigned int resv6[1]; +#endif +	unsigned int l3clkctrl; +	unsigned int l4hsclkctrl; +	unsigned int l4lsclkctrl; +	unsigned int rtcclkctrl; +	unsigned int tpccclkctrl; +	unsigned int tptc0clkctrl; +	unsigned int tptc1clkctrl; +	unsigned int tptc2clkctrl; +	unsigned int tptc3clkctrl; +#if defined(CONFIG_TI814X) +	unsigned int resv6[4]; +	unsigned int dcan01clkctrl; +	unsigned int mmchs0clkctrl; +	unsigned int mmchs1clkctrl; +	unsigned int mmchs2clkctrl; +	unsigned int custefuseclkctrl; +#elif defined(CONFIG_TI816X) +	unsigned int sr0clkctrl; +	unsigned int sr1clkctrl; +#endif +}; + +#endif /* _CLOCK_TI81XX_H_ */ diff --git a/arch/arm/include/asm/arch-am33xx/clocks_am33xx.h b/arch/arm/include/asm/arch-am33xx/clocks_am33xx.h index 80e189916..140379fb3 100644 --- a/arch/arm/include/asm/arch-am33xx/clocks_am33xx.h +++ b/arch/arm/include/asm/arch-am33xx/clocks_am33xx.h @@ -16,8 +16,10 @@  #define CONFIG_SYS_MPUCLK	550  #endif -extern void pll_init(void); -extern void enable_emif_clocks(void); +#define UART_RESET		(0x1 << 1) +#define UART_CLK_RUNNING_MASK	0x1 +#define UART_SMART_IDLE_EN	(0x1 << 0x3) +  extern void enable_dmm_clocks(void);  #endif	/* endif _CLOCKS_AM33XX_H_ */ diff --git a/arch/arm/include/asm/arch-am33xx/cpu.h b/arch/arm/include/asm/arch-am33xx/cpu.h index bcb4c5037..10b56e0db 100644 --- a/arch/arm/include/asm/arch-am33xx/cpu.h +++ b/arch/arm/include/asm/arch-am33xx/cpu.h @@ -43,13 +43,6 @@  #define SYSBOOT_MASK			(BIT(0) | BIT(1) | BIT(2)\  					| BIT(3) | BIT(4)) -/* Reset control */ -#ifdef CONFIG_AM33XX -#define PRM_RSTCTRL			(PRCM_BASE + 0x0F00) -#elif defined(CONFIG_TI814X) -#define PRM_RSTCTRL			(PRCM_BASE + 0x00A0) -#endif -#define PRM_RSTST			(PRM_RSTCTRL + 8)  #define PRM_RSTCTRL_RESET		0x01  #define PRM_RSTST_WARM_RESET_MASK	0x232 @@ -108,6 +101,7 @@ struct gpmc {  /* Used for board specific gpmc initialization */  extern struct gpmc *gpmc_cfg; +#ifndef CONFIG_AM43XX  /* Encapsulating core pll registers */  struct cm_wkuppll {  	unsigned int wkclkstctrl;	/* offset 0x00 */ @@ -211,6 +205,162 @@ struct cm_perpll {  	unsigned int resv10[8];  	unsigned int cpswclkstctrl;	/* offset 0x144 */  }; +#else +/* Encapsulating core pll registers */ +struct cm_wkuppll { +	unsigned int resv0[136]; +	unsigned int wkl4wkclkctrl;	/* offset 0x220 */ +	unsigned int resv1[55]; +	unsigned int wkclkstctrl;	/* offset 0x300 */ +	unsigned int resv2[15]; +	unsigned int wkup_i2c0ctrl;	/* offset 0x340 */ +	unsigned int resv3; +	unsigned int wkup_uart0ctrl;	/* offset 0x348 */ +	unsigned int resv4[5]; +	unsigned int wkctrlclkctrl;	/* offset 0x360 */ +	unsigned int resv5; +	unsigned int wkgpio0clkctrl;	/* offset 0x368 */ + +	unsigned int resv6[109]; +	unsigned int clkmoddpllcore;	/* offset 0x520 */ +	unsigned int idlestdpllcore;	/* offset 0x524 */ +	unsigned int resv61; +	unsigned int clkseldpllcore;	/* offset 0x52C */ +	unsigned int resv7[2]; +	unsigned int divm4dpllcore;	/* offset 0x538 */ +	unsigned int divm5dpllcore;	/* offset 0x53C */ +	unsigned int divm6dpllcore;	/* offset 0x540 */ + +	unsigned int resv8[7]; +	unsigned int clkmoddpllmpu;	/* offset 0x560 */ +	unsigned int idlestdpllmpu;	/* offset 0x564 */ +	unsigned int resv9; +	unsigned int clkseldpllmpu;	/* offset 0x56c */ +	unsigned int divm2dpllmpu;	/* offset 0x570 */ + +	unsigned int resv10[11]; +	unsigned int clkmoddpllddr;	/* offset 0x5A0 */ +	unsigned int idlestdpllddr;	/* offset 0x5A4 */ +	unsigned int resv11; +	unsigned int clkseldpllddr;	/* offset 0x5AC */ +	unsigned int divm2dpllddr;	/* offset 0x5B0 */ + +	unsigned int resv12[11]; +	unsigned int clkmoddpllper;	/* offset 0x5E0 */ +	unsigned int idlestdpllper;	/* offset 0x5E4 */ +	unsigned int resv13; +	unsigned int clkseldpllper;	/* offset 0x5EC */ +	unsigned int divm2dpllper;	/* offset 0x5F0 */ +	unsigned int resv14[8]; +	unsigned int clkdcoldodpllper;	/* offset 0x614 */ + +	unsigned int resv15[2]; +	unsigned int clkmoddplldisp;	/* offset 0x620 */ +	unsigned int resv16[2]; +	unsigned int clkseldplldisp;	/* offset 0x62C */ +	unsigned int divm2dplldisp;	/* offset 0x630 */ +}; + +/* + * Encapsulating peripheral functional clocks + * pll registers + */ +struct cm_perpll { +	unsigned int l3clkstctrl;	/* offset 0x00 */ +	unsigned int resv0[7]; +	unsigned int l3clkctrl;		/* Offset 0x20 */ +	unsigned int resv1[7]; +	unsigned int l3instrclkctrl;	/* offset 0x40 */ +	unsigned int resv2[3]; +	unsigned int ocmcramclkctrl;	/* offset 0x50 */ +	unsigned int resv3[9]; +	unsigned int tpccclkctrl;	/* offset 0x78 */ +	unsigned int resv4; +	unsigned int tptc0clkctrl;	/* offset 0x80 */ + +	unsigned int resv5[7]; +	unsigned int l4hsclkctrl;	/* offset 0x0A0 */ +	unsigned int resv6; +	unsigned int l4fwclkctrl;	/* offset 0x0A8 */ +	unsigned int resv7[85]; +	unsigned int l3sclkstctrl;	/* offset 0x200 */ +	unsigned int resv8[7]; +	unsigned int gpmcclkctrl;	/* offset 0x220 */ +	unsigned int resv9[5]; +	unsigned int mcasp0clkctrl;	/* offset 0x238 */ +	unsigned int resv10; +	unsigned int mcasp1clkctrl;	/* offset 0x240 */ +	unsigned int resv11; +	unsigned int mmc2clkctrl;	/* offset 0x248 */ +	unsigned int resv12[5]; +	unsigned int usb0clkctrl;	/* offset 0x260 */ +	unsigned int resv13[103]; +	unsigned int l4lsclkstctrl;	/* offset 0x400 */ +	unsigned int resv14[7]; +	unsigned int l4lsclkctrl;	/* offset 0x420 */ +	unsigned int resv15; +	unsigned int dcan0clkctrl;	/* offset 0x428 */ +	unsigned int resv16; +	unsigned int dcan1clkctrl;	/* offset 0x430 */ +	unsigned int resv17[13]; +	unsigned int elmclkctrl;	/* offset 0x468 */ + +	unsigned int resv18[3]; +	unsigned int gpio1clkctrl;	/* offset 0x478 */ +	unsigned int resv19; +	unsigned int gpio2clkctrl;	/* offset 0x480 */ +	unsigned int resv20; +	unsigned int gpio3clkctrl;	/* offset 0x488 */ +	unsigned int resv21[7]; + +	unsigned int i2c1clkctrl;	/* offset 0x4A8 */ +	unsigned int resv22; +	unsigned int i2c2clkctrl;	/* offset 0x4B0 */ +	unsigned int resv23[3]; +	unsigned int mmc0clkctrl;	/* offset 0x4C0 */ +	unsigned int resv24; +	unsigned int mmc1clkctrl;	/* offset 0x4C8 */ + +	unsigned int resv25[13]; +	unsigned int spi0clkctrl;	/* offset 0x500 */ +	unsigned int resv26; +	unsigned int spi1clkctrl;	/* offset 0x508 */ +	unsigned int resv27[9]; +	unsigned int timer2clkctrl;	/* offset 0x530 */ +	unsigned int resv28; +	unsigned int timer3clkctrl;	/* offset 0x538 */ +	unsigned int resv29; +	unsigned int timer4clkctrl;	/* offset 0x540 */ +	unsigned int resv30[5]; +	unsigned int timer7clkctrl;	/* offset 0x558 */ + +	unsigned int resv31[9]; +	unsigned int uart1clkctrl;	/* offset 0x580 */ +	unsigned int resv32; +	unsigned int uart2clkctrl;	/* offset 0x588 */ +	unsigned int resv33; +	unsigned int uart3clkctrl;	/* offset 0x590 */ +	unsigned int resv34; +	unsigned int uart4clkctrl;	/* offset 0x598 */ +	unsigned int resv35; +	unsigned int uart5clkctrl;	/* offset 0x5A0 */ +	unsigned int resv36[87]; + +	unsigned int emifclkstctrl;	/* offset 0x700 */ +	unsigned int resv361[7]; +	unsigned int emifclkctrl;	/* offset 0x720 */ +	unsigned int resv37[3]; +	unsigned int emiffwclkctrl;	/* offset 0x730 */ +	unsigned int resv371; +	unsigned int otfaemifclkctrl;	/* offset 0x738 */ +	unsigned int resv38[57]; +	unsigned int lcdclkctrl;	/* offset 0x820 */ +	unsigned int resv39[183]; +	unsigned int cpswclkstctrl;	/* offset 0xB00 */ +	unsigned int resv40[7]; +	unsigned int cpgmac0clkctrl;	/* offset 0xB20 */ +}; +#endif /* CONFIG_AM43XX */  /* Encapsulating Display pll registers */  struct cm_dpll { diff --git a/arch/arm/include/asm/arch-am33xx/ddr_defs.h b/arch/arm/include/asm/arch-am33xx/ddr_defs.h index 18d7d99a4..95f7a9ad4 100644 --- a/arch/arm/include/asm/arch-am33xx/ddr_defs.h +++ b/arch/arm/include/asm/arch-am33xx/ddr_defs.h @@ -192,37 +192,46 @@ struct ddr_data_regs {   * correspond to DATA1 registers defined here.   */  struct ddr_regs { -	unsigned int resv0[7]; -	unsigned int cm0csratio;	/* offset 0x01C */ +	unsigned int resv0[3]; +	unsigned int cm0config;		/* offset 0x00C */ +	unsigned int cm0configclk;	/* offset 0x010 */  	unsigned int resv1[2]; +	unsigned int cm0csratio;	/* offset 0x01C */ +	unsigned int resv2[2];  	unsigned int cm0dldiff;		/* offset 0x028 */  	unsigned int cm0iclkout;	/* offset 0x02C */ -	unsigned int resv2[8]; +	unsigned int resv3[4]; +	unsigned int cm1config;		/* offset 0x040 */ +	unsigned int cm1configclk;	/* offset 0x044 */ +	unsigned int resv4[2];  	unsigned int cm1csratio;	/* offset 0x050 */ -	unsigned int resv3[2]; +	unsigned int resv5[2];  	unsigned int cm1dldiff;		/* offset 0x05C */  	unsigned int cm1iclkout;	/* offset 0x060 */ -	unsigned int resv4[8]; +	unsigned int resv6[4]; +	unsigned int cm2config;		/* offset 0x074 */ +	unsigned int cm2configclk;	/* offset 0x078 */ +	unsigned int resv7[2];  	unsigned int cm2csratio;	/* offset 0x084 */ -	unsigned int resv5[2]; +	unsigned int resv8[2];  	unsigned int cm2dldiff;		/* offset 0x090 */  	unsigned int cm2iclkout;	/* offset 0x094 */ -	unsigned int resv6[12]; +	unsigned int resv9[12];  	unsigned int dt0rdsratio0;	/* offset 0x0C8 */ -	unsigned int resv7[4]; +	unsigned int resv10[4];  	unsigned int dt0wdsratio0;	/* offset 0x0DC */ -	unsigned int resv8[4]; +	unsigned int resv11[4];  	unsigned int dt0wiratio0;	/* offset 0x0F0 */ -	unsigned int resv9; +	unsigned int resv12;  	unsigned int dt0wimode0;	/* offset 0x0F8 */  	unsigned int dt0giratio0;	/* offset 0x0FC */ -	unsigned int resv10; +	unsigned int resv13;  	unsigned int dt0gimode0;	/* offset 0x104 */  	unsigned int dt0fwsratio0;	/* offset 0x108 */ -	unsigned int resv11[4]; +	unsigned int resv14[4];  	unsigned int dt0dqoffset;	/* offset 0x11C */  	unsigned int dt0wrsratio0;	/* offset 0x120 */ -	unsigned int resv12[4]; +	unsigned int resv15[4];  	unsigned int dt0rdelays0;	/* offset 0x134 */  	unsigned int dt0dldiff0;	/* offset 0x138 */  }; diff --git a/arch/arm/include/asm/arch-am33xx/hardware.h b/arch/arm/include/asm/arch-am33xx/hardware.h index 02f5f8a8d..ee5fce0da 100644 --- a/arch/arm/include/asm/arch-am33xx/hardware.h +++ b/arch/arm/include/asm/arch-am33xx/hardware.h @@ -15,8 +15,12 @@  #include <asm/arch/omap.h>  #ifdef CONFIG_AM33XX  #include <asm/arch/hardware_am33xx.h> +#elif defined(CONFIG_TI816X) +#include <asm/arch/hardware_ti816x.h>  #elif defined(CONFIG_TI814X)  #include <asm/arch/hardware_ti814x.h> +#elif defined(CONFIG_AM43XX) +#include <asm/arch/hardware_am43xx.h>  #endif  /* @@ -45,37 +49,24 @@  #define EMIF4_1_CFG_BASE		0x4D000000  /* PLL related registers */ -#define CM_PER				0x44E00000 -#define CM_WKUP				0x44E00400  #define CM_DPLL				0x44E00500  #define CM_DEVICE			0x44E00700  #define CM_RTC				0x44E00800  #define CM_CEFUSE			0x44E00A00  #define PRM_DEVICE			0x44E00F00 -/* VTP Base address */ -#define VTP1_CTRL_ADDR			0x48140E10 -  /* DDR Base address */  #define DDR_CTRL_ADDR			0x44E10E04  #define DDR_CONTROL_BASE_ADDR		0x44E11404 -#define DDR_PHY_CMD_ADDR2		0x47C0C800 -#define DDR_PHY_DATA_ADDR2		0x47C0C8C8  /* UART */  #define DEFAULT_UART_BASE		UART0_BASE -#define DDRPHY_0_CONFIG_BASE		(CTRL_BASE + 0x1400) -#define DDRPHY_CONFIG_BASE		DDRPHY_0_CONFIG_BASE -  /* GPMC Base address */  #define GPMC_BASE			0x50000000  /* CPSW Config space */  #define CPSW_BASE			0x4A100000 -/* OTG */ -#define USB0_OTG_BASE			0x47401000 -#define USB1_OTG_BASE			0x47401800 - +int clk_get(int clk);  #endif /* __AM33XX_HARDWARE_H */ diff --git a/arch/arm/include/asm/arch-am33xx/hardware_am33xx.h b/arch/arm/include/asm/arch-am33xx/hardware_am33xx.h index 432f0c764..8973fd884 100644 --- a/arch/arm/include/asm/arch-am33xx/hardware_am33xx.h +++ b/arch/arm/include/asm/arch-am33xx/hardware_am33xx.h @@ -28,19 +28,34 @@  /* PRCM Base Address */  #define PRCM_BASE			0x44E00000 +#define CM_PER				0x44E00000 +#define CM_WKUP				0x44E00400 + +#define PRM_RSTCTRL			(PRCM_BASE + 0x0F00) +#define PRM_RSTST			(PRM_RSTCTRL + 8)  /* VTP Base address */  #define VTP0_CTRL_ADDR			0x44E10E0C +#define VTP1_CTRL_ADDR			0x48140E10  /* DDR Base address */  #define DDR_PHY_CMD_ADDR		0x44E12000  #define DDR_PHY_DATA_ADDR		0x44E120C8 +#define DDR_PHY_CMD_ADDR2		0x47C0C800 +#define DDR_PHY_DATA_ADDR2		0x47C0C8C8  #define DDR_DATA_REGS_NR		2 +#define DDRPHY_0_CONFIG_BASE		(CTRL_BASE + 0x1400) +#define DDRPHY_CONFIG_BASE		DDRPHY_0_CONFIG_BASE +  /* CPSW Config space */  #define CPSW_MDIO_BASE			0x4A101000  /* RTC base address */  #define RTC_BASE			0x44E3E000 +/* OTG */ +#define USB0_OTG_BASE			0x47401000 +#define USB1_OTG_BASE			0x47401800 +  #endif /* __AM33XX_HARDWARE_AM33XX_H */ diff --git a/arch/arm/include/asm/arch-am33xx/hardware_am43xx.h b/arch/arm/include/asm/arch-am33xx/hardware_am43xx.h new file mode 100644 index 000000000..303c594d2 --- /dev/null +++ b/arch/arm/include/asm/arch-am33xx/hardware_am43xx.h @@ -0,0 +1,54 @@ +/* + * hardware_am43xx.h + * + * AM43xx hardware specific header + * + * Copyright (C) 2013, Texas Instruments, Incorporated - http://www.ti.com/ + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + +#ifndef __AM43XX_HARDWARE_AM43XX_H +#define __AM43XX_HARDWARE_AM43XX_H + +/* Module base addresses */ + +/* UART Base Address */ +#define UART0_BASE			0x44E09000 + +/* GPIO Base address */ +#define GPIO2_BASE			0x481AC000 + +/* Watchdog Timer */ +#define WDT_BASE			0x44E35000 + +/* Control Module Base Address */ +#define CTRL_BASE			0x44E10000 +#define CTRL_DEVICE_BASE		0x44E10600 + +/* PRCM Base Address */ +#define PRCM_BASE			0x44DF0000 +#define	CM_WKUP				0x44DF2800 +#define	CM_PER				0x44DF8800 + +#define PRM_RSTCTRL			(PRCM_BASE + 0x4000) +#define PRM_RSTST			(PRM_RSTCTRL + 4) + +/* VTP Base address */ +#define VTP0_CTRL_ADDR			0x44E10E0C +#define VTP1_CTRL_ADDR			0x48140E10 + +/* DDR Base address */ +#define DDR_PHY_CMD_ADDR		0x44E12000 +#define DDR_PHY_DATA_ADDR		0x44E120C8 +#define DDR_PHY_CMD_ADDR2		0x47C0C800 +#define DDR_PHY_DATA_ADDR2		0x47C0C8C8 +#define DDR_DATA_REGS_NR		2 + +/* CPSW Config space */ +#define CPSW_MDIO_BASE			0x4A101000 + +/* RTC base address */ +#define RTC_BASE			0x44E3E000 + +#endif /* __AM43XX_HARDWARE_AM43XX_H */ diff --git a/arch/arm/include/asm/arch-am33xx/hardware_ti814x.h b/arch/arm/include/asm/arch-am33xx/hardware_ti814x.h index 451d935b1..4509a237d 100644 --- a/arch/arm/include/asm/arch-am33xx/hardware_ti814x.h +++ b/arch/arm/include/asm/arch-am33xx/hardware_ti814x.h @@ -25,22 +25,37 @@  /* PRCM Base Address */  #define PRCM_BASE			0x48180000 +#define CM_PER				0x44E00000 +#define CM_WKUP				0x44E00400 + +#define PRM_RSTCTRL			(PRCM_BASE + 0x00A0) +#define PRM_RSTST			(PRM_RSTCTRL + 8)  /* PLL Subsystem Base Address */  #define PLL_SUBSYS_BASE			0x481C5000  /* VTP Base address */  #define VTP0_CTRL_ADDR			0x48140E0C +#define VTP1_CTRL_ADDR			0x48140E10  /* DDR Base address */  #define DDR_PHY_CMD_ADDR		0x47C0C400  #define DDR_PHY_DATA_ADDR		0x47C0C4C8 +#define DDR_PHY_CMD_ADDR2		0x47C0C800 +#define DDR_PHY_DATA_ADDR2		0x47C0C8C8  #define DDR_DATA_REGS_NR		4 +#define DDRPHY_0_CONFIG_BASE		(CTRL_BASE + 0x1400) +#define DDRPHY_CONFIG_BASE		DDRPHY_0_CONFIG_BASE +  /* CPSW Config space */  #define CPSW_MDIO_BASE			0x4A100800  /* RTC base address */  #define RTC_BASE			0x480C0000 +/* OTG */ +#define USB0_OTG_BASE			0x47401000 +#define USB1_OTG_BASE			0x47401800 +  #endif /* __AM33XX_HARDWARE_TI814X_H */ diff --git a/arch/arm/include/asm/arch-am33xx/hardware_ti816x.h b/arch/arm/include/asm/arch-am33xx/hardware_ti816x.h new file mode 100644 index 000000000..3c680649a --- /dev/null +++ b/arch/arm/include/asm/arch-am33xx/hardware_ti816x.h @@ -0,0 +1,61 @@ +/* + * hardware_ti816x.h + * + * TI816x hardware specific header + * + * Copyright (C) 2013, Adeneo Embedded <www.adeneo-embedded.com> + * Antoine Tenart, <atenart@adeneo-embedded.com> + * Based on TI-PSP-04.00.02.14 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR /PURPOSE.  See the + * GNU General Public License for more details. + */ + +#ifndef __AM33XX_HARDWARE_TI816X_H +#define __AM33XX_HARDWARE_TI816X_H + +/* UART */ +#define UART0_BASE		0x48020000 +#define UART1_BASE		0x48022000 +#define UART2_BASE		0x48024000 + +/* Watchdog Timer */ +#define WDT_BASE		0x480C2000 + +/* Control Module Base Address */ +#define CTRL_BASE		0x48140000 + +/* PRCM Base Address */ +#define PRCM_BASE		0x48180000 + +#define PRM_RSTCTRL		(PRCM_BASE + 0x00A0) +#define PRM_RSTST		(PRM_RSTCTRL + 8) + +/* VTP Base address */ +#define VTP0_CTRL_ADDR		0x48198358 +#define VTP1_CTRL_ADDR		0x4819A358 + +/* DDR Base address */ +#define DDR_PHY_CMD_ADDR	0x48198000 +#define DDR_PHY_DATA_ADDR	0x481980C8 +#define DDR_PHY_CMD_ADDR2	0x4819A000 +#define DDR_PHY_DATA_ADDR2	0x4819A0C8 +#define DDR_DATA_REGS_NR	4 + + +#define DDRPHY_0_CONFIG_BASE	0x48198000 +#define DDRPHY_1_CONFIG_BASE	0x4819A000 +#define DDRPHY_CONFIG_BASE	((emif == 0) ? \ +	DDRPHY_0_CONFIG_BASE : DDRPHY_1_CONFIG_BASE) + +/* RTC base address */ +#define RTC_BASE		0x480C0000 + +#endif /* __AM33XX_HARDWARE_TI816X_H */ diff --git a/arch/arm/include/asm/arch-am33xx/mem.h b/arch/arm/include/asm/arch-am33xx/mem.h index aef4e82fc..983ea28dc 100644 --- a/arch/arm/include/asm/arch-am33xx/mem.h +++ b/arch/arm/include/asm/arch-am33xx/mem.h @@ -30,6 +30,7 @@   *   * Currently valid part Names are (PART):   * M_NAND - Micron NAND + * STNOR - STMicrolelctronics M29W128GL   */  #define GPMC_SIZE_256M		0x0  #define GPMC_SIZE_128M		0x8 @@ -45,6 +46,14 @@  #define M_NAND_GPMC_CONFIG6	0x16000f80  #define M_NAND_GPMC_CONFIG7	0x00000008 +#define STNOR_GPMC_CONFIG1	0x00001200 +#define STNOR_GPMC_CONFIG2	0x00101000 +#define STNOR_GPMC_CONFIG3	0x00030301 +#define STNOR_GPMC_CONFIG4	0x10041004 +#define STNOR_GPMC_CONFIG5	0x000C1010 +#define STNOR_GPMC_CONFIG6	0x08070280 +#define STNOR_GPMC_CONFIG7	0x00000F48 +  /* max number of GPMC Chip Selects */  #define GPMC_MAX_CS		8  /* max number of GPMC regs */ diff --git a/arch/arm/include/asm/arch-am33xx/mmc_host_def.h b/arch/arm/include/asm/arch-am33xx/mmc_host_def.h index 51ba79190..724e25294 100644 --- a/arch/arm/include/asm/arch-am33xx/mmc_host_def.h +++ b/arch/arm/include/asm/arch-am33xx/mmc_host_def.h @@ -27,6 +27,9 @@  #if defined(CONFIG_TI814X)  #undef MMC_CLOCK_REFERENCE  #define MMC_CLOCK_REFERENCE	192 /* MHz */ +#elif defined(CONFIG_TI816X) +#undef MMC_CLOCK_REFERENCE +#define MMC_CLOCK_REFERENCE	48 /* MHz */  #endif  #endif /* MMC_HOST_DEF_H */ diff --git a/arch/arm/include/asm/arch-am33xx/mux.h b/arch/arm/include/asm/arch-am33xx/mux.h index 1c6b65f4a..324943726 100644 --- a/arch/arm/include/asm/arch-am33xx/mux.h +++ b/arch/arm/include/asm/arch-am33xx/mux.h @@ -23,6 +23,10 @@  #include <asm/arch/mux_am33xx.h>  #elif defined(CONFIG_TI814X)  #include <asm/arch/mux_ti814x.h> +#elif defined(CONFIG_TI816X) +#include <asm/arch/mux_ti816x.h> +#elif defined(CONFIG_AM43XX) +#include <asm/arch/mux_am43xx.h>  #endif  struct module_pin_mux { diff --git a/arch/arm/include/asm/arch-am33xx/mux_am43xx.h b/arch/arm/include/asm/arch-am33xx/mux_am43xx.h new file mode 100644 index 000000000..0206912d5 --- /dev/null +++ b/arch/arm/include/asm/arch-am33xx/mux_am43xx.h @@ -0,0 +1,142 @@ +/* + * mux_am43xx.h + * + * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/ + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + +#ifndef _MUX_AM43XX_H_ +#define _MUX_AM43XX_H_ + +#include <common.h> +#include <asm/io.h> + +#define MUX_CFG(value, offset)	\ +	__raw_writel(value, (CTRL_BASE + offset)); + +/* PAD Control Fields */ +#define SLEWCTRL	(0x1 << 19) +#define RXACTIVE	(0x1 << 18) +#define PULLDOWN_EN	(0x0 << 17) /* Pull Down Selection */ +#define PULLUP_EN	(0x1 << 17) /* Pull Up Selection */ +#define PULLUDEN	(0x0 << 16) /* Pull up/down enable */ +#define PULLUDDIS	(0x1 << 16) /* Pull up/down disable */ +#define MODE(val)	val	/* used for Readability */ + +/* + * PAD CONTROL OFFSETS + * Field names corresponds to the pad signal name + */ +struct pad_signals { +	int gpmc_ad0; +	int gpmc_ad1; +	int gpmc_ad2; +	int gpmc_ad3; +	int gpmc_ad4; +	int gpmc_ad5; +	int gpmc_ad6; +	int gpmc_ad7; +	int gpmc_ad8; +	int gpmc_ad9; +	int gpmc_ad10; +	int gpmc_ad11; +	int gpmc_ad12; +	int gpmc_ad13; +	int gpmc_ad14; +	int gpmc_ad15; +	int gpmc_a0; +	int gpmc_a1; +	int gpmc_a2; +	int gpmc_a3; +	int gpmc_a4; +	int gpmc_a5; +	int gpmc_a6; +	int gpmc_a7; +	int gpmc_a8; +	int gpmc_a9; +	int gpmc_a10; +	int gpmc_a11; +	int gpmc_wait0; +	int gpmc_wpn; +	int gpmc_be1n; +	int gpmc_csn0; +	int gpmc_csn1; +	int gpmc_csn2; +	int gpmc_csn3; +	int gpmc_clk; +	int gpmc_advn_ale; +	int gpmc_oen_ren; +	int gpmc_wen; +	int gpmc_be0n_cle; +	int lcd_data0; +	int lcd_data1; +	int lcd_data2; +	int lcd_data3; +	int lcd_data4; +	int lcd_data5; +	int lcd_data6; +	int lcd_data7; +	int lcd_data8; +	int lcd_data9; +	int lcd_data10; +	int lcd_data11; +	int lcd_data12; +	int lcd_data13; +	int lcd_data14; +	int lcd_data15; +	int lcd_vsync; +	int lcd_hsync; +	int lcd_pclk; +	int lcd_ac_bias_en; +	int mmc0_dat3; +	int mmc0_dat2; +	int mmc0_dat1; +	int mmc0_dat0; +	int mmc0_clk; +	int mmc0_cmd; +	int mii1_col; +	int mii1_crs; +	int mii1_rxerr; +	int mii1_txen; +	int mii1_rxdv; +	int mii1_txd3; +	int mii1_txd2; +	int mii1_txd1; +	int mii1_txd0; +	int mii1_txclk; +	int mii1_rxclk; +	int mii1_rxd3; +	int mii1_rxd2; +	int mii1_rxd1; +	int mii1_rxd0; +	int rmii1_refclk; +	int mdio_data; +	int mdio_clk; +	int spi0_sclk; +	int spi0_d0; +	int spi0_d1; +	int spi0_cs0; +	int spi0_cs1; +	int ecap0_in_pwm0_out; +	int uart0_ctsn; +	int uart0_rtsn; +	int uart0_rxd; +	int uart0_txd; +	int uart1_ctsn; +	int uart1_rtsn; +	int uart1_rxd; +	int uart1_txd; +	int i2c0_sda; +	int i2c0_scl; +	int mcasp0_aclkx; +	int mcasp0_fsx; +	int mcasp0_axr0; +	int mcasp0_ahclkr; +	int mcasp0_aclkr; +	int mcasp0_fsr; +	int mcasp0_axr1; +	int mcasp0_ahclkx; +}; + +#endif /* _MUX_AM43XX_H_ */ diff --git a/arch/arm/include/asm/arch-am33xx/mux_ti816x.h b/arch/arm/include/asm/arch-am33xx/mux_ti816x.h new file mode 100644 index 000000000..e4e5a48ad --- /dev/null +++ b/arch/arm/include/asm/arch-am33xx/mux_ti816x.h @@ -0,0 +1,363 @@ +/* + * mux_ti816x.h + * + * Copyright (C) 2013, Adeneo Embedded <www.adeneo-embedded.com> + * Antoine Tenart, <atenart@adeneo-embedded.com> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation version 2. + * + * This program is distributed "as is" WITHOUT ANY WARRANTY of any + * kind, whether express or implied; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef _MUX_TI816X_H_ +#define _MUX_TI816X_H_ + +#include <common.h> +#include <asm/io.h> + +#define MUX_CFG(value, offset)  \ +	__raw_writel(value, (CTRL_BASE + offset)); + +#define PULLDOWN_EN	(0x0 << 4)	/* Pull Down Selection */ +#define PULLUP_EN	(0x1 << 4)	/* Pull Up Selection */ +#define PULLUDEN	(0x0 << 3)	/* Pull up enabled */ +#define PULLUDDIS	(0x1 << 3)	/* Pull up disabled */ +#define MODE(val)	(val)		/* used for Readability */ + + +/* + * PAD CONTROL OFFSETS + * Field names corresponds to the pad signal name + */ +struct pad_signals { +	int pincntl1; +	int pincntl2; +	int pincntl3; +	int pincntl4; +	int pincntl5; +	int pincntl6; +	int pincntl7; +	int pincntl8; +	int pincntl9; +	int pincntl10; +	int pincntl11; +	int pincntl12; +	int pincntl13; +	int pincntl14; +	int pincntl15; +	int pincntl16; +	int pincntl17; +	int pincntl18; +	int pincntl19; +	int pincntl20; +	int pincntl21; +	int pincntl22; +	int pincntl23; +	int pincntl24; +	int pincntl25; +	int pincntl26; +	int pincntl27; +	int pincntl28; +	int pincntl29; +	int pincntl30; +	int pincntl31; +	int pincntl32; +	int pincntl33; +	int pincntl34; +	int pincntl35; +	int pincntl36; +	int pincntl37; +	int pincntl38; +	int pincntl39; +	int pincntl40; +	int pincntl41; +	int pincntl42; +	int pincntl43; +	int pincntl44; +	int pincntl45; +	int pincntl46; +	int pincntl47; +	int pincntl48; +	int pincntl49; +	int pincntl50; +	int pincntl51; +	int pincntl52; +	int pincntl53; +	int pincntl54; +	int pincntl55; +	int pincntl56; +	int pincntl57; +	int pincntl58; +	int pincntl59; +	int pincntl60; +	int pincntl61; +	int pincntl62; +	int pincntl63; +	int pincntl64; +	int pincntl65; +	int pincntl66; +	int pincntl67; +	int pincntl68; +	int pincntl69; +	int pincntl70; +	int pincntl71; +	int pincntl72; +	int pincntl73; +	int pincntl74; +	int pincntl75; +	int pincntl76; +	int pincntl77; +	int pincntl78; +	int pincntl79; +	int pincntl80; +	int pincntl81; +	int pincntl82; +	int pincntl83; +	int pincntl84; +	int pincntl85; +	int pincntl86; +	int pincntl87; +	int pincntl88; +	int pincntl89; +	int pincntl90; +	int pincntl91; +	int pincntl92; +	int pincntl93; +	int pincntl94; +	int pincntl95; +	int pincntl96; +	int pincntl97; +	int pincntl98; +	int pincntl99; +	int pincntl100; +	int pincntl101; +	int pincntl102; +	int pincntl103; +	int pincntl104; +	int pincntl105; +	int pincntl106; +	int pincntl107; +	int pincntl108; +	int pincntl109; +	int pincntl110; +	int pincntl111; +	int pincntl112; +	int pincntl113; +	int pincntl114; +	int pincntl115; +	int pincntl116; +	int pincntl117; +	int pincntl118; +	int pincntl119; +	int pincntl120; +	int pincntl121; +	int pincntl122; +	int pincntl123; +	int pincntl124; +	int pincntl125; +	int pincntl126; +	int pincntl127; +	int pincntl128; +	int pincntl129; +	int pincntl130; +	int pincntl131; +	int pincntl132; +	int pincntl133; +	int pincntl134; +	int pincntl135; +	int pincntl136; +	int pincntl137; +	int pincntl138; +	int pincntl139; +	int pincntl140; +	int pincntl141; +	int pincntl142; +	int pincntl143; +	int pincntl144; +	int pincntl145; +	int pincntl146; +	int pincntl147; +	int pincntl148; +	int pincntl149; +	int pincntl150; +	int pincntl151; +	int pincntl152; +	int pincntl153; +	int pincntl154; +	int pincntl155; +	int pincntl156; +	int pincntl157; +	int pincntl158; +	int pincntl159; +	int pincntl160; +	int pincntl161; +	int pincntl162; +	int pincntl163; +	int pincntl164; +	int pincntl165; +	int pincntl166; +	int pincntl167; +	int pincntl168; +	int pincntl169; +	int pincntl170; +	int pincntl171; +	int pincntl172; +	int pincntl173; +	int pincntl174; +	int pincntl175; +	int pincntl176; +	int pincntl177; +	int pincntl178; +	int pincntl179; +	int pincntl180; +	int pincntl181; +	int pincntl182; +	int pincntl183; +	int pincntl184; +	int pincntl185; +	int pincntl186; +	int pincntl187; +	int pincntl188; +	int pincntl189; +	int pincntl190; +	int pincntl191; +	int pincntl192; +	int pincntl193; +	int pincntl194; +	int pincntl195; +	int pincntl196; +	int pincntl197; +	int pincntl198; +	int pincntl199; +	int pincntl200; +	int pincntl201; +	int pincntl202; +	int pincntl203; +	int pincntl204; +	int pincntl205; +	int pincntl206; +	int pincntl207; +	int pincntl208; +	int pincntl209; +	int pincntl210; +	int pincntl211; +	int pincntl212; +	int pincntl213; +	int pincntl214; +	int pincntl215; +	int pincntl216; +	int pincntl217; +	int pincntl218; +	int pincntl219; +	int pincntl220; +	int pincntl221; +	int pincntl222; +	int pincntl223; +	int pincntl224; +	int pincntl225; +	int pincntl226; +	int pincntl227; +	int pincntl228; +	int pincntl229; +	int pincntl230; +	int pincntl231; +	int pincntl232; +	int pincntl233; +	int pincntl234; +	int pincntl235; +	int pincntl236; +	int pincntl237; +	int pincntl238; +	int pincntl239; +	int pincntl240; +	int pincntl241; +	int pincntl242; +	int pincntl243; +	int pincntl244; +	int pincntl245; +	int pincntl246; +	int pincntl247; +	int pincntl248; +	int pincntl249; +	int pincntl250; +	int pincntl251; +	int pincntl252; +	int pincntl253; +	int pincntl254; +	int pincntl255; +	int pincntl256; +	int pincntl257; +	int pincntl258; +	int pincntl259; +	int pincntl260; +	int pincntl261; +	int pincntl262; +	int pincntl263; +	int pincntl264; +	int pincntl265; +	int pincntl266; +	int pincntl267; +	int pincntl268; +	int pincntl269; +	int pincntl270; +	int pincntl271; +	int pincntl272; +	int pincntl273; +	int pincntl274; +	int pincntl275; +	int pincntl276; +	int pincntl277; +	int pincntl278; +	int pincntl279; +	int pincntl280; +	int pincntl281; +	int pincntl282; +	int pincntl283; +	int pincntl284; +	int pincntl285; +	int pincntl286; +	int pincntl287; +	int pincntl288; +	int pincntl289; +	int pincntl290; +	int pincntl291; +	int pincntl292; +	int pincntl293; +	int pincntl294; +	int pincntl295; +	int pincntl296; +	int pincntl297; +	int pincntl298; +	int pincntl299; +	int pincntl300; +	int pincntl301; +	int pincntl302; +	int pincntl303; +	int pincntl304; +	int pincntl305; +	int pincntl306; +	int pincntl307; +	int pincntl308; +	int pincntl309; +	int pincntl310; +	int pincntl311; +	int pincntl312; +	int pincntl313; +	int pincntl314; +	int pincntl315; +	int pincntl316; +	int pincntl317; +	int pincntl318; +	int pincntl319; +	int pincntl320; +	int pincntl321; +	int pincntl322; +	int pincntl323; +}; + +#endif /* endif _MUX_TI816X_H_ */ diff --git a/arch/arm/include/asm/arch-am33xx/omap.h b/arch/arm/include/asm/arch-am33xx/omap.h index 66c61e54f..1f8431196 100644 --- a/arch/arm/include/asm/arch-am33xx/omap.h +++ b/arch/arm/include/asm/arch-am33xx/omap.h @@ -15,18 +15,17 @@  #ifndef _OMAP_H_  #define _OMAP_H_ -/* - * Non-secure SRAM Addresses - * Non-secure RAM starts at 0x40300000 for GP devices. But we keep SRAM_BASE - * at 0x40304000(EMU base) so that our code works for both EMU and GP - */  #ifdef CONFIG_AM33XX  #define NON_SECURE_SRAM_START	0x402F0400  #define NON_SECURE_SRAM_END	0x40310000  #define SRAM_SCRATCH_SPACE_ADDR	0x4030C000 -#elif defined(CONFIG_TI814X) +#elif defined(CONFIG_TI81XX)  #define NON_SECURE_SRAM_START	0x40300000  #define NON_SECURE_SRAM_END	0x40320000  #define SRAM_SCRATCH_SPACE_ADDR	0x4031B800 +#elif defined(CONFIG_AM43XX) +#define NON_SECURE_SRAM_START	0x402F0400 +#define NON_SECURE_SRAM_END	0x40340000 +#define SRAM_SCRATCH_SPACE_ADDR	0x4033C000  #endif  #endif diff --git a/arch/arm/include/asm/arch-am33xx/spl.h b/arch/arm/include/asm/arch-am33xx/spl.h index e428512b1..95de9aa23 100644 --- a/arch/arm/include/asm/arch-am33xx/spl.h +++ b/arch/arm/include/asm/arch-am33xx/spl.h @@ -7,9 +7,17 @@  #ifndef	_ASM_ARCH_SPL_H_  #define	_ASM_SPL_H_ +#if defined(CONFIG_TI816X) +#define BOOT_DEVICE_XIP		2 +#define BOOT_DEVICE_NAND	3 +#define BOOT_DEVICE_MMC1	6 +#define BOOT_DEVICE_MMC2	5 +#define BOOT_DEVICE_UART	0x43 +#define BOOT_DEVICE_MMC2_2	0xFF +#else  #define BOOT_DEVICE_XIP       	2  #define BOOT_DEVICE_NAND	5 -#ifdef CONFIG_AM33XX +#if defined(CONFIG_AM33XX) || defined(CONFIG_AM43XX)  #define BOOT_DEVICE_MMC1	8  #define BOOT_DEVICE_MMC2	9	/* eMMC or daughter card */  #elif defined(CONFIG_TI814X) @@ -21,11 +29,12 @@  #define BOOT_DEVICE_USBETH	68  #define BOOT_DEVICE_CPGMAC	70  #define BOOT_DEVICE_MMC2_2      0xFF +#endif -#ifdef CONFIG_AM33XX +#if defined(CONFIG_AM33XX) || defined(CONFIG_AM43XX)  #define MMC_BOOT_DEVICES_START	BOOT_DEVICE_MMC1  #define MMC_BOOT_DEVICES_END	BOOT_DEVICE_MMC2 -#elif defined(CONFIG_TI814X) +#elif defined(CONFIG_TI81XX)  #define MMC_BOOT_DEVICES_START	BOOT_DEVICE_MMC2  #define MMC_BOOT_DEVICES_END	BOOT_DEVICE_MMC1  #endif diff --git a/arch/arm/include/asm/arch-am33xx/sys_proto.h b/arch/arm/include/asm/arch-am33xx/sys_proto.h index 1424f90bf..c6070a3fc 100644 --- a/arch/arm/include/asm/arch-am33xx/sys_proto.h +++ b/arch/arm/include/asm/arch-am33xx/sys_proto.h @@ -35,6 +35,11 @@ void enable_gpmc_cs_config(const u32 *gpmc_config, struct gpmc_cs *cs, u32 base,  			u32 size);  void omap_nand_switch_ecc(uint32_t, uint32_t); -void rtc32k_enable(void); -void uart_soft_reset(void); +void set_uart_mux_conf(void); +void set_mux_conf_regs(void); +void sdram_init(void); +u32 wait_on_value(u32, u32, void *, u32); +#ifdef CONFIG_NOR_BOOT +void enable_norboot_pin_mux(void); +#endif  #endif diff --git a/arch/arm/include/asm/arch-armv7/systimer.h b/arch/arm/include/asm/arch-armv7/systimer.h index b86ab691f..a0412bd34 100644 --- a/arch/arm/include/asm/arch-armv7/systimer.h +++ b/arch/arm/include/asm/arch-armv7/systimer.h @@ -14,6 +14,8 @@  #define SYSTIMER_RELOAD		0xFFFFFFFF  #define SYSTIMER_EN		(1 << 7)  #define SYSTIMER_32BIT		(1 << 1) +#define SYSTIMER_PRESC_16	(1 << 2) +#define SYSTIMER_PRESC_256	(1 << 3)  struct systimer {  	u32 timer0load;		/* 0x00 */ diff --git a/arch/arm/include/asm/arch-davinci/da8xx-fb.h b/arch/arm/include/asm/arch-davinci/da8xx-fb.h deleted file mode 100644 index c115034f0..000000000 --- a/arch/arm/include/asm/arch-davinci/da8xx-fb.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Porting to u-boot: - * - * (C) Copyright 2011 - * Stefano Babic, DENX Software Engineering, sbabic@denx.de. - * - * Copyright (C) 2008-2009 MontaVista Software Inc. - * Copyright (C) 2008-2009 Texas Instruments Inc - * - * Based on the LCD driver for TI Avalanche processors written by - * Ajay Singh and Shalom Hai. - * - * SPDX-License-Identifier:	GPL-2.0+ - */ - -#ifndef DA8XX_FB_H -#define DA8XX_FB_H - -enum panel_type { -	QVGA = 0 -}; - -enum panel_shade { -	MONOCHROME = 0, -	COLOR_ACTIVE, -	COLOR_PASSIVE, -}; - -enum raster_load_mode { -	LOAD_DATA = 1, -	LOAD_PALETTE, -}; - -struct display_panel { -	enum panel_type panel_type; /* QVGA */ -	int max_bpp; -	int min_bpp; -	enum panel_shade panel_shade; -}; - -struct da8xx_panel { -	const char	name[25];	/* Full name <vendor>_<model> */ -	unsigned short	width; -	unsigned short	height; -	int		hfp;		/* Horizontal front porch */ -	int		hbp;		/* Horizontal back porch */ -	int		hsw;		/* Horizontal Sync Pulse Width */ -	int		vfp;		/* Vertical front porch */ -	int		vbp;		/* Vertical back porch */ -	int		vsw;		/* Vertical Sync Pulse Width */ -	unsigned int	pxl_clk;	/* Pixel clock */ -	unsigned char	invert_pxl_clk;	/* Invert Pixel clock */ -}; - -struct da8xx_lcdc_platform_data { -	const char manu_name[10]; -	void *controller_data; -	const char type[25]; -	void (*panel_power_ctrl)(int); -}; - -struct lcd_ctrl_config { -	const struct display_panel *p_disp_panel; - -	/* AC Bias Pin Frequency */ -	int ac_bias; - -	/* AC Bias Pin Transitions per Interrupt */ -	int ac_bias_intrpt; - -	/* DMA burst size */ -	int dma_burst_sz; - -	/* Bits per pixel */ -	int bpp; - -	/* FIFO DMA Request Delay */ -	int fdd; - -	/* TFT Alternative Signal Mapping (Only for active) */ -	unsigned char tft_alt_mode; - -	/* 12 Bit Per Pixel (5-6-5) Mode (Only for passive) */ -	unsigned char stn_565_mode; - -	/* Mono 8-bit Mode: 1=D0-D7 or 0=D0-D3 */ -	unsigned char mono_8bit_mode; - -	/* Invert line clock */ -	unsigned char invert_line_clock; - -	/* Invert frame clock  */ -	unsigned char invert_frm_clock; - -	/* Horizontal and Vertical Sync Edge: 0=rising 1=falling */ -	unsigned char sync_edge; - -	/* Horizontal and Vertical Sync: Control: 0=ignore */ -	unsigned char sync_ctrl; - -	/* Raster Data Order Select: 1=Most-to-least 0=Least-to-most */ -	unsigned char raster_order; -}; - -struct lcd_sync_arg { -	int back_porch; -	int front_porch; -	int pulse_width; -}; - -void da8xx_video_init(const struct da8xx_panel *panel, int bits_pixel); - -#endif  /* ifndef DA8XX_FB_H */ diff --git a/arch/arm/include/asm/arch-davinci/pinmux_defs.h b/arch/arm/include/asm/arch-davinci/pinmux_defs.h index 4d45799a6..2d82af554 100644 --- a/arch/arm/include/asm/arch-davinci/pinmux_defs.h +++ b/arch/arm/include/asm/arch-davinci/pinmux_defs.h @@ -23,12 +23,13 @@ extern const struct pinmux_config spi1_pins_scs0[1];  /* UART pin muxer settings */  extern const struct pinmux_config uart0_pins_txrx[2]; +extern const struct pinmux_config uart0_pins_rtscts[2];  extern const struct pinmux_config uart1_pins_txrx[2];  extern const struct pinmux_config uart2_pins_txrx[2];  extern const struct pinmux_config uart2_pins_rtscts[2];  /* EMAC pin muxer settings*/ -extern const struct pinmux_config emac_pins_rmii[7]; +extern const struct pinmux_config emac_pins_rmii[8];  extern const struct pinmux_config emac_pins_rmii_clk_source[1];  extern const struct pinmux_config emac_pins_mii[15];  extern const struct pinmux_config emac_pins_mdio[2]; diff --git a/arch/arm/include/asm/arch-exynos/mipi_dsim.h b/arch/arm/include/asm/arch-exynos/mipi_dsim.h index 8916d9d16..498a9ffc0 100644 --- a/arch/arm/include/asm/arch-exynos/mipi_dsim.h +++ b/arch/arm/include/asm/arch-exynos/mipi_dsim.h @@ -291,7 +291,7 @@ struct exynos_platform_mipi_dsim {   */  struct mipi_dsim_master_ops {  	int (*cmd_write)(struct mipi_dsim_device *dsim, unsigned int data_id, -		unsigned int data0, unsigned int data1); +		const unsigned char *data0, unsigned int data1);  	int (*cmd_read)(struct mipi_dsim_device *dsim, unsigned int data_id,  		unsigned int data0, unsigned int data1);  	int (*get_dsim_frame_done)(struct mipi_dsim_device *dsim); diff --git a/arch/arm/include/asm/arch-mx5/clock.h b/arch/arm/include/asm/arch-mx5/clock.h index 406d150ae..9ee79aede 100644 --- a/arch/arm/include/asm/arch-mx5/clock.h +++ b/arch/arm/include/asm/arch-mx5/clock.h @@ -46,10 +46,10 @@ u32 imx_get_fecclk(void);  unsigned int mxc_get_clock(enum mxc_clock clk);  int mxc_set_clock(u32 ref, u32 freq, u32 clk_type);  void set_usb_phy_clk(void); -void enable_usb_phy1_clk(unsigned char enable); -void enable_usb_phy2_clk(unsigned char enable); +void enable_usb_phy1_clk(bool enable); +void enable_usb_phy2_clk(bool enable);  void set_usboh3_clk(void); -void enable_usboh3_clk(unsigned char enable); +void enable_usboh3_clk(bool enable);  void mxc_set_sata_internal_clock(void);  int enable_i2c_clk(unsigned char enable, unsigned i2c_num);  void enable_nfc_clk(unsigned char enable); diff --git a/arch/arm/include/asm/arch-mx6/clock.h b/arch/arm/include/asm/arch-mx6/clock.h index 21a4fbb59..c49368765 100644 --- a/arch/arm/include/asm/arch-mx6/clock.h +++ b/arch/arm/include/asm/arch-mx6/clock.h @@ -49,5 +49,5 @@ void enable_ocotp_clk(unsigned char enable);  void enable_usboh3_clk(unsigned char enable);  int enable_sata_clock(void);  int enable_i2c_clk(unsigned char enable, unsigned i2c_num); - +void enable_ipu_clock(void);  #endif /* __ASM_ARCH_CLOCK_H */ diff --git a/arch/arm/include/asm/arch-mx6/mxc_hdmi.h b/arch/arm/include/asm/arch-mx6/mxc_hdmi.h index 561e8ff82..e5e3eff59 100644 --- a/arch/arm/include/asm/arch-mx6/mxc_hdmi.h +++ b/arch/arm/include/asm/arch-mx6/mxc_hdmi.h @@ -9,6 +9,11 @@  #ifndef __MXC_HDMI_H__  #define __MXC_HDMI_H__ +#ifdef CONFIG_IMX_HDMI +void imx_enable_hdmi_phy(void); +void imx_setup_hdmi(void); +#endif +  /*   * Hdmi controller registers   */ @@ -884,6 +889,9 @@ enum {  	HDMI_PHY_HPD = 0x02,  	HDMI_PHY_TX_PHY_LOCK = 0x01, +/* Convenience macro RX_SENSE | HPD */ +	HDMI_DVI_STAT = 0xF2, +  /* PHY_I2CM_SLAVE_ADDR field values */  	HDMI_PHY_I2CM_SLAVE_ADDR_PHY_GEN2 = 0x69,  	HDMI_PHY_I2CM_SLAVE_ADDR_HEAC_PHY = 0x49, diff --git a/arch/arm/include/asm/arch-omap3/clock.h b/arch/arm/include/asm/arch-omap3/clock.h index da776cf5b..514839c77 100644 --- a/arch/arm/include/asm/arch-omap3/clock.h +++ b/arch/arm/include/asm/arch-omap3/clock.h @@ -61,6 +61,7 @@ extern dpll_param *get_36x_mpu_dpll_param(void);  extern dpll_param *get_36x_iva_dpll_param(void);  extern dpll_param *get_36x_core_dpll_param(void);  extern dpll_param *get_36x_per_dpll_param(void); +extern dpll_param *get_36x_per2_dpll_param(void);  extern void *_end_vect, *_start; diff --git a/arch/arm/include/asm/arch-omap3/clocks_omap3.h b/arch/arm/include/asm/arch-omap3/clocks_omap3.h index bf7fa0020..df73c4b2e 100644 --- a/arch/arm/include/asm/arch-omap3/clocks_omap3.h +++ b/arch/arm/include/asm/arch-omap3/clocks_omap3.h @@ -323,4 +323,26 @@  #define PER_36XX_FSEL_38P4	0x07  #define PER_36XX_M2_38P4	0x09 +/* 36XX PER2 DPLL */ + +#define PER2_36XX_M_12		0x50 +#define PER2_36XX_N_12		0x00 +#define PER2_36XX_M2_12		0x08 + +#define PER2_36XX_M_13		0x1BB +#define PER2_36XX_N_13		0x05 +#define PER2_36XX_M2_13		0x08 + +#define PER2_36XX_M_19P2		0x32 +#define PER2_36XX_N_19P2		0x00 +#define PER2_36XX_M2_19P2		0x08 + +#define PER2_36XX_M_26		0x1BB +#define PER2_36XX_N_26		0x0B +#define PER2_36XX_M2_26		0x08 + +#define PER2_36XX_M_38P4		0x19 +#define PER2_36XX_N_38P4		0x00 +#define PER2_36XX_M2_38P4		0x08 +  #endif	/* endif _CLOCKS_OMAP3_H_ */ diff --git a/arch/arm/include/asm/arch-omap3/gpio.h b/arch/arm/include/asm/arch-omap3/gpio.h index d72f5e50a..f664c1199 100644 --- a/arch/arm/include/asm/arch-omap3/gpio.h +++ b/arch/arm/include/asm/arch-omap3/gpio.h @@ -2,20 +2,7 @@   * Copyright (c) 2009 Wind River Systems, Inc.   * Tom Rix <Tom.Rix@windriver.com>   * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA + * SPDX-License-Identifier:	GPL-2.0   *   * This work is derived from the linux 2.6.27 kernel source   * To fetch, use the kernel repository @@ -30,10 +17,6 @@   *   * Copyright (C) 2003-2005 Nokia Corporation   * Written by Juha Yrjölä <juha.yrjola@nokia.com> - * - * 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 _GPIO_OMAP3_H  #define _GPIO_OMAP3_H diff --git a/arch/arm/include/asm/arch-omap4/gpio.h b/arch/arm/include/asm/arch-omap4/gpio.h index fdf65edab..72ba1d71a 100644 --- a/arch/arm/include/asm/arch-omap4/gpio.h +++ b/arch/arm/include/asm/arch-omap4/gpio.h @@ -2,20 +2,7 @@   * Copyright (c) 2009 Wind River Systems, Inc.   * Tom Rix <Tom.Rix@windriver.com>   * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA + * SPDX-License-Identifier:	GPL-2.0   *   * This work is derived from the linux 2.6.27 kernel source   * To fetch, use the kernel repository @@ -30,10 +17,6 @@   *   * Copyright (C) 2003-2005 Nokia Corporation   * Written by Juha Yrjölä <juha.yrjola@nokia.com> - * - * 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 _GPIO_OMAP4_H  #define _GPIO_OMAP4_H diff --git a/arch/arm/include/asm/arch-omap5/clock.h b/arch/arm/include/asm/arch-omap5/clock.h index 3adfc090f..9a2166ce4 100644 --- a/arch/arm/include/asm/arch-omap5/clock.h +++ b/arch/arm/include/asm/arch-omap5/clock.h @@ -149,6 +149,23 @@  /* CM_L3INIT_USBPHY_CLKCTRL */  #define USBPHY_CLKCTRL_OPTFCLKEN_PHY_48M_MASK	8 +/* CM_L3INIT_USB_HOST_HS_CLKCTRL */ +#define OPTFCLKEN_FUNC48M_CLK			(1 << 15) +#define OPTFCLKEN_HSIC480M_P2_CLK		(1 << 14) +#define OPTFCLKEN_HSIC480M_P1_CLK		(1 << 13) +#define OPTFCLKEN_HSIC60M_P2_CLK		(1 << 12) +#define OPTFCLKEN_HSIC60M_P1_CLK		(1 << 11) +#define OPTFCLKEN_UTMI_P3_CLK			(1 << 10) +#define OPTFCLKEN_UTMI_P2_CLK			(1 << 9) +#define OPTFCLKEN_UTMI_P1_CLK			(1 << 8) +#define OPTFCLKEN_HSIC480M_P3_CLK		(1 << 7) +#define OPTFCLKEN_HSIC60M_P3_CLK		(1 << 6) + +/* CM_L3INIT_USB_TLL_HS_CLKCTRL */ +#define OPTFCLKEN_USB_CH0_CLK_ENABLE	(1 << 8) +#define OPTFCLKEN_USB_CH1_CLK_ENABLE	(1 << 9) +#define OPTFCLKEN_USB_CH2_CLK_ENABLE	(1 << 10) +  /* CM_MPU_MPU_CLKCTRL */  #define MPU_CLKCTRL_CLKSEL_EMIF_DIV_MODE_SHIFT	24  #define MPU_CLKCTRL_CLKSEL_EMIF_DIV_MODE_MASK	(3 << 24) diff --git a/arch/arm/include/asm/arch-omap5/cpu.h b/arch/arm/include/asm/arch-omap5/cpu.h index 3de598494..fb5a568b6 100644 --- a/arch/arm/include/asm/arch-omap5/cpu.h +++ b/arch/arm/include/asm/arch-omap5/cpu.h @@ -99,6 +99,8 @@ struct watchdog {  #endif /* __ASSEMBLY__ */  #endif /* __KERNEL_STRICT_NAMES */ +#define BIT(x)				(1 << (x)) +  #define WD_UNLOCK1		0xAAAA  #define WD_UNLOCK2		0x5555 @@ -158,4 +160,8 @@ struct watchdog {  #define PRM_RSTST		(PRM_DEVICE_BASE + 0x4)  #define PRM_RSTST_WARM_RESET_MASK	0x7FEA +/* DRA7XX CPSW Config space */ +#define CPSW_BASE			0x48484000 +#define CPSW_MDIO_BASE			0x48485000 +  #endif /* _CPU_H */ diff --git a/arch/arm/include/asm/arch-omap5/ehci.h b/arch/arm/include/asm/arch-omap5/ehci.h new file mode 100644 index 000000000..3921e4ab4 --- /dev/null +++ b/arch/arm/include/asm/arch-omap5/ehci.h @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com* + * Author: Govindraj R <govindraj.raja@ti.com> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef _EHCI_H +#define _EHCI_H + +#define OMAP_EHCI_BASE				(OMAP54XX_L4_CORE_BASE + 0x64C00) +#define OMAP_UHH_BASE				(OMAP54XX_L4_CORE_BASE + 0x64000) +#define OMAP_USBTLL_BASE			(OMAP54XX_L4_CORE_BASE + 0x62000) + +/* TLL Register Set */ +#define OMAP_USBTLL_SYSCONFIG_SIDLEMODE		(1 << 3) +#define OMAP_USBTLL_SYSCONFIG_ENAWAKEUP		(1 << 2) +#define OMAP_USBTLL_SYSCONFIG_SOFTRESET		(1 << 1) +#define OMAP_USBTLL_SYSCONFIG_CACTIVITY		(1 << 8) +#define OMAP_USBTLL_SYSSTATUS_RESETDONE		1 + +#define OMAP_UHH_SYSCONFIG_SOFTRESET		1 +#define OMAP_UHH_SYSSTATUS_EHCI_RESETDONE	(1 << 2) +#define OMAP_UHH_SYSCONFIG_NOIDLE		(1 << 2) +#define OMAP_UHH_SYSCONFIG_NOSTDBY		(1 << 4) + +#define OMAP_UHH_SYSCONFIG_VAL	(OMAP_UHH_SYSCONFIG_NOIDLE | \ +					OMAP_UHH_SYSCONFIG_NOSTDBY) + +#endif /* _EHCI_H */ diff --git a/arch/arm/include/asm/arch-omap5/gpio.h b/arch/arm/include/asm/arch-omap5/gpio.h index 7c82f9036..9dd03c9fa 100644 --- a/arch/arm/include/asm/arch-omap5/gpio.h +++ b/arch/arm/include/asm/arch-omap5/gpio.h @@ -2,20 +2,7 @@   * Copyright (c) 2009 Wind River Systems, Inc.   * Tom Rix <Tom.Rix@windriver.com>   * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA + * SPDX-License-Identifier:	GPL-2.0   *   * This work is derived from the linux 2.6.27 kernel source   * To fetch, use the kernel repository @@ -30,10 +17,6 @@   *   * Copyright (C) 2003-2005 Nokia Corporation   * Written by Juha Yrjölä <juha.yrjola@nokia.com> - * - * 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 _GPIO_OMAP5_H  #define _GPIO_OMAP5_H diff --git a/arch/arm/include/asm/arch-omap5/omap.h b/arch/arm/include/asm/arch-omap5/omap.h index d08fcff8b..597c692b9 100644 --- a/arch/arm/include/asm/arch-omap5/omap.h +++ b/arch/arm/include/asm/arch-omap5/omap.h @@ -192,6 +192,27 @@ struct s32ktimer {  #define OMAP5_ABB_LDOVBBMPU_MUX_CTRL_MASK	(0x1 << 10)  #define OMAP5_ABB_LDOVBBMPU_VSET_OUT_MASK	(0x1f << 0) +/* IO Delay module defines */ +#define CFG_IO_DELAY_BASE		0x4844A000 +#define CFG_IO_DELAY_LOCK		(CFG_IO_DELAY_BASE + 0x02C) + +/* CPSW IO Delay registers*/ +#define CFG_RGMII0_TXCTL		(CFG_IO_DELAY_BASE + 0x74C) +#define CFG_RGMII0_TXD0			(CFG_IO_DELAY_BASE + 0x758) +#define CFG_RGMII0_TXD1			(CFG_IO_DELAY_BASE + 0x764) +#define CFG_RGMII0_TXD2			(CFG_IO_DELAY_BASE + 0x770) +#define CFG_RGMII0_TXD3			(CFG_IO_DELAY_BASE + 0x77C) +#define CFG_VIN2A_D13			(CFG_IO_DELAY_BASE + 0xA7C) +#define CFG_VIN2A_D17			(CFG_IO_DELAY_BASE + 0xAAC) +#define CFG_VIN2A_D16			(CFG_IO_DELAY_BASE + 0xAA0) +#define CFG_VIN2A_D15			(CFG_IO_DELAY_BASE + 0xA94) +#define CFG_VIN2A_D14			(CFG_IO_DELAY_BASE + 0xA88) + +#define CFG_IO_DELAY_UNLOCK_KEY		0x0000AAAA +#define CFG_IO_DELAY_LOCK_KEY		0x0000AAAB +#define CFG_IO_DELAY_ACCESS_PATTERN	0x00029000 +#define CFG_IO_DELAY_LOCK_MASK		0x400 +  #ifndef __ASSEMBLY__  struct srcomp_params {  	s8 divide_factor; @@ -208,5 +229,10 @@ struct ctrl_ioregs {  	u32 ctrl_emif_sdram_config_ext;  	u32 ctrl_ddr_ctrl_ext_0;  }; + +struct io_delay { +	u32 addr; +	u32 dly; +};  #endif /* __ASSEMBLY__ */  #endif diff --git a/arch/arm/include/asm/arch-zynq/hardware.h b/arch/arm/include/asm/arch-zynq/hardware.h index ca56d8a2d..cd6967772 100644 --- a/arch/arm/include/asm/arch-zynq/hardware.h +++ b/arch/arm/include/asm/arch-zynq/hardware.h @@ -17,6 +17,8 @@  #define ZYNQ_SDHCI_BASEADDR1		0xE0101000  #define ZYNQ_I2C_BASEADDR0		0xE0004000  #define ZYNQ_I2C_BASEADDR1		0xE0005000 +#define ZYNQ_SPI_BASEADDR0		0xE0006000 +#define ZYNQ_SPI_BASEADDR1		0xE0007000  #define ZYNQ_DDRC_BASEADDR		0xF8006000  /* Reflect slcr offsets */ diff --git a/arch/arm/include/asm/ehci-omap.h b/arch/arm/include/asm/ehci-omap.h index 77e81701b..ac83a539a 100644 --- a/arch/arm/include/asm/ehci-omap.h +++ b/arch/arm/include/asm/ehci-omap.h @@ -42,6 +42,7 @@ enum usbhs_omap_port_mode {  /* Values of UHH_REVISION - Note: these are not given in the TRM */  #define OMAP_USBHS_REV1					0x00000010 /* OMAP3 */  #define OMAP_USBHS_REV2					0x50700100 /* OMAP4 */ +#define OMAP_USBHS_REV2_1				0x50700101 /* OMAP5 */  /* UHH Register Set */  #define OMAP_UHH_HOSTCONFIG_INCR4_BURST_EN		(1 << 2) @@ -60,6 +61,7 @@ enum usbhs_omap_port_mode {  #define OMAP_P2_MODE_CLEAR				(3 << 18)  #define OMAP_P2_MODE_TLL				(1 << 18)  #define OMAP_P2_MODE_HSIC				(3 << 18) +#define OMAP_P3_MODE_CLEAR				(3 << 20)  #define OMAP_P3_MODE_HSIC				(3 << 20)  /* EHCI Register Set */ diff --git a/arch/arm/include/asm/imx-common/dma.h b/arch/arm/include/asm/imx-common/dma.h index 5f516ef6e..d5c1f7f25 100644 --- a/arch/arm/include/asm/imx-common/dma.h +++ b/arch/arm/include/asm/imx-common/dma.h @@ -161,4 +161,6 @@ void mxs_dma_init(void);  int mxs_dma_init_channel(int chan);  int mxs_dma_release(int chan); +void mxs_dma_circ_start(int chan, struct mxs_dma_desc *pdesc); +  #endif	/* __DMA_H__ */ diff --git a/arch/arm/include/asm/omap_common.h b/arch/arm/include/asm/omap_common.h index b56e9493e..66f416f99 100644 --- a/arch/arm/include/asm/omap_common.h +++ b/arch/arm/include/asm/omap_common.h @@ -73,6 +73,7 @@ struct prcm_regs {  	u32 cm_ssc_deltamstep_dpll_ddrphy;  	u32 cm_clkmode_dpll_dsp;  	u32 cm_shadow_freq_config1; +	u32 cm_clkmode_dpll_gmac;  	u32 cm_mpu_mpu_clkctrl;  	/* cm1.dsp */ @@ -339,10 +340,18 @@ struct prcm_regs {  	/* SCRM stuff, used by some boards */  	u32 scrm_auxclk0;  	u32 scrm_auxclk1; + +	/* GMAC Clk Ctrl */ +	u32 cm_gmac_gmac_clkctrl; +	u32 cm_gmac_clkstctrl;  };  struct omap_sys_ctrl_regs {  	u32 control_status; +	u32 control_core_mac_id_0_lo; +	u32 control_core_mac_id_0_hi; +	u32 control_core_mac_id_1_lo; +	u32 control_core_mac_id_1_hi;  	u32 control_std_fuse_opp_vdd_mpu_2;  	u32 control_core_mmr_lock1;  	u32 control_core_mmr_lock2; @@ -483,6 +492,7 @@ struct dplls {  	const struct dpll_params *iva;  	const struct dpll_params *usb;  	const struct dpll_params *ddr; +	const struct dpll_params *gmac;  };  struct pmic_data { diff --git a/arch/arm/include/asm/omap_gpio.h b/arch/arm/include/asm/omap_gpio.h index 1ebfa8694..5d25d04c3 100644 --- a/arch/arm/include/asm/omap_gpio.h +++ b/arch/arm/include/asm/omap_gpio.h @@ -2,20 +2,7 @@   * Copyright (c) 2009 Wind River Systems, Inc.   * Tom Rix <Tom.Rix@windriver.com>   * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA + * SPDX-License-Identifier:	GPL-2.0   *   * This work is derived from the linux 2.6.27 kernel source   * To fetch, use the kernel repository @@ -30,10 +17,6 @@   *   * Copyright (C) 2003-2005 Nokia Corporation   * Written by Juha Yrjölä <juha.yrjola@nokia.com> - * - * 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 _GPIO_H  #define _GPIO_H |