Lines Matching refs:mcu_panel

321 	struct rockchip_mcu_panel *mcu_panel = to_rockchip_mcu_panel(panel);  in rockchip_mcu_panel_prepare()  local
324 if (mcu_panel->prepared) in rockchip_mcu_panel_prepare()
327 if (dm_gpio_is_valid(&mcu_panel->enable_gpio)) in rockchip_mcu_panel_prepare()
328 dm_gpio_set_value(&mcu_panel->enable_gpio, 1); in rockchip_mcu_panel_prepare()
330 if (mcu_panel->desc->delay.prepare) in rockchip_mcu_panel_prepare()
331 mdelay(mcu_panel->desc->delay.prepare); in rockchip_mcu_panel_prepare()
333 if (dm_gpio_is_valid(&mcu_panel->reset_gpio)) in rockchip_mcu_panel_prepare()
334 dm_gpio_set_value(&mcu_panel->reset_gpio, 1); in rockchip_mcu_panel_prepare()
336 if (mcu_panel->desc->delay.reset) in rockchip_mcu_panel_prepare()
337 mdelay(mcu_panel->desc->delay.reset); in rockchip_mcu_panel_prepare()
339 if (dm_gpio_is_valid(&mcu_panel->reset_gpio)) in rockchip_mcu_panel_prepare()
340 dm_gpio_set_value(&mcu_panel->reset_gpio, 0); in rockchip_mcu_panel_prepare()
342 if (mcu_panel->desc->delay.init) in rockchip_mcu_panel_prepare()
343 mdelay(mcu_panel->desc->delay.init); in rockchip_mcu_panel_prepare()
345 if (mcu_panel->desc->init_seq) { in rockchip_mcu_panel_prepare()
346 ret = rockchip_mcu_panel_send_cmds(panel->state, mcu_panel->desc->init_seq); in rockchip_mcu_panel_prepare()
351 mcu_panel->prepared = true; in rockchip_mcu_panel_prepare()
356 struct rockchip_mcu_panel *mcu_panel = to_rockchip_mcu_panel(panel); in rockchip_mcu_panel_unprepare() local
359 if (!mcu_panel->prepared) in rockchip_mcu_panel_unprepare()
362 if (mcu_panel->desc->exit_seq) { in rockchip_mcu_panel_unprepare()
363 ret = rockchip_mcu_panel_send_cmds(panel->state, mcu_panel->desc->exit_seq); in rockchip_mcu_panel_unprepare()
368 if (dm_gpio_is_valid(&mcu_panel->reset_gpio)) in rockchip_mcu_panel_unprepare()
369 dm_gpio_set_value(&mcu_panel->reset_gpio, 1); in rockchip_mcu_panel_unprepare()
371 if (dm_gpio_is_valid(&mcu_panel->enable_gpio)) in rockchip_mcu_panel_unprepare()
372 dm_gpio_set_value(&mcu_panel->enable_gpio, 0); in rockchip_mcu_panel_unprepare()
374 if (mcu_panel->desc->delay.unprepare) in rockchip_mcu_panel_unprepare()
375 mdelay(mcu_panel->desc->delay.unprepare); in rockchip_mcu_panel_unprepare()
377 mcu_panel->prepared = false; in rockchip_mcu_panel_unprepare()
382 struct rockchip_mcu_panel *mcu_panel = to_rockchip_mcu_panel(panel); in rockchip_mcu_panel_enable() local
384 if (mcu_panel->enabled) in rockchip_mcu_panel_enable()
387 if (mcu_panel->desc->delay.enable) in rockchip_mcu_panel_enable()
388 mdelay(mcu_panel->desc->delay.enable); in rockchip_mcu_panel_enable()
390 if (mcu_panel->backlight) in rockchip_mcu_panel_enable()
391 backlight_enable(mcu_panel->backlight); in rockchip_mcu_panel_enable()
393 mcu_panel->enabled = true; in rockchip_mcu_panel_enable()
398 struct rockchip_mcu_panel *mcu_panel = to_rockchip_mcu_panel(panel); in rockchip_mcu_panel_disable() local
400 if (!mcu_panel->enabled) in rockchip_mcu_panel_disable()
403 if (mcu_panel->backlight) in rockchip_mcu_panel_disable()
404 backlight_disable(mcu_panel->backlight); in rockchip_mcu_panel_disable()
406 if (mcu_panel->desc->delay.disable) in rockchip_mcu_panel_disable()
407 mdelay(mcu_panel->desc->delay.disable); in rockchip_mcu_panel_disable()
409 mcu_panel->enabled = false; in rockchip_mcu_panel_disable()
463 static int rockchip_mcu_panel_init(struct rockchip_mcu_panel *mcu_panel, ofnode mcu_panel_node) in rockchip_mcu_panel_init() argument
470 &mcu_panel->enable_gpio, GPIOD_IS_OUT); in rockchip_mcu_panel_init()
477 &mcu_panel->reset_gpio, GPIOD_IS_OUT); in rockchip_mcu_panel_init()
483 mcu_panel->desc = malloc(sizeof(struct rockchip_mcu_panel_desc)); in rockchip_mcu_panel_init()
484 if (!mcu_panel->desc) in rockchip_mcu_panel_init()
487 mcu_panel->desc->power_invert = ofnode_read_bool(mcu_panel_node, "power-invert"); in rockchip_mcu_panel_init()
489 mcu_panel->desc->delay.prepare = ofnode_read_u32_default(mcu_panel_node, "prepare-delay-ms", 0); in rockchip_mcu_panel_init()
490mcu_panel->desc->delay.unprepare = ofnode_read_u32_default(mcu_panel_node, "unprepare-delay-ms", 0… in rockchip_mcu_panel_init()
491 mcu_panel->desc->delay.enable = ofnode_read_u32_default(mcu_panel_node, "enable-delay-ms", 0); in rockchip_mcu_panel_init()
492 mcu_panel->desc->delay.disable = ofnode_read_u32_default(mcu_panel_node, "disable-delay-ms", 0); in rockchip_mcu_panel_init()
493 mcu_panel->desc->delay.init = ofnode_read_u32_default(mcu_panel_node, "init-delay-ms", 0); in rockchip_mcu_panel_init()
494 mcu_panel->desc->delay.reset = ofnode_read_u32_default(mcu_panel_node, "reset-delay-ms", 0); in rockchip_mcu_panel_init()
496 mcu_panel->desc->bus_format = ofnode_read_u32_default(mcu_panel_node, "bus-format", in rockchip_mcu_panel_init()
498 mcu_panel->desc->bpc = ofnode_read_u32_default(mcu_panel_node, "bpc", 8); in rockchip_mcu_panel_init()
502 mcu_panel->desc->init_seq = calloc(1, sizeof(*mcu_panel->desc->init_seq)); in rockchip_mcu_panel_init()
503 if (!mcu_panel->desc->init_seq) in rockchip_mcu_panel_init()
506 ret = rockchip_mcu_panel_parse_cmds(data, len, mcu_panel->desc->init_seq); in rockchip_mcu_panel_init()
515 mcu_panel->desc->exit_seq = calloc(1, sizeof(*mcu_panel->desc->exit_seq)); in rockchip_mcu_panel_init()
516 if (!mcu_panel->desc->exit_seq) { in rockchip_mcu_panel_init()
521 ret = rockchip_mcu_panel_parse_cmds(data, len, mcu_panel->desc->exit_seq); in rockchip_mcu_panel_init()
531 free(mcu_panel->desc->exit_seq); in rockchip_mcu_panel_init()
533 free(mcu_panel->desc->init_seq); in rockchip_mcu_panel_init()
563 struct rockchip_mcu_panel *mcu_panel; in rockchip_rgb_probe() local
565 mcu_panel = malloc(sizeof(struct rockchip_mcu_panel)); in rockchip_rgb_probe()
566 if (!mcu_panel) { in rockchip_rgb_probe()
571 ret = rockchip_mcu_panel_init(mcu_panel, mcu_panel_node); in rockchip_rgb_probe()
584 &mcu_panel->backlight); in rockchip_rgb_probe()
590 mcu_panel->base.dev = dev; in rockchip_rgb_probe()
591 mcu_panel->base.bus_format = mcu_panel->desc->bus_format; in rockchip_rgb_probe()
592 mcu_panel->base.bpc = mcu_panel->desc->bpc; in rockchip_rgb_probe()
593 mcu_panel->base.funcs = &rockchip_mcu_panel_funcs; in rockchip_rgb_probe()
594 mcu_panel->enabled = false; in rockchip_rgb_probe()
595 mcu_panel->prepared = false; in rockchip_rgb_probe()
597 rgb->connector.panel = &mcu_panel->base; in rockchip_rgb_probe()