Home | History | Annotate | Line # | Download | only in imx
imx51reg.h revision 1.1
      1  1.1  bsh /* $NetBSD: imx51reg.h,v 1.1 2010/11/13 07:11:03 bsh Exp $ */
      2  1.1  bsh /*-
      3  1.1  bsh  * Copyright (c) 2007 The NetBSD Foundation, Inc.
      4  1.1  bsh  * All rights reserved.
      5  1.1  bsh  *
      6  1.1  bsh  * This code is derived from software contributed to The NetBSD Foundation
      7  1.1  bsh  * by Matt Thomas.
      8  1.1  bsh  *
      9  1.1  bsh  * Redistribution and use in source and binary forms, with or without
     10  1.1  bsh  * modification, are permitted provided that the following conditions
     11  1.1  bsh  * are met:
     12  1.1  bsh  * 1. Redistributions of source code must retain the above copyright
     13  1.1  bsh  *    notice, this list of conditions and the following disclaimer.
     14  1.1  bsh  * 2. Redistributions in binary form must reproduce the above copyright
     15  1.1  bsh  *    notice, this list of conditions and the following disclaimer in the
     16  1.1  bsh  *    documentation and/or other materials provided with the distribution.
     17  1.1  bsh  *
     18  1.1  bsh  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     19  1.1  bsh  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     20  1.1  bsh  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     21  1.1  bsh  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     22  1.1  bsh  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     23  1.1  bsh  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     24  1.1  bsh  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     25  1.1  bsh  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     26  1.1  bsh  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     27  1.1  bsh  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     28  1.1  bsh  * POSSIBILITY OF SUCH DAMAGE.
     29  1.1  bsh  */
     30  1.1  bsh 
     31  1.1  bsh #ifndef _ARM_IMX_IMX51REG_H_
     32  1.1  bsh #define	_ARM_IMX_IMX51REG_H_
     33  1.1  bsh 
     34  1.1  bsh #define	BOOTROM_BASE	0x00000000
     35  1.1  bsh #define	BOOTROM_SIZE	0x9000
     36  1.1  bsh 
     37  1.1  bsh #define	SCCRAM_BASE	0x1ffe0000
     38  1.1  bsh #define	SCCRAM_SIZE	0x20000
     39  1.1  bsh 
     40  1.1  bsh #define	GPUMEM_BASE	0x20000000
     41  1.1  bsh #define	GPUMEM_SIZE	0x20000
     42  1.1  bsh 
     43  1.1  bsh #define	GPU_BASE	0x30000000
     44  1.1  bsh #define	GPU_SIZE	0x10000000
     45  1.1  bsh 
     46  1.1  bsh /* LCD controller */
     47  1.1  bsh #define	IPUEX_BASE	0x40000000
     48  1.1  bsh #define	IPUEX_SIZE	0x20000000
     49  1.1  bsh 
     50  1.1  bsh #define	DEBUGROM_BASE	0x60000000
     51  1.1  bsh #define	DEBUGROM_SIZE	0x1000
     52  1.1  bsh 
     53  1.1  bsh #define	ESDHC1_BASE	0x70004000
     54  1.1  bsh #define	ESDHC2_BASE	0x70008000
     55  1.1  bsh #define	ESDHC3_BASE	0x70020000
     56  1.1  bsh #define	ESDHC4_BASE	0x70024000
     57  1.1  bsh #define	ESDHC_SIZE	0x4000
     58  1.1  bsh 
     59  1.1  bsh #define	UART1_BASE	0x73fbc000
     60  1.1  bsh #define	UART2_BASE	0x73fc0000
     61  1.1  bsh #define	UART3_BASE	0x7000c000
     62  1.1  bsh /* register definitions in imxuartreg.h */
     63  1.1  bsh 
     64  1.1  bsh #define	ECSPI1_BASE	0x70010000
     65  1.1  bsh #define	ECSPI2_BASE	0x83fac000
     66  1.1  bsh #define	ECSPI_SIZE	0x4000
     67  1.1  bsh 
     68  1.1  bsh #define	SSI1_BASE	0x83fcc000
     69  1.1  bsh #define	SSI2_BASE	0x70014000
     70  1.1  bsh #define	SSI3_BASE	0x83fe8000
     71  1.1  bsh /* register definitions in imxssireg.h */
     72  1.1  bsh 
     73  1.1  bsh #define	SPDIF_BASE	0x70028000
     74  1.1  bsh #define	SPDIF_SIZE	0x4000
     75  1.1  bsh 
     76  1.1  bsh #define	PATA_UDMA_BASE	0x70030000
     77  1.1  bsh #define	PATA_UDMA_SIZE	0x4000
     78  1.1  bsh #define	PATA_PIO_BASE	0x83fe0000
     79  1.1  bsh #define	PATA_PIO_SIZE	0x4000
     80  1.1  bsh 
     81  1.1  bsh #define	SLM_BASE	0x70034000
     82  1.1  bsh #define	SLM_SIZE	0x4000
     83  1.1  bsh 
     84  1.1  bsh #define	HSI2C_BASE	0x70038000
     85  1.1  bsh #define	HSI2C_SIZE	0x4000
     86  1.1  bsh 
     87  1.1  bsh #define	SPBA_BASE	0x7003c000
     88  1.1  bsh #define	SPBA_SIZE	0x4000
     89  1.1  bsh 
     90  1.1  bsh #define	USBOH3_BASE	0x73f80000
     91  1.1  bsh #define	USBOH3_PL301_BASE	0x73fc4000
     92  1.1  bsh #define	USB_OTG_BASE	0x43F88000
     93  1.1  bsh #define	USB_EHCI1_BASE	0x43F88200
     94  1.1  bsh #define	USB_EHCI2_BASE	0x43F88400
     95  1.1  bsh #define	USB_EHCI_SIZE	0x0200
     96  1.1  bsh #define	USB_CONTROL	0x43F88600
     97  1.1  bsh 
     98  1.1  bsh 
     99  1.1  bsh /* GPIO module */
    100  1.1  bsh 
    101  1.1  bsh #define	GPIO_BASE(n)	(0x73f84000 + 0x4000 * ((n)-1))
    102  1.1  bsh 
    103  1.1  bsh #define	GPIO1_BASE	GPIO_BASE(1)
    104  1.1  bsh #define	GPIO2_BASE	GPIO_BASE(2)
    105  1.1  bsh #define	GPIO3_BASE	GPIO_BASE(3)
    106  1.1  bsh #define	GPIO4_BASE	GPIO_BASE(4)
    107  1.1  bsh 
    108  1.1  bsh #define	GPIO_NPINS		32
    109  1.1  bsh #define	GPIO_NGROUPS		3
    110  1.1  bsh 
    111  1.1  bsh #define	KPP_BASE	0x73f94000
    112  1.1  bsh /* register definitions in imxkppreg.h */
    113  1.1  bsh 
    114  1.1  bsh #define	WDOG1_BASE	0x73f98000
    115  1.1  bsh #define	WDOG2_BASE	0x73f9c000
    116  1.1  bsh #define	WDOG_SIZE	0x4000
    117  1.1  bsh 
    118  1.1  bsh #define	GPT_BASE	0x73fa0000
    119  1.1  bsh #define	GPT_SIZE	0x4000
    120  1.1  bsh 
    121  1.1  bsh #define	SRTC_BASE	0x73fa4000
    122  1.1  bsh #define	SRTC_SIZE	0x4000
    123  1.1  bsh 
    124  1.1  bsh /* IO multiplexor */
    125  1.1  bsh #define	IOMUXC_BASE	0x73fa8000
    126  1.1  bsh #define	IOMUXC_SIZE	0x4000
    127  1.1  bsh 
    128  1.1  bsh #define	IOMUXC_MUX_CTL		0x001c		/* multiprex control */
    129  1.1  bsh #define	 IOMUX_CONFIG_ALT0	(0)
    130  1.1  bsh #define	 IOMUX_CONFIG_ALT1	(1)
    131  1.1  bsh #define	 IOMUX_CONFIG_ALT2	(2)
    132  1.1  bsh #define	 IOMUX_CONFIG_ALT3	(3)
    133  1.1  bsh #define	 IOMUX_CONFIG_ALT4	(4)
    134  1.1  bsh #define	 IOMUX_CONFIG_ALT5	(5)
    135  1.1  bsh #define	 IOMUX_CONFIG_ALT6	(6)
    136  1.1  bsh #define	 IOMUX_CONFIG_ALT7	(7)
    137  1.1  bsh #define	IOMUXC_PAD_CTL		0x03f0		/* pad control */
    138  1.1  bsh #define	 PAD_CTL_HYS_NONE	(0x0 << 8)
    139  1.1  bsh #define	 PAD_CTL_HYS_ENABLE	(0x1 << 8)
    140  1.1  bsh #define	 PAD_CTL_PKE_NONE	(0x0 << 7)
    141  1.1  bsh #define	 PAD_CTL_PKE_ENABLE	(0x1 << 7)
    142  1.1  bsh #define	 PAD_CTL_PUE_KEEPER	(0x0 << 6)
    143  1.1  bsh #define	 PAD_CTL_PUE_PULL	(0x1 << 6)
    144  1.1  bsh #define	 PAD_CTL_PUS_100K_PD	(0x0 << 4)
    145  1.1  bsh #define	 PAD_CTL_PUS_47K_PU	(0x1 << 4)
    146  1.1  bsh #define	 PAD_CTL_PUS_100K_PU	(0x2 << 4)
    147  1.1  bsh #define	 PAD_CTL_PUS_22K_PU	(0x3 << 4)
    148  1.1  bsh #define	 PAD_CTL_ODE_CMOS	(0x0 << 3)
    149  1.1  bsh #define	 PAD_CTL_ODE_OpenDrain	(0x1 << 3)
    150  1.1  bsh #define	 PAD_CTL_DSE_LOW	(0x0 << 1)
    151  1.1  bsh #define	 PAD_CTL_DSE_MID	(0x1 << 1)
    152  1.1  bsh #define	 PAD_CTL_DSE_HIGH	(0x2 << 1)
    153  1.1  bsh #define	 PAD_CTL_DSE_MAX	(0x3 << 1)
    154  1.1  bsh #define	 PAD_CTL_SRE_SLOW	(0x0 << 0)
    155  1.1  bsh #define	 PAD_CTL_SRE_FAST	(0x1 << 0)
    156  1.1  bsh #define	IOMUXC_INPUT_CTL	0x08c4		/* input control */
    157  1.1  bsh #define	 INPUT_DAISY_0		0
    158  1.1  bsh #define	 INPUT_DAISY_1		1
    159  1.1  bsh #define	 INPUT_DAISY_2		2
    160  1.1  bsh #define	 INPUT_DAISY_3		3
    161  1.1  bsh #define	 INPUT_DAISY_4		4
    162  1.1  bsh #define	 INPUT_DAISY_5		5
    163  1.1  bsh #define	 INPUT_DAISY_6		6
    164  1.1  bsh #define	 INPUT_DAISY_7		7
    165  1.1  bsh 
    166  1.1  bsh /*
    167  1.1  bsh  * IOMUX index
    168  1.1  bsh  */
    169  1.1  bsh #define	IOMUX_PIN_TO_MUX_ADDRESS(pin)	(((pin) >> 16) & 0xffff)
    170  1.1  bsh #define	IOMUX_PIN_TO_PAD_ADDRESS(pin)	(((pin) >>  0) & 0xffff)
    171  1.1  bsh 
    172  1.1  bsh #define	IOMUX_PIN(mux_adr, pad_adr)			\
    173  1.1  bsh 	(((mux_adr) << 16) | (((pad_adr) << 0)))
    174  1.1  bsh #define	IOMUX_MUX_NONE	0xffff
    175  1.1  bsh #define	IOMUX_PAD_NONE	0xffff
    176  1.1  bsh 
    177  1.1  bsh /* EPIT */
    178  1.1  bsh #define	EPIT1_BASE	0x73FAC000
    179  1.1  bsh #define	EPIT2_BASE	0x73FB0000
    180  1.1  bsh /* register definitions in imxepitreg.h */
    181  1.1  bsh 
    182  1.1  bsh #define	PWM1_BASE	0x73fb4000
    183  1.1  bsh #define	PWM2_BASE	0x73fb8000
    184  1.1  bsh #define	PWM_SIZE	0x4000
    185  1.1  bsh 
    186  1.1  bsh #define	SRC_BASE	0x73fd0000
    187  1.1  bsh #define	SRC_SIZE	0x4000
    188  1.1  bsh 
    189  1.1  bsh #define	CCM_BASE	0x73fd4000
    190  1.1  bsh #define	CCM_SIZE	0x4000
    191  1.1  bsh 
    192  1.1  bsh #define	GPC_BASE	0x73fd8000
    193  1.1  bsh #define	GPC_SIZE	0x4000
    194  1.1  bsh 
    195  1.1  bsh #define	DPLLIP1_BASE	0x83f80000
    196  1.1  bsh #define	DPLLIP2_BASE	0x83f84000
    197  1.1  bsh #define	DPLLIP3_BASE	0x83f88000
    198  1.1  bsh #define	DPLLIP_SIZE	0x4000
    199  1.1  bsh 
    200  1.1  bsh #define	AHBMAX_BASE	0x83f94000
    201  1.1  bsh #define	AHBMAX_SIZE	0x4000
    202  1.1  bsh 
    203  1.1  bsh #define	IIM_BASE	0x83f98000
    204  1.1  bsh #define	IIM_SIZE	0x4000
    205  1.1  bsh 
    206  1.1  bsh #define	CSU_BASE	0x83f9c000
    207  1.1  bsh #define	CSU_SIZE	0x4000
    208  1.1  bsh 
    209  1.1  bsh #define	OWIRE_BASE	0x83fa4000	/* 1-wire */
    210  1.1  bsh #define	OWIRE_SIZE	0x4000
    211  1.1  bsh 
    212  1.1  bsh #define	FIRI_BASE	0x83fa8000
    213  1.1  bsh #define	FIRI_SIZE	0x4000
    214  1.1  bsh 
    215  1.1  bsh 
    216  1.1  bsh #define	SDMA_BASE	0x83fb0000
    217  1.1  bsh #define	SDMA_SIZE	0x4000
    218  1.1  bsh /* see imxsdmareg.h for register definitions */
    219  1.1  bsh 
    220  1.1  bsh #define	SCC_BASE	0x83fb4000
    221  1.1  bsh #define	SCC_SIZE	0x4000
    222  1.1  bsh 
    223  1.1  bsh #define	ROMCP_BASE	0x83fb8000
    224  1.1  bsh #define	ROMCP_SIZE	0x4000
    225  1.1  bsh 
    226  1.1  bsh #define	RTIC_BASE	0x83fbc000
    227  1.1  bsh #define	RTIC_SIZE	0x4000
    228  1.1  bsh 
    229  1.1  bsh #define	CSPI_BASE	0x83fc0000
    230  1.1  bsh #define	CSPI_SIZE	0x4000
    231  1.1  bsh 
    232  1.1  bsh #define	I2C1_BASE	0x83fc8000
    233  1.1  bsh #define	I2C2_BASE	0x83fc4000
    234  1.1  bsh /* register definitions in imxi2creg.h */
    235  1.1  bsh 
    236  1.1  bsh #define	AUDMUX_BASE	0x83fd0000
    237  1.1  bsh #define	AUDMUX_SIZE	0x4000
    238  1.1  bsh #define	AUDMUX_PTCR(n)	((n - 1) * 0x8)
    239  1.1  bsh #define	 PTCR_TFSDIR	(1 << 31)
    240  1.1  bsh #define	 PTCR_TFSEL(x)	(((x) & 0x7) << 27)
    241  1.1  bsh #define	 PTCR_TCLKDIR	(1 << 26)
    242  1.1  bsh #define	 PTCR_TCSEL(x)	(((x) & 0x7) << 22)
    243  1.1  bsh #define	 PTCR_RFSDIR	(1 << 21)
    244  1.1  bsh #define	 PTCR_RFSEL(x)	(((x) & 0x7) << 17)
    245  1.1  bsh #define	 PTCR_RCLKDIR	(1 << 16)
    246  1.1  bsh #define	 PTCR_RCSEL(x)	(((x) & 0x7) << 12)
    247  1.1  bsh #define	 PTCR_SYN	(1 << 11)
    248  1.1  bsh 
    249  1.1  bsh #define	AUDMUX_PDCR(n)	((n - 1) * 0x8 + 0x4)
    250  1.1  bsh #define	 PDCR_RXDSEL(x)	(((x) & 0x7) << 13)
    251  1.1  bsh #define	 PDCR_TXRXEN	(1 << 12)
    252  1.1  bsh #define	 PDCR_MODE(x)	(((x) & 0x3) << 8)
    253  1.1  bsh #define	 PDCR_INMMASK(x)	(((x) & 0xff) << 0)
    254  1.1  bsh #define	AUDMUX_CNMCR	0x38
    255  1.1  bsh 
    256  1.1  bsh #define	EMI_BASE	0x83fd8000
    257  1.1  bsh #define	EMI_SIZE	0x4000
    258  1.1  bsh 
    259  1.1  bsh #define	SIM_BASE	0x83fe4000
    260  1.1  bsh #define	SIM_SIZE	0x4000
    261  1.1  bsh 
    262  1.1  bsh #define	FEC_BASE	0x83fec000
    263  1.1  bsh #define	FEC_SIZE	0x4000
    264  1.1  bsh #define	TVE_BASE	0x83ff0000
    265  1.1  bsh #define	TVE_SIZE	0x4000
    266  1.1  bsh #define	VPU_BASE	0x83ff4000
    267  1.1  bsh #define	VPU_SIZE	0x4000
    268  1.1  bsh #define	SAHARA_BASE	0x83ff8000
    269  1.1  bsh #define	SAHARA_SIZE	0x4000
    270  1.1  bsh 
    271  1.1  bsh #define	CSD0DDR_BASE	0x90000000
    272  1.1  bsh #define	CSD1DDR_BASE	0xa0000000
    273  1.1  bsh #define	CSDDDR_SIZE	0x10000000	/* 256MiB */
    274  1.1  bsh #define	CS0_BASE	0xb0000000
    275  1.1  bsh #define	CS0_SIZE	0x08000000	/* 128MiB */
    276  1.1  bsh #define	CS1_BASE	0xb8000000
    277  1.1  bsh #define	CS1_SIZE	0x08000000	/* 128MiB */
    278  1.1  bsh #define	CS2_BASE	0xc0000000
    279  1.1  bsh #define	CS2_SIZE	0x08000000	/* 128MiB */
    280  1.1  bsh #define	CS3_BASE	0xc8000000
    281  1.1  bsh #define	CS3_SIZE	0x04000000	/* 64MiB */
    282  1.1  bsh #define	CS4_BASE	0xcc000000
    283  1.1  bsh #define	CS4_SIZE	0x02000000	/* 32MiB */
    284  1.1  bsh #define	CS5_BASE	0xcefe0000
    285  1.1  bsh #define	CS5_SIZE	0x00010000	/* 32MiB */
    286  1.1  bsh #define	NAND_FLASH_BASE	0xcfff0000	/* internal buffer */
    287  1.1  bsh #define	NAND_FLASH_SIZE	0x00010000
    288  1.1  bsh 
    289  1.1  bsh #define	GPU2D_BASE	0xd0000000
    290  1.1  bsh #define	GPU2D_SIZE	0x10000000
    291  1.1  bsh 
    292  1.1  bsh #define	TZIC_BASE		0xe0000000
    293  1.1  bsh /* register definitions in imx51_tzicreg.h */
    294  1.1  bsh 
    295  1.1  bsh #endif /* _ARM_IMX_IMX51REG_H_ */
    296