# BRCM_VERSION=3
[bcm963xx.git] / kernel / linux / arch / arm / mach-sa1100 / huw_webpanel.c
1 /*
2  * linux/arch/arm/mach-sa1100/huw_webpanel.c
3  *
4  */
5 #include <linux/module.h>
6 #include <linux/init.h>
7 #include <linux/kernel.h>
8 #include <linux/tty.h>
9
10 #include <asm/hardware.h>
11 #include <asm/mach-types.h>
12 #include <asm/setup.h>
13
14 #include <asm/mach/arch.h>
15 #include <asm/mach/map.h>
16 #include <asm/mach/serial_sa1100.h>
17
18 #include "generic.h"
19
20
21 unsigned long BCR_value;
22 EXPORT_SYMBOL(BCR_value);
23
24 static void huw_lcd_power(int on)
25 {
26         if (on)
27                 BCR_clear(BCR_TFT_NPWR);
28         else
29                 BCR_set(BCR_TFT_NPWR);
30 }
31
32 static void huw_backlight_power(int on)
33 {
34 #error FIXME
35         if (on) {
36                 BCR_set(BCR_CCFL_POW | BCR_PWM_BACKLIGHT);
37                 set_current_state(TASK_UNINTERRUPTIBLE);
38                 schedule_task(200 * HZ / 1000);
39                 BCR_set(BCR_TFT_ENA);
40         }
41 }
42
43 static int __init init_huw_cs3(void)
44 {
45         // here we can place some initcode
46         // BCR_value = 0x1045bf70; //*((volatile unsigned long*)0xf1fffff0);
47         if (machine_is_huw_webpanel()) {
48                 sa1100fb_lcd_power = huw_lcd_power;
49                 sa1100fb_backlight_power = huw_backlight_power;
50         }
51
52         return 0;
53 }
54
55 arch_initcall(init_huw_cs3);
56
57
58 /**
59    memory information (JOR):
60    32 MByte - 256KByte bootloader (init at boot time) - 32 kByte save area
61    area size = 288 kByte (0x48000 Bytes)
62 **/
63 static struct map_desc huw_webpanel_io_desc[] __initdata = {
64  /* virtual     physical    length      type */
65   { 0xf0000000, 0xc1fb8000, 0x00048000, MT_DEVICE }, /* Parameter */
66   { 0xf1000000, 0x18000000, 0x00100000, MT_DEVICE }  /* Paules CS3, write only */
67 };
68
69 static void __init huw_webpanel_map_io(void)
70 {
71         sa1100_map_io();
72         iotable_init(huw_webpanel_io_desc, ARRAY_SIZE(huw_webpanel_io_desc));
73
74         sa1100_register_uart(0, 3);
75         sa1100_register_uart(1, 1);
76 }
77
78
79 MACHINE_START(HUW_WEBPANEL, "HuW-Webpanel")
80         MAINTAINER("Roman Jordan")
81         BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
82         MAPIO(huw_webpanel_map_io)
83         INITIRQ(sa1100_init_irq)
84         INITTIME(sa1100_init_time)
85 MACHINE_END