/*
 * \brief  Pulse width modulation
 * \author Stefan Kalkowski
 * \date   2013-03-05
 */

/*
 * Copyright (C) 2013 Genode Labs GmbH
 *
 * This file is part of the Genode OS framework, which is distributed
 * under the terms of the GNU General Public License version 2.
 */

#ifndef _PWM_H_
#define _PWM_H_

/* Genode includes */
#include <util/mmio.h>

struct Pwm : Genode::Mmio
{
	struct Control : Register<0x0, 32> {};
	struct Sample  : Register<0xc, 32> {};
	struct Period  : Register<0x10,32> {};

	Pwm(Genode::addr_t const mmio_base) : Genode::Mmio(mmio_base) { }

	void enable_display()
	{
		write<Period>(0x64);
		write<Sample>(0x64);
		write<Control>(0x3c20001);
	}
};

#endif /* _PWM_H_ */
