diff options
Diffstat (limited to 'arch/arm/include')
21 files changed, 2344 insertions, 3 deletions
| diff --git a/arch/arm/include/asm/arch-am33xx/spl.h b/arch/arm/include/asm/arch-am33xx/spl.h index 70f521d26..63ed10b25 100644 --- a/arch/arm/include/asm/arch-am33xx/spl.h +++ b/arch/arm/include/asm/arch-am33xx/spl.h @@ -23,9 +23,11 @@  #ifndef	_ASM_ARCH_SPL_H_  #define	_ASM_SPL_H_ +#define BOOT_DEVICE_XIP       	2  #define BOOT_DEVICE_NAND	5  #define BOOT_DEVICE_MMC1	8  #define BOOT_DEVICE_MMC2	9	/* eMMC or daughter card */  #define BOOT_DEVICE_UART	65 +#define BOOT_DEVICE_CPGMAC	70  #define BOOT_DEVICE_MMC2_2      0xFF  #endif diff --git a/arch/arm/include/asm/arch-armv7/globaltimer.h b/arch/arm/include/asm/arch-armv7/globaltimer.h new file mode 100644 index 000000000..0ac70fd5c --- /dev/null +++ b/arch/arm/include/asm/arch-armv7/globaltimer.h @@ -0,0 +1,36 @@ +/* + * (C) Copyright 2012 Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com> + * (C) Copyright 2012 Renesas Solutions Corp. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ +#ifndef _GLOBALTIMER_H_ +#define _GLOBALTIMER_H_ + +struct globaltimer { +	u32 cnt_l; /* 0x00 */ +	u32 cnt_h; +	u32 ctl; +	u32 stat; +	u32 cmp_l; /* 0x10 */ +	u32 cmp_h; +	u32 inc; +}; + +#endif /* _GLOBALTIMER_H_ */ diff --git a/arch/arm/include/asm/arch-kirkwood/cpu.h b/arch/arm/include/asm/arch-kirkwood/cpu.h index d28c51a9b..57bfe8e78 100644 --- a/arch/arm/include/asm/arch-kirkwood/cpu.h +++ b/arch/arm/include/asm/arch-kirkwood/cpu.h @@ -155,10 +155,10 @@ struct kwgpio_registers {  /*   * functions   */ -void reset_cpu(unsigned long ignored);  unsigned char get_random_hex(void);  unsigned int kw_sdram_bar(enum memory_bank bank);  unsigned int kw_sdram_bs(enum memory_bank bank); +void kw_sdram_size_adjust(enum memory_bank bank);  int kw_config_adr_windows(void);  void kw_config_gpio(unsigned int gpp0_oe_val, unsigned int gpp1_oe_val,  		unsigned int gpp0_oe, unsigned int gpp1_oe); diff --git a/arch/arm/include/asm/arch-kirkwood/mpp.h b/arch/arm/include/asm/arch-kirkwood/mpp.h index 8e50ee7f1..8ceea7bb8 100644 --- a/arch/arm/include/asm/arch-kirkwood/mpp.h +++ b/arch/arm/include/asm/arch-kirkwood/mpp.h @@ -85,7 +85,7 @@  #define MPP7_SPI_SCn		MPP(  7, 0x2, 0, 1, 1,   1,   1,   1    )  #define MPP7_PTP_TRIG_GEN	MPP(  7, 0x3, 0, 1, 1,   1,   1,   1    ) -#define MPP8_GPIO		MPP(  8, 0x0, 1, 1, 1,    1,  1,   1    ) +#define MPP8_GPIO		MPP(  8, 0x0, 1, 1, 1,   1,   1,   1    )  #define MPP8_TW_SDA		MPP(  8, 0x1, 1, 1, 1,   1,   1,   1    )  #define MPP8_UART0_RTS		MPP(  8, 0x2, 0, 1, 1,   1,   1,   1    )  #define MPP8_UART1_RTS		MPP(  8, 0x3, 0, 1, 1,   1,   1,   1    ) diff --git a/arch/arm/include/asm/arch-mx5/imx-regs.h b/arch/arm/include/asm/arch-mx5/imx-regs.h index d1ef15d04..46017f4ad 100644 --- a/arch/arm/include/asm/arch-mx5/imx-regs.h +++ b/arch/arm/include/asm/arch-mx5/imx-regs.h @@ -321,6 +321,8 @@  #define BOARD_REV_1_0           0x0  #define BOARD_REV_2_0           0x1 +#define BOARD_VER_OFFSET	0x8 +  #define IMX_IIM_BASE            (IIM_BASE_ADDR)  #if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__)) diff --git a/arch/arm/include/asm/arch-orion5x/cpu.h b/arch/arm/include/asm/arch-orion5x/cpu.h index 2f52ca840..17b9b69be 100644 --- a/arch/arm/include/asm/arch-orion5x/cpu.h +++ b/arch/arm/include/asm/arch-orion5x/cpu.h @@ -251,7 +251,6 @@ struct orion5x_ddr_addr_decode_registers {  /*   * functions   */ -void reset_cpu(unsigned long ignored);  u32 orion5x_device_id(void);  u32 orion5x_device_rev(void);  unsigned int orion5x_winctrl_calcsize(unsigned int sizeval); diff --git a/arch/arm/include/asm/arch-rmobile/gpio.h b/arch/arm/include/asm/arch-rmobile/gpio.h new file mode 100644 index 000000000..6b5e4ed4e --- /dev/null +++ b/arch/arm/include/asm/arch-rmobile/gpio.h @@ -0,0 +1,12 @@ +#ifndef __ASM_ARCH_GPIO_H +#define __ASM_ARCH_GPIO_H + +#if defined(CONFIG_SH73A0) +#include "sh73a0-gpio.h" +void sh73a0_pinmux_init(void); +#elif defined(CONFIG_R8A7740) +#include "r8a7740-gpio.h" +void r8a7740_pinmux_init(void); +#endif + +#endif /* __ASM_ARCH_GPIO_H */ diff --git a/arch/arm/include/asm/arch-rmobile/irqs.h b/arch/arm/include/asm/arch-rmobile/irqs.h new file mode 100644 index 000000000..dcb714f4d --- /dev/null +++ b/arch/arm/include/asm/arch-rmobile/irqs.h @@ -0,0 +1,18 @@ +#ifndef __ASM_MACH_IRQS_H +#define __ASM_MACH_IRQS_H + +#define NR_IRQS         1024 + +/* GIC */ +#define gic_spi(nr)		((nr) + 32) + +/* INTCA */ +#define evt2irq(evt)		(((evt) >> 5) - 16) +#define irq2evt(irq)		(((irq) + 16) << 5) + +/* INTCS */ +#define INTCS_VECT_BASE		0x2200 +#define INTCS_VECT(n, vect)	INTC_VECT((n), INTCS_VECT_BASE + (vect)) +#define intcs_evt2irq(evt)	evt2irq(INTCS_VECT_BASE + (evt)) + +#endif /* __ASM_MACH_IRQS_H */ diff --git a/arch/arm/include/asm/arch-rmobile/r8a7740-gpio.h b/arch/arm/include/asm/arch-rmobile/r8a7740-gpio.h new file mode 100644 index 000000000..9d447abb9 --- /dev/null +++ b/arch/arm/include/asm/arch-rmobile/r8a7740-gpio.h @@ -0,0 +1,584 @@ +/* + * Copyright (C) 2011  Renesas Solutions Corp. + * Copyright (C) 2011  Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA + */ + +#ifndef __ASM_R8A7740_H__ +#define __ASM_R8A7740_H__ + +/* + * MD_CKx pin + */ +#define MD_CK2	(1 << 2) +#define MD_CK1	(1 << 1) +#define MD_CK0	(1 << 0) + +/* + * Pin Function Controller: + *	GPIO_FN_xx - GPIO used to select pin function + *	GPIO_PORTxx - GPIO mapped to real I/O pin on CPU + */ +enum { +	/* PORT */ +	GPIO_PORT0, GPIO_PORT1, GPIO_PORT2, GPIO_PORT3, GPIO_PORT4, +	GPIO_PORT5, GPIO_PORT6, GPIO_PORT7, GPIO_PORT8, GPIO_PORT9, + +	GPIO_PORT10, GPIO_PORT11, GPIO_PORT12, GPIO_PORT13, GPIO_PORT14, +	GPIO_PORT15, GPIO_PORT16, GPIO_PORT17, GPIO_PORT18, GPIO_PORT19, + +	GPIO_PORT20, GPIO_PORT21, GPIO_PORT22, GPIO_PORT23, GPIO_PORT24, +	GPIO_PORT25, GPIO_PORT26, GPIO_PORT27, GPIO_PORT28, GPIO_PORT29, + +	GPIO_PORT30, GPIO_PORT31, GPIO_PORT32, GPIO_PORT33, GPIO_PORT34, +	GPIO_PORT35, GPIO_PORT36, GPIO_PORT37, GPIO_PORT38, GPIO_PORT39, + +	GPIO_PORT40, GPIO_PORT41, GPIO_PORT42, GPIO_PORT43, GPIO_PORT44, +	GPIO_PORT45, GPIO_PORT46, GPIO_PORT47, GPIO_PORT48, GPIO_PORT49, + +	GPIO_PORT50, GPIO_PORT51, GPIO_PORT52, GPIO_PORT53, GPIO_PORT54, +	GPIO_PORT55, GPIO_PORT56, GPIO_PORT57, GPIO_PORT58, GPIO_PORT59, + +	GPIO_PORT60, GPIO_PORT61, GPIO_PORT62, GPIO_PORT63, GPIO_PORT64, +	GPIO_PORT65, GPIO_PORT66, GPIO_PORT67, GPIO_PORT68, GPIO_PORT69, + +	GPIO_PORT70, GPIO_PORT71, GPIO_PORT72, GPIO_PORT73, GPIO_PORT74, +	GPIO_PORT75, GPIO_PORT76, GPIO_PORT77, GPIO_PORT78, GPIO_PORT79, + +	GPIO_PORT80, GPIO_PORT81, GPIO_PORT82, GPIO_PORT83, GPIO_PORT84, +	GPIO_PORT85, GPIO_PORT86, GPIO_PORT87, GPIO_PORT88, GPIO_PORT89, + +	GPIO_PORT90, GPIO_PORT91, GPIO_PORT92, GPIO_PORT93, GPIO_PORT94, +	GPIO_PORT95, GPIO_PORT96, GPIO_PORT97, GPIO_PORT98, GPIO_PORT99, + +	GPIO_PORT100, GPIO_PORT101, GPIO_PORT102, GPIO_PORT103, GPIO_PORT104, +	GPIO_PORT105, GPIO_PORT106, GPIO_PORT107, GPIO_PORT108, GPIO_PORT109, + +	GPIO_PORT110, GPIO_PORT111, GPIO_PORT112, GPIO_PORT113, GPIO_PORT114, +	GPIO_PORT115, GPIO_PORT116, GPIO_PORT117, GPIO_PORT118, GPIO_PORT119, + +	GPIO_PORT120, GPIO_PORT121, GPIO_PORT122, GPIO_PORT123, GPIO_PORT124, +	GPIO_PORT125, GPIO_PORT126, GPIO_PORT127, GPIO_PORT128, GPIO_PORT129, + +	GPIO_PORT130, GPIO_PORT131, GPIO_PORT132, GPIO_PORT133, GPIO_PORT134, +	GPIO_PORT135, GPIO_PORT136, GPIO_PORT137, GPIO_PORT138, GPIO_PORT139, + +	GPIO_PORT140, GPIO_PORT141, GPIO_PORT142, GPIO_PORT143, GPIO_PORT144, +	GPIO_PORT145, GPIO_PORT146, GPIO_PORT147, GPIO_PORT148, GPIO_PORT149, + +	GPIO_PORT150, GPIO_PORT151, GPIO_PORT152, GPIO_PORT153, GPIO_PORT154, +	GPIO_PORT155, GPIO_PORT156, GPIO_PORT157, GPIO_PORT158, GPIO_PORT159, + +	GPIO_PORT160, GPIO_PORT161, GPIO_PORT162, GPIO_PORT163, GPIO_PORT164, +	GPIO_PORT165, GPIO_PORT166, GPIO_PORT167, GPIO_PORT168, GPIO_PORT169, + +	GPIO_PORT170, GPIO_PORT171, GPIO_PORT172, GPIO_PORT173, GPIO_PORT174, +	GPIO_PORT175, GPIO_PORT176, GPIO_PORT177, GPIO_PORT178, GPIO_PORT179, + +	GPIO_PORT180, GPIO_PORT181, GPIO_PORT182, GPIO_PORT183, GPIO_PORT184, +	GPIO_PORT185, GPIO_PORT186, GPIO_PORT187, GPIO_PORT188, GPIO_PORT189, + +	GPIO_PORT190, GPIO_PORT191, GPIO_PORT192, GPIO_PORT193, GPIO_PORT194, +	GPIO_PORT195, GPIO_PORT196, GPIO_PORT197, GPIO_PORT198, GPIO_PORT199, + +	GPIO_PORT200, GPIO_PORT201, GPIO_PORT202, GPIO_PORT203, GPIO_PORT204, +	GPIO_PORT205, GPIO_PORT206, GPIO_PORT207, GPIO_PORT208, GPIO_PORT209, + +	GPIO_PORT210, GPIO_PORT211, + +	/* IRQ */ +	GPIO_FN_IRQ0_PORT2,	GPIO_FN_IRQ0_PORT13, +	GPIO_FN_IRQ1, +	GPIO_FN_IRQ2_PORT11,	GPIO_FN_IRQ2_PORT12, +	GPIO_FN_IRQ3_PORT10,	GPIO_FN_IRQ3_PORT14, +	GPIO_FN_IRQ4_PORT15,	GPIO_FN_IRQ4_PORT172, +	GPIO_FN_IRQ5_PORT0,	GPIO_FN_IRQ5_PORT1, +	GPIO_FN_IRQ6_PORT121,	GPIO_FN_IRQ6_PORT173, +	GPIO_FN_IRQ7_PORT120,	GPIO_FN_IRQ7_PORT209, +	GPIO_FN_IRQ8, +	GPIO_FN_IRQ9_PORT118,	GPIO_FN_IRQ9_PORT210, +	GPIO_FN_IRQ10, +	GPIO_FN_IRQ11, +	GPIO_FN_IRQ12_PORT42,	GPIO_FN_IRQ12_PORT97, +	GPIO_FN_IRQ13_PORT64,	GPIO_FN_IRQ13_PORT98, +	GPIO_FN_IRQ14_PORT63,	GPIO_FN_IRQ14_PORT99, +	GPIO_FN_IRQ15_PORT62,	GPIO_FN_IRQ15_PORT100, +	GPIO_FN_IRQ16_PORT68,	GPIO_FN_IRQ16_PORT211, +	GPIO_FN_IRQ17, +	GPIO_FN_IRQ18, +	GPIO_FN_IRQ19, +	GPIO_FN_IRQ20, +	GPIO_FN_IRQ21, +	GPIO_FN_IRQ22, +	GPIO_FN_IRQ23, +	GPIO_FN_IRQ24, +	GPIO_FN_IRQ25, +	GPIO_FN_IRQ26_PORT58,	GPIO_FN_IRQ26_PORT81, +	GPIO_FN_IRQ27_PORT57,	GPIO_FN_IRQ27_PORT168, +	GPIO_FN_IRQ28_PORT56,	GPIO_FN_IRQ28_PORT169, +	GPIO_FN_IRQ29_PORT50,	GPIO_FN_IRQ29_PORT170, +	GPIO_FN_IRQ30_PORT49,	GPIO_FN_IRQ30_PORT171, +	GPIO_FN_IRQ31_PORT41,	GPIO_FN_IRQ31_PORT167, + +	/* Function */ + +	/* DBGT */ +	GPIO_FN_DBGMDT2,	GPIO_FN_DBGMDT1,	GPIO_FN_DBGMDT0, +	GPIO_FN_DBGMD10,	GPIO_FN_DBGMD11,	GPIO_FN_DBGMD20, +	GPIO_FN_DBGMD21, + +	/* FSI */ +	GPIO_FN_FSIAISLD_PORT0,		/* FSIAISLD Port 0/5 */ +	GPIO_FN_FSIAISLD_PORT5, +	GPIO_FN_FSIASPDIF_PORT9,	/* FSIASPDIF Port 9/18 */ +	GPIO_FN_FSIASPDIF_PORT18, +	GPIO_FN_FSIAOSLD1,	GPIO_FN_FSIAOSLD2, +	GPIO_FN_FSIAOLR,	GPIO_FN_FSIAOBT, +	GPIO_FN_FSIAOSLD,	GPIO_FN_FSIAOMC, +	GPIO_FN_FSIACK,		GPIO_FN_FSIAILR, +	GPIO_FN_FSIAIBT, + +	/* FMSI */ +	GPIO_FN_FMSISLD_PORT1, /* FMSISLD Port 1/6 */ +	GPIO_FN_FMSISLD_PORT6, +	GPIO_FN_FMSIILR,	GPIO_FN_FMSIIBT, +	GPIO_FN_FMSIOLR,	GPIO_FN_FMSIOBT, +	GPIO_FN_FMSICK,		GPIO_FN_FMSOILR, +	GPIO_FN_FMSOIBT,	GPIO_FN_FMSOOLR, +	GPIO_FN_FMSOOBT,	GPIO_FN_FMSOSLD, +	GPIO_FN_FMSOCK, + +	/* SCIFA0 */ +	GPIO_FN_SCIFA0_SCK,	GPIO_FN_SCIFA0_CTS, +	GPIO_FN_SCIFA0_RTS,	GPIO_FN_SCIFA0_RXD, +	GPIO_FN_SCIFA0_TXD, + +	/* SCIFA1 */ +	GPIO_FN_SCIFA1_CTS,	GPIO_FN_SCIFA1_SCK, +	GPIO_FN_SCIFA1_RXD,	GPIO_FN_SCIFA1_TXD, +	GPIO_FN_SCIFA1_RTS, + +	/* SCIFA2 */ +	GPIO_FN_SCIFA2_SCK_PORT22, /* SCIFA2_SCK Port 22/199 */ +	GPIO_FN_SCIFA2_SCK_PORT199, +	GPIO_FN_SCIFA2_RXD,	GPIO_FN_SCIFA2_TXD, +	GPIO_FN_SCIFA2_CTS,	GPIO_FN_SCIFA2_RTS, + +	/* SCIFA3 */ +	GPIO_FN_SCIFA3_RTS_PORT105, /* MSEL5CR_8_0 */ +	GPIO_FN_SCIFA3_SCK_PORT116, +	GPIO_FN_SCIFA3_CTS_PORT117, +	GPIO_FN_SCIFA3_RXD_PORT174, +	GPIO_FN_SCIFA3_TXD_PORT175, + +	GPIO_FN_SCIFA3_RTS_PORT161, /* MSEL5CR_8_1 */ +	GPIO_FN_SCIFA3_SCK_PORT158, +	GPIO_FN_SCIFA3_CTS_PORT162, +	GPIO_FN_SCIFA3_RXD_PORT159, +	GPIO_FN_SCIFA3_TXD_PORT160, + +	/* SCIFA4 */ +	GPIO_FN_SCIFA4_RXD_PORT12, /* MSEL5CR[12:11] = 00 */ +	GPIO_FN_SCIFA4_TXD_PORT13, + +	GPIO_FN_SCIFA4_RXD_PORT204, /* MSEL5CR[12:11] = 01 */ +	GPIO_FN_SCIFA4_TXD_PORT203, + +	GPIO_FN_SCIFA4_RXD_PORT94, /* MSEL5CR[12:11] = 10 */ +	GPIO_FN_SCIFA4_TXD_PORT93, + +	GPIO_FN_SCIFA4_SCK_PORT21, /* SCIFA4_SCK Port 21/205 */ +	GPIO_FN_SCIFA4_SCK_PORT205, + +	/* SCIFA5 */ +	GPIO_FN_SCIFA5_TXD_PORT20, /* MSEL5CR[15:14] = 00 */ +	GPIO_FN_SCIFA5_RXD_PORT10, + +	GPIO_FN_SCIFA5_RXD_PORT207, /* MSEL5CR[15:14] = 01 */ +	GPIO_FN_SCIFA5_TXD_PORT208, + +	GPIO_FN_SCIFA5_TXD_PORT91, /* MSEL5CR[15:14] = 10 */ +	GPIO_FN_SCIFA5_RXD_PORT92, + +	GPIO_FN_SCIFA5_SCK_PORT23, /* SCIFA5_SCK Port 23/206 */ +	GPIO_FN_SCIFA5_SCK_PORT206, + +	/* SCIFA6 */ +	GPIO_FN_SCIFA6_SCK,	GPIO_FN_SCIFA6_RXD,	GPIO_FN_SCIFA6_TXD, + +	/* SCIFA7 */ +	GPIO_FN_SCIFA7_TXD,	GPIO_FN_SCIFA7_RXD, + +	/* SCIFAB */ +	GPIO_FN_SCIFB_SCK_PORT190, /* MSEL5CR_17_0 */ +	GPIO_FN_SCIFB_RXD_PORT191, +	GPIO_FN_SCIFB_TXD_PORT192, +	GPIO_FN_SCIFB_RTS_PORT186, +	GPIO_FN_SCIFB_CTS_PORT187, + +	GPIO_FN_SCIFB_SCK_PORT2, /* MSEL5CR_17_1 */ +	GPIO_FN_SCIFB_RXD_PORT3, +	GPIO_FN_SCIFB_TXD_PORT4, +	GPIO_FN_SCIFB_RTS_PORT172, +	GPIO_FN_SCIFB_CTS_PORT173, + +	/* LCD0 */ +	GPIO_FN_LCDC0_SELECT, +	GPIO_FN_LCD0_D0,	GPIO_FN_LCD0_D1,	GPIO_FN_LCD0_D2, +	GPIO_FN_LCD0_D3,	GPIO_FN_LCD0_D4,	GPIO_FN_LCD0_D5, +	GPIO_FN_LCD0_D6,	GPIO_FN_LCD0_D7,	GPIO_FN_LCD0_D8, +	GPIO_FN_LCD0_D9,	GPIO_FN_LCD0_D10,	GPIO_FN_LCD0_D11, +	GPIO_FN_LCD0_D12,	GPIO_FN_LCD0_D13,	GPIO_FN_LCD0_D14, +	GPIO_FN_LCD0_D15,	GPIO_FN_LCD0_D16,	GPIO_FN_LCD0_D17, +	GPIO_FN_LCD0_DON,	GPIO_FN_LCD0_VCPWC,	GPIO_FN_LCD0_VEPWC, + +	GPIO_FN_LCD0_DCK,	GPIO_FN_LCD0_VSYN, /* for RGB */ +	GPIO_FN_LCD0_HSYN,	GPIO_FN_LCD0_DISP, /* for RGB */ + +	GPIO_FN_LCD0_WR,	GPIO_FN_LCD0_RD, /* for SYS */ +	GPIO_FN_LCD0_CS,	GPIO_FN_LCD0_RS, /* for SYS */ + +	GPIO_FN_LCD0_D18_PORT163,	GPIO_FN_LCD0_D19_PORT162, +	GPIO_FN_LCD0_D20_PORT161,	GPIO_FN_LCD0_D21_PORT158, +	GPIO_FN_LCD0_D22_PORT160,	GPIO_FN_LCD0_D23_PORT159, +	GPIO_FN_LCD0_LCLK_PORT165,	 /* MSEL5CR_6_1 */ + +	GPIO_FN_LCD0_D18_PORT40,	GPIO_FN_LCD0_D19_PORT4, +	GPIO_FN_LCD0_D20_PORT3,		GPIO_FN_LCD0_D21_PORT2, +	GPIO_FN_LCD0_D22_PORT0,		GPIO_FN_LCD0_D23_PORT1, +	GPIO_FN_LCD0_LCLK_PORT102,	/* MSEL5CR_6_0 */ + +	/* LCD1 */ +	GPIO_FN_LCDC1_SELECT, +	GPIO_FN_LCD1_D0,	GPIO_FN_LCD1_D1,	GPIO_FN_LCD1_D2, +	GPIO_FN_LCD1_D3,	GPIO_FN_LCD1_D4,	GPIO_FN_LCD1_D5, +	GPIO_FN_LCD1_D6,	GPIO_FN_LCD1_D7,	GPIO_FN_LCD1_D8, +	GPIO_FN_LCD1_D9,	GPIO_FN_LCD1_D10,	GPIO_FN_LCD1_D11, +	GPIO_FN_LCD1_D12,	GPIO_FN_LCD1_D13,	GPIO_FN_LCD1_D14, +	GPIO_FN_LCD1_D15,	GPIO_FN_LCD1_D16,	GPIO_FN_LCD1_D17, +	GPIO_FN_LCD1_D18,	GPIO_FN_LCD1_D19,	GPIO_FN_LCD1_D20, +	GPIO_FN_LCD1_D21,	GPIO_FN_LCD1_D22,	GPIO_FN_LCD1_D23, +	GPIO_FN_LCD1_DON,	GPIO_FN_LCD1_VCPWC, +	GPIO_FN_LCD1_LCLK,	GPIO_FN_LCD1_VEPWC, + +	GPIO_FN_LCD1_DCK,	GPIO_FN_LCD1_VSYN, /* for RGB */ +	GPIO_FN_LCD1_HSYN,	GPIO_FN_LCD1_DISP, /* for RGB */ + +	GPIO_FN_LCD1_WR,	GPIO_FN_LCD1_RD, /* for SYS */ +	GPIO_FN_LCD1_CS,	GPIO_FN_LCD1_RS, /* for SYS */ + +	/* RSPI */ +	GPIO_FN_RSPI_SSL0_A,	GPIO_FN_RSPI_SSL1_A, +	GPIO_FN_RSPI_SSL2_A,	GPIO_FN_RSPI_SSL3_A, +	GPIO_FN_RSPI_MOSI_A,	GPIO_FN_RSPI_MISO_A, +	GPIO_FN_RSPI_CK_A, + +	/* VIO CKO */ +	GPIO_FN_VIO_CKO1, +	GPIO_FN_VIO_CKO2, +	GPIO_FN_VIO_CKO_1, +	GPIO_FN_VIO_CKO, + +	/* VIO0 */ +	GPIO_FN_VIO0_D0,	GPIO_FN_VIO0_D1,	GPIO_FN_VIO0_D2, +	GPIO_FN_VIO0_D3,	GPIO_FN_VIO0_D4,	GPIO_FN_VIO0_D5, +	GPIO_FN_VIO0_D6,	GPIO_FN_VIO0_D7,	GPIO_FN_VIO0_D8, +	GPIO_FN_VIO0_D9,	GPIO_FN_VIO0_D10,	GPIO_FN_VIO0_D11, +	GPIO_FN_VIO0_D12,	GPIO_FN_VIO0_VD,	GPIO_FN_VIO0_HD, +	GPIO_FN_VIO0_CLK,	GPIO_FN_VIO0_FIELD, + +	GPIO_FN_VIO0_D13_PORT26, /* MSEL5CR_27_0 */ +	GPIO_FN_VIO0_D14_PORT25, +	GPIO_FN_VIO0_D15_PORT24, + +	GPIO_FN_VIO0_D13_PORT22, /* MSEL5CR_27_1 */ +	GPIO_FN_VIO0_D14_PORT95, +	GPIO_FN_VIO0_D15_PORT96, + +	/* VIO1 */ +	GPIO_FN_VIO1_D0,	GPIO_FN_VIO1_D1,	GPIO_FN_VIO1_D2, +	GPIO_FN_VIO1_D3,	GPIO_FN_VIO1_D4,	GPIO_FN_VIO1_D5, +	GPIO_FN_VIO1_D6,	GPIO_FN_VIO1_D7,	GPIO_FN_VIO1_VD, +	GPIO_FN_VIO1_HD,	GPIO_FN_VIO1_CLK,	GPIO_FN_VIO1_FIELD, + +	/* TPU0 */ +	GPIO_FN_TPU0TO0,	GPIO_FN_TPU0TO1, +	GPIO_FN_TPU0TO3, +	GPIO_FN_TPU0TO2_PORT66, /* TPU0TO2 Port 66/202 */ +	GPIO_FN_TPU0TO2_PORT202, + +	/* SSP1 0 */ +	GPIO_FN_STP0_IPD0,	GPIO_FN_STP0_IPD1,	GPIO_FN_STP0_IPD2, +	GPIO_FN_STP0_IPD3,	GPIO_FN_STP0_IPD4,	GPIO_FN_STP0_IPD5, +	GPIO_FN_STP0_IPD6,	GPIO_FN_STP0_IPD7,	GPIO_FN_STP0_IPEN, +	GPIO_FN_STP0_IPCLK,	GPIO_FN_STP0_IPSYNC, + +	/* SSP1 1 */ +	GPIO_FN_STP1_IPD1,	GPIO_FN_STP1_IPD2,	GPIO_FN_STP1_IPD3, +	GPIO_FN_STP1_IPD4,	GPIO_FN_STP1_IPD5,	GPIO_FN_STP1_IPD6, +	GPIO_FN_STP1_IPD7,	GPIO_FN_STP1_IPCLK,	GPIO_FN_STP1_IPSYNC, + +	GPIO_FN_STP1_IPD0_PORT186, /* MSEL5CR_23_0 */ +	GPIO_FN_STP1_IPEN_PORT187, + +	GPIO_FN_STP1_IPD0_PORT194, /* MSEL5CR_23_1 */ +	GPIO_FN_STP1_IPEN_PORT193, + +	/* SIM */ +	GPIO_FN_SIM_RST,	GPIO_FN_SIM_CLK, +	GPIO_FN_SIM_D_PORT22, /* SIM_D  Port 22/199 */ +	GPIO_FN_SIM_D_PORT199, + +	/* SDHI0 */ +	GPIO_FN_SDHI0_D0,	GPIO_FN_SDHI0_D1,	GPIO_FN_SDHI0_D2, +	GPIO_FN_SDHI0_D3,	GPIO_FN_SDHI0_CD,	GPIO_FN_SDHI0_WP, +	GPIO_FN_SDHI0_CMD,	GPIO_FN_SDHI0_CLK, + +	/* SDHI1 */ +	GPIO_FN_SDHI1_D0,	GPIO_FN_SDHI1_D1,	GPIO_FN_SDHI1_D2, +	GPIO_FN_SDHI1_D3,	GPIO_FN_SDHI1_CD,	GPIO_FN_SDHI1_WP, +	GPIO_FN_SDHI1_CMD,	GPIO_FN_SDHI1_CLK, + +	/* SDHI2 */ +	GPIO_FN_SDHI2_D0,	GPIO_FN_SDHI2_D1,	GPIO_FN_SDHI2_D2, +	GPIO_FN_SDHI2_D3,	GPIO_FN_SDHI2_CLK,	GPIO_FN_SDHI2_CMD, + +	GPIO_FN_SDHI2_CD_PORT24, /* MSEL5CR_19_0 */ +	GPIO_FN_SDHI2_WP_PORT25, + +	GPIO_FN_SDHI2_WP_PORT177, /* MSEL5CR_19_1 */ +	GPIO_FN_SDHI2_CD_PORT202, + +	/* MSIOF2 */ +	GPIO_FN_MSIOF2_TXD,	GPIO_FN_MSIOF2_RXD,	GPIO_FN_MSIOF2_TSCK, +	GPIO_FN_MSIOF2_SS2,	GPIO_FN_MSIOF2_TSYNC,	GPIO_FN_MSIOF2_SS1, +	GPIO_FN_MSIOF2_MCK1,	GPIO_FN_MSIOF2_MCK0,	GPIO_FN_MSIOF2_RSYNC, +	GPIO_FN_MSIOF2_RSCK, + +	/* KEYSC */ +	GPIO_FN_KEYIN4,		GPIO_FN_KEYIN5, +	GPIO_FN_KEYIN6,		GPIO_FN_KEYIN7, +	GPIO_FN_KEYOUT0,	GPIO_FN_KEYOUT1,	GPIO_FN_KEYOUT2, +	GPIO_FN_KEYOUT3,	GPIO_FN_KEYOUT4,	GPIO_FN_KEYOUT5, +	GPIO_FN_KEYOUT6,	GPIO_FN_KEYOUT7, + +	GPIO_FN_KEYIN0_PORT43, /* MSEL4CR_18_0 */ +	GPIO_FN_KEYIN1_PORT44, +	GPIO_FN_KEYIN2_PORT45, +	GPIO_FN_KEYIN3_PORT46, + +	GPIO_FN_KEYIN0_PORT58, /* MSEL4CR_18_1 */ +	GPIO_FN_KEYIN1_PORT57, +	GPIO_FN_KEYIN2_PORT56, +	GPIO_FN_KEYIN3_PORT55, + +	/* VOU */ +	GPIO_FN_DV_D0,	GPIO_FN_DV_D1,	GPIO_FN_DV_D2,	GPIO_FN_DV_D3, +	GPIO_FN_DV_D4,	GPIO_FN_DV_D5,	GPIO_FN_DV_D6,	GPIO_FN_DV_D7, +	GPIO_FN_DV_D8,	GPIO_FN_DV_D9,	GPIO_FN_DV_D10,	GPIO_FN_DV_D11, +	GPIO_FN_DV_D12,	GPIO_FN_DV_D13,	GPIO_FN_DV_D14,	GPIO_FN_DV_D15, +	GPIO_FN_DV_CLK, +	GPIO_FN_DV_VSYNC, +	GPIO_FN_DV_HSYNC, + +	/* MEMC */ +	GPIO_FN_MEMC_AD0,	GPIO_FN_MEMC_AD1,	GPIO_FN_MEMC_AD2, +	GPIO_FN_MEMC_AD3,	GPIO_FN_MEMC_AD4,	GPIO_FN_MEMC_AD5, +	GPIO_FN_MEMC_AD6,	GPIO_FN_MEMC_AD7,	GPIO_FN_MEMC_AD8, +	GPIO_FN_MEMC_AD9,	GPIO_FN_MEMC_AD10,	GPIO_FN_MEMC_AD11, +	GPIO_FN_MEMC_AD12,	GPIO_FN_MEMC_AD13,	GPIO_FN_MEMC_AD14, +	GPIO_FN_MEMC_AD15,	GPIO_FN_MEMC_CS0,	GPIO_FN_MEMC_INT, +	GPIO_FN_MEMC_NWE,	GPIO_FN_MEMC_NOE, + +	GPIO_FN_MEMC_CS1, /* MSEL4CR_6_0 */ +	GPIO_FN_MEMC_ADV, +	GPIO_FN_MEMC_WAIT, +	GPIO_FN_MEMC_BUSCLK, + +	GPIO_FN_MEMC_A1, /* MSEL4CR_6_1 */ +	GPIO_FN_MEMC_DREQ0, +	GPIO_FN_MEMC_DREQ1, +	GPIO_FN_MEMC_A0, + +	/* MMC */ +	GPIO_FN_MMC0_D0_PORT68,		GPIO_FN_MMC0_D1_PORT69, +	GPIO_FN_MMC0_D2_PORT70,		GPIO_FN_MMC0_D3_PORT71, +	GPIO_FN_MMC0_D4_PORT72,		GPIO_FN_MMC0_D5_PORT73, +	GPIO_FN_MMC0_D6_PORT74,		GPIO_FN_MMC0_D7_PORT75, +	GPIO_FN_MMC0_CLK_PORT66, +	GPIO_FN_MMC0_CMD_PORT67,	/* MSEL4CR_15_0 */ + +	GPIO_FN_MMC1_D0_PORT149,	GPIO_FN_MMC1_D1_PORT148, +	GPIO_FN_MMC1_D2_PORT147,	GPIO_FN_MMC1_D3_PORT146, +	GPIO_FN_MMC1_D4_PORT145,	GPIO_FN_MMC1_D5_PORT144, +	GPIO_FN_MMC1_D6_PORT143,	GPIO_FN_MMC1_D7_PORT142, +	GPIO_FN_MMC1_CLK_PORT103, +	GPIO_FN_MMC1_CMD_PORT104,	/* MSEL4CR_15_1 */ + +	/* MSIOF0 */ +	GPIO_FN_MSIOF0_SS1,	GPIO_FN_MSIOF0_SS2, +	GPIO_FN_MSIOF0_RXD,	GPIO_FN_MSIOF0_TXD, +	GPIO_FN_MSIOF0_MCK0,	GPIO_FN_MSIOF0_MCK1, +	GPIO_FN_MSIOF0_RSYNC,	GPIO_FN_MSIOF0_RSCK, +	GPIO_FN_MSIOF0_TSCK,	GPIO_FN_MSIOF0_TSYNC, + +	/* MSIOF1 */ +	GPIO_FN_MSIOF1_RSCK,	GPIO_FN_MSIOF1_RSYNC, +	GPIO_FN_MSIOF1_MCK0,	GPIO_FN_MSIOF1_MCK1, + +	GPIO_FN_MSIOF1_SS2_PORT116,	GPIO_FN_MSIOF1_SS1_PORT117, +	GPIO_FN_MSIOF1_RXD_PORT118,	GPIO_FN_MSIOF1_TXD_PORT119, +	GPIO_FN_MSIOF1_TSYNC_PORT120, +	GPIO_FN_MSIOF1_TSCK_PORT121,	/* MSEL4CR_10_0 */ + +	GPIO_FN_MSIOF1_SS1_PORT67,	GPIO_FN_MSIOF1_TSCK_PORT72, +	GPIO_FN_MSIOF1_TSYNC_PORT73,	GPIO_FN_MSIOF1_TXD_PORT74, +	GPIO_FN_MSIOF1_RXD_PORT75, +	GPIO_FN_MSIOF1_SS2_PORT202,	/* MSEL4CR_10_1 */ + +	/* GPIO */ +	GPIO_FN_GPO0,	GPIO_FN_GPI0, +	GPIO_FN_GPO1,	GPIO_FN_GPI1, + +	/* USB0 */ +	GPIO_FN_USB0_OCI,	GPIO_FN_USB0_PPON,	GPIO_FN_VBUS, + +	/* USB1 */ +	GPIO_FN_USB1_OCI,	GPIO_FN_USB1_PPON, + +	/* BBIF1 */ +	GPIO_FN_BBIF1_RXD,	GPIO_FN_BBIF1_TXD,	GPIO_FN_BBIF1_TSYNC, +	GPIO_FN_BBIF1_TSCK,	GPIO_FN_BBIF1_RSCK,	GPIO_FN_BBIF1_RSYNC, +	GPIO_FN_BBIF1_FLOW,	GPIO_FN_BBIF1_RX_FLOW_N, + +	/* BBIF2 */ +	GPIO_FN_BBIF2_TXD2_PORT5, /* MSEL5CR_0_0 */ +	GPIO_FN_BBIF2_RXD2_PORT60, +	GPIO_FN_BBIF2_TSYNC2_PORT6, +	GPIO_FN_BBIF2_TSCK2_PORT59, + +	GPIO_FN_BBIF2_RXD2_PORT90, /* MSEL5CR_0_1 */ +	GPIO_FN_BBIF2_TXD2_PORT183, +	GPIO_FN_BBIF2_TSCK2_PORT89, +	GPIO_FN_BBIF2_TSYNC2_PORT184, + +	/* BSC / FLCTL / PCMCIA */ +	GPIO_FN_CS0,	GPIO_FN_CS2,	GPIO_FN_CS4, +	GPIO_FN_CS5B,	GPIO_FN_CS6A, +	GPIO_FN_CS5A_PORT105, /* CS5A PORT 19/105 */ +	GPIO_FN_CS5A_PORT19, +	GPIO_FN_IOIS16, /* ? */ + +	GPIO_FN_A0,	GPIO_FN_A1,	GPIO_FN_A2,	GPIO_FN_A3, +	GPIO_FN_A4_FOE,		/* share with FLCTL */ +	GPIO_FN_A5_FCDE,	/* share with FLCTL */ +	GPIO_FN_A6,	GPIO_FN_A7,	GPIO_FN_A8,	GPIO_FN_A9, +	GPIO_FN_A10,	GPIO_FN_A11,	GPIO_FN_A12,	GPIO_FN_A13, +	GPIO_FN_A14,	GPIO_FN_A15,	GPIO_FN_A16,	GPIO_FN_A17, +	GPIO_FN_A18,	GPIO_FN_A19,	GPIO_FN_A20,	GPIO_FN_A21, +	GPIO_FN_A22,	GPIO_FN_A23,	GPIO_FN_A24,	GPIO_FN_A25, +	GPIO_FN_A26, + +	GPIO_FN_D0_NAF0,	GPIO_FN_D1_NAF1,	/* share with FLCTL */ +	GPIO_FN_D2_NAF2,	GPIO_FN_D3_NAF3,	/* share with FLCTL */ +	GPIO_FN_D4_NAF4,	GPIO_FN_D5_NAF5,	/* share with FLCTL */ +	GPIO_FN_D6_NAF6,	GPIO_FN_D7_NAF7,	/* share with FLCTL */ +	GPIO_FN_D8_NAF8,	GPIO_FN_D9_NAF9,	/* share with FLCTL */ +	GPIO_FN_D10_NAF10,	GPIO_FN_D11_NAF11,	/* share with FLCTL */ +	GPIO_FN_D12_NAF12,	GPIO_FN_D13_NAF13,	/* share with FLCTL */ +	GPIO_FN_D14_NAF14,	GPIO_FN_D15_NAF15,	/* share with FLCTL */ + +	GPIO_FN_D16,	GPIO_FN_D17,	GPIO_FN_D18,	GPIO_FN_D19, +	GPIO_FN_D20,	GPIO_FN_D21,	GPIO_FN_D22,	GPIO_FN_D23, +	GPIO_FN_D24,	GPIO_FN_D25,	GPIO_FN_D26,	GPIO_FN_D27, +	GPIO_FN_D28,	GPIO_FN_D29,	GPIO_FN_D30,	GPIO_FN_D31, + +	GPIO_FN_WE0_FWE,	/* share with FLCTL */ +	GPIO_FN_WE1, +	GPIO_FN_WE2_ICIORD,	/* share with PCMCIA */ +	GPIO_FN_WE3_ICIOWR,	/* share with PCMCIA */ +	GPIO_FN_CKO,	GPIO_FN_BS,	GPIO_FN_RDWR, +	GPIO_FN_RD_FSC,		/* share with FLCTL */ +	GPIO_FN_WAIT_PORT177,	/* WAIT Port 90/177 */ +	GPIO_FN_WAIT_PORT90, + +	GPIO_FN_FCE0,	GPIO_FN_FCE1,	GPIO_FN_FRB, /* FLCTL */ + +	/* IRDA */ +	GPIO_FN_IRDA_FIRSEL,	GPIO_FN_IRDA_IN,	GPIO_FN_IRDA_OUT, + +	/* ATAPI */ +	GPIO_FN_IDE_D0,		GPIO_FN_IDE_D1,		GPIO_FN_IDE_D2, +	GPIO_FN_IDE_D3,		GPIO_FN_IDE_D4,		GPIO_FN_IDE_D5, +	GPIO_FN_IDE_D6,		GPIO_FN_IDE_D7,		GPIO_FN_IDE_D8, +	GPIO_FN_IDE_D9,		GPIO_FN_IDE_D10,	GPIO_FN_IDE_D11, +	GPIO_FN_IDE_D12,	GPIO_FN_IDE_D13,	GPIO_FN_IDE_D14, +	GPIO_FN_IDE_D15,	GPIO_FN_IDE_A0,		GPIO_FN_IDE_A1, +	GPIO_FN_IDE_A2,		GPIO_FN_IDE_CS0,	GPIO_FN_IDE_CS1, +	GPIO_FN_IDE_IOWR,	GPIO_FN_IDE_IORD,	GPIO_FN_IDE_IORDY, +	GPIO_FN_IDE_INT,	GPIO_FN_IDE_RST,	GPIO_FN_IDE_DIRECTION, +	GPIO_FN_IDE_EXBUF_ENB,	GPIO_FN_IDE_IODACK,	GPIO_FN_IDE_IODREQ, + +	/* RMII */ +	GPIO_FN_RMII_CRS_DV,	GPIO_FN_RMII_RX_ER,	GPIO_FN_RMII_RXD0, +	GPIO_FN_RMII_RXD1,	GPIO_FN_RMII_TX_EN,	GPIO_FN_RMII_TXD0, +	GPIO_FN_RMII_MDC,	GPIO_FN_RMII_TXD1,	GPIO_FN_RMII_MDIO, +	GPIO_FN_RMII_REF50CK,	/* for RMII */ +	GPIO_FN_RMII_REF125CK,	/* for GMII */ + +	/* GEther */ +	GPIO_FN_ET_TX_CLK,	GPIO_FN_ET_TX_EN,	GPIO_FN_ET_ETXD0, +	GPIO_FN_ET_ETXD1,	GPIO_FN_ET_ETXD2,	GPIO_FN_ET_ETXD3, +	GPIO_FN_ET_ETXD4,	GPIO_FN_ET_ETXD5, /* for GEther */ +	GPIO_FN_ET_ETXD6,	GPIO_FN_ET_ETXD7, /* for GEther */ +	GPIO_FN_ET_COL,		GPIO_FN_ET_TX_ER, +	GPIO_FN_ET_RX_CLK,	GPIO_FN_ET_RX_DV, +	GPIO_FN_ET_ERXD0,	GPIO_FN_ET_ERXD1, +	GPIO_FN_ET_ERXD2,	GPIO_FN_ET_ERXD3, +	GPIO_FN_ET_ERXD4,	GPIO_FN_ET_ERXD5, /* for GEther */ +	GPIO_FN_ET_ERXD6,	GPIO_FN_ET_ERXD7, /* for GEther */ +	GPIO_FN_ET_RX_ER,	GPIO_FN_ET_CRS, +	GPIO_FN_ET_MDC,		GPIO_FN_ET_MDIO, +	GPIO_FN_ET_LINK,	GPIO_FN_ET_PHY_INT, +	GPIO_FN_ET_WOL,		GPIO_FN_ET_GTX_CLK, + +	/* DMA0 */ +	GPIO_FN_DREQ0,		GPIO_FN_DACK0, + +	/* DMA1 */ +	GPIO_FN_DREQ1,		GPIO_FN_DACK1, + +	/* SYSC */ +	GPIO_FN_RESETOUTS, +	GPIO_FN_RESETP_PULLUP, +	GPIO_FN_RESETP_PLAIN, + +	/* SDENC */ +	GPIO_FN_SDENC_CPG, +	GPIO_FN_SDENC_DV_CLKI, + +	/* IRREM */ +	GPIO_FN_IROUT, + +	/* DEBUG */ +	GPIO_FN_EDEBGREQ_PULLDOWN, +	GPIO_FN_EDEBGREQ_PULLUP, + +	GPIO_FN_TRACEAUD_FROM_VIO, +	GPIO_FN_TRACEAUD_FROM_LCDC0, +	GPIO_FN_TRACEAUD_FROM_MEMC, +}; + +#endif /* __ASM_R8A7740_H__ */ diff --git a/arch/arm/include/asm/arch-rmobile/r8a7740.h b/arch/arm/include/asm/arch-rmobile/r8a7740.h new file mode 100644 index 000000000..8f179505d --- /dev/null +++ b/arch/arm/include/asm/arch-rmobile/r8a7740.h @@ -0,0 +1,287 @@ +/* + * Copyright (C) 2012 Renesas Solutions Corp. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA  02110-1301, USA. + */ + +#ifndef __ASM_ARCH_R8A7740_H +#define __ASM_ARCH_R8A7740_H + +/* + * R8A7740 I/O Addresses + */ + +#define MERAM_BASE	0xE5580000 +#define DDRP_BASE	0xC12A0000 +#define HPB_BASE	0xE6000000 +#define RWDT0_BASE	0xE6020000 +#define RWDT1_BASE	0xE6030000 +#define GPIO_BASE	0xE6050000 +#define CMT1_BASE	0xE6138000 +#define CPG_BASE	0xE6150000 +#define SYSC_BASE	0xE6180000 +#define SDHI0_BASE	0xE6850000 +#define SDHI1_BASE	0xE6860000 +#define MMCIF_BASE	0xE6BD0000 +#define SCIF5_BASE	0xE6CB0000 +#define SCIF6_BASE	0xE6CC0000 +#define DBSC_BASE	0xFE400000 +#define BSC_BASE	0xFEC10000 +#define I2C0_BASE	0xFFF20000 +#define I2C1_BASE	0xE6C20000 +#define TMU_BASE	0xFFF80000 + +#ifndef __ASSEMBLY__ +#include <asm/types.h> + +/* RWDT */ +struct r8a7740_rwdt { +	u16 rwtcnt0;	/* 0x00 */ +	u16 dummy0;		/* 0x02 */ +	u16 rwtcsra0;	/* 0x04 */ +	u16 dummy1;		/* 0x06 */ +	u16 rwtcsrb0;	/* 0x08 */ +	u16 dummy2;		/* 0x0A */ +}; + +/* HPB Semaphore Control Registers */ +struct r8a7740_hpb { +	u32 hpbctrl0; +	u32 hpbctrl1; +	u32 hpbctrl2; +	u32 cccr; +	u32 dummy0; /* 0x20 */ +	u32 hpbctrl4; +	u32 hpbctrl5; +}; + +/* CPG */ +struct r8a7740_cpg { +	u32 frqcra; +	u32 frqcrb; +	u32 vclkcr1; +	u32 vclkcr2; +	u32 fmsickcr; +	u32 fmsockcr; +	u32 fsiackcr; +	u32 dummy0; /* 0x1c */ +	u32 rtstbcr; +	u32 systbcr; +	u32 pllc01cr; +	u32 pllc2cr; +	u32 mstpsr0; +	u32 dummy1; /* 0x34 */ +	u32 mstpsr1; +	u32 mstpsr5; +	u32 mstpsr2; +	u32 dummy2; /* 0x44 */ +	u32 mstpsr3; +	u32 mstpsr4; +	u32 dummy3; /* 0x50 */ +	u32 astat; +	u32 dummy4[4]; /* 0x58 .. 0x64 */ +	u32 ztrckcr; +	u32 dummy5[5]; /* 0x6c .. 0x7c */ +	u32 subckcr; +	u32 spuckcr; +	u32 vouckcr; +	u32 usbckcr; +	u32 dummy6[3]; /* 0x90 .. 0x98 */ +	u32 stprckcr; +	u32 srcr0; +	u32 dummy7; /* 0xa4 */ +	u32 srcr1; +	u32 dummy8; /* 0xac */ +	u32 srcr2; +	u32 dummy9; /* 0xb4 */ +	u32 srcr3; +	u32 srcr4; +	u32 dummy10; /* 0xc0 */ +	u32 srcr5; +	u32 pllc01stpcr; +	u32 dummy11[5]; /* 0xcc .. 0xdc */ +	u32 frqcrc; +	u32 frqcrd; +	u32 dummy12[10]; /* 0xe8 .. 0x10c */ +	u32 rmstpcr0; +	u32 rmstpcr1; +	u32 rmstpcr2; +	u32 rmstpcr3; +	u32 rmstpcr4; +	u32 rmstpcr5; +	u32 dummy13[2]; /* 0x128 .. 0x12c */ +	u32 smstpcr0; +	u32 smstpcr1; +	u32 smstpcr2; +	u32 smstpcr3; +	u32 smstpcr4; +	u32 smstpcr5; +}; + +/* BSC */ +struct r8a7740_bsc { +	u32 cmncr; +	u32 cs0bcr; +	u32 cs2bcr; +	u32 dummy0; /* 0x0c */ +	u32 cs4bcr; +	u32 cs5abcr; +	u32 cs5bbcr; +	u32 cs6abcr; +	u32 dummy1; /* 0x20 */ +	u32 cs0wcr; +	u32 cs2wcr; +	u32 dummy2; /* 0x2c */ +	u32 cs4wcr; +	u32 cs5awcr; +	u32 cs5bwcr; +	u32 cs6awcr; +	u32 dummy3[5]; /* 0x40 .. 0x50 */ +	u32 rbwtcnt; +	u32 busycr; +	u32 dummy4[5]; /* 0x5c .. 0x6c */ +	u32 bromtimcr; +	u32 dummy5[7]; /* 0x74 .. 0x8c */ +	u32 bptcr00; +	u32 bptcr01; +	u32 bptcr02; +	u32 bptcr03; +	u32 bptcr04; +	u32 bptcr05; +	u32 bptcr06; +	u32 bptcr07; +	u32 bptcr08; +	u32 bptcr09; +	u32 bptcr10; +	u32 bptcr11; +	u32 bptcr12; +	u32 bptcr13; +	u32 bptcr14; +	u32 bptcr15; +	u32 bptcr16; +	u32 bptcr17; +	u32 bptcr18; +	u32 bptcr19; +	u32 bptcr20; +	u32 bptcr21; +	u32 bptcr22; +	u32 bptcr23; +	u32 bptcr24; +	u32 bptcr25; +	u32 bptcr26; +	u32 bptcr27; +	u32 bptcr28; +	u32 bptcr29; +	u32 bptcr30; +	u32 bptcr31; +	u32 bswcr; +	u32 dummy6[68]; /* 0x114 .. 0x220 */ +	u32 cs0wcr2; +	u32 cs2wcr2; +	u32 dummy7; /* 0x22c */ +	u32 cs4wcr2; +}; + +#define CS0WCR2 0xFEC10224 +#define CS2WCR2 0xFEC10228 +#define CS4WCR2 0xFEC10230 + +/* DDRP */ +struct r8a7740_ddrp { +	u32 funcctrl; +	u32 dllctrl; +	u32 zqcalctrl; +	u32 zqodtctrl; +	u32 rdctrl; +	u32 rdtmg; +	u32 fifoinit; +	u32 outctrl; +	u32 dummy0[50]; /* 0x20 .. 0xe4 */ +	u32 dqcalofs1; +	u32 dqcalofs2; +	u32 dummy1[2]; /* 0xf0 .. 0xf4 */ +	u32 dqcalexp; +}; + +#define DDRPNCNT 0xE605803C +#define DDRVREFCNT 0xE61500EC + +/* DBSC */ +struct r8a7740_dbsc { +	u32 dummy0; +	u32 dbsvcr; +	u32 dbstate0; +	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 dbadj1; +	u32 dbadj2; +	u32 dummy6[5]; /* 0xcc .. 0xdc */ +	u32 dbrfcnf0; +	u32 dbrfcnf1; +	u32 dbrfcnf2; +	u32 dbrfcnf3; +	u32 dummy7; /* 0xf0 */ +	u32 dbcalcnf; +	u32 dbcaltr; +	u32 dummy8; /* 0xfc */; +	u32 dbrnk0; +	u32 dummy9[31]; /* 0x104 .. 0x17C */ +	u32 dbpdncnf; +	u32 dummy10[7]; /* 0x184 .. 0x19C */ +	u32 dbmrrdr; +	u32 dummy11[39]; /* 0x1A4 .. 0x23C */ +	u32 dbdfistat; +	u32 dbdficnt; +	u32 dummy12[46]; /* 0x248 .. 0x2FC */ +	u32 dbbs0cnt0; +	u32 dbbs0cnt1; +}; + +#endif + +#endif /* __ASM_ARCH_R8A7740_H */ diff --git a/arch/arm/include/asm/arch-rmobile/rmobile.h b/arch/arm/include/asm/arch-rmobile/rmobile.h new file mode 100644 index 000000000..ac175617c --- /dev/null +++ b/arch/arm/include/asm/arch-rmobile/rmobile.h @@ -0,0 +1,14 @@ +#ifndef __ASM_ARCH_RMOBILE_H +#define __ASM_ARCH_RMOBILE_H + +#if defined(CONFIG_RMOBILE) +#if defined(CONFIG_SH73A0) +#include <asm/arch/sh73a0.h> +#elif defined(CONFIG_R8A7740) +#include <asm/arch/r8a7740.h> +#else +#error "SOC Name not defined" +#endif +#endif /* CONFIG_RMOBILE */ + +#endif /* __ASM_ARCH_RMOBILE_H */ diff --git a/arch/arm/include/asm/arch-rmobile/sh73a0-gpio.h b/arch/arm/include/asm/arch-rmobile/sh73a0-gpio.h new file mode 100644 index 000000000..398e2c109 --- /dev/null +++ b/arch/arm/include/asm/arch-rmobile/sh73a0-gpio.h @@ -0,0 +1,553 @@ +#ifndef __ASM_SH73A0_H__ +#define __ASM_SH73A0_H__ + +/* Pin Function Controller: + * GPIO_FN_xx - GPIO used to select pin function and MSEL switch + * GPIO_PORTxx - GPIO mapped to real I/O pin on CPU + */ +enum { +	/* Hardware manual Table 25-1 (GPIO) */ +	GPIO_PORT0, GPIO_PORT1, GPIO_PORT2, GPIO_PORT3, GPIO_PORT4, +	GPIO_PORT5, GPIO_PORT6, GPIO_PORT7, GPIO_PORT8, GPIO_PORT9, + +	GPIO_PORT10, GPIO_PORT11, GPIO_PORT12, GPIO_PORT13, GPIO_PORT14, +	GPIO_PORT15, GPIO_PORT16, GPIO_PORT17, GPIO_PORT18, GPIO_PORT19, + +	GPIO_PORT20, GPIO_PORT21, GPIO_PORT22, GPIO_PORT23, GPIO_PORT24, +	GPIO_PORT25, GPIO_PORT26, GPIO_PORT27, GPIO_PORT28, GPIO_PORT29, + +	GPIO_PORT30, GPIO_PORT31, GPIO_PORT32, GPIO_PORT33, GPIO_PORT34, +	GPIO_PORT35, GPIO_PORT36, GPIO_PORT37, GPIO_PORT38, GPIO_PORT39, + +	GPIO_PORT40, GPIO_PORT41, GPIO_PORT42, GPIO_PORT43, GPIO_PORT44, +	GPIO_PORT45, GPIO_PORT46, GPIO_PORT47, GPIO_PORT48, GPIO_PORT49, + +	GPIO_PORT50, GPIO_PORT51, GPIO_PORT52, GPIO_PORT53, GPIO_PORT54, +	GPIO_PORT55, GPIO_PORT56, GPIO_PORT57, GPIO_PORT58, GPIO_PORT59, + +	GPIO_PORT60, GPIO_PORT61, GPIO_PORT62, GPIO_PORT63, GPIO_PORT64, +	GPIO_PORT65, GPIO_PORT66, GPIO_PORT67, GPIO_PORT68, GPIO_PORT69, + +	GPIO_PORT70, GPIO_PORT71, GPIO_PORT72, GPIO_PORT73, GPIO_PORT74, +	GPIO_PORT75, GPIO_PORT76, GPIO_PORT77, GPIO_PORT78, GPIO_PORT79, + +	GPIO_PORT80, GPIO_PORT81, GPIO_PORT82, GPIO_PORT83, GPIO_PORT84, +	GPIO_PORT85, GPIO_PORT86, GPIO_PORT87, GPIO_PORT88, GPIO_PORT89, + +	GPIO_PORT90, GPIO_PORT91, GPIO_PORT92, GPIO_PORT93, GPIO_PORT94, +	GPIO_PORT95, GPIO_PORT96, GPIO_PORT97, GPIO_PORT98, GPIO_PORT99, + +	GPIO_PORT100, GPIO_PORT101, GPIO_PORT102, GPIO_PORT103, GPIO_PORT104, +	GPIO_PORT105, GPIO_PORT106, GPIO_PORT107, GPIO_PORT108, GPIO_PORT109, + +	GPIO_PORT110, GPIO_PORT111, GPIO_PORT112, GPIO_PORT113, GPIO_PORT114, +	GPIO_PORT115, GPIO_PORT116, GPIO_PORT117, GPIO_PORT118, + +	GPIO_PORT128, GPIO_PORT129, + +	GPIO_PORT130, GPIO_PORT131, GPIO_PORT132, GPIO_PORT133, GPIO_PORT134, +	GPIO_PORT135, GPIO_PORT136, GPIO_PORT137, GPIO_PORT138, GPIO_PORT139, + +	GPIO_PORT140, GPIO_PORT141, GPIO_PORT142, GPIO_PORT143, GPIO_PORT144, +	GPIO_PORT145, GPIO_PORT146, GPIO_PORT147, GPIO_PORT148, GPIO_PORT149, + +	GPIO_PORT150, GPIO_PORT151, GPIO_PORT152, GPIO_PORT153, GPIO_PORT154, +	GPIO_PORT155, GPIO_PORT156, GPIO_PORT157, GPIO_PORT158, GPIO_PORT159, + +	GPIO_PORT160, GPIO_PORT161, GPIO_PORT162, GPIO_PORT163, GPIO_PORT164, + +	GPIO_PORT192, GPIO_PORT193, GPIO_PORT194, +	GPIO_PORT195, GPIO_PORT196, GPIO_PORT197, GPIO_PORT198, GPIO_PORT199, + +	GPIO_PORT200, GPIO_PORT201, GPIO_PORT202, GPIO_PORT203, GPIO_PORT204, +	GPIO_PORT205, GPIO_PORT206, GPIO_PORT207, GPIO_PORT208, GPIO_PORT209, + +	GPIO_PORT210, GPIO_PORT211, GPIO_PORT212, GPIO_PORT213, GPIO_PORT214, +	GPIO_PORT215, GPIO_PORT216, GPIO_PORT217, GPIO_PORT218, GPIO_PORT219, + +	GPIO_PORT220, GPIO_PORT221, GPIO_PORT222, GPIO_PORT223, GPIO_PORT224, +	GPIO_PORT225, GPIO_PORT226, GPIO_PORT227, GPIO_PORT228, GPIO_PORT229, + +	GPIO_PORT230, GPIO_PORT231, GPIO_PORT232, GPIO_PORT233, GPIO_PORT234, +	GPIO_PORT235, GPIO_PORT236, GPIO_PORT237, GPIO_PORT238, GPIO_PORT239, + +	GPIO_PORT240, GPIO_PORT241, GPIO_PORT242, GPIO_PORT243, GPIO_PORT244, +	GPIO_PORT245, GPIO_PORT246, GPIO_PORT247, GPIO_PORT248, GPIO_PORT249, + +	GPIO_PORT250, GPIO_PORT251, GPIO_PORT252, GPIO_PORT253, GPIO_PORT254, +	GPIO_PORT255, GPIO_PORT256, GPIO_PORT257, GPIO_PORT258, GPIO_PORT259, + +	GPIO_PORT260, GPIO_PORT261, GPIO_PORT262, GPIO_PORT263, GPIO_PORT264, +	GPIO_PORT265, GPIO_PORT266, GPIO_PORT267, GPIO_PORT268, GPIO_PORT269, + +	GPIO_PORT270, GPIO_PORT271, GPIO_PORT272, GPIO_PORT273, GPIO_PORT274, +	GPIO_PORT275, GPIO_PORT276, GPIO_PORT277, GPIO_PORT278, GPIO_PORT279, + +	GPIO_PORT280, GPIO_PORT281, GPIO_PORT282, + +	GPIO_PORT288, GPIO_PORT289, + +	GPIO_PORT290, GPIO_PORT291, GPIO_PORT292, GPIO_PORT293, GPIO_PORT294, +	GPIO_PORT295, GPIO_PORT296, GPIO_PORT297, GPIO_PORT298, GPIO_PORT299, + +	GPIO_PORT300, GPIO_PORT301, GPIO_PORT302, GPIO_PORT303, GPIO_PORT304, +	GPIO_PORT305, GPIO_PORT306, GPIO_PORT307, GPIO_PORT308, GPIO_PORT309, + +	/* Table 25-1 (Function 0-7) */ +	GPIO_FN_VBUS_0, +	GPIO_FN_GPI0, +	GPIO_FN_GPI1, +	GPIO_FN_GPI2, +	GPIO_FN_GPI3, +	GPIO_FN_GPI4, +	GPIO_FN_GPI5, +	GPIO_FN_GPI6, +	GPIO_FN_GPI7, +	GPIO_FN_SCIFA7_RXD, +	GPIO_FN_SCIFA7_CTS_, +	GPIO_FN_GPO7, GPIO_FN_MFG0_OUT2, +	GPIO_FN_GPO6, GPIO_FN_MFG1_OUT2, +	GPIO_FN_GPO5, GPIO_FN_SCIFA0_SCK, GPIO_FN_FSICOSLDT3, \ +	GPIO_FN_PORT16_VIO_CKOR, +	GPIO_FN_SCIFA0_TXD, +	GPIO_FN_SCIFA7_TXD, +	GPIO_FN_SCIFA7_RTS_, GPIO_FN_PORT19_VIO_CKO2, +	GPIO_FN_GPO0, +	GPIO_FN_GPO1, +	GPIO_FN_GPO2, GPIO_FN_STATUS0, +	GPIO_FN_GPO3, GPIO_FN_STATUS1, +	GPIO_FN_GPO4, GPIO_FN_STATUS2, +	GPIO_FN_VINT, +	GPIO_FN_TCKON, +	GPIO_FN_XDVFS1, GPIO_FN_PORT27_I2C_SCL2, GPIO_FN_PORT27_I2C_SCL3, \ +	GPIO_FN_MFG0_OUT1, GPIO_FN_PORT27_IROUT, +	GPIO_FN_XDVFS2, GPIO_FN_PORT28_I2C_SDA2, GPIO_FN_PORT28_I2C_SDA3, \ +	GPIO_FN_PORT28_TPU1TO1, +	GPIO_FN_SIM_RST, GPIO_FN_PORT29_TPU1TO1, +	GPIO_FN_SIM_CLK, GPIO_FN_PORT30_VIO_CKOR, +	GPIO_FN_SIM_D, GPIO_FN_PORT31_IROUT, +	GPIO_FN_SCIFA4_TXD, +	GPIO_FN_SCIFA4_RXD, GPIO_FN_XWUP, +	GPIO_FN_SCIFA4_RTS_, +	GPIO_FN_SCIFA4_CTS_, +	GPIO_FN_FSIBOBT, GPIO_FN_FSIBIBT, +	GPIO_FN_FSIBOLR, GPIO_FN_FSIBILR, +	GPIO_FN_FSIBOSLD, +	GPIO_FN_FSIBISLD, +	GPIO_FN_VACK, +	GPIO_FN_XTAL1L, +	GPIO_FN_SCIFA0_RTS_, GPIO_FN_FSICOSLDT2, +	GPIO_FN_SCIFA0_RXD, +	GPIO_FN_SCIFA0_CTS_, GPIO_FN_FSICOSLDT1, +	GPIO_FN_FSICOBT, GPIO_FN_FSICIBT, GPIO_FN_FSIDOBT, GPIO_FN_FSIDIBT, +	GPIO_FN_FSICOLR, GPIO_FN_FSICILR, GPIO_FN_FSIDOLR, GPIO_FN_FSIDILR, +	GPIO_FN_FSICOSLD, GPIO_FN_PORT47_FSICSPDIF, +	GPIO_FN_FSICISLD, GPIO_FN_FSIDISLD, +	GPIO_FN_FSIACK, GPIO_FN_PORT49_IRDA_OUT, GPIO_FN_PORT49_IROUT, \ +	GPIO_FN_FSIAOMC, +	GPIO_FN_FSIAOLR, GPIO_FN_BBIF2_TSYNC2, GPIO_FN_TPU2TO2, GPIO_FN_FSIAILR, + +	GPIO_FN_FSIAOBT, GPIO_FN_BBIF2_TSCK2, GPIO_FN_TPU2TO3, GPIO_FN_FSIAIBT, +	GPIO_FN_FSIAOSLD, GPIO_FN_BBIF2_TXD2, +	GPIO_FN_FSIASPDIF, GPIO_FN_PORT53_IRDA_IN, GPIO_FN_TPU3TO3, \ +	GPIO_FN_FSIBSPDIF, GPIO_FN_PORT53_FSICSPDIF, +	GPIO_FN_FSIBCK, GPIO_FN_PORT54_IRDA_FIRSEL, GPIO_FN_TPU3TO2, \ +	GPIO_FN_FSIBOMC, GPIO_FN_FSICCK, GPIO_FN_FSICOMC, +	GPIO_FN_FSIAISLD, GPIO_FN_TPU0TO0, +	GPIO_FN_A0, GPIO_FN_BS_, +	GPIO_FN_A12, GPIO_FN_PORT58_KEYOUT7, GPIO_FN_TPU4TO2, +	GPIO_FN_A13, GPIO_FN_PORT59_KEYOUT6, GPIO_FN_TPU0TO1, +	GPIO_FN_A14, GPIO_FN_KEYOUT5, +	GPIO_FN_A15, GPIO_FN_KEYOUT4, +	GPIO_FN_A16, GPIO_FN_KEYOUT3, GPIO_FN_MSIOF0_SS1, +	GPIO_FN_A17, GPIO_FN_KEYOUT2, GPIO_FN_MSIOF0_TSYNC, +	GPIO_FN_A18, GPIO_FN_KEYOUT1, GPIO_FN_MSIOF0_TSCK, +	GPIO_FN_A19, GPIO_FN_KEYOUT0, GPIO_FN_MSIOF0_TXD, +	GPIO_FN_A20, GPIO_FN_KEYIN0, GPIO_FN_MSIOF0_RSCK, +	GPIO_FN_A21, GPIO_FN_KEYIN1, GPIO_FN_MSIOF0_RSYNC, +	GPIO_FN_A22, GPIO_FN_KEYIN2, GPIO_FN_MSIOF0_MCK0, +	GPIO_FN_A23, GPIO_FN_KEYIN3, GPIO_FN_MSIOF0_MCK1, +	GPIO_FN_A24, GPIO_FN_KEYIN4, GPIO_FN_MSIOF0_RXD, +	GPIO_FN_A25, GPIO_FN_KEYIN5, GPIO_FN_MSIOF0_SS2, +	GPIO_FN_A26, GPIO_FN_KEYIN6, +	GPIO_FN_KEYIN7, +	GPIO_FN_D0_NAF0, +	GPIO_FN_D1_NAF1, +	GPIO_FN_D2_NAF2, +	GPIO_FN_D3_NAF3, +	GPIO_FN_D4_NAF4, +	GPIO_FN_D5_NAF5, +	GPIO_FN_D6_NAF6, +	GPIO_FN_D7_NAF7, +	GPIO_FN_D8_NAF8, +	GPIO_FN_D9_NAF9, +	GPIO_FN_D10_NAF10, +	GPIO_FN_D11_NAF11, +	GPIO_FN_D12_NAF12, +	GPIO_FN_D13_NAF13, +	GPIO_FN_D14_NAF14, +	GPIO_FN_D15_NAF15, +	GPIO_FN_CS4_, +	GPIO_FN_CS5A_, GPIO_FN_PORT91_RDWR, +	GPIO_FN_CS5B_, GPIO_FN_FCE1_, +	GPIO_FN_CS6B_, GPIO_FN_DACK0, +	GPIO_FN_FCE0_, GPIO_FN_CS6A_, +	GPIO_FN_WAIT_, GPIO_FN_DREQ0, +	GPIO_FN_RD__FSC, +	GPIO_FN_WE0__FWE, GPIO_FN_RDWR_FWE, +	GPIO_FN_WE1_, +	GPIO_FN_FRB, +	GPIO_FN_CKO, +	GPIO_FN_NBRSTOUT_, +	GPIO_FN_NBRST_, +	GPIO_FN_BBIF2_TXD, +	GPIO_FN_BBIF2_RXD, +	GPIO_FN_BBIF2_SYNC, +	GPIO_FN_BBIF2_SCK, +	GPIO_FN_SCIFA3_CTS_, GPIO_FN_MFG3_IN2, +	GPIO_FN_SCIFA3_RXD, GPIO_FN_MFG3_IN1, +	GPIO_FN_BBIF1_SS2, GPIO_FN_SCIFA3_RTS_, GPIO_FN_MFG3_OUT1, +	GPIO_FN_SCIFA3_TXD, +	GPIO_FN_HSI_RX_DATA, GPIO_FN_BBIF1_RXD, +	GPIO_FN_HSI_TX_WAKE, GPIO_FN_BBIF1_TSCK, +	GPIO_FN_HSI_TX_DATA, GPIO_FN_BBIF1_TSYNC, +	GPIO_FN_HSI_TX_READY, GPIO_FN_BBIF1_TXD, +	GPIO_FN_HSI_RX_READY, GPIO_FN_BBIF1_RSCK, GPIO_FN_PORT115_I2C_SCL2, \ +	GPIO_FN_PORT115_I2C_SCL3, +	GPIO_FN_HSI_RX_WAKE, GPIO_FN_BBIF1_RSYNC, GPIO_FN_PORT116_I2C_SDA2, \ +	GPIO_FN_PORT116_I2C_SDA3, +	GPIO_FN_HSI_RX_FLAG, GPIO_FN_BBIF1_SS1, GPIO_FN_BBIF1_FLOW, +	GPIO_FN_HSI_TX_FLAG, +	GPIO_FN_VIO_VD, GPIO_FN_PORT128_LCD2VSYN, GPIO_FN_VIO2_VD, \ +	GPIO_FN_LCD2D0, + +	GPIO_FN_VIO_HD, GPIO_FN_PORT129_LCD2HSYN, GPIO_FN_PORT129_LCD2CS_, \ +	GPIO_FN_VIO2_HD, GPIO_FN_LCD2D1, +	GPIO_FN_VIO_D0, GPIO_FN_PORT130_MSIOF2_RXD, GPIO_FN_LCD2D10, +	GPIO_FN_VIO_D1, GPIO_FN_PORT131_KEYOUT6, GPIO_FN_PORT131_MSIOF2_SS1, \ +	GPIO_FN_PORT131_KEYOUT11, GPIO_FN_LCD2D11, +	GPIO_FN_VIO_D2, GPIO_FN_PORT132_KEYOUT7, GPIO_FN_PORT132_MSIOF2_SS2, \ +	GPIO_FN_PORT132_KEYOUT10, GPIO_FN_LCD2D12, +	GPIO_FN_VIO_D3, GPIO_FN_MSIOF2_TSYNC, GPIO_FN_LCD2D13, +	GPIO_FN_VIO_D4, GPIO_FN_MSIOF2_TXD, GPIO_FN_LCD2D14, +	GPIO_FN_VIO_D5, GPIO_FN_MSIOF2_TSCK, GPIO_FN_LCD2D15, +	GPIO_FN_VIO_D6, GPIO_FN_PORT136_KEYOUT8, GPIO_FN_LCD2D16, +	GPIO_FN_VIO_D7, GPIO_FN_PORT137_KEYOUT9, GPIO_FN_LCD2D17, +	GPIO_FN_VIO_D8, GPIO_FN_PORT138_KEYOUT8, GPIO_FN_VIO2_D0, \ +	GPIO_FN_LCD2D6, +	GPIO_FN_VIO_D9, GPIO_FN_PORT139_KEYOUT9, GPIO_FN_VIO2_D1, \ +	GPIO_FN_LCD2D7, +	GPIO_FN_VIO_D10, GPIO_FN_TPU0TO2, GPIO_FN_VIO2_D2, GPIO_FN_LCD2D8, +	GPIO_FN_VIO_D11, GPIO_FN_TPU0TO3, GPIO_FN_VIO2_D3, GPIO_FN_LCD2D9, +	GPIO_FN_VIO_D12, GPIO_FN_PORT142_KEYOUT10, GPIO_FN_VIO2_D4, \ +	GPIO_FN_LCD2D2, +	GPIO_FN_VIO_D13, GPIO_FN_PORT143_KEYOUT11, GPIO_FN_PORT143_KEYOUT6, \ +	GPIO_FN_VIO2_D5, GPIO_FN_LCD2D3, +	GPIO_FN_VIO_D14, GPIO_FN_PORT144_KEYOUT7, GPIO_FN_VIO2_D6, \ +	GPIO_FN_LCD2D4, +	GPIO_FN_VIO_D15, GPIO_FN_TPU1TO3, GPIO_FN_PORT145_LCD2DISP, \ +	GPIO_FN_PORT145_LCD2RS, GPIO_FN_VIO2_D7, GPIO_FN_LCD2D5, +	GPIO_FN_VIO_CLK, GPIO_FN_LCD2DCK, GPIO_FN_PORT146_LCD2WR_, \ +	GPIO_FN_VIO2_CLK, GPIO_FN_LCD2D18, +	GPIO_FN_VIO_FIELD, GPIO_FN_LCD2RD_, GPIO_FN_VIO2_FIELD, GPIO_FN_LCD2D19, +	GPIO_FN_VIO_CKO, +	GPIO_FN_A27, GPIO_FN_PORT149_RDWR, GPIO_FN_MFG0_IN1, \ +	GPIO_FN_PORT149_KEYOUT9, +	GPIO_FN_MFG0_IN2, +	GPIO_FN_TS_SPSYNC3, GPIO_FN_MSIOF2_RSCK, +	GPIO_FN_TS_SDAT3, GPIO_FN_MSIOF2_RSYNC, +	GPIO_FN_TPU1TO2, GPIO_FN_TS_SDEN3, GPIO_FN_PORT153_MSIOF2_SS1, +	GPIO_FN_SCIFA2_TXD1, GPIO_FN_MSIOF2_MCK0, +	GPIO_FN_SCIFA2_RXD1, GPIO_FN_MSIOF2_MCK1, +	GPIO_FN_SCIFA2_RTS1_, GPIO_FN_PORT156_MSIOF2_SS2, +	GPIO_FN_SCIFA2_CTS1_, GPIO_FN_PORT157_MSIOF2_RXD, +	GPIO_FN_DINT_, GPIO_FN_SCIFA2_SCK1, GPIO_FN_TS_SCK3, +	GPIO_FN_PORT159_SCIFB_SCK, GPIO_FN_PORT159_SCIFA5_SCK, GPIO_FN_NMI, +	GPIO_FN_PORT160_SCIFB_TXD, GPIO_FN_PORT160_SCIFA5_TXD, +	GPIO_FN_PORT161_SCIFB_CTS_, GPIO_FN_PORT161_SCIFA5_CTS_, +	GPIO_FN_PORT162_SCIFB_RXD, GPIO_FN_PORT162_SCIFA5_RXD, +	GPIO_FN_PORT163_SCIFB_RTS_, GPIO_FN_PORT163_SCIFA5_RTS_, \ +	GPIO_FN_TPU3TO0, +	GPIO_FN_LCDD0, +	GPIO_FN_LCDD1, GPIO_FN_PORT193_SCIFA5_CTS_, GPIO_FN_BBIF2_TSYNC1, +	GPIO_FN_LCDD2, GPIO_FN_PORT194_SCIFA5_RTS_, GPIO_FN_BBIF2_TSCK1, +	GPIO_FN_LCDD3, GPIO_FN_PORT195_SCIFA5_RXD, GPIO_FN_BBIF2_TXD1, +	GPIO_FN_LCDD4, GPIO_FN_PORT196_SCIFA5_TXD, +	GPIO_FN_LCDD5, GPIO_FN_PORT197_SCIFA5_SCK, GPIO_FN_MFG2_OUT2, \ +	GPIO_FN_TPU2TO1, +	GPIO_FN_LCDD6, +	GPIO_FN_LCDD7, GPIO_FN_TPU4TO1, GPIO_FN_MFG4_OUT2, +	GPIO_FN_LCDD8, GPIO_FN_D16, +	GPIO_FN_LCDD9, GPIO_FN_D17, +	GPIO_FN_LCDD10, GPIO_FN_D18, +	GPIO_FN_LCDD11, GPIO_FN_D19, +	GPIO_FN_LCDD12, GPIO_FN_D20, +	GPIO_FN_LCDD13, GPIO_FN_D21, +	GPIO_FN_LCDD14, GPIO_FN_D22, +	GPIO_FN_LCDD15, GPIO_FN_PORT207_MSIOF0L_SS1, GPIO_FN_D23, +	GPIO_FN_LCDD16, GPIO_FN_PORT208_MSIOF0L_SS2, GPIO_FN_D24, +	GPIO_FN_LCDD17, GPIO_FN_D25, +	GPIO_FN_LCDD18, GPIO_FN_DREQ2, GPIO_FN_PORT210_MSIOF0L_SS1, GPIO_FN_D26, +	GPIO_FN_LCDD19, GPIO_FN_PORT211_MSIOF0L_SS2, GPIO_FN_D27, +	GPIO_FN_LCDD20, GPIO_FN_TS_SPSYNC1, GPIO_FN_MSIOF0L_MCK0, GPIO_FN_D28, +	GPIO_FN_LCDD21, GPIO_FN_TS_SDAT1, GPIO_FN_MSIOF0L_MCK1, GPIO_FN_D29, +	GPIO_FN_LCDD22, GPIO_FN_TS_SDEN1, GPIO_FN_MSIOF0L_RSCK, GPIO_FN_D30, +	GPIO_FN_LCDD23, GPIO_FN_TS_SCK1, GPIO_FN_MSIOF0L_RSYNC, GPIO_FN_D31, +	GPIO_FN_LCDDCK, GPIO_FN_LCDWR_, +	GPIO_FN_LCDRD_, GPIO_FN_DACK2, GPIO_FN_PORT217_LCD2RS, \ +	GPIO_FN_MSIOF0L_TSYNC, GPIO_FN_VIO2_FIELD3, GPIO_FN_PORT217_LCD2DISP, +	GPIO_FN_LCDHSYN, GPIO_FN_LCDCS_, GPIO_FN_LCDCS2_, GPIO_FN_DACK3, \ +	GPIO_FN_PORT218_VIO_CKOR, +	GPIO_FN_LCDDISP, GPIO_FN_LCDRS, GPIO_FN_PORT219_LCD2WR_, \ +	GPIO_FN_DREQ3, GPIO_FN_MSIOF0L_TSCK, GPIO_FN_VIO2_CLK3, \ +	GPIO_FN_LCD2DCK_2, +	GPIO_FN_LCDVSYN, GPIO_FN_LCDVSYN2, +	GPIO_FN_LCDLCLK, GPIO_FN_DREQ1, GPIO_FN_PORT221_LCD2CS_, \ +	GPIO_FN_PWEN, GPIO_FN_MSIOF0L_RXD, GPIO_FN_VIO2_HD3, \ +	GPIO_FN_PORT221_LCD2HSYN, +	GPIO_FN_LCDDON, GPIO_FN_LCDDON2, GPIO_FN_DACK1, GPIO_FN_OVCN, \ +	GPIO_FN_MSIOF0L_TXD, GPIO_FN_VIO2_VD3, GPIO_FN_PORT222_LCD2VSYN, + +	GPIO_FN_SCIFA1_TXD, GPIO_FN_OVCN2, +	GPIO_FN_EXTLP, GPIO_FN_SCIFA1_SCK, GPIO_FN_PORT226_VIO_CKO2, +	GPIO_FN_SCIFA1_RTS_, GPIO_FN_IDIN, +	GPIO_FN_SCIFA1_RXD, +	GPIO_FN_SCIFA1_CTS_, GPIO_FN_MFG1_IN1, +	GPIO_FN_MSIOF1_TXD, GPIO_FN_SCIFA2_TXD2, +	GPIO_FN_MSIOF1_TSYNC, GPIO_FN_SCIFA2_CTS2_, +	GPIO_FN_MSIOF1_TSCK, GPIO_FN_SCIFA2_SCK2, +	GPIO_FN_MSIOF1_RXD, GPIO_FN_SCIFA2_RXD2, +	GPIO_FN_MSIOF1_RSCK, GPIO_FN_SCIFA2_RTS2_, GPIO_FN_VIO2_CLK2, \ +	GPIO_FN_LCD2D20, +	GPIO_FN_MSIOF1_RSYNC, GPIO_FN_MFG1_IN2, GPIO_FN_VIO2_VD2, \ +	GPIO_FN_LCD2D21, +	GPIO_FN_MSIOF1_MCK0, GPIO_FN_PORT236_I2C_SDA2, +	GPIO_FN_MSIOF1_MCK1, GPIO_FN_PORT237_I2C_SCL2, +	GPIO_FN_MSIOF1_SS1, GPIO_FN_VIO2_FIELD2, GPIO_FN_LCD2D22, +	GPIO_FN_MSIOF1_SS2, GPIO_FN_VIO2_HD2, GPIO_FN_LCD2D23, +	GPIO_FN_SCIFA6_TXD, +	GPIO_FN_PORT241_IRDA_OUT, GPIO_FN_PORT241_IROUT, GPIO_FN_MFG4_OUT1, \ +	GPIO_FN_TPU4TO0, +	GPIO_FN_PORT242_IRDA_IN, GPIO_FN_MFG4_IN2, +	GPIO_FN_PORT243_IRDA_FIRSEL, GPIO_FN_PORT243_VIO_CKO2, +	GPIO_FN_PORT244_SCIFA5_CTS_, GPIO_FN_MFG2_IN1, \ +	GPIO_FN_PORT244_SCIFB_CTS_, GPIO_FN_MSIOF2R_RXD, +	GPIO_FN_PORT245_SCIFA5_RTS_, GPIO_FN_MFG2_IN2, \ +	GPIO_FN_PORT245_SCIFB_RTS_, GPIO_FN_MSIOF2R_TXD, +	GPIO_FN_PORT246_SCIFA5_RXD, GPIO_FN_MFG1_OUT1, \ +	GPIO_FN_PORT246_SCIFB_RXD, GPIO_FN_TPU1TO0, +	GPIO_FN_PORT247_SCIFA5_TXD, GPIO_FN_MFG3_OUT2, \ +	GPIO_FN_PORT247_SCIFB_TXD, GPIO_FN_TPU3TO1, +	GPIO_FN_PORT248_SCIFA5_SCK, GPIO_FN_MFG2_OUT1, \ +	GPIO_FN_PORT248_SCIFB_SCK, GPIO_FN_TPU2TO0, \ +	GPIO_FN_PORT248_I2C_SCL3, GPIO_FN_MSIOF2R_TSCK, +	GPIO_FN_PORT249_IROUT, GPIO_FN_MFG4_IN1, \ +	GPIO_FN_PORT249_I2C_SDA3, GPIO_FN_MSIOF2R_TSYNC, +	GPIO_FN_SDHICLK0, +	GPIO_FN_SDHICD0, +	GPIO_FN_SDHID0_0, +	GPIO_FN_SDHID0_1, +	GPIO_FN_SDHID0_2, +	GPIO_FN_SDHID0_3, +	GPIO_FN_SDHICMD0, +	GPIO_FN_SDHIWP0, +	GPIO_FN_SDHICLK1, +	GPIO_FN_SDHID1_0, GPIO_FN_TS_SPSYNC2, +	GPIO_FN_SDHID1_1, GPIO_FN_TS_SDAT2, +	GPIO_FN_SDHID1_2, GPIO_FN_TS_SDEN2, +	GPIO_FN_SDHID1_3, GPIO_FN_TS_SCK2, +	GPIO_FN_SDHICMD1, +	GPIO_FN_SDHICLK2, +	GPIO_FN_SDHID2_0, GPIO_FN_TS_SPSYNC4, +	GPIO_FN_SDHID2_1, GPIO_FN_TS_SDAT4, +	GPIO_FN_SDHID2_2, GPIO_FN_TS_SDEN4, +	GPIO_FN_SDHID2_3, GPIO_FN_TS_SCK4, +	GPIO_FN_SDHICMD2, +	GPIO_FN_MMCCLK0, +	GPIO_FN_MMCD0_0, +	GPIO_FN_MMCD0_1, +	GPIO_FN_MMCD0_2, +	GPIO_FN_MMCD0_3, +	GPIO_FN_MMCD0_4, GPIO_FN_TS_SPSYNC5, +	GPIO_FN_MMCD0_5, GPIO_FN_TS_SDAT5, +	GPIO_FN_MMCD0_6, GPIO_FN_TS_SDEN5, +	GPIO_FN_MMCD0_7, GPIO_FN_TS_SCK5, +	GPIO_FN_MMCCMD0, +	GPIO_FN_RESETOUTS_, GPIO_FN_EXTAL2OUT, +	GPIO_FN_MCP_WAIT__MCP_FRB, +	GPIO_FN_MCP_CKO, GPIO_FN_MMCCLK1, +	GPIO_FN_MCP_D15_MCP_NAF15, +	GPIO_FN_MCP_D14_MCP_NAF14, +	GPIO_FN_MCP_D13_MCP_NAF13, +	GPIO_FN_MCP_D12_MCP_NAF12, +	GPIO_FN_MCP_D11_MCP_NAF11, +	GPIO_FN_MCP_D10_MCP_NAF10, +	GPIO_FN_MCP_D9_MCP_NAF9, +	GPIO_FN_MCP_D8_MCP_NAF8, GPIO_FN_MMCCMD1, +	GPIO_FN_MCP_D7_MCP_NAF7, GPIO_FN_MMCD1_7, + +	GPIO_FN_MCP_D6_MCP_NAF6, GPIO_FN_MMCD1_6, +	GPIO_FN_MCP_D5_MCP_NAF5, GPIO_FN_MMCD1_5, +	GPIO_FN_MCP_D4_MCP_NAF4, GPIO_FN_MMCD1_4, +	GPIO_FN_MCP_D3_MCP_NAF3, GPIO_FN_MMCD1_3, +	GPIO_FN_MCP_D2_MCP_NAF2, GPIO_FN_MMCD1_2, +	GPIO_FN_MCP_D1_MCP_NAF1, GPIO_FN_MMCD1_1, +	GPIO_FN_MCP_D0_MCP_NAF0, GPIO_FN_MMCD1_0, +	GPIO_FN_MCP_NBRSTOUT_, +	GPIO_FN_MCP_WE0__MCP_FWE, GPIO_FN_MCP_RDWR_MCP_FWE, + +	/* MSEL2 special case */ +	GPIO_FN_TSIF2_TS_XX1, +	GPIO_FN_TSIF2_TS_XX2, +	GPIO_FN_TSIF2_TS_XX3, +	GPIO_FN_TSIF2_TS_XX4, +	GPIO_FN_TSIF2_TS_XX5, +	GPIO_FN_TSIF1_TS_XX1, +	GPIO_FN_TSIF1_TS_XX2, +	GPIO_FN_TSIF1_TS_XX3, +	GPIO_FN_TSIF1_TS_XX4, +	GPIO_FN_TSIF1_TS_XX5, +	GPIO_FN_TSIF0_TS_XX1, +	GPIO_FN_TSIF0_TS_XX2, +	GPIO_FN_TSIF0_TS_XX3, +	GPIO_FN_TSIF0_TS_XX4, +	GPIO_FN_TSIF0_TS_XX5, +	GPIO_FN_MST1_TS_XX1, +	GPIO_FN_MST1_TS_XX2, +	GPIO_FN_MST1_TS_XX3, +	GPIO_FN_MST1_TS_XX4, +	GPIO_FN_MST1_TS_XX5, +	GPIO_FN_MST0_TS_XX1, +	GPIO_FN_MST0_TS_XX2, +	GPIO_FN_MST0_TS_XX3, +	GPIO_FN_MST0_TS_XX4, +	GPIO_FN_MST0_TS_XX5, + +	/* MSEL3 special cases */ +	GPIO_FN_SDHI0_VCCQ_MC0_ON, +	GPIO_FN_SDHI0_VCCQ_MC0_OFF, +	GPIO_FN_DEBUG_MON_VIO, +	GPIO_FN_DEBUG_MON_LCDD, +	GPIO_FN_LCDC_LCDC0, +	GPIO_FN_LCDC_LCDC1, + +	/* MSEL4 special cases */ +	GPIO_FN_IRQ9_MEM_INT, +	GPIO_FN_IRQ9_MCP_INT, +	GPIO_FN_A11, +	GPIO_FN_KEYOUT8, +	GPIO_FN_TPU4TO3, +	GPIO_FN_RESETA_N_PU_ON, +	GPIO_FN_RESETA_N_PU_OFF, +	GPIO_FN_EDBGREQ_PD, +	GPIO_FN_EDBGREQ_PU, + +	/* Functions with pull-ups */ +	GPIO_FN_KEYIN0_PU, +	GPIO_FN_KEYIN1_PU, +	GPIO_FN_KEYIN2_PU, +	GPIO_FN_KEYIN3_PU, +	GPIO_FN_KEYIN4_PU, +	GPIO_FN_KEYIN5_PU, +	GPIO_FN_KEYIN6_PU, +	GPIO_FN_KEYIN7_PU, +	GPIO_FN_SDHICD0_PU, +	GPIO_FN_SDHID0_0_PU, +	GPIO_FN_SDHID0_1_PU, +	GPIO_FN_SDHID0_2_PU, +	GPIO_FN_SDHID0_3_PU, +	GPIO_FN_SDHICMD0_PU, +	GPIO_FN_SDHIWP0_PU, +	GPIO_FN_SDHID1_0_PU, +	GPIO_FN_SDHID1_1_PU, +	GPIO_FN_SDHID1_2_PU, +	GPIO_FN_SDHID1_3_PU, +	GPIO_FN_SDHICMD1_PU, +	GPIO_FN_SDHID2_0_PU, +	GPIO_FN_SDHID2_1_PU, +	GPIO_FN_SDHID2_2_PU, +	GPIO_FN_SDHID2_3_PU, +	GPIO_FN_SDHICMD2_PU, +	GPIO_FN_MMCCMD0_PU, +	GPIO_FN_MMCCMD1_PU, +	GPIO_FN_MMCD0_0_PU, +	GPIO_FN_MMCD0_1_PU, +	GPIO_FN_MMCD0_2_PU, +	GPIO_FN_MMCD0_3_PU, +	GPIO_FN_MMCD0_4_PU, +	GPIO_FN_MMCD0_5_PU, +	GPIO_FN_MMCD0_6_PU, +	GPIO_FN_MMCD0_7_PU, +	GPIO_FN_FSIACK_PU, +	GPIO_FN_FSIAILR_PU, +	GPIO_FN_FSIAIBT_PU, +	GPIO_FN_FSIAISLD_PU, + +	/* end of GPIO */ +	GPIO_NR, +}; + +/* DMA slave IDs */ +enum { +	SHDMA_SLAVE_INVALID, +	SHDMA_SLAVE_SCIF0_TX, +	SHDMA_SLAVE_SCIF0_RX, +	SHDMA_SLAVE_SCIF1_TX, +	SHDMA_SLAVE_SCIF1_RX, +	SHDMA_SLAVE_SCIF2_TX, +	SHDMA_SLAVE_SCIF2_RX, +	SHDMA_SLAVE_SCIF3_TX, +	SHDMA_SLAVE_SCIF3_RX, +	SHDMA_SLAVE_SCIF4_TX, +	SHDMA_SLAVE_SCIF4_RX, +	SHDMA_SLAVE_SCIF5_TX, +	SHDMA_SLAVE_SCIF5_RX, +	SHDMA_SLAVE_SCIF6_TX, +	SHDMA_SLAVE_SCIF6_RX, +	SHDMA_SLAVE_SCIF7_TX, +	SHDMA_SLAVE_SCIF7_RX, +	SHDMA_SLAVE_SCIF8_TX, +	SHDMA_SLAVE_SCIF8_RX, +	SHDMA_SLAVE_SDHI0_TX, +	SHDMA_SLAVE_SDHI0_RX, +	SHDMA_SLAVE_SDHI1_TX, +	SHDMA_SLAVE_SDHI1_RX, +	SHDMA_SLAVE_SDHI2_TX, +	SHDMA_SLAVE_SDHI2_RX, +	SHDMA_SLAVE_MMCIF_TX, +	SHDMA_SLAVE_MMCIF_RX, +}; + +/* + *		SH73A0 IRQ LOCATION TABLE + * + * 416	----------------------------------------- + *		IRQ0-IRQ15 + * 431	----------------------------------------- + * ... + * 448	----------------------------------------- + *		sh73a0-intcs + *		sh73a0-intca-irq-pins + * 680	----------------------------------------- + * ... + * 700	----------------------------------------- + *		sh73a0-pint0 + * 731	----------------------------------------- + * 732	----------------------------------------- + *		sh73a0-pint1 + * 739	----------------------------------------- + * ... + * 800	----------------------------------------- + *		IRQ16-IRQ31 + * 815	----------------------------------------- + * ... + * 928	----------------------------------------- + *		sh73a0-intca-irq-pins + * 943	----------------------------------------- + */ + +/* PINT interrupts are located at Linux IRQ 700 and up */ +#define SH73A0_PINT0_IRQ(irq) ((irq) + 700) +#define SH73A0_PINT1_IRQ(irq) ((irq) + 732) + +#endif /* __ASM_SH73A0_H__ */ diff --git a/arch/arm/include/asm/arch-rmobile/sh73a0.h b/arch/arm/include/asm/arch-rmobile/sh73a0.h new file mode 100644 index 000000000..bdbb40864 --- /dev/null +++ b/arch/arm/include/asm/arch-rmobile/sh73a0.h @@ -0,0 +1,289 @@ +#ifndef __ASM_ARCH_RMOBILE_SH73A0_H +#define __ASM_ARCH_RMOBILE_SH73A0_H + +/* Global Timer */ +#define GLOBAL_TIMER_BASE_ADDR	(0xF0000200) +#define MERAM_BASE	(0xE5580000) + +/* GIC */ +#define GIC_BASE	(0xF0000100) +#define ICCICR	GIC_BASE + +/* Secure control register */ +#define LIFEC_SEC_SRC	(0xE6110008) + +/* RWDT */ +#define	RWDT_BASE   (0xE6020000) + +/* HPB Semaphore Control Registers */ +#define HPB_BASE	(0xE6001010) + +/* Bus Semaphore Control Registers */ +#define HPBSCR_BASE (0xE6001600) + +/* SBSC1 */ +#define SBSC1_BASE	(0xFE400000) +#define	SDMRA1A		(SBSC1_BASE + 0x100000) +#define	SDMRA2A		(SBSC1_BASE + 0x1C0000) +#define	SDMRA3A		(SBSC1_BASE + 0x104000) + +/* SBSC2 */ +#define SBSC2_BASE	(0xFB400000) +#define	SDMRA1B		(SBSC2_BASE + 0x100000) +#define	SDMRA2B		(SBSC2_BASE + 0x1C0000) +#define	SDMRA3B		(SBSC2_BASE + 0x104000) + +/* CPG */ +#define CPG_BASE   (0xE6150000) +#define	CPG_SRCR_BASE	(CPG_BASE + 0x80A0) +#define WUPCR	(CPG_BASE + 0x1010) +#define SRESCR	(CPG_BASE + 0x1018) +#define PCLKCR	(CPG_BASE + 0x1020) + +/* SYSC */ +#define SYSC_BASE   (0xE6180000) +#define RESCNT2	(SYSC_BASE + 0x8020) + +/* BSC */ +#define BSC_BASE (0xFEC10000) + +/* SCIF */ +#define SCIF0_BASE	(0xE6C40000) +#define SCIF1_BASE	(0xE6C50000) +#define SCIF2_BASE	(0xE6C60000) +#define SCIF3_BASE	(0xE6C70000) +#define SCIF4_BASE	(0xE6C80000) +#define SCIF5_BASE	(0xE6CB0000) +#define SCIF6_BASE	(0xE6CC0000) +#define SCIF7_BASE	(0xE6CD0000) + +#ifndef __ASSEMBLY__ +#include <asm/types.h> + +/* RWDT */ +struct sh73a0_rwdt { +	u16 rwtcnt0;	/* 0x00 */ +	u16 dummy0;	/* 0x02 */ +	u16 rwtcsra0;	/* 0x04 */ +	u16 dummy1;	/* 0x06 */ +	u16 rwtcsrb0;	/* 0x08 */ +}; + +/* HPB Semaphore Control Registers */ +struct sh73a0_hpb { +	u32 hpbctrl0; +	u32 hpbctrl1; +	u32 hpbctrl2; +	u32 cccr; +	u32 dummy0; /* 0x20 */ +	u32 hpbctrl4; +	u32 hpbctrl5; +	u32 dummy1; /* 0x2C */ +	u32 hpbctrl6; +}; + +/* Bus Semaphore Control Registers */ +struct sh73a0_hpb_bscr { +	u32 mpsrc; /* 0x00 */ +	u32 mpacctl; /* 0x04 */ +	u32 dummy0[6]; +	u32 smgpiosrc; /* 0x20 */ +	u32 smgpioerr; +	u32 smgpiotime; +	u32 smgpiocnt; +	u32 dummy1[4]; /* 0x30 .. 0x3C */ +	u32 smcmt2src; +	u32 smcmt2err; +	u32 smcmt2time; +	u32 smcmt2cnt; +	u32 smcpgsrc; +	u32 smcpgerr; +	u32 smcpgtime; +	u32 smcpgcnt; +	u32 dummy2[4]; /* 0x60 - 0x6C */ +	u32 smsyscsrc; +	u32 smsyscerr; +	u32 smsysctime; +	u32 smsysccnt; +}; + +/* SBSC */ +struct sh73a0_sbsc { +	u32 dummy0[2]; /* 0x00, 0x04 */ +	u32 sdcr0; +	u32 sdcr1; +	u32 sdpcr; +	u32 dummy1; /* 0x14 */ +	u32 sdcr0s; +	u32 sdcr1s; +	u32 rtcsr; +	u32 dummy2; /* 0x24 */ +	u32 rtcor; +	u32 rtcorh; +	u32 rtcors; +	u32 rtcorsh; +	u32 dummy3[2]; /* 0x38, 0x3C */ +	u32 sdwcrc0; +	u32 sdwcrc1; +	u32 sdwcr00; +	u32 sdwcr01; +	u32 sdwcr10; +	u32 sdwcr11; +	u32 sdpdcr0; +	u32 dummy4; /* 0x5C */ +	u32 sdwcr2; +	u32 sdwcrc2; +	u32 zqccr; +	u32 dummy5[6]; /* 0x6C .. 0x80 */ +	u32 sdmracr0; +	u32 dummy6; /* 0x88 */ +	u32 sdmrtmpcr; +	u32 dummy7; /* 0x90 */ +	u32 sdmrtmpmsk; +	u32 dummy8; /* 0x98 */ +	u32 sdgencnt; +	u32 dphycnt0; +	u32 dphycnt1; +	u32 dphycnt2; +	u32 dummy9[2]; /* 0xAC .. 0xB0 */ +	u32 sddrvcr0; +	u32 dummy10[14]; /* 0xB8 .. 0xEC */ +	u32 dptdivcr0; +	u32 dptdivcr1; +	u32 dptdivcr2; +	u32 dummy11; /* 0xFC */ +	u32 sdptcr0; +	u32 sdptcr1; +	u32 sdptcr2; +	u32 sdptcr3; /* 0x10C */ +	u32 dummy12[145]; /* 0x110 .. 0x350 */ +	u32 dllcnt0; /* 0x354 */ +	u32 sbscmon0; +}; + +/* CPG */ +struct sh73a0_sbsc_cpg { +	u32 frqcra; /* 0x00 */ +	u32 frqcrb; +	u32 vclkcr1; +	u32 vclkcr2; +	u32 zbckcr; +	u32 flckcr; +	u32 fsiackcr; +	u32 vclkcr3; +	u32 rtstbcr; +	u32 systbcr; +	u32 pll1cr; +	u32 pll2cr; +	u32 mstpsr0; +	u32 dummy0; /* 0x34 */ +	u32 mstpsr1; +	u32 mstpsr5; +	u32 mstpsr2; +	u32 dummy1; /* 0x44 */ +	u32 mstpsr3; +	u32 mstpsr4; +	u32 dummy2; /* 0x50 */ +	u32 astat; +	u32 dvfscr0; +	u32 dvfscr1; +	u32 dsitckcr; +	u32 dsi0pckcr; +	u32 dsi1pckcr; +	u32 dsi0phycr; +	u32 dsi1phycr; +	u32 sd0ckcr; +	u32 sd1ckcr; +	u32 sd2ckcr; +	u32 subckcr; +	u32 spuackcr; +	u32 msuckcr; +	u32 hsickcr; +	u32 fsibckcr; +	u32 spuvckcr; +	u32 mfck1cr; +	u32 mfck2cr; +	u32 dummy3[8]; /* 0xA0 .. 0xBC */ +	u32 ckscr; +	u32 dummy4; /* 0xC4 */ +	u32 pll1stpcr; +	u32 mpmode; +	u32 pllecr; +	u32 dummy5; /* 0xD4 */ +	u32 pll0cr; +	u32 pll3cr; +	u32 dummy6; /* 0xE0 */ +	u32 frqcrd; +	u32 dummyi7; /* 0xE8 */ +	u32 vrefcr; +	u32 pll0stpcr; +	u32 dummy8; /* 0xF4 */ +	u32 pll2stpcr; +	u32 pll3stpcr; +	u32 dummy9[4]; /* 0x100 .. 0x10c */ +	u32 rmstpcr0; +	u32 rmstpcr1; +	u32 rmstpcr2; +	u32 rmstpcr3; +	u32 rmstpcr4; +	u32 rmstpcr5; +	u32 dummy10[2]; /* 0x128 .. 0x12c */ +	u32 smstpcr0; +	u32 smstpcr1; +	u32 smstpcr2; +	u32 smstpcr3; +	u32 smstpcr4; +	u32 smstpcr5; +	u32 dummy11[2]; /* 0x148 .. 0x14c */ +	u32 cpgxxcs4; +	u32 dummy12[7]; /* 0x154 .. 0x16c */ +	u32 dvfscr2; +	u32 dvfscr3; +	u32 dvfscr4; +	u32 dvfscr5; /* 0x17C */ +}; + +/* CPG SRCR part OK */ +struct sh73a0_sbsc_cpg_srcr { +	u32 srcr0; +	u32 dummy0; /* 0xA4 */ +	u32 srcr1; +	u32 dummy1; /* 0xAC */ +	u32 srcr2; +	u32 dummy2; /* 0xB4 */ +	u32 srcr3; +	u32 srcr4; +	u32 dummy3; /* 0xC0 */ +	u32 srcr5; +}; + +/* BSC */ +struct sh73a0_bsc { +	u32 cmncr; +	u32 cs0bcr; +	u32 cs2bcr; +	u32 dummy0; /* 0x0C */ +	u32 cs4bcr; +	u32 cs5abcr; +	u32 cs5bbcr; +	u32 cs6abcr; +	u32 cs6bbcr; +	u32 cs0wcr; +	u32 cs2wcr; +	u32 dummy1; /* 0x2C */ +	u32 cs4wcr; +	u32 cs5awcr; +	u32 cs5bwcr; +	u32 cs6awcr; +	u32 cs6bwcr; +	u32 rbwtcnt; +	u32 busycr; +	u32 dummy2; /* 0x5c */ +	u32 cs7abcr; +	u32 cs7awcr; +	u32 dummy3[2]; /* 0x68, 0x6C */ +	u32 bromtimcr; +}; +#endif /* __ASSEMBLY__ */ + +#endif /* __ASM_ARCH_RMOBILE_SH73A0_H */ diff --git a/arch/arm/include/asm/arch-rmobile/sys_proto.h b/arch/arm/include/asm/arch-rmobile/sys_proto.h new file mode 100644 index 000000000..fad4e4e78 --- /dev/null +++ b/arch/arm/include/asm/arch-rmobile/sys_proto.h @@ -0,0 +1,29 @@ +/* + * (C) Copyright 2010 + * Texas Instruments, <www.ti.com> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef _SYS_PROTO_H_ +#define _SYS_PROTO_H_ + +struct rmobile_sysinfo { +	char *board_string; +}; +extern const struct rmobile_sysinfo sysinfo; + +#endif diff --git a/arch/arm/include/asm/arch-s3c24x0/gpio.h b/arch/arm/include/asm/arch-s3c24x0/gpio.h new file mode 100644 index 000000000..76bc52cb5 --- /dev/null +++ b/arch/arm/include/asm/arch-s3c24x0/gpio.h @@ -0,0 +1,171 @@ +/* + * Copyright (c) 2012. + * + * Gabriel Huau <contact@huau-gabriel.fr> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef _S3C24X0_GPIO_H_ +#define _S3C24X0_GPIO_H_ + +enum s3c2440_gpio { +	GPA0, +	GPA1, +	GPA2, +	GPA3, +	GPA4, +	GPA5, +	GPA6, +	GPA7, +	GPA8, +	GPA9, +	GPA10, +	GPA11, +	GPA12, +	GPA13, +	GPA14, +	GPA15, +	GPA16, +	GPA17, +	GPA18, +	GPA19, +	GPA20, +	GPA21, +	GPA22, +	GPA23, +	GPA24, + +	GPB0 = 32, +	GPB1, +	GPB2, +	GPB3, +	GPB4, +	GPB5, +	GPB6, +	GPB7, +	GPB8, +	GPB9, +	GPB10, + +	GPC0 = 64, +	GPC1, +	GPC2, +	GPC3, +	GPC4, +	GPC5, +	GPC6, +	GPC7, +	GPC8, +	GPC9, +	GPC10, +	GPC11, +	GPC12, +	GPC13, +	GPC14, +	GPC15, + +	GPD0 = 96, +	GPD1, +	GPD2, +	GPD3, +	GPD4, +	GPD5, +	GPD6, +	GPD7, +	GPD8, +	GPD9, +	GPD10, +	GPD11, +	GPD12, +	GPD13, +	GPD14, +	GPD15, + +	GPE0 = 128, +	GPE1, +	GPE2, +	GPE3, +	GPE4, +	GPE5, +	GPE6, +	GPE7, +	GPE8, +	GPE9, +	GPE10, +	GPE11, +	GPE12, +	GPE13, +	GPE14, +	GPE15, + +	GPF0 = 160, +	GPF1, +	GPF2, +	GPF3, +	GPF4, +	GPF5, +	GPF6, +	GPF7, + +	GPG0 = 192, +	GPG1, +	GPG2, +	GPG3, +	GPG4, +	GPG5, +	GPG6, +	GPG7, +	GPG8, +	GPG9, +	GPG10, +	GPG11, +	GPG12, +	GPG13, +	GPG14, +	GPG15, + +	GPH0 = 224, +	GPH1, +	GPH2, +	GPH3, +	GPH4, +	GPH5, +	GPH6, +	GPH7, +	GPH8, +	GPH9, +	GPH10, + +	GPJ0 = 256, +	GPJ1, +	GPJ2, +	GPJ3, +	GPJ4, +	GPJ5, +	GPJ6, +	GPJ7, +	GPJ8, +	GPJ9, +	GPJ10, +	GPJ11, +	GPJ12, +}; + +#endif diff --git a/arch/arm/include/asm/arch-s3c24x0/iomux.h b/arch/arm/include/asm/arch-s3c24x0/iomux.h new file mode 100644 index 000000000..cc22de749 --- /dev/null +++ b/arch/arm/include/asm/arch-s3c24x0/iomux.h @@ -0,0 +1,200 @@ +/* + * Copyright (c) 2012 + * + * Gabriel Huau <contact@huau-gabriel.fr> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef _S3C24X0_IOMUX_H_ +#define _S3C24X0_IOMUX_H_ + +enum s3c2440_iomux_func { +	/* PORT A */ +	IOMUXA_ADDR0	= 1, +	IOMUXA_ADDR16	= (1 << 1), +	IOMUXA_ADDR17	= (1 << 2), +	IOMUXA_ADDR18	= (1 << 3), +	IOMUXA_ADDR19	= (1 << 4), +	IOMUXA_ADDR20	= (1 << 5), +	IOMUXA_ADDR21	= (1 << 6), +	IOMUXA_ADDR22	= (1 << 7), +	IOMUXA_ADDR23	= (1 << 8), +	IOMUXA_ADDR24	= (1 << 9), +	IOMUXA_ADDR25	= (1 << 10), +	IOMUXA_ADDR26	= (1 << 11), +	IOMUXA_nGCS1	= (1 << 12), +	IOMUXA_nGCS2	= (1 << 13), +	IOMUXA_nGCS3	= (1 << 14), +	IOMUXA_nGCS4	= (1 << 15), +	IOMUXA_nGCS5	= (1 << 16), +	IOMUXA_CLE	= (1 << 17), +	IOMUXA_ALE	= (1 << 18), +	IOMUXA_nFWE	= (1 << 19), +	IOMUXA_nFRE	= (1 << 20), +	IOMUXA_nRSTOUT	= (1 << 21), +	IOMUXA_nFCE		= (1 << 22), + +	/* PORT B */ +	IOMUXB_nXDREQ0	= (2 << 20), +	IOMUXB_nXDACK0	= (2 << 18), +	IOMUXB_nXDREQ1	= (2 << 16), +	IOMUXB_nXDACK1	= (2 << 14), +	IOMUXB_nXBREQ	= (2 << 12), +	IOMUXB_nXBACK	= (2 << 10), +	IOMUXB_TCLK0	= (2 << 8), +	IOMUXB_TOUT3	= (2 << 6), +	IOMUXB_TOUT2	= (2 << 4), +	IOMUXB_TOUT1	= (2 << 2), +	IOMUXB_TOUT0	= 2, + +	/* PORT C */ +	IOMUXC_VS7	= (2 << 30), +	IOMUXC_VS6	= (2 << 28), +	IOMUXC_VS5	= (2 << 26), +	IOMUXC_VS4	= (2 << 24), +	IOMUXC_VS3	= (2 << 22), +	IOMUXC_VS2	= (2 << 20), +	IOMUXC_VS1	= (2 << 18), +	IOMUXC_VS0	= (2 << 16), +	IOMUXC_LCD_LPCREVB	= (2 << 14), +	IOMUXC_LCD_LPCREV	= (2 << 12), +	IOMUXC_LCD_LPCOE	= (2 << 10), +	IOMUXC_VM		= (2 << 8), +	IOMUXC_VFRAME	= (2 << 6), +	IOMUXC_VLINE	= (2 << 4), +	IOMUXC_VCLK		= (2 << 2), +	IOMUXC_LEND		= 2, +	IOMUXC_I2SSDI	= (3 << 8), + +	/* PORT D */ +	IOMUXD_VS23	= (2 << 30), +	IOMUXD_VS22	= (2 << 28), +	IOMUXD_VS21	= (2 << 26), +	IOMUXD_VS20	= (2 << 24), +	IOMUXD_VS19	= (2 << 22), +	IOMUXD_VS18	= (2 << 20), +	IOMUXD_VS17	= (2 << 18), +	IOMUXD_VS16	= (2 << 16), +	IOMUXD_VS15	= (2 << 14), +	IOMUXD_VS14	= (2 << 12), +	IOMUXD_VS13	= (2 << 10), +	IOMUXD_VS12	= (2 << 8), +	IOMUXD_VS11	= (2 << 6), +	IOMUXD_VS10	= (2 << 4), +	IOMUXD_VS9	= (2 << 2), +	IOMUXD_VS8	= 2, +	IOMUXD_nSS0	= (3 << 30), +	IOMUXD_nSS1	= (3 << 28), +	IOMUXD_SPICLK1	= (3 << 20), +	IOMUXD_SPIMOSI1	= (3 << 18), +	IOMUXD_SPIMISO1	= (3 << 16), + +	/* PORT E */ +	IOMUXE_IICSDA	= (2 << 30), +	IOMUXE_IICSCL	= (2 << 28), +	IOMUXE_SPICLK0	= (2 << 26), +	IOMUXE_SPIMOSI0	= (2 << 24), +	IOMUXE_SPIMISO0	= (2 << 22), +	IOMUXE_SDDAT3	= (2 << 20), +	IOMUXE_SDDAT2	= (2 << 18), +	IOMUXE_SDDAT1	= (2 << 16), +	IOMUXE_SDDAT0	= (2 << 14), +	IOMUXE_SDCMD	= (2 << 12), +	IOMUXE_SDCLK	= (2 << 10), +	IOMUXE_I2SDO	= (2 << 8), +	IOMUXE_I2SDI	= (2 << 6), +	IOMUXE_CDCLK	= (2 << 4), +	IOMUXE_I2SSCLK	= (2 << 2), +	IOMUXE_I2SLRCK	= 2, +	IOMUXE_AC_SDATA_OUT	= (3 << 8), +	IOMUXE_AC_SDATA_IN	= (3 << 6), +	IOMUXE_AC_nRESET	= (3 << 4), +	IOMUXE_AC_BIT_CLK	= (3 << 2), +	IOMUXE_AC_SYNC		= 3, + +	/* PORT F */ +	IOMUXF_EINT7	= (2 << 14), +	IOMUXF_EINT6	= (2 << 12), +	IOMUXF_EINT5	= (2 << 10), +	IOMUXF_EINT4	= (2 << 8), +	IOMUXF_EINT3	= (2 << 6), +	IOMUXF_EINT2	= (2 << 4), +	IOMUXF_EINT1	= (2 << 2), +	IOMUXF_EINT0	= 2, + +	/* PORT G */ +	IOMUXG_EINT23	= (2 << 30), +	IOMUXG_EINT22	= (2 << 28), +	IOMUXG_EINT21	= (2 << 26), +	IOMUXG_EINT20	= (2 << 24), +	IOMUXG_EINT19	= (2 << 22), +	IOMUXG_EINT18	= (2 << 20), +	IOMUXG_EINT17	= (2 << 18), +	IOMUXG_EINT16	= (2 << 16), +	IOMUXG_EINT15	= (2 << 14), +	IOMUXG_EINT14	= (2 << 12), +	IOMUXG_EINT13	= (2 << 10), +	IOMUXG_EINT12	= (2 << 8), +	IOMUXG_EINT11	= (2 << 6), +	IOMUXG_EINT10	= (2 << 4), +	IOMUXG_EINT9	= (2 << 2), +	IOMUXG_EINT8	= 2, +	IOMUXG_TCLK1	= (3 << 22), +	IOMUXG_nCTS1	= (3 << 20), +	IOMUXG_nRTS1	= (3 << 18), +	IOMUXG_SPICLK1	= (3 << 14), +	IOMUXG_SPIMOSI1	= (3 << 12), +	IOMUXG_SPIMISO1	= (3 << 10), +	IOMUXG_LCD_PWRDN	= (3 << 8), +	IOMUXG_nSS1			= (3 << 6), +	IOMUXG_nSS0			= (3 << 4), + +	/* PORT H */ +	IOMUXH_CLKOUT1	= (2 << 20), +	IOMUXH_CLKOUT0	= (2 << 18), +	IOMUXH_UEXTCLK	= (2 << 16), +	IOMUXH_RXD2		= (2 << 14), +	IOMUXH_TXD2		= (2 << 12), +	IOMUXH_RXD1		= (2 << 10), +	IOMUXH_TXD1		= (2 << 8), +	IOMUXH_RXD0		= (2 << 6), +	IOMUXH_TXD0		= (2 << 4), +	IOMUXH_nRTS0	= (2 << 2), +	IOMUXH_nCTS0	= 2, +	IOMUXH_nCTS1	= (3 << 14), +	IOMUXH_nRTS1	= (3 << 12), + +	/* PORT J */ +	IOMUXJ_CAMRESET		= (2 << 24), +	IOMUXJ_CAMCLKOUT	= (2 << 22), +	IOMUXJ_CAMHREF		= (2 << 20), +	IOMUXJ_CAMVSYNC		= (2 << 18), +	IOMUXJ_CAMPCLK		= (2 << 16), +	IOMUXJ_CAMDATA7		= (2 << 14), +	IOMUXJ_CAMDATA6		= (2 << 12), +	IOMUXJ_CAMDATA5		= (2 << 10), +	IOMUXJ_CAMDATA4		= (2 << 8), +	IOMUXJ_CAMDATA3		= (2 << 6), +	IOMUXJ_CAMDATA2		= (2 << 4), +	IOMUXJ_CAMDATA1		= (2 << 2), +	IOMUXJ_CAMDATA0		= 2 +}; + +#endif diff --git a/arch/arm/include/asm/arch-socfpga/reset_manager.h b/arch/arm/include/asm/arch-socfpga/reset_manager.h new file mode 100644 index 000000000..d9d2c1c56 --- /dev/null +++ b/arch/arm/include/asm/arch-socfpga/reset_manager.h @@ -0,0 +1,37 @@ +/* + *  Copyright (C) 2012 Altera Corporation <www.altera.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef	_RESET_MANAGER_H_ +#define	_RESET_MANAGER_H_ + +void reset_cpu(ulong addr); +void reset_deassert_peripherals_handoff(void); + +struct socfpga_reset_manager { +	u32	padding1; +	u32	ctrl; +	u32	padding2; +	u32	padding3; +	u32	mpu_mod_reset; +	u32	per_mod_reset; +	u32	per2_mod_reset; +	u32	brg_mod_reset; +}; + +#define RSTMGR_CTRL_SWWARMRSTREQ_LSB 1 + +#endif /* _RESET_MANAGER_H_ */ diff --git a/arch/arm/include/asm/arch-socfpga/socfpga_base_addrs.h b/arch/arm/include/asm/arch-socfpga/socfpga_base_addrs.h new file mode 100644 index 000000000..f353eb261 --- /dev/null +++ b/arch/arm/include/asm/arch-socfpga/socfpga_base_addrs.h @@ -0,0 +1,27 @@ +/* + *  Copyright (C) 2012 Altera Corporation <www.altera.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef _SOCFPGA_BASE_ADDRS_H_ +#define _SOCFPGA_BASE_ADDRS_H_ + +#define SOCFPGA_L3REGS_ADDRESS 0xff800000 +#define SOCFPGA_UART0_ADDRESS 0xffc02000 +#define SOCFPGA_UART1_ADDRESS 0xffc03000 +#define SOCFPGA_OSC1TIMER0_ADDRESS 0xffd00000 +#define SOCFPGA_RSTMGR_ADDRESS 0xffd05000 + +#endif /* _SOCFPGA_BASE_ADDRS_H_ */ diff --git a/arch/arm/include/asm/arch-socfpga/spl.h b/arch/arm/include/asm/arch-socfpga/spl.h new file mode 100644 index 000000000..efd0c060c --- /dev/null +++ b/arch/arm/include/asm/arch-socfpga/spl.h @@ -0,0 +1,26 @@ +/* + *  Copyright (C) 2012 Pavel Machek <pavel@denx.de> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef _SOCFPGA_SPL_H_ +#define _SOCFPGA_SPL_H_ + +/* Symbols from linker script */ +extern char __malloc_start, __malloc_end, __stack_start; + +#define BOOT_DEVICE_RAM 1 + +#endif diff --git a/arch/arm/include/asm/arch-socfpga/timer.h b/arch/arm/include/asm/arch-socfpga/timer.h new file mode 100644 index 000000000..830c94a27 --- /dev/null +++ b/arch/arm/include/asm/arch-socfpga/timer.h @@ -0,0 +1,29 @@ +/* + *  Copyright (C) 2012 Altera Corporation <www.altera.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef _SOCFPGA_TIMER_H_ +#define _SOCFPGA_TIMER_H_ + +struct socfpga_timer { +	u32	load_val; +	u32	curr_val; +	u32	ctrl; +	u32	eoi; +	u32	int_stat; +}; + +#endif diff --git a/arch/arm/include/asm/mach-types.h b/arch/arm/include/asm/mach-types.h index 2d5c3bc37..a676b6d90 100644 --- a/arch/arm/include/asm/mach-types.h +++ b/arch/arm/include/asm/mach-types.h @@ -1105,6 +1105,8 @@ extern unsigned int __machine_arch_type;  #define MACH_TYPE_UBISYS_P9D_EVP       3493  #define MACH_TYPE_ATDGP318             3494  #define MACH_TYPE_OMAP5_SEVM           3777 +#define MACH_TYPE_ARMADILLO_800EVA     3863 +#define MACH_TYPE_KZM9G                4140  #ifdef CONFIG_ARCH_EBSA110  # ifdef machine_arch_type @@ -14222,6 +14224,30 @@ extern unsigned int __machine_arch_type;  # define machine_is_omap5_sevm()      (0)  #endif +#ifdef CONFIG_MACH_ARMADILLO800EVA +# ifdef machine_arch_type +#  undef machine_arch_type +#  define machine_arch_type __machine_arch_type +# else +#  define machine_arch_type MACH_TYPE_ARMADILLO800EVA +# endif +# define machine_is_armadillo800eva()	(machine_arch_type == MACH_TYPE_ARMADILLO800EVA) +#else +# define machine_is_armadillo800eva()	(0) +#endif + +#ifdef CONFIG_MACH_KZM9G +# ifdef machine_arch_type +#  undef machine_arch_type +#  define machine_arch_type __machine_arch_type +# else +#  define machine_arch_type MACH_TYPE_KZM9G +# endif +# define machine_is_kzm9g()	(machine_arch_type == MACH_TYPE_KZM9G) +#else +# define machine_is_kzm9g()	(0) +#endif +  /*   * These have not yet been registered   */ |