Lines Matching refs:khadas_ts050
583 struct khadas_ts050_panel *khadas_ts050 = to_khadas_ts050_panel(panel);
587 if (khadas_ts050->prepared)
590 gpiod_set_value_cansleep(khadas_ts050->enable_gpio, 0);
592 err = regulator_enable(khadas_ts050->supply);
596 gpiod_set_value_cansleep(khadas_ts050->enable_gpio, 1);
600 gpiod_set_value_cansleep(khadas_ts050->reset_gpio, 1);
604 gpiod_set_value_cansleep(khadas_ts050->reset_gpio, 0);
607 mipi_dsi_dcs_write(khadas_ts050->link, 0xff, (u8[]){ 0x05 }, 1);
610 mipi_dsi_dcs_write(khadas_ts050->link, 0xfb, (u8[]){ 0x01 }, 1);
612 mipi_dsi_dcs_write(khadas_ts050->link, 0xc5, (u8[]){ 0x01 }, 1);
617 err = mipi_dsi_dcs_write(khadas_ts050->link,
626 err = mipi_dsi_dcs_exit_sleep_mode(khadas_ts050->link);
635 mipi_dsi_dcs_write(khadas_ts050->link, 0xff, (u8[]){ 0x00 }, 1);
637 err = mipi_dsi_dcs_set_tear_on(khadas_ts050->link,
644 err = mipi_dsi_dcs_set_display_on(khadas_ts050->link);
652 khadas_ts050->prepared = true;
657 gpiod_set_value_cansleep(khadas_ts050->enable_gpio, 0);
658 gpiod_set_value_cansleep(khadas_ts050->reset_gpio, 1);
660 regulator_disable(khadas_ts050->supply);
667 struct khadas_ts050_panel *khadas_ts050 = to_khadas_ts050_panel(panel);
670 if (!khadas_ts050->prepared)
673 khadas_ts050->prepared = false;
675 err = mipi_dsi_dcs_enter_sleep_mode(khadas_ts050->link);
681 gpiod_set_value_cansleep(khadas_ts050->enable_gpio, 0);
682 gpiod_set_value_cansleep(khadas_ts050->reset_gpio, 1);
684 err = regulator_disable(khadas_ts050->supply);
693 struct khadas_ts050_panel *khadas_ts050 = to_khadas_ts050_panel(panel);
695 khadas_ts050->enabled = true;
702 struct khadas_ts050_panel *khadas_ts050 = to_khadas_ts050_panel(panel);
705 if (!khadas_ts050->enabled)
708 err = mipi_dsi_dcs_set_display_off(khadas_ts050->link);
714 khadas_ts050->enabled = false;
770 static int khadas_ts050_panel_add(struct khadas_ts050_panel *khadas_ts050)
772 struct device *dev = &khadas_ts050->link->dev;
775 khadas_ts050->supply = devm_regulator_get(dev, "power");
776 if (IS_ERR(khadas_ts050->supply))
777 return dev_err_probe(dev, PTR_ERR(khadas_ts050->supply),
780 khadas_ts050->reset_gpio = devm_gpiod_get(dev, "reset",
782 if (IS_ERR(khadas_ts050->reset_gpio))
783 return dev_err_probe(dev, PTR_ERR(khadas_ts050->reset_gpio),
786 khadas_ts050->enable_gpio = devm_gpiod_get(dev, "enable",
788 if (IS_ERR(khadas_ts050->enable_gpio))
789 return dev_err_probe(dev, PTR_ERR(khadas_ts050->enable_gpio),
792 drm_panel_init(&khadas_ts050->base, &khadas_ts050->link->dev,
795 err = drm_panel_of_backlight(&khadas_ts050->base);
799 drm_panel_add(&khadas_ts050->base);
806 struct khadas_ts050_panel *khadas_ts050;
814 khadas_ts050 = devm_kzalloc(&dsi->dev, sizeof(*khadas_ts050),
816 if (!khadas_ts050)
819 mipi_dsi_set_drvdata(dsi, khadas_ts050);
820 khadas_ts050->link = dsi;
822 err = khadas_ts050_panel_add(khadas_ts050);
828 drm_panel_remove(&khadas_ts050->base);
835 struct khadas_ts050_panel *khadas_ts050 = mipi_dsi_get_drvdata(dsi);
842 drm_panel_remove(&khadas_ts050->base);
843 drm_panel_disable(&khadas_ts050->base);
844 drm_panel_unprepare(&khadas_ts050->base);
849 struct khadas_ts050_panel *khadas_ts050 = mipi_dsi_get_drvdata(dsi);
851 drm_panel_disable(&khadas_ts050->base);
852 drm_panel_unprepare(&khadas_ts050->base);