2010-09-29 18:16:32 +04:00
/*
* 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
2012-02-06 23:22:26 +04:00
# include <linux/platform_device.h>
# include <linux/dma-mapping.h>
# include <linux/sys_soc.h>
# include <plat/i2c.h>
2010-09-29 18:16:32 +04:00
2012-02-06 23:22:26 +04:00
extern struct amba_device *
dbx500_add_amba_device ( struct device * parent , const char * name ,
resource_size_t base , int irq , void * pdata ,
unsigned int periphid ) ;
2010-09-29 18:16:32 +04:00
struct spi_master_cntlr ;
static inline struct amba_device *
2012-02-06 23:22:21 +04:00
dbx500_add_msp_spi ( struct device * parent , const char * name ,
resource_size_t base , int irq ,
2010-09-29 18:16:32 +04:00
struct spi_master_cntlr * pdata )
{
2012-02-06 23:22:21 +04:00
return dbx500_add_amba_device ( parent , name , base , irq ,
pdata , 0 ) ;
2010-09-29 18:16:32 +04:00
}
static inline struct amba_device *
2012-02-06 23:22:21 +04:00
dbx500_add_spi ( struct device * parent , const char * name , resource_size_t base ,
int irq , struct spi_master_cntlr * pdata ,
2011-03-24 18:13:13 +03:00
u32 periphid )
2010-09-29 18:16:32 +04:00
{
2012-02-06 23:22:21 +04:00
return dbx500_add_amba_device ( parent , name , base , irq ,
pdata , periphid ) ;
2010-09-29 18:16:32 +04:00
}
struct mmci_platform_data ;
static inline struct amba_device *
2012-02-06 23:22:21 +04:00
dbx500_add_sdi ( struct device * parent , const char * name , resource_size_t base ,
int irq , struct mmci_platform_data * pdata , u32 periphid )
2010-09-29 18:16:32 +04:00
{
2012-02-06 23:22:21 +04:00
return dbx500_add_amba_device ( parent , name , base , irq ,
pdata , periphid ) ;
2010-09-29 18:16:32 +04:00
}
2010-10-14 15:57:59 +04:00
struct amba_pl011_data ;
2010-09-29 18:16:32 +04:00
static inline struct amba_device *
2012-02-06 23:22:21 +04:00
dbx500_add_uart ( struct device * parent , const char * name , resource_size_t base ,
int irq , struct amba_pl011_data * pdata )
2010-09-29 18:16:32 +04:00
{
2012-02-06 23:22:21 +04:00
return dbx500_add_amba_device ( parent , name , base , irq , pdata , 0 ) ;
2010-09-29 18:16:32 +04:00
}
struct nmk_i2c_controller ;
static inline struct platform_device *
2012-02-06 23:22:21 +04:00
dbx500_add_i2c ( struct device * parent , int id , resource_size_t base , int irq ,
2012-02-06 23:22:26 +04:00
struct nmk_i2c_controller * data )
2010-09-29 18:16:32 +04:00
{
2012-02-06 23:22:26 +04:00
struct resource res [ ] = {
DEFINE_RES_MEM ( base , SZ_4K ) ,
DEFINE_RES_IRQ ( irq ) ,
} ;
struct platform_device_info pdevinfo = {
. parent = parent ,
. name = " nmk-i2c " ,
. id = id ,
. res = res ,
. num_res = ARRAY_SIZE ( res ) ,
. data = data ,
. size_data = sizeof ( * data ) ,
. dma_mask = DMA_BIT_MASK ( 32 ) ,
} ;
return platform_device_register_full ( & pdevinfo ) ;
2010-09-29 18:16:32 +04:00
}
static inline struct amba_device *
2012-02-06 23:22:21 +04:00
dbx500_add_rtc ( struct device * parent , resource_size_t base , int irq )
2010-09-29 18:16:32 +04:00
{
2012-02-06 23:22:21 +04:00
return dbx500_add_amba_device ( parent , " rtc-pl031 " , base , irq , NULL , 0 ) ;
2010-09-29 18:16:32 +04:00
}
2010-12-08 08:37:55 +03:00
struct nmk_gpio_platform_data ;
2012-02-06 23:22:21 +04:00
void dbx500_add_gpios ( struct device * parent , resource_size_t * base , int num ,
int irq , struct nmk_gpio_platform_data * pdata ) ;
2010-12-08 08:37:55 +03:00
2010-09-29 18:16:32 +04:00
# endif