Home | History | Annotate | Line # | Download | only in marvell
      1  1.7    andvar /*	$NetBSD: kirkwoodreg.h,v 1.7 2022/10/31 20:30:22 andvar Exp $	*/
      2  1.1  kiyohara /*
      3  1.1  kiyohara  * Copyright (c) 2007, 2008 KIYOHARA Takashi
      4  1.1  kiyohara  * All rights reserved.
      5  1.1  kiyohara  *
      6  1.1  kiyohara  * Redistribution and use in source and binary forms, with or without
      7  1.1  kiyohara  * modification, are permitted provided that the following conditions
      8  1.1  kiyohara  * are met:
      9  1.1  kiyohara  * 1. Redistributions of source code must retain the above copyright
     10  1.1  kiyohara  *    notice, this list of conditions and the following disclaimer.
     11  1.1  kiyohara  * 2. Redistributions in binary form must reproduce the above copyright
     12  1.1  kiyohara  *    notice, this list of conditions and the following disclaimer in the
     13  1.1  kiyohara  *    documentation and/or other materials provided with the distribution.
     14  1.1  kiyohara  *
     15  1.1  kiyohara  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
     16  1.1  kiyohara  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     17  1.1  kiyohara  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     18  1.1  kiyohara  * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
     19  1.1  kiyohara  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     20  1.1  kiyohara  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
     21  1.1  kiyohara  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     22  1.1  kiyohara  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     23  1.1  kiyohara  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
     24  1.1  kiyohara  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     25  1.1  kiyohara  * POSSIBILITY OF SUCH DAMAGE.
     26  1.1  kiyohara  */
     27  1.1  kiyohara 
     28  1.1  kiyohara #ifndef _KIRKWOODREG_H_
     29  1.1  kiyohara #define _KIRKWOODREG_H_
     30  1.1  kiyohara 
     31  1.1  kiyohara #include <arm/marvell/mvsocreg.h>
     32  1.1  kiyohara #include <dev/marvell/mvgbereg.h>
     33  1.1  kiyohara 
     34  1.1  kiyohara /*
     35  1.3  kiyohara  *                MHz TCLK  GbE SATA TDMI Audio MTS GPIO TSens TWSI
     36  1.3  kiyohara  * 6180:     600/800, 166,  x1,   -,   -,    o,  -,  30,    -,  x1
     37  1.3  kiyohara  * 6190:         600, 166, *x2,  x1,   -,    -,  -,  36,    -,  x1
     38  1.3  kiyohara  * 6192:         800, 166,  x2,  x2,   o,    o,  o,  36,    -,  x1
     39  1.3  kiyohara  * 6281: 1.0/1.2/1.5, 200,  x2,  x2,   o,    o,  o,  50,    -,  x1
     40  1.3  kiyohara  * 6282:       ?-2.0, 200,  x2,  x2,   o,    o,  o,  50,    o,  x2
     41  1.3  kiyohara  *
     42  1.3  kiyohara  *  * GbE x1 + 100BT x1
     43  1.1  kiyohara  */
     44  1.1  kiyohara 
     45  1.1  kiyohara #define KIRKWOOD_UNITID_DDR		MVSOC_UNITID_DDR
     46  1.1  kiyohara #define KIRKWOOD_UNITID_DEVBUS		MVSOC_UNITID_DEVBUS
     47  1.1  kiyohara #define KIRKWOOD_UNITID_MLMB		MVSOC_UNITID_MLMB
     48  1.1  kiyohara #define KIRKWOOD_UNITID_CRYPT		0x3	/* Cryptographic Engine reg */
     49  1.7    andvar #define KIRKWOOD_UNITID_SA		0x3	/* Security Accelerator reg */
     50  1.1  kiyohara #define KIRKWOOD_UNITID_PEX		MVSOC_UNITID_PEX
     51  1.1  kiyohara #define KIRKWOOD_UNITID_USB		0x5	/* USB registers */
     52  1.1  kiyohara #define KIRKWOOD_UNITID_IDMA		0x6	/* IDMA registers */
     53  1.1  kiyohara #define KIRKWOOD_UNITID_XOR		0x6	/* XOR registers */
     54  1.1  kiyohara #define KIRKWOOD_UNITID_GBE		0x7	/* Gigabit Ethernet registers */
     55  1.1  kiyohara #define KIRKWOOD_UNITID_SATA		0x8	/* SATA registers */
     56  1.1  kiyohara #define KIRKWOOD_UNITID_SDIO		0x9	/* SDIO registers */
     57  1.1  kiyohara #define KIRKWOOD_UNITID_AUDIO		0xa	/* Audio registers */
     58  1.1  kiyohara #define KIRKWOOD_UNITID_MTS		0xb	/* MPEG Transport Stream reg */
     59  1.1  kiyohara #define KIRKWOOD_UNITID_TDM		0xd	/* TDM registers */
     60  1.1  kiyohara 
     61  1.1  kiyohara #define KIRKWOOD_ATTR_NAND		0x2f
     62  1.1  kiyohara #define KIRKWOOD_ATTR_SPI		0x1e
     63  1.1  kiyohara #define KIRKWOOD_ATTR_BOOTROM		0x1d
     64  1.1  kiyohara #define KIRKWOOD_ATTR_PEX_MEM		0xe8
     65  1.1  kiyohara #define KIRKWOOD_ATTR_PEX_IO		0xe0
     66  1.2  kiyohara #define KIRKWOOD_ATTR_PEX1_MEM		0xd8
     67  1.2  kiyohara #define KIRKWOOD_ATTR_PEX1_IO		0xd0
     68  1.1  kiyohara #define KIRKWOOD_ATTR_CRYPT		0x00
     69  1.1  kiyohara 
     70  1.1  kiyohara #define KIRKWOOD_IRQ_HIGH		0	/* High interrupt */
     71  1.1  kiyohara #define KIRKWOOD_IRQ_BRIDGE		1	/* Mbus-L to Mbus Bridge */
     72  1.1  kiyohara #define KIRKWOOD_IRQ_H2CPUDB		2	/* Doorbell interrupt */
     73  1.1  kiyohara #define KIRKWOOD_IRQ_CPU2HDB		3	/* Doorbell interrupt */
     74  1.1  kiyohara #define KIRKWOOD_IRQ_XOR0CHAN0		5	/* Xor 0 Channel0 */
     75  1.1  kiyohara #define KIRKWOOD_IRQ_XOR0CHAN1		6	/* Xor 0 Channel1 */
     76  1.1  kiyohara #define KIRKWOOD_IRQ_XOR1CHAN0		7	/* Xor 1 Channel0 */
     77  1.1  kiyohara #define KIRKWOOD_IRQ_XOR1CHAN1		8	/* Xor 1 Channel1 */
     78  1.1  kiyohara #define KIRKWOOD_IRQ_PEX0INT		9	/* PCI Express port0 INT A-D */
     79  1.2  kiyohara #define KIRKWOOD_IRQ_PEX1INT		10	/* PCI Express port1 INT A-D */
     80  1.1  kiyohara #define KIRKWOOD_IRQ_GBE0SUM		11	/* GbE0 summary */
     81  1.1  kiyohara #define KIRKWOOD_IRQ_GBE0RX		12	/* GbE0 receive interrupt */
     82  1.1  kiyohara #define KIRKWOOD_IRQ_GBE0TX		13	/* GbE0 transmit interrupt */
     83  1.1  kiyohara #define KIRKWOOD_IRQ_GBE0MISC		14	/* GbE0 miscellaneous intr */
     84  1.1  kiyohara #define KIRKWOOD_IRQ_GBE1SUM		15	/* GbE1 summary */
     85  1.1  kiyohara #define KIRKWOOD_IRQ_GBE1RX		16	/* GbE1 receive interrupt */
     86  1.1  kiyohara #define KIRKWOOD_IRQ_GBE1TX		17	/* GbE1 transmit interrupt */
     87  1.1  kiyohara #define KIRKWOOD_IRQ_GBE1MISC		18	/* GbE1 miscellaneous intr */
     88  1.1  kiyohara #define KIRKWOOD_IRQ_USB0CNT		19	/* USB0 controller interrupt */
     89  1.1  kiyohara #define KIRKWOOD_IRQ_SATA		21	/*Sata ports interrupt summary*/
     90  1.1  kiyohara #define KIRKWOOD_IRQ_SECURITYINT	22	/* Security engine completion */
     91  1.1  kiyohara #define KIRKWOOD_IRQ_SPIINT		23	/* SPI Interrupt */
     92  1.1  kiyohara #define KIRKWOOD_IRQ_AUDIOINT		24	/* Audio interrupt */
     93  1.1  kiyohara #define KIRKWOOD_IRQ_TS0INT		26	/* TS0 Interrupt */
     94  1.1  kiyohara #define KIRKWOOD_IRQ_SDIOINT		28	/* SDIO Interrupt */
     95  1.1  kiyohara #define KIRKWOOD_IRQ_TWSI		29	/* TWSI interrupt */
     96  1.1  kiyohara #define KIRKWOOD_IRQ_AVBINT		30	/* AVB Interrupt */
     97  1.1  kiyohara #define KIRKWOOD_IRQ_TDMINT		31	/* TDM Interrupt */
     98  1.3  kiyohara #define KIRKWOOD_IRQ_TWSI1		32	/* TWSI1 interrupt */
     99  1.1  kiyohara #define KIRKWOOD_IRQ_UART0INT		33	/* UART0 */
    100  1.1  kiyohara #define KIRKWOOD_IRQ_UART1INT		34	/* UART1 */
    101  1.1  kiyohara #define KIRKWOOD_IRQ_GPIOLO7_0		35	/* GPIO Low[7:0] */
    102  1.1  kiyohara #define KIRKWOOD_IRQ_GPIOLO8_15		36	/* GPIO Low[15:8] */
    103  1.1  kiyohara #define KIRKWOOD_IRQ_GPIOLO16_23	37	/* GPIO Low[23:16] */
    104  1.1  kiyohara #define KIRKWOOD_IRQ_GPIOLO24_31	38	/* GPIO Low[31:24] */
    105  1.1  kiyohara #define KIRKWOOD_IRQ_GPIOHI7_0		39	/* GPIO High[7:0] */
    106  1.1  kiyohara #define KIRKWOOD_IRQ_GPIOHI8_15		40	/* GPIO High[15:8] */
    107  1.1  kiyohara #define KIRKWOOD_IRQ_GPIOHI16_23	41	/* GPIO High[23:16] */
    108  1.1  kiyohara #define KIRKWOOD_IRQ_XOR0ERR		42	/* XOR0 error */
    109  1.1  kiyohara #define KIRKWOOD_IRQ_XOR1ERR		43	/* XOR1 error */
    110  1.1  kiyohara #define KIRKWOOD_IRQ_PEX0ERR		44	/* PCI Express0 error */
    111  1.2  kiyohara #define KIRKWOOD_IRQ_PEX1ERR		45	/* PCI Express1 error */
    112  1.1  kiyohara #define KIRKWOOD_IRQ_GBE0ERR		46	/* GbE port0 error */
    113  1.1  kiyohara #define KIRKWOOD_IRQ_GBE1ERR		47	/* GbE port1 error */
    114  1.1  kiyohara #define KIRKWOOD_IRQ_USBERR		48	/* USB error */
    115  1.1  kiyohara #define KIRKWOOD_IRQ_SECURITYERR	49	/* Cryptographic engine error */
    116  1.1  kiyohara #define KIRKWOOD_IRQ_AUDIOERR		50	/* Audio error */
    117  1.1  kiyohara #define KIRKWOOD_IRQ_RTCINT		53	/* Real time clock interrupt */
    118  1.1  kiyohara 
    119  1.1  kiyohara 
    120  1.1  kiyohara /*
    121  1.1  kiyohara  * Physical address of integrated peripherals
    122  1.1  kiyohara  */
    123  1.1  kiyohara 
    124  1.1  kiyohara #define KIRKWOOD_UNITID2PHYS(uid)	((KIRKWOOD_UNITID_ ## uid) << 16)
    125  1.1  kiyohara 
    126  1.1  kiyohara /*
    127  1.1  kiyohara  * Pin Multiplexing Interface Registers
    128  1.1  kiyohara  */
    129  1.1  kiyohara #define KIRKWOOD_MPP_BASE		(MVSOC_DEVBUS_BASE + 0x0000)
    130  1.1  kiyohara #define KIRKWOOD_MPP_MPPC0R		   0x00
    131  1.1  kiyohara #define KIRKWOOD_MPP_MPPC1R		   0x04
    132  1.1  kiyohara #define KIRKWOOD_MPP_MPPC2R		   0x08
    133  1.1  kiyohara #define KIRKWOOD_MPP_MPPC3R		   0x0c
    134  1.1  kiyohara #define KIRKWOOD_MPP_MPPC4R		   0x10
    135  1.1  kiyohara #define KIRKWOOD_MPP_MPPC5R		   0x14
    136  1.1  kiyohara #define KIRKWOOD_MPP_MPPC6R		   0x18
    137  1.1  kiyohara #define KIRKWOOD_MPP_SAMPLE_AT_RESET	   0x30
    138  1.1  kiyohara 
    139  1.1  kiyohara /*
    140  1.6  kiyohara  * Miscellaneous Registers
    141  1.6  kiyohara  */
    142  1.6  kiyohara #define KIRKWOOD_MISC_BASE		(MVSOC_DEVBUS_BASE + 0x0000)
    143  1.6  kiyohara #define KIRKWOOD_MISC_DEVICEID		   0x34
    144  1.6  kiyohara #define KIRKWOOD_MISC_CLOCKCONTROL	   0x4c
    145  1.6  kiyohara #define KIRKWOOD_MISC_SYSRSTLC		   0x50	/* SYSRSTn Length Counter */
    146  1.6  kiyohara #define KIRKWOOD_MISC_AGC		   0x7c	/* Analog Group Configuration */
    147  1.6  kiyohara #define KIRKWOOD_MISC_SSCGC		   0xd8	/* SSCG Configuration */
    148  1.6  kiyohara #define KIRKWOOD_MISC_PTPCC		   0xdc	/* PTP Clock Configuration */
    149  1.6  kiyohara #define KIRKWOOD_MISC_IOC0		   0xe0	/* IO Configuration 0 */
    150  1.6  kiyohara 
    151  1.6  kiyohara /*
    152  1.1  kiyohara  * Real-Time Clock Unit Registers
    153  1.1  kiyohara  */
    154  1.1  kiyohara #define KIRKWOOD_RTC_BASE		(MVSOC_DEVBUS_BASE + 0x0300)
    155  1.1  kiyohara 
    156  1.1  kiyohara /*
    157  1.1  kiyohara  * Serial Peripheral Interface Registers
    158  1.1  kiyohara  */
    159  1.1  kiyohara #define KIRKWOOD_SPI_BASE		(MVSOC_DEVBUS_BASE + 0x0600)
    160  1.1  kiyohara 
    161  1.1  kiyohara /*
    162  1.1  kiyohara  * Mbus-L to Mbus Bridge Registers
    163  1.1  kiyohara  */
    164  1.1  kiyohara /* CPU Address Map Registers */
    165  1.1  kiyohara #define KIRKWOOD_MLMB_NWINDOW		8
    166  1.1  kiyohara #define KIRKWOOD_MLMB_NREMAP		4
    167  1.1  kiyohara 
    168  1.1  kiyohara /* Main Interrupt Controller Registers */
    169  1.1  kiyohara #define KIRKWOOD_MLMB_MICLR		  0x200	/*Main Interrupt Cause Low reg*/
    170  1.1  kiyohara #define KIRKWOOD_MLMB_MIRQIMLR		  0x204	/*Main IRQ Interrupt Low Mask*/
    171  1.1  kiyohara #define KIRKWOOD_MLMB_MFIQIMLR		  0x208	/*Main FIQ Interrupt Low Mask*/
    172  1.1  kiyohara #define KIRKWOOD_MLMB_EIMLR		  0x20c	/*Endpoint Interrupt Low Mask*/
    173  1.1  kiyohara #define KIRKWOOD_MLMB_MICHR		  0x210	/*Main Intr Cause High reg*/
    174  1.1  kiyohara #define KIRKWOOD_MLMB_MIRQIMHR		  0x214	/*Main IRQ Interrupt High Mask*/
    175  1.1  kiyohara #define KIRKWOOD_MLMB_MFIQIMHR		  0x218	/*Main FIQ Interrupt High Mask*/
    176  1.1  kiyohara #define KIRKWOOD_MLMB_EIMHR		  0x21c	/*Endpoint Interrupt High Mask*/
    177  1.1  kiyohara 
    178  1.1  kiyohara 
    179  1.1  kiyohara /*
    180  1.4  kiyohara  * Kirkwood Thermal Sensor(6282 only)
    181  1.4  kiyohara  */
    182  1.4  kiyohara #define KIRKWOOD_TS_BASE	(MVSOC_DEVBUS_BASE + 0x0078)	/* XXXX: ??? */
    183  1.4  kiyohara 
    184  1.4  kiyohara /*
    185  1.3  kiyohara  * Two-Wire Serial Interface Registers
    186  1.3  kiyohara  */
    187  1.3  kiyohara #define KIRKWOOD_TWSI1_BASE	(MVSOC_TWSI_BASE + 0x0100)
    188  1.3  kiyohara 
    189  1.3  kiyohara /*
    190  1.2  kiyohara  * PCI-Express Interface Registers
    191  1.2  kiyohara  */
    192  1.2  kiyohara #define KIRKWOOD_PEX1_BASE	(MVSOC_PEX_BASE + 0x4000)
    193  1.2  kiyohara 
    194  1.2  kiyohara /*
    195  1.1  kiyohara  * Cryptographic Engine and Security Accelerator Registers
    196  1.5  kiyohara  */								/* 0x3d000 */
    197  1.5  kiyohara #define KIRKWOOD_CESA_BASE	(KIRKWOOD_UNITID2PHYS(CRYPT) + 0xd000)
    198  1.1  kiyohara 
    199  1.1  kiyohara /*
    200  1.1  kiyohara  * USB 2.0 Interface Registers
    201  1.1  kiyohara  */
    202  1.1  kiyohara #define KIRKWOOD_USB_BASE	(KIRKWOOD_UNITID2PHYS(USB))	/* 0x50000 */
    203  1.1  kiyohara 
    204  1.1  kiyohara /*
    205  1.1  kiyohara  * IDMA Controller and XOR Engine Registers
    206  1.1  kiyohara  */
    207  1.1  kiyohara #define KIRKWOOD_IDMAC_BASE	(KIRKWOOD_UNITID2PHYS(IDMA))	/* 0x60000 */
    208  1.1  kiyohara 
    209  1.1  kiyohara /*
    210  1.1  kiyohara  * Gigabit Ethernet Registers
    211  1.1  kiyohara  */
    212  1.1  kiyohara #define KIRKWOOD_GBE0_BASE	(KIRKWOOD_UNITID2PHYS(GBE))	/* 0x70000 */
    213  1.1  kiyohara #define KIRKWOOD_GBE1_BASE	(KIRKWOOD_GBE0_BASE + MVGBE_SIZE)
    214  1.1  kiyohara 
    215  1.1  kiyohara /*
    216  1.1  kiyohara  * Serial-ATA Host Controller (SATAHC) Registers
    217  1.1  kiyohara  */
    218  1.1  kiyohara #define KIRKWOOD_SATAHC_BASE	(KIRKWOOD_UNITID2PHYS(SATA))	/* 0x80000 */
    219  1.1  kiyohara 
    220  1.1  kiyohara /*
    221  1.1  kiyohara  * Secure Digital Input/Output (SDIO) Interface Registers
    222  1.1  kiyohara  */
    223  1.1  kiyohara #define KIRKWOOD_SDIO_BASE	(KIRKWOOD_UNITID2PHYS(SDIO))	/* 0x90000 */
    224  1.1  kiyohara 
    225  1.1  kiyohara /*
    226  1.1  kiyohara  * Audio (I2S/S/PDIF) Interface Registers
    227  1.1  kiyohara  */
    228  1.6  kiyohara #define KIRKWOOD_AUDIO_BASE	(KIRKWOOD_UNITID2PHYS(AUDIO))	/* 0xa0000 */
    229  1.1  kiyohara 
    230  1.1  kiyohara /*
    231  1.1  kiyohara  * MPEG-2 Transport Stream (TS) Interface Registers
    232  1.1  kiyohara  */
    233  1.1  kiyohara #define KIRKWOOD_MTS_BASE	(KIRKWOOD_UNITID2PHYS(MTS))	/* 0xb0000 */
    234  1.1  kiyohara 
    235  1.1  kiyohara /*
    236  1.1  kiyohara  * Time Division Multiplexing (TDM) Unit Registers
    237  1.1  kiyohara  */
    238  1.1  kiyohara #define KIRKWOOD_TDM_BASE	(KIRKWOOD_UNITID2PHYS(TDM))	/* 0xd0000 */
    239  1.1  kiyohara 
    240  1.1  kiyohara #endif	/* _KIRKWOODREG_H_ */
    241