mfd: WM8350 off by one bug
[linux-block.git] / include / linux / mfd / tmio.h
CommitLineData
f024ff10
DB
1#ifndef MFD_TMIO_H
2#define MFD_TMIO_H
3
b53cde35
DB
4#include <linux/fb.h>
5
d3a2f718
IM
6#define tmio_ioread8(addr) readb(addr)
7#define tmio_ioread16(addr) readw(addr)
8#define tmio_ioread16_rep(r, b, l) readsw(r, b, l)
9#define tmio_ioread32(addr) \
10 (((u32) readw((addr))) | (((u32) readw((addr) + 2)) << 16))
11
12#define tmio_iowrite8(val, addr) writeb((val), (addr))
13#define tmio_iowrite16(val, addr) writew((val), (addr))
14#define tmio_iowrite16_rep(r, b, l) writesw(r, b, l)
15#define tmio_iowrite32(val, addr) \
16 do { \
17 writew((val), (addr)); \
18 writew((val) >> 16, (addr) + 2); \
19 } while (0)
20
f0e46cc4
PZ
21/*
22 * data for the MMC controller
23 */
24struct tmio_mmc_data {
4d3792e0 25 const unsigned int hclk;
f0e46cc4
PZ
26};
27
f024ff10
DB
28/*
29 * data for the NAND controller
30 */
31struct tmio_nand_data {
32 struct nand_bbt_descr *badblock_pattern;
33 struct mtd_partition *partition;
34 unsigned int num_partitions;
35};
36
b53cde35
DB
37#define FBIO_TMIO_ACC_WRITE 0x7C639300
38#define FBIO_TMIO_ACC_SYNC 0x7C639301
39
40struct tmio_fb_data {
41 int (*lcd_set_power)(struct platform_device *fb_dev,
42 bool on);
43 int (*lcd_mode)(struct platform_device *fb_dev,
44 const struct fb_videomode *mode);
45 int num_modes;
46 struct fb_videomode *modes;
47
48 /* in mm: size of screen */
49 int height;
50 int width;
51};
52
53
f024ff10 54#endif