devices-common.h 2.2 KB
Newer Older
R
Rabin Vincent 已提交
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
/*
 * 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_COMMON_H
#define __DEVICES_COMMON_H

extern struct amba_device *
dbx500_add_amba_device(const char *name, resource_size_t base,
		       int irq, void *pdata, unsigned int periphid);

extern struct platform_device *
dbx500_add_platform_device_4k1irq(const char *name, int id,
				  resource_size_t base,
				  int irq, void *pdata);

struct spi_master_cntlr;

static inline struct amba_device *
dbx500_add_msp_spi(const char *name, resource_size_t base, int irq,
		   struct spi_master_cntlr *pdata)
{
	return dbx500_add_amba_device(name, base, irq, pdata, 0);
}

static inline struct amba_device *
dbx500_add_spi(const char *name, resource_size_t base, int irq,
31 32
	       struct spi_master_cntlr *pdata,
	       u32 periphid)
R
Rabin Vincent 已提交
33
{
34
	return dbx500_add_amba_device(name, base, irq, pdata, periphid);
R
Rabin Vincent 已提交
35 36 37 38 39 40
}

struct mmci_platform_data;

static inline struct amba_device *
dbx500_add_sdi(const char *name, resource_size_t base, int irq,
41 42
	       struct mmci_platform_data *pdata,
	       u32 periphid)
R
Rabin Vincent 已提交
43
{
44
	return dbx500_add_amba_device(name, base, irq, pdata, periphid);
R
Rabin Vincent 已提交
45 46
}

47 48
struct amba_pl011_data;

R
Rabin Vincent 已提交
49
static inline struct amba_device *
50 51
dbx500_add_uart(const char *name, resource_size_t base, int irq,
		struct amba_pl011_data *pdata)
R
Rabin Vincent 已提交
52
{
53
	return dbx500_add_amba_device(name, base, irq, pdata, 0);
R
Rabin Vincent 已提交
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
}

struct nmk_i2c_controller;

static inline struct platform_device *
dbx500_add_i2c(int id, resource_size_t base, int irq,
	       struct nmk_i2c_controller *pdata)
{
	return dbx500_add_platform_device_4k1irq("nmk-i2c", id, base, irq,
						 pdata);
}

struct msp_i2s_platform_data;

static inline struct platform_device *
dbx500_add_msp_i2s(int id, resource_size_t base, int irq,
		   struct msp_i2s_platform_data *pdata)
{
	return dbx500_add_platform_device_4k1irq("MSP_I2S", id, base, irq,
						 pdata);
}

static inline struct amba_device *
dbx500_add_rtc(resource_size_t base, int irq)
{
	return dbx500_add_amba_device("rtc-pl031", base, irq, NULL, 0);
}

R
Rabin Vincent 已提交
82 83 84 85 86
struct nmk_gpio_platform_data;

void dbx500_add_gpios(resource_size_t *base, int num, int irq,
		      struct nmk_gpio_platform_data *pdata);

R
Rabin Vincent 已提交
87
#endif