cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

pxa168.h (3867B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef __ASM_MACH_PXA168_H
      3#define __ASM_MACH_PXA168_H
      4
      5#include <linux/reboot.h>
      6
      7extern void pxa168_timer_init(void);
      8extern void __init icu_init_irq(void);
      9extern void __init pxa168_init_irq(void);
     10extern void pxa168_restart(enum reboot_mode, const char *);
     11extern void pxa168_clear_keypad_wakeup(void);
     12
     13#include <linux/i2c.h>
     14#include <linux/platform_data/i2c-pxa.h>
     15#include <linux/platform_data/mtd-nand-pxa3xx.h>
     16#include <video/pxa168fb.h>
     17#include <linux/platform_data/keypad-pxa27x.h>
     18#include <linux/pxa168_eth.h>
     19#include <linux/platform_data/mv_usb.h>
     20#include <linux/soc/mmp/cputype.h>
     21
     22#include "devices.h"
     23
     24extern struct mmp_device_desc pxa168_device_uart1;
     25extern struct mmp_device_desc pxa168_device_uart2;
     26extern struct mmp_device_desc pxa168_device_uart3;
     27extern struct mmp_device_desc pxa168_device_twsi0;
     28extern struct mmp_device_desc pxa168_device_twsi1;
     29extern struct mmp_device_desc pxa168_device_pwm1;
     30extern struct mmp_device_desc pxa168_device_pwm2;
     31extern struct mmp_device_desc pxa168_device_pwm3;
     32extern struct mmp_device_desc pxa168_device_pwm4;
     33extern struct mmp_device_desc pxa168_device_ssp1;
     34extern struct mmp_device_desc pxa168_device_ssp2;
     35extern struct mmp_device_desc pxa168_device_ssp3;
     36extern struct mmp_device_desc pxa168_device_ssp4;
     37extern struct mmp_device_desc pxa168_device_ssp5;
     38extern struct mmp_device_desc pxa168_device_nand;
     39extern struct mmp_device_desc pxa168_device_fb;
     40extern struct mmp_device_desc pxa168_device_keypad;
     41extern struct mmp_device_desc pxa168_device_eth;
     42
     43/* pdata can be NULL */
     44extern int __init pxa168_add_usb_host(struct mv_usb_platform_data *pdata);
     45
     46
     47extern struct platform_device pxa168_device_gpio;
     48
     49static inline int pxa168_add_uart(int id)
     50{
     51	struct mmp_device_desc *d = NULL;
     52
     53	switch (id) {
     54	case 1: d = &pxa168_device_uart1; break;
     55	case 2: d = &pxa168_device_uart2; break;
     56	case 3: d = &pxa168_device_uart3; break;
     57	}
     58
     59	if (d == NULL)
     60		return -EINVAL;
     61
     62	return mmp_register_device(d, NULL, 0);
     63}
     64
     65static inline int pxa168_add_twsi(int id, struct i2c_pxa_platform_data *data,
     66				  struct i2c_board_info *info, unsigned size)
     67{
     68	struct mmp_device_desc *d = NULL;
     69	int ret;
     70
     71	switch (id) {
     72	case 0: d = &pxa168_device_twsi0; break;
     73	case 1: d = &pxa168_device_twsi1; break;
     74	default:
     75		return -EINVAL;
     76	}
     77
     78	ret = i2c_register_board_info(id, info, size);
     79	if (ret)
     80		return ret;
     81
     82	return mmp_register_device(d, data, sizeof(*data));
     83}
     84
     85static inline int pxa168_add_pwm(int id)
     86{
     87	struct mmp_device_desc *d = NULL;
     88
     89	switch (id) {
     90	case 1: d = &pxa168_device_pwm1; break;
     91	case 2: d = &pxa168_device_pwm2; break;
     92	case 3: d = &pxa168_device_pwm3; break;
     93	case 4: d = &pxa168_device_pwm4; break;
     94	default:
     95		return -EINVAL;
     96	}
     97
     98	return mmp_register_device(d, NULL, 0);
     99}
    100
    101static inline int pxa168_add_ssp(int id)
    102{
    103	struct mmp_device_desc *d = NULL;
    104
    105	switch (id) {
    106	case 1: d = &pxa168_device_ssp1; break;
    107	case 2: d = &pxa168_device_ssp2; break;
    108	case 3: d = &pxa168_device_ssp3; break;
    109	case 4: d = &pxa168_device_ssp4; break;
    110	case 5: d = &pxa168_device_ssp5; break;
    111	default:
    112		return -EINVAL;
    113	}
    114	return mmp_register_device(d, NULL, 0);
    115}
    116
    117static inline int pxa168_add_nand(struct pxa3xx_nand_platform_data *info)
    118{
    119	return mmp_register_device(&pxa168_device_nand, info, sizeof(*info));
    120}
    121
    122static inline int pxa168_add_fb(struct pxa168fb_mach_info *mi)
    123{
    124	return mmp_register_device(&pxa168_device_fb, mi, sizeof(*mi));
    125}
    126
    127static inline int pxa168_add_keypad(struct pxa27x_keypad_platform_data *data)
    128{
    129	if (cpu_is_pxa168())
    130		data->clear_wakeup_event = pxa168_clear_keypad_wakeup;
    131
    132	return mmp_register_device(&pxa168_device_keypad, data, sizeof(*data));
    133}
    134
    135static inline int pxa168_add_eth(struct pxa168_eth_platform_data *data)
    136{
    137	return mmp_register_device(&pxa168_device_eth, data, sizeof(*data));
    138}
    139#endif /* __ASM_MACH_PXA168_H */