22 #include <linux/device.h>
26 #include <linux/device.h>
40 #include <asm/setup.h>
44 #include <mach/hardware.h>
45 #include <mach/platform.h>
46 #include <mach/board.h>
53 #define LCD_POWER_GPIO LPC32XX_GPIO(LPC32XX_GPO_P3_GRP, 0)
54 #define BKL_POWER_GPIO LPC32XX_GPIO(LPC32XX_GPO_P3_GRP, 4)
55 #define MMC_PWR_ENABLE_GPIO LPC32XX_GPIO(LPC32XX_GPO_P3_GRP, 5)
62 .name =
"QVGA portrait",
83 #define PANEL_SIZE (3 * SZ_64K)
85 static int lpc32xx_clcd_setup(
struct clcd_fb *
fb)
91 if (!fb->
fb.screen_base) {
96 fb->
fb.fix.smem_start =
dma;
98 fb->
panel = &conn_lcd_panel;
119 return dma_mmap_writecombine(&fb->
dev->dev, vma,
120 fb->
fb.screen_base, fb->
fb.fix.smem_start,
121 fb->
fb.fix.smem_len);
124 static void lpc32xx_clcd_remove(
struct clcd_fb *
fb)
127 fb->
fb.screen_base, fb->
fb.fix.smem_start);
135 static void clcd_disable(
struct clcd_fb *
fb)
141 static void clcd_enable(
struct clcd_fb *
fb)
147 static struct clcd_board lpc32xx_clcd_data = {
148 .name =
"Phytec LCD",
149 .check = clcdfb_check,
150 .decode = clcdfb_decode,
151 .disable = clcd_disable,
152 .enable = clcd_enable,
153 .setup = lpc32xx_clcd_setup,
154 .mmap = lpc32xx_clcd_mmap,
155 .remove = lpc32xx_clcd_remove,
160 .bus_id =
"nand-slc",
166 .bus_id =
"nand-mlc",
183 .slave_channels = &pl08x_slave_channels[0],
184 .num_slave_channels =
ARRAY_SIZE(pl08x_slave_channels),
185 .get_signal = pl08x_get_signal,
186 .put_signal = pl08x_put_signal,
204 .ios_handler = mmc_handle_ios,
218 static const struct of_dev_auxdata lpc32xx_auxdata_lookup[]
__initconst = {
219 OF_DEV_AUXDATA(
"arm,pl022", 0x20084000,
"dev:ssp0",
NULL),
220 OF_DEV_AUXDATA(
"arm,pl022", 0x2008C000,
"dev:ssp1",
NULL),
221 OF_DEV_AUXDATA(
"arm,pl110", 0x31040000,
"dev:clcd", &lpc32xx_clcd_data),
222 OF_DEV_AUXDATA(
"arm,pl080", 0x31000000,
"pl08xdmac", &pl08x_pd),
223 OF_DEV_AUXDATA(
"arm,pl18x", 0x20098000,
"20098000.sd",
225 OF_DEV_AUXDATA(
"nxp,lpc3220-slc", 0x20020000,
"20020000.flash",
227 OF_DEV_AUXDATA(
"nxp,lpc3220-mlc", 0x200a8000,
"200a8000.flash",
232 static void __init lpc3250_machine_init(
void)
251 lpc32xx_auxdata_lookup,
NULL);
254 static char const *lpc32xx_dt_compat[]
__initdata = {
263 .atag_offset = 0x100,
267 .init_machine = lpc3250_machine_init,
268 .dt_compat = lpc32xx_dt_compat,