• Home
  • Raw
  • Download

Lines Matching +full:dual +full:- +full:source

1 /* SPDX-License-Identifier: GPL-2.0 */
8 * ColdFire DMA supports two forms of DMA: Single and Dual address. Single
9 * address mode emits a source address, and expects that the device will either
10 * pick up the data (DMA READ) or source data (DMA WRITE). This implies that
13 * devices will find single mode transfers useful. Dual address DMA mode
14 * performs two cycles: source read and destination write. ColdFire will
19 * AUG/22/2000 : added support for 32-bit Dual-Address-Mode (K) 2000
20 * Oliver Kamphenkel (O.Kamphenkel@tu-bs.de)
22 * AUG/25/2000 : added support for 8, 16 and 32-bit Single-Address-Mode (K)2000
23 * Oliver Kamphenkel (O.Kamphenkel@tu-bs.de)
26 * Arthur Shipkowski (art@videon-central.com)
56 #define DMA_MODE_SINGLE_BIT 0x08 /* single-address-mode */
70 /* I/O to memory, 8 bits, single-address-mode */
72 /* memory to I/O, 8 bits, single-address-mode */
74 /* I/O to memory, 16 bits, single-address-mode */
76 /* memory to I/O, 16 bits, single-address-mode */
78 /* I/O to memory, 32 bits, single-address-mode */
80 /* memory to I/O, 32 bits, single-address-mode */
85 /* Source static-address mode */
91 /* Destination static-address mode */
159 * After that, keep track of it. :-)
160 * --- In order to do that, the DMA routines below should ---
161 * --- only be used while interrupts are disabled! ---
191 /* single-address-mode */ in set_dma_mode()
193 /* sets s_rw (-> r/w) high if Memory to I/0 */ in set_dma_mode()
227 /* Source incrementing, must be memory */ in set_dma_addr()
234 /* Set source address, must be device */ in set_dma_addr()
247 * Specific for Coldfire - sets device address.
297 * in terms of register mapping. For instance, with the exception of the 16-bit
298 * interrupt register (IRQ#85, for reference), all of the registers are 32-bit.
300 * The big difference, however, is the lack of device-requested DMA. All modes
301 * are dual address transfer, and there is no 'device' setup or direction bit.
303 * two devices directly, with any combination of incrementing and non-incrementing
308 * which will act exactly as above in -- it will look to see if the source is set to
309 * autoincrement, and if so it will make the source use the set_dma_addr value and the
310 * destination the set_dma_device_addr value. Otherwise the source will be set to the
350 * After that, keep track of it. :-)
351 * --- In order to do that, the DMA routines below should ---
352 * --- only be used while interrupts are disabled! ---
379 MCFDMA_DMR_DSTT_SD | /* Set up addressing types; set to supervisor-data. */ in set_dma_mode()
380 MCFDMA_DMR_SRCT_SD | /* Set up addressing types; set to supervisor-data. */ in set_dma_mode()
381 /* source static-address-mode */ in set_dma_mode()
383 /* dest static-address-mode */ in set_dma_mode()
411 /* Source incrementing, must be memory */ in set_dma_addr()
418 /* Set source address, must be device */ in set_dma_addr()
431 * Specific for Coldfire - sets device address.
446 * NOTE 3: While a 32-bit register, "count" is only a maximum 24-bit value.