Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 425ad52b authored by GuanXuetao's avatar GuanXuetao
Browse files

unicore32 machine related files: ps2 driver



This patch implements arch-specific ps2 driver.

By reviewed with Dmitry Torokhov:
     1. move i8042-ucio.h to drivers/input/serio/i8042-unicore32io.h
     2. move puv3_ps2_init() to arch/unicore32/kernel/puv3-core.c
     3. remove unused comments.

Signed-off-by: default avatarGuan Xuetao <gxt@mprc.pku.edu.cn>
Acked-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent 700598ce
Loading
Loading
Loading
Loading
+70 −0
Original line number Diff line number Diff line
/*
 * Code specific to PKUnity SoC and UniCore ISA
 *
 *	Maintained by GUAN Xue-tao <gxt@mprc.pku.edu.cn>
 *	Copyright (C) 2001-2011 Guan Xuetao
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */
#ifndef _I8042_UNICORE32_H
#define _I8042_UNICORE32_H

#include <mach/hardware.h>

/*
 * Names.
 */
#define I8042_KBD_PHYS_DESC "isa0060/serio0"
#define I8042_AUX_PHYS_DESC "isa0060/serio1"
#define I8042_MUX_PHYS_DESC "isa0060/serio%d"

/*
 * IRQs.
 */
#define I8042_KBD_IRQ           IRQ_PS2_KBD
#define I8042_AUX_IRQ           IRQ_PS2_AUX

/*
 * Register numbers.
 */
#define I8042_COMMAND_REG	((unsigned long)&PS2_COMMAND)
#define I8042_STATUS_REG	((unsigned long)&PS2_STATUS)
#define I8042_DATA_REG		((unsigned long)&PS2_DATA)

static inline int i8042_read_data(void)
{
	return inb(I8042_DATA_REG);
}

static inline int i8042_read_status(void)
{
	return inb(I8042_STATUS_REG);
}

static inline void i8042_write_data(int val)
{
	outb(val, I8042_DATA_REG);
}

static inline void i8042_write_command(int val)
{
	outb(val, I8042_COMMAND_REG);
}

static inline int i8042_platform_init(void)
{
	if (!request_region(I8042_DATA_REG, 16, "i8042"))
		return -EBUSY;

	i8042_reset = 1;
	return 0;
}

static inline void i8042_platform_exit(void)
{
	release_region(I8042_DATA_REG, 16);
}

#endif /* _I8042_UNICORE32_H */
+2 −0
Original line number Diff line number Diff line
@@ -26,6 +26,8 @@
#include "i8042-sparcio.h"
#elif defined(CONFIG_X86) || defined(CONFIG_IA64)
#include "i8042-x86ia64io.h"
#elif defined(CONFIG_UNICORE32)
#include "i8042-unicore32io.h"
#else
#include "i8042-io.h"
#endif