Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 95985725 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* '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
parents 4d4fcae1 9d9659b6
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -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);
}
+2 −1
Original line number Diff line number Diff line
@@ -924,6 +924,7 @@ static struct platform_device ceu_device = {
	.resource	= ceu_resources,
	.dev	= {
		.platform_data		= &sh_mobile_ceu_info,
		.coherent_dma_mask	= 0xffffffff,
	},
};

+23 −2
Original line number Diff line number Diff line
@@ -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,
		},
	}
};

@@ -902,6 +922,7 @@ static struct platform_device ceu_device = {
	.resource	= ceu_resources,
	.dev		= {
		.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);
+5 −5
Original line number Diff line number Diff line
#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 */
+5 −6
Original line number Diff line number Diff line
#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 */
Loading