Lines Matching full:boe

37 	int (*init)(struct boe_panel *boe);
67 static int boe_tv110c9m_init(struct boe_panel *boe) in boe_tv110c9m_init() argument
69 struct mipi_dsi_multi_context ctx = { .dsi = boe->dsi }; in boe_tv110c9m_init()
439 static int inx_hj110iz_init(struct boe_panel *boe) in inx_hj110iz_init() argument
441 struct mipi_dsi_multi_context ctx = { .dsi = boe->dsi }; in inx_hj110iz_init()
838 static int boe_init(struct boe_panel *boe) in boe_init() argument
840 struct mipi_dsi_multi_context ctx = { .dsi = boe->dsi }; in boe_init()
1138 static int auo_kd101n80_45na_init(struct boe_panel *boe) in auo_kd101n80_45na_init() argument
1140 struct mipi_dsi_multi_context ctx = { .dsi = boe->dsi }; in auo_kd101n80_45na_init()
1155 static int auo_b101uan08_3_init(struct boe_panel *boe) in auo_b101uan08_3_init() argument
1157 struct mipi_dsi_multi_context ctx = { .dsi = boe->dsi }; in auo_b101uan08_3_init()
1208 static int starry_qfh032011_53g_init(struct boe_panel *boe) in starry_qfh032011_53g_init() argument
1210 struct mipi_dsi_multi_context ctx = { .dsi = boe->dsi }; in starry_qfh032011_53g_init()
1319 struct boe_panel *boe = to_boe_panel(panel); in boe_panel_disable() local
1320 struct mipi_dsi_multi_context ctx = { .dsi = boe->dsi }; in boe_panel_disable()
1322 boe->dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; in boe_panel_disable()
1334 struct boe_panel *boe = to_boe_panel(panel); in boe_panel_unprepare() local
1336 if (boe->desc->discharge_on_disable) { in boe_panel_unprepare()
1337 regulator_disable(boe->avee); in boe_panel_unprepare()
1338 regulator_disable(boe->avdd); in boe_panel_unprepare()
1340 gpiod_set_value(boe->enable_gpio, 0); in boe_panel_unprepare()
1342 regulator_disable(boe->pp1800); in boe_panel_unprepare()
1343 regulator_disable(boe->pp3300); in boe_panel_unprepare()
1345 gpiod_set_value(boe->enable_gpio, 0); in boe_panel_unprepare()
1347 regulator_disable(boe->avee); in boe_panel_unprepare()
1348 regulator_disable(boe->avdd); in boe_panel_unprepare()
1350 regulator_disable(boe->pp1800); in boe_panel_unprepare()
1351 regulator_disable(boe->pp3300); in boe_panel_unprepare()
1359 struct boe_panel *boe = to_boe_panel(panel); in boe_panel_prepare() local
1362 gpiod_set_value(boe->enable_gpio, 0); in boe_panel_prepare()
1365 ret = regulator_enable(boe->pp3300); in boe_panel_prepare()
1369 ret = regulator_enable(boe->pp1800); in boe_panel_prepare()
1375 ret = regulator_enable(boe->avdd); in boe_panel_prepare()
1378 ret = regulator_enable(boe->avee); in boe_panel_prepare()
1384 if (boe->desc->lp11_before_reset) { in boe_panel_prepare()
1385 ret = mipi_dsi_dcs_nop(boe->dsi); in boe_panel_prepare()
1387 dev_err(&boe->dsi->dev, "Failed to send NOP: %d\n", ret); in boe_panel_prepare()
1392 gpiod_set_value(boe->enable_gpio, 1); in boe_panel_prepare()
1394 gpiod_set_value(boe->enable_gpio, 0); in boe_panel_prepare()
1396 gpiod_set_value(boe->enable_gpio, 1); in boe_panel_prepare()
1399 ret = boe->desc->init(boe); in boe_panel_prepare()
1406 gpiod_set_value(boe->enable_gpio, 0); in boe_panel_prepare()
1407 regulator_disable(boe->avee); in boe_panel_prepare()
1409 regulator_disable(boe->avdd); in boe_panel_prepare()
1412 regulator_disable(boe->pp1800); in boe_panel_prepare()
1648 struct boe_panel *boe = to_boe_panel(panel); in boe_panel_get_modes() local
1649 const struct drm_display_mode *m = boe->desc->modes; in boe_panel_get_modes()
1663 connector->display_info.width_mm = boe->desc->size.width_mm; in boe_panel_get_modes()
1664 connector->display_info.height_mm = boe->desc->size.height_mm; in boe_panel_get_modes()
1665 connector->display_info.bpc = boe->desc->bpc; in boe_panel_get_modes()
1670 drm_connector_set_panel_orientation(connector, boe->orientation); in boe_panel_get_modes()
1677 struct boe_panel *boe = to_boe_panel(panel); in boe_panel_get_orientation() local
1679 return boe->orientation; in boe_panel_get_orientation()
1691 static int boe_panel_add(struct boe_panel *boe) in boe_panel_add() argument
1693 struct device *dev = &boe->dsi->dev; in boe_panel_add()
1696 boe->avdd = devm_regulator_get(dev, "avdd"); in boe_panel_add()
1697 if (IS_ERR(boe->avdd)) in boe_panel_add()
1698 return PTR_ERR(boe->avdd); in boe_panel_add()
1700 boe->avee = devm_regulator_get(dev, "avee"); in boe_panel_add()
1701 if (IS_ERR(boe->avee)) in boe_panel_add()
1702 return PTR_ERR(boe->avee); in boe_panel_add()
1704 boe->pp3300 = devm_regulator_get(dev, "pp3300"); in boe_panel_add()
1705 if (IS_ERR(boe->pp3300)) in boe_panel_add()
1706 return PTR_ERR(boe->pp3300); in boe_panel_add()
1708 boe->pp1800 = devm_regulator_get(dev, "pp1800"); in boe_panel_add()
1709 if (IS_ERR(boe->pp1800)) in boe_panel_add()
1710 return PTR_ERR(boe->pp1800); in boe_panel_add()
1712 boe->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW); in boe_panel_add()
1713 if (IS_ERR(boe->enable_gpio)) { in boe_panel_add()
1715 PTR_ERR(boe->enable_gpio)); in boe_panel_add()
1716 return PTR_ERR(boe->enable_gpio); in boe_panel_add()
1719 gpiod_set_value(boe->enable_gpio, 0); in boe_panel_add()
1721 boe->base.prepare_prev_first = true; in boe_panel_add()
1723 drm_panel_init(&boe->base, dev, &boe_panel_funcs, in boe_panel_add()
1725 err = of_drm_get_panel_orientation(dev->of_node, &boe->orientation); in boe_panel_add()
1731 err = drm_panel_of_backlight(&boe->base); in boe_panel_add()
1735 boe->base.funcs = &boe_panel_funcs; in boe_panel_add()
1736 boe->base.dev = &boe->dsi->dev; in boe_panel_add()
1738 drm_panel_add(&boe->base); in boe_panel_add()
1745 struct boe_panel *boe; in boe_panel_probe() local
1749 boe = devm_kzalloc(&dsi->dev, sizeof(*boe), GFP_KERNEL); in boe_panel_probe()
1750 if (!boe) in boe_panel_probe()
1757 boe->desc = desc; in boe_panel_probe()
1758 boe->dsi = dsi; in boe_panel_probe()
1759 ret = boe_panel_add(boe); in boe_panel_probe()
1763 mipi_dsi_set_drvdata(dsi, boe); in boe_panel_probe()
1767 drm_panel_remove(&boe->base); in boe_panel_probe()
1774 struct boe_panel *boe = mipi_dsi_get_drvdata(dsi); in boe_panel_remove() local
1781 if (boe->base.dev) in boe_panel_remove()
1782 drm_panel_remove(&boe->base); in boe_panel_remove()
1786 { .compatible = "boe,tv101wum-nl6",
1792 { .compatible = "boe,tv101wum-n53",
1798 { .compatible = "boe,tv105wum-nw0",
1801 { .compatible = "boe,tv110c9m-ll3",
1816 .name = "panel-boe-tv101wum-nl6",
1825 MODULE_DESCRIPTION("BOE tv101wum-nl6 1200x1920 video mode panel driver");