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 | { |
