diff options
-rw-r--r-- | arch/arm/boot/compressed/mmcif-sh7372.c | 13 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/board-ap4evb.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/board-mackerel.c | 25 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/include/mach/mmc-ap4eb.h (renamed from arch/arm/mach-shmobile/include/mach/mmcif-ap4eb.h) | 10 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/include/mach/mmc-mackerel.h (renamed from arch/arm/mach-shmobile/include/mach/mmcif-mackerel.h) | 11 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/include/mach/mmc.h (renamed from arch/arm/mach-shmobile/include/mach/mmcif.h) | 10 | ||||
-rw-r--r-- | arch/sh/boot/romimage/mmcif-sh7724.c | 9 | ||||
-rw-r--r-- | include/linux/mmc/boot.h | 7 | ||||
-rw-r--r-- | include/linux/mmc/sh_mmcif.h | 3 |
9 files changed, 59 insertions, 32 deletions
diff --git a/arch/arm/boot/compressed/mmcif-sh7372.c b/arch/arm/boot/compressed/mmcif-sh7372.c index e6180af241f6..7453c8337b83 100644 --- a/arch/arm/boot/compressed/mmcif-sh7372.c +++ b/arch/arm/boot/compressed/mmcif-sh7372.c | |||
@@ -10,7 +10,8 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/mmc/sh_mmcif.h> | 12 | #include <linux/mmc/sh_mmcif.h> |
13 | #include <mach/mmcif.h> | 13 | #include <linux/mmc/boot.h> |
14 | #include <mach/mmc.h> | ||
14 | 15 | ||
15 | #define MMCIF_BASE (void __iomem *)0xe6bd0000 | 16 | #define MMCIF_BASE (void __iomem *)0xe6bd0000 |
16 | 17 | ||
@@ -41,8 +42,8 @@ | |||
41 | */ | 42 | */ |
42 | asmlinkage void mmcif_loader(unsigned char *buf, unsigned long len) | 43 | asmlinkage void mmcif_loader(unsigned char *buf, unsigned long len) |
43 | { | 44 | { |
44 | mmcif_init_progress(); | 45 | mmc_init_progress(); |
45 | mmcif_update_progress(MMCIF_PROGRESS_ENTER); | 46 | mmc_update_progress(MMC_PROGRESS_ENTER); |
46 | 47 | ||
47 | /* Initialise MMC | 48 | /* Initialise MMC |
48 | * registers: PORT84CR-PORT92CR | 49 | * registers: PORT84CR-PORT92CR |
@@ -68,12 +69,12 @@ asmlinkage void mmcif_loader(unsigned char *buf, unsigned long len) | |||
68 | /* Enable clock to MMC hardware block */ | 69 | /* Enable clock to MMC hardware block */ |
69 | __raw_writel(__raw_readl(SMSTPCR3) & ~(1 << 12), SMSTPCR3); | 70 | __raw_writel(__raw_readl(SMSTPCR3) & ~(1 << 12), SMSTPCR3); |
70 | 71 | ||
71 | mmcif_update_progress(MMCIF_PROGRESS_INIT); | 72 | mmc_update_progress(MMC_PROGRESS_INIT); |
72 | 73 | ||
73 | /* setup MMCIF hardware */ | 74 | /* setup MMCIF hardware */ |
74 | sh_mmcif_boot_init(MMCIF_BASE); | 75 | sh_mmcif_boot_init(MMCIF_BASE); |
75 | 76 | ||
76 | mmcif_update_progress(MMCIF_PROGRESS_LOAD); | 77 | mmc_update_progress(MMC_PROGRESS_LOAD); |
77 | 78 | ||
78 | /* load kernel via MMCIF interface */ | 79 | /* load kernel via MMCIF interface */ |
79 | sh_mmcif_boot_do_read(MMCIF_BASE, 2, /* Kernel is at block 2 */ | 80 | sh_mmcif_boot_do_read(MMCIF_BASE, 2, /* Kernel is at block 2 */ |
@@ -83,5 +84,5 @@ asmlinkage void mmcif_loader(unsigned char *buf, unsigned long len) | |||
83 | /* Disable clock to MMC hardware block */ | 84 | /* Disable clock to MMC hardware block */ |
84 | __raw_writel(__raw_readl(SMSTPCR3) & (1 << 12), SMSTPCR3); | 85 | __raw_writel(__raw_readl(SMSTPCR3) & (1 << 12), SMSTPCR3); |
85 | 86 | ||
86 | mmcif_update_progress(MMCIF_PROGRESS_DONE); | 87 | mmc_update_progress(MMC_PROGRESS_DONE); |
87 | } | 88 | } |
diff --git a/arch/arm/mach-shmobile/board-ap4evb.c b/arch/arm/mach-shmobile/board-ap4evb.c index 1a8118c929be..a94f29da5d30 100644 --- a/arch/arm/mach-shmobile/board-ap4evb.c +++ b/arch/arm/mach-shmobile/board-ap4evb.c | |||
@@ -923,7 +923,8 @@ static struct platform_device ceu_device = { | |||
923 | .num_resources = ARRAY_SIZE(ceu_resources), | 923 | .num_resources = ARRAY_SIZE(ceu_resources), |
924 | .resource = ceu_resources, | 924 | .resource = ceu_resources, |
925 | .dev = { | 925 | .dev = { |
926 | .platform_data = &sh_mobile_ceu_info, | 926 | .platform_data = &sh_mobile_ceu_info, |
927 | .coherent_dma_mask = 0xffffffff, | ||
927 | }, | 928 | }, |
928 | }; | 929 | }; |
929 | 930 | ||
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index 1a63c213e45d..49bc07482179 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c | |||
@@ -295,6 +295,18 @@ static struct fb_videomode mackerel_lcdc_modes[] = { | |||
295 | }, | 295 | }, |
296 | }; | 296 | }; |
297 | 297 | ||
298 | static int mackerel_set_brightness(void *board_data, int brightness) | ||
299 | { | ||
300 | gpio_set_value(GPIO_PORT31, brightness); | ||
301 | |||
302 | return 0; | ||
303 | } | ||
304 | |||
305 | static int mackerel_get_brightness(void *board_data) | ||
306 | { | ||
307 | return gpio_get_value(GPIO_PORT31); | ||
308 | } | ||
309 | |||
298 | static struct sh_mobile_lcdc_info lcdc_info = { | 310 | static struct sh_mobile_lcdc_info lcdc_info = { |
299 | .clock_source = LCDC_CLK_BUS, | 311 | .clock_source = LCDC_CLK_BUS, |
300 | .ch[0] = { | 312 | .ch[0] = { |
@@ -307,6 +319,14 @@ static struct sh_mobile_lcdc_info lcdc_info = { | |||
307 | .flags = 0, | 319 | .flags = 0, |
308 | .lcd_size_cfg.width = 152, | 320 | .lcd_size_cfg.width = 152, |
309 | .lcd_size_cfg.height = 91, | 321 | .lcd_size_cfg.height = 91, |
322 | .board_cfg = { | ||
323 | .set_brightness = mackerel_set_brightness, | ||
324 | .get_brightness = mackerel_get_brightness, | ||
325 | }, | ||
326 | .bl_info = { | ||
327 | .name = "sh_mobile_lcdc_bl", | ||
328 | .max_brightness = 1, | ||
329 | }, | ||
310 | } | 330 | } |
311 | }; | 331 | }; |
312 | 332 | ||
@@ -901,7 +921,8 @@ static struct platform_device ceu_device = { | |||
901 | .num_resources = ARRAY_SIZE(ceu_resources), | 921 | .num_resources = ARRAY_SIZE(ceu_resources), |
902 | .resource = ceu_resources, | 922 | .resource = ceu_resources, |
903 | .dev = { | 923 | .dev = { |
904 | .platform_data = &sh_mobile_ceu_info, | 924 | .platform_data = &sh_mobile_ceu_info, |
925 | .coherent_dma_mask = 0xffffffff, | ||
905 | }, | 926 | }, |
906 | }; | 927 | }; |
907 | 928 | ||
@@ -1059,7 +1080,7 @@ static void __init mackerel_init(void) | |||
1059 | gpio_request(GPIO_FN_LCDDCK, NULL); | 1080 | gpio_request(GPIO_FN_LCDDCK, NULL); |
1060 | 1081 | ||
1061 | gpio_request(GPIO_PORT31, NULL); /* backlight */ | 1082 | gpio_request(GPIO_PORT31, NULL); /* backlight */ |
1062 | gpio_direction_output(GPIO_PORT31, 1); | 1083 | gpio_direction_output(GPIO_PORT31, 0); /* off by default */ |
1063 | 1084 | ||
1064 | gpio_request(GPIO_PORT151, NULL); /* LCDDON */ | 1085 | gpio_request(GPIO_PORT151, NULL); /* LCDDON */ |
1065 | gpio_direction_output(GPIO_PORT151, 1); | 1086 | gpio_direction_output(GPIO_PORT151, 1); |
diff --git a/arch/arm/mach-shmobile/include/mach/mmcif-ap4eb.h b/arch/arm/mach-shmobile/include/mach/mmc-ap4eb.h index a8d02be8d2b6..db59fdbda860 100644 --- a/arch/arm/mach-shmobile/include/mach/mmcif-ap4eb.h +++ b/arch/arm/mach-shmobile/include/mach/mmc-ap4eb.h | |||
@@ -1,5 +1,5 @@ | |||
1 | #ifndef MMCIF_AP4EB_H | 1 | #ifndef MMC_AP4EB_H |
2 | #define MMCIF_AP4EB_H | 2 | #define MMC_AP4EB_H |
3 | 3 | ||
4 | #define PORT185CR (void __iomem *)0xe60520b9 | 4 | #define PORT185CR (void __iomem *)0xe60520b9 |
5 | #define PORT186CR (void __iomem *)0xe60520ba | 5 | #define PORT186CR (void __iomem *)0xe60520ba |
@@ -8,7 +8,7 @@ | |||
8 | 8 | ||
9 | #define PORTR191_160DR (void __iomem *)0xe6056014 | 9 | #define PORTR191_160DR (void __iomem *)0xe6056014 |
10 | 10 | ||
11 | static inline void mmcif_init_progress(void) | 11 | static inline void mmc_init_progress(void) |
12 | { | 12 | { |
13 | /* Initialise LEDS1-4 | 13 | /* Initialise LEDS1-4 |
14 | * registers: PORT185CR-PORT188CR (LED1-LED4 Control) | 14 | * registers: PORT185CR-PORT188CR (LED1-LED4 Control) |
@@ -20,10 +20,10 @@ static inline void mmcif_init_progress(void) | |||
20 | __raw_writeb(0x10, PORT188CR); | 20 | __raw_writeb(0x10, PORT188CR); |
21 | } | 21 | } |
22 | 22 | ||
23 | static inline void mmcif_update_progress(int n) | 23 | static inline void mmc_update_progress(int n) |
24 | { | 24 | { |
25 | __raw_writel((__raw_readl(PORTR191_160DR) & ~(0xf << 25)) | | 25 | __raw_writel((__raw_readl(PORTR191_160DR) & ~(0xf << 25)) | |
26 | (1 << (25 + n)), PORTR191_160DR); | 26 | (1 << (25 + n)), PORTR191_160DR); |
27 | } | 27 | } |
28 | 28 | ||
29 | #endif /* MMCIF_AP4EB_H */ | 29 | #endif /* MMC_AP4EB_H */ |
diff --git a/arch/arm/mach-shmobile/include/mach/mmcif-mackerel.h b/arch/arm/mach-shmobile/include/mach/mmc-mackerel.h index 4b4f6949a868..15d3a9efdec2 100644 --- a/arch/arm/mach-shmobile/include/mach/mmcif-mackerel.h +++ b/arch/arm/mach-shmobile/include/mach/mmc-mackerel.h | |||
@@ -1,5 +1,5 @@ | |||
1 | #ifndef MMCIF_MACKEREL_H | 1 | #ifndef MMC_MACKEREL_H |
2 | #define MMCIF_MACKEREL_H | 2 | #define MMC_MACKEREL_H |
3 | 3 | ||
4 | #define PORT0CR (void __iomem *)0xe6051000 | 4 | #define PORT0CR (void __iomem *)0xe6051000 |
5 | #define PORT1CR (void __iomem *)0xe6051001 | 5 | #define PORT1CR (void __iomem *)0xe6051001 |
@@ -9,7 +9,7 @@ | |||
9 | #define PORTR031_000DR (void __iomem *)0xe6055000 | 9 | #define PORTR031_000DR (void __iomem *)0xe6055000 |
10 | #define PORTL159_128DR (void __iomem *)0xe6054010 | 10 | #define PORTL159_128DR (void __iomem *)0xe6054010 |
11 | 11 | ||
12 | static inline void mmcif_init_progress(void) | 12 | static inline void mmc_init_progress(void) |
13 | { | 13 | { |
14 | /* Initialise LEDS0-3 | 14 | /* Initialise LEDS0-3 |
15 | * registers: PORT0CR-PORT2CR,PORT159CR (LED0-LED3 Control) | 15 | * registers: PORT0CR-PORT2CR,PORT159CR (LED0-LED3 Control) |
@@ -21,7 +21,7 @@ static inline void mmcif_init_progress(void) | |||
21 | __raw_writeb(0x10, PORT159CR); | 21 | __raw_writeb(0x10, PORT159CR); |
22 | } | 22 | } |
23 | 23 | ||
24 | static inline void mmcif_update_progress(int n) | 24 | static inline void mmc_update_progress(int n) |
25 | { | 25 | { |
26 | unsigned a = 0, b = 0; | 26 | unsigned a = 0, b = 0; |
27 | 27 | ||
@@ -35,5 +35,4 @@ static inline void mmcif_update_progress(int n) | |||
35 | __raw_writel((__raw_readl(PORTL159_128DR) & ~(1 << 31)) | b, | 35 | __raw_writel((__raw_readl(PORTL159_128DR) & ~(1 << 31)) | b, |
36 | PORTL159_128DR); | 36 | PORTL159_128DR); |
37 | } | 37 | } |
38 | 38 | #endif /* MMC_MACKEREL_H */ | |
39 | #endif /* MMCIF_MACKEREL_H */ | ||
diff --git a/arch/arm/mach-shmobile/include/mach/mmcif.h b/arch/arm/mach-shmobile/include/mach/mmc.h index f4dc3279cf03..e11560a525a1 100644 --- a/arch/arm/mach-shmobile/include/mach/mmcif.h +++ b/arch/arm/mach-shmobile/include/mach/mmc.h | |||
@@ -1,5 +1,5 @@ | |||
1 | #ifndef MMCIF_H | 1 | #ifndef MMC_H |
2 | #define MMCIF_H | 2 | #define MMC_H |
3 | 3 | ||
4 | /************************************************** | 4 | /************************************************** |
5 | * | 5 | * |
@@ -8,11 +8,11 @@ | |||
8 | **************************************************/ | 8 | **************************************************/ |
9 | 9 | ||
10 | #ifdef CONFIG_MACH_AP4EVB | 10 | #ifdef CONFIG_MACH_AP4EVB |
11 | #include "mach/mmcif-ap4eb.h" | 11 | #include "mach/mmc-ap4eb.h" |
12 | #elif CONFIG_MACH_MACKEREL | 12 | #elif CONFIG_MACH_MACKEREL |
13 | #include "mach/mmcif-mackerel.h" | 13 | #include "mach/mmc-mackerel.h" |
14 | #else | 14 | #else |
15 | #error "unsupported board." | 15 | #error "unsupported board." |
16 | #endif | 16 | #endif |
17 | 17 | ||
18 | #endif /* MMCIF_H */ | 18 | #endif /* MMC_H */ |
diff --git a/arch/sh/boot/romimage/mmcif-sh7724.c b/arch/sh/boot/romimage/mmcif-sh7724.c index c84e7831018d..16b122510c84 100644 --- a/arch/sh/boot/romimage/mmcif-sh7724.c +++ b/arch/sh/boot/romimage/mmcif-sh7724.c | |||
@@ -9,6 +9,7 @@ | |||
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/mmc/sh_mmcif.h> | 11 | #include <linux/mmc/sh_mmcif.h> |
12 | #include <linux/mmc/boot.h> | ||
12 | #include <mach/romimage.h> | 13 | #include <mach/romimage.h> |
13 | 14 | ||
14 | #define MMCIF_BASE (void __iomem *)0xa4ca0000 | 15 | #define MMCIF_BASE (void __iomem *)0xa4ca0000 |
@@ -29,7 +30,7 @@ | |||
29 | */ | 30 | */ |
30 | asmlinkage void mmcif_loader(unsigned char *buf, unsigned long no_bytes) | 31 | asmlinkage void mmcif_loader(unsigned char *buf, unsigned long no_bytes) |
31 | { | 32 | { |
32 | mmcif_update_progress(MMCIF_PROGRESS_ENTER); | 33 | mmcif_update_progress(MMC_PROGRESS_ENTER); |
33 | 34 | ||
34 | /* enable clock to the MMCIF hardware block */ | 35 | /* enable clock to the MMCIF hardware block */ |
35 | __raw_writel(__raw_readl(MSTPCR2) & ~0x20000000, MSTPCR2); | 36 | __raw_writel(__raw_readl(MSTPCR2) & ~0x20000000, MSTPCR2); |
@@ -52,12 +53,12 @@ asmlinkage void mmcif_loader(unsigned char *buf, unsigned long no_bytes) | |||
52 | /* high drive capability for MMC pins */ | 53 | /* high drive capability for MMC pins */ |
53 | __raw_writew(__raw_readw(DRVCRA) | 0x3000, DRVCRA); | 54 | __raw_writew(__raw_readw(DRVCRA) | 0x3000, DRVCRA); |
54 | 55 | ||
55 | mmcif_update_progress(MMCIF_PROGRESS_INIT); | 56 | mmcif_update_progress(MMC_PROGRESS_INIT); |
56 | 57 | ||
57 | /* setup MMCIF hardware */ | 58 | /* setup MMCIF hardware */ |
58 | sh_mmcif_boot_init(MMCIF_BASE); | 59 | sh_mmcif_boot_init(MMCIF_BASE); |
59 | 60 | ||
60 | mmcif_update_progress(MMCIF_PROGRESS_LOAD); | 61 | mmcif_update_progress(MMC_PROGRESS_LOAD); |
61 | 62 | ||
62 | /* load kernel via MMCIF interface */ | 63 | /* load kernel via MMCIF interface */ |
63 | sh_mmcif_boot_do_read(MMCIF_BASE, 512, | 64 | sh_mmcif_boot_do_read(MMCIF_BASE, 512, |
@@ -67,5 +68,5 @@ asmlinkage void mmcif_loader(unsigned char *buf, unsigned long no_bytes) | |||
67 | /* disable clock to the MMCIF hardware block */ | 68 | /* disable clock to the MMCIF hardware block */ |
68 | __raw_writel(__raw_readl(MSTPCR2) | 0x20000000, MSTPCR2); | 69 | __raw_writel(__raw_readl(MSTPCR2) | 0x20000000, MSTPCR2); |
69 | 70 | ||
70 | mmcif_update_progress(MMCIF_PROGRESS_DONE); | 71 | mmcif_update_progress(MMC_PROGRESS_DONE); |
71 | } | 72 | } |
diff --git a/include/linux/mmc/boot.h b/include/linux/mmc/boot.h new file mode 100644 index 000000000000..39d787c229cb --- /dev/null +++ b/include/linux/mmc/boot.h | |||
@@ -0,0 +1,7 @@ | |||
1 | #ifndef MMC_BOOT_H | ||
2 | #define MMC_BOOT_H | ||
3 | |||
4 | enum { MMC_PROGRESS_ENTER, MMC_PROGRESS_INIT, | ||
5 | MMC_PROGRESS_LOAD, MMC_PROGRESS_DONE }; | ||
6 | |||
7 | #endif | ||
diff --git a/include/linux/mmc/sh_mmcif.h b/include/linux/mmc/sh_mmcif.h index 38d393092812..9eb9b4b96f55 100644 --- a/include/linux/mmc/sh_mmcif.h +++ b/include/linux/mmc/sh_mmcif.h | |||
@@ -104,9 +104,6 @@ static inline void sh_mmcif_writel(void __iomem *addr, int reg, u32 val) | |||
104 | 104 | ||
105 | #define SH_MMCIF_BBS 512 /* boot block size */ | 105 | #define SH_MMCIF_BBS 512 /* boot block size */ |
106 | 106 | ||
107 | enum { MMCIF_PROGRESS_ENTER, MMCIF_PROGRESS_INIT, | ||
108 | MMCIF_PROGRESS_LOAD, MMCIF_PROGRESS_DONE }; | ||
109 | |||
110 | static inline void sh_mmcif_boot_cmd_send(void __iomem *base, | 107 | static inline void sh_mmcif_boot_cmd_send(void __iomem *base, |
111 | unsigned long cmd, unsigned long arg) | 108 | unsigned long cmd, unsigned long arg) |
112 | { | 109 | { |