Home | History | Annotate | Line # | Download | only in imx
      1  1.2  jkunz /* $Id: imx23_apbhdmareg.h,v 1.2 2013/03/03 10:33:56 jkunz Exp $ */
      2  1.1  jkunz 
      3  1.1  jkunz /*
      4  1.1  jkunz  * Copyright (c) 2012 The NetBSD Foundation, Inc.
      5  1.1  jkunz  * All rights reserved.
      6  1.1  jkunz  *
      7  1.1  jkunz  * This code is derived from software contributed to The NetBSD Foundation
      8  1.1  jkunz  * by Petri Laakso.
      9  1.1  jkunz  *
     10  1.1  jkunz  * Redistribution and use in source and binary forms, with or without
     11  1.1  jkunz  * modification, are permitted provided that the following conditions
     12  1.1  jkunz  * are met:
     13  1.1  jkunz  * 1. Redistributions of source code must retain the above copyright
     14  1.1  jkunz  *    notice, this list of conditions and the following disclaimer.
     15  1.1  jkunz  * 2. Redistributions in binary form must reproduce the above copyright
     16  1.1  jkunz  *    notice, this list of conditions and the following disclaimer in the
     17  1.1  jkunz  *    documentation and/or other materials provided with the distribution.
     18  1.1  jkunz  *
     19  1.1  jkunz  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     20  1.1  jkunz  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     21  1.1  jkunz  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     22  1.1  jkunz  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     23  1.1  jkunz  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     24  1.1  jkunz  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     25  1.1  jkunz  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     26  1.1  jkunz  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     27  1.1  jkunz  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     28  1.1  jkunz  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     29  1.1  jkunz  * POSSIBILITY OF SUCH DAMAGE.
     30  1.1  jkunz  */
     31  1.1  jkunz 
     32  1.1  jkunz #ifndef _ARM_IMX_IMX23_APBHDMAREG_H_
     33  1.1  jkunz #define _ARM_IMX_IMX23_APBHDMAREG_H_
     34  1.1  jkunz 
     35  1.1  jkunz #include <sys/cdefs.h>
     36  1.1  jkunz 
     37  1.1  jkunz #define HW_APBHDMA_BASE 0x80004000
     38  1.1  jkunz #define HW_APBHDMA_SIZE 0x2000 /* 8 kB */
     39  1.1  jkunz 
     40  1.1  jkunz /*
     41  1.1  jkunz  * AHB to APBH Bridge Control and Status Register 0.
     42  1.1  jkunz  */
     43  1.1  jkunz #define HW_APBH_CTRL0		0x000
     44  1.1  jkunz #define HW_APBH_CTRL0_SET	0x004
     45  1.1  jkunz #define HW_APBH_CTRL0_CLR	0x008
     46  1.1  jkunz #define HW_APBH_CTRL0_TOG	0x00C
     47  1.1  jkunz 
     48  1.1  jkunz #define HW_APBH_CTRL0_SFTRST		__BIT(31)
     49  1.1  jkunz #define HW_APBH_CTRL0_CLKGATE		__BIT(30)
     50  1.1  jkunz #define HW_APBH_CTRL0_AHB_BURST8_EN	__BIT(29)
     51  1.1  jkunz #define HW_APBH_CTRL0_APB_BURST4_EN	__BIT(28)
     52  1.1  jkunz #define HW_APBH_CTRL0_RSVD0		__BITS(27, 24)
     53  1.1  jkunz #define HW_APBH_CTRL0_RESET_CHANNEL	__BITS(23, 16)
     54  1.1  jkunz #define HW_APBH_CTRL0_CLKGATE_CHANNEL	__BITS(15, 8)
     55  1.1  jkunz #define HW_APBH_CTRL0_FREEZE_CHANNEL	__BITS(7, 0)
     56  1.1  jkunz 
     57  1.1  jkunz /*
     58  1.1  jkunz  * AHB to APBH Bridge Control and Status Register 1.
     59  1.1  jkunz  */
     60  1.1  jkunz #define HW_APBH_CTRL1		0x010
     61  1.1  jkunz #define HW_APBH_CTRL1_SET	0x014
     62  1.1  jkunz #define HW_APBH_CTRL1_CLR	0x018
     63  1.1  jkunz #define HW_APBH_CTRL1_TOG	0x01C
     64  1.1  jkunz 
     65  1.1  jkunz #define HW_APBH_CTRL1_RSVD1			__BITS(31, 24)
     66  1.1  jkunz #define HW_APBH_CTRL1_CH7_CMDCMPLT_IRQ_EN	__BIT(23)
     67  1.1  jkunz #define HW_APBH_CTRL1_CH6_CMDCMPLT_IRQ_EN	__BIT(22)
     68  1.1  jkunz #define HW_APBH_CTRL1_CH5_CMDCMPLT_IRQ_EN	__BIT(21)
     69  1.1  jkunz #define HW_APBH_CTRL1_CH4_CMDCMPLT_IRQ_EN	__BIT(20)
     70  1.1  jkunz #define HW_APBH_CTRL1_CH3_CMDCMPLT_IRQ_EN	__BIT(19)
     71  1.1  jkunz #define HW_APBH_CTRL1_CH2_CMDCMPLT_IRQ_EN	__BIT(18)
     72  1.1  jkunz #define HW_APBH_CTRL1_CH1_CMDCMPLT_IRQ_EN	__BIT(17)
     73  1.1  jkunz #define HW_APBH_CTRL1_CH0_CMDCMPLT_IRQ_EN	__BIT(16)
     74  1.1  jkunz #define HW_APBH_CTRL1_RSVD0			__BITS(15, 8)
     75  1.1  jkunz #define HW_APBH_CTRL1_CH7_CMDCMPLT_IRQ		__BIT(7)
     76  1.1  jkunz #define HW_APBH_CTRL1_CH6_CMDCMPLT_IRQ		__BIT(6)
     77  1.1  jkunz #define HW_APBH_CTRL1_CH5_CMDCMPLT_IRQ		__BIT(5)
     78  1.1  jkunz #define HW_APBH_CTRL1_CH4_CMDCMPLT_IRQ		__BIT(4)
     79  1.1  jkunz #define HW_APBH_CTRL1_CH3_CMDCMPLT_IRQ		__BIT(3)
     80  1.1  jkunz #define HW_APBH_CTRL1_CH2_CMDCMPLT_IRQ		__BIT(2)
     81  1.1  jkunz #define HW_APBH_CTRL1_CH1_CMDCMPLT_IRQ		__BIT(1)
     82  1.1  jkunz #define HW_APBH_CTRL1_CH0_CMDCMPLT_IRQ		__BIT(0)
     83  1.1  jkunz 
     84  1.1  jkunz /*
     85  1.1  jkunz  * AHB to APBH Bridge Control and Status Register 2.
     86  1.1  jkunz  */
     87  1.1  jkunz #define HW_APBH_CTRL2		0x020
     88  1.1  jkunz #define HW_APBH_CTRL2_SET	0x024
     89  1.1  jkunz #define HW_APBH_CTRL2_CLR	0x028
     90  1.1  jkunz #define HW_APBH_CTRL2_TOG	0x02C
     91  1.1  jkunz 
     92  1.1  jkunz #define HW_APBH_CTRL2_RSVD1		__BITS(31, 24)
     93  1.1  jkunz #define HW_APBH_CTRL2_CH7_ERROR_STATUS	__BIT(23)
     94  1.1  jkunz #define HW_APBH_CTRL2_CH6_ERROR_STATUS	__BIT(22)
     95  1.1  jkunz #define HW_APBH_CTRL2_CH5_ERROR_STATUS	__BIT(21)
     96  1.1  jkunz #define HW_APBH_CTRL2_CH4_ERROR_STATUS	__BIT(20)
     97  1.1  jkunz #define HW_APBH_CTRL2_CH3_ERROR_STATUS	__BIT(19)
     98  1.1  jkunz #define HW_APBH_CTRL2_CH2_ERROR_STATUS	__BIT(18)
     99  1.1  jkunz #define HW_APBH_CTRL2_CH1_ERROR_STATUS	__BIT(17)
    100  1.1  jkunz #define HW_APBH_CTRL2_CH0_ERROR_STATUS	__BIT(16)
    101  1.1  jkunz #define HW_APBH_CTRL2_RSVD0		__BITS(15, 8)
    102  1.1  jkunz #define HW_APBH_CTRL2_CH7_ERROR_IRQ	__BIT(7)
    103  1.1  jkunz #define HW_APBH_CTRL2_CH6_ERROR_IRQ	__BIT(6)
    104  1.1  jkunz #define HW_APBH_CTRL2_CH5_ERROR_IRQ	__BIT(5)
    105  1.1  jkunz #define HW_APBH_CTRL2_CH4_ERROR_IRQ	__BIT(4)
    106  1.1  jkunz #define HW_APBH_CTRL2_CH3_ERROR_IRQ	__BIT(3)
    107  1.1  jkunz #define HW_APBH_CTRL2_CH2_ERROR_IRQ	__BIT(2)
    108  1.1  jkunz #define HW_APBH_CTRL2_CH1_ERROR_IRQ	__BIT(1)
    109  1.1  jkunz #define HW_APBH_CTRL2_CH0_ERROR_IRQ	__BIT(0)
    110  1.1  jkunz 
    111  1.1  jkunz /*
    112  1.1  jkunz  * AHB to APBH DMA Device Assignment Register.
    113  1.1  jkunz  */
    114  1.1  jkunz #define HW_APBH_DEVSEL	0x030
    115  1.1  jkunz 
    116  1.1  jkunz #define HW_APBH_DEVSEL_CH7	__BITS(31, 28)
    117  1.1  jkunz #define HW_APBH_DEVSEL_CH6	__BITS(27, 24)
    118  1.1  jkunz #define HW_APBH_DEVSEL_CH5	__BITS(23, 20)
    119  1.1  jkunz #define HW_APBH_DEVSEL_CH4	__BITS(19, 16)
    120  1.1  jkunz #define HW_APBH_DEVSEL_CH3	__BITS(15, 12)
    121  1.1  jkunz #define HW_APBH_DEVSEL_CH2	__BITS(11, 8)
    122  1.1  jkunz #define HW_APBH_DEVSEL_CH1	__BITS(7, 4)
    123  1.1  jkunz #define HW_APBH_DEVSEL_CH0	__BITS(3, 0)
    124  1.1  jkunz 
    125  1.1  jkunz /*
    126  1.2  jkunz  * APBH DMA Channel 0 Current Command Address Register.
    127  1.2  jkunz  */
    128  1.2  jkunz #define HW_APBH_CH0_CURCMDAR	0x040
    129  1.2  jkunz 
    130  1.2  jkunz #define HW_APBH_CH0_CURCMDAR_CMD_ADDR	__BITS(31, 0)
    131  1.2  jkunz 
    132  1.2  jkunz /*
    133  1.2  jkunz  * APBH DMA Channel 0 Next Command Address.
    134  1.2  jkunz  */
    135  1.2  jkunz #define HW_APBH_CH0_NXTCMDAR	0x050
    136  1.2  jkunz 
    137  1.2  jkunz #define HW_APBH_CH0_NXTCMDAR_CMD_ADDR	__BITS(31, 0)
    138  1.2  jkunz 
    139  1.2  jkunz /*
    140  1.2  jkunz  * APBH DMA Channel 0 Semaphore Register.
    141  1.2  jkunz  */
    142  1.2  jkunz #define HW_APBH_CH0_SEMA	0x080
    143  1.2  jkunz 
    144  1.2  jkunz #define HW_APBH_CH0_SEMA_RSVD2		__BITS(31, 24)
    145  1.2  jkunz #define HW_APBH_CH0_SEMA_PHORE		__BITS(23, 16)
    146  1.2  jkunz #define HW_APBH_CH0_SEMA_RSVD1		__BITS(15, 8)
    147  1.2  jkunz #define HW_APBH_CH0_SEMA_INCREMENT_SEMA	__BITS(7, 0)
    148  1.2  jkunz 
    149  1.2  jkunz /*
    150  1.1  jkunz  * APBH DMA Channel 1 Current Command Address Register.
    151  1.1  jkunz  */
    152  1.1  jkunz #define HW_APBH_CH1_CURCMDAR	0x0B0
    153  1.1  jkunz 
    154  1.1  jkunz #define HW_APBH_CH1_CURCMDAR_CMD_ADDR	__BITS(31, 0)
    155  1.1  jkunz 
    156  1.1  jkunz /*
    157  1.1  jkunz  * APBH DMA Channel 1 Next Command Address Register.
    158  1.1  jkunz  */
    159  1.1  jkunz #define HW_APBH_CH1_NXTCMDAR	0x0C0
    160  1.1  jkunz 
    161  1.1  jkunz #define HW_APBH_CH1_NXTCMDAR_CMD_ADDR	__BITS(31, 0)
    162  1.1  jkunz 
    163  1.1  jkunz /*
    164  1.1  jkunz  * APBH DMA Channel 1 Command Register.
    165  1.1  jkunz  */
    166  1.1  jkunz #define HW_APBH_CH1_CMD	0x0D0
    167  1.1  jkunz 
    168  1.1  jkunz #define HW_APBH_CH1_CMD_XFER_COUNT	__BITS(31, 16)
    169  1.1  jkunz #define HW_APBH_CH1_CMD_CMDWORDS	__BITS(15, 12)
    170  1.1  jkunz #define HW_APBH_CH1_CMD_RSVD1		__BITS(11, 9)
    171  1.1  jkunz #define HW_APBH_CH1_CMD_HALTONTERMINATE	__BIT(8)
    172  1.1  jkunz #define HW_APBH_CH1_CMD_WAIT4ENDCMD	__BIT(7)
    173  1.1  jkunz #define HW_APBH_CH1_CMD_SEMAPHORE	__BIT(6)
    174  1.1  jkunz #define HW_APBH_CH1_CMD_NANDWAIT4READY	__BIT(5)
    175  1.1  jkunz #define HW_APBH_CH1_CMD_NANDLOCK	__BIT(4)
    176  1.1  jkunz #define HW_APBH_CH1_CMD_IRQONCMPLT	__BIT(3)
    177  1.1  jkunz #define HW_APBH_CH1_CMD_CHAIN		__BIT(2)
    178  1.1  jkunz #define HW_APBH_CH1_CMD_COMMAND		__BITS(1, 0)
    179  1.1  jkunz 
    180  1.1  jkunz /*
    181  1.1  jkunz  * APBH DMA Channel 1 Buffer Address Register.
    182  1.1  jkunz  */
    183  1.1  jkunz #define HW_APBH_CH1_BAR 0x0E0
    184  1.1  jkunz 
    185  1.1  jkunz #define HW_APBH_CH1_BAR_ADDRESS	__BITS(31, 0)
    186  1.1  jkunz 
    187  1.1  jkunz /*
    188  1.1  jkunz  * APBH DMA Channel 1 Semaphore Register.
    189  1.1  jkunz  */
    190  1.1  jkunz #define HW_APBH_CH1_SEMA	0x0F0
    191  1.1  jkunz 
    192  1.1  jkunz #define HW_APBH_CH1_SEMA_RSVD2		__BITS(31, 24)
    193  1.1  jkunz #define HW_APBH_CH1_SEMA_PHORE		__BITS(23, 16)
    194  1.1  jkunz #define HW_APBH_CH1_SEMA_RSVD1		__BITS(15, 8)
    195  1.1  jkunz #define HW_APBH_CH1_SEMA_INCREMENT_SEMA	__BITS(7, 0)
    196  1.1  jkunz 
    197  1.1  jkunz /*
    198  1.1  jkunz  * AHB to APBH DMA Channel 1 Debug Information.
    199  1.1  jkunz  */
    200  1.1  jkunz #define HW_APBH_CH1_DEBUG1 0x100
    201  1.1  jkunz 
    202  1.1  jkunz #define HW_APBH_CH1_DEBUG1_REQ			__BIT(31)
    203  1.1  jkunz #define HW_APBH_CH1_DEBUG1_BURST		__BIT(30)
    204  1.1  jkunz #define HW_APBH_CH1_DEBUG1_KICK			__BIT(29)
    205  1.1  jkunz #define HW_APBH_CH1_DEBUG1_END			__BIT(28)
    206  1.1  jkunz #define HW_APBH_CH1_DEBUG1_SENSE		__BIT(27)
    207  1.1  jkunz #define HW_APBH_CH1_DEBUG1_READY		__BIT(26)
    208  1.1  jkunz #define HW_APBH_CH1_DEBUG1_LOCK			__BIT(25)
    209  1.1  jkunz #define HW_APBH_CH1_DEBUG1_NEXTCMDADDRVALID	__BIT(24)
    210  1.1  jkunz #define HW_APBH_CH1_DEBUG1_RD_FIFO_EMPTY	__BIT(23)
    211  1.1  jkunz #define HW_APBH_CH1_DEBUG1_RD_FIFO_FULL		__BIT(22)
    212  1.1  jkunz #define HW_APBH_CH1_DEBUG1_WR_FIFO_EMPTY	__BIT(21)
    213  1.1  jkunz #define HW_APBH_CH1_DEBUG1_WR_FIFO_FULL		__BIT(20)
    214  1.1  jkunz #define HW_APBH_CH1_DEBUG1_RSVD1		__BITS(19, 5)
    215  1.1  jkunz #define HW_APBH_CH1_DEBUG1_STATEMACHINE		__BITS(4, 0)
    216  1.1  jkunz 
    217  1.1  jkunz /*
    218  1.1  jkunz  * AHB to APBH DMA Channel 1 Debug Information.
    219  1.1  jkunz  */
    220  1.1  jkunz #define HW_APBH_CH1_DEBUG2 0x110
    221  1.1  jkunz 
    222  1.1  jkunz #define HW_APBH_CH1_DEBUG2_APB_BYTES	__BITS(31, 16)
    223  1.1  jkunz #define HW_APBH_CH1_DEBUG2_AHB_BYTES	__BITS(15, 0)
    224  1.1  jkunz 
    225  1.1  jkunz #endif /* !_ARM_IMX_IMX23_APBHDMAREG_H_ */
    226