Lines Matching full:boe
1139 static int boe_panel_init_dcs_cmd(struct boe_panel *boe) in boe_panel_init_dcs_cmd() argument
1141 struct mipi_dsi_device *dsi = boe->dsi; in boe_panel_init_dcs_cmd()
1142 struct drm_panel *panel = &boe->base; in boe_panel_init_dcs_cmd()
1145 if (boe->desc->init_cmds) { in boe_panel_init_dcs_cmd()
1146 const struct panel_init_cmd *init_cmds = boe->desc->init_cmds; in boe_panel_init_dcs_cmd()
1178 static int boe_panel_enter_sleep_mode(struct boe_panel *boe) in boe_panel_enter_sleep_mode() argument
1180 struct mipi_dsi_device *dsi = boe->dsi; in boe_panel_enter_sleep_mode()
1198 struct boe_panel *boe = to_boe_panel(panel); in boe_panel_unprepare() local
1201 if (!boe->prepared) in boe_panel_unprepare()
1204 ret = boe_panel_enter_sleep_mode(boe); in boe_panel_unprepare()
1212 if (boe->desc->discharge_on_disable) { in boe_panel_unprepare()
1213 regulator_disable(boe->avee); in boe_panel_unprepare()
1214 regulator_disable(boe->avdd); in boe_panel_unprepare()
1216 gpiod_set_value(boe->enable_gpio, 0); in boe_panel_unprepare()
1218 regulator_disable(boe->pp1800); in boe_panel_unprepare()
1219 regulator_disable(boe->pp3300); in boe_panel_unprepare()
1221 gpiod_set_value(boe->enable_gpio, 0); in boe_panel_unprepare()
1223 regulator_disable(boe->avee); in boe_panel_unprepare()
1224 regulator_disable(boe->avdd); in boe_panel_unprepare()
1226 regulator_disable(boe->pp1800); in boe_panel_unprepare()
1227 regulator_disable(boe->pp3300); in boe_panel_unprepare()
1230 boe->prepared = false; in boe_panel_unprepare()
1237 struct boe_panel *boe = to_boe_panel(panel); in boe_panel_prepare() local
1240 if (boe->prepared) in boe_panel_prepare()
1243 gpiod_set_value(boe->enable_gpio, 0); in boe_panel_prepare()
1246 ret = regulator_enable(boe->pp3300); in boe_panel_prepare()
1250 ret = regulator_enable(boe->pp1800); in boe_panel_prepare()
1256 ret = regulator_enable(boe->avdd); in boe_panel_prepare()
1259 ret = regulator_enable(boe->avee); in boe_panel_prepare()
1265 gpiod_set_value(boe->enable_gpio, 1); in boe_panel_prepare()
1267 gpiod_set_value(boe->enable_gpio, 0); in boe_panel_prepare()
1269 gpiod_set_value(boe->enable_gpio, 1); in boe_panel_prepare()
1272 ret = boe_panel_init_dcs_cmd(boe); in boe_panel_prepare()
1278 boe->prepared = true; in boe_panel_prepare()
1283 regulator_disable(boe->avee); in boe_panel_prepare()
1285 regulator_disable(boe->avdd); in boe_panel_prepare()
1288 regulator_disable(boe->pp1800); in boe_panel_prepare()
1289 gpiod_set_value(boe->enable_gpio, 0); in boe_panel_prepare()
1496 struct boe_panel *boe = to_boe_panel(panel); in boe_panel_get_modes() local
1497 const struct drm_display_mode *m = boe->desc->modes; in boe_panel_get_modes()
1511 connector->display_info.width_mm = boe->desc->size.width_mm; in boe_panel_get_modes()
1512 connector->display_info.height_mm = boe->desc->size.height_mm; in boe_panel_get_modes()
1513 connector->display_info.bpc = boe->desc->bpc; in boe_panel_get_modes()
1518 drm_connector_set_panel_orientation(connector, boe->orientation); in boe_panel_get_modes()
1525 struct boe_panel *boe = to_boe_panel(panel); in boe_panel_get_orientation() local
1527 return boe->orientation; in boe_panel_get_orientation()
1538 static int boe_panel_add(struct boe_panel *boe) in boe_panel_add() argument
1540 struct device *dev = &boe->dsi->dev; in boe_panel_add()
1543 boe->avdd = devm_regulator_get(dev, "avdd"); in boe_panel_add()
1544 if (IS_ERR(boe->avdd)) in boe_panel_add()
1545 return PTR_ERR(boe->avdd); in boe_panel_add()
1547 boe->avee = devm_regulator_get(dev, "avee"); in boe_panel_add()
1548 if (IS_ERR(boe->avee)) in boe_panel_add()
1549 return PTR_ERR(boe->avee); in boe_panel_add()
1551 boe->pp3300 = devm_regulator_get(dev, "pp3300"); in boe_panel_add()
1552 if (IS_ERR(boe->pp3300)) in boe_panel_add()
1553 return PTR_ERR(boe->pp3300); in boe_panel_add()
1555 boe->pp1800 = devm_regulator_get(dev, "pp1800"); in boe_panel_add()
1556 if (IS_ERR(boe->pp1800)) in boe_panel_add()
1557 return PTR_ERR(boe->pp1800); in boe_panel_add()
1559 boe->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW); in boe_panel_add()
1560 if (IS_ERR(boe->enable_gpio)) { in boe_panel_add()
1562 PTR_ERR(boe->enable_gpio)); in boe_panel_add()
1563 return PTR_ERR(boe->enable_gpio); in boe_panel_add()
1566 gpiod_set_value(boe->enable_gpio, 0); in boe_panel_add()
1568 drm_panel_init(&boe->base, dev, &boe_panel_funcs, in boe_panel_add()
1570 err = of_drm_get_panel_orientation(dev->of_node, &boe->orientation); in boe_panel_add()
1576 err = drm_panel_of_backlight(&boe->base); in boe_panel_add()
1580 boe->base.funcs = &boe_panel_funcs; in boe_panel_add()
1581 boe->base.dev = &boe->dsi->dev; in boe_panel_add()
1583 drm_panel_add(&boe->base); in boe_panel_add()
1590 struct boe_panel *boe; in boe_panel_probe() local
1594 boe = devm_kzalloc(&dsi->dev, sizeof(*boe), GFP_KERNEL); in boe_panel_probe()
1595 if (!boe) in boe_panel_probe()
1602 boe->desc = desc; in boe_panel_probe()
1603 boe->dsi = dsi; in boe_panel_probe()
1604 ret = boe_panel_add(boe); in boe_panel_probe()
1608 mipi_dsi_set_drvdata(dsi, boe); in boe_panel_probe()
1612 drm_panel_remove(&boe->base); in boe_panel_probe()
1619 struct boe_panel *boe = mipi_dsi_get_drvdata(dsi); in boe_panel_shutdown() local
1621 drm_panel_disable(&boe->base); in boe_panel_shutdown()
1622 drm_panel_unprepare(&boe->base); in boe_panel_shutdown()
1627 struct boe_panel *boe = mipi_dsi_get_drvdata(dsi); in boe_panel_remove() local
1636 if (boe->base.dev) in boe_panel_remove()
1637 drm_panel_remove(&boe->base); in boe_panel_remove()
1641 { .compatible = "boe,tv101wum-nl6",
1647 { .compatible = "boe,tv101wum-n53",
1653 { .compatible = "boe,tv105wum-nw0",
1656 { .compatible = "boe,tv110c9m-ll3",
1668 .name = "panel-boe-tv101wum-nl6",
1678 MODULE_DESCRIPTION("BOE tv101wum-nl6 1200x1920 video mode panel driver");