1 /*
2  * Copyright (c) 2023 TOKITA Hiroshi <tokita.hiroshi@fujitsu.com>
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_RPI_PICO_DMA_COMMON_H_
8 #define ZEPHYR_INCLUDE_DT_BINDINGS_RPI_PICO_DMA_COMMON_H_
9 
10 /*
11  * Use lower 6-bit of inverted DREQ value for `slot` cell.
12  * Need to be able to work for memory-to-memory transfer
13  * with zero, which is the default value.
14  */
15 #define RPI_PICO_DMA_SLOT_TO_DREQ(s) (~(s)&0x3F)
16 #define RPI_PICO_DMA_DREQ_TO_SLOT    RPI_PICO_DMA_SLOT_TO_DREQ
17 
18 #define RPI_PICO_DMA_SLOT_PIO0_TX0   RPI_PICO_DMA_DREQ_TO_SLOT(0x00)
19 #define RPI_PICO_DMA_SLOT_PIO0_TX1   RPI_PICO_DMA_DREQ_TO_SLOT(0x01)
20 #define RPI_PICO_DMA_SLOT_PIO0_TX2   RPI_PICO_DMA_DREQ_TO_SLOT(0x02)
21 #define RPI_PICO_DMA_SLOT_PIO0_TX3   RPI_PICO_DMA_DREQ_TO_SLOT(0x03)
22 #define RPI_PICO_DMA_SLOT_PIO0_RX0   RPI_PICO_DMA_DREQ_TO_SLOT(0x04)
23 #define RPI_PICO_DMA_SLOT_PIO0_RX1   RPI_PICO_DMA_DREQ_TO_SLOT(0x05)
24 #define RPI_PICO_DMA_SLOT_PIO0_RX2   RPI_PICO_DMA_DREQ_TO_SLOT(0x06)
25 #define RPI_PICO_DMA_SLOT_PIO0_RX3   RPI_PICO_DMA_DREQ_TO_SLOT(0x07)
26 #define RPI_PICO_DMA_SLOT_PIO1_TX0   RPI_PICO_DMA_DREQ_TO_SLOT(0x08)
27 #define RPI_PICO_DMA_SLOT_PIO1_TX1   RPI_PICO_DMA_DREQ_TO_SLOT(0x09)
28 #define RPI_PICO_DMA_SLOT_PIO1_TX2   RPI_PICO_DMA_DREQ_TO_SLOT(0x0A)
29 #define RPI_PICO_DMA_SLOT_PIO1_TX3   RPI_PICO_DMA_DREQ_TO_SLOT(0x0B)
30 #define RPI_PICO_DMA_SLOT_PIO1_RX0   RPI_PICO_DMA_DREQ_TO_SLOT(0x0C)
31 #define RPI_PICO_DMA_SLOT_PIO1_RX1   RPI_PICO_DMA_DREQ_TO_SLOT(0x0D)
32 #define RPI_PICO_DMA_SLOT_PIO1_RX2   RPI_PICO_DMA_DREQ_TO_SLOT(0x0E)
33 #define RPI_PICO_DMA_SLOT_PIO1_RX3   RPI_PICO_DMA_DREQ_TO_SLOT(0x0F)
34 
35 #define RPI_PICO_DMA_SLOT_DMA_TIMER0 RPI_PICO_DMA_DREQ_TO_SLOT(0x3B)
36 #define RPI_PICO_DMA_SLOT_DMA_TIMER1 RPI_PICO_DMA_DREQ_TO_SLOT(0x3C)
37 #define RPI_PICO_DMA_SLOT_DMA_TIMER2 RPI_PICO_DMA_DREQ_TO_SLOT(0x3D)
38 #define RPI_PICO_DMA_SLOT_DMA_TIMER3 RPI_PICO_DMA_DREQ_TO_SLOT(0x3E)
39 #define RPI_PICO_DMA_SLOT_FORCE      RPI_PICO_DMA_DREQ_TO_SLOT(0x3F)
40 
41 #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_RPI_PICO_DMA_COMMON_H_ */
42