Lines Matching refs:boe

46 static void boe_bf060y8m_aj0_reset(struct boe_bf060y8m_aj0 *boe)
48 gpiod_set_value_cansleep(boe->reset_gpio, 0);
50 gpiod_set_value_cansleep(boe->reset_gpio, 1);
52 gpiod_set_value_cansleep(boe->reset_gpio, 0);
56 static int boe_bf060y8m_aj0_on(struct boe_bf060y8m_aj0 *boe)
58 struct mipi_dsi_device *dsi = boe->dsi;
100 static int boe_bf060y8m_aj0_off(struct boe_bf060y8m_aj0 *boe)
102 struct mipi_dsi_device *dsi = boe->dsi;
128 struct boe_bf060y8m_aj0 *boe = to_boe_bf060y8m_aj0(panel);
129 struct device *dev = &boe->dsi->dev;
132 if (boe->prepared)
140 ret = regulator_enable(boe->vregs[BF060Y8M_VREG_EL_VDD].consumer);
143 ret = regulator_enable(boe->vregs[BF060Y8M_VREG_EL_VSS].consumer);
147 ret = regulator_enable(boe->vregs[BF060Y8M_VREG_VCC].consumer);
151 ret = regulator_enable(boe->vregs[BF060Y8M_VREG_VDDIO].consumer);
155 ret = regulator_enable(boe->vregs[BF060Y8M_VREG_VCI].consumer);
160 boe_bf060y8m_aj0_reset(boe);
162 ret = boe_bf060y8m_aj0_on(boe);
165 gpiod_set_value_cansleep(boe->reset_gpio, 1);
169 boe->prepared = true;
173 regulator_disable(boe->vregs[BF060Y8M_VREG_VDDIO].consumer);
175 regulator_disable(boe->vregs[BF060Y8M_VREG_VCC].consumer);
177 regulator_disable(boe->vregs[BF060Y8M_VREG_EL_VSS].consumer);
179 regulator_disable(boe->vregs[BF060Y8M_VREG_EL_VDD].consumer);
185 struct boe_bf060y8m_aj0 *boe = to_boe_bf060y8m_aj0(panel);
186 struct device *dev = &boe->dsi->dev;
189 if (!boe->prepared)
192 ret = boe_bf060y8m_aj0_off(boe);
196 gpiod_set_value_cansleep(boe->reset_gpio, 1);
197 ret = regulator_bulk_disable(ARRAY_SIZE(boe->vregs), boe->vregs);
199 boe->prepared = false;
288 static int boe_bf060y8m_aj0_init_vregs(struct boe_bf060y8m_aj0 *boe,
294 boe->vregs[BF060Y8M_VREG_VCC].supply = "vcc";
295 boe->vregs[BF060Y8M_VREG_VDDIO].supply = "vddio";
296 boe->vregs[BF060Y8M_VREG_VCI].supply = "vci";
297 boe->vregs[BF060Y8M_VREG_EL_VDD].supply = "elvdd";
298 boe->vregs[BF060Y8M_VREG_EL_VSS].supply = "elvss";
299 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(boe->vregs),
300 boe->vregs);
306 vreg = boe->vregs[BF060Y8M_VREG_VCC].consumer;
311 vreg = boe->vregs[BF060Y8M_VREG_VDDIO].consumer;
316 vreg = boe->vregs[BF060Y8M_VREG_VCI].consumer;
321 vreg = boe->vregs[BF060Y8M_VREG_EL_VDD].consumer;
327 vreg = boe->vregs[BF060Y8M_VREG_EL_VSS].consumer;
341 vreg = boe->vregs[BF060Y8M_VREG_VDDIO].consumer;
345 boe->vregs[1].supply, ret);
347 vreg = boe->vregs[BF060Y8M_VREG_VCI].consumer;
351 boe->vregs[2].supply, ret);
359 struct boe_bf060y8m_aj0 *boe;
362 boe = devm_kzalloc(dev, sizeof(*boe), GFP_KERNEL);
363 if (!boe)
366 ret = boe_bf060y8m_aj0_init_vregs(boe, dev);
371 boe->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_ASIS);
372 if (IS_ERR(boe->reset_gpio))
373 return dev_err_probe(dev, PTR_ERR(boe->reset_gpio),
376 boe->dsi = dsi;
377 mipi_dsi_set_drvdata(dsi, boe);
386 drm_panel_init(&boe->panel, dev, &boe_bf060y8m_aj0_panel_funcs,
389 boe->panel.backlight = boe_bf060y8m_aj0_create_backlight(dsi);
390 if (IS_ERR(boe->panel.backlight))
391 return dev_err_probe(dev, PTR_ERR(boe->panel.backlight),
394 drm_panel_add(&boe->panel);
407 struct boe_bf060y8m_aj0 *boe = mipi_dsi_get_drvdata(dsi);
414 drm_panel_remove(&boe->panel);
418 { .compatible = "boe,bf060y8m-aj0" },
427 .name = "panel-sw43404-boe-fhd-amoled",