mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 11:50:43 +09:00
lcd: enable clkree gate
PD#146437: lcd: enable clktree gate Change-Id: I9fcc1b37ec291a27a169092a129663fbdab5aefa Signed-off-by: Weiming Liu <weiming.liu@amlogic.com>
This commit is contained in:
@@ -24,10 +24,14 @@
|
||||
key_valid = <0>;
|
||||
clocks = <&clkc CLKID_MIPI_DSI_HOST
|
||||
&clkc CLKID_MIPI_DSI_PHY
|
||||
&clkc CLKID_DSI_MEAS_COMP>;
|
||||
&clkc CLKID_DSI_MEAS_COMP
|
||||
&clkc CLKID_MIPI_ENABLE_GATE
|
||||
&clkc CLKID_MIPI_BANDGAP_GATE>;
|
||||
clock-names = "dsi_host",
|
||||
"dsi_phy",
|
||||
"dsi_meas";
|
||||
"dsi_meas",
|
||||
"mipi_enable_gate",
|
||||
"mipi_bandgap_gate";
|
||||
pinctrl_version = <1>; /* for uboot */
|
||||
|
||||
/* power type:
|
||||
|
||||
@@ -936,6 +936,29 @@ void lcd_clk_gate_switch(int status)
|
||||
|
||||
switch (lcd_drv->chip_type) {
|
||||
case LCD_CHIP_AXG:
|
||||
if (status) {
|
||||
if (IS_ERR(lcd_drv->mipi_enable_gate))
|
||||
LCDERR("%s: mipi_enable_gate\n", __func__);
|
||||
else
|
||||
clk_prepare_enable(lcd_drv->mipi_enable_gate);
|
||||
|
||||
if (IS_ERR(lcd_drv->mipi_bandgap_gate))
|
||||
LCDERR("%s: mipi_bandgap_gate\n", __func__);
|
||||
else
|
||||
clk_prepare_enable(lcd_drv->mipi_bandgap_gate);
|
||||
} else {
|
||||
if (IS_ERR(lcd_drv->mipi_enable_gate))
|
||||
LCDERR("%s: mipi_enable_gate\n", __func__);
|
||||
else
|
||||
clk_disable_unprepare(
|
||||
lcd_drv->mipi_enable_gate);
|
||||
|
||||
if (IS_ERR(lcd_drv->mipi_bandgap_gate))
|
||||
LCDERR("%s: mipi_bandgap_gate\n", __func__);
|
||||
else
|
||||
clk_disable_unprepare(
|
||||
lcd_drv->mipi_bandgap_gate);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (status) {
|
||||
@@ -986,6 +1009,20 @@ void lcd_clktree_probe(void)
|
||||
LCDERR("%s: clk dsi_meas\n", __func__);
|
||||
else
|
||||
clk_prepare_enable(lcd_drv->dsi_meas);
|
||||
|
||||
lcd_drv->mipi_enable_gate = devm_clk_get(
|
||||
lcd_drv->dev, "mipi_enable_gate");
|
||||
if (IS_ERR(lcd_drv->mipi_enable_gate))
|
||||
LCDERR("%s: clk mipi_enable_gate\n", __func__);
|
||||
else
|
||||
clk_prepare_enable(lcd_drv->mipi_enable_gate);
|
||||
|
||||
lcd_drv->mipi_bandgap_gate = devm_clk_get(
|
||||
lcd_drv->dev, "mipi_bandgap_gate");
|
||||
if (IS_ERR(lcd_drv->mipi_bandgap_gate))
|
||||
LCDERR("%s: clk mipi_bandgap_gate\n", __func__);
|
||||
else
|
||||
clk_prepare_enable(lcd_drv->mipi_bandgap_gate);
|
||||
break;
|
||||
default:
|
||||
lcd_drv->vencl_top = devm_clk_get(lcd_drv->dev, "vencl_top");
|
||||
|
||||
@@ -361,6 +361,8 @@ struct aml_lcd_drv_s {
|
||||
struct clk *dsi_host;
|
||||
struct clk *dsi_phy;
|
||||
struct clk *dsi_meas;
|
||||
struct clk *mipi_enable_gate;
|
||||
struct clk *mipi_bandgap_gate;
|
||||
|
||||
struct device *dev;
|
||||
struct lcd_config_s *lcd_config;
|
||||
|
||||
Reference in New Issue
Block a user