mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-20 22:23:16 +00:00
base: remove deprecated driver files
As far as I can tell, these file are not used anymore. Ref #4081
This commit is contained in:
parent
7ea020d471
commit
ee6f5f3b1b
@ -1,61 +0,0 @@
|
||||
/*
|
||||
* \brief Driver for the platform specific functionality for bcm2837
|
||||
* \author Tomasz Gajewski
|
||||
* \date 2019-12-28
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2011-2019 Genode Labs GmbH
|
||||
*
|
||||
* This file is part of the Genode OS framework, which is distributed
|
||||
* under the terms of the GNU Affero General Public License version 3.
|
||||
*/
|
||||
|
||||
#ifndef _INCLUDE__DRIVERS__PLATFORM__BCM2837_CONTROL_H_
|
||||
#define _INCLUDE__DRIVERS__PLATFORM__BCM2837_CONTROL_H_
|
||||
|
||||
/* Genode includes */
|
||||
#include <util/mmio.h>
|
||||
|
||||
|
||||
namespace Genode { class Bcm2837_control; }
|
||||
|
||||
|
||||
class Genode::Bcm2837_control : Mmio
|
||||
{
|
||||
public:
|
||||
|
||||
struct ControlRegister : public Register<0x0, 32>
|
||||
{
|
||||
struct CoreTimeClockSource : Bitfield<8,1> { };
|
||||
struct TimerIncrement : Bitfield<9,1> { };
|
||||
};
|
||||
|
||||
struct CoreTimerPrescaler : public Register<0x8, 32>
|
||||
{
|
||||
};
|
||||
|
||||
inline Bcm2837_control(addr_t const base);
|
||||
|
||||
inline void initialize_timer_frequency();
|
||||
};
|
||||
|
||||
|
||||
Genode::Bcm2837_control::Bcm2837_control(addr_t const base)
|
||||
:
|
||||
Mmio(base)
|
||||
{ }
|
||||
|
||||
|
||||
void Genode::Bcm2837_control::initialize_timer_frequency()
|
||||
{
|
||||
/*
|
||||
* Set prescaler value to achieve divider value equal to 1.
|
||||
* Value taken from chapter "3.1.1 Timer clock" from QA7_rev3.4.pdf
|
||||
* document describing the BCM2836 chip.
|
||||
*/
|
||||
write<CoreTimerPrescaler>(0x80000000);
|
||||
}
|
||||
|
||||
|
||||
#endif /* _INCLUDE__DRIVERS__PLATFORM__BCM2837_CONTROL_H_ */
|
@ -1,9 +0,0 @@
|
||||
TARGET = imx7_timer_drv
|
||||
REQUIRES = arm_v7
|
||||
GEN_DIR := $(BASE_DIR)/src/timer
|
||||
INC_DIR += $(GEN_DIR)/gpt
|
||||
SRC_CC += gpt/time_source.cc gpt/imx7/timer.cc
|
||||
|
||||
include $(GEN_DIR)/target.inc
|
||||
|
||||
vpath %.cc $(GEN_DIR)
|
@ -1,29 +0,0 @@
|
||||
/*
|
||||
* \brief Time source for i.MX7 (GPT1)
|
||||
* \author Stefan Kalkowski
|
||||
* \date 2019-04-13
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2019 Genode Labs GmbH
|
||||
*
|
||||
* This file is part of the Genode OS framework, which is distributed
|
||||
* under the terms of the GNU Affero General Public License version 3.
|
||||
*/
|
||||
|
||||
/* local include */
|
||||
#include <time_source.h>
|
||||
|
||||
using namespace Genode;
|
||||
|
||||
enum {
|
||||
MMIO_BASE = 0x302d0000,
|
||||
MMIO_SIZE = 0x1000,
|
||||
IRQ = 87,
|
||||
};
|
||||
|
||||
|
||||
Timer::Time_source::Time_source(Env &env)
|
||||
: Attached_mmio(env, MMIO_BASE, MMIO_SIZE),
|
||||
Signalled_time_source(env),
|
||||
_timer_irq(env, unsigned(IRQ)) { _initialize(); }
|
@ -1,75 +0,0 @@
|
||||
/*
|
||||
* \brief Time source that uses the General Purpose Timer (Freescale)
|
||||
* \author Stefan Kalkowski
|
||||
* \date 2019-04-13
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2019 Genode Labs GmbH
|
||||
*
|
||||
* This file is part of the Genode OS framework, which is distributed
|
||||
* under the terms of the GNU Affero General Public License version 3.
|
||||
*/
|
||||
|
||||
/* local includes */
|
||||
#include <time_source.h>
|
||||
|
||||
using namespace Genode;
|
||||
|
||||
|
||||
void Timer::Time_source::set_timeout(Genode::Microseconds duration,
|
||||
Timeout_handler &handler)
|
||||
{
|
||||
_handler = &handler;
|
||||
|
||||
/* set to minimum ticks value to not miss a too short timeout */
|
||||
uint32_t const ticks =
|
||||
max((uint32_t)1, (uint32_t)((duration.value * TICKS_PER_MS) / 1000));
|
||||
|
||||
/* clear interrupts */
|
||||
if (read<Sr>()) {
|
||||
write<Sr>(0xffffffff);
|
||||
_timer_irq.ack_irq();
|
||||
}
|
||||
|
||||
/* set new timeout */
|
||||
write<Ocr1>(read<Cnt>() + ticks);
|
||||
}
|
||||
|
||||
|
||||
Duration Timer::Time_source::curr_time()
|
||||
{
|
||||
Cnt::access_t cur_cnt = read<Cnt>();
|
||||
Genode::Microseconds us(timer_ticks_to_us(cur_cnt - _last_cnt, TICKS_PER_MS));
|
||||
_last_cnt = cur_cnt;
|
||||
_curr_time.add(us);
|
||||
return _curr_time;
|
||||
}
|
||||
|
||||
|
||||
Microseconds Timer::Time_source::max_timeout() const
|
||||
{
|
||||
static unsigned long max = timer_ticks_to_us(0xffffffff, TICKS_PER_MS);
|
||||
return Genode::Microseconds(max);
|
||||
}
|
||||
|
||||
|
||||
void Timer::Time_source::_initialize()
|
||||
{
|
||||
_timer_irq.sigh(_signal_handler);
|
||||
|
||||
write<Cr>(0);
|
||||
write<Ir>(0);
|
||||
write<Ocr1>(0);
|
||||
write<Ocr2>(0);
|
||||
write<Ocr3>(0);
|
||||
write<Icr1>(0);
|
||||
write<Icr2>(0);
|
||||
write<Cr::Clk_src>(Cr::Clk_src::HIGH_FREQ_REF_CLK);
|
||||
while (read<Cr::Swr>()) ;
|
||||
write<Sr>(0);
|
||||
write<Cr::Frr>(1);
|
||||
write<Cr::En_mod>(1);
|
||||
write<Cr::En>(1);
|
||||
write<Ir>(1);
|
||||
}
|
@ -1,76 +0,0 @@
|
||||
/*
|
||||
* \brief Time source that uses the General Purpose Timer (Freescale)
|
||||
* \author Stefan Kalkowski
|
||||
* \date 2019-04-13
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2019 Genode Labs GmbH
|
||||
*
|
||||
* This file is part of the Genode OS framework, which is distributed
|
||||
* under the terms of the GNU Affero General Public License version 3.
|
||||
*/
|
||||
|
||||
#ifndef _TIME_SOURCE_H_
|
||||
#define _TIME_SOURCE_H_
|
||||
|
||||
/* Genode includes */
|
||||
#include <irq_session/connection.h>
|
||||
#include <os/attached_mmio.h>
|
||||
#include <drivers/timer/util.h>
|
||||
|
||||
/* local includes */
|
||||
#include <signalled_time_source.h>
|
||||
|
||||
namespace Timer { class Time_source; }
|
||||
|
||||
|
||||
class Timer::Time_source : private Genode::Attached_mmio,
|
||||
public Genode::Signalled_time_source
|
||||
{
|
||||
private:
|
||||
|
||||
enum { TICKS_PER_MS = 500 };
|
||||
|
||||
struct Cr : Register<0x0, 32>
|
||||
{
|
||||
struct En : Bitfield<0, 1> { };
|
||||
struct En_mod : Bitfield<1, 1> { };
|
||||
struct Clk_src : Bitfield<6, 3> { enum { HIGH_FREQ_REF_CLK = 2 }; };
|
||||
struct Frr : Bitfield<9, 1> { };
|
||||
struct Swr : Bitfield<15, 1> { };
|
||||
};
|
||||
|
||||
struct Pr : Register<0x4, 32> { };
|
||||
struct Sr : Register<0x8, 32> { };
|
||||
struct Ir : Register<0xc, 32> { };
|
||||
struct Ocr1 : Register<0x10, 32> { };
|
||||
struct Ocr2 : Register<0x14, 32> { };
|
||||
struct Ocr3 : Register<0x18, 32> { };
|
||||
struct Icr1 : Register<0x1c, 32> { };
|
||||
struct Icr2 : Register<0x20, 32> { };
|
||||
struct Cnt : Register<0x24, 32> { };
|
||||
|
||||
|
||||
Genode::Irq_connection _timer_irq;
|
||||
Genode::Duration _curr_time { Genode::Microseconds(0) };
|
||||
Cnt::access_t _last_cnt { 0 };
|
||||
|
||||
void _initialize();
|
||||
|
||||
public:
|
||||
|
||||
Time_source(Genode::Env &env);
|
||||
|
||||
|
||||
/*************************
|
||||
** Genode::Time_source **
|
||||
*************************/
|
||||
|
||||
Genode::Duration curr_time() override;
|
||||
void set_timeout(Genode::Microseconds duration,
|
||||
Genode::Timeout_handler &handler) override;
|
||||
Genode::Microseconds max_timeout() const override;
|
||||
};
|
||||
|
||||
#endif /* _TIME_SOURCE_H_ */
|
Loading…
Reference in New Issue
Block a user