2009-12-04 09:41:28 -05:00
# ifndef __ASM_MACH_MMP2_H
# define __ASM_MACH_MMP2_H
2011-06-20 22:11:52 +08:00
# include <linux/platform_data/pxa_sdhci.h>
2010-09-29 16:18:51 -04:00
2012-11-08 12:40:59 -07:00
extern void mmp2_timer_init ( void ) ;
2010-07-15 22:22:33 +08:00
extern void __init mmp2_init_icu ( void ) ;
extern void __init mmp2_init_irq ( void ) ;
extern void mmp2_clear_pmic_int ( void ) ;
2009-12-04 09:41:28 -05:00
# include <linux/i2c.h>
2011-02-23 12:38:16 +01:00
# include <linux/i2c/pxa-i2c.h>
2012-08-24 15:16:48 +02:00
# include <linux/platform_data/dma-mmp_tdma.h>
2009-12-04 09:41:28 -05:00
2014-04-15 20:38:32 +02:00
# include "devices.h"
2009-12-04 09:41:28 -05:00
extern struct pxa_device_desc mmp2_device_uart1 ;
extern struct pxa_device_desc mmp2_device_uart2 ;
extern struct pxa_device_desc mmp2_device_uart3 ;
extern struct pxa_device_desc mmp2_device_uart4 ;
extern struct pxa_device_desc mmp2_device_twsi1 ;
extern struct pxa_device_desc mmp2_device_twsi2 ;
extern struct pxa_device_desc mmp2_device_twsi3 ;
extern struct pxa_device_desc mmp2_device_twsi4 ;
extern struct pxa_device_desc mmp2_device_twsi5 ;
extern struct pxa_device_desc mmp2_device_twsi6 ;
2010-09-29 16:18:51 -04:00
extern struct pxa_device_desc mmp2_device_sdh0 ;
extern struct pxa_device_desc mmp2_device_sdh1 ;
extern struct pxa_device_desc mmp2_device_sdh2 ;
extern struct pxa_device_desc mmp2_device_sdh3 ;
2011-08-15 11:09:53 +08:00
extern struct pxa_device_desc mmp2_device_asram ;
2011-08-15 11:09:54 +08:00
extern struct pxa_device_desc mmp2_device_isram ;
2009-12-04 09:41:28 -05:00
2011-10-17 20:37:52 +08:00
extern struct platform_device mmp2_device_gpio ;
2009-12-04 09:41:28 -05:00
static inline int mmp2_add_uart ( int id )
{
struct pxa_device_desc * d = NULL ;
switch ( id ) {
case 1 : d = & mmp2_device_uart1 ; break ;
case 2 : d = & mmp2_device_uart2 ; break ;
case 3 : d = & mmp2_device_uart3 ; break ;
case 4 : d = & mmp2_device_uart4 ; break ;
default :
return - EINVAL ;
}
return pxa_register_device ( d , NULL , 0 ) ;
}
static inline int mmp2_add_twsi ( int id , struct i2c_pxa_platform_data * data ,
struct i2c_board_info * info , unsigned size )
{
struct pxa_device_desc * d = NULL ;
int ret ;
switch ( id ) {
2010-04-28 15:34:04 -04:00
case 1 : d = & mmp2_device_twsi1 ; break ;
case 2 : d = & mmp2_device_twsi2 ; break ;
case 3 : d = & mmp2_device_twsi3 ; break ;
case 4 : d = & mmp2_device_twsi4 ; break ;
case 5 : d = & mmp2_device_twsi5 ; break ;
case 6 : d = & mmp2_device_twsi6 ; break ;
2009-12-04 09:41:28 -05:00
default :
return - EINVAL ;
}
2010-04-28 15:34:04 -04:00
ret = i2c_register_board_info ( id - 1 , info , size ) ;
2009-12-04 09:41:28 -05:00
if ( ret )
return ret ;
return pxa_register_device ( d , data , sizeof ( * data ) ) ;
}
2010-09-29 16:18:51 -04:00
static inline int mmp2_add_sdhost ( int id , struct sdhci_pxa_platdata * data )
{
struct pxa_device_desc * d = NULL ;
switch ( id ) {
case 0 : d = & mmp2_device_sdh0 ; break ;
case 1 : d = & mmp2_device_sdh1 ; break ;
case 2 : d = & mmp2_device_sdh2 ; break ;
case 3 : d = & mmp2_device_sdh3 ; break ;
default :
return - EINVAL ;
}
return pxa_register_device ( d , data , sizeof ( * data ) ) ;
}
2011-08-15 11:09:53 +08:00
static inline int mmp2_add_asram ( struct sram_platdata * data )
{
return pxa_register_device ( & mmp2_device_asram , data , sizeof ( * data ) ) ;
}
2011-08-15 11:09:54 +08:00
static inline int mmp2_add_isram ( struct sram_platdata * data )
{
return pxa_register_device ( & mmp2_device_isram , data , sizeof ( * data ) ) ;
}
2009-12-04 09:41:28 -05:00
# endif /* __ASM_MACH_MMP2_H */