From: Tomi Valkeinen <tomi.valkeinen@ti.com>
To: Tony Lindgren <tony@atomide.com>, Steve Sakoman <steve@sakoman.com>
Cc: linux-omap <linux-omap@vger.kernel.org>, Andy Gross <andy.gross@ti.com>
Subject: Overo expansion board selection with Kconfig (Was: Re: Display related board specific boot args)
Date: Mon, 25 Mar 2013 12:16:59 +0200 [thread overview]
Message-ID: <5150241B.3090402@ti.com> (raw)
In-Reply-To: <20130322153614.GC25575@atomide.com>
[-- Attachment #1: Type: text/plain, Size: 6073 bytes --]
On 2013-03-22 17:36, Tony Lindgren wrote:
>> Would the Kconfig option be acceptable?
>
> Yes I think that's better than cmdline option in this case considering that
> the cmdline option won't be needed at some point in the future.
Here's a diff for the changes for Overo. This is not a real patch yet,
just an RFC for the naming of the Kconfig options, and if this approach
is generally ok. Some other boards need similar setup also, but I think
Overo is the most complex case.
I only handle the displays here, and only three overo expansion boards.
I didn't find any of the expansion boards having analog TV out, so I removed
it.
I'm not sure if MACH_XXX style options should be reserved for boards only. It
just seemed like a logical way to extend the MACH_OVERO with
MACH_OVERO_EXPANSION_XXX.
Tomi
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 8111cd9..f30aadb 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -238,6 +238,28 @@ config MACH_OVERO
default y
select OMAP_PACKAGE_CBB
+choice
+ depends on MACH_OVERO
+ default MACH_OVERO_EXPANSION_PALO43
+ prompt "Overo Expansion Board"
+
+config MACH_OVERO_EXPANSION_PALO43
+ bool "Gumstix Overo Palo43 Expansion Board"
+ help
+ Palo43 Expansion board with Samsung 4.3" 480x272 LCD.
+
+config MACH_OVERO_EXPANSION_PALO35
+ bool "Gumstix Overo Palo35 Expansion Board"
+ help
+ Palo35 Expansion board with LG 3.5" 320x240 LCD.
+
+config MACH_OVERO_EXPANSION_SUMMIT
+ bool "Gumstix Overo Summit Expansion Board"
+ help
+ Summit expansion board with DVI output.
+
+endchoice
+
config MACH_OMAP3EVM
bool "OMAP 3530 EVM board"
depends on ARCH_OMAP3
diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c
index 86bab51..d9df651 100644
--- a/arch/arm/mach-omap2/board-overo.c
+++ b/arch/arm/mach-omap2/board-overo.c
@@ -145,9 +145,6 @@ static void __init overo_init_smsc911x(void)
static inline void __init overo_init_smsc911x(void) { return; }
#endif
-/* DSS */
-static int lcd_enabled;
-static int dvi_enabled;
#define OVERO_GPIO_LCD_EN 144
#define OVERO_GPIO_LCD_BL 145
@@ -168,6 +165,8 @@ static void __init overo_display_init(void)
gpio_export(OVERO_GPIO_LCD_BL, 0);
}
+#if defined(CONFIG_MACH_OVERO_EXPANSION_SUMMIT)
+
static struct tfp410_platform_data dvi_panel = {
.i2c_bus_num = 3,
.power_down_gpio = -1,
@@ -181,23 +180,56 @@ static struct omap_dss_device overo_dvi_device = {
.phy.dpi.data_lines = 24,
};
-static struct omap_dss_device overo_tv_device = {
- .name = "tv",
- .driver_name = "venc",
- .type = OMAP_DISPLAY_TYPE_VENC,
- .phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO,
+static struct omap_dss_device *overo_dss_devices[] = {
+ &overo_dvi_device,
};
+static struct omap_dss_board_info overo_dss_data = {
+ .num_devices = ARRAY_SIZE(overo_dss_devices),
+ .devices = overo_dss_devices,
+ .default_device = &overo_dvi_device,
+};
+
+#elif defined(CONFIG_MACH_OVERO_EXPANSION_PALO35)
+
static int overo_panel_enable_lcd(struct omap_dss_device *dssdev)
{
- if (dvi_enabled) {
- printk(KERN_ERR "cannot enable LCD, DVI is enabled\n");
- return -EINVAL;
- }
+ gpio_set_value(OVERO_GPIO_LCD_EN, 1);
+ gpio_set_value(OVERO_GPIO_LCD_BL, 1);
+ return 0;
+}
+
+static void overo_panel_disable_lcd(struct omap_dss_device *dssdev)
+{
+ gpio_set_value(OVERO_GPIO_LCD_EN, 0);
+ gpio_set_value(OVERO_GPIO_LCD_BL, 0);
+}
+
+static struct omap_dss_device overo_lcd35_device = {
+ .type = OMAP_DISPLAY_TYPE_DPI,
+ .name = "lcd35",
+ .driver_name = "lgphilips_lb035q02_panel",
+ .phy.dpi.data_lines = 24,
+ .platform_enable = overo_panel_enable_lcd,
+ .platform_disable = overo_panel_disable_lcd,
+};
+
+static struct omap_dss_device *overo_dss_devices[] = {
+ &overo_lcd35_device,
+};
+static struct omap_dss_board_info overo_dss_data = {
+ .num_devices = ARRAY_SIZE(overo_dss_devices),
+ .devices = overo_dss_devices,
+ .default_device = &overo_lcd35_device,
+};
+
+#elif defined(CONFIG_MACH_OVERO_EXPANSION_PALO43)
+
+static int overo_panel_enable_lcd(struct omap_dss_device *dssdev)
+{
gpio_set_value(OVERO_GPIO_LCD_EN, 1);
gpio_set_value(OVERO_GPIO_LCD_BL, 1);
- lcd_enabled = 1;
return 0;
}
@@ -205,7 +237,6 @@ static void overo_panel_disable_lcd(struct omap_dss_device *dssdev)
{
gpio_set_value(OVERO_GPIO_LCD_EN, 0);
gpio_set_value(OVERO_GPIO_LCD_BL, 0);
- lcd_enabled = 0;
}
static struct panel_generic_dpi_data lcd43_panel = {
@@ -222,34 +253,18 @@ static struct omap_dss_device overo_lcd43_device = {
.phy.dpi.data_lines = 24,
};
-#if defined(CONFIG_PANEL_LGPHILIPS_LB035Q02) || \
- defined(CONFIG_PANEL_LGPHILIPS_LB035Q02_MODULE)
-static struct omap_dss_device overo_lcd35_device = {
- .type = OMAP_DISPLAY_TYPE_DPI,
- .name = "lcd35",
- .driver_name = "lgphilips_lb035q02_panel",
- .phy.dpi.data_lines = 24,
- .platform_enable = overo_panel_enable_lcd,
- .platform_disable = overo_panel_disable_lcd,
-};
-#endif
-
static struct omap_dss_device *overo_dss_devices[] = {
- &overo_dvi_device,
- &overo_tv_device,
-#if defined(CONFIG_PANEL_LGPHILIPS_LB035Q02) || \
- defined(CONFIG_PANEL_LGPHILIPS_LB035Q02_MODULE)
- &overo_lcd35_device,
-#endif
&overo_lcd43_device,
};
static struct omap_dss_board_info overo_dss_data = {
.num_devices = ARRAY_SIZE(overo_dss_devices),
.devices = overo_dss_devices,
- .default_device = &overo_dvi_device,
+ .default_device = &overo_lcd43_device,
};
+#endif
+
static struct mtd_partition overo_nand_partitions[] = {
{
.name = "xloader",
@@ -438,8 +453,7 @@ static int __init overo_i2c_init(void)
}
static struct spi_board_info overo_spi_board_info[] __initdata = {
-#if defined(CONFIG_PANEL_LGPHILIPS_LB035Q02) || \
- defined(CONFIG_PANEL_LGPHILIPS_LB035Q02_MODULE)
+#ifdef MACH_OVERO_EXPANSION_PALO35
{
.modalias = "lgphilips_lb035q02_panel-spi",
.bus_num = 1,
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 899 bytes --]
prev parent reply other threads:[~2013-03-25 10:17 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-22 8:26 Display related board specific boot args Tomi Valkeinen
2013-03-22 15:18 ` Tony Lindgren
2013-03-22 15:29 ` Tomi Valkeinen
2013-03-22 15:36 ` Tony Lindgren
2013-03-22 16:00 ` Andy Gross
2013-03-25 10:16 ` Tomi Valkeinen [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5150241B.3090402@ti.com \
--to=tomi.valkeinen@ti.com \
--cc=andy.gross@ti.com \
--cc=linux-omap@vger.kernel.org \
--cc=steve@sakoman.com \
--cc=tony@atomide.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.