drm/atomic-helper: document drm_atomic_helper_check() restrictions
[drm/drm-misc.git] / include / linux / platform_data / tmio.h
blobb060124ba1aef833e35696c5484bdefb3e0b6309
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef MFD_TMIO_H
3 #define MFD_TMIO_H
5 #include <linux/platform_device.h>
6 #include <linux/types.h>
8 /* TMIO MMC platform flags */
11 * Some controllers can support a 2-byte block size when the bus width is
12 * configured in 4-bit mode.
14 #define TMIO_MMC_BLKSZ_2BYTES BIT(1)
16 /* Some controllers can support SDIO IRQ signalling */
17 #define TMIO_MMC_SDIO_IRQ BIT(2)
19 /* Some features are only available or tested on R-Car Gen2 or later */
20 #define TMIO_MMC_MIN_RCAR2 BIT(3)
23 * Some controllers require waiting for the SD bus to become idle before
24 * writing to some registers.
26 #define TMIO_MMC_HAS_IDLE_WAIT BIT(4)
29 * Use the busy timeout feature. Probably all TMIO versions support it. Yet,
30 * we don't have documentation for old variants, so we enable only known good
31 * variants with this flag. Can be removed once all variants are known good.
33 #define TMIO_MMC_USE_BUSY_TIMEOUT BIT(5)
35 /* Some controllers have CMD12 automatically issue/non-issue register */
36 #define TMIO_MMC_HAVE_CMD12_CTRL BIT(7)
38 /* Controller has some SDIO status bits which must be 1 */
39 #define TMIO_MMC_SDIO_STATUS_SETBITS BIT(8)
41 /* Some controllers have a 32-bit wide data port register */
42 #define TMIO_MMC_32BIT_DATA_PORT BIT(9)
44 /* Some controllers allows to set SDx actual clock */
45 #define TMIO_MMC_CLK_ACTUAL BIT(10)
47 /* Some controllers have a CBSY bit */
48 #define TMIO_MMC_HAVE_CBSY BIT(11)
50 struct tmio_mmc_data {
51 void *chan_priv_tx;
52 void *chan_priv_rx;
53 unsigned int hclk;
54 unsigned long capabilities;
55 unsigned long capabilities2;
56 unsigned long flags;
57 u32 ocr_mask; /* available voltages */
58 dma_addr_t dma_rx_offset;
59 unsigned int max_blk_count;
60 unsigned short max_segs;
62 #endif