linux/arch/arm/mach-mmp/mmp2.h
<<
>>
Prefs
   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
 105