2012-07-16 15:13:35 +02:00
|
|
|
/*
|
|
|
|
* \brief OMAP4 GPIO definitions
|
|
|
|
* \author Ivan Loskutov <ivan.loskutov@ksyslabs.org>
|
2013-05-06 14:33:30 +02:00
|
|
|
* \author Stefan Kalkowski <stefan.kalkowski@genode-labs.com>
|
2012-07-16 15:13:35 +02:00
|
|
|
* \date 2012-06-23
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Copyright (C) 2012 Ksys Labs LLC
|
2013-01-10 21:44:47 +01:00
|
|
|
* Copyright (C) 2012-2013 Genode Labs GmbH
|
2012-07-16 15:13:35 +02:00
|
|
|
*
|
|
|
|
* This file is part of the Genode OS framework, which is distributed
|
|
|
|
* under the terms of the GNU General Public License version 2.
|
|
|
|
*/
|
|
|
|
|
2015-09-03 14:55:05 +02:00
|
|
|
#ifndef _DRIVERS__GPIO__SPEC__OMAP4__GPIO_H_
|
|
|
|
#define _DRIVERS__GPIO__SPEC__OMAP4__GPIO_H_
|
2012-07-16 15:13:35 +02:00
|
|
|
|
|
|
|
/* Genode includes */
|
2017-01-30 11:35:12 +01:00
|
|
|
#include <base/attached_io_mem_dataspace.h>
|
2012-07-16 15:13:35 +02:00
|
|
|
#include <util/mmio.h>
|
|
|
|
|
2013-05-06 14:33:30 +02:00
|
|
|
struct Gpio_reg : Genode::Attached_io_mem_dataspace, Genode::Mmio
|
2012-07-16 15:13:35 +02:00
|
|
|
{
|
2013-05-06 14:33:30 +02:00
|
|
|
Gpio_reg(Genode::addr_t const mmio_base,
|
|
|
|
Genode::size_t const mmio_size)
|
|
|
|
: Genode::Attached_io_mem_dataspace(mmio_base, mmio_size),
|
|
|
|
Genode::Mmio((Genode::addr_t)local_addr<void>()) { }
|
2012-07-16 15:13:35 +02:00
|
|
|
|
2013-05-06 14:33:30 +02:00
|
|
|
struct Oe : Register_array<0x134, 32, 32, 1> {};
|
2012-07-16 15:13:35 +02:00
|
|
|
struct Irqstatus_0 : Register<0x02c, 32> {};
|
|
|
|
struct Irqstatus_set_0 : Register<0x034, 32> {};
|
|
|
|
struct Irqstatus_clr_0 : Register<0x03c, 32> {};
|
|
|
|
struct Ctrl : Register<0x130, 32> {};
|
2013-05-06 14:33:30 +02:00
|
|
|
struct Leveldetect0 : Register_array<0x140, 32, 32, 1> {};
|
|
|
|
struct Leveldetect1 : Register_array<0x144, 32, 32, 1> {};
|
|
|
|
struct Risingdetect : Register_array<0x148, 32, 32, 1> {};
|
|
|
|
struct Fallingdetect : Register_array<0x14c, 32, 32, 1> {};
|
|
|
|
struct Debounceenable : Register_array<0x150, 32, 32, 1> {};
|
2012-07-16 15:13:35 +02:00
|
|
|
struct Debouncingtime : Register<0x154, 32>
|
|
|
|
{
|
|
|
|
struct Time : Bitfield<0, 8> {};
|
|
|
|
};
|
|
|
|
struct Cleardataout : Register<0x190, 32> {};
|
|
|
|
struct Setdataout : Register<0x194, 32> {};
|
2013-05-06 14:33:30 +02:00
|
|
|
struct Datain : Register_array<0x138, 32, 32, 1> {};
|
2012-07-16 15:13:35 +02:00
|
|
|
};
|
|
|
|
|
2015-09-03 14:55:05 +02:00
|
|
|
#endif /* _DRIVERS__GPIO__SPEC__OMAP4__GPIO_H_ */
|