#include <asm/cacheflush.h>\r
#include <linux/slab.h>\r
\r
-#define IPP_VERSION "1.000"\r
+#ifdef CONFIG_ARCH_RK29\r
+#define IPP_VERSION "rk29-ipp 1.001"\r
+#endif\r
+\r
+#ifdef CONFIG_ARCH_RK30\r
+#define IPP_VERSION "rk30-ipp 1.001"\r
+#endif\r
+\r
//#define IPP_TEST\r
#ifdef IPP_TEST\r
\r
void *ipp_base;\r
int irq0;\r
\r
- struct clk *pd_display;\r
+ struct clk *pd_ipp;\r
struct clk *aclk_lcdc;\r
struct clk *hclk_lcdc;\r
struct clk *aclk_ddr_lcdc;\r
cancel_delayed_work_sync(&drvdata->power_off_work);\r
if (drvdata->enable)\r
return;\r
+ clk_enable(drvdata->pd_ipp);\r
#ifdef CONFIG_ARCH_RK29\r
- clk_enable(drvdata->pd_display);\r
clk_enable(drvdata->aclk_lcdc);\r
clk_enable(drvdata->hclk_lcdc);\r
clk_enable(drvdata->aclk_ddr_lcdc);\r
//printk("ipp_power_off\n");\r
if(!drvdata->enable)\r
return;\r
+ \r
#ifdef CONFIG_ARCH_RK29\r
- clk_disable(drvdata->pd_display);\r
clk_disable(drvdata->aclk_lcdc);\r
clk_disable(drvdata->hclk_lcdc);\r
clk_disable(drvdata->aclk_ddr_lcdc);\r
#endif\r
clk_disable(drvdata->axi_clk);\r
clk_disable(drvdata->ahb_clk);\r
-\r
+ clk_disable(drvdata->pd_ipp);\r
+ \r
drvdata->enable = false;\r
}\r
\r
}\r
\r
/* get the clock */\r
- #ifdef CONFIG_ARCH_RK29\r
-\r
- data->pd_display = clk_get(&pdev->dev, "pd_display");\r
- if (IS_ERR(data->pd_display))\r
+#ifdef CONFIG_ARCH_RK29\r
+ data->pd_ipp = clk_get(&pdev->dev, "pd_display");\r
+ if (IS_ERR(data->pd_ipp))\r
{\r
ERR("failed to find ipp pd_display source\n");\r
ret = -ENOENT;\r
ret = -ENOENT;\r
goto err_clock;\r
}\r
- #endif\r
+#endif\r
+\r
+#ifdef CONFIG_ARCH_RK30\r
+ data->pd_ipp = clk_get(&pdev->dev, "pd_ipp");\r
+ if (IS_ERR(data->pd_ipp))\r
+ {\r
+ ERR("failed to find ipp pd_ipp source\n");\r
+ ret = -ENOENT;\r
+ goto err_clock;\r
+ }\r
+#endif\r
+\r
data->axi_clk = clk_get(&pdev->dev, "aclk_ipp");\r
if (IS_ERR(data->axi_clk))\r
{\r
if(data->hclk_cpu_display) {\r
clk_put(data->hclk_cpu_display);\r
}\r
-\r
- if(data->pd_display){\r
- clk_put(data->pd_display);\r
- }\r
#endif\r
+ if(data->pd_ipp){\r
+ clk_put(data->pd_ipp);\r
+ }\r
+\r
kfree(data);\r
return 0;\r
}\r