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