blob: bb05550f730b283acb43ca82dbceb0284b7d411a [file] [log] [blame]
/*
* 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 */