ARM: OMAP: Add Amstrad Delta platform bits for framebuffer.
PATCH 1/1 ARM: OMAP: Add Amstrad Delta platform bits for framebuffer.
This patch adds the platform file components for the Amstrad Delta LCD framebuffer. I have confirmed it works with latest git. The patch to clock.c /is/ needed for this to work.
-----
arch/arm/mach-omap1/board-ams-delta.c +11 -0
@@ -76,6 +76,10 @@ static struct map_desc ams_delta_io_desc } }; +static struct omap_lcd_config ams_delta_lcd_config__initdata = { + .ctrl_name ="internal" , +}; +static struct omap_uart_config ams_delta_uart_config__initdata = { .enabled_uarts =1 , };
@@ -87,16 +91,23 @@ static struct omap_usb_config ams_delta_ };static struct omap_board_config_kernel ams_delta_config[] = { + {OMAP_TAG_LCD , &ams_delta_lcd_config }, {OMAP_TAG_UART , &ams_delta_uart_config }, {OMAP_TAG_USB , &ams_delta_usb_config }, }; +static struct platform_device ams_delta_lcd_device = { + .name ="lcd_ams_delta" , + .id ="-1" , +}; +static struct platform_device ams_delta_led_device = { .name ="ams-delta-led" , .id =-1 };static struct platform_device *ams_delta_devices[]__initdata = { + &ams_delta_lcd_device, &ams_delta_led_device, };
arch/arm/mach-omap1/clock.c +9 -0
@@ -20,6 +20,7 @@ #include <linux/err.h>#include <linux/clk.h> #include <asm/io.h> +#include <asm/mach-types.h> #include <asm/arch/cpu.h> #include <asm/arch/usb.h>
@@ -756,6 +757,14 @@ #if defined(CONFIG_MACH_OMAP_PERSEUS2) |omap_writew (omap_readw (OMAP730_PCC_UPLD_CTRL ) & ~0x1 ,OMAP730_PCC_UPLD_CTRL );#endif +#ifdef CONFIG_MACH_AMS_DELTA +/* Amstrad Delta wants BCLK high when inactive */ +if (machine_is_ams_delta ()) +omap_writel (omap_readl (ULPD_CLOCK_CTRL ) | + (1 <<SDW_MCLK_INV_BIT ), +ULPD_CLOCK_CTRL ); +#endif +/* Turn off DSP and ARM_TIMXO. Make sure ARM_INTHCK is not divided */ /* (on 730, bit 13 must not be cleared) */ if (cpu_is_omap730 ())
arch/arm/mach-omap1/clock.h +1 -0
@@ -89,6 +89,7 @@ #define EN_TC2_CK 4#define EN_DSPTIMCK 5/* Various register defines for clock controls scattered around OMAP chip */ +#define SDW_MCLK_INV_BIT 2/* In ULPD_CLKC_CTRL */ #define USB_MCLK_EN_BIT 4/* In ULPD_CLKC_CTRL */ #define USB_HOST_HHC_UHOST_EN 9/* In MOD_CONF_CTRL_0 */ #define SWD_ULPD_PLL_CLK_REQ 1/* In SWD_CLK_DIV_CTRL_SEL */
-----
J.
Signature · 4 lines
Are you threatening me? | .''`. Debian GNU/Linux Developer
| : :' : Happy to accept PGP signed
| `. `' or encrypted mail - RSA +
| `- DSA keys on the keyservers.Quoted 5 lines · Jonathan McDowell
This patch adds the platform file components for the Amstrad Delta LCD framebuffer. I have confirmed it works with latest git. The patch to
clock.c/is/ needed for this to work.Signed-off-by Jonathan McDowell <[email protected]>
[snip]
Quoted 13 lines
arch/arm/mach-omap1/clock.c +1
-0@@ -20,6 +20,7 @@ #include <linux/err.h>#include <linux/clk.h> #include <asm/io.h> +#include <asm/mach-types.h> #include <asm/arch/cpu.h> #include <asm/arch/usb.h>
arch/arm/mach-omap1/clock.c #if defined(CONFIG_MACH_OMAP_PERSEUS2) | · line 766
Quoted 10 lines
arch/arm/mach-omap1/clock.c +7
-0@@ -756,6 +757,14 @@ #if defined(CONFIG_MACH_OMAP_PERSEUS2) |omap_writew (omap_readw (OMAP730_PCC_UPLD_CTRL ) & ~0x1 ,OMAP730_PCC_UPLD_CTRL );#endif +#ifdef CONFIG_MACH_AMS_DELTA +/* Amstrad Delta wants BCLK high when inactive */ +if (machine_is_ams_delta ()) +omap_writel (omap_readl (ULPD_CLOCK_CTRL ) | + (1 <<SDW_MCLK_INV_BIT ), +ULPD_CLOCK_CTRL ); +#endif
This #ifdef is not necessary. machine_is_ams_delta() will expand to (0) when CONFIG_MACH_AMS_DELTA not selected and that if (0) will be optimized away.
arch/arm/mach-omap1/clock.c #if defined(CONFIG_MACH_OMAP_PERSEUS2) | · line 770
Quoted 3 lines
arch/arm/mach-omap1/clock.c +0
-0/* Turn off DSP and ARM_TIMXO. Make sure ARM_INTHCK is not divided */ /* (on 730, bit 13 must not be cleared) */ if (cpu_is_omap730 ())
Best regards,
ladis
Quoted 7 lines · Ladislav Michl
Quoted 6 lines · Jonathan McDowell
This patch adds the platform file components for the Amstrad Delta LCD framebuffer. I have confirmed it works with latest git. The patch to
clock.c/is/ needed for this to work.Signed-off-by Jonathan McDowell <[email protected]>
Quoted 11 lines
Review
Quoted 7 lines
(quoted diff) +7
-0+#ifdef CONFIG_MACH_AMS_DELTA + /* Amstrad Delta wants BCLK high when inactive */ + if (machine_is_ams_delta()) + omap_writel(omap_readl(ULPD_CLOCK_CTRL) | + (1 << SDW_MCLK_INV_BIT), + ULPD_CLOCK_CTRL); +#endifThis #ifdef is not necessary.
machine_is_ams_delta()will expand to (0) whenCONFIG_MACH_AMS_DELTAnot selected and that if (0) will be optimized away.
I tend to adopt a belt and braces approach to these things. :) Here's a revised patch without the #ifdef.
-----
arch/arm/mach-omap1/board-ams-delta.c +11 -0
@@ -76,6 +76,10 @@ static struct map_desc ams_delta_io_desc } }; +static struct omap_lcd_config ams_delta_lcd_config__initdata = { + .ctrl_name ="internal" , +}; +static struct omap_uart_config ams_delta_uart_config__initdata = { .enabled_uarts =1 , };
@@ -87,16 +91,23 @@ static struct omap_usb_config ams_delta_ };static struct omap_board_config_kernel ams_delta_config[] = { + {OMAP_TAG_LCD , &ams_delta_lcd_config }, {OMAP_TAG_UART , &ams_delta_uart_config }, {OMAP_TAG_USB , &ams_delta_usb_config }, }; +static struct platform_device ams_delta_lcd_device = { + .name ="lcd_ams_delta" , + .id ="-1" , +}; +static struct platform_device ams_delta_led_device = { .name ="ams-delta-led" , .id =-1 };static struct platform_device *ams_delta_devices[]__initdata = { + &ams_delta_lcd_device, &ams_delta_led_device, };
arch/arm/mach-omap1/clock.c +7 -0
@@ -20,6 +20,7 @@ #include <linux/err.h>#include <linux/clk.h> #include <asm/io.h> +#include <asm/mach-types.h> #include <asm/arch/cpu.h> #include <asm/arch/usb.h>
@@ -756,6 +757,12 @@ #if defined(CONFIG_MACH_OMAP_PERSEUS2) |omap_writew (omap_readw (OMAP730_PCC_UPLD_CTRL ) & ~0x1 ,OMAP730_PCC_UPLD_CTRL );#endif +/* Amstrad Delta wants BCLK high when inactive */ +if (machine_is_ams_delta ()) +omap_writel (omap_readl (ULPD_CLOCK_CTRL ) | + (1 <<SDW_MCLK_INV_BIT ), +ULPD_CLOCK_CTRL ); +/* Turn off DSP and ARM_TIMXO. Make sure ARM_INTHCK is not divided */ /* (on 730, bit 13 must not be cleared) */ if (cpu_is_omap730 ())
arch/arm/mach-omap1/clock.h +1 -0
@@ -89,6 +89,7 @@ #define EN_TC2_CK 4#define EN_DSPTIMCK 5/* Various register defines for clock controls scattered around OMAP chip */ +#define SDW_MCLK_INV_BIT 2/* In ULPD_CLKC_CTRL */ #define USB_MCLK_EN_BIT 4/* In ULPD_CLKC_CTRL */ #define USB_HOST_HHC_UHOST_EN 9/* In MOD_CONF_CTRL_0 */ #define SWD_ULPD_PLL_CLK_REQ 1/* In SWD_CLK_DIV_CTRL_SEL */
-----
J.
Signature · 3 lines
I have found the monster - the monster is us. This .sig brought to you by the letter H and the number 13 Product of the Republic of HuggieTag
Quoted 20 lines · Jonathan McDowell
Quoted 7 lines · Ladislav Michl
Quoted 6 lines · Jonathan McDowell
This patch adds the platform file components for the Amstrad Delta LCD framebuffer. I have confirmed it works with latest git. The patch to
clock.c/is/ needed for this to work.Signed-off-by Jonathan McDowell <[email protected]>Quoted 11 lines
Review
Quoted 7 lines
(quoted diff) +7
-0+#ifdef CONFIG_MACH_AMS_DELTA + /* Amstrad Delta wants BCLK high when inactive */ + if (machine_is_ams_delta()) + omap_writel(omap_readl(ULPD_CLOCK_CTRL) | + (1 << SDW_MCLK_INV_BIT), + ULPD_CLOCK_CTRL); +#endifThis #ifdef is not necessary.
machine_is_ams_delta()will expand to (0) whenCONFIG_MACH_AMS_DELTAnot selected and that if (0) will be optimized away.
Quoted 2 lines
I tend to adopt a belt and braces approach to these things. :) Here's a revised patch without the #ifdef.
Ok. One last try with this; the id element of ams_delta_lcd_device should be an int, not a string.
-----
arch/arm/mach-omap1/board-ams-delta.c +11 -0
@@ -76,6 +76,10 @@ static struct map_desc ams_delta_io_desc } }; +static struct omap_lcd_config ams_delta_lcd_config__initdata = { + .ctrl_name ="internal" , +}; +static struct omap_uart_config ams_delta_uart_config__initdata = { .enabled_uarts =1 , };
@@ -87,16 +91,23 @@ static struct omap_usb_config ams_delta_ };static struct omap_board_config_kernel ams_delta_config[] = { + {OMAP_TAG_LCD , &ams_delta_lcd_config }, {OMAP_TAG_UART , &ams_delta_uart_config }, {OMAP_TAG_USB , &ams_delta_usb_config }, }; +static struct platform_device ams_delta_lcd_device = { + .name ="lcd_ams_delta" , + .id =-1 , +}; +static struct platform_device ams_delta_led_device = { .name ="ams-delta-led" , .id =-1 };static struct platform_device *ams_delta_devices[]__initdata = { + &ams_delta_lcd_device, &ams_delta_led_device, };
arch/arm/mach-omap1/clock.c +7 -0
@@ -20,6 +20,7 @@ #include <linux/err.h>#include <linux/clk.h> #include <asm/io.h> +#include <asm/mach-types.h> #include <asm/arch/cpu.h> #include <asm/arch/usb.h>
@@ -756,6 +757,12 @@ #if defined(CONFIG_MACH_OMAP_PERSEUS2) |omap_writew (omap_readw (OMAP730_PCC_UPLD_CTRL ) & ~0x1 ,OMAP730_PCC_UPLD_CTRL );#endif +/* Amstrad Delta wants BCLK high when inactive */ +if (machine_is_ams_delta ()) +omap_writel (omap_readl (ULPD_CLOCK_CTRL ) | + (1 <<SDW_MCLK_INV_BIT ), +ULPD_CLOCK_CTRL ); +/* Turn off DSP and ARM_TIMXO. Make sure ARM_INTHCK is not divided */ /* (on 730, bit 13 must not be cleared) */ if (cpu_is_omap730 ())
arch/arm/mach-omap1/clock.h +1 -0
@@ -89,6 +89,7 @@ #define EN_TC2_CK 4#define EN_DSPTIMCK 5/* Various register defines for clock controls scattered around OMAP chip */ +#define SDW_MCLK_INV_BIT 2/* In ULPD_CLKC_CTRL */ #define USB_MCLK_EN_BIT 4/* In ULPD_CLKC_CTRL */ #define USB_HOST_HHC_UHOST_EN 9/* In MOD_CONF_CTRL_0 */ #define SWD_ULPD_PLL_CLK_REQ 1/* In SWD_CLK_DIV_CTRL_SEL */
-----
J.
Signature · 4 lines
] http://www.earth.li/~noodles/ [] Life takes its toll. Have exact [ ] PGP/GPG Key @ the.earth.li [] change ready. . . . [ ] via keyserver, web or email. [] [ ] RSA: 4DC4E7FD / DSA: 5B430367 [] [