diff --git a/os/include/platform/imx53/platform_session/platform_session.h b/os/include/platform/imx53/platform_session/platform_session.h index 5e09cd1096..6201be9bb4 100644 --- a/os/include/platform/imx53/platform_session/platform_session.h +++ b/os/include/platform/imx53/platform_session/platform_session.h @@ -26,6 +26,7 @@ namespace Platform { I2C_2, I2C_3, BUTTONS, + PWM, }; enum Board_revision { diff --git a/os/src/drivers/framebuffer/imx53/driver.h b/os/src/drivers/framebuffer/imx53/driver.h index cb7dfe74e3..d287c07ec5 100644 --- a/os/src/drivers/framebuffer/imx53/driver.h +++ b/os/src/drivers/framebuffer/imx53/driver.h @@ -83,6 +83,7 @@ class Framebuffer::Driver case Platform::Session::SMD: _ipu.init(_width, _height, _width * BYTES_PER_PIXEL, phys_base, false); + _platform.enable(Platform::Session::PWM); _pwm.enable_display(); break; default: diff --git a/os/src/drivers/platform/imx53/iomux.h b/os/src/drivers/platform/imx53/iomux.h index eaf9999ffc..886fe7c392 100644 --- a/os/src/drivers/platform/imx53/iomux.h +++ b/os/src/drivers/platform/imx53/iomux.h @@ -61,7 +61,8 @@ class Iomux : public Genode::Attached_io_mem_dataspace, Iomux() : Genode::Attached_io_mem_dataspace(Genode::Board_base::IOMUXC_BASE, Genode::Board_base::IOMUXC_SIZE), - Genode::Mmio((Genode::addr_t)local_addr()) { } + Genode::Mmio((Genode::addr_t)local_addr()) { + } void i2c_2_enable() { @@ -91,6 +92,14 @@ class Iomux : public Genode::Attached_io_mem_dataspace, write(Gpr2::Ch1_mode::ROUTED_TO_DI1); } + void pwm_enable() + { + write(1); + write(0); + write >(0x4); + write >(0x0); + } + void buttons_enable() { write(1); diff --git a/os/src/drivers/platform/imx53/main.cc b/os/src/drivers/platform/imx53/main.cc index 43406c14fb..c520b0da48 100644 --- a/os/src/drivers/platform/imx53/main.cc +++ b/os/src/drivers/platform/imx53/main.cc @@ -71,6 +71,9 @@ class Platform::Session_component : public Genode::Rpc_object case Session::BUTTONS: _iomux.buttons_enable(); break; + case Session::PWM: + _iomux.pwm_enable(); + break; default: PWRN("Invalid device"); };