diff options
author | Linus Nielsen Feltzing <linus@haxx.se> | 2005-03-18 11:34:26 +0000 |
---|---|---|
committer | Linus Nielsen Feltzing <linus@haxx.se> | 2005-03-18 11:34:26 +0000 |
commit | a3176e4d828e335b16c60948fea10ba0b078057e (patch) | |
tree | ddf4aed86c15dfa796e4a172b9438c023c1336bd /firmware/export | |
parent | 752d0bb8be47b8c2b67c7b1a3bbf2a70fd582e92 (diff) | |
download | rockbox-a3176e4d828e335b16c60948fea10ba0b078057e.tar.gz rockbox-a3176e4d828e335b16c60948fea10ba0b078057e.zip |
iRiver I2C driver by Andy Young
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6203 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/export')
-rw-r--r-- | firmware/export/i2c-h100.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/firmware/export/i2c-h100.h b/firmware/export/i2c-h100.h new file mode 100644 index 0000000000..f8fd423b7e --- /dev/null +++ b/firmware/export/i2c-h100.h | |||
@@ -0,0 +1,64 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2002 by Linus Nielsen Feltzing | ||
11 | * | ||
12 | * All files in this archive are subject to the GNU General Public License. | ||
13 | * See the file COPYING in the source tree root for full license agreement. | ||
14 | * | ||
15 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
16 | * KIND, either express or implied. | ||
17 | * | ||
18 | ****************************************************************************/ | ||
19 | |||
20 | /* | ||
21 | * Driver for MCF5249's I2C interface | ||
22 | * 2005-02-17 hubble@mochine.com | ||
23 | * | ||
24 | */ | ||
25 | |||
26 | #ifndef _I2C_H100_H | ||
27 | #define _I2C_H100_H | ||
28 | |||
29 | void i2c_init(void); | ||
30 | int i2c_write(int device, unsigned char *buf, int count); | ||
31 | void i2c_close(void); | ||
32 | |||
33 | |||
34 | #define MAX_LOOP 0x10000 /* TODO: select a better value */ | ||
35 | |||
36 | /* PLLCR control */ | ||
37 | #define QSPISEL (1 << 11) /* Selects QSPI or I2C interface */ | ||
38 | |||
39 | /* Offsets to I2C registers from base address */ | ||
40 | #define O_MADR 0x00 /* Slave Address */ | ||
41 | #define O_MFDR 0x04 /* Frequency divider */ | ||
42 | #define O_MBCR 0x08 /* Control register */ | ||
43 | #define O_MBSR 0x0c /* Status register */ | ||
44 | #define O_MBDR 0x10 /* Data register */ | ||
45 | |||
46 | /* MBSR - Status register */ | ||
47 | #define ICF (1 << 7) /* Transfer Complete */ | ||
48 | #define IAAS (1 << 6) /* Addressed As Alave */ | ||
49 | #define IBB (1 << 5) /* Bus Busy */ | ||
50 | #define IAL (1 << 4) /* Arbitration Lost */ | ||
51 | #define SRW (1 << 2) /* Slave R/W */ | ||
52 | #define IFF (1 << 1) /* I2C Interrupt */ | ||
53 | #define RXAK (1 << 0) /* No Ack bit */ | ||
54 | |||
55 | /* MBCR - Control register */ | ||
56 | #define IEN (1 << 7) /* I2C Enable */ | ||
57 | #define IIEN (1 << 6) /* Interrupt Enable */ | ||
58 | #define MSTA (1 << 5) /* Master/Slave select */ | ||
59 | #define MTX (1 << 4) /* Transmit/Receive */ | ||
60 | #define TXAK (1 << 3) /* Transfer ACK */ | ||
61 | #define RSTA (1 << 2) /* Restart.. */ | ||
62 | |||
63 | |||
64 | #endif | ||