Merge branch 'rmobile-latest' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 24 Mar 2011 17:04:59 +0000 (10:04 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 24 Mar 2011 17:04:59 +0000 (10:04 -0700)
* 'rmobile-latest' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:
  mmc: Add MMC_PROGRESS_*
  mmc, ARM: Rename SuperH Mobile ARM zboot helpers
  ARM: mach-shmobile: add coherent DMA mask to CEU camera devices
  ARM: mach-shmobile: Dynamic backlight control for Mackerel

arch/arm/boot/compressed/mmcif-sh7372.c
arch/arm/mach-shmobile/board-ap4evb.c
arch/arm/mach-shmobile/board-mackerel.c
arch/arm/mach-shmobile/include/mach/mmc-ap4eb.h [moved from arch/arm/mach-shmobile/include/mach/mmcif-ap4eb.h with 80% similarity]
arch/arm/mach-shmobile/include/mach/mmc-mackerel.h [moved from arch/arm/mach-shmobile/include/mach/mmcif-mackerel.h with 82% similarity]
arch/arm/mach-shmobile/include/mach/mmc.h [moved from arch/arm/mach-shmobile/include/mach/mmcif.h with 67% similarity]
arch/sh/boot/romimage/mmcif-sh7724.c
include/linux/mmc/boot.h [new file with mode: 0644]
include/linux/mmc/sh_mmcif.h

index e6180af..7453c83 100644 (file)
@@ -10,7 +10,8 @@
  */
 
 #include <linux/mmc/sh_mmcif.h>
-#include <mach/mmcif.h>
+#include <linux/mmc/boot.h>
+#include <mach/mmc.h>
 
 #define MMCIF_BASE      (void __iomem *)0xe6bd0000
 
@@ -41,8 +42,8 @@
  */
 asmlinkage void mmcif_loader(unsigned char *buf, unsigned long len)
 {
-       mmcif_init_progress();
-       mmcif_update_progress(MMCIF_PROGRESS_ENTER);
+       mmc_init_progress();
+       mmc_update_progress(MMC_PROGRESS_ENTER);
 
        /* Initialise MMC
         * registers: PORT84CR-PORT92CR
@@ -68,12 +69,12 @@ asmlinkage void mmcif_loader(unsigned char *buf, unsigned long len)
        /* Enable clock to MMC hardware block */
        __raw_writel(__raw_readl(SMSTPCR3) & ~(1 << 12), SMSTPCR3);
 
-       mmcif_update_progress(MMCIF_PROGRESS_INIT);
+       mmc_update_progress(MMC_PROGRESS_INIT);
 
        /* setup MMCIF hardware */
        sh_mmcif_boot_init(MMCIF_BASE);
 
-       mmcif_update_progress(MMCIF_PROGRESS_LOAD);
+       mmc_update_progress(MMC_PROGRESS_LOAD);
 
        /* load kernel via MMCIF interface */
        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)
        /* Disable clock to MMC hardware block */
        __raw_writel(__raw_readl(SMSTPCR3) & (1 << 12), SMSTPCR3);
 
-       mmcif_update_progress(MMCIF_PROGRESS_DONE);
+       mmc_update_progress(MMC_PROGRESS_DONE);
 }
index 1a8118c..a94f29d 100644 (file)
@@ -923,7 +923,8 @@ static struct platform_device ceu_device = {
        .num_resources  = ARRAY_SIZE(ceu_resources),
        .resource       = ceu_resources,
        .dev    = {
-               .platform_data  = &sh_mobile_ceu_info,
+               .platform_data          = &sh_mobile_ceu_info,
+               .coherent_dma_mask      = 0xffffffff,
        },
 };
 
index 1a63c21..49bc074 100644 (file)
@@ -295,6 +295,18 @@ static struct fb_videomode mackerel_lcdc_modes[] = {
        },
 };
 
+static int mackerel_set_brightness(void *board_data, int brightness)
+{
+       gpio_set_value(GPIO_PORT31, brightness);
+
+       return 0;
+}
+
+static int mackerel_get_brightness(void *board_data)
+{
+       return gpio_get_value(GPIO_PORT31);
+}
+
 static struct sh_mobile_lcdc_info lcdc_info = {
        .clock_source = LCDC_CLK_BUS,
        .ch[0] = {
@@ -307,6 +319,14 @@ static struct sh_mobile_lcdc_info lcdc_info = {
                .flags                  = 0,
                .lcd_size_cfg.width     = 152,
                .lcd_size_cfg.height    = 91,
+               .board_cfg = {
+                       .set_brightness = mackerel_set_brightness,
+                       .get_brightness = mackerel_get_brightness,
+               },
+               .bl_info = {
+                       .name = "sh_mobile_lcdc_bl",
+                       .max_brightness = 1,
+               },
        }
 };
 
@@ -901,7 +921,8 @@ static struct platform_device ceu_device = {
        .num_resources  = ARRAY_SIZE(ceu_resources),
        .resource       = ceu_resources,
        .dev            = {
-               .platform_data  = &sh_mobile_ceu_info,
+               .platform_data          = &sh_mobile_ceu_info,
+               .coherent_dma_mask      = 0xffffffff,
        },
 };
 
@@ -1059,7 +1080,7 @@ static void __init mackerel_init(void)
        gpio_request(GPIO_FN_LCDDCK,   NULL);
 
        gpio_request(GPIO_PORT31, NULL); /* backlight */
-       gpio_direction_output(GPIO_PORT31, 1);
+       gpio_direction_output(GPIO_PORT31, 0); /* off by default */
 
        gpio_request(GPIO_PORT151, NULL); /* LCDDON */
        gpio_direction_output(GPIO_PORT151, 1);
@@ -1,5 +1,5 @@
-#ifndef MMCIF_AP4EB_H
-#define MMCIF_AP4EB_H
+#ifndef MMC_AP4EB_H
+#define MMC_AP4EB_H
 
 #define PORT185CR      (void __iomem *)0xe60520b9
 #define PORT186CR      (void __iomem *)0xe60520ba
@@ -8,7 +8,7 @@
 
 #define PORTR191_160DR (void __iomem *)0xe6056014
 
-static inline void mmcif_init_progress(void)
+static inline void mmc_init_progress(void)
 {
        /* Initialise LEDS1-4
         * registers: PORT185CR-PORT188CR (LED1-LED4 Control)
@@ -20,10 +20,10 @@ static inline void mmcif_init_progress(void)
        __raw_writeb(0x10, PORT188CR);
 }
 
-static inline void mmcif_update_progress(int n)
+static inline void mmc_update_progress(int n)
 {
        __raw_writel((__raw_readl(PORTR191_160DR) & ~(0xf << 25)) |
                     (1 << (25 + n)), PORTR191_160DR);
 }
 
-#endif /* MMCIF_AP4EB_H */
+#endif /* MMC_AP4EB_H */
@@ -1,5 +1,5 @@
-#ifndef MMCIF_MACKEREL_H
-#define MMCIF_MACKEREL_H
+#ifndef MMC_MACKEREL_H
+#define MMC_MACKEREL_H
 
 #define PORT0CR      (void __iomem *)0xe6051000
 #define PORT1CR      (void __iomem *)0xe6051001
@@ -9,7 +9,7 @@
 #define PORTR031_000DR (void __iomem *)0xe6055000
 #define PORTL159_128DR (void __iomem *)0xe6054010
 
-static inline void mmcif_init_progress(void)
+static inline void mmc_init_progress(void)
 {
        /* Initialise LEDS0-3
         * registers: PORT0CR-PORT2CR,PORT159CR (LED0-LED3 Control)
@@ -21,7 +21,7 @@ static inline void mmcif_init_progress(void)
        __raw_writeb(0x10, PORT159CR);
 }
 
-static inline void mmcif_update_progress(int n)
+static inline void mmc_update_progress(int n)
 {
        unsigned a = 0, b = 0;
 
@@ -35,5 +35,4 @@ static inline void mmcif_update_progress(int n)
        __raw_writel((__raw_readl(PORTL159_128DR) & ~(1 << 31)) | b,
                     PORTL159_128DR);
 }
-
-#endif /* MMCIF_MACKEREL_H */
+#endif /* MMC_MACKEREL_H */
similarity index 67%
rename from arch/arm/mach-shmobile/include/mach/mmcif.h
rename to arch/arm/mach-shmobile/include/mach/mmc.h
index f4dc327..e11560a 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef MMCIF_H
-#define MMCIF_H
+#ifndef MMC_H
+#define MMC_H
 
 /**************************************************
  *
@@ -8,11 +8,11 @@
  **************************************************/
 
 #ifdef CONFIG_MACH_AP4EVB
-#include "mach/mmcif-ap4eb.h"
+#include "mach/mmc-ap4eb.h"
 #elif CONFIG_MACH_MACKEREL
-#include "mach/mmcif-mackerel.h"
+#include "mach/mmc-mackerel.h"
 #else
 #error "unsupported board."
 #endif
 
-#endif /* MMCIF_H */
+#endif /* MMC_H */
index c84e783..16b1225 100644 (file)
@@ -9,6 +9,7 @@
  */
 
 #include <linux/mmc/sh_mmcif.h>
+#include <linux/mmc/boot.h>
 #include <mach/romimage.h>
 
 #define MMCIF_BASE      (void __iomem *)0xa4ca0000
@@ -29,7 +30,7 @@
  */
 asmlinkage void mmcif_loader(unsigned char *buf, unsigned long no_bytes)
 {
-       mmcif_update_progress(MMCIF_PROGRESS_ENTER);
+       mmcif_update_progress(MMC_PROGRESS_ENTER);
 
        /* enable clock to the MMCIF hardware block */
        __raw_writel(__raw_readl(MSTPCR2) & ~0x20000000, MSTPCR2);
@@ -52,12 +53,12 @@ asmlinkage void mmcif_loader(unsigned char *buf, unsigned long no_bytes)
        /* high drive capability for MMC pins */
        __raw_writew(__raw_readw(DRVCRA) | 0x3000, DRVCRA);
 
-       mmcif_update_progress(MMCIF_PROGRESS_INIT);
+       mmcif_update_progress(MMC_PROGRESS_INIT);
 
        /* setup MMCIF hardware */
        sh_mmcif_boot_init(MMCIF_BASE);
 
-       mmcif_update_progress(MMCIF_PROGRESS_LOAD);
+       mmcif_update_progress(MMC_PROGRESS_LOAD);
 
        /* load kernel via MMCIF interface */
        sh_mmcif_boot_do_read(MMCIF_BASE, 512,
@@ -67,5 +68,5 @@ asmlinkage void mmcif_loader(unsigned char *buf, unsigned long no_bytes)
        /* disable clock to the MMCIF hardware block */
        __raw_writel(__raw_readl(MSTPCR2) | 0x20000000, MSTPCR2);
 
-       mmcif_update_progress(MMCIF_PROGRESS_DONE);
+       mmcif_update_progress(MMC_PROGRESS_DONE);
 }
diff --git a/include/linux/mmc/boot.h b/include/linux/mmc/boot.h
new file mode 100644 (file)
index 0000000..39d787c
--- /dev/null
@@ -0,0 +1,7 @@
+#ifndef MMC_BOOT_H
+#define MMC_BOOT_H
+
+enum { MMC_PROGRESS_ENTER, MMC_PROGRESS_INIT,
+       MMC_PROGRESS_LOAD, MMC_PROGRESS_DONE };
+
+#endif
index 38d3930..9eb9b4b 100644 (file)
@@ -104,9 +104,6 @@ static inline void sh_mmcif_writel(void __iomem *addr, int reg, u32 val)
 
 #define SH_MMCIF_BBS 512 /* boot block size */
 
-enum { MMCIF_PROGRESS_ENTER, MMCIF_PROGRESS_INIT,
-       MMCIF_PROGRESS_LOAD, MMCIF_PROGRESS_DONE };
-
 static inline void sh_mmcif_boot_cmd_send(void __iomem *base,
                                          unsigned long cmd, unsigned long arg)
 {