summaryrefslogtreecommitdiff
path: root/arch/arm/mach-stmp3xxx/include/mach/stmp3xxx.h
blob: 4a3e428b7a96a359733dce5588f4a4e77d9a3827 (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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/*
 * Freescale STMP37XX/STMP378X core structure and function declarations
 *
 * Embedded Alley Solutions, Inc <source@embeddedalley.com>
 *
 * Copyright 2008-2009 Freescale Semiconductor, Inc. All Rights Reserved.
 * Copyright 2008 Embedded Alley Solutions, Inc All Rights Reserved.
 */

/*
 * The code contained herein is licensed under the GNU General Public
 * License. You may obtain a copy of the GNU General Public License
 * Version 2 or later at the following locations:
 *
 * http://www.opensource.org/licenses/gpl-license.html
 * http://www.gnu.org/copyleft/gpl.html
 */
#ifndef __ASM_PLAT_STMP3XXX_H
#define __ASM_PLAT_STMP3XXX_H

#include <linux/suspend.h>
#include <mach/regs-ocotp.h>

struct stmpkbd_keypair {
	int raw;
	int kcode;
};

struct stmp3xxxmmc_platform_data {
	int (*hw_init)(void);
	void (*hw_release)(void);
	void (*cmd_pullup)(int enable);
	int (*get_wp)(void);
	unsigned long (*setclock)(unsigned long hz);
	int read_uA;
	int write_uA;
};

struct stmp37xx_spi_platform_data {
	unsigned irq_pin;

	int (*hw_init)(void *spi);
	int (*hw_release)(void *spi);
};

struct stmp3xxx_persistent_bit_config {
	int reg;
	int start;
	int width;
	const char *name;
};

struct stmp3xxx_platform_persistent_data {
	const struct stmp3xxx_persistent_bit_config *bit_config_tab;
	int bit_config_cnt;
};

#define STMP3XXX_USB_DONT_REMAP 	0x00000001
struct stmp3xxx_usb_platform_data {
	unsigned flags;
	int (*phy_enable)(struct platform_device *);
	void (*hw_init)(void);
	void (*hw_release)(void);
};

extern int stmp3xxx_reset_block(u32 hwreg, int just_enable);

extern struct platform_device stmp3xxx_appuart, stmp3xxx_dbguart,
			      stmp3xxx_watchdog, stmp3xxx_gpmi,
			      stmp3xxx_mmc, stmp3xxx_mmc2,
			      stmp3xxx_touchscreen,
			      stmp3xxx_keyboard, stmp3xxx_rtc,
			      stmp3xxx_framebuffer,
			      stmp3xxx_backlight,
			      stmp3xxx_rotdec,
			      stmp3xxx_ssp1, stmp3xxx_ssp2, stmp378x_i2c,
			      stmp3xxx_battery,
			      stmp3xxx_persistent, stmp3xxx_dcp_bootstream,
			      stmp3xxx_dcp,
			      stmp3xxx_mtest, stmp3xxx_pxp, stmp3xxx_viim;
#ifdef CONFIG_PM
suspend_state_t stmp37xx_pm_get_target(void);
int stmp37xx_pm_sleep_was_deep(void);
#endif

extern int stmp3xxx_ssp1_device_register(void);
extern int stmp3xxx_ssp2_device_register(void);

extern int spdif_pinmux_request(void);
extern void spdif_pinmux_release(void);

extern int get_evk_board_version();

#endif /* __ASM_PLAT_STMP3XXX_H */