-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
yaml --- r: 105147 b: refs/heads/master c: ac25361 h: refs/heads/master i: 105145: 5c35c7f 105143: 46a7e6e v: v3
- Loading branch information
Ian Molton
committed
Jul 10, 2008
1 parent
8ac3e89
commit ffbbb57
Showing
7 changed files
with
455 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: 32584c86b26e503dcd7228ab1c67a1e4ce9b48c4 | ||
refs/heads/master: ac2536109849217a71510b6ded813e91629e88f6 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
/* | ||
* e400_lcd.c | ||
* | ||
* (c) 2005 Ian Molton <spyro@f2s.com> | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 as | ||
* published by the Free Software Foundation. | ||
* | ||
*/ | ||
|
||
#include <linux/kernel.h> | ||
#include <linux/init.h> | ||
#include <linux/module.h> | ||
|
||
#include <asm/mach-types.h> | ||
#include <asm/arch/pxa-regs.h> | ||
#include <asm/arch/pxafb.h> | ||
|
||
static struct pxafb_mode_info e400_pxafb_mode_info = { | ||
.pixclock = 140703, | ||
.xres = 240, | ||
.yres = 320, | ||
.bpp = 16, | ||
.hsync_len = 4, | ||
.left_margin = 28, | ||
.right_margin = 8, | ||
.vsync_len = 3, | ||
.upper_margin = 5, | ||
.lower_margin = 6, | ||
.sync = 0, | ||
}; | ||
|
||
static struct pxafb_mach_info e400_pxafb_mach_info = { | ||
.modes = &e400_pxafb_mode_info, | ||
.num_modes = 1, | ||
.lccr0 = LCCR0_Color | LCCR0_Sngl | LCCR0_Act, | ||
.lccr3 = 0, | ||
.pxafb_backlight_power = NULL, | ||
}; | ||
|
||
static int __init e400_lcd_init(void) | ||
{ | ||
if (!machine_is_e400()) | ||
return -ENODEV; | ||
|
||
set_pxa_fb_info(&e400_pxafb_mach_info); | ||
return 0; | ||
} | ||
|
||
module_init(e400_lcd_init); | ||
|
||
MODULE_AUTHOR("Ian Molton <spyro@f2s.com>"); | ||
MODULE_DESCRIPTION("e400 lcd driver"); | ||
MODULE_LICENSE("GPLv2"); | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
/* e740_lcd.c | ||
* | ||
* This file contains the definitions for the LCD timings and functions | ||
* to control the LCD power / frontlighting via the w100fb driver. | ||
* | ||
* (c) 2005 Ian Molton <spyro@f2s.com> | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 as | ||
* published by the Free Software Foundation. | ||
* | ||
*/ | ||
|
||
#include <linux/module.h> | ||
#include <linux/device.h> | ||
#include <linux/fb.h> | ||
#include <linux/err.h> | ||
#include <linux/platform_device.h> | ||
|
||
#include <asm/mach-types.h> | ||
|
||
#include <video/w100fb.h> | ||
|
||
/* | ||
**potential** shutdown routine - to be investigated | ||
devmem2 0x0c010528 w 0xff3fff00 | ||
devmem2 0x0c010190 w 0x7FFF8000 | ||
devmem2 0x0c0101b0 w 0x00FF0000 | ||
devmem2 0x0c01008c w 0x00000000 | ||
devmem2 0x0c010080 w 0x000000bf | ||
devmem2 0x0c010098 w 0x00000015 | ||
devmem2 0x0c010088 w 0x4b000204 | ||
devmem2 0x0c010098 w 0x0000001d | ||
*/ | ||
|
||
static struct w100_gen_regs e740_lcd_regs = { | ||
.lcd_format = 0x00008023, | ||
.lcdd_cntl1 = 0x0f000000, | ||
.lcdd_cntl2 = 0x0003ffff, | ||
.genlcd_cntl1 = 0x00ffff03, | ||
.genlcd_cntl2 = 0x003c0f03, | ||
.genlcd_cntl3 = 0x000143aa, | ||
}; | ||
|
||
static struct w100_mode e740_lcd_mode = { | ||
.xres = 240, | ||
.yres = 320, | ||
.left_margin = 20, | ||
.right_margin = 28, | ||
.upper_margin = 9, | ||
.lower_margin = 8, | ||
.crtc_ss = 0x80140013, | ||
.crtc_ls = 0x81150110, | ||
.crtc_gs = 0x80050005, | ||
.crtc_vpos_gs = 0x000a0009, | ||
.crtc_rev = 0x0040010a, | ||
.crtc_dclk = 0xa906000a, | ||
.crtc_gclk = 0x80050108, | ||
.crtc_goe = 0x80050108, | ||
.pll_freq = 57, | ||
.pixclk_divider = 4, | ||
.pixclk_divider_rotated = 4, | ||
.pixclk_src = CLK_SRC_XTAL, | ||
.sysclk_divider = 1, | ||
.sysclk_src = CLK_SRC_PLL, | ||
.crtc_ps1_active = 0x41060010, | ||
}; | ||
|
||
|
||
static struct w100_gpio_regs e740_w100_gpio_info = { | ||
.init_data1 = 0x21002103, | ||
.gpio_dir1 = 0xffffdeff, | ||
.gpio_oe1 = 0x03c00643, | ||
.init_data2 = 0x003f003f, | ||
.gpio_dir2 = 0xffffffff, | ||
.gpio_oe2 = 0x000000ff, | ||
}; | ||
|
||
static struct w100fb_mach_info e740_fb_info = { | ||
.modelist = &e740_lcd_mode, | ||
.num_modes = 1, | ||
.regs = &e740_lcd_regs, | ||
.gpio = &e740_w100_gpio_info, | ||
.xtal_freq = 14318000, | ||
.xtal_dbl = 1, | ||
}; | ||
|
||
static struct resource e740_fb_resources[] = { | ||
[0] = { | ||
.start = 0x0c000000, | ||
.end = 0x0cffffff, | ||
.flags = IORESOURCE_MEM, | ||
}, | ||
}; | ||
|
||
/* ----------------------- device declarations -------------------------- */ | ||
|
||
|
||
static struct platform_device e740_fb_device = { | ||
.name = "w100fb", | ||
.id = -1, | ||
.dev = { | ||
.platform_data = &e740_fb_info, | ||
}, | ||
.num_resources = ARRAY_SIZE(e740_fb_resources), | ||
.resource = e740_fb_resources, | ||
}; | ||
|
||
static int e740_lcd_init(void) | ||
{ | ||
int ret; | ||
|
||
if (!machine_is_e740()) | ||
return -ENODEV; | ||
|
||
return platform_device_register(&e740_fb_device); | ||
} | ||
|
||
module_init(e740_lcd_init); | ||
|
||
MODULE_AUTHOR("Ian Molton <spyro@f2s.com>"); | ||
MODULE_DESCRIPTION("e740 lcd driver"); | ||
MODULE_LICENSE("GPLv2"); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
/* e750_lcd.c | ||
* | ||
* This file contains the definitions for the LCD timings and functions | ||
* to control the LCD power / frontlighting via the w100fb driver. | ||
* | ||
* (c) 2005 Ian Molton <spyro@f2s.com> | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 as | ||
* published by the Free Software Foundation. | ||
* | ||
*/ | ||
|
||
#include <linux/module.h> | ||
#include <linux/device.h> | ||
#include <linux/fb.h> | ||
#include <linux/err.h> | ||
#include <linux/platform_device.h> | ||
|
||
#include <asm/mach-types.h> | ||
|
||
#include <video/w100fb.h> | ||
|
||
static struct w100_gen_regs e750_lcd_regs = { | ||
.lcd_format = 0x00008003, | ||
.lcdd_cntl1 = 0x00000000, | ||
.lcdd_cntl2 = 0x0003ffff, | ||
.genlcd_cntl1 = 0x00fff003, | ||
.genlcd_cntl2 = 0x003c0f03, | ||
.genlcd_cntl3 = 0x000143aa, | ||
}; | ||
|
||
static struct w100_mode e750_lcd_mode = { | ||
.xres = 240, | ||
.yres = 320, | ||
.left_margin = 21, | ||
.right_margin = 22, | ||
.upper_margin = 5, | ||
.lower_margin = 4, | ||
.crtc_ss = 0x80150014, | ||
.crtc_ls = 0x8014000d, | ||
.crtc_gs = 0xc1000005, | ||
.crtc_vpos_gs = 0x00020147, | ||
.crtc_rev = 0x0040010a, | ||
.crtc_dclk = 0xa1700030, | ||
.crtc_gclk = 0x80cc0015, | ||
.crtc_goe = 0x80cc0015, | ||
.crtc_ps1_active = 0x61060017, | ||
.pll_freq = 57, | ||
.pixclk_divider = 4, | ||
.pixclk_divider_rotated = 4, | ||
.pixclk_src = CLK_SRC_XTAL, | ||
.sysclk_divider = 1, | ||
.sysclk_src = CLK_SRC_PLL, | ||
}; | ||
|
||
|
||
static struct w100_gpio_regs e750_w100_gpio_info = { | ||
.init_data1 = 0x01192f1b, | ||
.gpio_dir1 = 0xd5ffdeff, | ||
.gpio_oe1 = 0x000020bf, | ||
.init_data2 = 0x010f010f, | ||
.gpio_dir2 = 0xffffffff, | ||
.gpio_oe2 = 0x000001cf, | ||
}; | ||
|
||
static struct w100fb_mach_info e750_fb_info = { | ||
.modelist = &e750_lcd_mode, | ||
.num_modes = 1, | ||
.regs = &e750_lcd_regs, | ||
.gpio = &e750_w100_gpio_info, | ||
.xtal_freq = 14318000, | ||
.xtal_dbl = 1, | ||
}; | ||
|
||
static struct resource e750_fb_resources[] = { | ||
[0] = { | ||
.start = 0x0c000000, | ||
.end = 0x0cffffff, | ||
.flags = IORESOURCE_MEM, | ||
}, | ||
}; | ||
|
||
/* ----------------------- device declarations -------------------------- */ | ||
|
||
|
||
static struct platform_device e750_fb_device = { | ||
.name = "w100fb", | ||
.id = -1, | ||
.dev = { | ||
.platform_data = &e750_fb_info, | ||
}, | ||
.num_resources = ARRAY_SIZE(e750_fb_resources), | ||
.resource = e750_fb_resources, | ||
}; | ||
|
||
static int e750_lcd_init(void) | ||
{ | ||
if (!machine_is_e750()) | ||
return -ENODEV; | ||
|
||
return platform_device_register(&e750_fb_device); | ||
} | ||
|
||
module_init(e750_lcd_init); | ||
|
||
MODULE_AUTHOR("Ian Molton <spyro@f2s.com>"); | ||
MODULE_DESCRIPTION("e750 lcd driver"); | ||
MODULE_LICENSE("GPLv2"); |
Oops, something went wrong.