From 6647a29683207ce3932528ed9a383c760d89a1db Mon Sep 17 00:00:00 2001 From: ZHW Date: Wed, 24 Jul 2013 12:02:33 +0800 Subject: [PATCH] lvds: modify rk3026_lvds 1.add register device:"rk3026-lvds". 2.modify driver name:"rk3028a"->"rk3026". --- arch/arm/mach-rk2928/devices.c | 23 +++++++++ drivers/video/rockchip/transmitter/Kconfig | 8 ++-- drivers/video/rockchip/transmitter/Makefile | 2 +- .../{rk3028a_lvds.c => rk3026_lvds.c} | 48 +++++++++---------- .../{rk3028a_lvds.h => rk3026_lvds.h} | 0 5 files changed, 52 insertions(+), 29 deletions(-) rename drivers/video/rockchip/transmitter/{rk3028a_lvds.c => rk3026_lvds.c} (74%) rename drivers/video/rockchip/transmitter/{rk3028a_lvds.h => rk3026_lvds.h} (100%) diff --git a/arch/arm/mach-rk2928/devices.c b/arch/arm/mach-rk2928/devices.c index e4cc759ecd00..e67452c240d0 100644 --- a/arch/arm/mach-rk2928/devices.c +++ b/arch/arm/mach-rk2928/devices.c @@ -779,6 +779,24 @@ struct platform_device device_arm_pmu = { .resource = resource_arm_pmu, }; + +#ifdef CONFIG_RK3026_LVDS +static struct resource resource_lvds[] = { + { + .start = RK2928_GRF_PHYS + GRF_LVDS_CON0, + .end = RK2928_GRF_PHYS + GRF_DMAC_CON0, + .flags = IORESOURCE_MEM, + }, +}; + +struct platform_device device_lvds = { + .name = "rk3026-lvds", + .id = -1, + .num_resources = ARRAY_SIZE(resource_lvds), + .resource = resource_lvds, +}; +#endif + static int __init rk2928_init_devices(void) { rk2928_init_dma(); @@ -806,6 +824,11 @@ static int __init rk2928_init_devices(void) platform_device_register(&device_hdmi); #endif platform_device_register(&device_arm_pmu); + +#ifdef CONFIG_RK3026_LVDS + platform_device_register(&device_lvds); +#endif + return 0; } arch_initcall(rk2928_init_devices); diff --git a/drivers/video/rockchip/transmitter/Kconfig b/drivers/video/rockchip/transmitter/Kconfig index fffe1a9368fd..5147a7df8771 100644 --- a/drivers/video/rockchip/transmitter/Kconfig +++ b/drivers/video/rockchip/transmitter/Kconfig @@ -7,10 +7,10 @@ config RK2928_LVDS bool "RK2928/RK2926 lvds transmitter support" depends on ARCH_RK2928 && RK_TRSM -config RK3028a_LVDS - bool "KK3028a lvds transmitter support" - depends on RK_TRSM - +config RK3026_LVDS + depends on ARCH_RK3026 && RK_TRSM + bool "RK3026/RK3028A lvds transmitter support" + default y config RK610_LVDS bool "RK610(Jetta) lvds transmitter support" diff --git a/drivers/video/rockchip/transmitter/Makefile b/drivers/video/rockchip/transmitter/Makefile index 3ef07caa9707..ab9dbc47a5b2 100644 --- a/drivers/video/rockchip/transmitter/Makefile +++ b/drivers/video/rockchip/transmitter/Makefile @@ -2,7 +2,7 @@ # Makefile for display transmitter like lvds edp mipi # obj-$(CONFIG_RK2928_LVDS) += rk2928_lvds.o -obj-$(CONFIG_RK3028a_LVDS) += rk3028a_lvds.o +obj-$(CONFIG_RK3026_LVDS) += rk3026_lvds.o obj-$(CONFIG_RK610_LVDS) += rk610_lcd.o obj-$(CONFIG_RK616_LVDS) += rk616_lvds.o obj-$(CONFIG_DP_ANX6345) += dp_anx6345.o diff --git a/drivers/video/rockchip/transmitter/rk3028a_lvds.c b/drivers/video/rockchip/transmitter/rk3026_lvds.c similarity index 74% rename from drivers/video/rockchip/transmitter/rk3028a_lvds.c rename to drivers/video/rockchip/transmitter/rk3026_lvds.c index cc8769cc3579..7562f2ddba7b 100644 --- a/drivers/video/rockchip/transmitter/rk3028a_lvds.c +++ b/drivers/video/rockchip/transmitter/rk3026_lvds.c @@ -15,12 +15,12 @@ #include #include -#include "rk3028a_lvds.h" +#include "rk3026_lvds.h" #define lvds_readl(offset) readl_relaxed(RK30_GRF_BASE + offset) #define lvds_writel(v,offset) do{ writel_relaxed(v, RK30_GRF_BASE + offset);dsb();} while (0) -static void rk3028a_output_lvds(rk_screen *screen) +static void rk3026_output_lvds(rk_screen *screen) { u32 val =0; @@ -55,7 +55,7 @@ static void rk3028a_output_lvds(rk_screen *screen) return; } -static void rk3028a_output_lvttl(rk_screen *screen) +static void rk3026_output_lvttl(rk_screen *screen) { u32 val =0; @@ -89,7 +89,7 @@ static void rk3028a_output_lvttl(rk_screen *screen) return; } -static void rk3028a_output_disable(void) +static void rk3026_output_disable(void) { u32 val =0; @@ -101,29 +101,29 @@ static void rk3028a_output_disable(void) } -static int rk3028a_lvds_set_param(rk_screen *screen,bool enable) +static int rk3026_lvds_set_param(rk_screen *screen,bool enable) { if(OUT_ENABLE == enable){ switch(screen->type){ case SCREEN_LVDS: - rk3028a_output_lvds(screen); + rk3026_output_lvds(screen); break; case SCREEN_RGB: - rk3028a_output_lvttl(screen); + rk3026_output_lvttl(screen); break; default: printk("%s>>>>LVDS not support this screen type %d,power down LVDS\n",__func__,screen->type); - rk3028a_output_disable(); + rk3026_output_disable(); break; } }else{ - rk3028a_output_disable(); + rk3026_output_disable(); } return 0; } -static int rk3028a_lvds_probe(struct platform_device *pdev) +static int rk3026_lvds_probe(struct platform_device *pdev) { rk_screen *screen = NULL; @@ -134,42 +134,42 @@ static int rk3028a_lvds_probe(struct platform_device *pdev) return -ENODEV; } - rk3028a_lvds_set_param(screen,OUT_ENABLE); + rk3026_lvds_set_param(screen,OUT_ENABLE); return 0; } -static int rk3028a_lvds_remove(struct platform_device *pdev) +static int rk3026_lvds_remove(struct platform_device *pdev) { return 0; } -static void rk3028a_lvds_shutdown(struct platform_device *pdev) +static void rk3026_lvds_shutdown(struct platform_device *pdev) { return; } -static struct platform_driver rk3028a_lvds_driver = { +static struct platform_driver rk3026_lvds_driver = { .driver = { - .name = "rk3028a-lvds", + .name = "rk3026-lvds", .owner = THIS_MODULE, }, - .probe = rk3028a_lvds_probe, - .remove = rk3028a_lvds_remove, - .shutdown = rk3028a_lvds_shutdown, + .probe = rk3026_lvds_probe, + .remove = rk3026_lvds_remove, + .shutdown = rk3026_lvds_shutdown, }; -static int __init rk3028a_lvds_init(void) +static int __init rk3026_lvds_init(void) { - return platform_driver_register(&rk3028a_lvds_driver); + return platform_driver_register(&rk3026_lvds_driver); } -fs_initcall(rk3028a_lvds_init); -static void __exit rk3028a_lvds_exit(void) +fs_initcall(rk3026_lvds_init); +static void __exit rk3026_lvds_exit(void) { - platform_driver_unregister(&rk3028a_lvds_driver); + platform_driver_unregister(&rk3026_lvds_driver); } -module_exit(rk3028a_lvds_exit); +module_exit(rk3026_lvds_exit); diff --git a/drivers/video/rockchip/transmitter/rk3028a_lvds.h b/drivers/video/rockchip/transmitter/rk3026_lvds.h similarity index 100% rename from drivers/video/rockchip/transmitter/rk3028a_lvds.h rename to drivers/video/rockchip/transmitter/rk3026_lvds.h -- 2.34.1