summaryrefslogtreecommitdiffstats
path: root/sound/aoa/soundbus/i2sbus/i2sbus-control.h
blob: bb05550f730b283acb43ca82dbceb0284b7d411a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
 * i2sbus driver -- bus register definitions
 *
 * Copyright 2006 Johannes Berg <johannes@sipsolutions.net>
 *
 * GPL v2, can be found in COPYING.
 */
#ifndef __I2SBUS_CONTROLREGS_H
#define __I2SBUS_CONTROLREGS_H

/* i2s control registers, at least what we know about them */

#define __PAD(m,n) u8 __pad##m[n]
#define _PAD(line, n) __PAD(line, n)
#define PAD(n) _PAD(__LINE__, (n))
struct i2s_control_regs {
	PAD(0x38);
	__le32 fcr0;		/* 0x38 (unknown) */
	__le32 cell_control;	/* 0x3c (fcr1) */
	__le32 fcr2;		/* 0x40 (unknown) */
	__le32 fcr3;		/* 0x44 (fcr3) */
	__le32 clock_control;	/* 0x48 (unknown) */
	PAD(4);
	/* total size: 0x50 bytes */
}  __attribute__((__packed__));

#define CTRL_CLOCK_CELL_0_ENABLE	(1<<10)
#define CTRL_CLOCK_CLOCK_0_ENABLE	(1<<12)
#define CTRL_CLOCK_SWRESET_0		(1<<11)
#define CTRL_CLOCK_INTF_0_ENABLE	(1<<13)

#define CTRL_CLOCK_CELL_1_ENABLE	(1<<17)
#define CTRL_CLOCK_CLOCK_1_ENABLE	(1<<18)
#define CTRL_CLOCK_SWRESET_1		(1<<19)
#define CTRL_CLOCK_INTF_1_ENABLE	(1<<20)

#endif /* __I2SBUS_CONTROLREGS_H */