Lines Matching refs:rk628

200 static inline int dsi_write(struct rk628 *rk628, const struct rk628_dsi *dsi,  in dsi_write()  argument
207 return rk628_i2c_write(rk628, dsi_base + reg, val); in dsi_write()
210 static inline int dsi_read(struct rk628 *rk628, const struct rk628_dsi *dsi, in dsi_read() argument
217 return rk628_i2c_read(rk628, dsi_base + reg, val); in dsi_read()
220 static inline int dsi_update_bits(struct rk628 *rk628, in dsi_update_bits() argument
228 return rk628_i2c_update_bits(rk628, dsi_base + reg, mask, val); in dsi_update_bits()
231 int rk628_dsi_parse(struct rk628 *rk628, struct device_node *dsi_np) in rk628_dsi_parse() argument
240 rk628->output_mode = OUTPUT_MODE_DSI; in rk628_dsi_parse()
241 rk628->dsi0.id = 0; in rk628_dsi_parse()
242 rk628->dsi0.channel = 0; in rk628_dsi_parse()
243 rk628->dsi0.rk628 = rk628; in rk628_dsi_parse()
246 rk628->dsi0.lanes = val; in rk628_dsi_parse()
249 rk628->dsi0.mode_flags |= MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_VIDEO | in rk628_dsi_parse()
252 rk628->dsi0.mode_flags |= MIPI_DSI_MODE_LPM; in rk628_dsi_parse()
255 rk628->dsi0.mode_flags |= MIPI_DSI_MODE_EOT_PACKET; in rk628_dsi_parse()
259 rk628->dsi0.bus_format = MIPI_DSI_FMT_RGB666; in rk628_dsi_parse()
260 rk628->dsi0.bpp = 24; in rk628_dsi_parse()
262 rk628->dsi0.bus_format = MIPI_DSI_FMT_RGB666_PACKED; in rk628_dsi_parse()
263 rk628->dsi0.bpp = 18; in rk628_dsi_parse()
265 rk628->dsi0.bus_format = MIPI_DSI_FMT_RGB565; in rk628_dsi_parse()
266 rk628->dsi0.bpp = 16; in rk628_dsi_parse()
268 rk628->dsi0.bus_format = MIPI_DSI_FMT_RGB888; in rk628_dsi_parse()
269 rk628->dsi0.bpp = 24; in rk628_dsi_parse()
274 rk628->dsi0.master = false; in rk628_dsi_parse()
275 rk628->dsi0.slave = true; in rk628_dsi_parse()
277 memcpy(&rk628->dsi1, &rk628->dsi0, sizeof(struct rk628_dsi)); in rk628_dsi_parse()
278 rk628->dsi1.id = 1; in rk628_dsi_parse()
279 rk628->dsi1.master = true; in rk628_dsi_parse()
280 rk628->dsi1.slave = false; in rk628_dsi_parse()
283 ret = rk628_panel_info_get(rk628, dsi_np); in rk628_dsi_parse()
291 static int genif_wait_w_pld_fifo_not_full(struct rk628 *rk628, in genif_wait_w_pld_fifo_not_full() argument
302 ret = regmap_read_poll_timeout(rk628->regmap[dev_id], in genif_wait_w_pld_fifo_not_full()
307 dev_err(rk628->dev, "generic write payload fifo is full\n"); in genif_wait_w_pld_fifo_not_full()
314 static int genif_wait_cmd_fifo_not_full(struct rk628 *rk628, in genif_wait_cmd_fifo_not_full() argument
325 ret = regmap_read_poll_timeout(rk628->regmap[dev_id], in genif_wait_cmd_fifo_not_full()
330 dev_err(rk628->dev, "generic write cmd fifo is full\n"); in genif_wait_cmd_fifo_not_full()
337 static int genif_wait_write_fifo_empty(struct rk628 *rk628, const struct rk628_dsi *dsi) in genif_wait_write_fifo_empty() argument
350 ret = regmap_read_poll_timeout(rk628->regmap[dev_id], in genif_wait_write_fifo_empty()
356 dev_err(rk628->dev, "generic write fifo is full\n"); in genif_wait_write_fifo_empty()
363 static int rk628_dsi_read_from_fifo(struct rk628 *rk628, in rk628_dsi_read_from_fifo() argument
378 ret = regmap_read_poll_timeout(rk628->regmap[dev_id], in rk628_dsi_read_from_fifo()
383 dev_err(rk628->dev, "entire response isn't stored in the FIFO\n"); in rk628_dsi_read_from_fifo()
389 dsi_read(rk628, dsi, DSI_CMD_PKT_STATUS, &val); in rk628_dsi_read_from_fifo()
393 dev_err(rk628->dev, "dsi Read payload FIFO is empty\n"); in rk628_dsi_read_from_fifo()
397 dsi_read(rk628, dsi, DSI_GEN_PLD_DATA, &val); in rk628_dsi_read_from_fifo()
540 static int rk628_dsi_transfer(struct rk628 *rk628, const struct rk628_dsi *dsi, in rk628_dsi_transfer() argument
548 dsi_update_bits(rk628, dsi, DSI_CMD_MODE_CFG, in rk628_dsi_transfer()
552 dsi_update_bits(rk628, dsi, DSI_VID_MODE_CFG, in rk628_dsi_transfer()
555 dsi_update_bits(rk628, dsi, DSI_VID_MODE_CFG, LP_CMD_EN, 0); in rk628_dsi_transfer()
556 dsi_update_bits(rk628, dsi, DSI_LPCLK_CTRL, in rk628_dsi_transfer()
566 dsi_update_bits(rk628, dsi, DSI_CMD_MODE_CFG, DCS_SW_0P_TX, in rk628_dsi_transfer()
571 dsi_update_bits(rk628, dsi, DSI_CMD_MODE_CFG, DCS_SW_1P_TX, in rk628_dsi_transfer()
576 dsi_update_bits(rk628, dsi, DSI_CMD_MODE_CFG, DCS_LW_TX, in rk628_dsi_transfer()
581 dsi_update_bits(rk628, dsi, DSI_CMD_MODE_CFG, DCS_SR_0P_TX, in rk628_dsi_transfer()
586 dsi_update_bits(rk628, dsi, DSI_CMD_MODE_CFG, MAX_RD_PKT_SIZE, in rk628_dsi_transfer()
591 dsi_update_bits(rk628, dsi, DSI_CMD_MODE_CFG, GEN_SW_0P_TX, in rk628_dsi_transfer()
596 dsi_update_bits(rk628, dsi, DSI_CMD_MODE_CFG, GEN_SW_1P_TX, in rk628_dsi_transfer()
601 dsi_update_bits(rk628, dsi, DSI_CMD_MODE_CFG, GEN_SW_2P_TX, in rk628_dsi_transfer()
606 dsi_update_bits(rk628, dsi, DSI_CMD_MODE_CFG, GEN_LW_TX, in rk628_dsi_transfer()
611 dsi_update_bits(rk628, dsi, DSI_CMD_MODE_CFG, GEN_SR_0P_TX, in rk628_dsi_transfer()
615 dsi_update_bits(rk628, dsi, DSI_CMD_MODE_CFG, GEN_SR_1P_TX, in rk628_dsi_transfer()
619 dsi_update_bits(rk628, dsi, DSI_CMD_MODE_CFG, GEN_SR_2P_TX, in rk628_dsi_transfer()
629 dev_err(rk628->dev, "failed to create packet\n"); in rk628_dsi_transfer()
644 ret = genif_wait_w_pld_fifo_not_full(rk628, dsi); in rk628_dsi_transfer()
650 dsi_write(rk628, dsi, DSI_GEN_PLD_DATA, val); in rk628_dsi_transfer()
668 dsi_write(rk628, dsi, DSI_GEN_PLD_DATA, val); in rk628_dsi_transfer()
672 ret = genif_wait_cmd_fifo_not_full(rk628, dsi); in rk628_dsi_transfer()
679 dsi_write(rk628, dsi, DSI_GEN_HDR, val); in rk628_dsi_transfer()
681 ret = genif_wait_write_fifo_empty(rk628, dsi); in rk628_dsi_transfer()
686 ret = rk628_dsi_read_from_fifo(rk628, dsi, msg); in rk628_dsi_transfer()
692 const struct rk628_dsi *dsi1 = &rk628->dsi1; in rk628_dsi_transfer()
694 rk628_dsi_transfer(rk628, dsi1, msg); in rk628_dsi_transfer()
700 int rk628_mipi_dsi_generic_write(struct rk628 *rk628, in rk628_mipi_dsi_generic_write() argument
703 const struct rk628_dsi *dsi = &rk628->dsi0; in rk628_mipi_dsi_generic_write()
731 return rk628_dsi_transfer(rk628, dsi, &msg); in rk628_mipi_dsi_generic_write()
734 int rk628_mipi_dsi_dcs_write_buffer(struct rk628 *rk628, in rk628_mipi_dsi_dcs_write_buffer() argument
737 const struct rk628_dsi *dsi = &rk628->dsi0; in rk628_mipi_dsi_dcs_write_buffer()
763 return rk628_dsi_transfer(rk628, dsi, &msg); in rk628_mipi_dsi_dcs_write_buffer()
766 int rk628_mipi_dsi_dcs_read(struct rk628 *rk628, u8 cmd, void *data, size_t len) in rk628_mipi_dsi_dcs_read() argument
768 const struct rk628_dsi *dsi = &rk628->dsi0; in rk628_mipi_dsi_dcs_read()
779 return rk628_dsi_transfer(rk628, dsi, &msg); in rk628_mipi_dsi_dcs_read()
783 panel_simple_xfer_dsi_cmd_seq(struct rk628 *rk628, struct panel_cmds *cmds) in panel_simple_xfer_dsi_cmd_seq() argument
799 err = rk628_mipi_dsi_generic_write(rk628, cmd->payload, in panel_simple_xfer_dsi_cmd_seq()
805 err = rk628_mipi_dsi_dcs_write_buffer(rk628, cmd->payload, in panel_simple_xfer_dsi_cmd_seq()
809 dev_err(rk628->dev, "panel cmd desc invalid data type\n"); in panel_simple_xfer_dsi_cmd_seq()
814 dev_err(rk628->dev, "failed to write cmd\n"); in panel_simple_xfer_dsi_cmd_seq()
825 const struct rk628_display_mode *mode = &dsi->rk628->dst_mode; in rk628_dsi_get_lane_rate()
841 static void testif_testclk_assert(struct rk628 *rk628, in testif_testclk_assert() argument
844 rk628_i2c_update_bits(rk628, dsi->id ? in testif_testclk_assert()
850 static void testif_testclk_deassert(struct rk628 *rk628, in testif_testclk_deassert() argument
853 rk628_i2c_update_bits(rk628, dsi->id ? in testif_testclk_deassert()
859 static void testif_testclr_assert(struct rk628 *rk628, in testif_testclr_assert() argument
862 rk628_i2c_update_bits(rk628, dsi->id ? in testif_testclr_assert()
868 static void testif_testclr_deassert(struct rk628 *rk628, in testif_testclr_deassert() argument
871 rk628_i2c_update_bits(rk628, dsi->id ? in testif_testclr_deassert()
877 static void testif_set_data(struct rk628 *rk628, in testif_set_data() argument
880 rk628_i2c_update_bits(rk628, dsi->id ? in testif_set_data()
886 static void testif_testen_assert(struct rk628 *rk628, in testif_testen_assert() argument
889 rk628_i2c_update_bits(rk628, dsi->id ? in testif_testen_assert()
895 static void testif_testen_deassert(struct rk628 *rk628, in testif_testen_deassert() argument
898 rk628_i2c_update_bits(rk628, dsi->id ? in testif_testen_deassert()
904 static void testif_test_code_write(struct rk628 *rk628, in testif_test_code_write() argument
907 testif_testclk_assert(rk628, dsi); in testif_test_code_write()
908 testif_set_data(rk628, dsi, test_code); in testif_test_code_write()
909 testif_testen_assert(rk628, dsi); in testif_test_code_write()
910 testif_testclk_deassert(rk628, dsi); in testif_test_code_write()
911 testif_testen_deassert(rk628, dsi); in testif_test_code_write()
914 static void testif_test_data_write(struct rk628 *rk628, in testif_test_data_write() argument
917 testif_testclk_deassert(rk628, dsi); in testif_test_data_write()
918 testif_set_data(rk628, dsi, test_data); in testif_test_data_write()
919 testif_testclk_assert(rk628, dsi); in testif_test_data_write()
922 static u8 testif_get_data(struct rk628 *rk628, const struct rk628_dsi *dsi) in testif_get_data() argument
926 rk628_i2c_read(rk628, dsi->id ? GRF_DPHY1_STATUS : GRF_DPHY0_STATUS, &data); in testif_get_data()
931 static void testif_write(struct rk628 *rk628, const struct rk628_dsi *dsi, in testif_write() argument
936 testif_test_code_write(rk628, dsi, reg); in testif_write()
937 testif_test_data_write(rk628, dsi, value); in testif_write()
938 monitor_data = testif_get_data(rk628, dsi); in testif_write()
939 dev_info(rk628->dev, "monitor_data: 0x%x\n", monitor_data); in testif_write()
942 static void mipi_dphy_init(struct rk628 *rk628, const struct rk628_dsi *dsi) in mipi_dphy_init() argument
970 testif_write(rk628, dsi, 0x44, HSFREQRANGE(hsfreqrange)); in mipi_dphy_init()
973 static void mipi_dphy_power_on(struct rk628 *rk628, const struct rk628_dsi *dsi) in mipi_dphy_power_on() argument
983 dsi_update_bits(rk628, dsi, DSI_PHY_RSTZ, PHY_ENABLECLK, 0); in mipi_dphy_power_on()
984 dsi_update_bits(rk628, dsi, DSI_PHY_RSTZ, PHY_SHUTDOWNZ, 0); in mipi_dphy_power_on()
985 dsi_update_bits(rk628, dsi, DSI_PHY_RSTZ, PHY_RSTZ, 0); in mipi_dphy_power_on()
986 testif_testclr_assert(rk628, dsi); in mipi_dphy_power_on()
989 rk628_i2c_update_bits(rk628, dsi->id ? in mipi_dphy_power_on()
995 testif_testclr_deassert(rk628, dsi); in mipi_dphy_power_on()
997 mipi_dphy_init(rk628, dsi); in mipi_dphy_power_on()
999 dsi_update_bits(rk628, dsi, DSI_PHY_RSTZ, in mipi_dphy_power_on()
1001 dsi_update_bits(rk628, dsi, DSI_PHY_RSTZ, in mipi_dphy_power_on()
1003 dsi_update_bits(rk628, dsi, DSI_PHY_RSTZ, PHY_RSTZ, PHY_RSTZ); in mipi_dphy_power_on()
1006 rk628_combtxphy_power_on(rk628); in mipi_dphy_power_on()
1008 ret = regmap_read_poll_timeout(rk628->regmap[dev_id], in mipi_dphy_power_on()
1012 dev_err(rk628->dev, "PHY is not locked\n"); in mipi_dphy_power_on()
1017 ret = regmap_read_poll_timeout(rk628->regmap[dev_id], in mipi_dphy_power_on()
1022 dev_err(rk628->dev, "lane module is not in stop state\n"); in mipi_dphy_power_on()
1027 void rk628_dsi0_reset_control_assert(struct rk628 *rk628) in rk628_dsi0_reset_control_assert() argument
1029 rk628_i2c_write(rk628, CRU_SOFTRST_CON02, 0x400040); in rk628_dsi0_reset_control_assert()
1032 void rk628_dsi0_reset_control_deassert(struct rk628 *rk628) in rk628_dsi0_reset_control_deassert() argument
1034 rk628_i2c_write(rk628, CRU_SOFTRST_CON02, 0x400000); in rk628_dsi0_reset_control_deassert()
1037 void rk628_dsi1_reset_control_assert(struct rk628 *rk628) in rk628_dsi1_reset_control_assert() argument
1039 rk628_i2c_write(rk628, CRU_SOFTRST_CON02, 0x800080); in rk628_dsi1_reset_control_assert()
1042 void rk628_dsi1_reset_control_deassert(struct rk628 *rk628) in rk628_dsi1_reset_control_deassert() argument
1044 rk628_i2c_write(rk628, CRU_SOFTRST_CON02, 0x800000); in rk628_dsi1_reset_control_deassert()
1047 void rk628_dsi_bridge_pre_enable(struct rk628 *rk628, in rk628_dsi_bridge_pre_enable() argument
1052 dsi_write(rk628, dsi, DSI_PWR_UP, RESET); in rk628_dsi_bridge_pre_enable()
1053 dsi_write(rk628, dsi, DSI_MODE_CFG, CMD_VIDEO_MODE(COMMAND_MODE)); in rk628_dsi_bridge_pre_enable()
1056 dsi_write(rk628, dsi, DSI_CLKMGR_CFG, in rk628_dsi_bridge_pre_enable()
1063 dsi_write(rk628, dsi, DSI_PCKHDL_CFG, val); in rk628_dsi_bridge_pre_enable()
1065 dsi_write(rk628, dsi, DSI_TO_CNT_CFG, in rk628_dsi_bridge_pre_enable()
1067 dsi_write(rk628, dsi, DSI_BTA_TO_CNT, 0xd00); in rk628_dsi_bridge_pre_enable()
1068 dsi_write(rk628, dsi, DSI_PHY_TMR_CFG, in rk628_dsi_bridge_pre_enable()
1071 dsi_write(rk628, dsi, DSI_PHY_TMR_LPCLK_CFG, in rk628_dsi_bridge_pre_enable()
1073 dsi_write(rk628, dsi, DSI_PHY_IF_CFG, in rk628_dsi_bridge_pre_enable()
1076 mipi_dphy_power_on(rk628, dsi); in rk628_dsi_bridge_pre_enable()
1078 dsi_write(rk628, dsi, DSI_PWR_UP, POWER_UP); in rk628_dsi_bridge_pre_enable()
1081 static void rk628_dsi_set_vid_mode(struct rk628 *rk628, in rk628_dsi_set_vid_mode() argument
1108 dsi_write(rk628, dsi, DSI_VID_MODE_CFG, val); in rk628_dsi_set_vid_mode()
1111 dsi_update_bits(rk628, dsi, DSI_LPCLK_CTRL, in rk628_dsi_set_vid_mode()
1119 dsi_write(rk628, dsi, DSI_VID_PKT_SIZE, pkt_size); in rk628_dsi_set_vid_mode()
1131 dsi_write(rk628, dsi, DSI_VID_HLINE_TIME, in rk628_dsi_set_vid_mode()
1135 dsi_write(rk628, dsi, DSI_VID_HSA_TIME, VID_HSA_TIME(hsa_time)); in rk628_dsi_set_vid_mode()
1138 dsi_write(rk628, dsi, DSI_VID_HBP_TIME, VID_HBP_TIME(hbp_time)); in rk628_dsi_set_vid_mode()
1140 dsi_write(rk628, dsi, DSI_VID_VACTIVE_LINES, vactive); in rk628_dsi_set_vid_mode()
1141 dsi_write(rk628, dsi, DSI_VID_VSA_LINES, vsa); in rk628_dsi_set_vid_mode()
1142 dsi_write(rk628, dsi, DSI_VID_VFP_LINES, vfp); in rk628_dsi_set_vid_mode()
1143 dsi_write(rk628, dsi, DSI_VID_VBP_LINES, vbp); in rk628_dsi_set_vid_mode()
1145 dsi_write(rk628, dsi, DSI_MODE_CFG, CMD_VIDEO_MODE(VIDEO_MODE)); in rk628_dsi_set_vid_mode()
1148 static void rk628_dsi_set_cmd_mode(struct rk628 *rk628, in rk628_dsi_set_cmd_mode() argument
1152 dsi_update_bits(rk628, dsi, DSI_CMD_MODE_CFG, DCS_LW_TX, 0); in rk628_dsi_set_cmd_mode()
1153 dsi_write(rk628, dsi, DSI_EDPI_CMD_SIZE, in rk628_dsi_set_cmd_mode()
1155 dsi_write(rk628, dsi, DSI_MODE_CFG, CMD_VIDEO_MODE(COMMAND_MODE)); in rk628_dsi_set_cmd_mode()
1158 static void rk628_dsi_bridge_enable(struct rk628 *rk628, in rk628_dsi_bridge_enable() argument
1162 const struct rk628_display_mode *mode = &rk628->dst_mode; in rk628_dsi_bridge_enable()
1164 dsi_write(rk628, dsi, DSI_PWR_UP, RESET); in rk628_dsi_bridge_enable()
1183 dsi_write(rk628, dsi, DSI_DPI_COLOR_CODING, val); in rk628_dsi_bridge_enable()
1191 dsi_write(rk628, dsi, DSI_DPI_CFG_POL, val); in rk628_dsi_bridge_enable()
1193 dsi_write(rk628, dsi, DSI_DPI_VCID, DPI_VID(0)); in rk628_dsi_bridge_enable()
1194 dsi_write(rk628, dsi, DSI_DPI_LP_CMD_TIM, in rk628_dsi_bridge_enable()
1196 dsi_update_bits(rk628, dsi, DSI_LPCLK_CTRL, in rk628_dsi_bridge_enable()
1200 rk628_dsi_set_vid_mode(rk628, dsi, mode); in rk628_dsi_bridge_enable()
1202 rk628_dsi_set_cmd_mode(rk628, dsi, mode); in rk628_dsi_bridge_enable()
1204 dsi_write(rk628, dsi, DSI_PWR_UP, POWER_UP); in rk628_dsi_bridge_enable()
1207 void rk628_mipi_dsi_pre_enable(struct rk628 *rk628) in rk628_mipi_dsi_pre_enable() argument
1209 const struct rk628_dsi *dsi = &rk628->dsi0; in rk628_mipi_dsi_pre_enable()
1210 const struct rk628_dsi *dsi1 = &rk628->dsi1; in rk628_mipi_dsi_pre_enable()
1214 rk628_i2c_update_bits(rk628, GRF_SYSTEM_CON0, SW_OUTPUT_MODE_MASK, in rk628_mipi_dsi_pre_enable()
1216 rk628_i2c_update_bits(rk628, GRF_POST_PROC_CON, SW_SPLIT_EN, in rk628_mipi_dsi_pre_enable()
1227 rk628_combtxphy_set_bus_width(rk628, bus_width); in rk628_mipi_dsi_pre_enable()
1228 rk628_combtxphy_set_mode(rk628, PHY_MODE_VIDEO_MIPI); in rk628_mipi_dsi_pre_enable()
1229 lane_mbps = rk628_combtxphy_get_bus_width(rk628); in rk628_mipi_dsi_pre_enable()
1232 lane_mbps = rk628_combtxphy_get_bus_width(rk628); in rk628_mipi_dsi_pre_enable()
1235 rk628_dsi0_reset_control_assert(rk628); in rk628_mipi_dsi_pre_enable()
1237 rk628_dsi0_reset_control_deassert(rk628); in rk628_mipi_dsi_pre_enable()
1240 rk628_dsi_bridge_pre_enable(rk628, dsi); in rk628_mipi_dsi_pre_enable()
1244 rk628_dsi1_reset_control_assert(rk628); in rk628_mipi_dsi_pre_enable()
1246 rk628_dsi1_reset_control_deassert(rk628); in rk628_mipi_dsi_pre_enable()
1249 rk628_dsi_bridge_pre_enable(rk628, dsi1); in rk628_mipi_dsi_pre_enable()
1252 rk628_panel_prepare(rk628); in rk628_mipi_dsi_pre_enable()
1253 panel_simple_xfer_dsi_cmd_seq(rk628, rk628->panel->on_cmds); in rk628_mipi_dsi_pre_enable()
1258 rk628_mipi_dsi_dcs_read(rk628, MIPI_DCS_GET_POWER_MODE, in rk628_mipi_dsi_pre_enable()
1261 dev_info(rk628->dev, "dsi: mode: 0x%x\n", mode); in rk628_mipi_dsi_pre_enable()
1264 dev_info(rk628->dev, "rk628_dsi final DSI-Link bandwidth: %d x %d\n", in rk628_mipi_dsi_pre_enable()
1268 void rk628_mipi_dsi_enable(struct rk628 *rk628) in rk628_mipi_dsi_enable() argument
1270 const struct rk628_dsi *dsi = &rk628->dsi0; in rk628_mipi_dsi_enable()
1271 const struct rk628_dsi *dsi1 = &rk628->dsi1; in rk628_mipi_dsi_enable()
1273 rk628_dsi_bridge_enable(rk628, dsi); in rk628_mipi_dsi_enable()
1276 rk628_dsi_bridge_enable(rk628, dsi1); in rk628_mipi_dsi_enable()
1278 rk628_panel_enable(rk628); in rk628_mipi_dsi_enable()
1281 void rk628_dsi_disable(struct rk628 *rk628) in rk628_dsi_disable() argument
1283 const struct rk628_dsi *dsi = &rk628->dsi0; in rk628_dsi_disable()
1284 const struct rk628_dsi *dsi1 = &rk628->dsi1; in rk628_dsi_disable()
1286 rk628_panel_disable(rk628); in rk628_dsi_disable()
1288 dsi_write(rk628, dsi, DSI_PWR_UP, RESET); in rk628_dsi_disable()
1289 dsi_write(rk628, dsi, DSI_LPCLK_CTRL, 0); in rk628_dsi_disable()
1290 dsi_write(rk628, dsi, DSI_EDPI_CMD_SIZE, 0); in rk628_dsi_disable()
1291 dsi_write(rk628, dsi, DSI_MODE_CFG, CMD_VIDEO_MODE(COMMAND_MODE)); in rk628_dsi_disable()
1292 dsi_write(rk628, dsi, DSI_PWR_UP, POWER_UP); in rk628_dsi_disable()
1297 dsi_write(rk628, dsi1, DSI_PWR_UP, RESET); in rk628_dsi_disable()
1298 dsi_write(rk628, dsi1, DSI_LPCLK_CTRL, 0); in rk628_dsi_disable()
1299 dsi_write(rk628, dsi1, DSI_EDPI_CMD_SIZE, 0); in rk628_dsi_disable()
1300 dsi_write(rk628, dsi1, DSI_MODE_CFG, in rk628_dsi_disable()
1302 dsi_write(rk628, dsi1, DSI_PWR_UP, POWER_UP); in rk628_dsi_disable()
1307 panel_simple_xfer_dsi_cmd_seq(rk628, rk628->panel->off_cmds); in rk628_dsi_disable()
1308 rk628_panel_unprepare(rk628); in rk628_dsi_disable()
1309 rk628_combtxphy_power_off(rk628); in rk628_dsi_disable()