[rtems commit] bsps/arm: Use handlers for PL111 set up/tear down
Sebastian Huber
sebh at rtems.org
Fri Jan 10 20:38:07 UTC 2014
Module: rtems
Branch: master
Commit: 5b85ccaebc9ca9e470f72df7dca538ff333f22d4
Changeset: http://git.rtems.org/rtems/commit/?id=5b85ccaebc9ca9e470f72df7dca538ff333f22d4
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Wed Jan 1 19:40:31 2014 +0100
bsps/arm: Use handlers for PL111 set up/tear down
---
.../libbsp/arm/realview-pbx-a9/startup/fb-config.c | 36 ++++++++++++++------
c/src/lib/libbsp/arm/shared/arm-pl111-fb.c | 7 +++-
c/src/lib/libbsp/arm/shared/include/arm-pl111-fb.h | 10 +++---
3 files changed, 35 insertions(+), 18 deletions(-)
diff --git a/c/src/lib/libbsp/arm/realview-pbx-a9/startup/fb-config.c b/c/src/lib/libbsp/arm/realview-pbx-a9/startup/fb-config.c
index c2c4aaa..130c756 100644
--- a/c/src/lib/libbsp/arm/realview-pbx-a9/startup/fb-config.c
+++ b/c/src/lib/libbsp/arm/realview-pbx-a9/startup/fb-config.c
@@ -15,6 +15,26 @@
#include <bsp/arm-pl111-fb.h>
#include <bsp.h>
+static void fb_set_up(const pl111_fb_config *cfg)
+{
+ /* TODO */
+}
+
+static void fb_pins_set_up(const pl111_fb_config *cfg)
+{
+ /* TODO */
+}
+
+static void fb_pins_tear_down(const pl111_fb_config *cfg)
+{
+ /* TODO */
+}
+
+static void fb_tear_down(const pl111_fb_config *cfg)
+{
+ /* TODO */
+}
+
static const pl111_fb_config fb_config = {
.regs = (volatile pl111 *) 0x10020000,
@@ -30,20 +50,14 @@ static const pl111_fb_config fb_config = {
.timing3 = 0x0,
.control = PL111_LCD_CONTROL_LCD_TFT
| PL111_LCD_CONTROL_LCD_BPP(PL111_LCD_CONTROL_LCD_BPP_16),
- .power_delay_in_us = 100000
+ .power_delay_in_us = 100000,
+ .set_up = fb_set_up,
+ .pins_set_up = fb_pins_set_up,
+ .pins_tear_down = fb_pins_tear_down,
+ .tear_down = fb_tear_down
};
const pl111_fb_config *arm_pl111_fb_get_config(void)
{
return &fb_config;
}
-
-void arm_pl111_fb_pins_set_up(const pl111_fb_config *cfg)
-{
- /* TODO */
-}
-
-void arm_pl111_fb_pins_tear_down(const pl111_fb_config *cfg)
-{
- /* TODO */
-}
diff --git a/c/src/lib/libbsp/arm/shared/arm-pl111-fb.c b/c/src/lib/libbsp/arm/shared/arm-pl111-fb.c
index 2947eda..fd9967d 100644
--- a/c/src/lib/libbsp/arm/shared/arm-pl111-fb.c
+++ b/c/src/lib/libbsp/arm/shared/arm-pl111-fb.c
@@ -80,6 +80,8 @@ static rtems_status_code pl111_fb_initialize(pl111_fb_context *ctx)
if (ctx->frame_buffer != NULL) {
volatile pl111 *regs = cfg->regs;
+ (*cfg->set_up)(cfg);
+
regs->lcd.upbase = (uint32_t) ctx->frame_buffer;
regs->lcd.timing0 = cfg->timing0;
@@ -88,7 +90,7 @@ static rtems_status_code pl111_fb_initialize(pl111_fb_context *ctx)
regs->lcd.timing3 = cfg->timing3;
regs->lcd.control = cfg->control;
- arm_pl111_fb_pins_set_up(cfg);
+ (*cfg->pins_set_up)(cfg);
regs->lcd.control = cfg->control
| PL111_LCD_CONTROL_LCD_EN;
@@ -119,7 +121,8 @@ static void pl111_fb_destroy(const pl111_fb_context *ctx)
regs->lcd.control = cfg->control;
- arm_pl111_fb_pins_tear_down(cfg);
+ (*cfg->pins_tear_down)(cfg);
+ (*cfg->tear_down)(cfg);
}
static void pl111_fb_get_fix_screen_info(struct fb_fix_screeninfo *info)
diff --git a/c/src/lib/libbsp/arm/shared/include/arm-pl111-fb.h b/c/src/lib/libbsp/arm/shared/include/arm-pl111-fb.h
index 4e44893..a4cca90 100644
--- a/c/src/lib/libbsp/arm/shared/include/arm-pl111-fb.h
+++ b/c/src/lib/libbsp/arm/shared/include/arm-pl111-fb.h
@@ -25,7 +25,7 @@
#include <bsp/arm-pl111-regs.h>
-typedef struct {
+typedef struct pl111_fb_config {
volatile pl111 *regs;
uint32_t timing0;
uint32_t timing1;
@@ -33,12 +33,12 @@ typedef struct {
uint32_t timing3;
uint32_t control;
uint32_t power_delay_in_us;
+ void (*set_up)(const struct pl111_fb_config *cfg);
+ void (*pins_set_up)(const struct pl111_fb_config *cfg);
+ void (*pins_tear_down)(const struct pl111_fb_config *cfg);
+ void (*tear_down)(const struct pl111_fb_config *cfg);
} pl111_fb_config;
const pl111_fb_config *arm_pl111_fb_get_config(void);
-void arm_pl111_fb_pins_set_up(const pl111_fb_config *cfg);
-
-void arm_pl111_fb_pins_tear_down(const pl111_fb_config *cfg);
-
#endif /* LIBBSP_ARM_SHARED_ARM_PL111_FB_H */
More information about the vc
mailing list