Lines Matching refs:kmb_dsi

175 static void kmb_dsi_clk_disable(struct kmb_dsi *kmb_dsi)  in kmb_dsi_clk_disable()  argument
177 clk_disable_unprepare(kmb_dsi->clk_mipi); in kmb_dsi_clk_disable()
178 clk_disable_unprepare(kmb_dsi->clk_mipi_ecfg); in kmb_dsi_clk_disable()
179 clk_disable_unprepare(kmb_dsi->clk_mipi_cfg); in kmb_dsi_clk_disable()
182 void kmb_dsi_host_unregister(struct kmb_dsi *kmb_dsi) in kmb_dsi_host_unregister() argument
184 kmb_dsi_clk_disable(kmb_dsi); in kmb_dsi_host_unregister()
185 mipi_dsi_host_unregister(kmb_dsi->host); in kmb_dsi_host_unregister()
384 static u32 mipi_tx_fg_section_cfg_regs(struct kmb_dsi *kmb_dsi, in mipi_tx_fg_section_cfg_regs() argument
411 dev_dbg(kmb_dsi->dev, in mipi_tx_fg_section_cfg_regs()
414 kmb_write_mipi(kmb_dsi, in mipi_tx_fg_section_cfg_regs()
429 kmb_write_bits_mipi(kmb_dsi, reg_adr, (section % 2) * 16, 16, in mipi_tx_fg_section_cfg_regs()
431 dev_dbg(kmb_dsi->dev, in mipi_tx_fg_section_cfg_regs()
437 kmb_write_mipi(kmb_dsi, reg_adr, height_lines); in mipi_tx_fg_section_cfg_regs()
441 static u32 mipi_tx_fg_section_cfg(struct kmb_dsi *kmb_dsi, in mipi_tx_fg_section_cfg() argument
475 mipi_tx_fg_section_cfg_regs(kmb_dsi, frame_id, section, in mipi_tx_fg_section_cfg()
489 static void mipi_tx_fg_cfg_regs(struct kmb_dsi *kmb_dsi, u8 frame_gen, in mipi_tx_fg_cfg_regs() argument
499 if (kmb_dsi->sys_clk_mhz == SYSCLK_500) { in mipi_tx_fg_cfg_regs()
500 sysclk = kmb_dsi->sys_clk_mhz - CLK_DIFF_LOW; in mipi_tx_fg_cfg_regs()
503 sysclk = kmb_dsi->sys_clk_mhz - CLK_DIFF_HI; in mipi_tx_fg_cfg_regs()
516 dev_dbg(kmb_dsi->dev, "ppl_llp_ratio=%d\n", ppl_llp_ratio); in mipi_tx_fg_cfg_regs()
517 dev_dbg(kmb_dsi->dev, "bpp=%d sysclk=%d lane-rate=%d active-lanes=%d\n", in mipi_tx_fg_cfg_regs()
523 kmb_write_mipi(kmb_dsi, reg_adr, fg_cfg->v_active); in mipi_tx_fg_cfg_regs()
533 kmb_write_bits_mipi(kmb_dsi, reg_adr, offset, 16, fg_cfg->vsync_width); in mipi_tx_fg_cfg_regs()
537 kmb_write_bits_mipi(kmb_dsi, reg_adr, offset, 16, fg_cfg->v_backporch); in mipi_tx_fg_cfg_regs()
541 kmb_write_bits_mipi(kmb_dsi, reg_adr, offset, 16, fg_cfg->v_frontporch); in mipi_tx_fg_cfg_regs()
545 kmb_write_bits_mipi(kmb_dsi, reg_adr, offset, 16, fg_cfg->v_active); in mipi_tx_fg_cfg_regs()
549 kmb_write_mipi(kmb_dsi, reg_adr, in mipi_tx_fg_cfg_regs()
554 kmb_write_mipi(kmb_dsi, reg_adr, in mipi_tx_fg_cfg_regs()
559 kmb_write_mipi(kmb_dsi, reg_adr, in mipi_tx_fg_cfg_regs()
569 kmb_write_mipi(kmb_dsi, reg_adr, val); in mipi_tx_fg_cfg_regs()
573 kmb_write_mipi(kmb_dsi, reg_adr, fg_cfg->hsync_width * (fg_cfg->bpp / 8)); in mipi_tx_fg_cfg_regs()
577 kmb_write_mipi(kmb_dsi, reg_adr, fg_cfg->h_backporch * (fg_cfg->bpp / 8)); in mipi_tx_fg_cfg_regs()
581 kmb_write_mipi(kmb_dsi, reg_adr, in mipi_tx_fg_cfg_regs()
585 static void mipi_tx_fg_cfg(struct kmb_dsi *kmb_dsi, u8 frame_gen, in mipi_tx_fg_cfg() argument
613 mipi_tx_fg_cfg_regs(kmb_dsi, frame_gen, &fg_t_cfg); in mipi_tx_fg_cfg()
616 static void mipi_tx_multichannel_fifo_cfg(struct kmb_dsi *kmb_dsi, in mipi_tx_multichannel_fifo_cfg() argument
623 kmb_write_mipi(kmb_dsi, MIPI_TX_HS_MC_FIFO_CTRL_EN, 0); in mipi_tx_multichannel_fifo_cfg()
624 kmb_write_mipi(kmb_dsi, MIPI_TX_HS_MC_FIFO_CHAN_ALLOC0, 0); in mipi_tx_multichannel_fifo_cfg()
625 kmb_write_mipi(kmb_dsi, MIPI_TX_HS_MC_FIFO_CHAN_ALLOC1, 0); in mipi_tx_multichannel_fifo_cfg()
626 kmb_write_mipi(kmb_dsi, MIPI_TX_HS_MC_FIFO_RTHRESHOLD0, 0); in mipi_tx_multichannel_fifo_cfg()
627 kmb_write_mipi(kmb_dsi, MIPI_TX_HS_MC_FIFO_RTHRESHOLD1, 0); in mipi_tx_multichannel_fifo_cfg()
637 SET_MC_FIFO_CHAN_ALLOC(kmb_dsi, ctrl_no, vchannel_id, fifo_size); in mipi_tx_multichannel_fifo_cfg()
641 SET_MC_FIFO_RTHRESHOLD(kmb_dsi, ctrl_no, vchannel_id, fifo_rthreshold); in mipi_tx_multichannel_fifo_cfg()
644 kmb_set_bit_mipi(kmb_dsi, MIPI_TXm_HS_MC_FIFO_CTRL_EN(ctrl_no), in mipi_tx_multichannel_fifo_cfg()
648 static void mipi_tx_ctrl_cfg(struct kmb_dsi *kmb_dsi, u8 fg_id, in mipi_tx_ctrl_cfg() argument
685 dev_dbg(kmb_dsi->dev, "sync_cfg=%d fg_en=%d\n", sync_cfg, fg_en); in mipi_tx_ctrl_cfg()
701 kmb_write_mipi(kmb_dsi, MIPI_TXm_HS_SYNC_CFG(ctrl_no), sync_cfg); in mipi_tx_ctrl_cfg()
702 kmb_write_mipi(kmb_dsi, MIPI_TXm_HS_CTRL(ctrl_no), ctrl); in mipi_tx_ctrl_cfg()
705 static u32 mipi_tx_init_cntrl(struct kmb_dsi *kmb_dsi, in mipi_tx_init_cntrl() argument
738 ret = mipi_tx_fg_section_cfg(kmb_dsi, frame_id, sect, in mipi_tx_init_cntrl()
747 mipi_tx_fg_cfg(kmb_dsi, frame_id, ctrl_cfg->active_lanes, in mipi_tx_init_cntrl()
762 mipi_tx_multichannel_fifo_cfg(kmb_dsi, ctrl_cfg->active_lanes, frame_id); in mipi_tx_init_cntrl()
765 mipi_tx_ctrl_cfg(kmb_dsi, frame_id, ctrl_cfg); in mipi_tx_init_cntrl()
770 static void test_mode_send(struct kmb_dsi *kmb_dsi, u32 dphy_no, in test_mode_send() argument
782 SET_DPHY_TEST_CTRL1_CLK(kmb_dsi, dphy_no); in test_mode_send()
785 SET_TEST_DIN0_3(kmb_dsi, dphy_no, test_code); in test_mode_send()
788 SET_DPHY_TEST_CTRL1_EN(kmb_dsi, dphy_no); in test_mode_send()
791 CLR_DPHY_TEST_CTRL1_CLK(kmb_dsi, dphy_no); in test_mode_send()
794 CLR_DPHY_TEST_CTRL1_EN(kmb_dsi, dphy_no); in test_mode_send()
805 CLR_DPHY_TEST_CTRL1_EN(kmb_dsi, dphy_no); in test_mode_send()
808 CLR_DPHY_TEST_CTRL1_CLK(kmb_dsi, dphy_no); in test_mode_send()
811 kmb_write_mipi(kmb_dsi, in test_mode_send()
816 SET_DPHY_TEST_CTRL1_CLK(kmb_dsi, dphy_no); in test_mode_send()
821 set_test_mode_src_osc_freq_target_low_bits(struct kmb_dsi *kmb_dsi, in set_test_mode_src_osc_freq_target_low_bits() argument
828 test_mode_send(kmb_dsi, dphy_no, TEST_CODE_SLEW_RATE_DDL_CYCLES, in set_test_mode_src_osc_freq_target_low_bits()
833 set_test_mode_src_osc_freq_target_hi_bits(struct kmb_dsi *kmb_dsi, in set_test_mode_src_osc_freq_target_hi_bits() argument
845 test_mode_send(kmb_dsi, dphy_no, TEST_CODE_SLEW_RATE_DDL_CYCLES, data); in set_test_mode_src_osc_freq_target_hi_bits()
862 static void mipi_tx_pll_setup(struct kmb_dsi *kmb_dsi, u32 dphy_no, in mipi_tx_pll_setup() argument
931 test_mode_send(kmb_dsi, dphy_no, TEST_CODE_PLL_VCO_CTRL, (vco_p.range in mipi_tx_pll_setup()
935 dev_dbg(kmb_dsi->dev, "m = %d n = %d\n", best_m, best_n); in mipi_tx_pll_setup()
938 test_mode_send(kmb_dsi, dphy_no, TEST_CODE_PLL_INPUT_DIVIDER, in mipi_tx_pll_setup()
944 test_mode_send(kmb_dsi, dphy_no, TEST_CODE_PLL_FEEDBACK_DIVIDER, in mipi_tx_pll_setup()
950 test_mode_send(kmb_dsi, dphy_no, TEST_CODE_PLL_FEEDBACK_DIVIDER, in mipi_tx_pll_setup()
954 test_mode_send(kmb_dsi, dphy_no, TEST_CODE_PLL_OUTPUT_CLK_SEL, in mipi_tx_pll_setup()
961 test_mode_send(kmb_dsi, dphy_no, in mipi_tx_pll_setup()
966 test_mode_send(kmb_dsi, dphy_no, TEST_CODE_PLL_INTEGRAL_CHARGE_PUMP_CTRL, in mipi_tx_pll_setup()
970 test_mode_send(kmb_dsi, dphy_no, TEST_CODE_PLL_GMP_CTRL, 0x10); in mipi_tx_pll_setup()
973 test_mode_send(kmb_dsi, dphy_no, TEST_CODE_PLL_CHARGE_PUMP_BIAS, 0x10); in mipi_tx_pll_setup()
978 test_mode_send(kmb_dsi, dphy_no, TEST_CODE_PLL_PHASE_ERR_CTRL, 0x02); in mipi_tx_pll_setup()
983 test_mode_send(kmb_dsi, dphy_no, TEST_CODE_PLL_LOCK_FILTER, 0x60); in mipi_tx_pll_setup()
986 test_mode_send(kmb_dsi, dphy_no, TEST_CODE_PLL_UNLOCK_FILTER, 0x03); in mipi_tx_pll_setup()
991 test_mode_send(kmb_dsi, dphy_no, TEST_CODE_PLL_LOCK_DETECTOR, 0x02); in mipi_tx_pll_setup()
994 static void set_slewrate_gt_1500(struct kmb_dsi *kmb_dsi, u32 dphy_no) in set_slewrate_gt_1500() argument
1002 test_mode_send(kmb_dsi, dphy_no, test_code, test_data); in set_slewrate_gt_1500()
1007 test_mode_send(kmb_dsi, dphy_no, test_code, test_data); in set_slewrate_gt_1500()
1010 static void set_slewrate_gt_1000(struct kmb_dsi *kmb_dsi, u32 dphy_no) in set_slewrate_gt_1000() argument
1023 test_mode_send(kmb_dsi, dphy_no, test_code, test_data); in set_slewrate_gt_1000()
1028 test_mode_send(kmb_dsi, dphy_no, test_code, test_data); in set_slewrate_gt_1000()
1035 test_mode_send(kmb_dsi, dphy_no, test_code, test_data); in set_slewrate_gt_1000()
1042 test_mode_send(kmb_dsi, dphy_no, test_code, test_data); in set_slewrate_gt_1000()
1045 static void set_slewrate_lt_1000(struct kmb_dsi *kmb_dsi, u32 dphy_no) in set_slewrate_lt_1000() argument
1058 test_mode_send(kmb_dsi, dphy_no, test_code, test_data); in set_slewrate_lt_1000()
1063 test_mode_send(kmb_dsi, dphy_no, test_code, test_data); in set_slewrate_lt_1000()
1068 test_mode_send(kmb_dsi, dphy_no, test_code, test_data); in set_slewrate_lt_1000()
1073 test_mode_send(kmb_dsi, dphy_no, test_code, test_data); in set_slewrate_lt_1000()
1076 static void setup_pll(struct kmb_dsi *kmb_dsi, u32 dphy_no, in setup_pll() argument
1084 test_mode_send(kmb_dsi, dphy_no, test_code, test_data); in setup_pll()
1087 mipi_tx_pll_setup(kmb_dsi, dphy_no, cfg->ref_clk_khz / 1000, in setup_pll()
1091 kmb_write_bits_mipi(kmb_dsi, DPHY_INIT_CTRL1, PLL_CLKSEL_0, 2, 0x01); in setup_pll()
1094 kmb_set_bit_mipi(kmb_dsi, DPHY_INIT_CTRL1, PLL_SHADOW_CTRL); in setup_pll()
1097 static void set_lane_data_rate(struct kmb_dsi *kmb_dsi, u32 dphy_no, in set_lane_data_rate() argument
1112 test_mode_send(kmb_dsi, dphy_no, test_code, test_data); in set_lane_data_rate()
1117 static void dphy_init_sequence(struct kmb_dsi *kmb_dsi, in dphy_init_sequence() argument
1125 CLR_DPHY_INIT_CTRL0(kmb_dsi, dphy_no, RESETZ); in dphy_init_sequence()
1128 CLR_DPHY_INIT_CTRL0(kmb_dsi, dphy_no, SHUTDOWNZ); in dphy_init_sequence()
1129 val = kmb_read_mipi(kmb_dsi, DPHY_INIT_CTRL0); in dphy_init_sequence()
1135 CLR_DPHY_TEST_CTRL0(kmb_dsi, dphy_no); in dphy_init_sequence()
1137 SET_DPHY_TEST_CTRL0(kmb_dsi, dphy_no); in dphy_init_sequence()
1139 CLR_DPHY_TEST_CTRL0(kmb_dsi, dphy_no); in dphy_init_sequence()
1152 test_mode_send(kmb_dsi, dphy_no, test_code, test_data); in dphy_init_sequence()
1155 set_lane_data_rate(kmb_dsi, dphy_no, cfg); in dphy_init_sequence()
1161 set_slewrate_gt_1500(kmb_dsi, dphy_no); in dphy_init_sequence()
1163 set_slewrate_gt_1000(kmb_dsi, dphy_no); in dphy_init_sequence()
1165 set_slewrate_lt_1000(kmb_dsi, dphy_no); in dphy_init_sequence()
1169 SET_DPHY_FREQ_CTRL0_3(kmb_dsi, dphy_no, val); in dphy_init_sequence()
1172 kmb_set_bit_mipi(kmb_dsi, DPHY_CFG_CLK_EN, dphy_no); in dphy_init_sequence()
1176 setup_pll(kmb_dsi, dphy_no, cfg); in dphy_init_sequence()
1181 test_mode_send(kmb_dsi, dphy_no, test_code, test_data); in dphy_init_sequence()
1190 kmb_write_bits_mipi(kmb_dsi, DPHY_INIT_CTRL2, 0, 9, 0x03f); in dphy_init_sequence()
1197 kmb_set_bit_mipi(kmb_dsi, DPHY_INIT_CTRL2, 12 + dphy_no); in dphy_init_sequence()
1200 kmb_write_bits_mipi(kmb_dsi, DPHY_ENABLE, dphy_no * 2, 2, in dphy_init_sequence()
1207 SET_DPHY_INIT_CTRL0(kmb_dsi, dphy_no, SHUTDOWNZ); in dphy_init_sequence()
1211 SET_DPHY_INIT_CTRL0(kmb_dsi, dphy_no, RESETZ); in dphy_init_sequence()
1214 static void dphy_wait_fsm(struct kmb_dsi *kmb_dsi, u32 dphy_no, in dphy_wait_fsm() argument
1222 test_mode_send(kmb_dsi, dphy_no, TEST_CODE_FSM_CONTROL, 0x80); in dphy_wait_fsm()
1224 val = GET_TEST_DOUT4_7(kmb_dsi, dphy_no); in dphy_wait_fsm()
1232 dev_dbg(kmb_dsi->dev, "%s: dphy %d val = %x", __func__, dphy_no, val); in dphy_wait_fsm()
1233 dev_dbg(kmb_dsi->dev, "* DPHY %d WAIT_FSM %s *", in dphy_wait_fsm()
1237 static void wait_init_done(struct kmb_dsi *kmb_dsi, u32 dphy_no, in wait_init_done() argument
1246 stopstatedata = GET_STOPSTATE_DATA(kmb_dsi, dphy_no) in wait_init_done()
1254 dev_dbg(kmb_dsi->dev, in wait_init_done()
1256 kmb_read_mipi(kmb_dsi, MIPI_DPHY_ERR_STAT6_7)); in wait_init_done()
1261 dev_dbg(kmb_dsi->dev, "* DPHY %d INIT - %s *", in wait_init_done()
1265 static void wait_pll_lock(struct kmb_dsi *kmb_dsi, u32 dphy_no) in wait_pll_lock() argument
1275 dev_dbg(kmb_dsi->dev, "%s: timing out", __func__); in wait_pll_lock()
1278 } while (!GET_PLL_LOCK(kmb_dsi, dphy_no)); in wait_pll_lock()
1280 dev_dbg(kmb_dsi->dev, "* PLL Locked for DPHY %d - %s *", in wait_pll_lock()
1284 static u32 mipi_tx_init_dphy(struct kmb_dsi *kmb_dsi, in mipi_tx_init_dphy() argument
1307 dphy_init_sequence(kmb_dsi, cfg, dphy_no + 1, in mipi_tx_init_dphy()
1310 dphy_wait_fsm(kmb_dsi, dphy_no + 1, DPHY_TX_LOCK); in mipi_tx_init_dphy()
1313 dphy_init_sequence(kmb_dsi, cfg, dphy_no, MIPI_DPHY_D_LANES, in mipi_tx_init_dphy()
1317 wait_init_done(kmb_dsi, dphy_no, MIPI_DPHY_D_LANES); in mipi_tx_init_dphy()
1318 wait_init_done(kmb_dsi, dphy_no + 1, in mipi_tx_init_dphy()
1320 wait_pll_lock(kmb_dsi, dphy_no); in mipi_tx_init_dphy()
1321 wait_pll_lock(kmb_dsi, dphy_no + 1); in mipi_tx_init_dphy()
1322 dphy_wait_fsm(kmb_dsi, dphy_no, DPHY_TX_IDLE); in mipi_tx_init_dphy()
1324 dphy_init_sequence(kmb_dsi, cfg, dphy_no, cfg->active_lanes, in mipi_tx_init_dphy()
1326 dphy_wait_fsm(kmb_dsi, dphy_no, DPHY_TX_IDLE); in mipi_tx_init_dphy()
1327 wait_init_done(kmb_dsi, dphy_no, cfg->active_lanes); in mipi_tx_init_dphy()
1328 wait_pll_lock(kmb_dsi, dphy_no); in mipi_tx_init_dphy()
1334 static void connect_lcd_to_mipi(struct kmb_dsi *kmb_dsi, in connect_lcd_to_mipi() argument
1341 dev_dbg(kmb_dsi->dev, "failed to get msscam syscon"); in connect_lcd_to_mipi()
1354 int kmb_dsi_mode_set(struct kmb_dsi *kmb_dsi, struct drm_display_mode *mode, in kmb_dsi_mode_set() argument
1359 kmb_dsi->sys_clk_mhz = sys_clk_mhz; in kmb_dsi_mode_set()
1384 dev_dbg(kmb_dsi->dev, "data_rate=%u active_lanes=%d\n", in kmb_dsi_mode_set()
1398 mipi_tx_init_cntrl(kmb_dsi, &mipi_tx_init_cfg); in kmb_dsi_mode_set()
1401 mipi_tx_init_dphy(kmb_dsi, &mipi_tx_init_cfg); in kmb_dsi_mode_set()
1403 connect_lcd_to_mipi(kmb_dsi, old_state); in kmb_dsi_mode_set()
1404 dev_info(kmb_dsi->dev, "mipi hw initialized"); in kmb_dsi_mode_set()
1409 struct kmb_dsi *kmb_dsi_init(struct platform_device *pdev) in kmb_dsi_init()
1411 struct kmb_dsi *kmb_dsi; in kmb_dsi_init() local
1414 kmb_dsi = devm_kzalloc(dev, sizeof(*kmb_dsi), GFP_KERNEL); in kmb_dsi_init()
1415 if (!kmb_dsi) { in kmb_dsi_init()
1420 kmb_dsi->host = dsi_host; in kmb_dsi_init()
1421 kmb_dsi->host->ops = &kmb_dsi_host_ops; in kmb_dsi_init()
1423 dsi_device->host = kmb_dsi->host; in kmb_dsi_init()
1424 kmb_dsi->device = dsi_device; in kmb_dsi_init()
1426 return kmb_dsi; in kmb_dsi_init()
1429 int kmb_dsi_encoder_init(struct drm_device *dev, struct kmb_dsi *kmb_dsi) in kmb_dsi_encoder_init() argument
1435 encoder = &kmb_dsi->base; in kmb_dsi_encoder_init()
1441 dev_err(kmb_dsi->dev, "Failed to init encoder %d\n", ret); in kmb_dsi_encoder_init()
1463 int kmb_dsi_map_mmio(struct kmb_dsi *kmb_dsi) in kmb_dsi_map_mmio() argument
1466 struct device *dev = kmb_dsi->dev; in kmb_dsi_map_mmio()
1468 res = platform_get_resource_byname(kmb_dsi->pdev, IORESOURCE_MEM, in kmb_dsi_map_mmio()
1474 kmb_dsi->mipi_mmio = devm_ioremap_resource(dev, res); in kmb_dsi_map_mmio()
1475 if (IS_ERR(kmb_dsi->mipi_mmio)) { in kmb_dsi_map_mmio()
1477 return PTR_ERR(kmb_dsi->mipi_mmio); in kmb_dsi_map_mmio()
1482 static int kmb_dsi_clk_enable(struct kmb_dsi *kmb_dsi) in kmb_dsi_clk_enable() argument
1485 struct device *dev = kmb_dsi->dev; in kmb_dsi_clk_enable()
1487 ret = clk_prepare_enable(kmb_dsi->clk_mipi); in kmb_dsi_clk_enable()
1493 ret = clk_prepare_enable(kmb_dsi->clk_mipi_ecfg); in kmb_dsi_clk_enable()
1499 ret = clk_prepare_enable(kmb_dsi->clk_mipi_cfg); in kmb_dsi_clk_enable()
1509 int kmb_dsi_clk_init(struct kmb_dsi *kmb_dsi) in kmb_dsi_clk_init() argument
1511 struct device *dev = kmb_dsi->dev; in kmb_dsi_clk_init()
1514 kmb_dsi->clk_mipi = devm_clk_get(dev, "clk_mipi"); in kmb_dsi_clk_init()
1515 if (IS_ERR(kmb_dsi->clk_mipi)) { in kmb_dsi_clk_init()
1517 return PTR_ERR(kmb_dsi->clk_mipi); in kmb_dsi_clk_init()
1520 kmb_dsi->clk_mipi_ecfg = devm_clk_get(dev, "clk_mipi_ecfg"); in kmb_dsi_clk_init()
1521 if (IS_ERR(kmb_dsi->clk_mipi_ecfg)) { in kmb_dsi_clk_init()
1523 return PTR_ERR(kmb_dsi->clk_mipi_ecfg); in kmb_dsi_clk_init()
1526 kmb_dsi->clk_mipi_cfg = devm_clk_get(dev, "clk_mipi_cfg"); in kmb_dsi_clk_init()
1527 if (IS_ERR(kmb_dsi->clk_mipi_cfg)) { in kmb_dsi_clk_init()
1529 return PTR_ERR(kmb_dsi->clk_mipi_cfg); in kmb_dsi_clk_init()
1532 clk_set_rate(kmb_dsi->clk_mipi, KMB_MIPI_DEFAULT_CLK); in kmb_dsi_clk_init()
1533 if (clk_get_rate(kmb_dsi->clk_mipi) != KMB_MIPI_DEFAULT_CLK) { in kmb_dsi_clk_init()
1538 dev_dbg(dev, "clk_mipi = %ld\n", clk_get_rate(kmb_dsi->clk_mipi)); in kmb_dsi_clk_init()
1540 clk = clk_get_rate(kmb_dsi->clk_mipi_ecfg); in kmb_dsi_clk_init()
1543 clk_set_rate(kmb_dsi->clk_mipi_ecfg, KMB_MIPI_DEFAULT_CFG_CLK); in kmb_dsi_clk_init()
1544 clk = clk_get_rate(kmb_dsi->clk_mipi_ecfg); in kmb_dsi_clk_init()
1552 clk = clk_get_rate(kmb_dsi->clk_mipi_cfg); in kmb_dsi_clk_init()
1555 clk_set_rate(kmb_dsi->clk_mipi_cfg, 24000000); in kmb_dsi_clk_init()
1556 clk = clk_get_rate(kmb_dsi->clk_mipi_cfg); in kmb_dsi_clk_init()
1564 return kmb_dsi_clk_enable(kmb_dsi); in kmb_dsi_clk_init()