From: lhh Date: Sat, 18 Dec 2010 11:36:49 +0000 (+0800) Subject: add rk29 Winaccord board X-Git-Tag: firefly_0821_release~10920 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=dc4a43497f5ae49da9dce0c7cce20326f4d1d608;p=firefly-linux-kernel-4.4.55.git add rk29 Winaccord board --- diff --git a/arch/arm/mach-rk29/Kconfig b/arch/arm/mach-rk29/Kconfig index 3f67b1771515..4ecd991c4c9f 100644 --- a/arch/arm/mach-rk29/Kconfig +++ b/arch/arm/mach-rk29/Kconfig @@ -6,9 +6,17 @@ config MACH_RK29SDK help Support for the ROCKCHIP Board For Rk29 Sdk. +config MACH_RK29WINACCORD + depends on ARCH_RK29 + default y + bool "ROCKCHIP Board Rk29 For Winaccord" + select PL330 + help + Support for the ROCKCHIP Board For Rk29 Winaccord. + config MACH_RK29SDK_MEM_SIZE_M int "Memory size (in MiB)" - depends on MACH_RK29SDK + depends on MACH_RK29SDK || MACH_RK29WINACCORD default 512 config WIFI_CONTROL_FUNC diff --git a/arch/arm/mach-rk29/Makefile b/arch/arm/mach-rk29/Makefile index f4cf97cc7e52..1ed0be1ef425 100644 --- a/arch/arm/mach-rk29/Makefile +++ b/arch/arm/mach-rk29/Makefile @@ -1,3 +1,4 @@ obj-y += timer.o io.o devices.o iomux.o clock.o rk29-pl330.o dma.o gpio.o obj-$(CONFIG_RK29_VPU) += vpu.o vpu_mem.o obj-$(CONFIG_MACH_RK29SDK) += board-rk29sdk.o board-rk29sdk-key.o +obj-$(CONFIG_MACH_RK29WINACCORD) += board-rk29-winaccord.o board-rk29sdk-key.o diff --git a/arch/arm/mach-rk29/board-rk29sdk.c b/arch/arm/mach-rk29/board-rk29sdk.c index e63176f2d450..452d108d851b 100755 --- a/arch/arm/mach-rk29/board-rk29sdk.c +++ b/arch/arm/mach-rk29/board-rk29sdk.c @@ -1496,10 +1496,10 @@ static void __init machine_rk29_init_irq(void) #define POWER_ON_PIN RK29_PIN4_PA4 static void __init machine_rk29_board_init(void) { - rk29_board_iomux_init(); + rk29_board_iomux_init(); gpio_request(POWER_ON_PIN,"poweronpin"); - gpio_set_value(POWER_ON_PIN, 1); - gpio_direction_output(POWER_ON_PIN, 1); + gpio_set_value(POWER_ON_PIN, GPIO_HIGH); + gpio_direction_output(POWER_ON_PIN, GPIO_HIGH); #ifdef CONFIG_WIFI_CONTROL_FUNC rk29sdk_wifi_bt_gpio_control_init(); diff --git a/drivers/mmc/host/rk29_sdmmc.c b/drivers/mmc/host/rk29_sdmmc.c index 545bb97bf020..fb17573ebe70 100755 --- a/drivers/mmc/host/rk29_sdmmc.c +++ b/drivers/mmc/host/rk29_sdmmc.c @@ -358,7 +358,7 @@ static void send_stop_cmd(struct rk29_sdmmc *host, struct mmc_data *data) int time_out=100, time_out2=3; unsigned long flags; - /*µÈ´ýÇ°Ãæ´«Êä´¦ÀíÍê³É*/ + while(rk29_sdmmc_read(host->regs, SDMMC_STATUS) & (SDMMC_STAUTS_DATA_BUSY)) { mdelay(5); time_out --; @@ -375,7 +375,7 @@ static void send_stop_cmd(struct rk29_sdmmc *host, struct mmc_data *data) } } - /*¼ì²éFIFO,Èç¹û²»Îª¿Õ£¬Çå¿Õ*/ + if(!(rk29_sdmmc_read(host->regs, SDMMC_STATUS) & SDMMC_STAUTS_FIFO_EMPTY)) { local_irq_save(flags); rk29_sdmmc_write(host->regs, SDMMC_CTRL, rk29_sdmmc_read(host->regs, SDMMC_CTRL) | ( SDMMC_CTRL_FIFO_RESET )); @@ -552,7 +552,7 @@ static void rk29_sdmmc_start_request(struct rk29_sdmmc *host) unsigned long flags; mrq = host->mrq; - /*µÈ´ýÇ°Ãæ´«Êä´¦ÀíÍê³É*/ + while(rk29_sdmmc_read(host->regs, SDMMC_STATUS) & (SDMMC_STAUTS_DATA_BUSY)) { mdelay(5); time_out --; @@ -569,7 +569,7 @@ static void rk29_sdmmc_start_request(struct rk29_sdmmc *host) } } - /*¼ì²éFIFO,Èç¹û²»Îª¿Õ£¬Çå¿Õ*/ + if(!(rk29_sdmmc_read(host->regs, SDMMC_STATUS) & SDMMC_STAUTS_FIFO_EMPTY)) { local_irq_save(flags); rk29_sdmmc_write(host->regs, SDMMC_CTRL, rk29_sdmmc_read(host->regs, SDMMC_CTRL) | ( SDMMC_CTRL_FIFO_RESET )); @@ -726,7 +726,7 @@ static void rk29_sdmmc_request_end(struct rk29_sdmmc *host, struct mmc_request * WARN_ON(host->cmd || host->data); host->curr_mrq = NULL; host->mrq = NULL; - /*µÈ´ýÇ°Ãæ´«Êä´¦ÀíÍê³É*/ + while(rk29_sdmmc_read(host->regs, SDMMC_STATUS) & (SDMMC_STAUTS_DATA_BUSY)) { mdelay(5); time_out --; @@ -742,7 +742,7 @@ static void rk29_sdmmc_request_end(struct rk29_sdmmc *host, struct mmc_request * break; } } - /*¼ì²éFIFO,Èç¹û²»Îª¿Õ£¬Çå¿Õ*/ + if(!(rk29_sdmmc_read(host->regs, SDMMC_STATUS) & SDMMC_STAUTS_FIFO_EMPTY)) { local_irq_save(flags); rk29_sdmmc_write(host->regs, SDMMC_CTRL, rk29_sdmmc_read(host->regs, SDMMC_CTRL) | ( SDMMC_CTRL_FIFO_RESET ));