summaryrefslogtreecommitdiff
path: root/arch/arm/mach-ux500/devices-db8500.h
blob: 9b20e971cc8edb2e6cbf21e17f425ee0d5cbc88b (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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/*
 * Copyright (C) ST-Ericsson SA 2010
 *
 * Author: Rabin Vincent <rabin.vincent@stericsson.com> for ST-Ericsson
 * License terms: GNU General Public License (GPL), version 2.
 */

#ifndef __DEVICES_DB8500_H
#define __DEVICES_DB8500_H

#include "devices-common.h"

struct ske_keypad_platform_data;
struct pl022_ssp_controller;

static inline struct platform_device *
db8500_add_ske_keypad(struct device *parent,
		      struct ske_keypad_platform_data *pdata,
		      size_t size)
{
	struct resource resources[] = {
		DEFINE_RES_MEM(U8500_SKE_BASE, SZ_4K),
		DEFINE_RES_IRQ(IRQ_DB8500_KB),
	};

	return platform_device_register_resndata(parent, "nmk-ske-keypad", -1,
						 resources, 2, pdata, size);
}

static inline struct amba_device *
db8500_add_ssp(struct device *parent, const char *name, resource_size_t base,
	       int irq, struct pl022_ssp_controller *pdata)
{
	return dbx500_add_amba_device(parent, name, base, irq, pdata, 0);
}


#define db8500_add_i2c0(parent, pdata) \
	dbx500_add_i2c(parent, 0, U8500_I2C0_BASE, IRQ_DB8500_I2C0, pdata)
#define db8500_add_i2c1(parent, pdata) \
	dbx500_add_i2c(parent, 1, U8500_I2C1_BASE, IRQ_DB8500_I2C1, pdata)
#define db8500_add_i2c2(parent, pdata) \
	dbx500_add_i2c(parent, 2, U8500_I2C2_BASE, IRQ_DB8500_I2C2, pdata)
#define db8500_add_i2c3(parent, pdata) \
	dbx500_add_i2c(parent, 3, U8500_I2C3_BASE, IRQ_DB8500_I2C3, pdata)
#define db8500_add_i2c4(parent, pdata) \
	dbx500_add_i2c(parent, 4, U8500_I2C4_BASE, IRQ_DB8500_I2C4, pdata)

#define db8500_add_msp0_i2s(parent, pdata) \
	dbx500_add_msp_i2s(parent, 0, U8500_MSP0_BASE, IRQ_DB8500_MSP0, pdata)
#define db8500_add_msp1_i2s(parent, pdata) \
	dbx500_add_msp_i2s(parent, 1, U8500_MSP1_BASE, IRQ_DB8500_MSP1, pdata)
#define db8500_add_msp2_i2s(parent, pdata) \
	dbx500_add_msp_i2s(parent, 2, U8500_MSP2_BASE, IRQ_DB8500_MSP2, pdata)
#define db8500_add_msp3_i2s(parent, pdata) \
	dbx500_add_msp_i2s(parent, 3, U8500_MSP3_BASE, IRQ_DB8500_MSP1, pdata)

#define db8500_add_msp0_spi(parent, pdata) \
	dbx500_add_msp_spi(parent, "msp0", U8500_MSP0_BASE, \
			   IRQ_DB8500_MSP0, pdata)
#define db8500_add_msp1_spi(parent, pdata) \
	dbx500_add_msp_spi(parent, "msp1", U8500_MSP1_BASE, \
			   IRQ_DB8500_MSP1, pdata)
#define db8500_add_msp2_spi(parent, pdata) \
	dbx500_add_msp_spi(parent, "msp2", U8500_MSP2_BASE, \
			   IRQ_DB8500_MSP2, pdata)
#define db8500_add_msp3_spi(parent, pdata) \
	dbx500_add_msp_spi(parent, "msp3", U8500_MSP3_BASE, \
			   IRQ_DB8500_MSP1, pdata)

#define db8500_add_rtc(parent) \
	dbx500_add_rtc(parent, U8500_RTC_BASE, IRQ_DB8500_RTC);

#define db8500_add_usb(parent, rx_cfg, tx_cfg) \
	ux500_add_usb(parent, U8500_USBOTG_BASE, \
		      IRQ_DB8500_USBOTG, rx_cfg, tx_cfg)

#define db8500_add_sdi0(parent, pdata, pid) \
	dbx500_add_sdi(parent, "sdi0", U8500_SDI0_BASE, \
		       IRQ_DB8500_SDMMC0, pdata, pid)
#define db8500_add_sdi1(parent, pdata, pid) \
	dbx500_add_sdi(parent, "sdi1", U8500_SDI1_BASE, \
		       IRQ_DB8500_SDMMC1, pdata, pid)
#define db8500_add_sdi2(parent, pdata, pid) \
	dbx500_add_sdi(parent, "sdi2", U8500_SDI2_BASE, \
		       IRQ_DB8500_SDMMC2, pdata, pid)
#define db8500_add_sdi3(parent, pdata, pid) \
	dbx500_add_sdi(parent, "sdi3", U8500_SDI3_BASE, \
		       IRQ_DB8500_SDMMC3, pdata, pid)
#define db8500_add_sdi4(parent, pdata, pid) \
	dbx500_add_sdi(parent, "sdi4", U8500_SDI4_BASE, \
		       IRQ_DB8500_SDMMC4, pdata, pid)
#define db8500_add_sdi5(parent, pdata, pid) \
	dbx500_add_sdi(parent, "sdi5", U8500_SDI5_BASE, \
		       IRQ_DB8500_SDMMC5, pdata, pid)

#define db8500_add_ssp0(parent, pdata) \
	db8500_add_ssp(parent, "ssp0", U8500_SSP0_BASE, \
		       IRQ_DB8500_SSP0, pdata)
#define db8500_add_ssp1(parent, pdata) \
	db8500_add_ssp(parent, "ssp1", U8500_SSP1_BASE, \
		       IRQ_DB8500_SSP1, pdata)

#define db8500_add_spi0(parent, pdata) \
	dbx500_add_spi(parent, "spi0", U8500_SPI0_BASE, \
		       IRQ_DB8500_SPI0, pdata, 0)
#define db8500_add_spi1(parent, pdata) \
	dbx500_add_spi(parent, "spi1", U8500_SPI1_BASE, \
		       IRQ_DB8500_SPI1, pdata, 0)
#define db8500_add_spi2(parent, pdata) \
	dbx500_add_spi(parent, "spi2", U8500_SPI2_BASE, \
		       IRQ_DB8500_SPI2, pdata, 0)
#define db8500_add_spi3(parent, pdata) \
	dbx500_add_spi(parent, "spi3", U8500_SPI3_BASE, \
		       IRQ_DB8500_SPI3, pdata, 0)

#define db8500_add_uart0(parent, pdata) \
	dbx500_add_uart(parent, "uart0", U8500_UART0_BASE, \
			IRQ_DB8500_UART0, pdata)
#define db8500_add_uart1(parent, pdata) \
	dbx500_add_uart(parent, "uart1", U8500_UART1_BASE, \
			IRQ_DB8500_UART1, pdata)
#define db8500_add_uart2(parent, pdata) \
	dbx500_add_uart(parent, "uart2", U8500_UART2_BASE, \
			IRQ_DB8500_UART2, pdata)

#define db8500_add_cryp1(pdata) \
	dbx500_add_cryp1(-1, U8500_CRYP1_BASE, IRQ_DB8500_CRYP1, pdata)
#define db8500_add_hash1(pdata) \
	dbx500_add_hash1(-1, U8500_HASH1_BASE, pdata)

#endif