diff options
Diffstat (limited to 'arch/arm/include')
28 files changed, 2414 insertions, 278 deletions
| diff --git a/arch/arm/include/asm/arch-am33xx/ddr_defs.h b/arch/arm/include/asm/arch-am33xx/ddr_defs.h index fe48b5fed..2278358ab 100644 --- a/arch/arm/include/asm/arch-am33xx/ddr_defs.h +++ b/arch/arm/include/asm/arch-am33xx/ddr_defs.h @@ -18,7 +18,6 @@  #define VTP_CTRL_READY		(0x1 << 5)  #define VTP_CTRL_ENABLE		(0x1 << 6)  #define VTP_CTRL_START_EN	(0x1) -#define PHY_DLL_LOCK_DIFF	0x0  #define DDR_CKE_CTRL_NORMAL	0x1  #define PHY_EN_DYN_PWRDN	(0x1 << 20) @@ -29,7 +28,6 @@  #define MT47H128M16RT25E_EMIF_TIM3		0x0000033F  #define MT47H128M16RT25E_EMIF_SDCFG		0x41805332  #define MT47H128M16RT25E_EMIF_SDREF		0x0000081a -#define MT47H128M16RT25E_DLL_LOCK_DIFF		0x0  #define MT47H128M16RT25E_RATIO			0x80  #define MT47H128M16RT25E_INVERT_CLKOUT		0x00  #define MT47H128M16RT25E_RD_DQS			0x12 @@ -38,7 +36,6 @@  #define MT47H128M16RT25E_PHY_GATELVL		0x00  #define MT47H128M16RT25E_PHY_WR_DATA		0x40  #define MT47H128M16RT25E_PHY_FIFO_WE		0x80 -#define MT47H128M16RT25E_PHY_RANK0_DELAY		0x1  #define MT47H128M16RT25E_IOCTRL_VALUE		0x18B  /* Micron MT41J128M16JT-125 */ @@ -49,7 +46,6 @@  #define MT41J128MJT125_EMIF_SDCFG		0x61C04AB2  #define MT41J128MJT125_EMIF_SDREF		0x0000093B  #define MT41J128MJT125_ZQ_CFG			0x50074BE4 -#define MT41J128MJT125_DLL_LOCK_DIFF		0x1  #define MT41J128MJT125_RATIO			0x40  #define MT41J128MJT125_INVERT_CLKOUT		0x1  #define MT41J128MJT125_RD_DQS			0x3B @@ -58,6 +54,12 @@  #define MT41J128MJT125_PHY_FIFO_WE		0x100  #define MT41J128MJT125_IOCTRL_VALUE		0x18B +/* Micron MT41J64M16JT-125 */ +#define MT41J64MJT125_EMIF_SDCFG		0x61C04A32 + +/* Micron MT41J256M16JT-125 */ +#define MT41J256MJT125_EMIF_SDCFG		0x61C04B32 +  /* Micron MT41J256M8HX-15E */  #define MT41J256M8HX15E_EMIF_READ_LATENCY	0x06  #define MT41J256M8HX15E_EMIF_TIM1		0x0888A39B @@ -66,7 +68,6 @@  #define MT41J256M8HX15E_EMIF_SDCFG		0x61C04B32  #define MT41J256M8HX15E_EMIF_SDREF		0x0000093B  #define MT41J256M8HX15E_ZQ_CFG			0x50074BE4 -#define MT41J256M8HX15E_DLL_LOCK_DIFF		0x1  #define MT41J256M8HX15E_RATIO			0x40  #define MT41J256M8HX15E_INVERT_CLKOUT		0x1  #define MT41J256M8HX15E_RD_DQS			0x3B @@ -83,7 +84,6 @@  #define MT41K256M16HA125E_EMIF_SDCFG		0x61C05332  #define MT41K256M16HA125E_EMIF_SDREF		0xC30  #define MT41K256M16HA125E_ZQ_CFG		0x50074BE4 -#define MT41K256M16HA125E_DLL_LOCK_DIFF		0x1  #define MT41K256M16HA125E_RATIO			0x80  #define MT41K256M16HA125E_INVERT_CLKOUT		0x0  #define MT41K256M16HA125E_RD_DQS		0x38 @@ -100,7 +100,6 @@  #define MT41J512M8RH125_EMIF_SDCFG		0x61C04BB2  #define MT41J512M8RH125_EMIF_SDREF		0x0000093B  #define MT41J512M8RH125_ZQ_CFG			0x50074BE4 -#define MT41J512M8RH125_DLL_LOCK_DIFF		0x1  #define MT41J512M8RH125_RATIO			0x80  #define MT41J512M8RH125_INVERT_CLKOUT		0x0  #define MT41J512M8RH125_RD_DQS			0x3B @@ -117,7 +116,6 @@  #define K4B2G1646EBIH9_EMIF_SDCFG		0x61C052B2  #define K4B2G1646EBIH9_EMIF_SDREF		0x00000C30  #define K4B2G1646EBIH9_ZQ_CFG			0x50074BE4 -#define K4B2G1646EBIH9_DLL_LOCK_DIFF		0x1  #define K4B2G1646EBIH9_RATIO			0x80  #define K4B2G1646EBIH9_INVERT_CLKOUT		0x0  #define K4B2G1646EBIH9_RD_DQS			0x35 @@ -149,18 +147,15 @@ void config_ddr_phy(const struct emif_regs *regs, int nr);  struct ddr_cmd_regs {  	unsigned int resv0[7];  	unsigned int cm0csratio;	/* offset 0x01C */ -	unsigned int resv1[2]; -	unsigned int cm0dldiff;		/* offset 0x028 */ +	unsigned int resv1[3];  	unsigned int cm0iclkout;	/* offset 0x02C */  	unsigned int resv2[8];  	unsigned int cm1csratio;	/* offset 0x050 */ -	unsigned int resv3[2]; -	unsigned int cm1dldiff;		/* offset 0x05C */ +	unsigned int resv3[3];  	unsigned int cm1iclkout;	/* offset 0x060 */  	unsigned int resv4[8];  	unsigned int cm2csratio;	/* offset 0x084 */ -	unsigned int resv5[2]; -	unsigned int cm2dldiff;		/* offset 0x090 */ +	unsigned int resv5[3];  	unsigned int cm2iclkout;	/* offset 0x094 */  	unsigned int resv6[3];  }; @@ -197,24 +192,21 @@ struct ddr_regs {  	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 resv2[3];  	unsigned int cm0iclkout;	/* offset 0x02C */  	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 resv5[2]; -	unsigned int cm1dldiff;		/* offset 0x05C */ +	unsigned int resv5[3];  	unsigned int cm1iclkout;	/* offset 0x060 */  	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 resv8[2]; -	unsigned int cm2dldiff;		/* offset 0x090 */ +	unsigned int resv8[3];  	unsigned int cm2iclkout;	/* offset 0x094 */  	unsigned int resv9[12];  	unsigned int dt0rdsratio0;	/* offset 0x0C8 */ @@ -243,17 +235,14 @@ struct cmd_control {  	unsigned long cmd0csratio;  	unsigned long cmd0csforce;  	unsigned long cmd0csdelay; -	unsigned long cmd0dldiff;  	unsigned long cmd0iclkout;  	unsigned long cmd1csratio;  	unsigned long cmd1csforce;  	unsigned long cmd1csdelay; -	unsigned long cmd1dldiff;  	unsigned long cmd1iclkout;  	unsigned long cmd2csratio;  	unsigned long cmd2csforce;  	unsigned long cmd2csdelay; -	unsigned long cmd2dldiff;  	unsigned long cmd2iclkout;  }; @@ -267,8 +256,6 @@ struct ddr_data {  	unsigned long datagiratio0;  	unsigned long datafwsratio0;  	unsigned long datawrsratio0; -	unsigned long datauserank0delay; -	unsigned long datadldiff0;  };  /** diff --git a/arch/arm/include/asm/arch-at91/at91_common.h b/arch/arm/include/asm/arch-at91/at91_common.h index abcb97d10..59e2f4391 100644 --- a/arch/arm/include/asm/arch-at91/at91_common.h +++ b/arch/arm/include/asm/arch-at91/at91_common.h @@ -22,5 +22,10 @@ void at91_spi1_hw_init(unsigned long cs_mask);  void at91_udp_hw_init(void);  void at91_uhp_hw_init(void);  void at91_lcd_hw_init(void); +void at91_plla_init(u32 pllar); +void at91_mck_init(u32 mckr); +void at91_pmc_init(void); +void mem_init(void); +void at91_phy_reset(void);  #endif /* AT91_COMMON_H */ diff --git a/arch/arm/include/asm/arch-at91/at91_pio.h b/arch/arm/include/asm/arch-at91/at91_pio.h index 676f024e4..50464ffe8 100644 --- a/arch/arm/include/asm/arch-at91/at91_pio.h +++ b/arch/arm/include/asm/arch-at91/at91_pio.h @@ -151,37 +151,4 @@ int at91_get_pio_value(unsigned port, unsigned pin);  #define	AT91_PIO_PORTD		0x3  #define	AT91_PIO_PORTE		0x4 -#ifdef CONFIG_AT91_LEGACY - -#define PIO_PER		0x00	/* Enable Register */ -#define PIO_PDR		0x04	/* Disable Register */ -#define PIO_PSR		0x08	/* Status Register */ -#define PIO_OER		0x10	/* Output Enable Register */ -#define PIO_ODR		0x14	/* Output Disable Register */ -#define PIO_OSR		0x18	/* Output Status Register */ -#define PIO_IFER	0x20	/* Glitch Input Filter Enable */ -#define PIO_IFDR	0x24	/* Glitch Input Filter Disable */ -#define PIO_IFSR	0x28	/* Glitch Input Filter Status */ -#define PIO_SODR	0x30	/* Set Output Data Register */ -#define PIO_CODR	0x34	/* Clear Output Data Register */ -#define PIO_ODSR	0x38	/* Output Data Status Register */ -#define PIO_PDSR	0x3c	/* Pin Data Status Register */ -#define PIO_IER		0x40	/* Interrupt Enable Register */ -#define PIO_IDR		0x44	/* Interrupt Disable Register */ -#define PIO_IMR		0x48	/* Interrupt Mask Register */ -#define PIO_ISR		0x4c	/* Interrupt Status Register */ -#define PIO_MDER	0x50	/* Multi-driver Enable Register */ -#define PIO_MDDR	0x54	/* Multi-driver Disable Register */ -#define PIO_MDSR	0x58	/* Multi-driver Status Register */ -#define PIO_PUDR	0x60	/* Pull-up Disable Register */ -#define PIO_PUER	0x64	/* Pull-up Enable Register */ -#define PIO_PUSR	0x68	/* Pull-up Status Register */ -#define PIO_ASR		0x70	/* Peripheral A Select Register */ -#define PIO_BSR		0x74	/* Peripheral B Select Register */ -#define PIO_ABSR	0x78	/* AB Status Register */ -#define PIO_OWER	0xa0	/* Output Write Enable Register */ -#define PIO_OWDR	0xa4	/* Output Write Disable Register */ -#define PIO_OWSR	0xa8	/* Output Write Status Register */ -#endif -  #endif diff --git a/arch/arm/include/asm/arch-at91/at91_pit.h b/arch/arm/include/asm/arch-at91/at91_pit.h index d314b062b..56724f15e 100644 --- a/arch/arm/include/asm/arch-at91/at91_pit.h +++ b/arch/arm/include/asm/arch-at91/at91_pit.h @@ -25,20 +25,4 @@ typedef struct at91_pit {  #define		AT91_PIT_MR_PIV_MASK(x)	(x & 0x000fffff)  #define		AT91_PIT_MR_PIV(x)	(x & AT91_PIT_MR_PIV_MASK) -#ifdef CONFIG_AT91_LEGACY - -#define AT91_PIT_MR		(AT91_PIT + 0x00)	/* Mode Register */ -#define		AT91_PIT_PITIEN		(1 << 25)		/* Timer Interrupt Enable */ -#define		AT91_PIT_PITEN		(1 << 24)		/* Timer Enabled */ -#define		AT91_PIT_PIV		(0xfffff)		/* Periodic Interval Value */ - -#define AT91_PIT_SR		(AT91_PIT + 0x04)	/* Status Register */ -#define		AT91_PIT_PITS		(1 << 0)		/* Timer Status */ - -#define AT91_PIT_PIVR		(AT91_PIT + 0x08)	/* Periodic Interval Value Register */ -#define AT91_PIT_PIIR		(AT91_PIT + 0x0c)	/* Periodic Interval Image Register */ -#define		AT91_PIT_PICNT		(0xfff << 20)		/* Interval Counter */ -#define		AT91_PIT_CPIV		(0xfffff)		/* Inverval Value */ - -#endif /* CONFIG_AT91_LEGACY */  #endif diff --git a/arch/arm/include/asm/arch-at91/at91_pmc.h b/arch/arm/include/asm/arch-at91/at91_pmc.h index 7b36f74f8..453560843 100644 --- a/arch/arm/include/asm/arch-at91/at91_pmc.h +++ b/arch/arm/include/asm/arch-at91/at91_pmc.h @@ -14,13 +14,15 @@  #ifndef AT91_PMC_H  #define AT91_PMC_H +#ifdef __ASSEMBLY__ +  #define	AT91_ASM_PMC_MOR	(ATMEL_BASE_PMC + 0x20)  #define	AT91_ASM_PMC_PLLAR	(ATMEL_BASE_PMC + 0x28)  #define	AT91_ASM_PMC_PLLBR	(ATMEL_BASE_PMC + 0x2c)  #define AT91_ASM_PMC_MCKR	(ATMEL_BASE_PMC + 0x30)  #define AT91_ASM_PMC_SR		(ATMEL_BASE_PMC + 0x68) -#ifndef __ASSEMBLY__ +#else  #include <asm/types.h> @@ -73,7 +75,11 @@ typedef struct at91_pmc {  #define AT91_PMC_PLLXR_DIV(x)		(x & 0xFF)  #define AT91_PMC_PLLXR_PLLCOUNT(x)	((x & 0x3F) << 8)  #define AT91_PMC_PLLXR_OUT(x)		((x & 0x03) << 14) +#ifdef CONFIG_SAMA5D3 +#define AT91_PMC_PLLXR_MUL(x)		((x & 0x7F) << 18) +#else  #define AT91_PMC_PLLXR_MUL(x)		((x & 0x7FF) << 16) +#endif  #define AT91_PMC_PLLAR_29		0x20000000  #define AT91_PMC_PLLBR_USBDIV_1		0x00000000  #define AT91_PMC_PLLBR_USBDIV_2		0x10000000 @@ -124,8 +130,8 @@ typedef struct at91_pmc {  #define AT91_PMC_MCKR_MDIV_MASK		0x00000300  #endif -#define AT91_PMC_MCKR_PLLADIV_1		0x00001000 -#define AT91_PMC_MCKR_PLLADIV_2		0x00002000 +#define AT91_PMC_MCKR_PLLADIV_1		0x00000000 +#define AT91_PMC_MCKR_PLLADIV_2		0x00001000  #define AT91_PMC_IXR_MOSCS		0x00000001  #define AT91_PMC_IXR_LOCKA		0x00000002 @@ -137,13 +143,6 @@ typedef struct at91_pmc {  #define AT91_PMC_IXR_PCKRDY2		0x00000400  #define AT91_PMC_IXR_PCKRDY3		0x00000800 -#ifdef CONFIG_AT91_LEGACY -#define	AT91_PMC_SCER		(AT91_PMC + 0x00)	/* System Clock Enable Register */ -#define	AT91_PMC_SCDR		(AT91_PMC + 0x04)	/* System Clock Disable Register */ - -#define	AT91_PMC_SCSR		(AT91_PMC + 0x08)	/* System Clock Status Register */ -#endif -  #define		AT91_PMC_PCK		(1 <<  0)		/* Processor Clock */  #define		AT91RM9200_PMC_UDP	(1 <<  1)		/* USB Devcice Port Clock [AT91RM9200 only] */  #define		AT91RM9200_PMC_MCKUDP	(1 <<  2)		/* USB Device Port Master Clock Automatic Disable on Suspend [AT91RM9200 only] */ @@ -159,34 +158,18 @@ typedef struct at91_pmc {  #define		AT91_PMC_HCK0		(1 << 16)		/* AHB Clock (USB host) [AT91SAM9261 only] */  #define		AT91_PMC_HCK1		(1 << 17)		/* AHB Clock (LCD) [AT91SAM9261 only] */ -#ifdef CONFIG_AT91_LEGACY -#define	AT91_PMC_PCER		(AT91_PMC + 0x10)	/* Peripheral Clock Enable Register */ -#define	AT91_PMC_PCDR		(AT91_PMC + 0x14)	/* Peripheral Clock Disable Register */ -#define	AT91_PMC_PCSR		(AT91_PMC + 0x18)	/* Peripheral Clock Status Register */ - -#define	AT91_CKGR_UCKR		(AT91_PMC + 0x1C)	/* UTMI Clock Register [SAM9RL, CAP9] */ -#endif -  #define		AT91_PMC_UPLLEN		(1   << 16)		/* UTMI PLL Enable */  #define		AT91_PMC_UPLLCOUNT	(0xf << 20)		/* UTMI PLL Start-up Time */  #define		AT91_PMC_BIASEN		(1   << 24)		/* UTMI BIAS Enable */  #define		AT91_PMC_BIASCOUNT	(0xf << 28)		/* UTMI PLL Start-up Time */ -#ifdef CONFIG_AT91_LEGACY -#define	AT91_CKGR_MOR		(AT91_PMC + 0x20)	/* Main Oscillator Register [not on SAM9RL] */ -#endif  #define		AT91_PMC_MOSCEN		(1    << 0)		/* Main Oscillator Enable */  #define		AT91_PMC_OSCBYPASS	(1    << 1)		/* Oscillator Bypass [SAM9x, CAP9] */  #define		AT91_PMC_OSCOUNT	(0xff << 8)		/* Main Oscillator Start-up Time */ -#ifdef CONFIG_AT91_LEGACY -#define	AT91_CKGR_MCFR		(AT91_PMC + 0x24)	/* Main Clock Frequency Register */ -#endif +  #define		AT91_PMC_MAINF		(0xffff <<  0)		/* Main Clock Frequency */  #define		AT91_PMC_MAINRDY	(1	<< 16)		/* Main Clock Ready */ -#ifdef CONFIG_AT91_LEGACY -#define	AT91_CKGR_PLLAR		(AT91_PMC + 0x28)	/* PLL A Register */ -#define	AT91_CKGR_PLLBR		(AT91_PMC + 0x2c)	/* PLL B Register */ -#endif +  #define		AT91_PMC_DIV		(0xff  <<  0)		/* Divider */  #define		AT91_PMC_PLLCOUNT	(0x3f  <<  8)		/* PLL Counter */  #define		AT91_PMC_OUT		(3     << 14)		/* PLL Clock Frequency Range */ @@ -198,9 +181,6 @@ typedef struct at91_pmc {  #define		AT91_PMC_USB96M		(1     << 28)		/* Divider by 2 Enable (PLLB only) */  #define		AT91_PMC_PLLA_WR_ERRATA	(1     << 29)		/* Bit 29 must always be set to 1 when programming the CKGR_PLLAR register */ -#ifdef CONFIG_AT91_LEGACY -#define	AT91_PMC_MCKR		(AT91_PMC + 0x30)	/* Master Clock Register */ -#endif  #define		AT91_PMC_CSS		(3 <<  0)		/* Master Clock Selection */  #define			AT91_PMC_CSS_SLOW		(0 << 0)  #define			AT91_PMC_CSS_MAIN		(1 << 0) @@ -228,9 +208,6 @@ typedef struct at91_pmc {  #define			AT91_PMC_PDIV_1			(0 << 12)  #define			AT91_PMC_PDIV_2			(1 << 12) -#ifdef CONFIG_AT91_LEGACY -#define		AT91_PMC_USB			(AT91_PMC + 0x38)	/* USB Clock Register */ -#endif  #define		AT91_PMC_USBS_USB_PLLA		(0x0)		/* USB Clock Input is PLLA */  #define		AT91_PMC_USBS_USB_UPLL		(0x1)		/* USB Clock Input is UPLL */  #define		AT91_PMC_USBS_USB_PLLB		(0x1)		/* USB Clock Input is PLLB, AT91SAM9N12 only */ @@ -238,13 +215,6 @@ typedef struct at91_pmc {  #define		AT91_PMC_USBDIV_8		(0x7 <<  8)	/* USB Clock divided by 8 */  #define		AT91_PMC_USBDIV_10		(0x9 <<  8)	/* USB Clock divided by 10 */ -#ifdef CONFIG_AT91_LEGACY -#define	AT91_PMC_PCKR(n)	(AT91_PMC + 0x40 + ((n) * 4))	/* Programmable Clock 0-3 Registers */ - -#define	AT91_PMC_IER		(AT91_PMC + 0x60)	/* Interrupt Enable Register */ -#define	AT91_PMC_IDR		(AT91_PMC + 0x64)	/* Interrupt Disable Register */ -#define	AT91_PMC_SR		(AT91_PMC + 0x68)	/* Status Register */ -#endif  #define		AT91_PMC_MOSCS		(1 <<  0)		/* MOSCS Flag */  #define		AT91_PMC_LOCKA		(1 <<  1)		/* PLLA Lock */  #define		AT91_PMC_LOCKB		(1 <<  2)		/* PLLB Lock */ @@ -255,13 +225,6 @@ typedef struct at91_pmc {  #define		AT91_PMC_PCK1RDY	(1 <<  9)		/* Programmable Clock 1 */  #define		AT91_PMC_PCK2RDY	(1 << 10)		/* Programmable Clock 2 */  #define		AT91_PMC_PCK3RDY	(1 << 11)		/* Programmable Clock 3 */ -#ifdef CONFIG_AT91_LEGACY -#define	AT91_PMC_IMR		(AT91_PMC + 0x6c)	/* Interrupt Mask Register */ -#define AT91_PMC_PROT		(AT91_PMC + 0xe4)	/* Protect Register [AT91CAP9 revC only] */ -#endif  #define		AT91_PMC_PROTKEY	0x504d4301	/* Activation Code */ -#ifdef CONFIG_AT91_LEGACY -#define AT91_PMC_VER		(AT91_PMC + 0xfc)	/* PMC Module Version [AT91CAP9 only] */ -#endif /* CONFIG_AT91_LEGACY */  #endif diff --git a/arch/arm/include/asm/arch-at91/at91_spi.h b/arch/arm/include/asm/arch-at91/at91_spi.h index f44cf6784..b18665b62 100644 --- a/arch/arm/include/asm/arch-at91/at91_spi.h +++ b/arch/arm/include/asm/arch-at91/at91_spi.h @@ -118,6 +118,6 @@ typedef struct at91_spi {  #define AT91_SPI_PTSR		0x0124			/* PDC Transfer Status Register */ -#endif /* CONFIG_AT91_LEGACY */ +#endif /* CONFIG_ATMEL_LEGACY */  #endif diff --git a/arch/arm/include/asm/arch-at91/at91_wdt.h b/arch/arm/include/asm/arch-at91/at91_wdt.h index f0f4ed154..0644bbf3c 100644 --- a/arch/arm/include/asm/arch-at91/at91_wdt.h +++ b/arch/arm/include/asm/arch-at91/at91_wdt.h @@ -40,25 +40,4 @@ typedef struct at91_wdt {  #define AT91_WDT_MR_WDDBGHLT		0x10000000  #define AT91_WDT_MR_WDIDLEHLT		0x20000000 -#ifdef CONFIG_AT91_LEGACY - -#define AT91_WDT_CR		(AT91_WDT + 0x00)	/* Watchdog Control Register */ -#define		AT91_WDT_WDRSTT		(1    << 0)		/* Restart */ -#define		AT91_WDT_KEY		(0xa5 << 24)		/* KEY Password */ - -#define AT91_WDT_MR		(AT91_WDT + 0x04)	/* Watchdog Mode Register */ -#define		AT91_WDT_WDV		(0xfff << 0)		/* Counter Value */ -#define		AT91_WDT_WDFIEN		(1     << 12)		/* Fault Interrupt Enable */ -#define		AT91_WDT_WDRSTEN	(1     << 13)		/* Reset Processor */ -#define		AT91_WDT_WDRPROC	(1     << 14)		/* Timer Restart */ -#define		AT91_WDT_WDDIS		(1     << 15)		/* Watchdog Disable */ -#define		AT91_WDT_WDD		(0xfff << 16)		/* Delta Value */ -#define		AT91_WDT_WDDBGHLT	(1     << 28)		/* Debug Halt */ -#define		AT91_WDT_WDIDLEHLT	(1     << 29)		/* Idle Halt */ - -#define AT91_WDT_SR		(AT91_WDT + 0x08)	/* Watchdog Status Register */ -#define		AT91_WDT_WDUNF		(1 << 0)		/* Watchdog Underflow */ -#define		AT91_WDT_WDERR		(1 << 1)		/* Watchdog Error */ - -#endif /* CONFIG_AT91_LEGACY */  #endif diff --git a/arch/arm/include/asm/arch-at91/at91cap9.h b/arch/arm/include/asm/arch-at91/at91cap9.h index 7ac5bc1e7..63870bc65 100644 --- a/arch/arm/include/asm/arch-at91/at91cap9.h +++ b/arch/arm/include/asm/arch-at91/at91cap9.h @@ -55,75 +55,6 @@  #define AT91_RSTC_BASE	0xfffffd00  #define AT91_PIT_BASE	0xfffffd30 -#ifdef CONFIG_AT91_LEGACY - -/* - * User Peripheral physical base addresses. - */ -#define AT91CAP9_BASE_UDPHS		0xfff78000 -#define AT91CAP9_BASE_TCB0		0xfff7c000 -#define AT91CAP9_BASE_TC0		0xfff7c000 -#define AT91CAP9_BASE_TC1		0xfff7c040 -#define AT91CAP9_BASE_TC2		0xfff7c080 -#define AT91CAP9_BASE_MCI0		0xfff80000 -#define AT91CAP9_BASE_MCI1		0xfff84000 -#define AT91CAP9_BASE_TWI		0xfff88000 -#define AT91CAP9_BASE_US0		0xfff8c000 -#define AT91CAP9_BASE_US1		0xfff90000 -#define AT91CAP9_BASE_US2		0xfff94000 -#define AT91CAP9_BASE_SSC0		0xfff98000 -#define AT91CAP9_BASE_SSC1		0xfff9c000 -#define AT91CAP9_BASE_AC97C		0xfffa0000 -#define AT91CAP9_BASE_SPI0		0xfffa4000 -#define AT91CAP9_BASE_SPI1		0xfffa8000 -#define AT91CAP9_BASE_CAN		0xfffac000 -#define AT91CAP9_BASE_PWMC		0xfffb8000 -#define AT91CAP9_BASE_EMAC		0xfffbc000 -#define AT91CAP9_BASE_ADC		0xfffc0000 -#define AT91CAP9_BASE_ISI		0xfffc4000 -#define AT91_BASE_SYS			0xffffe200 - -/* - * System Peripherals (offset from AT91_BASE_SYS) - */ -#define AT91_ECC	(0xffffe200 - AT91_BASE_SYS) -#define AT91_BCRAMC	(0xffffe400 - AT91_BASE_SYS) -#define AT91_DDRSDRC	(0xffffe600 - AT91_BASE_SYS) -#define AT91_SMC	(0xffffe800 - AT91_BASE_SYS) -#define AT91_MATRIX	(0xffffea00 - AT91_BASE_SYS) -#define AT91_CCFG	(0xffffeb10 - AT91_BASE_SYS) -#define AT91_DMA	(0xffffec00 - AT91_BASE_SYS) -#define AT91_DBGU	(0xffffee00 - AT91_BASE_SYS) -#define AT91_AIC	(0xfffff000 - AT91_BASE_SYS) -#define AT91_PIOA	(0xfffff200 - AT91_BASE_SYS) -#define AT91_PIOB	(0xfffff400 - AT91_BASE_SYS) -#define AT91_PIOC	(0xfffff600 - AT91_BASE_SYS) -#define AT91_PIOD	(0xfffff800 - AT91_BASE_SYS) -#define AT91_PMC	(0xfffffc00 - AT91_BASE_SYS) -#define AT91_RSTC	(0xfffffd00 - AT91_BASE_SYS) -#define AT91_SHDWC	(0xfffffd10 - AT91_BASE_SYS) -#define AT91_RTT	(0xfffffd20 - AT91_BASE_SYS) -#define AT91_PIT	(0xfffffd30 - AT91_BASE_SYS) -#define AT91_WDT	(0xfffffd40 - AT91_BASE_SYS) -#define AT91_SCKCR	(0xfffffd50 - AT91_BASE_SYS) -#define AT91_GPBR_REVB	(0xfffffd50 - AT91_BASE_SYS) -#define AT91_GPBR_REVC	(0xfffffd60 - AT91_BASE_SYS) - -#define AT91_USART0	AT91CAP9_BASE_US0 -#define AT91_USART1	AT91CAP9_BASE_US1 -#define AT91_USART2	AT91CAP9_BASE_US2 - -/* - * SCKCR flags - */ -#define AT91CAP9_SCKCR_RCEN	(1 << 0)	/* RC Oscillator Enable */ -#define AT91CAP9_SCKCR_OSC32EN	(1 << 1)	/* 32kHz Oscillator Enable */ -#define AT91CAP9_SCKCR_OSC32BYP	(1 << 2)	/* 32kHz Oscillator Bypass */ -#define AT91CAP9_SCKCR_OSCSEL	(1 << 3)	/* Slow Clock Selector */ -#define		AT91CAP9_SCKCR_OSCSEL_RC	(0 << 3) -#define		AT91CAP9_SCKCR_OSCSEL_32	(1 << 3) - -#endif /* CONFIG_AT91_LEGACY */  /*   * Internal Memory.   */ diff --git a/arch/arm/include/asm/arch-at91/at91sam9_smc.h b/arch/arm/include/asm/arch-at91/at91sam9_smc.h index ec5d79735..d29e98e71 100644 --- a/arch/arm/include/asm/arch-at91/at91sam9_smc.h +++ b/arch/arm/include/asm/arch-at91/at91sam9_smc.h @@ -73,64 +73,4 @@ typedef struct	at91_smc {  #define AT91_SMC_MODE_PS_16		0x20000000  #define AT91_SMC_MODE_PS_32		0x30000000 -#ifdef CONFIG_AT91_LEGACY - -#define AT91_SMC_SETUP(n)	(AT91_SMC + 0x00 + ((n)*0x10))	/* Setup Register for CS n */ -#define		AT91_SMC_NWESETUP	(0x3f << 0)			/* NWE Setup Length */ -#define			AT91_SMC_NWESETUP_(x)	((x) << 0) -#define		AT91_SMC_NCS_WRSETUP	(0x3f << 8)			/* NCS Setup Length in Write Access */ -#define			AT91_SMC_NCS_WRSETUP_(x)	((x) << 8) -#define		AT91_SMC_NRDSETUP	(0x3f << 16)			/* NRD Setup Length */ -#define			AT91_SMC_NRDSETUP_(x)	((x) << 16) -#define		AT91_SMC_NCS_RDSETUP	(0x3f << 24)			/* NCS Setup Length in Read Access */ -#define			AT91_SMC_NCS_RDSETUP_(x)	((x) << 24) - -#define AT91_SMC_PULSE(n)	(AT91_SMC + 0x04 + ((n)*0x10))	/* Pulse Register for CS n */ -#define		AT91_SMC_NWEPULSE	(0x7f <<  0)			/* NWE Pulse Length */ -#define			AT91_SMC_NWEPULSE_(x)	((x) << 0) -#define		AT91_SMC_NCS_WRPULSE	(0x7f <<  8)			/* NCS Pulse Length in Write Access */ -#define			AT91_SMC_NCS_WRPULSE_(x)((x) << 8) -#define		AT91_SMC_NRDPULSE	(0x7f << 16)			/* NRD Pulse Length */ -#define			AT91_SMC_NRDPULSE_(x)	((x) << 16) -#define		AT91_SMC_NCS_RDPULSE	(0x7f << 24)			/* NCS Pulse Length in Read Access */ -#define			AT91_SMC_NCS_RDPULSE_(x)((x) << 24) - -#define AT91_SMC_CYCLE(n)	(AT91_SMC + 0x08 + ((n)*0x10))	/* Cycle Register for CS n */ -#define		AT91_SMC_NWECYCLE	(0x1ff << 0 )			/* Total Write Cycle Length */ -#define			AT91_SMC_NWECYCLE_(x)	((x) << 0) -#define		AT91_SMC_NRDCYCLE	(0x1ff << 16)			/* Total Read Cycle Length */ -#define			AT91_SMC_NRDCYCLE_(x)	((x) << 16) - -#define AT91_SMC_MODE(n)	(AT91_SMC + 0x0c + ((n)*0x10))	/* Mode Register for CS n */ -#define		AT91_SMC_READMODE	(1 <<  0)			/* Read Mode */ -#define		AT91_SMC_WRITEMODE	(1 <<  1)			/* Write Mode */ -#define		AT91_SMC_EXNWMODE	(3 <<  4)			/* NWAIT Mode */ -#define			AT91_SMC_EXNWMODE_DISABLE	(0 << 4) -#define			AT91_SMC_EXNWMODE_FROZEN	(2 << 4) -#define			AT91_SMC_EXNWMODE_READY		(3 << 4) -#define		AT91_SMC_BAT		(1 <<  8)			/* Byte Access Type */ -#define			AT91_SMC_BAT_SELECT		(0 << 8) -#define			AT91_SMC_BAT_WRITE		(1 << 8) -#define		AT91_SMC_DBW		(3 << 12)			/* Data Bus Width */ -#define			AT91_SMC_DBW_8			(0 << 12) -#define			AT91_SMC_DBW_16			(1 << 12) -#define			AT91_SMC_DBW_32			(2 << 12) -#define		AT91_SMC_TDF		(0xf << 16)			/* Data Float Time. */ -#define			AT91_SMC_TDF_(x)		((x) << 16) -#define		AT91_SMC_TDFMODE	(1 << 20)			/* TDF Optimization - Enabled */ -#define		AT91_SMC_PMEN		(1 << 24)			/* Page Mode Enabled */ -#define		AT91_SMC_PS		(3 << 28)			/* Page Size */ -#define			AT91_SMC_PS_4			(0 << 28) -#define			AT91_SMC_PS_8			(1 << 28) -#define			AT91_SMC_PS_16			(2 << 28) -#define			AT91_SMC_PS_32			(3 << 28) - -#if defined(AT91_SMC1)		/* The AT91SAM9263 has 2 Static Memory contollers */ -#define AT91_SMC1_SETUP(n)	(AT91_SMC1 + 0x00 + ((n)*0x10))	/* Setup Register for CS n */ -#define AT91_SMC1_PULSE(n)	(AT91_SMC1 + 0x04 + ((n)*0x10))	/* Pulse Register for CS n */ -#define AT91_SMC1_CYCLE(n)	(AT91_SMC1 + 0x08 + ((n)*0x10))	/* Cycle Register for CS n */ -#define AT91_SMC1_MODE(n)	(AT91_SMC1 + 0x0c + ((n)*0x10))	/* Mode Register for CS n */ -#endif - -#endif  #endif diff --git a/arch/arm/include/asm/arch-at91/atmel_mpddrc.h b/arch/arm/include/asm/arch-at91/atmel_mpddrc.h new file mode 100644 index 000000000..5741f6e94 --- /dev/null +++ b/arch/arm/include/asm/arch-at91/atmel_mpddrc.h @@ -0,0 +1,115 @@ +/* + * Copyright (C) 2013 Atmel Corporation + *		      Bo Shen <voice.shen@atmel.com> + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + +#ifndef __ATMEL_MPDDRC_H__ +#define __ATMEL_MPDDRC_H__ + +/* + * Only define the needed register in mpddr + * If other register needed, will add them later + */ +struct atmel_mpddr { +	u32 mr; +	u32 rtr; +	u32 cr; +	u32 tpr0; +	u32 tpr1; +	u32 tpr2; +	u32 reserved[2]; +	u32 md; +}; + +int ddr2_init(const unsigned int ram_address, +	       const struct atmel_mpddr *mpddr); + +/* Bit field in mode register */ +#define ATMEL_MPDDRC_MR_MODE_NORMAL_CMD		0x0 +#define ATMEL_MPDDRC_MR_MODE_NOP_CMD		0x1 +#define ATMEL_MPDDRC_MR_MODE_PRCGALL_CMD	0x2 +#define ATMEL_MPDDRC_MR_MODE_LMR_CMD		0x3 +#define ATMEL_MPDDRC_MR_MODE_RFSH_CMD		0x4 +#define ATMEL_MPDDRC_MR_MODE_EXT_LMR_CMD	0x5 +#define ATMEL_MPDDRC_MR_MODE_DEEP_CMD		0x6 +#define ATMEL_MPDDRC_MR_MODE_LPDDR2_CMD		0x7 + +/* Bit field in configuration register */ +#define ATMEL_MPDDRC_CR_NC_MASK			0x3 +#define ATMEL_MPDDRC_CR_NC_COL_9		0x0 +#define ATMEL_MPDDRC_CR_NC_COL_10		0x1 +#define ATMEL_MPDDRC_CR_NC_COL_11		0x2 +#define ATMEL_MPDDRC_CR_NC_COL_12		0x3 +#define ATMEL_MPDDRC_CR_NR_MASK			(0x3 << 2) +#define ATMEL_MPDDRC_CR_NR_ROW_11		(0x0 << 2) +#define ATMEL_MPDDRC_CR_NR_ROW_12		(0x1 << 2) +#define ATMEL_MPDDRC_CR_NR_ROW_13		(0x2 << 2) +#define ATMEL_MPDDRC_CR_NR_ROW_14		(0x3 << 2) +#define ATMEL_MPDDRC_CR_CAS_MASK		(0x7 << 4) +#define ATMEL_MPDDRC_CR_CAS_DDR_CAS2		(0x2 << 4) +#define ATMEL_MPDDRC_CR_CAS_DDR_CAS3		(0x3 << 4) +#define ATMEL_MPDDRC_CR_CAS_DDR_CAS4		(0x4 << 4) +#define ATMEL_MPDDRC_CR_CAS_DDR_CAS5		(0x5 << 4) +#define ATMEL_MPDDRC_CR_CAS_DDR_CAS6		(0x6 << 4) +#define ATMEL_MPDDRC_CR_DLL_RESET_ENABLED	(0x1 << 7) +#define ATMEL_MPDDRC_CR_DIC_DS			(0x1 << 8) +#define ATMEL_MPDDRC_CR_DIS_DLL			(0x1 << 9) +#define ATMEL_MPDDRC_CR_OCD_DEFAULT		(0x7 << 12) +#define ATMEL_MPDDRC_CR_ENRDM_ON		(0x1 << 17) +#define ATMEL_MPDDRC_CR_NB_8BANKS		(0x1 << 20) +#define ATMEL_MPDDRC_CR_NDQS_DISABLED		(0x1 << 21) +#define ATMEL_MPDDRC_CR_DECOD_INTERLEAVED	(0x1 << 22) +#define ATMEL_MPDDRC_CR_UNAL_SUPPORTED		(0x1 << 23) + +/* Bit field in timing parameter 0 register */ +#define ATMEL_MPDDRC_TPR0_TRAS_OFFSET		0 +#define ATMEL_MPDDRC_TPR0_TRAS_MASK		0xf +#define ATMEL_MPDDRC_TPR0_TRCD_OFFSET		4 +#define ATMEL_MPDDRC_TPR0_TRCD_MASK		0xf +#define ATMEL_MPDDRC_TPR0_TWR_OFFSET		8 +#define ATMEL_MPDDRC_TPR0_TWR_MASK		0xf +#define ATMEL_MPDDRC_TPR0_TRC_OFFSET		12 +#define ATMEL_MPDDRC_TPR0_TRC_MASK		0xf +#define ATMEL_MPDDRC_TPR0_TRP_OFFSET		16 +#define ATMEL_MPDDRC_TPR0_TRP_MASK		0xf +#define ATMEL_MPDDRC_TPR0_TRRD_OFFSET		20 +#define ATMEL_MPDDRC_TPR0_TRRD_MASK		0xf +#define ATMEL_MPDDRC_TPR0_TWTR_OFFSET		24 +#define ATMEL_MPDDRC_TPR0_TWTR_MASK		0x7 +#define ATMEL_MPDDRC_TPR0_RDC_WRRD_OFFSET	27 +#define ATMEL_MPDDRC_TPR0_RDC_WRRD_MASK		0x1 +#define ATMEL_MPDDRC_TPR0_TMRD_OFFSET		28 +#define ATMEL_MPDDRC_TPR0_TMRD_MASK		0xf + +/* Bit field in timing parameter 1 register */ +#define ATMEL_MPDDRC_TPR1_TRFC_OFFSET		0 +#define ATMEL_MPDDRC_TPR1_TRFC_MASK		0x7f +#define ATMEL_MPDDRC_TPR1_TXSNR_OFFSET		8 +#define ATMEL_MPDDRC_TPR1_TXSNR_MASK		0xff +#define ATMEL_MPDDRC_TPR1_TXSRD_OFFSET		16 +#define ATMEL_MPDDRC_TPR1_TXSRD_MASK		0xff +#define ATMEL_MPDDRC_TPR1_TXP_OFFSET		24 +#define ATMEL_MPDDRC_TPR1_TXP_MASK		0xf + +/* Bit field in timing parameter 2 register */ +#define ATMEL_MPDDRC_TPR2_TXARD_OFFSET		0 +#define ATMEL_MPDDRC_TPR2_TXARD_MASK		0xf +#define ATMEL_MPDDRC_TPR2_TXARDS_OFFSET		4 +#define ATMEL_MPDDRC_TPR2_TXARDS_MASK		0xf +#define ATMEL_MPDDRC_TPR2_TRPA_OFFSET		8 +#define ATMEL_MPDDRC_TPR2_TRPA_MASK		0xf +#define ATMEL_MPDDRC_TPR2_TRTP_OFFSET		12 +#define ATMEL_MPDDRC_TPR2_TRTP_MASK		0x7 +#define ATMEL_MPDDRC_TPR2_TFAW_OFFSET		16 +#define ATMEL_MPDDRC_TPR2_TFAW_MASK		0xf + +/* Bit field in Memory Device Register */ +#define ATMEL_MPDDRC_MD_LPDDR_SDRAM	0x3 +#define ATMEL_MPDDRC_MD_DDR2_SDRAM	0x6 +#define ATMEL_MPDDRC_MD_DBW_MASK	(0x1 << 4) +#define ATMEL_MPDDRC_MD_DBW_32_BITS	(0x0 << 4) +#define ATMEL_MPDDRC_MD_DBW_16_BITS	(0x1 << 4) + +#endif diff --git a/arch/arm/include/asm/arch-at91/sama5d3.h b/arch/arm/include/asm/arch-at91/sama5d3.h index 123a627cc..6d936f47f 100644 --- a/arch/arm/include/asm/arch-at91/sama5d3.h +++ b/arch/arm/include/asm/arch-at91/sama5d3.h @@ -79,6 +79,7 @@  #define ARCH_EXID_SAMA5D33	0x00414300  #define ARCH_EXID_SAMA5D34	0x00414301  #define ARCH_EXID_SAMA5D35	0x00584300 +#define ARCH_EXID_SAMA5D36	0x00004301  #define cpu_is_sama5d3()	(get_chip_id() == ARCH_ID_SAMA5D3)  #define cpu_is_sama5d31()	(cpu_is_sama5d3() && \ @@ -89,6 +90,8 @@  		(get_extension_chip_id() == ARCH_EXID_SAMA5D34))  #define cpu_is_sama5d35()	(cpu_is_sama5d3() && \  		(get_extension_chip_id() == ARCH_EXID_SAMA5D35)) +#define cpu_is_sama5d36()	(cpu_is_sama5d3() && \ +		(get_extension_chip_id() == ARCH_EXID_SAMA5D36))  /*   * User Peripherals physical base addresses. diff --git a/arch/arm/include/asm/arch-at91/spl.h b/arch/arm/include/asm/arch-at91/spl.h new file mode 100644 index 000000000..68c534960 --- /dev/null +++ b/arch/arm/include/asm/arch-at91/spl.h @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2013 Atmel Corporation + *		      Bo Shen <voice.shen@atmel.com> + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + +#ifndef	_ASM_ARCH_SPL_H_ +#define	_ASM_ARCH_SPL_H_ + +enum { +	BOOT_DEVICE_NONE, +#ifdef CONFIG_SYS_USE_MMC +	BOOT_DEVICE_MMC1, +	BOOT_DEVICE_MMC2, +	BOOT_DEVICE_MMC2_2, +#endif +}; + +#endif diff --git a/arch/arm/include/asm/arch-davinci/hardware.h b/arch/arm/include/asm/arch-davinci/hardware.h index 7aaf4bff8..27b1844ee 100644 --- a/arch/arm/include/asm/arch-davinci/hardware.h +++ b/arch/arm/include/asm/arch-davinci/hardware.h @@ -478,8 +478,9 @@ struct davinci_syscfg_regs {  	dv_reg	rsvd[13];  	dv_reg	kick0;  	dv_reg	kick1; -	dv_reg	rsvd1[53]; +	dv_reg	rsvd1[52];  	dv_reg	mstpri[3]; +	dv_reg  rsvd2;  	dv_reg	pinmux[20];  	dv_reg	suspsrc;  	dv_reg	chipsig; diff --git a/arch/arm/include/asm/arch-omap3/clock.h b/arch/arm/include/asm/arch-omap3/clock.h index be669c156..1912cc9a6 100644 --- a/arch/arm/include/asm/arch-omap3/clock.h +++ b/arch/arm/include/asm/arch-omap3/clock.h @@ -27,8 +27,6 @@  #define ICK_DSS_ON	0x00000001  #define FCK_CAM_ON	0x00000001  #define ICK_CAM_ON	0x00000001 -#define FCK_PER_ON	0x0003ffff -#define ICK_PER_ON	0x0003ffff  /* Used to index into DPLL parameter tables */  typedef struct { diff --git a/arch/arm/include/asm/arch-omap3/omap3.h b/arch/arm/include/asm/arch-omap3/omap3.h index 7fb549af5..65a599502 100644 --- a/arch/arm/include/asm/arch-omap3/omap3.h +++ b/arch/arm/include/asm/arch-omap3/omap3.h @@ -55,6 +55,7 @@ struct control_prog_io {  #define OMAP34XX_UART1			(OMAP34XX_L4_IO_BASE + 0x6a000)  #define OMAP34XX_UART2			(OMAP34XX_L4_IO_BASE + 0x6c000)  #define OMAP34XX_UART3			(OMAP34XX_L4_PER + 0x20000) +#define OMAP34XX_UART4			(OMAP34XX_L4_PER + 0x42000)  /* General Purpose Timers */  #define OMAP34XX_GPT1			0x48318000 diff --git a/arch/arm/include/asm/arch-omap4/sys_proto.h b/arch/arm/include/asm/arch-omap4/sys_proto.h index 39c531632..ce8217f69 100644 --- a/arch/arm/include/asm/arch-omap4/sys_proto.h +++ b/arch/arm/include/asm/arch-omap4/sys_proto.h @@ -16,6 +16,10 @@  DECLARE_GLOBAL_DATA_PTR; +extern const struct emif_regs emif_regs_elpida_200_mhz_2cs; +extern const struct emif_regs emif_regs_elpida_380_mhz_1cs; +extern const struct emif_regs emif_regs_elpida_400_mhz_1cs; +extern const struct emif_regs emif_regs_elpida_400_mhz_2cs;  struct omap_sysinfo {  	char *board_string;  }; diff --git a/arch/arm/include/asm/arch-omap5/clock.h b/arch/arm/include/asm/arch-omap5/clock.h index 8869b5001..2dfe4efb4 100644 --- a/arch/arm/include/asm/arch-omap5/clock.h +++ b/arch/arm/include/asm/arch-omap5/clock.h @@ -137,6 +137,9 @@  #define HSMMC_CLKCTRL_CLKSEL_MASK		(1 << 24)  #define HSMMC_CLKCTRL_CLKSEL_DIV_MASK		(1 << 25) +/* CM_L3INIT_SATA_CLKCTRL */ +#define SATA_CLKCTRL_OPTFCLKEN_MASK		(1 << 8) +  /* CM_WKUP_GPTIMER1_CLKCTRL */  #define GPTIMER1_CLKCTRL_CLKSEL_MASK		(1 << 24) diff --git a/arch/arm/include/asm/arch-omap5/omap.h b/arch/arm/include/asm/arch-omap5/omap.h index 3c2306fe3..590235be0 100644 --- a/arch/arm/include/asm/arch-omap5/omap.h +++ b/arch/arm/include/asm/arch-omap5/omap.h @@ -64,6 +64,9 @@  /* QSPI */  #define QSPI_BASE		0x4B300000 +/* SATA */ +#define DWC_AHSATA_BASE		0x4A140000 +  /*   * Hardware Register Details   */ @@ -239,6 +242,7 @@ struct ctrl_ioregs {  	u32 ctrl_ddrio_1;  	u32 ctrl_ddrio_2;  	u32 ctrl_emif_sdram_config_ext; +	u32 ctrl_emif_sdram_config_ext_final;  	u32 ctrl_ddr_ctrl_ext_0;  }; diff --git a/arch/arm/include/asm/arch-omap5/sata.h b/arch/arm/include/asm/arch-omap5/sata.h new file mode 100644 index 000000000..2ca894773 --- /dev/null +++ b/arch/arm/include/asm/arch-omap5/sata.h @@ -0,0 +1,48 @@ +/* + * SATA Wrapper Register map + * + * (C) Copyright 2013 + * Texas Instruments, <www.ti.com> + * + * SPDX-License-Identifier:     GPL-2.0+ + */ + +#ifndef _TI_SATA_H +#define _TI_SATA_H + +/* SATA Wrapper module */ +#define TI_SATA_WRAPPER_BASE		(OMAP54XX_L4_CORE_BASE + 0x141100) +/* SATA PHY Module */ +#define TI_SATA_PLLCTRL_BASE		(OMAP54XX_L4_CORE_BASE + 0x96800) + +/* SATA Wrapper register offsets */ +#define TI_SATA_SYSCONFIG			0x00 +#define TI_SATA_CDRLOCK				0x04 + +/* Register Set */ +#define TI_SATA_SYSCONFIG_OVERRIDE0		(1 << 16) +#define TI_SATA_SYSCONFIG_STANDBY_MASK		(0x3 << 4) +#define TI_SATA_SYSCONFIG_IDLE_MASK		(0x3 << 2) + +/* Standby modes */ +#define TI_SATA_STANDBY_FORCE			0x0 +#define TI_SATA_STANDBY_NO			(0x1 << 4) +#define TI_SATA_STANDBY_SMART_WAKE		(0x3 << 4) +#define TI_SATA_STANDBY_SMART			(0x2 << 4) + +/* Idle modes */ +#define TI_SATA_IDLE_FORCE			0x0 +#define TI_SATA_IDLE_NO				(0x1 << 2) +#define TI_SATA_IDLE_SMART_WAKE			(0x3 << 2) +#define TI_SATA_IDLE_SMART			(0x2 << 2) + +#ifdef CONFIG_SCSI_AHCI_PLAT +int omap_sata_init(void); +#else +static inline int omap_sata_init(void) +{ +	return 0; +} +#endif /* CONFIG_SCSI_AHCI_PLAT */ + +#endif /* _TI_SATA_H */ diff --git a/arch/arm/include/asm/arch-rmobile/gpio.h b/arch/arm/include/asm/arch-rmobile/gpio.h index 6b5e4ed4e..560e9f42d 100644 --- a/arch/arm/include/asm/arch-rmobile/gpio.h +++ b/arch/arm/include/asm/arch-rmobile/gpio.h @@ -7,6 +7,12 @@ void sh73a0_pinmux_init(void);  #elif defined(CONFIG_R8A7740)  #include "r8a7740-gpio.h"  void r8a7740_pinmux_init(void); +#elif defined(CONFIG_R8A7790) +#include "r8a7790-gpio.h" +void r8a7790_pinmux_init(void); +#elif defined(CONFIG_R8A7791) +#include "r8a7791-gpio.h" +void r8a7791_pinmux_init(void);  #endif  #endif /* __ASM_ARCH_GPIO_H */ diff --git a/arch/arm/include/asm/arch-rmobile/r8a7790-gpio.h b/arch/arm/include/asm/arch-rmobile/r8a7790-gpio.h new file mode 100644 index 000000000..444e361c0 --- /dev/null +++ b/arch/arm/include/asm/arch-rmobile/r8a7790-gpio.h @@ -0,0 +1,387 @@ +#ifndef __ASM_R8A7790_H__ +#define __ASM_R8A7790_H__ + +/* Pin Function Controller: + * GPIO_FN_xx - GPIO used to select pin function + * GPIO_GP_x_x - GPIO mapped to real I/O pin on CPU + */ +enum { +	GPIO_GP_0_0, GPIO_GP_0_1, GPIO_GP_0_2, GPIO_GP_0_3, +	GPIO_GP_0_4, GPIO_GP_0_5, GPIO_GP_0_6, GPIO_GP_0_7, +	GPIO_GP_0_8, GPIO_GP_0_9, GPIO_GP_0_10, GPIO_GP_0_11, +	GPIO_GP_0_12, GPIO_GP_0_13, GPIO_GP_0_14, GPIO_GP_0_15, +	GPIO_GP_0_16, GPIO_GP_0_17, GPIO_GP_0_18, GPIO_GP_0_19, +	GPIO_GP_0_20, GPIO_GP_0_21, GPIO_GP_0_22, GPIO_GP_0_23, +	GPIO_GP_0_24, GPIO_GP_0_25, GPIO_GP_0_26, GPIO_GP_0_27, +	GPIO_GP_0_28, GPIO_GP_0_29, GPIO_GP_0_30, GPIO_GP_0_31, + +	GPIO_GP_1_0, GPIO_GP_1_1, GPIO_GP_1_2, GPIO_GP_1_3, +	GPIO_GP_1_4, GPIO_GP_1_5, GPIO_GP_1_6, GPIO_GP_1_7, +	GPIO_GP_1_8, GPIO_GP_1_9, GPIO_GP_1_10, GPIO_GP_1_11, +	GPIO_GP_1_12, GPIO_GP_1_13, GPIO_GP_1_14, GPIO_GP_1_15, +	GPIO_GP_1_16, GPIO_GP_1_17, GPIO_GP_1_18, GPIO_GP_1_19, +	GPIO_GP_1_20, GPIO_GP_1_21, GPIO_GP_1_22, GPIO_GP_1_23, +	GPIO_GP_1_24, GPIO_GP_1_25, GPIO_GP_1_26, GPIO_GP_1_27, +	GPIO_GP_1_28, GPIO_GP_1_29, + +	GPIO_GP_2_0, GPIO_GP_2_1, GPIO_GP_2_2, GPIO_GP_2_3, +	GPIO_GP_2_4, GPIO_GP_2_5, GPIO_GP_2_6, GPIO_GP_2_7, +	GPIO_GP_2_8, GPIO_GP_2_9, GPIO_GP_2_10, GPIO_GP_2_11, +	GPIO_GP_2_12, GPIO_GP_2_13, GPIO_GP_2_14, GPIO_GP_2_15, +	GPIO_GP_2_16, GPIO_GP_2_17, GPIO_GP_2_18, GPIO_GP_2_19, +	GPIO_GP_2_20, GPIO_GP_2_21, GPIO_GP_2_22, GPIO_GP_2_23, +	GPIO_GP_2_24, GPIO_GP_2_25, GPIO_GP_2_26, GPIO_GP_2_27, +	GPIO_GP_2_28, GPIO_GP_2_29, + +	GPIO_GP_3_0, GPIO_GP_3_1, GPIO_GP_3_2, GPIO_GP_3_3, +	GPIO_GP_3_4, GPIO_GP_3_5, GPIO_GP_3_6, GPIO_GP_3_7, +	GPIO_GP_3_8, GPIO_GP_3_9, GPIO_GP_3_10, GPIO_GP_3_11, +	GPIO_GP_3_12, GPIO_GP_3_13, GPIO_GP_3_14, GPIO_GP_3_15, +	GPIO_GP_3_16, GPIO_GP_3_17, GPIO_GP_3_18, GPIO_GP_3_19, +	GPIO_GP_3_20, GPIO_GP_3_21, GPIO_GP_3_22, GPIO_GP_3_23, +	GPIO_GP_3_24, GPIO_GP_3_25, GPIO_GP_3_26, GPIO_GP_3_27, +	GPIO_GP_3_28, GPIO_GP_3_29, GPIO_GP_3_30, GPIO_GP_3_31, + +	GPIO_GP_4_0, GPIO_GP_4_1, GPIO_GP_4_2, GPIO_GP_4_3, +	GPIO_GP_4_4, GPIO_GP_4_5, GPIO_GP_4_6, GPIO_GP_4_7, +	GPIO_GP_4_8, GPIO_GP_4_9, GPIO_GP_4_10, GPIO_GP_4_11, +	GPIO_GP_4_12, GPIO_GP_4_13, GPIO_GP_4_14, GPIO_GP_4_15, +	GPIO_GP_4_16, GPIO_GP_4_17, GPIO_GP_4_18, GPIO_GP_4_19, +	GPIO_GP_4_20, GPIO_GP_4_21, GPIO_GP_4_22, GPIO_GP_4_23, +	GPIO_GP_4_24, GPIO_GP_4_25, GPIO_GP_4_26, GPIO_GP_4_27, +	GPIO_GP_4_28, GPIO_GP_4_29, GPIO_GP_4_30, GPIO_GP_4_31, + +	GPIO_GP_5_0, GPIO_GP_5_1, GPIO_GP_5_2, GPIO_GP_5_3, +	GPIO_GP_5_4, GPIO_GP_5_5, GPIO_GP_5_6, GPIO_GP_5_7, +	GPIO_GP_5_8, GPIO_GP_5_9, GPIO_GP_5_10, GPIO_GP_5_11, +	GPIO_GP_5_12, GPIO_GP_5_13, GPIO_GP_5_14, GPIO_GP_5_15, +	GPIO_GP_5_16, GPIO_GP_5_17, GPIO_GP_5_18, GPIO_GP_5_19, +	GPIO_GP_5_20, GPIO_GP_5_21, GPIO_GP_5_22, GPIO_GP_5_23, +	GPIO_GP_5_24, GPIO_GP_5_25, GPIO_GP_5_26, GPIO_GP_5_27, +	GPIO_GP_5_28, GPIO_GP_5_29, GPIO_GP_5_30, GPIO_GP_5_31, + +	GPIO_FN_VI1_DATA7_VI1_B7, GPIO_FN_USB0_PWEN, GPIO_FN_USB0_OVC_VBUS, +	GPIO_FN_USB2_PWEN, GPIO_FN_USB2_OVC, GPIO_FN_AVS1, GPIO_FN_AVS2, +	GPIO_FN_DU_DOTCLKIN0, GPIO_FN_DU_DOTCLKIN2, + +	/* IPSR0 */ +	GPIO_FN_D1, GPIO_FN_MSIOF3_SYNC_B, GPIO_FN_VI3_DATA1, GPIO_FN_VI0_G5, +	GPIO_FN_VI0_G5_B, GPIO_FN_D2, GPIO_FN_MSIOF3_RXD_B, GPIO_FN_VI3_DATA2, +	GPIO_FN_VI0_G6, GPIO_FN_VI0_G6_B, GPIO_FN_D3, GPIO_FN_MSIOF3_TXD_B, +	GPIO_FN_VI3_DATA3, GPIO_FN_VI0_G7, GPIO_FN_VI0_G7_B, GPIO_FN_D4, +	GPIO_FN_SCIFB1_RXD_F, GPIO_FN_SCIFB0_RXD_C, GPIO_FN_VI3_DATA4, +	GPIO_FN_VI0_R0, GPIO_FN_VI0_R0_B, GPIO_FN_RX0_B, GPIO_FN_D5, +	GPIO_FN_SCIFB1_TXD_F, GPIO_FN_SCIFB0_TXD_C, GPIO_FN_VI3_DATA5, +	GPIO_FN_VI0_R1, GPIO_FN_VI0_R1_B, GPIO_FN_TX0_B, GPIO_FN_D6, +	GPIO_FN_SCL2_C, GPIO_FN_VI3_DATA6, GPIO_FN_VI0_R2, GPIO_FN_VI0_R2_B, +	GPIO_FN_SCL2_CIS_C, GPIO_FN_D7, GPIO_FN_AD_DI_B, GPIO_FN_SDA2_C, +	GPIO_FN_VI3_DATA7, GPIO_FN_VI0_R3, GPIO_FN_VI0_R3_B, GPIO_FN_SDA2_CIS_C, +	GPIO_FN_D8, GPIO_FN_SCIFA1_SCK_C, GPIO_FN_AVB_TXD0, GPIO_FN_MII_TXD0, +	GPIO_FN_VI0_G0, GPIO_FN_VI0_G0_B, GPIO_FN_VI2_DATA0_VI2_B0, + +	/* IPSR1 */ +	GPIO_FN_D9, GPIO_FN_SCIFA1_RXD_C, GPIO_FN_AVB_TXD1, GPIO_FN_MII_TXD1, +	GPIO_FN_VI0_G1, GPIO_FN_VI0_G1_B, GPIO_FN_VI2_DATA1_VI2_B1, GPIO_FN_D10, +	GPIO_FN_SCIFA1_TXD_C, GPIO_FN_AVB_TXD2, GPIO_FN_MII_TXD2, +	GPIO_FN_VI0_G2, GPIO_FN_VI0_G2_B, GPIO_FN_VI2_DATA2_VI2_B2, GPIO_FN_D11, +	GPIO_FN_SCIFA1_CTS_N_C, GPIO_FN_AVB_TXD3, GPIO_FN_MII_TXD3, +	GPIO_FN_VI0_G3, GPIO_FN_VI0_G3_B, GPIO_FN_VI2_DATA3_VI2_B3, +	GPIO_FN_D12, GPIO_FN_SCIFA1_RTS_N_C, GPIO_FN_AVB_TXD4, +	GPIO_FN_VI0_HSYNC_N, GPIO_FN_VI0_HSYNC_N_B, GPIO_FN_VI2_DATA4_VI2_B4, +	GPIO_FN_D13, GPIO_FN_AVB_TXD5, GPIO_FN_VI0_VSYNC_N, +	GPIO_FN_VI0_VSYNC_N_B, GPIO_FN_VI2_DATA5_VI2_B5, GPIO_FN_D14, +	GPIO_FN_SCIFB1_RXD_C, GPIO_FN_AVB_TXD6, GPIO_FN_RX1_B, +	GPIO_FN_VI0_CLKENB, GPIO_FN_VI0_CLKENB_B, GPIO_FN_VI2_DATA6_VI2_B6, +	GPIO_FN_D15, GPIO_FN_SCIFB1_TXD_C, GPIO_FN_AVB_TXD7, GPIO_FN_TX1_B, +	GPIO_FN_VI0_FIELD, GPIO_FN_VI0_FIELD_B, GPIO_FN_VI2_DATA7_VI2_B7, +	GPIO_FN_A0, GPIO_FN_PWM3, GPIO_FN_A1, GPIO_FN_PWM4, + +	/* IPSR2 */ +	GPIO_FN_A2, GPIO_FN_PWM5, GPIO_FN_MSIOF1_SS1_B, GPIO_FN_A3, +	GPIO_FN_PWM6, GPIO_FN_MSIOF1_SS2_B, GPIO_FN_A4, GPIO_FN_MSIOF1_TXD_B, +	GPIO_FN_TPU0TO0, GPIO_FN_A5, GPIO_FN_SCIFA1_TXD_B, GPIO_FN_TPU0TO1, +	GPIO_FN_A6, GPIO_FN_SCIFA1_RTS_N_B, GPIO_FN_TPU0TO2, GPIO_FN_A7, +	GPIO_FN_SCIFA1_SCK_B, GPIO_FN_AUDIO_CLKOUT_B, GPIO_FN_TPU0TO3, +	GPIO_FN_A8, GPIO_FN_SCIFA1_RXD_B, GPIO_FN_SSI_SCK5_B, GPIO_FN_VI0_R4, +	GPIO_FN_VI0_R4_B, GPIO_FN_SCIFB2_RXD_C, GPIO_FN_VI2_DATA0_VI2_B0_B, +	GPIO_FN_A9, GPIO_FN_SCIFA1_CTS_N_B, GPIO_FN_SSI_WS5_B, GPIO_FN_VI0_R5, +	GPIO_FN_VI0_R5_B, GPIO_FN_SCIFB2_TXD_C, GPIO_FN_VI2_DATA1_VI2_B1_B, +	GPIO_FN_A10, GPIO_FN_SSI_SDATA5_B, GPIO_FN_MSIOF2_SYNC, GPIO_FN_VI0_R6, +	GPIO_FN_VI0_R6_B, GPIO_FN_VI2_DATA2_VI2_B2_B, + +	/* IPSR3 */ +	GPIO_FN_A11, GPIO_FN_SCIFB2_CTS_N_B, GPIO_FN_MSIOF2_SCK, GPIO_FN_VI1_R0, +	GPIO_FN_VI1_R0_B, GPIO_FN_VI2_G0, GPIO_FN_VI2_DATA3_VI2_B3_B, +	GPIO_FN_A12, GPIO_FN_SCIFB2_RXD_B, GPIO_FN_MSIOF2_TXD, GPIO_FN_VI1_R1, +	GPIO_FN_VI1_R1_B, GPIO_FN_VI2_G1, GPIO_FN_VI2_DATA4_VI2_B4_B, +	GPIO_FN_A13, GPIO_FN_SCIFB2_RTS_N_B, GPIO_FN_EX_WAIT2, +	GPIO_FN_MSIOF2_RXD, GPIO_FN_VI1_R2, GPIO_FN_VI1_R2_B, GPIO_FN_VI2_G2, +	GPIO_FN_VI2_DATA5_VI2_B5_B, GPIO_FN_A14, GPIO_FN_SCIFB2_TXD_B, +	GPIO_FN_ATACS11_N, GPIO_FN_MSIOF2_SS1, GPIO_FN_A15, +	GPIO_FN_SCIFB2_SCK_B, GPIO_FN_ATARD1_N, GPIO_FN_MSIOF2_SS2, GPIO_FN_A16, +	GPIO_FN_ATAWR1_N, GPIO_FN_A17, GPIO_FN_AD_DO_B, GPIO_FN_ATADIR1_N, +	GPIO_FN_A18, GPIO_FN_AD_CLK_B, GPIO_FN_ATAG1_N, GPIO_FN_A19, +	GPIO_FN_AD_NCS_N_B, GPIO_FN_ATACS01_N, GPIO_FN_EX_WAIT0_B, GPIO_FN_A20, +	GPIO_FN_SPCLK, GPIO_FN_VI1_R3, GPIO_FN_VI1_R3_B, GPIO_FN_VI2_G4, + +	/* IPSR4 */ +	GPIO_FN_A21, GPIO_FN_MOSI_IO0, GPIO_FN_VI1_R4, GPIO_FN_VI1_R4_B, +	GPIO_FN_VI2_G5, GPIO_FN_A22, GPIO_FN_MISO_IO1, GPIO_FN_VI1_R5, +	GPIO_FN_VI1_R5_B, GPIO_FN_VI2_G6, GPIO_FN_A23, GPIO_FN_IO2, +	GPIO_FN_VI1_G7, GPIO_FN_VI1_G7_B, GPIO_FN_VI2_G7, GPIO_FN_A24, +	GPIO_FN_IO3, GPIO_FN_VI1_R7, GPIO_FN_VI1_R7_B, GPIO_FN_VI2_CLKENB, +	GPIO_FN_VI2_CLKENB_B, GPIO_FN_A25, GPIO_FN_SSL, GPIO_FN_VI1_G6, +	GPIO_FN_VI1_G6_B, GPIO_FN_VI2_FIELD, GPIO_FN_VI2_FIELD_B, GPIO_FN_CS0_N, +	GPIO_FN_VI1_R6, GPIO_FN_VI1_R6_B, GPIO_FN_VI2_G3, GPIO_FN_MSIOF0_SS2_B, +	GPIO_FN_CS1_N_A26, GPIO_FN_SPEEDIN, GPIO_FN_VI0_R7, GPIO_FN_VI0_R7_B, +	GPIO_FN_VI2_CLK, GPIO_FN_VI2_CLK_B, GPIO_FN_EX_CS0_N, GPIO_FN_HRX1_B, +	GPIO_FN_VI1_G5, GPIO_FN_VI1_G5_B, GPIO_FN_VI2_R0, GPIO_FN_HTX0_B, +	GPIO_FN_MSIOF0_SS1_B, GPIO_FN_EX_CS1_N, GPIO_FN_GPS_CLK, +	GPIO_FN_HCTS1_N_B, GPIO_FN_VI1_FIELD, GPIO_FN_VI1_FIELD_B, +	GPIO_FN_VI2_R1, GPIO_FN_EX_CS2_N, GPIO_FN_GPS_SIGN, GPIO_FN_HRTS1_N_B, +	GPIO_FN_VI3_CLKENB, GPIO_FN_VI1_G0, GPIO_FN_VI1_G0_B, GPIO_FN_VI2_R2, + +	/* IPSR5 */ +	GPIO_FN_EX_CS3_N, GPIO_FN_GPS_MAG, GPIO_FN_VI3_FIELD, GPIO_FN_VI1_G1, +	GPIO_FN_VI1_G1_B, GPIO_FN_VI2_R3, GPIO_FN_EX_CS4_N, +	GPIO_FN_MSIOF1_SCK_B, GPIO_FN_VI3_HSYNC_N, +	GPIO_FN_VI2_HSYNC_N, GPIO_FN_SCL1, GPIO_FN_VI2_HSYNC_N_B, +	GPIO_FN_INTC_EN0_N, GPIO_FN_SCL1_CIS, GPIO_FN_EX_CS5_N, GPIO_FN_CAN0_RX, +	GPIO_FN_MSIOF1_RXD_B, GPIO_FN_VI3_VSYNC_N, GPIO_FN_VI1_G2, +	GPIO_FN_VI1_G2_B, GPIO_FN_VI2_R4, GPIO_FN_SDA1, GPIO_FN_INTC_EN1_N, +	GPIO_FN_SDA1_CIS, GPIO_FN_BS_N, GPIO_FN_IETX, GPIO_FN_HTX1_B, +	GPIO_FN_CAN1_TX, GPIO_FN_DRACK0, GPIO_FN_IETX_C, GPIO_FN_RD_N, +	GPIO_FN_CAN0_TX, GPIO_FN_SCIFA0_SCK_B, GPIO_FN_RD_WR_N, GPIO_FN_VI1_G3, +	GPIO_FN_VI1_G3_B, GPIO_FN_VI2_R5, GPIO_FN_SCIFA0_RXD_B, +	GPIO_FN_INTC_IRQ4_N, GPIO_FN_WE0_N, GPIO_FN_IECLK, GPIO_FN_CAN_CLK, +	GPIO_FN_VI2_VSYNC_N, GPIO_FN_SCIFA0_TXD_B, GPIO_FN_VI2_VSYNC_N_B, +	GPIO_FN_WE1_N, GPIO_FN_IERX, GPIO_FN_CAN1_RX, GPIO_FN_VI1_G4, +	GPIO_FN_VI1_G4_B, GPIO_FN_VI2_R6, GPIO_FN_SCIFA0_CTS_N_B, +	GPIO_FN_IERX_C, GPIO_FN_EX_WAIT0, GPIO_FN_IRQ3, GPIO_FN_INTC_IRQ3_N, +	GPIO_FN_VI3_CLK, GPIO_FN_SCIFA0_RTS_N_B, GPIO_FN_HRX0_B, +	GPIO_FN_MSIOF0_SCK_B, GPIO_FN_DREQ0_N, GPIO_FN_VI1_HSYNC_N, +	GPIO_FN_VI1_HSYNC_N_B, GPIO_FN_VI2_R7, GPIO_FN_SSI_SCK78_C, +	GPIO_FN_SSI_WS78_B, + +	/* IPSR6 */ +	GPIO_FN_DACK0, GPIO_FN_IRQ0, GPIO_FN_INTC_IRQ0_N, GPIO_FN_SSI_SCK6_B, +	GPIO_FN_VI1_VSYNC_N, GPIO_FN_VI1_VSYNC_N_B, GPIO_FN_SSI_WS78_C, +	GPIO_FN_DREQ1_N, GPIO_FN_VI1_CLKENB, GPIO_FN_VI1_CLKENB_B, +	GPIO_FN_SSI_SDATA7_C, GPIO_FN_SSI_SCK78_B, GPIO_FN_DACK1, GPIO_FN_IRQ1, +	GPIO_FN_INTC_IRQ1_N, GPIO_FN_SSI_WS6_B, GPIO_FN_SSI_SDATA8_C, +	GPIO_FN_DREQ2_N, GPIO_FN_HSCK1_B, GPIO_FN_HCTS0_N_B, +	GPIO_FN_MSIOF0_TXD_B, GPIO_FN_DACK2, GPIO_FN_IRQ2, GPIO_FN_INTC_IRQ2_N, +	GPIO_FN_SSI_SDATA6_B, GPIO_FN_HRTS0_N_B, GPIO_FN_MSIOF0_RXD_B, +	GPIO_FN_ETH_CRS_DV, GPIO_FN_RMII_CRS_DV, GPIO_FN_STP_ISCLK_0_B, +	GPIO_FN_TS_SDEN0_D, GPIO_FN_GLO_Q0_C, GPIO_FN_SCL2_E, +	GPIO_FN_SCL2_CIS_E, GPIO_FN_ETH_RX_ER, GPIO_FN_RMII_RX_ER, +	GPIO_FN_STP_ISD_0_B, GPIO_FN_TS_SPSYNC0_D, GPIO_FN_GLO_Q1_C, +	GPIO_FN_SDA2_E, GPIO_FN_SDA2_CIS_E, GPIO_FN_ETH_RXD0, GPIO_FN_RMII_RXD0, +	GPIO_FN_STP_ISEN_0_B, GPIO_FN_TS_SDAT0_D, GPIO_FN_GLO_I0_C, +	GPIO_FN_SCIFB1_SCK_G, GPIO_FN_SCK1_E, GPIO_FN_ETH_RXD1, +	GPIO_FN_RMII_RXD1, GPIO_FN_HRX0_E, GPIO_FN_STP_ISSYNC_0_B, +	GPIO_FN_TS_SCK0_D, GPIO_FN_GLO_I1_C, GPIO_FN_SCIFB1_RXD_G, +	GPIO_FN_RX1_E, GPIO_FN_ETH_LINK, GPIO_FN_RMII_LINK, GPIO_FN_HTX0_E, +	GPIO_FN_STP_IVCXO27_0_B, GPIO_FN_SCIFB1_TXD_G, GPIO_FN_TX1_E, +	GPIO_FN_ETH_REF_CLK, GPIO_FN_RMII_REF_CLK, GPIO_FN_HCTS0_N_E, +	GPIO_FN_STP_IVCXO27_1_B, GPIO_FN_HRX0_F, + +	/* IPSR7 */ +	GPIO_FN_ETH_MDIO, GPIO_FN_RMII_MDIO, GPIO_FN_HRTS0_N_E, +	GPIO_FN_SIM0_D_C, GPIO_FN_HCTS0_N_F, GPIO_FN_ETH_TXD1, +	GPIO_FN_RMII_TXD1, GPIO_FN_HTX0_F, GPIO_FN_BPFCLK_G, GPIO_FN_RDS_CLK_F, +	GPIO_FN_ETH_TX_EN, GPIO_FN_RMII_TX_EN, GPIO_FN_SIM0_CLK_C, +	GPIO_FN_HRTS0_N_F, GPIO_FN_ETH_MAGIC, GPIO_FN_RMII_MAGIC, +	GPIO_FN_SIM0_RST_C, GPIO_FN_ETH_TXD0, GPIO_FN_RMII_TXD0, +	GPIO_FN_STP_ISCLK_1_B, GPIO_FN_TS_SDEN1_C, GPIO_FN_GLO_SCLK_C, +	GPIO_FN_ETH_MDC, GPIO_FN_RMII_MDC, GPIO_FN_STP_ISD_1_B, +	GPIO_FN_TS_SPSYNC1_C, GPIO_FN_GLO_SDATA_C, GPIO_FN_PWM0, +	GPIO_FN_SCIFA2_SCK_C, GPIO_FN_STP_ISEN_1_B, GPIO_FN_TS_SDAT1_C, +	GPIO_FN_GLO_SS_C, GPIO_FN_PWM1, GPIO_FN_SCIFA2_TXD_C, +	GPIO_FN_STP_ISSYNC_1_B, GPIO_FN_TS_SCK1_C, GPIO_FN_GLO_RFON_C, +	GPIO_FN_PCMOE_N, GPIO_FN_PWM2, GPIO_FN_PWMFSW0, GPIO_FN_SCIFA2_RXD_C, +	GPIO_FN_PCMWE_N, GPIO_FN_IECLK_C, GPIO_FN_DU1_DOTCLKIN, +	GPIO_FN_AUDIO_CLKC, GPIO_FN_AUDIO_CLKOUT_C, GPIO_FN_VI0_CLK, +	GPIO_FN_ATACS00_N, GPIO_FN_AVB_RXD1, GPIO_FN_MII_RXD1, +	GPIO_FN_VI0_DATA0_VI0_B0, GPIO_FN_ATACS10_N, GPIO_FN_AVB_RXD2, +	GPIO_FN_MII_RXD2, + +	/* IPSR8 */ +	GPIO_FN_VI0_DATA1_VI0_B1, GPIO_FN_ATARD0_N, GPIO_FN_AVB_RXD3, +	GPIO_FN_MII_RXD3, GPIO_FN_VI0_DATA2_VI0_B2, GPIO_FN_ATAWR0_N, +	GPIO_FN_AVB_RXD4, GPIO_FN_VI0_DATA3_VI0_B3, GPIO_FN_ATADIR0_N, +	GPIO_FN_AVB_RXD5, GPIO_FN_VI0_DATA4_VI0_B4, GPIO_FN_ATAG0_N, +	GPIO_FN_AVB_RXD6, GPIO_FN_VI0_DATA5_VI0_B5, GPIO_FN_EX_WAIT1, +	GPIO_FN_AVB_RXD7, GPIO_FN_VI0_DATA6_VI0_B6, GPIO_FN_AVB_RX_ER, +	GPIO_FN_MII_RX_ER, GPIO_FN_VI0_DATA7_VI0_B7, GPIO_FN_AVB_RX_CLK, +	GPIO_FN_MII_RX_CLK, GPIO_FN_VI1_CLK, GPIO_FN_AVB_RX_DV, +	GPIO_FN_MII_RX_DV, GPIO_FN_VI1_DATA0_VI1_B0, GPIO_FN_SCIFA1_SCK_D, +	GPIO_FN_AVB_CRS, GPIO_FN_MII_CRS, GPIO_FN_VI1_DATA1_VI1_B1, +	GPIO_FN_SCIFA1_RXD_D, GPIO_FN_AVB_MDC, GPIO_FN_MII_MDC, +	GPIO_FN_VI1_DATA2_VI1_B2, GPIO_FN_SCIFA1_TXD_D, GPIO_FN_AVB_MDIO, +	GPIO_FN_MII_MDIO, GPIO_FN_VI1_DATA3_VI1_B3, GPIO_FN_SCIFA1_CTS_N_D, +	GPIO_FN_AVB_GTX_CLK, GPIO_FN_VI1_DATA4_VI1_B4, GPIO_FN_SCIFA1_RTS_N_D, +	GPIO_FN_AVB_MAGIC, GPIO_FN_MII_MAGIC, GPIO_FN_VI1_DATA5_VI1_B5, +	GPIO_FN_AVB_PHY_INT, GPIO_FN_VI1_DATA6_VI1_B6, GPIO_FN_AVB_GTXREFCLK, +	GPIO_FN_SD0_CLK, GPIO_FN_VI1_DATA0_VI1_B0_B, GPIO_FN_SD0_CMD, +	GPIO_FN_SCIFB1_SCK_B, GPIO_FN_VI1_DATA1_VI1_B1_B, + +	/* IPSR9 */ +	GPIO_FN_SD0_DAT0, GPIO_FN_SCIFB1_RXD_B, GPIO_FN_VI1_DATA2_VI1_B2_B, +	GPIO_FN_SD0_DAT1, GPIO_FN_SCIFB1_TXD_B, GPIO_FN_VI1_DATA3_VI1_B3_B, +	GPIO_FN_SD0_DAT2, GPIO_FN_SCIFB1_CTS_N_B, GPIO_FN_VI1_DATA4_VI1_B4_B, +	GPIO_FN_SD0_DAT3, GPIO_FN_SCIFB1_RTS_N_B, GPIO_FN_VI1_DATA5_VI1_B5_B, +	GPIO_FN_SD0_CD, GPIO_FN_MMC0_D6, GPIO_FN_TS_SDEN0_B, GPIO_FN_USB0_EXTP, +	GPIO_FN_GLO_SCLK, GPIO_FN_VI1_DATA6_VI1_B6_B, GPIO_FN_SCL1_B, +	GPIO_FN_SCL1_CIS_B, GPIO_FN_VI2_DATA6_VI2_B6_B, GPIO_FN_SD0_WP, +	GPIO_FN_MMC0_D7, GPIO_FN_TS_SPSYNC0_B, GPIO_FN_USB0_IDIN, +	GPIO_FN_GLO_SDATA, GPIO_FN_VI1_DATA7_VI1_B7_B, GPIO_FN_SDA1_B, +	GPIO_FN_SDA1_CIS_B, GPIO_FN_VI2_DATA7_VI2_B7_B, GPIO_FN_SD1_CLK, +	GPIO_FN_AVB_TX_EN, GPIO_FN_MII_TX_EN, GPIO_FN_SD1_CMD, +	GPIO_FN_AVB_TX_ER, GPIO_FN_MII_TX_ER, GPIO_FN_SCIFB0_SCK_B, +	GPIO_FN_SD1_DAT0, GPIO_FN_AVB_TX_CLK, GPIO_FN_MII_TX_CLK, +	GPIO_FN_SCIFB0_RXD_B, GPIO_FN_SD1_DAT1, GPIO_FN_AVB_LINK, +	GPIO_FN_MII_LINK, GPIO_FN_SCIFB0_TXD_B, GPIO_FN_SD1_DAT2, +	GPIO_FN_AVB_COL, GPIO_FN_MII_COL, GPIO_FN_SCIFB0_CTS_N_B, +	GPIO_FN_SD1_DAT3, GPIO_FN_AVB_RXD0, GPIO_FN_MII_RXD0, +	GPIO_FN_SCIFB0_RTS_N_B, GPIO_FN_SD1_CD, GPIO_FN_MMC1_D6, +	GPIO_FN_TS_SDEN1, GPIO_FN_USB1_EXTP, GPIO_FN_GLO_SS, GPIO_FN_VI0_CLK_B, +	GPIO_FN_SCL2_D, GPIO_FN_SCL2_CIS_D, GPIO_FN_SIM0_CLK_B, +	GPIO_FN_VI3_CLK_B, + +	/* IPSR10 */ +	GPIO_FN_SD1_WP, GPIO_FN_MMC1_D7, GPIO_FN_TS_SPSYNC1, GPIO_FN_USB1_IDIN, +	GPIO_FN_GLO_RFON, GPIO_FN_VI1_CLK_B, GPIO_FN_SDA2_D, GPIO_FN_SDA2_CIS_D, +	GPIO_FN_SIM0_D_B, GPIO_FN_SD2_CLK, GPIO_FN_MMC0_CLK, GPIO_FN_SIM0_CLK, +	GPIO_FN_VI0_DATA0_VI0_B0_B, GPIO_FN_TS_SDEN0_C, GPIO_FN_GLO_SCLK_B, +	GPIO_FN_VI3_DATA0_B, GPIO_FN_SD2_CMD, GPIO_FN_MMC0_CMD, GPIO_FN_SIM0_D, +	GPIO_FN_VI0_DATA1_VI0_B1_B, GPIO_FN_SCIFB1_SCK_E, GPIO_FN_SCK1_D, +	GPIO_FN_TS_SPSYNC0_C, GPIO_FN_GLO_SDATA_B, GPIO_FN_VI3_DATA1_B, +	GPIO_FN_SD2_DAT0, GPIO_FN_MMC0_D0, GPIO_FN_FMCLK_B, +	GPIO_FN_VI0_DATA2_VI0_B2_B, GPIO_FN_SCIFB1_RXD_E, GPIO_FN_RX1_D, +	GPIO_FN_TS_SDAT0_C, GPIO_FN_GLO_SS_B, GPIO_FN_VI3_DATA2_B, +	GPIO_FN_SD2_DAT1, GPIO_FN_MMC0_D1, GPIO_FN_FMIN_B, GPIO_FN_RDS_DATA, +	GPIO_FN_VI0_DATA3_VI0_B3_B, GPIO_FN_SCIFB1_TXD_E, GPIO_FN_TX1_D, +	GPIO_FN_TS_SCK0_C, GPIO_FN_GLO_RFON_B, GPIO_FN_VI3_DATA3_B, +	GPIO_FN_SD2_DAT2, GPIO_FN_MMC0_D2, GPIO_FN_BPFCLK_B, GPIO_FN_RDS_CLK, +	GPIO_FN_VI0_DATA4_VI0_B4_B, GPIO_FN_HRX0_D, GPIO_FN_TS_SDEN1_B, +	GPIO_FN_GLO_Q0_B, GPIO_FN_VI3_DATA4_B, GPIO_FN_SD2_DAT3, +	GPIO_FN_MMC0_D3, GPIO_FN_SIM0_RST, GPIO_FN_VI0_DATA5_VI0_B5_B, +	GPIO_FN_HTX0_D, GPIO_FN_TS_SPSYNC1_B, GPIO_FN_GLO_Q1_B, +	GPIO_FN_VI3_DATA5_B, GPIO_FN_SD2_CD, GPIO_FN_MMC0_D4, +	GPIO_FN_TS_SDAT0_B, GPIO_FN_USB2_EXTP, GPIO_FN_GLO_I0, +	GPIO_FN_VI0_DATA6_VI0_B6_B, GPIO_FN_HCTS0_N_D, GPIO_FN_TS_SDAT1_B, +	GPIO_FN_GLO_I0_B, GPIO_FN_VI3_DATA6_B, + +	/* IPSR11 */ +	GPIO_FN_SD2_WP, GPIO_FN_MMC0_D5, GPIO_FN_TS_SCK0_B, GPIO_FN_USB2_IDIN, +	GPIO_FN_GLO_I1, GPIO_FN_VI0_DATA7_VI0_B7_B, GPIO_FN_HRTS0_N_D, +	GPIO_FN_TS_SCK1_B, GPIO_FN_GLO_I1_B, GPIO_FN_VI3_DATA7_B, +	GPIO_FN_SD3_CLK, GPIO_FN_MMC1_CLK, GPIO_FN_SD3_CMD, GPIO_FN_MMC1_CMD, +	GPIO_FN_MTS_N, GPIO_FN_SD3_DAT0, GPIO_FN_MMC1_D0, GPIO_FN_STM_N, +	GPIO_FN_SD3_DAT1, GPIO_FN_MMC1_D1, GPIO_FN_MDATA, GPIO_FN_SD3_DAT2, +	GPIO_FN_MMC1_D2, GPIO_FN_SDATA, GPIO_FN_SD3_DAT3, GPIO_FN_MMC1_D3, +	GPIO_FN_SCKZ, GPIO_FN_SD3_CD, GPIO_FN_MMC1_D4, GPIO_FN_TS_SDAT1, +	GPIO_FN_VSP, GPIO_FN_GLO_Q0, GPIO_FN_SIM0_RST_B, GPIO_FN_SD3_WP, +	GPIO_FN_MMC1_D5, GPIO_FN_TS_SCK1, GPIO_FN_GLO_Q1, GPIO_FN_FMIN_C, +	GPIO_FN_RDS_DATA_B, GPIO_FN_FMIN_E, GPIO_FN_RDS_DATA_D, GPIO_FN_FMIN_F, +	GPIO_FN_RDS_DATA_E, GPIO_FN_MLB_CLK, GPIO_FN_SCL2_B, GPIO_FN_SCL2_CIS_B, +	GPIO_FN_MLB_SIG, GPIO_FN_SCIFB1_RXD_D, GPIO_FN_RX1_C, GPIO_FN_SDA2_B, +	GPIO_FN_SDA2_CIS_B, GPIO_FN_MLB_DAT, GPIO_FN_SPV_EVEN, +	GPIO_FN_SCIFB1_TXD_D, GPIO_FN_TX1_C, GPIO_FN_BPFCLK_C, +	GPIO_FN_RDS_CLK_B, GPIO_FN_SSI_SCK0129, GPIO_FN_CAN_CLK_B, +	GPIO_FN_MOUT0, + +	/* IPSR12 */ +	GPIO_FN_SSI_WS0129, GPIO_FN_CAN0_TX_B, GPIO_FN_MOUT1, +	GPIO_FN_SSI_SDATA0, GPIO_FN_CAN0_RX_B, GPIO_FN_MOUT2, +	GPIO_FN_SSI_SDATA1, GPIO_FN_CAN1_TX_B, GPIO_FN_MOUT5, +	GPIO_FN_SSI_SDATA2, GPIO_FN_CAN1_RX_B, GPIO_FN_SSI_SCK1, GPIO_FN_MOUT6, +	GPIO_FN_SSI_SCK34, GPIO_FN_STP_OPWM_0, GPIO_FN_SCIFB0_SCK, +	GPIO_FN_MSIOF1_SCK, GPIO_FN_CAN_DEBUG_HW_TRIGGER, GPIO_FN_SSI_WS34, +	GPIO_FN_STP_IVCXO27_0, GPIO_FN_SCIFB0_RXD, GPIO_FN_MSIOF1_SYNC, +	GPIO_FN_CAN_STEP0, GPIO_FN_SSI_SDATA3, GPIO_FN_STP_ISCLK_0, +	GPIO_FN_SCIFB0_TXD, GPIO_FN_MSIOF1_SS1, GPIO_FN_CAN_TXCLK, +	GPIO_FN_SSI_SCK4, GPIO_FN_STP_ISD_0, GPIO_FN_SCIFB0_CTS_N, +	GPIO_FN_MSIOF1_SS2, GPIO_FN_SSI_SCK5_C, GPIO_FN_CAN_DEBUGOUT0, +	GPIO_FN_SSI_WS4, GPIO_FN_STP_ISEN_0, GPIO_FN_SCIFB0_RTS_N, +	GPIO_FN_MSIOF1_TXD, GPIO_FN_SSI_WS5_C, GPIO_FN_CAN_DEBUGOUT1, +	GPIO_FN_SSI_SDATA4, GPIO_FN_STP_ISSYNC_0, GPIO_FN_MSIOF1_RXD, +	GPIO_FN_CAN_DEBUGOUT2, GPIO_FN_SSI_SCK5, GPIO_FN_SCIFB1_SCK, +	GPIO_FN_IERX_B, GPIO_FN_DU2_EXHSYNC_DU2_HSYNC, GPIO_FN_QSTH_QHS, +	GPIO_FN_CAN_DEBUGOUT3, GPIO_FN_SSI_WS5, GPIO_FN_SCIFB1_RXD, +	GPIO_FN_IECLK_B, GPIO_FN_DU2_EXVSYNC_DU2_VSYNC, GPIO_FN_QSTB_QHE, +	GPIO_FN_CAN_DEBUGOUT4, + +	/* IPSR13 */ +	GPIO_FN_SSI_SDATA5, GPIO_FN_SCIFB1_TXD, GPIO_FN_IETX_B, GPIO_FN_DU2_DR2, +	GPIO_FN_LCDOUT2, GPIO_FN_CAN_DEBUGOUT5, GPIO_FN_SSI_SCK6, +	GPIO_FN_SCIFB1_CTS_N, GPIO_FN_BPFCLK_D, GPIO_FN_RDS_CLK_C, +	GPIO_FN_DU2_DR3, GPIO_FN_LCDOUT3, GPIO_FN_CAN_DEBUGOUT6, +	GPIO_FN_BPFCLK_F, GPIO_FN_RDS_CLK_E, GPIO_FN_SSI_WS6, +	GPIO_FN_SCIFB1_RTS_N, GPIO_FN_CAN0_TX_D, GPIO_FN_DU2_DR4, +	GPIO_FN_LCDOUT4, GPIO_FN_CAN_DEBUGOUT7, GPIO_FN_SSI_SDATA6, +	GPIO_FN_FMIN_D, GPIO_FN_RDS_DATA_C, GPIO_FN_DU2_DR5, GPIO_FN_LCDOUT5, +	GPIO_FN_CAN_DEBUGOUT8, GPIO_FN_SSI_SCK78, GPIO_FN_STP_IVCXO27_1, +	GPIO_FN_SCK1, GPIO_FN_SCIFA1_SCK, GPIO_FN_DU2_DR6, GPIO_FN_LCDOUT6, +	GPIO_FN_CAN_DEBUGOUT9, GPIO_FN_SSI_WS78, GPIO_FN_STP_ISCLK_1, +	GPIO_FN_SCIFB2_SCK, GPIO_FN_SCIFA2_CTS_N, GPIO_FN_DU2_DR7, +	GPIO_FN_LCDOUT7, GPIO_FN_CAN_DEBUGOUT10, GPIO_FN_SSI_SDATA7, +	GPIO_FN_STP_ISD_1, GPIO_FN_SCIFB2_RXD, GPIO_FN_SCIFA2_RTS_N, +	GPIO_FN_TCLK2, GPIO_FN_QSTVA_QVS, GPIO_FN_CAN_DEBUGOUT11, +	GPIO_FN_BPFCLK_E, GPIO_FN_RDS_CLK_D, GPIO_FN_SSI_SDATA7_B, +	GPIO_FN_FMIN_G, GPIO_FN_RDS_DATA_F, GPIO_FN_SSI_SDATA8, +	GPIO_FN_STP_ISEN_1, GPIO_FN_SCIFB2_TXD, GPIO_FN_CAN0_TX_C, +	GPIO_FN_CAN_DEBUGOUT12, GPIO_FN_SSI_SDATA8_B, GPIO_FN_SSI_SDATA9, +	GPIO_FN_STP_ISSYNC_1, GPIO_FN_SCIFB2_CTS_N, GPIO_FN_SSI_WS1, +	GPIO_FN_SSI_SDATA5_C, GPIO_FN_CAN_DEBUGOUT13, GPIO_FN_AUDIO_CLKA, +	GPIO_FN_SCIFB2_RTS_N, GPIO_FN_CAN_DEBUGOUT14, + +	/* IPSR14 */ +	GPIO_FN_AUDIO_CLKB, GPIO_FN_SCIF_CLK, GPIO_FN_CAN0_RX_D, +	GPIO_FN_DVC_MUTE, GPIO_FN_CAN0_RX_C, GPIO_FN_CAN_DEBUGOUT15, +	GPIO_FN_REMOCON, GPIO_FN_SCIFA0_SCK, GPIO_FN_HSCK1, GPIO_FN_SCK0, +	GPIO_FN_MSIOF3_SS2, GPIO_FN_DU2_DG2, GPIO_FN_LCDOUT10, GPIO_FN_SDA1_C, +	GPIO_FN_SDA1_CIS_C, GPIO_FN_SCIFA0_RXD, GPIO_FN_HRX1, GPIO_FN_RX0, +	GPIO_FN_DU2_DR0, GPIO_FN_LCDOUT0, GPIO_FN_SCIFA0_TXD, GPIO_FN_HTX1, +	GPIO_FN_TX0, GPIO_FN_DU2_DR1, GPIO_FN_LCDOUT1, GPIO_FN_SCIFA0_CTS_N, +	GPIO_FN_HCTS1_N, GPIO_FN_CTS0_N, GPIO_FN_MSIOF3_SYNC, GPIO_FN_DU2_DG3, +	GPIO_FN_LCDOUT11, GPIO_FN_PWM0_B, GPIO_FN_SCL1_C, GPIO_FN_SCL1_CIS_C, +	GPIO_FN_SCIFA0_RTS_N, GPIO_FN_HRTS1_N, GPIO_FN_RTS0_N_TANS, +	GPIO_FN_MSIOF3_SS1, GPIO_FN_DU2_DG0, GPIO_FN_LCDOUT8, GPIO_FN_PWM1_B, +	GPIO_FN_SCIFA1_RXD, GPIO_FN_AD_DI, GPIO_FN_RX1, +	GPIO_FN_DU2_EXODDF_DU2_ODDF_DISP_CDE, GPIO_FN_QCPV_QDE, +	GPIO_FN_SCIFA1_TXD, GPIO_FN_AD_DO, GPIO_FN_TX1, GPIO_FN_DU2_DG1, +	GPIO_FN_LCDOUT9, GPIO_FN_SCIFA1_CTS_N, GPIO_FN_AD_CLK, +	GPIO_FN_CTS1_N, GPIO_FN_MSIOF3_RXD, GPIO_FN_DU0_DOTCLKOUT, GPIO_FN_QCLK, +	GPIO_FN_SCIFA1_RTS_N, GPIO_FN_AD_NCS_N, GPIO_FN_RTS1_N_TANS, +	GPIO_FN_MSIOF3_TXD, GPIO_FN_DU1_DOTCLKOUT, GPIO_FN_QSTVB_QVE, +	GPIO_FN_HRTS0_N_C, + +	/* IPSR15 */ +	GPIO_FN_SCIFA2_SCK, GPIO_FN_FMCLK, GPIO_FN_MSIOF3_SCK, GPIO_FN_DU2_DG7, +	GPIO_FN_LCDOUT15, GPIO_FN_SCIF_CLK_B, GPIO_FN_SCIFA2_RXD, GPIO_FN_FMIN, +	GPIO_FN_DU2_DB0, GPIO_FN_LCDOUT16, GPIO_FN_SCL2, GPIO_FN_SCL2_CIS, +	GPIO_FN_SCIFA2_TXD, GPIO_FN_BPFCLK, GPIO_FN_DU2_DB1, GPIO_FN_LCDOUT17, +	GPIO_FN_SDA2, GPIO_FN_SDA2_CIS, GPIO_FN_HSCK0, GPIO_FN_TS_SDEN0, +	GPIO_FN_DU2_DG4, GPIO_FN_LCDOUT12, GPIO_FN_HCTS0_N_C, GPIO_FN_HRX0, +	GPIO_FN_DU2_DB2, GPIO_FN_LCDOUT18, GPIO_FN_HTX0, GPIO_FN_DU2_DB3, +	GPIO_FN_LCDOUT19, GPIO_FN_HCTS0_N, GPIO_FN_SSI_SCK9, GPIO_FN_DU2_DB4, +	GPIO_FN_LCDOUT20, GPIO_FN_HRTS0_N, GPIO_FN_SSI_WS9, GPIO_FN_DU2_DB5, +	GPIO_FN_LCDOUT21, GPIO_FN_MSIOF0_SCK, GPIO_FN_TS_SDAT0, GPIO_FN_ADICLK, +	GPIO_FN_DU2_DB6, GPIO_FN_LCDOUT22, GPIO_FN_MSIOF0_SYNC, GPIO_FN_TS_SCK0, +	GPIO_FN_SSI_SCK2, GPIO_FN_ADIDATA, GPIO_FN_DU2_DB7, GPIO_FN_LCDOUT23, +	GPIO_FN_SCIFA2_RXD_B, GPIO_FN_MSIOF0_SS1, GPIO_FN_ADICHS0, +	GPIO_FN_DU2_DG5, GPIO_FN_LCDOUT13, GPIO_FN_MSIOF0_TXD, GPIO_FN_ADICHS1, +	GPIO_FN_DU2_DG6, GPIO_FN_LCDOUT14, + +	/* IPSR16 */ +	GPIO_FN_MSIOF0_SS2, GPIO_FN_AUDIO_CLKOUT, GPIO_FN_ADICHS2, +	GPIO_FN_DU2_DISP, GPIO_FN_QPOLA, GPIO_FN_HTX0_C, GPIO_FN_SCIFA2_TXD_B, +	GPIO_FN_MSIOF0_RXD, GPIO_FN_TS_SPSYNC0, GPIO_FN_SSI_WS2, +	GPIO_FN_ADICS_SAMP, GPIO_FN_DU2_CDE, GPIO_FN_QPOLB, GPIO_FN_HRX0_C, +	GPIO_FN_USB1_PWEN, GPIO_FN_AUDIO_CLKOUT_D, GPIO_FN_USB1_OVC, +	GPIO_FN_TCLK1_B, +}; + +#endif /* __ASM_R8A7790_H__ */ diff --git a/arch/arm/include/asm/arch-rmobile/r8a7790.h b/arch/arm/include/asm/arch-rmobile/r8a7790.h new file mode 100644 index 000000000..42d65d356 --- /dev/null +++ b/arch/arm/include/asm/arch-rmobile/r8a7790.h @@ -0,0 +1,614 @@ +/* + * arch/arm/include/asm/arch-rmobile/r8a7790.h + * + * Copyright (C) 2013 Renesas Electronics Corporation + * + * SPDX-License-Identifier: GPL-2.0 + */ + +#ifndef __ASM_ARCH_R8A7790_H +#define __ASM_ARCH_R8A7790_H + +/* + * R8A7790 I/O Addresses + */ +#define	RWDT_BASE		0xE6020000 +#define	SWDT_BASE		0xE6030000 +#define	LBSC_BASE		0xFEC00200 +#define DBSC3_0_BASE		0xE6790000 +#define DBSC3_1_BASE		0xE67A0000 +#define TMU_BASE		0xE61E0000 +#define	GPIO5_BASE		0xE6055000 + +#define S3C_BASE		0xE6784000 +#define S3C_INT_BASE		0xE6784A00 +#define S3C_MEDIA_BASE		0xE6784B00 + +#define S3C_QOS_DCACHE_BASE	0xE6784BDC +#define S3C_QOS_CCI0_BASE	0xE6784C00 +#define S3C_QOS_CCI1_BASE	0xE6784C24 +#define S3C_QOS_MXI_BASE	0xE6784C48 +#define S3C_QOS_AXI_BASE	0xE6784C6C + +#define DBSC3_0_QOS_R0_BASE	0xE6791000 +#define DBSC3_0_QOS_R1_BASE	0xE6791100 +#define DBSC3_0_QOS_R2_BASE	0xE6791200 +#define DBSC3_0_QOS_R3_BASE	0xE6791300 +#define DBSC3_0_QOS_R4_BASE	0xE6791400 +#define DBSC3_0_QOS_R5_BASE	0xE6791500 +#define DBSC3_0_QOS_R6_BASE	0xE6791600 +#define DBSC3_0_QOS_R7_BASE	0xE6791700 +#define DBSC3_0_QOS_R8_BASE	0xE6791800 +#define DBSC3_0_QOS_R9_BASE	0xE6791900 +#define DBSC3_0_QOS_R10_BASE	0xE6791A00 +#define DBSC3_0_QOS_R11_BASE	0xE6791B00 +#define DBSC3_0_QOS_R12_BASE	0xE6791C00 +#define DBSC3_0_QOS_R13_BASE	0xE6791D00 +#define DBSC3_0_QOS_R14_BASE	0xE6791E00 +#define DBSC3_0_QOS_R15_BASE	0xE6791F00 +#define DBSC3_0_QOS_W0_BASE	0xE6792000 +#define DBSC3_0_QOS_W1_BASE	0xE6792100 +#define DBSC3_0_QOS_W2_BASE	0xE6792200 +#define DBSC3_0_QOS_W3_BASE	0xE6792300 +#define DBSC3_0_QOS_W4_BASE	0xE6792400 +#define DBSC3_0_QOS_W5_BASE	0xE6792500 +#define DBSC3_0_QOS_W6_BASE	0xE6792600 +#define DBSC3_0_QOS_W7_BASE	0xE6792700 +#define DBSC3_0_QOS_W8_BASE	0xE6792800 +#define DBSC3_0_QOS_W9_BASE	0xE6792900 +#define DBSC3_0_QOS_W10_BASE	0xE6792A00 +#define DBSC3_0_QOS_W11_BASE	0xE6792B00 +#define DBSC3_0_QOS_W12_BASE	0xE6792C00 +#define DBSC3_0_QOS_W13_BASE	0xE6792D00 +#define DBSC3_0_QOS_W14_BASE	0xE6792E00 +#define DBSC3_0_QOS_W15_BASE	0xE6792F00 + +#define DBSC3_0_DBADJ2		0xE67900C8 + +#define CCI_400_MAXOT_1		0xF0091110 +#define CCI_400_MAXOT_2		0xF0092110 +#define CCI_400_QOSCNTL_1	0xF009110C +#define CCI_400_QOSCNTL_2	0xF009210C + +#define	MXI_BASE		0xFE960000 +#define	MXI_QOS_BASE		0xFE960300 + +#define SYS_AXI_SYX64TO128_BASE	0xFF800300 +#define SYS_AXI_AVB_BASE	0xFF800340 +#define SYS_AXI_G2D_BASE	0xFF800540 +#define SYS_AXI_IMP0_BASE	0xFF800580 +#define SYS_AXI_IMP1_BASE	0xFF8005C0 +#define SYS_AXI_IMUX0_BASE	0xFF800600 +#define SYS_AXI_IMUX1_BASE	0xFF800640 +#define SYS_AXI_IMUX2_BASE	0xFF800680 +#define SYS_AXI_LBS_BASE	0xFF8006C0 +#define SYS_AXI_MMUDS_BASE	0xFF800700 +#define SYS_AXI_MMUM_BASE	0xFF800740 +#define SYS_AXI_MMUR_BASE	0xFF800780 +#define SYS_AXI_MMUS0_BASE	0xFF8007C0 +#define SYS_AXI_MMUS1_BASE	0xFF800800 +#define SYS_AXI_MTSB0_BASE	0xFF800880 +#define SYS_AXI_MTSB1_BASE	0xFF8008C0 +#define SYS_AXI_PCI_BASE	0xFF800900 +#define SYS_AXI_RTX_BASE	0xFF800940 +#define SYS_AXI_SDS0_BASE	0xFF800A80 +#define SYS_AXI_SDS1_BASE	0xFF800AC0 +#define SYS_AXI_USB20_BASE	0xFF800C00 +#define SYS_AXI_USB21_BASE	0xFF800C40 +#define SYS_AXI_USB22_BASE	0xFF800C80 +#define SYS_AXI_USB30_BASE	0xFF800CC0 + +#define RT_AXI_SHX_BASE		0xFF810100 +#define RT_AXI_RDS_BASE		0xFF8101C0 +#define RT_AXI_RTX64TO128_BASE	0xFF810200 +#define RT_AXI_STPRO_BASE	0xFF810240 + +#define MP_AXI_ADSP_BASE	0xFF820100 +#define MP_AXI_ASDS0_BASE	0xFF8201C0 +#define MP_AXI_ASDS1_BASE	0xFF820200 +#define MP_AXI_MLP_BASE		0xFF820240 +#define MP_AXI_MMUMP_BASE	0xFF820280 +#define MP_AXI_SPU_BASE		0xFF8202C0 +#define MP_AXI_SPUC_BASE	0xFF820300 + +#define SYS_AXI256_AXI128TO256_BASE	0xFF860100 +#define SYS_AXI256_SYX_BASE	0xFF860140 +#define SYS_AXI256_MPX_BASE	0xFF860180 +#define SYS_AXI256_MXI_BASE	0xFF8601C0 + +#define CCI_AXI_MMUS0_BASE	0xFF880100 +#define CCI_AXI_SYX2_BASE	0xFF880140 +#define CCI_AXI_MMUR_BASE	0xFF880180 +#define CCI_AXI_MMUDS_BASE	0xFF8801C0 +#define CCI_AXI_MMUM_BASE	0xFF880200 +#define CCI_AXI_MXI_BASE	0xFF880240 +#define CCI_AXI_MMUS1_BASE	0xFF880280 +#define CCI_AXI_MMUMP_BASE	0xFF8802C0 + +#define MEDIA_AXI_JPR_BASE	0xFE964100 +#define MEDIA_AXI_JPW_BASE	0xFE966100 +#define MEDIA_AXI_GCU0R_BASE	0xFE964140 +#define MEDIA_AXI_GCU0W_BASE	0xFE966140 +#define MEDIA_AXI_GCU1R_BASE	0xFE964180 +#define MEDIA_AXI_GCU1W_BASE	0xFE966180 +#define MEDIA_AXI_TDMR_BASE	0xFE964500 +#define MEDIA_AXI_TDMW_BASE	0xFE966500 +#define MEDIA_AXI_VSP0CR_BASE	0xFE964540 +#define MEDIA_AXI_VSP0CW_BASE	0xFE966540 +#define MEDIA_AXI_VSP1CR_BASE	0xFE964580 +#define MEDIA_AXI_VSP1CW_BASE	0xFE966580 +#define MEDIA_AXI_VSPDU0CR_BASE	0xFE9645C0 +#define MEDIA_AXI_VSPDU0CW_BASE	0xFE9665C0 +#define MEDIA_AXI_VSPDU1CR_BASE	0xFE964600 +#define MEDIA_AXI_VSPDU1CW_BASE	0xFE966600 +#define MEDIA_AXI_VIN0W_BASE	0xFE966900 +#define MEDIA_AXI_VSP0R_BASE	0xFE964D00 +#define MEDIA_AXI_VSP0W_BASE	0xFE966D00 +#define MEDIA_AXI_FDP0R_BASE	0xFE964D40 +#define MEDIA_AXI_FDP0W_BASE	0xFE966D40 +#define MEDIA_AXI_IMSR_BASE	0xFE964D80 +#define MEDIA_AXI_IMSW_BASE	0xFE966D80 +#define MEDIA_AXI_VSP1R_BASE	0xFE965100 +#define MEDIA_AXI_VSP1W_BASE	0xFE967100 +#define MEDIA_AXI_FDP1R_BASE	0xFE965140 +#define MEDIA_AXI_FDP1W_BASE	0xFE967140 +#define MEDIA_AXI_IMRR_BASE	0xFE965180 +#define MEDIA_AXI_IMRW_BASE	0xFE967180 +#define MEDIA_AXI_FDP2R_BASE	0xFE9651C0 +#define MEDIA_AXI_FDP2W_BASE	0xFE966DC0 +#define MEDIA_AXI_VSPD0R_BASE	0xFE965500 +#define MEDIA_AXI_VSPD0W_BASE	0xFE967500 +#define MEDIA_AXI_VSPD1R_BASE	0xFE965540 +#define MEDIA_AXI_VSPD1W_BASE	0xFE967540 +#define MEDIA_AXI_DU0R_BASE	0xFE965580 +#define MEDIA_AXI_DU0W_BASE	0xFE967580 +#define MEDIA_AXI_DU1R_BASE	0xFE9655C0 +#define MEDIA_AXI_DU1W_BASE	0xFE9675C0 +#define MEDIA_AXI_VCP0CR_BASE	0xFE965900 +#define MEDIA_AXI_VCP0CW_BASE	0xFE967900 +#define MEDIA_AXI_VCP0VR_BASE	0xFE965940 +#define MEDIA_AXI_VCP0VW_BASE	0xFE967940 +#define MEDIA_AXI_VPC0R_BASE	0xFE965980 +#define MEDIA_AXI_VCP1CR_BASE	0xFE965D00 +#define MEDIA_AXI_VCP1CW_BASE	0xFE967D00 +#define MEDIA_AXI_VCP1VR_BASE	0xFE965D40 +#define MEDIA_AXI_VCP1VW_BASE	0xFE967D40 +#define MEDIA_AXI_VPC1R_BASE	0xFE965D80 + +#define SYS_AXI_AVBDMSCR	0xFF802000 +#define SYS_AXI_SYX2DMSCR	0xFF802004 +#define SYS_AXI_CC50DMSCR	0xFF802008 +#define SYS_AXI_CC51DMSCR	0xFF80200C +#define SYS_AXI_CCIDMSCR	0xFF802010 +#define SYS_AXI_CSDMSCR		0xFF802014 +#define SYS_AXI_DDMDMSCR	0xFF802018 +#define SYS_AXI_ETHDMSCR	0xFF80201C +#define SYS_AXI_G2DDMSCR	0xFF802020 +#define SYS_AXI_IMP0DMSCR	0xFF802024 +#define SYS_AXI_IMP1DMSCR	0xFF802028 +#define SYS_AXI_LBSDMSCR	0xFF80202C +#define SYS_AXI_MMUDSDMSCR	0xFF802030 +#define SYS_AXI_MMUMXDMSCR	0xFF802034 +#define SYS_AXI_MMURDDMSCR	0xFF802038 +#define SYS_AXI_MMUS0DMSCR	0xFF80203C +#define SYS_AXI_MMUS1DMSCR	0xFF802040 +#define SYS_AXI_MPXDMSCR	0xFF802044 +#define SYS_AXI_MTSB0DMSCR	0xFF802048 +#define SYS_AXI_MTSB1DMSCR	0xFF80204C +#define SYS_AXI_PCIDMSCR	0xFF802050 +#define SYS_AXI_RTXDMSCR	0xFF802054 +#define SYS_AXI_SAT0DMSCR	0xFF802058 +#define SYS_AXI_SAT1DMSCR	0xFF80205C +#define SYS_AXI_SDM0DMSCR	0xFF802060 +#define SYS_AXI_SDM1DMSCR	0xFF802064 +#define SYS_AXI_SDS0DMSCR	0xFF802068 +#define SYS_AXI_SDS1DMSCR	0xFF80206C +#define SYS_AXI_ETRABDMSCR	0xFF802070 +#define SYS_AXI_ETRKFDMSCR	0xFF802074 +#define SYS_AXI_UDM0DMSCR	0xFF802078 +#define SYS_AXI_UDM1DMSCR	0xFF80207C +#define SYS_AXI_USB20DMSCR	0xFF802080 +#define SYS_AXI_USB21DMSCR	0xFF802084 +#define SYS_AXI_USB22DMSCR	0xFF802088 +#define SYS_AXI_USB30DMSCR	0xFF80208C +#define SYS_AXI_X128TO64SLVDMSCR	0xFF802100 +#define SYS_AXI_X64TO128SLVDMSCR	0xFF802104 +#define SYS_AXI_AVBSLVDMSCR	0xFF802108 +#define SYS_AXI_SYX2SLVDMSCR	0xFF80210C +#define SYS_AXI_ETHSLVDMSCR	0xFF802110 +#define SYS_AXI_GICSLVDMSCR	0xFF802114 +#define SYS_AXI_IMPSLVDMSCR	0xFF802118 +#define SYS_AXI_IMX0SLVDMSCR	0xFF80211C +#define SYS_AXI_IMX1SLVDMSCR	0xFF802120 +#define SYS_AXI_IMX2SLVDMSCR	0xFF802124 +#define SYS_AXI_LBSSLVDMSCR	0xFF802128 +#define SYS_AXI_MMC0SLVDMSCR	0xFF80212C +#define SYS_AXI_MMC1SLVDMSCR	0xFF802130 +#define SYS_AXI_MPXSLVDMSCR	0xFF802134 +#define SYS_AXI_MTSB0SLVDMSCR	0xFF802138 +#define SYS_AXI_MTSB1SLVDMSCR	0xFF80213C +#define SYS_AXI_MXTSLVDMSCR	0xFF802140 +#define SYS_AXI_PCISLVDMSCR	0xFF802144 +#define SYS_AXI_SYAPBSLVDMSCR	0xFF802148 +#define SYS_AXI_QSAPBSLVDMSCR	0xFF80214C +#define SYS_AXI_RTXSLVDMSCR	0xFF802150 +#define SYS_AXI_SAT0SLVDMSCR	0xFF802168 +#define SYS_AXI_SAT1SLVDMSCR	0xFF80216C +#define SYS_AXI_SDAP0SLVDMSCR	0xFF802170 +#define SYS_AXI_SDAP1SLVDMSCR	0xFF802174 +#define SYS_AXI_SDAP2SLVDMSCR	0xFF802178 +#define SYS_AXI_SDAP3SLVDMSCR	0xFF80217C +#define SYS_AXI_SGXSLVDMSCR	0xFF802180 +#define SYS_AXI_STBSLVDMSCR	0xFF802188 +#define SYS_AXI_STMSLVDMSCR	0xFF80218C +#define SYS_AXI_TSPL0SLVDMSCR	0xFF802194 +#define SYS_AXI_TSPL1SLVDMSCR	0xFF802198 +#define SYS_AXI_TSPL2SLVDMSCR	0xFF80219C +#define SYS_AXI_USB20SLVDMSCR	0xFF8021A0 +#define SYS_AXI_USB21SLVDMSCR	0xFF8021A4 +#define SYS_AXI_USB22SLVDMSCR	0xFF8021A8 +#define SYS_AXI_USB30SLVDMSCR	0xFF8021AC + +#define RT_AXI_CBMDMSCR		0xFF812000 +#define RT_AXI_DBDMSCR		0xFF812004 +#define RT_AXI_RDMDMSCR		0xFF812008 +#define RT_AXI_RDSDMSCR		0xFF81200C +#define RT_AXI_STRDMSCR		0xFF812010 +#define RT_AXI_SY2RTDMSCR	0xFF812014 +#define RT_AXI_CBSSLVDMSCR	0xFF812100 +#define RT_AXI_DBSSLVDMSCR	0xFF812104 +#define RT_AXI_RTAP1SLVDMSCR	0xFF812108 +#define RT_AXI_RTAP2SLVDMSCR	0xFF81210C +#define RT_AXI_RTAP3SLVDMSCR	0xFF812110 +#define RT_AXI_RT2SYSLVDMSCR	0xFF812114 +#define RT_AXI_A128TO64SLVDMSCR	0xFF812118 +#define RT_AXI_A64TO128SLVDMSCR	0xFF81211C +#define RT_AXI_A64TO128CSLVDMSCR	0xFF812120 +#define RT_AXI_UTLBRSLVDMSCR	0xFF812128 + +#define MP_AXI_ADSPDMSCR	0xFF822000 +#define MP_AXI_ASDM0DMSCR	0xFF822004 +#define MP_AXI_ASDM1DMSCR	0xFF822008 +#define MP_AXI_ASDS0DMSCR	0xFF82200C +#define MP_AXI_ASDS1DMSCR	0xFF822010 +#define MP_AXI_MLPDMSCR		0xFF822014 +#define MP_AXI_MMUMPDMSCR	0xFF822018 +#define MP_AXI_SPUDMSCR		0xFF82201C +#define MP_AXI_SPUCDMSCR	0xFF822020 +#define MP_AXI_SY2MPDMSCR	0xFF822024 +#define MP_AXI_ADSPSLVDMSCR	0xFF822100 +#define MP_AXI_MLMSLVDMSCR	0xFF822104 +#define MP_AXI_MPAP4SLVDMSCR	0xFF822108 +#define MP_AXI_MPAP5SLVDMSCR	0xFF82210C +#define MP_AXI_MPAP6SLVDMSCR	0xFF822110 +#define MP_AXI_MPAP7SLVDMSCR	0xFF822114 +#define MP_AXI_MP2SYSLVDMSCR	0xFF822118 +#define MP_AXI_MP2SY2SLVDMSCR	0xFF82211C +#define MP_AXI_MPXAPSLVDMSCR	0xFF822124 +#define MP_AXI_SPUSLVDMSCR	0xFF822128 +#define MP_AXI_UTLBMPSLVDMSCR	0xFF82212C + +#define ADM_AXI_ASDM0DMSCR	0xFF842000 +#define ADM_AXI_ASDM1DMSCR	0xFF842004 +#define ADM_AXI_MPAP1SLVDMSCR	0xFF842104 +#define ADM_AXI_MPAP2SLVDMSCR	0xFF842108 +#define ADM_AXI_MPAP3SLVDMSCR	0xFF84210C + +#define DM_AXI_RDMDMSCR		0xFF852000 +#define DM_AXI_SDM0DMSCR	0xFF852004 +#define DM_AXI_SDM1DMSCR	0xFF852008 +#define DM_AXI_MMAP0SLVDMSCR	0xFF852100 +#define DM_AXI_MMAP1SLVDMSCR	0xFF852104 +#define DM_AXI_QSPAPSLVDMSCR	0xFF852108 +#define DM_AXI_RAP4SLVDMSCR	0xFF85210C +#define DM_AXI_RAP5SLVDMSCR	0xFF852110 +#define DM_AXI_SAP4SLVDMSCR	0xFF852114 +#define DM_AXI_SAP5SLVDMSCR	0xFF852118 +#define DM_AXI_SAP6SLVDMSCR	0xFF85211C +#define DM_AXI_SAP65SLVDMSCR	0xFF852120 +#define DM_AXI_SDAP0SLVDMSCR	0xFF852124 +#define DM_AXI_SDAP1SLVDMSCR	0xFF852128 +#define DM_AXI_SDAP2SLVDMSCR	0xFF85212C +#define DM_AXI_SDAP3SLVDMSCR	0xFF852130 + +#define SYS_AXI256_SYXDMSCR	0xFF862000 +#define SYS_AXI256_MPXDMSCR	0xFF862004 +#define SYS_AXI256_MXIDMSCR	0xFF862008 +#define SYS_AXI256_X128TO256SLVDMSCR	0xFF862100 +#define SYS_AXI256_X256TO128SLVDMSCR	0xFF862104 +#define SYS_AXI256_SYXSLVDMSCR	0xFF862108 +#define SYS_AXI256_CCXSLVDMSCR	0xFF86210C +#define SYS_AXI256_S3CSLVDMSCR	0xFF862110 + +#define MXT_SYXDMSCR		0xFF872000 +#define MXT_CMM0SLVDMSCR	0xFF872100 +#define MXT_CMM1SLVDMSCR	0xFF872104 +#define MXT_CMM2SLVDMSCR	0xFF872108 +#define MXT_FDPSLVDMSCR		0xFF87210C +#define MXT_IMRSLVDMSCR		0xFF872110 +#define MXT_VINSLVDMSCR		0xFF872114 +#define MXT_VPC0SLVDMSCR	0xFF872118 +#define MXT_VPC1SLVDMSCR	0xFF87211C +#define MXT_VSP0SLVDMSCR	0xFF872120 +#define MXT_VSP1SLVDMSCR	0xFF872124 +#define MXT_VSPD0SLVDMSCR	0xFF872128 +#define MXT_VSPD1SLVDMSCR	0xFF87212C +#define MXT_MAP1SLVDMSCR	0xFF872130 +#define MXT_MAP2SLVDMSCR	0xFF872134 + +#define CCI_AXI_MMUS0DMSCR	0xFF882000 +#define CCI_AXI_SYX2DMSCR	0xFF882004 +#define CCI_AXI_MMURDMSCR	0xFF882008 +#define CCI_AXI_MMUDSDMSCR	0xFF88200C +#define CCI_AXI_MMUMDMSCR	0xFF882010 +#define CCI_AXI_MXIDMSCR	0xFF882014 +#define CCI_AXI_MMUS1DMSCR	0xFF882018 +#define CCI_AXI_MMUMPDMSCR	0xFF88201C +#define CCI_AXI_DVMDMSCR	0xFF882020 +#define CCI_AXI_CCISLVDMSCR	0xFF882100 + +#define CCI_AXI_IPMMUIDVMCR	0xFF880400 +#define CCI_AXI_IPMMURDVMCR	0xFF880404 +#define CCI_AXI_IPMMUS0DVMCR	0xFF880408 +#define CCI_AXI_IPMMUS1DVMCR	0xFF88040C +#define CCI_AXI_IPMMUMPDVMCR	0xFF880410 +#define CCI_AXI_IPMMUDSDVMCR	0xFF880414 +#define CCI_AXI_AX2ADDRMASK	0xFF88041C + +#ifndef __ASSEMBLY__ +#include <asm/types.h> + +/* RWDT */ +struct r8a7790_rwdt { +	u32 rwtcnt;	/* 0x00 */ +	u32 rwtcsra;	/* 0x04 */ +	u16 rwtcsrb;	/* 0x08 */ +}; + +/* SWDT */ +struct r8a7790_swdt { +	u32 swtcnt;	/* 0x00 */ +	u32 swtcsra;	/* 0x04 */ +	u16 swtcsrb;	/* 0x08 */ +}; + +/* LBSC */ +struct r8a7790_lbsc { +	u32 cs0ctrl; +	u32 cs1ctrl; +	u32 ecs0ctrl; +	u32 ecs1ctrl; +	u32 ecs2ctrl; +	u32 ecs3ctrl; +	u32 ecs4ctrl; +	u32 ecs5ctrl; +	u32 dummy0[4];	/* 0x20 .. 0x2C */ +	u32 cswcr0; +	u32 cswcr1; +	u32 ecswcr0; +	u32 ecswcr1; +	u32 ecswcr2; +	u32 ecswcr3; +	u32 ecswcr4; +	u32 ecswcr5; +	u32 exdmawcr0; +	u32 exdmawcr1; +	u32 exdmawcr2; +	u32 dummy1[9];	/* 0x5C .. 0x7C */ +	u32 cspwcr0; +	u32 cspwcr1; +	u32 ecspwcr0; +	u32 ecspwcr1; +	u32 ecspwcr2; +	u32 ecspwcr3; +	u32 ecspwcr4; +	u32 ecspwcr5; +	u32 exwtsync; +	u32 dummy2[3];	/* 0xA4 .. 0xAC */ +	u32 cs0bstctl; +	u32 cs0btph; +	u32 dummy3[2];	/* 0xB8 .. 0xBC */ +	u32 cs1gdst; +	u32 ecs0gdst; +	u32 ecs1gdst; +	u32 ecs2gdst; +	u32 ecs3gdst; +	u32 ecs4gdst; +	u32 ecs5gdst; +	u32 dummy4[5];	/* 0xDC .. 0xEC */ +	u32 exdmaset0; +	u32 exdmaset1; +	u32 exdmaset2; +	u32 dummy5[5];	/* 0xFC .. 0x10C */ +	u32 exdmcr0; +	u32 exdmcr1; +	u32 exdmcr2; +	u32 dummy6[5];	/* 0x11C .. 0x12C */ +	u32 bcintsr; +	u32 bcintcr; +	u32 bcintmr; +	u32 dummy7;	/* 0x13C */ +	u32 exbatlv; +	u32 exwtsts; +	u32 dummy8[14];	/* 0x148 .. 0x17C */ +	u32 atacsctrl; +	u32 dummy9[15]; /* 0x184 .. 0x1BC */ +	u32 exbct; +	u32 extct; +}; + +/* DBSC3 */ +struct r8a7790_dbsc3 { +	u32 dummy0[3];	/* 0x00 .. 0x08 */ +	u32 dbstate1; +	u32 dbacen; +	u32 dbrfen; +	u32 dbcmd; +	u32 dbwait; +	u32 dbkind; +	u32 dbconf0; +	u32 dummy1[2];	/* 0x28 .. 0x2C */ +	u32 dbphytype; +	u32 dummy2[3];	/* 0x34 .. 0x3C */ +	u32 dbtr0; +	u32 dbtr1; +	u32 dbtr2; +	u32 dummy3;	/* 0x4C */ +	u32 dbtr3; +	u32 dbtr4; +	u32 dbtr5; +	u32 dbtr6; +	u32 dbtr7; +	u32 dbtr8; +	u32 dbtr9; +	u32 dbtr10; +	u32 dbtr11; +	u32 dbtr12; +	u32 dbtr13; +	u32 dbtr14; +	u32 dbtr15; +	u32 dbtr16; +	u32 dbtr17; +	u32 dbtr18; +	u32 dbtr19; +	u32 dummy4[7];	/* 0x94 .. 0xAC */ +	u32 dbbl; +	u32 dummy5[3];	/* 0xB4 .. 0xBC */ +	u32 dbadj0; +	u32 dummy6;	/* 0xC4 */ +	u32 dbadj2; +	u32 dummy7[5];	/* 0xCC .. 0xDC */ +	u32 dbrfcnf0; +	u32 dbrfcnf1; +	u32 dbrfcnf2; +	u32 dummy8[2];	/* 0xEC .. 0xF0 */ +	u32 dbcalcnf; +	u32 dbcaltr; +	u32 dummy9;	/* 0xFC */ +	u32 dbrnk0; +	u32 dummy10[31];	/* 0x104 .. 0x17C */ +	u32 dbpdncnf; +	u32 dummy11[47];	/* 0x184 ..0x23C */ +	u32 dbdfistat; +	u32 dbdficnt; +	u32 dummy12[14];	/* 0x248 .. 0x27C */ +	u32 dbpdlck; +	u32 dummy13[3];	/* 0x284 .. 0x28C */ +	u32 dbpdrga; +	u32 dummy14[3];	/* 0x294 .. 0x29C */ +	u32 dbpdrgd; +	u32 dummy15[24];	/* 0x2A4 .. 0x300 */ +	u32 dbbs0cnt1; +	u32 dummy16[30];	/* 0x308 .. 0x37C */ +	u32 dbwt0cnf0; +	u32 dbwt0cnf1; +	u32 dbwt0cnf2; +	u32 dbwt0cnf3; +	u32 dbwt0cnf4; +}; + +/* GPIO */ +struct r8a7790_gpio { +	u32 iointsel; +	u32 inoutsel; +	u32 outdt; +	u32 indt; +	u32 intdt; +	u32 intclr; +	u32 intmsk; +	u32 posneg; +	u32 edglevel; +	u32 filonoff; +	u32 intmsks; +	u32 mskclrs; +	u32 outdtsel; +	u32 outdth; +	u32 outdtl; +	u32 bothedge; +}; + +/* S3C(QoS) */ +struct r8a7790_s3c { +	u32 s3cexcladdmsk; +	u32 s3cexclidmsk; +	u32 s3cadsplcr; +	u32 s3cmaar; +	u32 s3carcr11; +	u32 s3crorr; +	u32 s3cworr; +	u32 s3carcr22; +	u32 dummy1[2];	/* 0x20 .. 0x24 */ +	u32 s3cmctr; +	u32 dummy2;	/* 0x2C */ +	u32 cconf0; +	u32 cconf1; +	u32 cconf2; +	u32 cconf3; +}; + +struct r8a7790_s3c_qos { +	u32 s3cqos0; +	u32 s3cqos1; +	u32 s3cqos2; +	u32 s3cqos3; +	u32 s3cqos4; +	u32 s3cqos5; +	u32 s3cqos6; +	u32 s3cqos7; +	u32 s3cqos8; +}; + +/* DBSC(QoS) */ +struct r8a7790_dbsc3_qos { +	u32 dblgcnt; +	u32 dbtmval0; +	u32 dbtmval1; +	u32 dbtmval2; +	u32 dbtmval3; +	u32 dbrqctr; +	u32 dbthres0; +	u32 dbthres1; +	u32 dbthres2; +	u32 dummy0;	/* 0x24 */ +	u32 dblgqon; +}; + +/* MXI(QoS) */ +struct r8a7790_mxi { +	u32 mxsaar0; +	u32 mxsaar1; +	u32 dummy0[7];	/* 0x08 .. 0x20 */ +	u32 mxaxiracr; +	u32 mxs3cracr; +	u32 dummy1[2];	/* 0x2C .. 0x30 */ +	u32 mxaxiwacr; +	u32 mxs3cwacr; +	u32 dummy2;	/* 0x3C */ +	u32 mxrtcr; +	u32 mxwtcr; +}; + +struct r8a7790_mxi_qos { +	u32 vspdu0; +	u32 vspdu1; +	u32 du0; +	u32 du1; +}; + +/* AXI(QoS) */ +struct r8a7790_axi_qos { +	u32 qosconf; +	u32 qosctset0; +	u32 qosctset1; +	u32 qosctset2; +	u32 qosctset3; +	u32 qosreqctr; +	u32 qosthres0; +	u32 qosthres1; +	u32 qosthres2; +	u32 qosqon; +}; + +#endif + +#endif /* __ASM_ARCH_R8A7790_H */ diff --git a/arch/arm/include/asm/arch-rmobile/r8a7791-gpio.h b/arch/arm/include/asm/arch-rmobile/r8a7791-gpio.h new file mode 100644 index 000000000..d3cf0c10a --- /dev/null +++ b/arch/arm/include/asm/arch-rmobile/r8a7791-gpio.h @@ -0,0 +1,438 @@ +#ifndef __ASM_R8A7791_H__ +#define __ASM_R8A7791_H__ + +/* Pin Function Controller: + * GPIO_FN_xx - GPIO used to select pin function + * GPIO_GP_x_x - GPIO mapped to real I/O pin on CPU + */ +enum { +	GPIO_GP_0_0, GPIO_GP_0_1, GPIO_GP_0_2, GPIO_GP_0_3, +	GPIO_GP_0_4, GPIO_GP_0_5, GPIO_GP_0_6, GPIO_GP_0_7, +	GPIO_GP_0_8, GPIO_GP_0_9, GPIO_GP_0_10, GPIO_GP_0_11, +	GPIO_GP_0_12, GPIO_GP_0_13, GPIO_GP_0_14, GPIO_GP_0_15, +	GPIO_GP_0_16, GPIO_GP_0_17, GPIO_GP_0_18, GPIO_GP_0_19, +	GPIO_GP_0_20, GPIO_GP_0_21, GPIO_GP_0_22, GPIO_GP_0_23, +	GPIO_GP_0_24, GPIO_GP_0_25, GPIO_GP_0_26, GPIO_GP_0_27, +	GPIO_GP_0_28, GPIO_GP_0_29, GPIO_GP_0_30, GPIO_GP_0_31, + +	GPIO_GP_1_0, GPIO_GP_1_1, GPIO_GP_1_2, GPIO_GP_1_3, +	GPIO_GP_1_4, GPIO_GP_1_5, GPIO_GP_1_6, GPIO_GP_1_7, +	GPIO_GP_1_8, GPIO_GP_1_9, GPIO_GP_1_10, GPIO_GP_1_11, +	GPIO_GP_1_12, GPIO_GP_1_13, GPIO_GP_1_14, GPIO_GP_1_15, +	GPIO_GP_1_16, GPIO_GP_1_17, GPIO_GP_1_18, GPIO_GP_1_19, +	GPIO_GP_1_20, GPIO_GP_1_21, GPIO_GP_1_22, GPIO_GP_1_23, +	GPIO_GP_1_24, GPIO_GP_1_25, + +	GPIO_GP_2_0, GPIO_GP_2_1, GPIO_GP_2_2, GPIO_GP_2_3, +	GPIO_GP_2_4, GPIO_GP_2_5, GPIO_GP_2_6, GPIO_GP_2_7, +	GPIO_GP_2_8, GPIO_GP_2_9, GPIO_GP_2_10, GPIO_GP_2_11, +	GPIO_GP_2_12, GPIO_GP_2_13, GPIO_GP_2_14, GPIO_GP_2_15, +	GPIO_GP_2_16, GPIO_GP_2_17, GPIO_GP_2_18, GPIO_GP_2_19, +	GPIO_GP_2_20, GPIO_GP_2_21, GPIO_GP_2_22, GPIO_GP_2_23, +	GPIO_GP_2_24, GPIO_GP_2_25, GPIO_GP_2_26, GPIO_GP_2_27, +	GPIO_GP_2_28, GPIO_GP_2_29, GPIO_GP_2_30, GPIO_GP_2_31, + +	GPIO_GP_3_0, GPIO_GP_3_1, GPIO_GP_3_2, GPIO_GP_3_3, +	GPIO_GP_3_4, GPIO_GP_3_5, GPIO_GP_3_6, GPIO_GP_3_7, +	GPIO_GP_3_8, GPIO_GP_3_9, GPIO_GP_3_10, GPIO_GP_3_11, +	GPIO_GP_3_12, GPIO_GP_3_13, GPIO_GP_3_14, GPIO_GP_3_15, +	GPIO_GP_3_16, GPIO_GP_3_17, GPIO_GP_3_18, GPIO_GP_3_19, +	GPIO_GP_3_20, GPIO_GP_3_21, GPIO_GP_3_22, GPIO_GP_3_23, +	GPIO_GP_3_24, GPIO_GP_3_25, GPIO_GP_3_26, GPIO_GP_3_27, +	GPIO_GP_3_28, GPIO_GP_3_29, GPIO_GP_3_30, GPIO_GP_3_31, + +	GPIO_GP_4_0, GPIO_GP_4_1, GPIO_GP_4_2, GPIO_GP_4_3, +	GPIO_GP_4_4, GPIO_GP_4_5, GPIO_GP_4_6, GPIO_GP_4_7, +	GPIO_GP_4_8, GPIO_GP_4_9, GPIO_GP_4_10, GPIO_GP_4_11, +	GPIO_GP_4_12, GPIO_GP_4_13, GPIO_GP_4_14, GPIO_GP_4_15, +	GPIO_GP_4_16, GPIO_GP_4_17, GPIO_GP_4_18, GPIO_GP_4_19, +	GPIO_GP_4_20, GPIO_GP_4_21, GPIO_GP_4_22, GPIO_GP_4_23, +	GPIO_GP_4_24, GPIO_GP_4_25, GPIO_GP_4_26, GPIO_GP_4_27, +	GPIO_GP_4_28, GPIO_GP_4_29, GPIO_GP_4_30, GPIO_GP_4_31, + +	GPIO_GP_5_0, GPIO_GP_5_1, GPIO_GP_5_2, GPIO_GP_5_3, +	GPIO_GP_5_4, GPIO_GP_5_5, GPIO_GP_5_6, GPIO_GP_5_7, +	GPIO_GP_5_8, GPIO_GP_5_9, GPIO_GP_5_10, GPIO_GP_5_11, +	GPIO_GP_5_12, GPIO_GP_5_13, GPIO_GP_5_14, GPIO_GP_5_15, +	GPIO_GP_5_16, GPIO_GP_5_17, GPIO_GP_5_18, GPIO_GP_5_19, +	GPIO_GP_5_20, GPIO_GP_5_21, GPIO_GP_5_22, GPIO_GP_5_23, +	GPIO_GP_5_24, GPIO_GP_5_25, GPIO_GP_5_26, GPIO_GP_5_27, +	GPIO_GP_5_28, GPIO_GP_5_29, GPIO_GP_5_30, GPIO_GP_5_31, + +	GPIO_GP_6_0, GPIO_GP_6_1, GPIO_GP_6_2, GPIO_GP_6_3, +	GPIO_GP_6_4, GPIO_GP_6_5, GPIO_GP_6_6, GPIO_GP_6_7, +	GPIO_GP_6_8, GPIO_GP_6_9, GPIO_GP_6_10, GPIO_GP_6_11, +	GPIO_GP_6_12, GPIO_GP_6_13, GPIO_GP_6_14, GPIO_GP_6_15, +	GPIO_GP_6_16, GPIO_GP_6_17, GPIO_GP_6_18, GPIO_GP_6_19, +	GPIO_GP_6_20, GPIO_GP_6_21, GPIO_GP_6_22, GPIO_GP_6_23, +	GPIO_GP_6_24, GPIO_GP_6_25, GPIO_GP_6_26, GPIO_GP_6_27, +	GPIO_GP_6_28, GPIO_GP_6_29, GPIO_GP_6_30, GPIO_GP_6_31, + +	GPIO_GP_7_0, GPIO_GP_7_1, GPIO_GP_7_2, GPIO_GP_7_3, +	GPIO_GP_7_4, GPIO_GP_7_5, GPIO_GP_7_6, GPIO_GP_7_7, +	GPIO_GP_7_8, GPIO_GP_7_9, GPIO_GP_7_10, GPIO_GP_7_11, +	GPIO_GP_7_12, GPIO_GP_7_13, GPIO_GP_7_14, GPIO_GP_7_15, +	GPIO_GP_7_16, GPIO_GP_7_17, GPIO_GP_7_18, GPIO_GP_7_19, +	GPIO_GP_7_20, GPIO_GP_7_21, GPIO_GP_7_22, GPIO_GP_7_23, +	GPIO_GP_7_24, GPIO_GP_7_25, + +	GPIO_FN_EX_CS0_N, GPIO_FN_RD_N, GPIO_FN_AUDIO_CLKA, +	GPIO_FN_VI0_CLK, GPIO_FN_VI0_DATA0_VI0_B0, +	GPIO_FN_VI0_DATA0_VI0_B1, GPIO_FN_VI0_DATA0_VI0_B2, +	GPIO_FN_VI0_DATA0_VI0_B4, GPIO_FN_VI0_DATA0_VI0_B5, +	GPIO_FN_VI0_DATA0_VI0_B6, GPIO_FN_VI0_DATA0_VI0_B7, +	GPIO_FN_USB0_PWEN, GPIO_FN_USB0_OVC, GPIO_FN_USB1_PWEN, + +	/* IPSR0 */ +	GPIO_FN_D0, GPIO_FN_D1, GPIO_FN_D2, GPIO_FN_D3, GPIO_FN_D4, GPIO_FN_D5, +	GPIO_FN_D6, GPIO_FN_D7, GPIO_FN_D8, GPIO_FN_D9, GPIO_FN_D10, +	GPIO_FN_D11, GPIO_FN_D12, GPIO_FN_D13, GPIO_FN_D14, GPIO_FN_D15, +	GPIO_FN_A0, GPIO_FN_ATAWR0_N_C, GPIO_FN_MSIOF0_SCK_B, +	GPIO_FN_SCL0_C, GPIO_FN_PWM2_B, +	GPIO_FN_A1, GPIO_FN_MSIOF0_SYNC_B, GPIO_FN_A2, GPIO_FN_MSIOF0_SS1_B, +	GPIO_FN_A3, GPIO_FN_MSIOF0_SS2_B, GPIO_FN_A4, GPIO_FN_MSIOF0_TXD_B, +	GPIO_FN_A5, GPIO_FN_MSIOF0_RXD_B, GPIO_FN_A6, GPIO_FN_MSIOF1_SCK, + +	/* IPSR1 */ +	GPIO_FN_A7, GPIO_FN_MSIOF1_SYNC, GPIO_FN_A8, +	GPIO_FN_MSIOF1_SS1, GPIO_FN_SCL0, +	GPIO_FN_A9, GPIO_FN_MSIOF1_SS2, GPIO_FN_SDA0, +	GPIO_FN_A10, GPIO_FN_MSIOF1_TXD, GPIO_FN_MSIOF1_TXD_D, +	GPIO_FN_A11, GPIO_FN_MSIOF1_RXD, GPIO_FN_SCL3_D, GPIO_FN_MSIOF1_RXD_D, +	GPIO_FN_A12, GPIO_FN_FMCLK, GPIO_FN_SDA3_D, GPIO_FN_MSIOF1_SCK_D, +	GPIO_FN_A13, GPIO_FN_ATAG0_N_C, GPIO_FN_BPFCLK, GPIO_FN_MSIOF1_SS1_D, +	GPIO_FN_A14, GPIO_FN_ATADIR0_N_C, GPIO_FN_FMIN, +	GPIO_FN_FMIN_C, GPIO_FN_MSIOF1_SYNC_D, +	GPIO_FN_A15, GPIO_FN_BPFCLK_C, +	GPIO_FN_A16, GPIO_FN_DREQ2_B, GPIO_FN_FMCLK_C, GPIO_FN_SCIFA1_SCK_B, +	GPIO_FN_A17, GPIO_FN_DACK2_B, GPIO_FN_SDA0_C, +	GPIO_FN_A18, GPIO_FN_DREQ1, GPIO_FN_SCIFA1_RXD_C, GPIO_FN_SCIFB1_RXD_C, + +	/* IPSR2 */ +	GPIO_FN_A19, GPIO_FN_DACK1, GPIO_FN_SCIFA1_TXD_C, +	GPIO_FN_SCIFB1_TXD_C, GPIO_FN_SCIFB1_SCK_B, +	GPIO_FN_A20, GPIO_FN_SPCLK, +	GPIO_FN_A21, GPIO_FN_ATAWR0_N_B, GPIO_FN_MOSI_IO0, +	GPIO_FN_A22, GPIO_FN_MISO_IO1, GPIO_FN_FMCLK_B, +	GPIO_FN_TX0, GPIO_FN_SCIFA0_TXD, +	GPIO_FN_A23, GPIO_FN_IO2, GPIO_FN_BPFCLK_B, +	GPIO_FN_RX0, GPIO_FN_SCIFA0_RXD, +	GPIO_FN_A24, GPIO_FN_DREQ2, GPIO_FN_IO3, +	GPIO_FN_TX1, GPIO_FN_SCIFA1_TXD, +	GPIO_FN_A25, GPIO_FN_DACK2, GPIO_FN_SSL, GPIO_FN_DREQ1_C, +	GPIO_FN_RX1, GPIO_FN_SCIFA1_RXD, +	GPIO_FN_CS0_N, GPIO_FN_ATAG0_N_B, GPIO_FN_SCL1, +	GPIO_FN_CS1_N_A26, GPIO_FN_ATADIR0_N_B, GPIO_FN_SDA1, +	GPIO_FN_EX_CS1_N, GPIO_FN_MSIOF2_SCK, +	GPIO_FN_EX_CS2_N, GPIO_FN_ATAWR0_N, GPIO_FN_MSIOF2_SYNC, +	GPIO_FN_EX_CS3_N, GPIO_FN_ATADIR0_N, GPIO_FN_MSIOF2_TXD, +	GPIO_FN_ATAG0_N, GPIO_FN_EX_WAIT1, + +	/* IPSR3 */ +	GPIO_FN_EX_CS4_N, GPIO_FN_ATARD0_N, +	GPIO_FN_MSIOF2_RXD, GPIO_FN_EX_WAIT2, +	GPIO_FN_EX_CS5_N, GPIO_FN_ATACS00_N, GPIO_FN_MSIOF2_SS1, +	GPIO_FN_HRX1_B, GPIO_FN_SCIFB1_RXD_B, +	GPIO_FN_PWM1, GPIO_FN_TPU_TO1, +	GPIO_FN_BS_N, GPIO_FN_ATACS10_N, GPIO_FN_MSIOF2_SS2, +	GPIO_FN_HTX1_B, GPIO_FN_SCIFB1_TXD_B, +	GPIO_FN_PWM2, GPIO_FN_TPU_TO2, +	GPIO_FN_RD_WR_N, GPIO_FN_HRX2_B, GPIO_FN_FMIN_B, +	GPIO_FN_SCIFB0_RXD_B, GPIO_FN_DREQ1_D, +	GPIO_FN_WE0_N, GPIO_FN_HCTS2_N_B, GPIO_FN_SCIFB0_TXD_B, +	GPIO_FN_WE1_N, GPIO_FN_ATARD0_N_B, +	GPIO_FN_HTX2_B, GPIO_FN_SCIFB0_RTS_N_B, +	GPIO_FN_EX_WAIT0, GPIO_FN_HRTS2_N_B, GPIO_FN_SCIFB0_CTS_N_B, +	GPIO_FN_DREQ0, GPIO_FN_PWM3, GPIO_FN_TPU_TO3, +	GPIO_FN_DACK0, GPIO_FN_DRACK0, GPIO_FN_REMOCON, +	GPIO_FN_SPEEDIN, GPIO_FN_HSCK0_C, GPIO_FN_HSCK2_C, +	GPIO_FN_SCIFB0_SCK_B, GPIO_FN_SCIFB2_SCK_B, +	GPIO_FN_DREQ2_C, GPIO_FN_HTX2_D, +	GPIO_FN_SSI_SCK0129, GPIO_FN_HRX0_C, GPIO_FN_HRX2_C, +	GPIO_FN_SCIFB0_RXD_C, GPIO_FN_SCIFB2_RXD_C, +	GPIO_FN_SSI_WS0129, GPIO_FN_HTX0_C, GPIO_FN_HTX2_C, +	GPIO_FN_SCIFB0_TXD_C, GPIO_FN_SCIFB2_TXD_C, + +	/* IPSR4 */ +	GPIO_FN_SSI_SDATA0, GPIO_FN_SCL0_B, +	GPIO_FN_SCL7_B, GPIO_FN_MSIOF2_SCK_C, +	GPIO_FN_SSI_SCK1, GPIO_FN_SDA0_B, GPIO_FN_SDA7_B, +	GPIO_FN_MSIOF2_SYNC_C, GPIO_FN_GLO_I0_D, +	GPIO_FN_SSI_WS1, GPIO_FN_SCL1_B, GPIO_FN_SCL8_B, +	GPIO_FN_MSIOF2_TXD_C, GPIO_FN_GLO_I1_D, +	GPIO_FN_SSI_SDATA1, GPIO_FN_SDA1_B, +	GPIO_FN_SDA8_B, GPIO_FN_MSIOF2_RXD_C, +	GPIO_FN_SSI_SCK2, GPIO_FN_SCL2, GPIO_FN_GPS_CLK_B, +	GPIO_FN_GLO_Q0_D, GPIO_FN_HSCK1_E, +	GPIO_FN_SSI_WS2, GPIO_FN_SDA2, GPIO_FN_GPS_SIGN_B, +	GPIO_FN_RX2_E, GPIO_FN_GLO_Q1_D, GPIO_FN_HCTS1_N_E, +	GPIO_FN_SSI_SDATA2, GPIO_FN_GPS_MAG_B, +	GPIO_FN_TX2_E, GPIO_FN_HRTS1_N_E, +	GPIO_FN_SSI_SCK34, GPIO_FN_SSI_WS34, GPIO_FN_SSI_SDATA3, +	GPIO_FN_SSI_SCK4, GPIO_FN_GLO_SS_D, +	GPIO_FN_SSI_WS4, GPIO_FN_GLO_RFON_D, +	GPIO_FN_SSI_SDATA4, GPIO_FN_MSIOF2_SCK_D, +	GPIO_FN_SSI_SCK5, GPIO_FN_MSIOF1_SCK_C, +	GPIO_FN_TS_SDATA0, GPIO_FN_GLO_I0, +	GPIO_FN_MSIOF2_SYNC_D, GPIO_FN_VI1_R2_B, + +	/* IPSR5 */ +	GPIO_FN_SSI_WS5, GPIO_FN_MSIOF1_SYNC_C, GPIO_FN_TS_SCK0, +	GPIO_FN_GLO_I1, GPIO_FN_MSIOF2_TXD_D, GPIO_FN_VI1_R3_B, +	GPIO_FN_SSI_SDATA5, GPIO_FN_MSIOF1_TXD_C, GPIO_FN_TS_SDEN0, +	GPIO_FN_GLO_Q0, GPIO_FN_MSIOF2_SS1_D, GPIO_FN_VI1_R4_B, +	GPIO_FN_SSI_SCK6, GPIO_FN_MSIOF1_RXD_C, GPIO_FN_TS_SPSYNC0, +	GPIO_FN_GLO_Q1, GPIO_FN_MSIOF2_RXD_D, GPIO_FN_VI1_R5_B, +	GPIO_FN_SSI_WS6, GPIO_FN_GLO_SCLK, +	GPIO_FN_MSIOF2_SS2_D, GPIO_FN_VI1_R6_B, +	GPIO_FN_SSI_SDATA6, GPIO_FN_STP_IVCXO27_0_B, +	GPIO_FN_GLO_SDATA, GPIO_FN_VI1_R7_B, +	GPIO_FN_SSI_SCK78, GPIO_FN_STP_ISCLK_0_B, GPIO_FN_GLO_SS, +	GPIO_FN_SSI_WS78, GPIO_FN_TX0_D, GPIO_FN_STP_ISD_0_B, GPIO_FN_GLO_RFON, +	GPIO_FN_SSI_SDATA7, GPIO_FN_RX0_D, GPIO_FN_STP_ISEN_0_B, +	GPIO_FN_SSI_SDATA8, GPIO_FN_TX1_D, GPIO_FN_STP_ISSYNC_0_B, +	GPIO_FN_SSI_SCK9, GPIO_FN_RX1_D, GPIO_FN_GLO_SCLK_D, +	GPIO_FN_SSI_WS9, GPIO_FN_TX3_D, GPIO_FN_CAN0_TX_D, GPIO_FN_GLO_SDATA_D, +	GPIO_FN_SSI_SDATA9, GPIO_FN_RX3_D, GPIO_FN_CAN0_RX_D, + +	/* IPSR6 */ +	GPIO_FN_AUDIO_CLKB, GPIO_FN_STP_OPWM_0_B, GPIO_FN_MSIOF1_SCK_B, +	GPIO_FN_SCIF_CLK, GPIO_FN_BPFCLK_E, +	GPIO_FN_AUDIO_CLKC, GPIO_FN_SCIFB0_SCK_C, GPIO_FN_MSIOF1_SYNC_B, +	GPIO_FN_RX2, GPIO_FN_SCIFA2_RXD, GPIO_FN_FMIN_E, +	GPIO_FN_AUDIO_CLKOUT, GPIO_FN_MSIOF1_SS1_B, +	GPIO_FN_TX2, GPIO_FN_SCIFA2_TXD, +	GPIO_FN_IRQ0, GPIO_FN_SCIFB1_RXD_D, GPIO_FN_INTC_IRQ0_N, +	GPIO_FN_IRQ1, GPIO_FN_SCIFB1_SCK_C, GPIO_FN_INTC_IRQ1_N, +	GPIO_FN_IRQ2, GPIO_FN_SCIFB1_TXD_D, GPIO_FN_INTC_IRQ2_N, +	GPIO_FN_IRQ3, GPIO_FN_SCL4_C, +	GPIO_FN_MSIOF2_TXD_E, GPIO_FN_INTC_IRQ3_N, +	GPIO_FN_IRQ4, GPIO_FN_HRX1_C, GPIO_FN_SDA4_C, +	GPIO_FN_MSIOF2_RXD_E, GPIO_FN_INTC_IRQ4_N, +	GPIO_FN_IRQ5, GPIO_FN_HTX1_C, GPIO_FN_SCL1_E, GPIO_FN_MSIOF2_SCK_E, +	GPIO_FN_IRQ6, GPIO_FN_HSCK1_C, GPIO_FN_MSIOF1_SS2_B, +	GPIO_FN_SDA1_E, GPIO_FN_MSIOF2_SYNC_E, +	GPIO_FN_IRQ7, GPIO_FN_HCTS1_N_C, GPIO_FN_MSIOF1_TXD_B, +	GPIO_FN_GPS_CLK_C, GPIO_FN_GPS_CLK_D, +	GPIO_FN_IRQ8, GPIO_FN_HRTS1_N_C, GPIO_FN_MSIOF1_RXD_B, +	GPIO_FN_GPS_SIGN_C, GPIO_FN_GPS_SIGN_D, + +	/* IPSR7 */ +	GPIO_FN_IRQ9, GPIO_FN_DU1_DOTCLKIN_B, GPIO_FN_CAN_CLK_D, +	GPIO_FN_GPS_MAG_C, GPIO_FN_SCIF_CLK_B, GPIO_FN_GPS_MAG_D, +	GPIO_FN_DU1_DR0, GPIO_FN_LCDOUT0, GPIO_FN_VI1_DATA0_B, GPIO_FN_TX0_B, +	GPIO_FN_SCIFA0_TXD_B, GPIO_FN_MSIOF2_SCK_B, +	GPIO_FN_DU1_DR1, GPIO_FN_LCDOUT1, GPIO_FN_VI1_DATA1_B, GPIO_FN_RX0_B, +	GPIO_FN_SCIFA0_RXD_B, GPIO_FN_MSIOF2_SYNC_B, +	GPIO_FN_DU1_DR2, GPIO_FN_LCDOUT2, GPIO_FN_SSI_SCK0129_B, +	GPIO_FN_DU1_DR3, GPIO_FN_LCDOUT3, GPIO_FN_SSI_WS0129_B, +	GPIO_FN_DU1_DR4, GPIO_FN_LCDOUT4, GPIO_FN_SSI_SDATA0_B, +	GPIO_FN_DU1_DR5, GPIO_FN_LCDOUT5, GPIO_FN_SSI_SCK1_B, +	GPIO_FN_DU1_DR6, GPIO_FN_LCDOUT6, GPIO_FN_SSI_WS1_B, +	GPIO_FN_DU1_DR7, GPIO_FN_LCDOUT7, GPIO_FN_SSI_SDATA1_B, +	GPIO_FN_DU1_DG0, GPIO_FN_LCDOUT8, GPIO_FN_VI1_DATA2_B, GPIO_FN_TX1_B, +	GPIO_FN_SCIFA1_TXD_B, GPIO_FN_MSIOF2_SS1_B, +	GPIO_FN_DU1_DG1, GPIO_FN_LCDOUT9, GPIO_FN_VI1_DATA3_B, GPIO_FN_RX1_B, +	GPIO_FN_SCIFA1_RXD_B, GPIO_FN_MSIOF2_SS2_B, +	GPIO_FN_DU1_DG2, GPIO_FN_LCDOUT10, GPIO_FN_VI1_DATA4_B, +	GPIO_FN_SCIF1_SCK_B, GPIO_FN_SCIFA1_SCK, GPIO_FN_SSI_SCK78_B, + +	/* IPSR8 */ +	GPIO_FN_DU1_DG3, GPIO_FN_LCDOUT11, +	GPIO_FN_VI1_DATA5_B, GPIO_FN_SSI_WS78_B, +	GPIO_FN_DU1_DG4, GPIO_FN_LCDOUT12, GPIO_FN_VI1_DATA6_B, +	GPIO_FN_HRX0_B, GPIO_FN_SCIFB2_RXD_B, GPIO_FN_SSI_SDATA7_B, +	GPIO_FN_DU1_DG5, GPIO_FN_LCDOUT13, GPIO_FN_VI1_DATA7_B, +	GPIO_FN_HCTS0_N_B, GPIO_FN_SCIFB2_TXD_B, GPIO_FN_SSI_SDATA8_B, +	GPIO_FN_DU1_DG6, GPIO_FN_LCDOUT14, GPIO_FN_HRTS0_N_B, +	GPIO_FN_SCIFB2_CTS_N_B, GPIO_FN_SSI_SCK9_B, +	GPIO_FN_DU1_DG7, GPIO_FN_LCDOUT15, GPIO_FN_HTX0_B, +	GPIO_FN_SCIFB2_RTS_N_B, GPIO_FN_SSI_WS9_B, +	GPIO_FN_DU1_DB0, GPIO_FN_LCDOUT16, GPIO_FN_VI1_CLK_B, GPIO_FN_TX2_B, +	GPIO_FN_SCIFA2_TXD_B, GPIO_FN_MSIOF2_TXD_B, +	GPIO_FN_DU1_DB1, GPIO_FN_LCDOUT17, GPIO_FN_VI1_HSYNC_N_B, +	GPIO_FN_RX2_B, GPIO_FN_SCIFA2_RXD_B, GPIO_FN_MSIOF2_RXD_B, +	GPIO_FN_DU1_DB2, GPIO_FN_LCDOUT18, GPIO_FN_VI1_VSYNC_N_B, +	GPIO_FN_SCIF2_SCK_B, GPIO_FN_SCIFA2_SCK, GPIO_FN_SSI_SDATA9_B, +	GPIO_FN_DU1_DB3, GPIO_FN_LCDOUT19, GPIO_FN_VI1_CLKENB_B, +	GPIO_FN_DU1_DB4, GPIO_FN_LCDOUT20, +	GPIO_FN_VI1_FIELD_B, GPIO_FN_CAN1_RX, +	GPIO_FN_DU1_DB5, GPIO_FN_LCDOUT21, GPIO_FN_TX3, +	GPIO_FN_SCIFA3_TXD, GPIO_FN_CAN1_TX, + +	/* IPSR9 */ +	GPIO_FN_DU1_DB6, GPIO_FN_LCDOUT22, GPIO_FN_SCL3_C, +	GPIO_FN_RX3, GPIO_FN_SCIFA3_RXD, +	GPIO_FN_DU1_DB7, GPIO_FN_LCDOUT23, GPIO_FN_SDA3_C, +	GPIO_FN_SCIF3_SCK, GPIO_FN_SCIFA3_SCK, +	GPIO_FN_DU1_DOTCLKIN, GPIO_FN_QSTVA_QVS, +	GPIO_FN_DU1_DOTCLKOUT0, GPIO_FN_QCLK, +	GPIO_FN_DU1_DOTCLKOUT1, GPIO_FN_QSTVB_QVE, GPIO_FN_CAN0_TX, +	GPIO_FN_TX3_B, GPIO_FN_SCL2_B, GPIO_FN_PWM4, +	GPIO_FN_DU1_EXHSYNC_DU1_HSYNC, GPIO_FN_QSTH_QHS, +	GPIO_FN_DU1_EXVSYNC_DU1_VSYNC, GPIO_FN_QSTB_QHE, +	GPIO_FN_DU1_EXODDF_DU1_ODDF_DISP_CDE, GPIO_FN_QCPV_QDE, +	GPIO_FN_CAN0_RX, GPIO_FN_RX3_B, GPIO_FN_SDA2_B, +	GPIO_FN_DU1_DISP, GPIO_FN_QPOLA, +	GPIO_FN_DU1_CDE, GPIO_FN_QPOLB, GPIO_FN_PWM4_B, +	GPIO_FN_VI0_CLKENB, GPIO_FN_TX4, +	GPIO_FN_SCIFA4_TXD, GPIO_FN_TS_SDATA0_D, +	GPIO_FN_VI0_FIELD, GPIO_FN_RX4, GPIO_FN_SCIFA4_RXD, GPIO_FN_TS_SCK0_D, +	GPIO_FN_VI0_HSYNC_N, GPIO_FN_TX5, +	GPIO_FN_SCIFA5_TXD, GPIO_FN_TS_SDEN0_D, +	GPIO_FN_VI0_VSYNC_N, GPIO_FN_RX5, +	GPIO_FN_SCIFA5_RXD, GPIO_FN_TS_SPSYNC0_D, +	GPIO_FN_VI0_DATA3_VI0_B3, GPIO_FN_SCIF3_SCK_B, GPIO_FN_SCIFA3_SCK_B, +	GPIO_FN_VI0_G0, GPIO_FN_SCL8, GPIO_FN_STP_IVCXO27_0_C, GPIO_FN_SCL4, +	GPIO_FN_HCTS2_N, GPIO_FN_SCIFB2_CTS_N, GPIO_FN_ATAWR1_N, + +	/* IPSR10 */ +	GPIO_FN_VI0_G1, GPIO_FN_SDA8, GPIO_FN_STP_ISCLK_0_C, GPIO_FN_SDA4, +	GPIO_FN_HRTS2_N, GPIO_FN_SCIFB2_RTS_N, GPIO_FN_ATADIR1_N, +	GPIO_FN_VI0_G2, GPIO_FN_VI2_HSYNC_N, GPIO_FN_STP_ISD_0_C, +	GPIO_FN_SCL3_B, GPIO_FN_HSCK2, GPIO_FN_SCIFB2_SCK, GPIO_FN_ATARD1_N, +	GPIO_FN_VI0_G3, GPIO_FN_VI2_VSYNC_N, GPIO_FN_STP_ISEN_0_C, +	GPIO_FN_SDA3_B, GPIO_FN_HRX2, GPIO_FN_SCIFB2_RXD, GPIO_FN_ATACS01_N, +	GPIO_FN_VI0_G4, GPIO_FN_VI2_CLKENB, GPIO_FN_STP_ISSYNC_0_C, +	GPIO_FN_HTX2, GPIO_FN_SCIFB2_TXD, GPIO_FN_SCIFB0_SCK_D, +	GPIO_FN_VI0_G5, GPIO_FN_VI2_FIELD, GPIO_FN_STP_OPWM_0_C, +	GPIO_FN_FMCLK_D, GPIO_FN_CAN0_TX_E, +	GPIO_FN_HTX1_D, GPIO_FN_SCIFB0_TXD_D, +	GPIO_FN_VI0_G6, GPIO_FN_VI2_CLK, GPIO_FN_BPFCLK_D, +	GPIO_FN_VI0_G7, GPIO_FN_VI2_DATA0, GPIO_FN_FMIN_D, +	GPIO_FN_VI0_R0, GPIO_FN_VI2_DATA1, GPIO_FN_GLO_I0_B, +	GPIO_FN_TS_SDATA0_C, GPIO_FN_ATACS11_N, +	GPIO_FN_VI0_R1, GPIO_FN_VI2_DATA2, GPIO_FN_GLO_I1_B, +	GPIO_FN_TS_SCK0_C, GPIO_FN_ATAG1_N, +	GPIO_FN_VI0_R2, GPIO_FN_VI2_DATA3, +	GPIO_FN_GLO_Q0_B, GPIO_FN_TS_SDEN0_C, +	GPIO_FN_VI0_R3, GPIO_FN_VI2_DATA4, +	GPIO_FN_GLO_Q1_B, GPIO_FN_TS_SPSYNC0_C, +	GPIO_FN_VI0_R4, GPIO_FN_VI2_DATA5, GPIO_FN_GLO_SCLK_B, +	GPIO_FN_TX0_C, GPIO_FN_SCL1_D, + +	/* IPSR11 */ +	GPIO_FN_VI0_R5, GPIO_FN_VI2_DATA6, GPIO_FN_GLO_SDATA_B, +	GPIO_FN_RX0_C, GPIO_FN_SDA1_D, +	GPIO_FN_VI0_R6, GPIO_FN_VI2_DATA7, GPIO_FN_GLO_SS_B, +	GPIO_FN_TX1_C, GPIO_FN_SCL4_B, +	GPIO_FN_VI0_R7, GPIO_FN_GLO_RFON_B, GPIO_FN_RX1_C, GPIO_FN_CAN0_RX_E, +	GPIO_FN_SDA4_B, GPIO_FN_HRX1_D, GPIO_FN_SCIFB0_RXD_D, +	GPIO_FN_VI1_HSYNC_N, GPIO_FN_AVB_RXD0, GPIO_FN_TS_SDATA0_B, +	GPIO_FN_TX4_B, GPIO_FN_SCIFA4_TXD_B, +	GPIO_FN_VI1_VSYNC_N, GPIO_FN_AVB_RXD1, GPIO_FN_TS_SCK0_B, +	GPIO_FN_RX4_B, GPIO_FN_SCIFA4_RXD_B, +	GPIO_FN_VI1_CLKENB, GPIO_FN_AVB_RXD2, GPIO_FN_TS_SDEN0_B, +	GPIO_FN_VI1_FIELD, GPIO_FN_AVB_RXD3, GPIO_FN_TS_SPSYNC0_B, +	GPIO_FN_VI1_CLK, GPIO_FN_AVB_RXD4, GPIO_FN_VI1_DATA0, GPIO_FN_AVB_RXD5, +	GPIO_FN_VI1_DATA1, GPIO_FN_AVB_RXD6, +	GPIO_FN_VI1_DATA2, GPIO_FN_AVB_RXD7, +	GPIO_FN_VI1_DATA3, GPIO_FN_AVB_RX_ER, +	GPIO_FN_VI1_DATA4, GPIO_FN_AVB_MDIO, +	GPIO_FN_VI1_DATA5, GPIO_FN_AVB_RX_DV, +	GPIO_FN_VI1_DATA6, GPIO_FN_AVB_MAGIC, +	GPIO_FN_VI1_DATA7, GPIO_FN_AVB_MDC, +	GPIO_FN_ETH_MDIO, GPIO_FN_AVB_RX_CLK, GPIO_FN_SCL2_C, +	GPIO_FN_ETH_CRS_DV, GPIO_FN_AVB_LINK, GPIO_FN_SDA2_C, + +	/* IPSR12 */ +	GPIO_FN_ETH_RX_ER, GPIO_FN_AVB_CRS, GPIO_FN_SCL3, GPIO_FN_SCL7, +	GPIO_FN_ETH_RXD0, GPIO_FN_AVB_PHY_INT, GPIO_FN_SDA3, GPIO_FN_SDA7, +	GPIO_FN_ETH_RXD1, GPIO_FN_AVB_GTXREFCLK, GPIO_FN_CAN0_TX_C, +	GPIO_FN_SCL2_D, GPIO_FN_MSIOF1_RXD_E, +	GPIO_FN_ETH_LINK, GPIO_FN_AVB_TXD0, GPIO_FN_CAN0_RX_C, +	GPIO_FN_SDA2_D, GPIO_FN_MSIOF1_SCK_E, +	GPIO_FN_ETH_REFCLK, GPIO_FN_AVB_TXD1, GPIO_FN_SCIFA3_RXD_B, +	GPIO_FN_CAN1_RX_C, GPIO_FN_MSIOF1_SYNC_E, +	GPIO_FN_ETH_TXD1, GPIO_FN_AVB_TXD2, GPIO_FN_SCIFA3_TXD_B, +	GPIO_FN_CAN1_TX_C, GPIO_FN_MSIOF1_TXD_E, +	GPIO_FN_ETH_TX_EN, GPIO_FN_AVB_TXD3, +	GPIO_FN_TCLK1_B, GPIO_FN_CAN_CLK_B, +	GPIO_FN_ETH_MAGIC, GPIO_FN_AVB_TXD4, GPIO_FN_IETX_C, +	GPIO_FN_ETH_TXD0, GPIO_FN_AVB_TXD5, GPIO_FN_IECLK_C, +	GPIO_FN_ETH_MDC, GPIO_FN_AVB_TXD6, GPIO_FN_IERX_C, +	GPIO_FN_STP_IVCXO27_0, GPIO_FN_AVB_TXD7, GPIO_FN_SCIFB2_TXD_D, +	GPIO_FN_ADIDATA_B, GPIO_FN_MSIOF0_SYNC_C, +	GPIO_FN_STP_ISCLK_0, GPIO_FN_AVB_TX_EN, GPIO_FN_SCIFB2_RXD_D, +	GPIO_FN_ADICS_SAMP_B, GPIO_FN_MSIOF0_SCK_C, + +	/* IPSR13 */ +	GPIO_FN_STP_ISD_0, GPIO_FN_AVB_TX_ER, GPIO_FN_SCIFB2_SCK_C, +	GPIO_FN_ADICLK_B, GPIO_FN_MSIOF0_SS1_C, +	GPIO_FN_STP_ISEN_0, GPIO_FN_AVB_TX_CLK, +	GPIO_FN_ADICHS0_B, GPIO_FN_MSIOF0_SS2_C, +	GPIO_FN_STP_ISSYNC_0, GPIO_FN_AVB_COL, +	GPIO_FN_ADICHS1_B, GPIO_FN_MSIOF0_RXD_C, +	GPIO_FN_STP_OPWM_0, GPIO_FN_AVB_GTX_CLK, GPIO_FN_PWM0_B, +	GPIO_FN_ADICHS2_B, GPIO_FN_MSIOF0_TXD_C, +	GPIO_FN_SD0_CLK, GPIO_FN_SPCLK_B, GPIO_FN_SD0_CMD, GPIO_FN_MOSI_IO0_B, +	GPIO_FN_SD0_DATA0, GPIO_FN_MISO_IO1_B, +	GPIO_FN_SD0_DATA1, GPIO_FN_IO2_B, +	GPIO_FN_SD0_DATA2, GPIO_FN_IO3_B, GPIO_FN_SD0_DATA3, GPIO_FN_SSL_B, +	GPIO_FN_SD0_CD, GPIO_FN_MMC_D6_B, +	GPIO_FN_SIM0_RST_B, GPIO_FN_CAN0_RX_F, +	GPIO_FN_SCIFA5_TXD_B, GPIO_FN_TX3_C, +	GPIO_FN_SD0_WP, GPIO_FN_MMC_D7_B, GPIO_FN_SIM0_D_B, GPIO_FN_CAN0_TX_F, +	GPIO_FN_SCIFA5_RXD_B, GPIO_FN_RX3_C, +	GPIO_FN_SD1_CMD, GPIO_FN_REMOCON_B, +	GPIO_FN_SD1_DATA0, GPIO_FN_SPEEDIN_B, +	GPIO_FN_SD1_DATA1, GPIO_FN_IETX_B, GPIO_FN_SD1_DATA2, GPIO_FN_IECLK_B, +	GPIO_FN_SD1_DATA3, GPIO_FN_IERX_B, +	GPIO_FN_SD1_CD, GPIO_FN_PWM0, GPIO_FN_TPU_TO0, GPIO_FN_SCL1_C, + +	/* IPSR14 */ +	GPIO_FN_SD1_WP, GPIO_FN_PWM1_B, GPIO_FN_SDA1_C, +	GPIO_FN_SD2_CLK, GPIO_FN_MMC_CLK, GPIO_FN_SD2_CMD, GPIO_FN_MMC_CMD, +	GPIO_FN_SD2_DATA0, GPIO_FN_MMC_D0, GPIO_FN_SD2_DATA1, GPIO_FN_MMC_D1, +	GPIO_FN_SD2_DATA2, GPIO_FN_MMC_D2, GPIO_FN_SD2_DATA3, GPIO_FN_MMC_D3, +	GPIO_FN_SD2_CD, GPIO_FN_MMC_D4, GPIO_FN_SCL8_C, +	GPIO_FN_TX5_B, GPIO_FN_SCIFA5_TXD_C, +	GPIO_FN_SD2_WP, GPIO_FN_MMC_D5, GPIO_FN_SDA8_C, +	GPIO_FN_RX5_B, GPIO_FN_SCIFA5_RXD_C, +	GPIO_FN_MSIOF0_SCK, GPIO_FN_RX2_C, GPIO_FN_ADIDATA, +	GPIO_FN_VI1_CLK_C, GPIO_FN_VI1_G0_B, +	GPIO_FN_MSIOF0_SYNC, GPIO_FN_TX2_C, GPIO_FN_ADICS_SAMP, +	GPIO_FN_VI1_CLKENB_C, GPIO_FN_VI1_G1_B, +	GPIO_FN_MSIOF0_TXD, GPIO_FN_ADICLK, +	GPIO_FN_VI1_FIELD_C, GPIO_FN_VI1_G2_B, +	GPIO_FN_MSIOF0_RXD, GPIO_FN_ADICHS0, +	GPIO_FN_VI1_DATA0_C, GPIO_FN_VI1_G3_B, +	GPIO_FN_MSIOF0_SS1, GPIO_FN_MMC_D6, GPIO_FN_ADICHS1, GPIO_FN_TX0_E, +	GPIO_FN_VI1_HSYNC_N_C, GPIO_FN_SCL7_C, GPIO_FN_VI1_G4_B, +	GPIO_FN_MSIOF0_SS2, GPIO_FN_MMC_D7, GPIO_FN_ADICHS2, GPIO_FN_RX0_E, +	GPIO_FN_VI1_VSYNC_N_C, GPIO_FN_SDA7_C, GPIO_FN_VI1_G5_B, + +	/* IPSR15 */ +	GPIO_FN_SIM0_RST, GPIO_FN_IETX, GPIO_FN_CAN1_TX_D, +	GPIO_FN_SIM0_CLK, GPIO_FN_IECLK, GPIO_FN_CAN_CLK_C, +	GPIO_FN_SIM0_D, GPIO_FN_IERX, GPIO_FN_CAN1_RX_D, +	GPIO_FN_GPS_CLK, GPIO_FN_DU1_DOTCLKIN_C, GPIO_FN_AUDIO_CLKB_B, +	GPIO_FN_PWM5_B, GPIO_FN_SCIFA3_TXD_C, +	GPIO_FN_GPS_SIGN, GPIO_FN_TX4_C, GPIO_FN_SCIFA4_TXD_C, GPIO_FN_PWM5, +	GPIO_FN_VI1_G6_B, GPIO_FN_SCIFA3_RXD_C, +	GPIO_FN_GPS_MAG, GPIO_FN_RX4_C, GPIO_FN_SCIFA4_RXD_C, GPIO_FN_PWM6, +	GPIO_FN_VI1_G7_B, GPIO_FN_SCIFA3_SCK_C, +	GPIO_FN_HCTS0_N, GPIO_FN_SCIFB0_CTS_N, GPIO_FN_GLO_I0_C, +	GPIO_FN_TCLK1, GPIO_FN_VI1_DATA1_C, +	GPIO_FN_HRTS0_N, GPIO_FN_SCIFB0_RTS_N, +	GPIO_FN_GLO_I1_C, GPIO_FN_VI1_DATA2_C, +	GPIO_FN_HSCK0, GPIO_FN_SCIFB0_SCK, GPIO_FN_GLO_Q0_C, GPIO_FN_CAN_CLK, +	GPIO_FN_TCLK2, GPIO_FN_VI1_DATA3_C, +	GPIO_FN_HRX0, GPIO_FN_SCIFB0_RXD, GPIO_FN_GLO_Q1_C, +	GPIO_FN_CAN0_RX_B, GPIO_FN_VI1_DATA4_C, +	GPIO_FN_HTX0, GPIO_FN_SCIFB0_TXD, GPIO_FN_GLO_SCLK_C, +	GPIO_FN_CAN0_TX_B, GPIO_FN_VI1_DATA5_C, + +	/* IPSR16 */ +	GPIO_FN_HRX1, GPIO_FN_SCIFB1_RXD, GPIO_FN_VI1_R0_B, +	GPIO_FN_GLO_SDATA_C, GPIO_FN_VI1_DATA6_C, +	GPIO_FN_HTX1, GPIO_FN_SCIFB1_TXD, GPIO_FN_VI1_R1_B, +	GPIO_FN_GLO_SS_C, GPIO_FN_VI1_DATA7_C, +	GPIO_FN_HSCK1, GPIO_FN_SCIFB1_SCK, GPIO_FN_MLB_CK, GPIO_FN_GLO_RFON_C, +	GPIO_FN_HCTS1_N, GPIO_FN_SCIFB1_CTS_N, +	GPIO_FN_MLB_SIG, GPIO_FN_CAN1_TX_B, +	GPIO_FN_HRTS1_N, GPIO_FN_SCIFB1_RTS_N, +	GPIO_FN_MLB_DAT, GPIO_FN_CAN1_RX_B, +}; + +#endif /* __ASM_R8A7791_H__ */ diff --git a/arch/arm/include/asm/arch-rmobile/r8a7791.h b/arch/arm/include/asm/arch-rmobile/r8a7791.h new file mode 100644 index 000000000..2afda0a62 --- /dev/null +++ b/arch/arm/include/asm/arch-rmobile/r8a7791.h @@ -0,0 +1,664 @@ +/* + * arch/arm/include/asm/arch-rmobile/r8a7791.h + * + * Copyright (C) 2013 Renesas Electronics Corporation + * + * SPDX-License-Identifier: GPL-2.0 + */ + +#ifndef __ASM_ARCH_R8A7791_H +#define __ASM_ARCH_R8A7791_H + +/* + * R8A7791 I/O Addresses + */ +#define	RWDT_BASE	0xE6020000 +#define	SWDT_BASE	0xE6030000 +#define	LBSC_BASE	0xFEC00200 +#define DBSC3_0_BASE	0xE6790000 +#define DBSC3_1_BASE	0xE67A0000 +#define TMU_BASE	0xE61E0000 +#define	GPIO5_BASE	0xE6055000 + +#define S3C_BASE	0xE6784000 +#define S3C_INT_BASE	0xE6784A00 +#define S3C_MEDIA_BASE	0xE6784B00 + +#define S3C_QOS_DCACHE_BASE	0xE6784BDC +#define S3C_QOS_CCI0_BASE	0xE6784C00 +#define S3C_QOS_CCI1_BASE	0xE6784C24 +#define S3C_QOS_MXI_BASE	0xE6784C48 +#define S3C_QOS_AXI_BASE	0xE6784C6C + +#define DBSC3_0_QOS_R0_BASE	0xE6791000 +#define DBSC3_0_QOS_R1_BASE	0xE6791100 +#define DBSC3_0_QOS_R2_BASE	0xE6791200 +#define DBSC3_0_QOS_R3_BASE	0xE6791300 +#define DBSC3_0_QOS_R4_BASE	0xE6791400 +#define DBSC3_0_QOS_R5_BASE	0xE6791500 +#define DBSC3_0_QOS_R6_BASE	0xE6791600 +#define DBSC3_0_QOS_R7_BASE	0xE6791700 +#define DBSC3_0_QOS_R8_BASE	0xE6791800 +#define DBSC3_0_QOS_R9_BASE	0xE6791900 +#define DBSC3_0_QOS_R10_BASE	0xE6791A00 +#define DBSC3_0_QOS_R11_BASE	0xE6791B00 +#define DBSC3_0_QOS_R12_BASE	0xE6791C00 +#define DBSC3_0_QOS_R13_BASE	0xE6791D00 +#define DBSC3_0_QOS_R14_BASE	0xE6791E00 +#define DBSC3_0_QOS_R15_BASE	0xE6791F00 +#define DBSC3_0_QOS_W0_BASE	0xE6792000 +#define DBSC3_0_QOS_W1_BASE	0xE6792100 +#define DBSC3_0_QOS_W2_BASE	0xE6792200 +#define DBSC3_0_QOS_W3_BASE	0xE6792300 +#define DBSC3_0_QOS_W4_BASE	0xE6792400 +#define DBSC3_0_QOS_W5_BASE	0xE6792500 +#define DBSC3_0_QOS_W6_BASE	0xE6792600 +#define DBSC3_0_QOS_W7_BASE	0xE6792700 +#define DBSC3_0_QOS_W8_BASE	0xE6792800 +#define DBSC3_0_QOS_W9_BASE	0xE6792900 +#define DBSC3_0_QOS_W10_BASE	0xE6792A00 +#define DBSC3_0_QOS_W11_BASE	0xE6792B00 +#define DBSC3_0_QOS_W12_BASE	0xE6792C00 +#define DBSC3_0_QOS_W13_BASE	0xE6792D00 +#define DBSC3_0_QOS_W14_BASE	0xE6792E00 +#define DBSC3_0_QOS_W15_BASE	0xE6792F00 + +#define DBSC3_1_QOS_R0_BASE	0xE67A1000 +#define DBSC3_1_QOS_R1_BASE	0xE67A1100 +#define DBSC3_1_QOS_R2_BASE	0xE67A1200 +#define DBSC3_1_QOS_R3_BASE	0xE67A1300 +#define DBSC3_1_QOS_R4_BASE	0xE67A1400 +#define DBSC3_1_QOS_R5_BASE	0xE67A1500 +#define DBSC3_1_QOS_R6_BASE	0xE67A1600 +#define DBSC3_1_QOS_R7_BASE	0xE67A1700 +#define DBSC3_1_QOS_R8_BASE	0xE67A1800 +#define DBSC3_1_QOS_R9_BASE	0xE67A1900 +#define DBSC3_1_QOS_R10_BASE	0xE67A1A00 +#define DBSC3_1_QOS_R11_BASE	0xE67A1B00 +#define DBSC3_1_QOS_R12_BASE	0xE67A1C00 +#define DBSC3_1_QOS_R13_BASE	0xE67A1D00 +#define DBSC3_1_QOS_R14_BASE	0xE67A1E00 +#define DBSC3_1_QOS_R15_BASE	0xE67A1F00 +#define DBSC3_1_QOS_W0_BASE	0xE67A2000 +#define DBSC3_1_QOS_W1_BASE	0xE67A2100 +#define DBSC3_1_QOS_W2_BASE	0xE67A2200 +#define DBSC3_1_QOS_W3_BASE	0xE67A2300 +#define DBSC3_1_QOS_W4_BASE	0xE67A2400 +#define DBSC3_1_QOS_W5_BASE	0xE67A2500 +#define DBSC3_1_QOS_W6_BASE	0xE67A2600 +#define DBSC3_1_QOS_W7_BASE	0xE67A2700 +#define DBSC3_1_QOS_W8_BASE	0xE67A2800 +#define DBSC3_1_QOS_W9_BASE	0xE67A2900 +#define DBSC3_1_QOS_W10_BASE	0xE67A2A00 +#define DBSC3_1_QOS_W11_BASE	0xE67A2B00 +#define DBSC3_1_QOS_W12_BASE	0xE67A2C00 +#define DBSC3_1_QOS_W13_BASE	0xE67A2D00 +#define DBSC3_1_QOS_W14_BASE	0xE67A2E00 +#define DBSC3_1_QOS_W15_BASE	0xE67A2F00 + +#define DBSC3_0_DBADJ2		0xE67900C8 + +#define CCI_400_MAXOT_1		0xF0091110 +#define CCI_400_MAXOT_2		0xF0092110 +#define CCI_400_QOSCNTL_1	0xF009110C +#define CCI_400_QOSCNTL_2	0xF009210C + +#define	MXI_BASE		0xFE960000 +#define	MXI_QOS_BASE		0xFE960300 + +#define SYS_AXI_SYX64TO128_BASE	0xFF800300 +#define SYS_AXI_AVB_BASE	0xFF800340 +#define SYS_AXI_G2D_BASE	0xFF800540 +#define SYS_AXI_IMP0_BASE	0xFF800580 +#define SYS_AXI_IMP1_BASE	0xFF8005C0 +#define SYS_AXI_IMUX0_BASE	0xFF800600 +#define SYS_AXI_IMUX1_BASE	0xFF800640 +#define SYS_AXI_IMUX2_BASE	0xFF800680 +#define SYS_AXI_LBS_BASE	0xFF8006C0 +#define SYS_AXI_MMUDS_BASE	0xFF800700 +#define SYS_AXI_MMUM_BASE	0xFF800740 +#define SYS_AXI_MMUR_BASE	0xFF800780 +#define SYS_AXI_MMUS0_BASE	0xFF8007C0 +#define SYS_AXI_MMUS1_BASE	0xFF800800 +#define SYS_AXI_MTSB0_BASE	0xFF800880 +#define SYS_AXI_MTSB1_BASE	0xFF8008C0 +#define SYS_AXI_PCI_BASE	0xFF800900 +#define SYS_AXI_RTX_BASE	0xFF800940 +#define SYS_AXI_SDS0_BASE	0xFF800A80 +#define SYS_AXI_SDS1_BASE	0xFF800AC0 +#define SYS_AXI_USB20_BASE	0xFF800C00 +#define SYS_AXI_USB21_BASE	0xFF800C40 +#define SYS_AXI_USB22_BASE	0xFF800C80 +#define SYS_AXI_USB30_BASE	0xFF800CC0 +#define SYS_AXI_AX2M_BASE	0xFF800380 +#define SYS_AXI_CC50_BASE	0xFF8003C0 +#define SYS_AXI_CCI_BASE	0xFF800440 +#define SYS_AXI_CS_BASE		0xFF800480 +#define SYS_AXI_DDM_BASE	0xFF8004C0 +#define SYS_AXI_ETH_BASE	0xFF800500 +#define SYS_AXI_MPXM_BASE	0xFF800840 +#define SYS_AXI_SAT0_BASE	0xFF800980 +#define SYS_AXI_SAT1_BASE	0xFF8009C0 +#define SYS_AXI_SDM0_BASE	0xFF800A00 +#define SYS_AXI_SDM1_BASE	0xFF800A40 +#define SYS_AXI_TRAB_BASE	0xFF800B00 +#define SYS_AXI_UDM0_BASE	0xFF800B80 +#define SYS_AXI_UDM1_BASE	0xFF800BC0 + +#define RT_AXI_SHX_BASE		0xFF810100 +#define RT_AXI_DBG_BASE		0xFF810140 +#define RT_AXI_RDM_BASE		0xFF810180 +#define RT_AXI_RDS_BASE		0xFF8101C0 +#define RT_AXI_RTX64TO128_BASE	0xFF810200 +#define RT_AXI_STPRO_BASE	0xFF810240 +#define RT_AXI_SY2RT_BASE	0xFF810280 + +#define MP_AXI_ADSP_BASE	0xFF820100 +#define MP_AXI_ASDS0_BASE	0xFF8201C0 +#define MP_AXI_ASDS1_BASE	0xFF820200 +#define MP_AXI_MLP_BASE		0xFF820240 +#define MP_AXI_MMUMP_BASE	0xFF820280 +#define MP_AXI_SPU_BASE		0xFF8202C0 +#define MP_AXI_SPUC_BASE	0xFF820300 + +#define SYS_AXI256_AXI128TO256_BASE	0xFF860100 +#define SYS_AXI256_SYX_BASE	0xFF860140 +#define SYS_AXI256_MPX_BASE	0xFF860180 +#define SYS_AXI256_MXI_BASE	0xFF8601C0 + +#define CCI_AXI_MMUS0_BASE	0xFF880100 +#define CCI_AXI_SYX2_BASE	0xFF880140 +#define CCI_AXI_MMUR_BASE	0xFF880180 +#define CCI_AXI_MMUDS_BASE	0xFF8801C0 +#define CCI_AXI_MMUM_BASE	0xFF880200 +#define CCI_AXI_MXI_BASE	0xFF880240 +#define CCI_AXI_MMUS1_BASE	0xFF880280 +#define CCI_AXI_MMUMP_BASE	0xFF8802C0 + +#define MEDIA_AXI_MXR_BASE	0xFE960080 +#define MEDIA_AXI_MXW_BASE	0xFE9600C0 +#define MEDIA_AXI_JPR_BASE	0xFE964100 +#define MEDIA_AXI_JPW_BASE	0xFE966100 +#define MEDIA_AXI_GCU0R_BASE	0xFE964140 +#define MEDIA_AXI_GCU0W_BASE	0xFE966140 +#define MEDIA_AXI_GCU1R_BASE	0xFE964180 +#define MEDIA_AXI_GCU1W_BASE	0xFE966180 +#define MEDIA_AXI_TDMR_BASE	0xFE964500 +#define MEDIA_AXI_TDMW_BASE	0xFE966500 +#define MEDIA_AXI_VSP0CR_BASE	0xFE964540 +#define MEDIA_AXI_VSP0CW_BASE	0xFE966540 +#define MEDIA_AXI_VSP1CR_BASE	0xFE964580 +#define MEDIA_AXI_VSP1CW_BASE	0xFE966580 +#define MEDIA_AXI_VSPDU0CR_BASE	0xFE9645C0 +#define MEDIA_AXI_VSPDU0CW_BASE	0xFE9665C0 +#define MEDIA_AXI_VSPDU1CR_BASE	0xFE964600 +#define MEDIA_AXI_VSPDU1CW_BASE	0xFE966600 +#define MEDIA_AXI_VIN0W_BASE	0xFE966900 +#define MEDIA_AXI_VSP0R_BASE	0xFE964D00 +#define MEDIA_AXI_VSP0W_BASE	0xFE966D00 +#define MEDIA_AXI_FDP0R_BASE	0xFE964D40 +#define MEDIA_AXI_FDP0W_BASE	0xFE966D40 +#define MEDIA_AXI_IMSR_BASE	0xFE964D80 +#define MEDIA_AXI_IMSW_BASE	0xFE966D80 +#define MEDIA_AXI_VSP1R_BASE	0xFE965100 +#define MEDIA_AXI_VSP1W_BASE	0xFE967100 +#define MEDIA_AXI_FDP1R_BASE	0xFE965140 +#define MEDIA_AXI_FDP1W_BASE	0xFE967140 +#define MEDIA_AXI_IMRR_BASE	0xFE965180 +#define MEDIA_AXI_IMRW_BASE	0xFE967180 +#define MEDIA_AXI_FDP2R_BASE	0xFE9651C0 +#define MEDIA_AXI_FDP2W_BASE	0xFE966DC0 +#define MEDIA_AXI_VSPD0R_BASE	0xFE965500 +#define MEDIA_AXI_VSPD0W_BASE	0xFE967500 +#define MEDIA_AXI_VSPD1R_BASE	0xFE965540 +#define MEDIA_AXI_VSPD1W_BASE	0xFE967540 +#define MEDIA_AXI_DU0R_BASE	0xFE965580 +#define MEDIA_AXI_DU0W_BASE	0xFE967580 +#define MEDIA_AXI_DU1R_BASE	0xFE9655C0 +#define MEDIA_AXI_DU1W_BASE	0xFE9675C0 +#define MEDIA_AXI_VCP0CR_BASE	0xFE965900 +#define MEDIA_AXI_VCP0CW_BASE	0xFE967900 +#define MEDIA_AXI_VCP0VR_BASE	0xFE965940 +#define MEDIA_AXI_VCP0VW_BASE	0xFE967940 +#define MEDIA_AXI_VPC0R_BASE	0xFE965980 +#define MEDIA_AXI_VCP1CR_BASE	0xFE965D00 +#define MEDIA_AXI_VCP1CW_BASE	0xFE967D00 +#define MEDIA_AXI_VCP1VR_BASE	0xFE965D40 +#define MEDIA_AXI_VCP1VW_BASE	0xFE967D40 +#define MEDIA_AXI_VPC1R_BASE	0xFE965D80 + +#define SYS_AXI_AVBDMSCR	0xFF802000 +#define SYS_AXI_SYX2DMSCR	0xFF802004 +#define SYS_AXI_CC50DMSCR	0xFF802008 +#define SYS_AXI_CC51DMSCR	0xFF80200C +#define SYS_AXI_CCIDMSCR	0xFF802010 +#define SYS_AXI_CSDMSCR		0xFF802014 +#define SYS_AXI_DDMDMSCR	0xFF802018 +#define SYS_AXI_ETHDMSCR	0xFF80201C +#define SYS_AXI_G2DDMSCR	0xFF802020 +#define SYS_AXI_IMP0DMSCR	0xFF802024 +#define SYS_AXI_IMP1DMSCR	0xFF802028 +#define SYS_AXI_LBSDMSCR	0xFF80202C +#define SYS_AXI_MMUDSDMSCR	0xFF802030 +#define SYS_AXI_MMUMXDMSCR	0xFF802034 +#define SYS_AXI_MMURDDMSCR	0xFF802038 +#define SYS_AXI_MMUS0DMSCR	0xFF80203C +#define SYS_AXI_MMUS1DMSCR	0xFF802040 +#define SYS_AXI_MPXDMSCR	0xFF802044 +#define SYS_AXI_MTSB0DMSCR	0xFF802048 +#define SYS_AXI_MTSB1DMSCR	0xFF80204C +#define SYS_AXI_PCIDMSCR	0xFF802050 +#define SYS_AXI_RTXDMSCR	0xFF802054 +#define SYS_AXI_SAT0DMSCR	0xFF802058 +#define SYS_AXI_SAT1DMSCR	0xFF80205C +#define SYS_AXI_SDM0DMSCR	0xFF802060 +#define SYS_AXI_SDM1DMSCR	0xFF802064 +#define SYS_AXI_SDS0DMSCR	0xFF802068 +#define SYS_AXI_SDS1DMSCR	0xFF80206C +#define SYS_AXI_ETRABDMSCR	0xFF802070 +#define SYS_AXI_ETRKFDMSCR	0xFF802074 +#define SYS_AXI_UDM0DMSCR	0xFF802078 +#define SYS_AXI_UDM1DMSCR	0xFF80207C +#define SYS_AXI_USB20DMSCR	0xFF802080 +#define SYS_AXI_USB21DMSCR	0xFF802084 +#define SYS_AXI_USB22DMSCR	0xFF802088 +#define SYS_AXI_USB30DMSCR	0xFF80208C +#define SYS_AXI_X128TO64SLVDMSCR	0xFF802100 +#define SYS_AXI_X64TO128SLVDMSCR	0xFF802104 +#define SYS_AXI_AVBSLVDMSCR	0xFF802108 +#define SYS_AXI_SYX2SLVDMSCR	0xFF80210C +#define SYS_AXI_ETHSLVDMSCR	0xFF802110 +#define SYS_AXI_GICSLVDMSCR	0xFF802114 +#define SYS_AXI_IMPSLVDMSCR	0xFF802118 +#define SYS_AXI_IMX0SLVDMSCR	0xFF80211C +#define SYS_AXI_IMX1SLVDMSCR	0xFF802120 +#define SYS_AXI_IMX2SLVDMSCR	0xFF802124 +#define SYS_AXI_LBSSLVDMSCR	0xFF802128 +#define SYS_AXI_MMC0SLVDMSCR	0xFF80212C +#define SYS_AXI_MMC1SLVDMSCR	0xFF802130 +#define SYS_AXI_MPXSLVDMSCR	0xFF802134 +#define SYS_AXI_MTSB0SLVDMSCR	0xFF802138 +#define SYS_AXI_MTSB1SLVDMSCR	0xFF80213C +#define SYS_AXI_MXTSLVDMSCR	0xFF802140 +#define SYS_AXI_PCISLVDMSCR	0xFF802144 +#define SYS_AXI_SYAPBSLVDMSCR	0xFF802148 +#define SYS_AXI_QSAPBSLVDMSCR	0xFF80214C +#define SYS_AXI_RTXSLVDMSCR	0xFF802150 +#define SYS_AXI_SAT0SLVDMSCR	0xFF802168 +#define SYS_AXI_SAT1SLVDMSCR	0xFF80216C +#define SYS_AXI_SDAP0SLVDMSCR	0xFF802170 +#define SYS_AXI_SDAP1SLVDMSCR	0xFF802174 +#define SYS_AXI_SDAP2SLVDMSCR	0xFF802178 +#define SYS_AXI_SDAP3SLVDMSCR	0xFF80217C +#define SYS_AXI_SGXSLVDMSCR	0xFF802180 +#define SYS_AXI_STBSLVDMSCR	0xFF802188 +#define SYS_AXI_STMSLVDMSCR	0xFF80218C +#define SYS_AXI_TSPL0SLVDMSCR	0xFF802194 +#define SYS_AXI_TSPL1SLVDMSCR	0xFF802198 +#define SYS_AXI_TSPL2SLVDMSCR	0xFF80219C +#define SYS_AXI_USB20SLVDMSCR	0xFF8021A0 +#define SYS_AXI_USB21SLVDMSCR	0xFF8021A4 +#define SYS_AXI_USB22SLVDMSCR	0xFF8021A8 +#define SYS_AXI_USB30SLVDMSCR	0xFF8021AC + +#define RT_AXI_CBMDMSCR		0xFF812000 +#define RT_AXI_DBDMSCR		0xFF812004 +#define RT_AXI_RDMDMSCR		0xFF812008 +#define RT_AXI_RDSDMSCR		0xFF81200C +#define RT_AXI_STRDMSCR		0xFF812010 +#define RT_AXI_SY2RTDMSCR	0xFF812014 +#define RT_AXI_CBSSLVDMSCR	0xFF812100 +#define RT_AXI_DBSSLVDMSCR	0xFF812104 +#define RT_AXI_RTAP1SLVDMSCR	0xFF812108 +#define RT_AXI_RTAP2SLVDMSCR	0xFF81210C +#define RT_AXI_RTAP3SLVDMSCR	0xFF812110 +#define RT_AXI_RT2SYSLVDMSCR	0xFF812114 +#define RT_AXI_A128TO64SLVDMSCR	0xFF812118 +#define RT_AXI_A64TO128SLVDMSCR	0xFF81211C +#define RT_AXI_A64TO128CSLVDMSCR	0xFF812120 +#define RT_AXI_UTLBRSLVDMSCR	0xFF812128 + +#define MP_AXI_ADSPDMSCR	0xFF822000 +#define MP_AXI_ASDM0DMSCR	0xFF822004 +#define MP_AXI_ASDM1DMSCR	0xFF822008 +#define MP_AXI_ASDS0DMSCR	0xFF82200C +#define MP_AXI_ASDS1DMSCR	0xFF822010 +#define MP_AXI_MLPDMSCR		0xFF822014 +#define MP_AXI_MMUMPDMSCR	0xFF822018 +#define MP_AXI_SPUDMSCR		0xFF82201C +#define MP_AXI_SPUCDMSCR	0xFF822020 +#define MP_AXI_SY2MPDMSCR	0xFF822024 +#define MP_AXI_ADSPSLVDMSCR	0xFF822100 +#define MP_AXI_MLMSLVDMSCR	0xFF822104 +#define MP_AXI_MPAP4SLVDMSCR	0xFF822108 +#define MP_AXI_MPAP5SLVDMSCR	0xFF82210C +#define MP_AXI_MPAP6SLVDMSCR	0xFF822110 +#define MP_AXI_MPAP7SLVDMSCR	0xFF822114 +#define MP_AXI_MP2SYSLVDMSCR	0xFF822118 +#define MP_AXI_MP2SY2SLVDMSCR	0xFF82211C +#define MP_AXI_MPXAPSLVDMSCR	0xFF822124 +#define MP_AXI_SPUSLVDMSCR	0xFF822128 +#define MP_AXI_UTLBMPSLVDMSCR	0xFF82212C + +#define ADM_AXI_ASDM0DMSCR	0xFF842000 +#define ADM_AXI_ASDM1DMSCR	0xFF842004 +#define ADM_AXI_MPAP1SLVDMSCR	0xFF842104 +#define ADM_AXI_MPAP2SLVDMSCR	0xFF842108 +#define ADM_AXI_MPAP3SLVDMSCR	0xFF84210C + +#define DM_AXI_RDMDMSCR		0xFF852000 +#define DM_AXI_SDM0DMSCR	0xFF852004 +#define DM_AXI_SDM1DMSCR	0xFF852008 +#define DM_AXI_MMAP0SLVDMSCR	0xFF852100 +#define DM_AXI_MMAP1SLVDMSCR	0xFF852104 +#define DM_AXI_QSPAPSLVDMSCR	0xFF852108 +#define DM_AXI_RAP4SLVDMSCR	0xFF85210C +#define DM_AXI_RAP5SLVDMSCR	0xFF852110 +#define DM_AXI_SAP4SLVDMSCR	0xFF852114 +#define DM_AXI_SAP5SLVDMSCR	0xFF852118 +#define DM_AXI_SAP6SLVDMSCR	0xFF85211C +#define DM_AXI_SAP65SLVDMSCR	0xFF852120 +#define DM_AXI_SDAP0SLVDMSCR	0xFF852124 +#define DM_AXI_SDAP1SLVDMSCR	0xFF852128 +#define DM_AXI_SDAP2SLVDMSCR	0xFF85212C +#define DM_AXI_SDAP3SLVDMSCR	0xFF852130 + +#define SYS_AXI256_SYXDMSCR	0xFF862000 +#define SYS_AXI256_MPXDMSCR	0xFF862004 +#define SYS_AXI256_MXIDMSCR	0xFF862008 +#define SYS_AXI256_X128TO256SLVDMSCR	0xFF862100 +#define SYS_AXI256_X256TO128SLVDMSCR	0xFF862104 +#define SYS_AXI256_SYXSLVDMSCR	0xFF862108 +#define SYS_AXI256_CCXSLVDMSCR	0xFF86210C +#define SYS_AXI256_S3CSLVDMSCR	0xFF862110 + +#define MXT_SYXDMSCR		0xFF872000 +#define MXT_CMM0SLVDMSCR	0xFF872100 +#define MXT_CMM1SLVDMSCR	0xFF872104 +#define MXT_CMM2SLVDMSCR	0xFF872108 +#define MXT_FDPSLVDMSCR		0xFF87210C +#define MXT_IMRSLVDMSCR		0xFF872110 +#define MXT_VINSLVDMSCR		0xFF872114 +#define MXT_VPC0SLVDMSCR	0xFF872118 +#define MXT_VPC1SLVDMSCR	0xFF87211C +#define MXT_VSP0SLVDMSCR	0xFF872120 +#define MXT_VSP1SLVDMSCR	0xFF872124 +#define MXT_VSPD0SLVDMSCR	0xFF872128 +#define MXT_VSPD1SLVDMSCR	0xFF87212C +#define MXT_MAP1SLVDMSCR	0xFF872130 +#define MXT_MAP2SLVDMSCR	0xFF872134 + +#define CCI_AXI_MMUS0DMSCR	0xFF882000 +#define CCI_AXI_SYX2DMSCR	0xFF882004 +#define CCI_AXI_MMURDMSCR	0xFF882008 +#define CCI_AXI_MMUDSDMSCR	0xFF88200C +#define CCI_AXI_MMUMDMSCR	0xFF882010 +#define CCI_AXI_MXIDMSCR	0xFF882014 +#define CCI_AXI_MMUS1DMSCR	0xFF882018 +#define CCI_AXI_MMUMPDMSCR	0xFF88201C +#define CCI_AXI_DVMDMSCR	0xFF882020 +#define CCI_AXI_CCISLVDMSCR	0xFF882100 + +#define CCI_AXI_IPMMUIDVMCR	0xFF880400 +#define CCI_AXI_IPMMURDVMCR	0xFF880404 +#define CCI_AXI_IPMMUS0DVMCR	0xFF880408 +#define CCI_AXI_IPMMUS1DVMCR	0xFF88040C +#define CCI_AXI_IPMMUMPDVMCR	0xFF880410 +#define CCI_AXI_IPMMUDSDVMCR	0xFF880414 +#define CCI_AXI_AX2ADDRMASK	0xFF88041C + +#ifndef __ASSEMBLY__ +#include <asm/types.h> + +/* RWDT */ +struct r8a7791_rwdt { +	u32 rwtcnt;	/* 0x00 */ +	u32 rwtcsra;	/* 0x04 */ +	u16 rwtcsrb;	/* 0x08 */ +}; + +/* SWDT */ +struct r8a7791_swdt { +	u32 swtcnt;	/* 0x00 */ +	u32 swtcsra;	/* 0x04 */ +	u16 swtcsrb;	/* 0x08 */ +}; + +/* LBSC */ +struct r8a7791_lbsc { +	u32 cs0ctrl; +	u32 cs1ctrl; +	u32 ecs0ctrl; +	u32 ecs1ctrl; +	u32 ecs2ctrl; +	u32 ecs3ctrl; +	u32 ecs4ctrl; +	u32 ecs5ctrl; +	u32 dummy0[4];	/* 0x20 .. 0x2C */ +	u32 cswcr0; +	u32 cswcr1; +	u32 ecswcr0; +	u32 ecswcr1; +	u32 ecswcr2; +	u32 ecswcr3; +	u32 ecswcr4; +	u32 ecswcr5; +	u32 exdmawcr0; +	u32 exdmawcr1; +	u32 exdmawcr2; +	u32 dummy1[9];	/* 0x5C .. 0x7C */ +	u32 cspwcr0; +	u32 cspwcr1; +	u32 ecspwcr0; +	u32 ecspwcr1; +	u32 ecspwcr2; +	u32 ecspwcr3; +	u32 ecspwcr4; +	u32 ecspwcr5; +	u32 exwtsync; +	u32 dummy2[3];	/* 0xA4 .. 0xAC */ +	u32 cs0bstctl; +	u32 cs0btph; +	u32 dummy3[2];	/* 0xB8 .. 0xBC */ +	u32 cs1gdst; +	u32 ecs0gdst; +	u32 ecs1gdst; +	u32 ecs2gdst; +	u32 ecs3gdst; +	u32 ecs4gdst; +	u32 ecs5gdst; +	u32 dummy4[5];	/* 0xDC .. 0xEC */ +	u32 exdmaset0; +	u32 exdmaset1; +	u32 exdmaset2; +	u32 dummy5[5];	/* 0xFC .. 0x10C */ +	u32 exdmcr0; +	u32 exdmcr1; +	u32 exdmcr2; +	u32 dummy6[5];	/* 0x11C .. 0x12C */ +	u32 bcintsr; +	u32 bcintcr; +	u32 bcintmr; +	u32 dummy7;	/* 0x13C */ +	u32 exbatlv; +	u32 exwtsts; +	u32 dummy8[14];	/* 0x148 .. 0x17C */ +	u32 atacsctrl; +	u32 dummy9[15]; /* 0x184 .. 0x1BC */ +	u32 exbct; +	u32 extct; +}; + +/* DBSC3 */ +struct r8a7791_dbsc3 { +	u32 dummy0[3];	/* 0x00 .. 0x08 */ +	u32 dbstate1; +	u32 dbacen; +	u32 dbrfen; +	u32 dbcmd; +	u32 dbwait; +	u32 dbkind; +	u32 dbconf0; +	u32 dummy1[2];	/* 0x28 .. 0x2C */ +	u32 dbphytype; +	u32 dummy2[3];	/* 0x34 .. 0x3C */ +	u32 dbtr0; +	u32 dbtr1; +	u32 dbtr2; +	u32 dummy3;	/* 0x4C */ +	u32 dbtr3; +	u32 dbtr4; +	u32 dbtr5; +	u32 dbtr6; +	u32 dbtr7; +	u32 dbtr8; +	u32 dbtr9; +	u32 dbtr10; +	u32 dbtr11; +	u32 dbtr12; +	u32 dbtr13; +	u32 dbtr14; +	u32 dbtr15; +	u32 dbtr16; +	u32 dbtr17; +	u32 dbtr18; +	u32 dbtr19; +	u32 dummy4[7];	/* 0x94 .. 0xAC */ +	u32 dbbl; +	u32 dummy5[3];	/* 0xB4 .. 0xBC */ +	u32 dbadj0; +	u32 dummy6;	/* 0xC4 */ +	u32 dbadj2; +	u32 dummy7[5];	/* 0xCC .. 0xDC */ +	u32 dbrfcnf0; +	u32 dbrfcnf1; +	u32 dbrfcnf2; +	u32 dummy8[2];	/* 0xEC .. 0xF0 */ +	u32 dbcalcnf; +	u32 dbcaltr; +	u32 dummy9;	/* 0xFC */ +	u32 dbrnk0; +	u32 dummy10[31];	/* 0x104 .. 0x17C */ +	u32 dbpdncnf; +	u32 dummy11[47];	/* 0x184 ..0x23C */ +	u32 dbdfistat; +	u32 dbdficnt; +	u32 dummy12[14];	/* 0x248 .. 0x27C */ +	u32 dbpdlck; +	u32 dummy13[3];	/* 0x284 .. 0x28C */ +	u32 dbpdrga; +	u32 dummy14[3];	/* 0x294 .. 0x29C */ +	u32 dbpdrgd; +	u32 dummy15[24];	/* 0x2A4 .. 0x300 */ +	u32 dbbs0cnt1; +	u32 dummy16[30];	/* 0x308 .. 0x37C */ +	u32 dbwt0cnf0; +	u32 dbwt0cnf1; +	u32 dbwt0cnf2; +	u32 dbwt0cnf3; +	u32 dbwt0cnf4; +}; + +/* GPIO */ +struct r8a7791_gpio { +	u32 iointsel; +	u32 inoutsel; +	u32 outdt; +	u32 indt; +	u32 intdt; +	u32 intclr; +	u32 intmsk; +	u32 posneg; +	u32 edglevel; +	u32 filonoff; +	u32 intmsks; +	u32 mskclrs; +	u32 outdtsel; +	u32 outdth; +	u32 outdtl; +	u32 bothedge; +}; + +/* S3C(QoS) */ +struct r8a7791_s3c { +	u32 s3cexcladdmsk; +	u32 s3cexclidmsk; +	u32 s3cadsplcr; +	u32 s3cmaar; +	u32 dummy0;	/* 0x10 */ +	u32 s3crorr; +	u32 s3cworr; +	u32 s3carcr22; +	u32 dummy1[2];	/* 0x20 .. 0x24 */ +	u32 s3cmctr; +	u32 dummy2;	/* 0x2C */ +	u32 cconf0; +	u32 cconf1; +	u32 cconf2; +	u32 cconf3; +}; + +struct r8a7791_s3c_qos { +	u32 s3cqos0; +	u32 s3cqos1; +	u32 s3cqos2; +	u32 s3cqos3; +	u32 s3cqos4; +	u32 s3cqos5; +	u32 s3cqos6; +	u32 s3cqos7; +	u32 s3cqos8; +}; + +/* DBSC(QoS) */ +struct r8a7791_dbsc3_qos { +	u32 dblgcnt; +	u32 dbtmval0; +	u32 dbtmval1; +	u32 dbtmval2; +	u32 dbtmval3; +	u32 dbrqctr; +	u32 dbthres0; +	u32 dbthres1; +	u32 dbthres2; +	u32 dummy0;	/* 0x24 */ +	u32 dblgqon; +}; + +/* MXI(QoS) */ +struct r8a7791_mxi { +	u32 mxsaar0; +	u32 mxsaar1; +	u32 dummy0[8];	/* 0x08 .. 0x24 */ +	u32 mxs3cracr; +	u32 dummy1[3];	/* 0x2C .. 0x34 */ +	u32 mxs3cwacr; +	u32 dummy2;	/* 0x3C */ +	u32 mxrtcr; +	u32 mxwtcr; +}; + +struct r8a7791_mxi_qos { +	u32 vspdu0; +	u32 vspdu1; +	u32 du0; +	u32 du1; +}; + +/* AXI(QoS) */ +struct r8a7791_axi_qos { +	u32 qosconf; +	u32 qosctset0; +	u32 qosctset1; +	u32 qosctset2; +	u32 qosctset3; +	u32 qosreqctr; +	u32 qosthres0; +	u32 qosthres1; +	u32 qosthres2; +	u32 qosqon; +}; + +#endif + +#endif /* __ASM_ARCH_R8A7791_H */ diff --git a/arch/arm/include/asm/arch-rmobile/rmobile.h b/arch/arm/include/asm/arch-rmobile/rmobile.h index ac175617c..238256502 100644 --- a/arch/arm/include/asm/arch-rmobile/rmobile.h +++ b/arch/arm/include/asm/arch-rmobile/rmobile.h @@ -6,6 +6,10 @@  #include <asm/arch/sh73a0.h>  #elif defined(CONFIG_R8A7740)  #include <asm/arch/r8a7740.h> +#elif defined(CONFIG_R8A7790) +#include <asm/arch/r8a7790.h> +#elif defined(CONFIG_R8A7791) +#include <asm/arch/r8a7791.h>  #else  #error "SOC Name not defined"  #endif diff --git a/arch/arm/include/asm/arch-socfpga/freeze_controller.h b/arch/arm/include/asm/arch-socfpga/freeze_controller.h new file mode 100644 index 000000000..120f20e03 --- /dev/null +++ b/arch/arm/include/asm/arch-socfpga/freeze_controller.h @@ -0,0 +1,50 @@ +/* + *  Copyright (C) 2013 Altera Corporation <www.altera.com> + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + +#ifndef	_FREEZE_CONTROLLER_H_ +#define	_FREEZE_CONTROLLER_H_ + +struct socfpga_freeze_controller { +	u32	vioctrl; +	u32	padding[3]; +	u32	hioctrl; +	u32	src; +	u32	hwctrl; +}; + +#define FREEZE_CHANNEL_NUM		(4) + +typedef enum { +	FREEZE_CTRL_FROZEN = 0, +	FREEZE_CTRL_THAWED = 1 +} FREEZE_CTRL_CHAN_STATE; + +#define SYSMGR_FRZCTRL_ADDRESS 0x40 +#define SYSMGR_FRZCTRL_SRC_VIO1_ENUM_SW 0x0 +#define SYSMGR_FRZCTRL_SRC_VIO1_ENUM_HW 0x1 +#define SYSMGR_FRZCTRL_VIOCTRL_SLEW_MASK 0x00000010 +#define SYSMGR_FRZCTRL_VIOCTRL_WKPULLUP_MASK 0x00000008 +#define SYSMGR_FRZCTRL_VIOCTRL_TRISTATE_MASK 0x00000004 +#define SYSMGR_FRZCTRL_VIOCTRL_BUSHOLD_MASK 0x00000002 +#define SYSMGR_FRZCTRL_VIOCTRL_CFG_MASK 0x00000001 +#define SYSMGR_FRZCTRL_HIOCTRL_SLEW_MASK 0x00000010 +#define SYSMGR_FRZCTRL_HIOCTRL_WKPULLUP_MASK 0x00000008 +#define SYSMGR_FRZCTRL_HIOCTRL_TRISTATE_MASK 0x00000004 +#define SYSMGR_FRZCTRL_HIOCTRL_BUSHOLD_MASK 0x00000002 +#define SYSMGR_FRZCTRL_HIOCTRL_CFG_MASK 0x00000001 +#define SYSMGR_FRZCTRL_HIOCTRL_REGRST_MASK 0x00000080 +#define SYSMGR_FRZCTRL_HIOCTRL_OCTRST_MASK 0x00000040 +#define SYSMGR_FRZCTRL_HIOCTRL_OCT_CFGEN_CALSTART_MASK 0x00000100 +#define SYSMGR_FRZCTRL_HIOCTRL_DLLRST_MASK 0x00000020 +#define SYSMGR_FRZCTRL_HWCTRL_VIO1REQ_MASK 0x00000001 +#define SYSMGR_FRZCTRL_HWCTRL_VIO1STATE_ENUM_FROZEN 0x2 +#define SYSMGR_FRZCTRL_HWCTRL_VIO1STATE_ENUM_THAWED 0x1 +#define SYSMGR_FRZCTRL_VIOCTRL_SHIFT 0x2 + +void sys_mgr_frzctrl_freeze_req(void); +void sys_mgr_frzctrl_thaw_req(void); + +#endif /* _FREEZE_CONTROLLER_H_ */ diff --git a/arch/arm/include/asm/emif.h b/arch/arm/include/asm/emif.h index 1b94a99c5..d9d521a51 100644 --- a/arch/arm/include/asm/emif.h +++ b/arch/arm/include/asm/emif.h @@ -581,7 +581,6 @@  	(0xFF << EMIF_SYS_ADDR_SHIFT))  #define EMIF_EXT_PHY_CTRL_TIMING_REG	0x5 -#define EMIF_EXT_PHY_CTRL_CONST_REG	0x14  /* Reg mapping structure */  struct emif_reg_struct { @@ -641,7 +640,9 @@ struct emif_reg_struct {  	u32 emif_ddr_phy_ctrl_2;  	u32 padding7[12];  	u32 emif_rd_wr_exec_thresh; -	u32 padding8[55]; +	u32 padding8[7]; +	u32 emif_ddr_phy_status[21]; +	u32 padding9[27];  	u32 emif_ddr_ext_phy_ctrl_1;  	u32 emif_ddr_ext_phy_ctrl_1_shdw;  	u32 emif_ddr_ext_phy_ctrl_2; @@ -690,6 +691,9 @@ struct emif_reg_struct {  	u32 emif_ddr_ext_phy_ctrl_23_shdw;  	u32 emif_ddr_ext_phy_ctrl_24;  	u32 emif_ddr_ext_phy_ctrl_24_shdw; +	u32 padding[22]; +	u32 emif_ddr_fifo_misaligned_clear_1; +	u32 emif_ddr_fifo_misaligned_clear_2;  };  struct dmm_lisa_map_regs { @@ -1139,6 +1143,11 @@ struct lpddr2_mr_regs {  	s8 mr16;  }; +struct read_write_regs { +	u32 read_reg; +	u32 write_reg; +}; +  /* assert macros */  #if defined(DEBUG)  #define emif_assert(c)	({ if (!(c)) for (;;); }) @@ -1167,4 +1176,5 @@ extern u32 *const T_den;  void config_data_eye_leveling_samples(u32 emif_base);  u32 emif_sdram_type(void); +const struct read_write_regs *get_bug_regs(u32 *iterations);  #endif diff --git a/arch/arm/include/asm/omap_common.h b/arch/arm/include/asm/omap_common.h index 8a395e8a1..a78f99079 100644 --- a/arch/arm/include/asm/omap_common.h +++ b/arch/arm/include/asm/omap_common.h @@ -226,6 +226,7 @@ struct prcm_regs {  	u32 cm_l3init_hsusbotg_clkctrl;  	u32 cm_l3init_hsusbtll_clkctrl;  	u32 cm_l3init_p1500_clkctrl; +	u32 cm_l3init_sata_clkctrl;  	u32 cm_l3init_fsusb_clkctrl;  	u32 cm_l3init_ocp2scp1_clkctrl;  	u32 cm_l3init_ocp2scp3_clkctrl; @@ -366,6 +367,7 @@ struct omap_sys_ctrl_regs {  	u32 control_ldosram_mpu_voltage_ctrl;  	u32 control_ldosram_core_voltage_ctrl;  	u32 control_usbotghs_ctrl; +	u32 control_phy_power_sata;  	u32 control_padconf_core_base;  	u32 control_paconf_global;  	u32 control_paconf_mode; @@ -605,6 +607,14 @@ static inline u8 is_omap54xx(void)  	extern u32 *const omap_si_rev;  	return ((*omap_si_rev & 0xFF000000) == OMAP54xx);  } + +#define DRA7XX		0x07000000 + +static inline u8 is_dra7xx(void) +{ +	extern u32 *const omap_si_rev; +	return ((*omap_si_rev & 0xFF000000) == DRA7XX); +}  #endif  /* |