Lines Matching refs:boe

435 static int boe_panel_init_dcs_cmd(struct boe_panel *boe)
437 struct mipi_dsi_device *dsi = boe->dsi;
438 struct drm_panel *panel = &boe->base;
441 if (boe->desc->init_cmds) {
442 const struct panel_init_cmd *init_cmds = boe->desc->init_cmds;
474 static int boe_panel_enter_sleep_mode(struct boe_panel *boe)
476 struct mipi_dsi_device *dsi = boe->dsi;
494 struct boe_panel *boe = to_boe_panel(panel);
497 if (!boe->prepared)
500 ret = boe_panel_enter_sleep_mode(boe);
508 if (boe->desc->discharge_on_disable) {
509 regulator_disable(boe->avee);
510 regulator_disable(boe->avdd);
512 gpiod_set_value(boe->enable_gpio, 0);
514 regulator_disable(boe->pp1800);
516 gpiod_set_value(boe->enable_gpio, 0);
518 regulator_disable(boe->avee);
519 regulator_disable(boe->avdd);
521 regulator_disable(boe->pp1800);
524 boe->prepared = false;
531 struct boe_panel *boe = to_boe_panel(panel);
534 if (boe->prepared)
537 gpiod_set_value(boe->enable_gpio, 0);
540 ret = regulator_enable(boe->pp1800);
546 ret = regulator_enable(boe->avdd);
549 ret = regulator_enable(boe->avee);
555 if (boe->desc->lp11_before_reset) {
556 mipi_dsi_dcs_nop(boe->dsi);
559 gpiod_set_value(boe->enable_gpio, 1);
561 gpiod_set_value(boe->enable_gpio, 0);
563 gpiod_set_value(boe->enable_gpio, 1);
566 ret = boe_panel_init_dcs_cmd(boe);
572 boe->prepared = true;
577 regulator_disable(boe->avee);
579 regulator_disable(boe->avdd);
582 regulator_disable(boe->pp1800);
583 gpiod_set_value(boe->enable_gpio, 0);
734 struct boe_panel *boe = to_boe_panel(panel);
735 const struct drm_display_mode *m = boe->desc->modes;
749 connector->display_info.width_mm = boe->desc->size.width_mm;
750 connector->display_info.height_mm = boe->desc->size.height_mm;
751 connector->display_info.bpc = boe->desc->bpc;
752 drm_connector_set_panel_orientation(connector, boe->orientation);
764 static int boe_panel_add(struct boe_panel *boe)
766 struct device *dev = &boe->dsi->dev;
769 boe->avdd = devm_regulator_get(dev, "avdd");
770 if (IS_ERR(boe->avdd))
771 return PTR_ERR(boe->avdd);
773 boe->avee = devm_regulator_get(dev, "avee");
774 if (IS_ERR(boe->avee))
775 return PTR_ERR(boe->avee);
777 boe->pp1800 = devm_regulator_get(dev, "pp1800");
778 if (IS_ERR(boe->pp1800))
779 return PTR_ERR(boe->pp1800);
781 boe->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW);
782 if (IS_ERR(boe->enable_gpio)) {
784 PTR_ERR(boe->enable_gpio));
785 return PTR_ERR(boe->enable_gpio);
788 gpiod_set_value(boe->enable_gpio, 0);
790 drm_panel_init(&boe->base, dev, &boe_panel_funcs,
792 err = of_drm_get_panel_orientation(dev->of_node, &boe->orientation);
798 err = drm_panel_of_backlight(&boe->base);
802 boe->base.funcs = &boe_panel_funcs;
803 boe->base.dev = &boe->dsi->dev;
805 drm_panel_add(&boe->base);
812 struct boe_panel *boe;
816 boe = devm_kzalloc(&dsi->dev, sizeof(*boe), GFP_KERNEL);
817 if (!boe)
824 boe->desc = desc;
825 boe->dsi = dsi;
826 ret = boe_panel_add(boe);
830 mipi_dsi_set_drvdata(dsi, boe);
834 drm_panel_remove(&boe->base);
841 struct boe_panel *boe = mipi_dsi_get_drvdata(dsi);
843 drm_panel_disable(&boe->base);
844 drm_panel_unprepare(&boe->base);
849 struct boe_panel *boe = mipi_dsi_get_drvdata(dsi);
858 if (boe->base.dev)
859 drm_panel_remove(&boe->base);
865 { .compatible = "boe,tv101wum-nl6",
871 { .compatible = "boe,tv101wum-n53",
877 { .compatible = "boe,tv105wum-nw0",
886 .name = "panel-boe-tv101wum-nl6",