File Index
Files and directories
Sign in
FILE

davinci_asp.h

File preview with syntax highlighting.

linux-6.19.14/include/linux/platform_data/davinci_asp.h C
 1/* SPDX-License-Identifier: GPL-2.0-only */
 2/*
 3 * TI DaVinci Audio Serial Port support
 4 *
 5 * Copyright (C) 2012 Texas Instruments Incorporated - https://www.ti.com/
 6 */
 7
 8#ifndef __DAVINCI_ASP_H
 9#define __DAVINCI_ASP_H
10
11#include <linux/genalloc.h>
12
13struct davinci_mcasp_pdata {
14	u32 tx_dma_offset;
15	u32 rx_dma_offset;
16	int asp_chan_q;	/* event queue number for ASP channel */
17	int ram_chan_q;	/* event queue number for RAM channel */
18	/*
19	 * Allowing this is more efficient and eliminates left and right swaps
20	 * caused by underruns, but will swap the left and right channels
21	 * when compared to previous behavior.
22	 */
23	unsigned enable_channel_combine:1;
24	unsigned sram_size_playback;
25	unsigned sram_size_capture;
26	struct gen_pool *sram_pool;
27
28	/*
29	 * This flag works when both clock and FS are outputs for the cpu
30	 * and makes clock more accurate (FS is not symmetrical and the
31	 * clock is very fast.
32	 * The clock becoming faster is named
33	 * i2s continuous serial clock (I2S_SCK) and it is an externally
34	 * visible bit clock.
35	 *
36	 * first line : WordSelect
37	 * second line : ContinuousSerialClock
38	 * third line: SerialData
39	 *
40	 * SYMMETRICAL APPROACH:
41	 *   _______________________          LEFT
42	 * _|         RIGHT         |______________________|
43	 *     _   _         _   _   _   _         _   _
44	 *   _| |_| |_ x16 _| |_| |_| |_| |_ x16 _| |_| |_
45	 *     _   _         _   _   _   _         _   _
46	 *   _/ \_/ \_ ... _/ \_/ \_/ \_/ \_ ... _/ \_/ \_
47	 *    \_/ \_/       \_/ \_/ \_/ \_/       \_/ \_/
48	 *
49	 * ACCURATE CLOCK APPROACH:
50	 *   ______________          LEFT
51	 * _|     RIGHT    |_______________________________|
52	 *     _         _   _         _   _   _   _   _   _
53	 *   _| |_ x16 _| |_| |_ x16 _| |_| |_| |_| |_| |_| |
54	 *     _         _   _          _      dummy cycles
55	 *   _/ \_ ... _/ \_/ \_  ... _/ \__________________
56	 *    \_/       \_/ \_/        \_/
57	 *
58	 */
59	bool i2s_accurate_sck;
60
61	/* McASP specific fields */
62	int tdm_slots;
63	u8 op_mode;
64	u8 dismod;
65	u8 num_serializer;
66	u8 *serial_dir;
67	u8 version;
68	u8 txnumevt;
69	u8 rxnumevt;
70	int tx_dma_channel;
71	int rx_dma_channel;
72};
73/* TODO: Fix arch/arm/mach-davinci/ users and remove this define */
74#define snd_platform_data davinci_mcasp_pdata
75
76enum {
77	MCASP_VERSION_1 = 0,	/* DM646x */
78	MCASP_VERSION_2,	/* DA8xx/OMAPL1x */
79	MCASP_VERSION_3,        /* TI81xx/AM33xx */
80	MCASP_VERSION_4,	/* DRA7xxx */
81	MCASP_VERSION_OMAP,	/* OMAP4/5 */
82};
83
84#define INACTIVE_MODE	0
85#define TX_MODE		1
86#define RX_MODE		2
87
88#define DAVINCI_MCASP_IIS_MODE	0
89#define DAVINCI_MCASP_DIT_MODE	1
90
91#endif
~/ Read-only file preview.