mirror of
https://github.com/torvalds/linux.git
synced 2024-12-29 06:12:08 +00:00
Merge branch 'rmobile-latest' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
* '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
This commit is contained in:
commit
9598572536
@ -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);
|
||||
}
|
||||
|
@ -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,
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -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 */
|
@ -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 */
|
@ -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);
|
||||
}
|
||||
|
7
include/linux/mmc/boot.h
Normal file
7
include/linux/mmc/boot.h
Normal file
@ -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
|
@ -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)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user