mmp2.h (2853B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef __ASM_MACH_MMP2_H 3#define __ASM_MACH_MMP2_H 4 5#include <linux/platform_data/pxa_sdhci.h> 6 7extern void mmp2_timer_init(void); 8extern void __init mmp2_init_icu(void); 9extern void __init mmp2_init_irq(void); 10extern void mmp2_clear_pmic_int(void); 11 12#include <linux/i2c.h> 13#include <linux/platform_data/i2c-pxa.h> 14#include <linux/platform_data/dma-mmp_tdma.h> 15 16#include "devices.h" 17 18extern struct mmp_device_desc mmp2_device_uart1; 19extern struct mmp_device_desc mmp2_device_uart2; 20extern struct mmp_device_desc mmp2_device_uart3; 21extern struct mmp_device_desc mmp2_device_uart4; 22extern struct mmp_device_desc mmp2_device_twsi1; 23extern struct mmp_device_desc mmp2_device_twsi2; 24extern struct mmp_device_desc mmp2_device_twsi3; 25extern struct mmp_device_desc mmp2_device_twsi4; 26extern struct mmp_device_desc mmp2_device_twsi5; 27extern struct mmp_device_desc mmp2_device_twsi6; 28extern struct mmp_device_desc mmp2_device_sdh0; 29extern struct mmp_device_desc mmp2_device_sdh1; 30extern struct mmp_device_desc mmp2_device_sdh2; 31extern struct mmp_device_desc mmp2_device_sdh3; 32extern struct mmp_device_desc mmp2_device_asram; 33extern struct mmp_device_desc mmp2_device_isram; 34 35extern struct platform_device mmp2_device_gpio; 36 37static inline int mmp2_add_uart(int id) 38{ 39 struct mmp_device_desc *d = NULL; 40 41 switch (id) { 42 case 1: d = &mmp2_device_uart1; break; 43 case 2: d = &mmp2_device_uart2; break; 44 case 3: d = &mmp2_device_uart3; break; 45 case 4: d = &mmp2_device_uart4; break; 46 default: 47 return -EINVAL; 48 } 49 50 return mmp_register_device(d, NULL, 0); 51} 52 53static inline int mmp2_add_twsi(int id, struct i2c_pxa_platform_data *data, 54 struct i2c_board_info *info, unsigned size) 55{ 56 struct mmp_device_desc *d = NULL; 57 int ret; 58 59 switch (id) { 60 case 1: d = &mmp2_device_twsi1; break; 61 case 2: d = &mmp2_device_twsi2; break; 62 case 3: d = &mmp2_device_twsi3; break; 63 case 4: d = &mmp2_device_twsi4; break; 64 case 5: d = &mmp2_device_twsi5; break; 65 case 6: d = &mmp2_device_twsi6; break; 66 default: 67 return -EINVAL; 68 } 69 70 ret = i2c_register_board_info(id - 1, info, size); 71 if (ret) 72 return ret; 73 74 return mmp_register_device(d, data, sizeof(*data)); 75} 76 77static inline int mmp2_add_sdhost(int id, struct sdhci_pxa_platdata *data) 78{ 79 struct mmp_device_desc *d = NULL; 80 81 switch (id) { 82 case 0: d = &mmp2_device_sdh0; break; 83 case 1: d = &mmp2_device_sdh1; break; 84 case 2: d = &mmp2_device_sdh2; break; 85 case 3: d = &mmp2_device_sdh3; break; 86 default: 87 return -EINVAL; 88 } 89 90 return mmp_register_device(d, data, sizeof(*data)); 91} 92 93static inline int mmp2_add_asram(struct sram_platdata *data) 94{ 95 return mmp_register_device(&mmp2_device_asram, data, sizeof(*data)); 96} 97 98static inline int mmp2_add_isram(struct sram_platdata *data) 99{ 100 return mmp_register_device(&mmp2_device_isram, data, sizeof(*data)); 101} 102 103#endif /* __ASM_MACH_MMP2_H */ 104