Lines Matching refs:max96752f

28 struct max96752f;
35 int (*prepare)(struct max96752f *max96752f);
36 int (*unprepare)(struct max96752f *max96752f);
37 int (*enable)(struct max96752f *max96752f);
38 int (*disable)(struct max96752f *max96752f);
39 int (*backlight_enable)(struct max96752f *max96752f);
40 int (*backlight_disable)(struct max96752f *max96752f);
43 struct max96752f { struct
56 static inline struct max96752f *to_max96752f(struct drm_panel *panel) in to_max96752f() argument
58 return container_of(panel, struct max96752f, panel); in to_max96752f()
63 struct max96752f *max96752f = to_max96752f(panel); in max96752f_panel_disable() local
64 const struct panel_desc *desc = max96752f->desc; in max96752f_panel_disable()
67 desc->backlight_disable(max96752f); in max96752f_panel_disable()
69 backlight_disable(max96752f->backlight); in max96752f_panel_disable()
72 desc->disable(max96752f); in max96752f_panel_disable()
79 struct max96752f *max96752f = to_max96752f(panel); in max96752f_panel_enable() local
80 const struct panel_desc *desc = max96752f->desc; in max96752f_panel_enable()
83 desc->enable(max96752f); in max96752f_panel_enable()
85 backlight_enable(max96752f->backlight); in max96752f_panel_enable()
88 desc->backlight_enable(max96752f); in max96752f_panel_enable()
95 struct max96752f *max96752f = to_max96752f(panel); in max96752f_panel_unprepare() local
96 const struct panel_desc *desc = max96752f->desc; in max96752f_panel_unprepare()
99 desc->unprepare(max96752f); in max96752f_panel_unprepare()
101 pinctrl_pm_select_sleep_state(max96752f->dev); in max96752f_panel_unprepare()
108 struct max96752f *max96752f = to_max96752f(panel); in max96752f_panel_prepare() local
109 const struct panel_desc *desc = max96752f->desc; in max96752f_panel_prepare()
111 pinctrl_pm_select_default_state(max96752f->dev); in max96752f_panel_prepare()
114 desc->prepare(max96752f); in max96752f_panel_prepare()
122 struct max96752f *max96752f = to_max96752f(panel); in max96752f_panel_get_modes() local
123 const struct panel_desc *desc = max96752f->desc; in max96752f_panel_get_modes()
131 mode = drm_mode_duplicate(connector->dev, &max96752f->mode); in max96752f_panel_get_modes()
150 static int max96752f_parse_dt(struct max96752f *max96752f) in max96752f_parse_dt() argument
152 struct device *dev = max96752f->dev; in max96752f_parse_dt()
164 drm_display_mode_from_videomode(&vm, &max96752f->mode); in max96752f_parse_dt()
188 struct max96752f *max96752f = data; in max96752f_power_off() local
190 if (max96752f->supply) in max96752f_power_off()
191 regulator_disable(max96752f->supply); in max96752f_power_off()
194 static void max96752f_power_on(struct max96752f *max96752f) in max96752f_power_on() argument
198 if (max96752f->supply) { in max96752f_power_on()
199 ret = regulator_enable(max96752f->supply); in max96752f_power_on()
201 dev_err(max96752f->dev, in max96752f_power_on()
209 struct max96752f *max96752f; in max96752f_probe() local
213 max96752f = devm_kzalloc(dev, sizeof(*max96752f), GFP_KERNEL); in max96752f_probe()
214 if (!max96752f) in max96752f_probe()
217 max96752f->dev = dev; in max96752f_probe()
218 max96752f->desc = of_device_get_match_data(dev); in max96752f_probe()
219 i2c_set_clientdata(client, max96752f); in max96752f_probe()
221 max96752f->supply = devm_regulator_get_optional(dev, "power"); in max96752f_probe()
222 if (IS_ERR(max96752f->supply)) { in max96752f_probe()
223 if (PTR_ERR(max96752f->supply) != -ENODEV) in max96752f_probe()
224 return dev_err_probe(dev, PTR_ERR(max96752f->supply), in max96752f_probe()
227 max96752f->supply = NULL; in max96752f_probe()
229 ret = regulator_enable(max96752f->supply); in max96752f_probe()
235 ret = devm_add_action_or_reset(dev, max96752f_power_off, max96752f); in max96752f_probe()
237 regulator_disable(max96752f->supply); in max96752f_probe()
242 max96752f->regmap.deserializer = in max96752f_probe()
244 if (IS_ERR(max96752f->regmap.deserializer)) in max96752f_probe()
245 return dev_err_probe(dev, PTR_ERR(max96752f->regmap.deserializer), in max96752f_probe()
252 max96752f->regmap.serializer = dev_get_regmap(&parent->dev, NULL); in max96752f_probe()
253 if (!max96752f->regmap.serializer) in max96752f_probe()
257 ret = max96752f_parse_dt(max96752f); in max96752f_probe()
261 max96752f->backlight = devm_of_find_backlight(dev); in max96752f_probe()
262 if (IS_ERR(max96752f->backlight)) in max96752f_probe()
263 return dev_err_probe(dev, PTR_ERR(max96752f->backlight), in max96752f_probe()
266 drm_panel_init(&max96752f->panel, dev, &max96752f_panel_funcs, in max96752f_probe()
268 drm_panel_add(&max96752f->panel); in max96752f_probe()
275 struct max96752f *max96752f = i2c_get_clientdata(client); in max96752f_remove() local
277 drm_panel_remove(&max96752f->panel); in max96752f_remove()
284 struct max96752f *max96752f = dev_get_drvdata(dev); in max96752f_suspend() local
286 max96752f_power_off(max96752f); in max96752f_suspend()
293 struct max96752f *max96752f = dev_get_drvdata(dev); in max96752f_resume() local
295 max96752f_power_on(max96752f); in max96752f_resume()
302 #define maxim_serializer_write(max96752f, reg, val) do { \ argument
304 ret = regmap_write(max96752f->regmap.serializer, \
310 #define maxim_serializer_read(max96752f, reg, val) do { \ argument
312 ret = regmap_read(max96752f->regmap.serializer, \
318 #define maxim_deserializer_write(max96752f, reg, val) do { \ argument
320 ret = regmap_write(max96752f->regmap.deserializer, \
326 #define maxim_deserializer_read(max96752f, reg, val) do { \ argument
328 ret = regmap_read(max96752f->regmap.deserializer, \
334 static int boe_av156fht_l83_prepare(struct max96752f *max96752f) in boe_av156fht_l83_prepare() argument
336 maxim_deserializer_write(max96752f, 0x0002, 0x43); in boe_av156fht_l83_prepare()
337 maxim_deserializer_write(max96752f, 0x0140, 0x20); in boe_av156fht_l83_prepare()
339 maxim_deserializer_write(max96752f, 0x01ce, 0x5e); /* oldi */ in boe_av156fht_l83_prepare()
340 maxim_deserializer_write(max96752f, 0x020e, 0x40); /* bl_pwm */ in boe_av156fht_l83_prepare()
341 maxim_deserializer_write(max96752f, 0x020c, 0x84); in boe_av156fht_l83_prepare()
342 maxim_deserializer_write(max96752f, 0x0207, 0xa1); /* tp_int */ in boe_av156fht_l83_prepare()
343 maxim_deserializer_write(max96752f, 0x0206, 0x83); in boe_av156fht_l83_prepare()
345 maxim_deserializer_write(max96752f, 0x0215, 0x90); /* lcd_en */ in boe_av156fht_l83_prepare()
351 static int boe_av156fht_l83_unprepare(struct max96752f *max96752f) in boe_av156fht_l83_unprepare() argument
353 maxim_deserializer_write(max96752f, 0x0215, 0x80); /* lcd_en */ in boe_av156fht_l83_unprepare()
358 static int boe_av156fht_l83_enable(struct max96752f *max96752f) in boe_av156fht_l83_enable() argument
360 maxim_deserializer_write(max96752f, 0x0227, 0x90); /* lcd_rst */ in boe_av156fht_l83_enable()
362 maxim_deserializer_write(max96752f, 0x020f, 0x90); /* tp_rst */ in boe_av156fht_l83_enable()
364 maxim_deserializer_write(max96752f, 0x0221, 0x90); /* lcd_stb */ in boe_av156fht_l83_enable()
370 static int boe_av156fht_l83_disable(struct max96752f *max96752f) in boe_av156fht_l83_disable() argument
372 maxim_deserializer_write(max96752f, 0x0221, 0x80); /* lcd_stb */ in boe_av156fht_l83_disable()
373 maxim_deserializer_write(max96752f, 0x020f, 0x80); /* tp_rst */ in boe_av156fht_l83_disable()
374 maxim_deserializer_write(max96752f, 0x0227, 0x80); /* lcd_rst */ in boe_av156fht_l83_disable()
379 static int boe_av156fht_l83_backlight_enable(struct max96752f *max96752f) in boe_av156fht_l83_backlight_enable() argument
381 maxim_deserializer_write(max96752f, 0x0212, 0x90); /* bl_current_ctl */ in boe_av156fht_l83_backlight_enable()
382 maxim_deserializer_write(max96752f, 0x0209, 0x90); /* bl_en */ in boe_av156fht_l83_backlight_enable()
387 static int boe_av156fht_l83_backlight_disable(struct max96752f *max96752f) in boe_av156fht_l83_backlight_disable() argument
389 maxim_deserializer_write(max96752f, 0x0209, 0x80); /* bl_en */ in boe_av156fht_l83_backlight_disable()
390 maxim_deserializer_write(max96752f, 0x0212, 0x80); /* bl_current_ctl */ in boe_av156fht_l83_backlight_disable()
407 static int hannstar_hsd123jpw3_a15_prepare(struct max96752f *max96752f) in hannstar_hsd123jpw3_a15_prepare() argument
409 maxim_deserializer_write(max96752f, 0x0002, 0x43); in hannstar_hsd123jpw3_a15_prepare()
410 maxim_deserializer_write(max96752f, 0x0140, 0x20); in hannstar_hsd123jpw3_a15_prepare()
411 maxim_deserializer_write(max96752f, 0x01ce, 0x5e); in hannstar_hsd123jpw3_a15_prepare()
413 maxim_deserializer_write(max96752f, 0x0203, 0x83); /* GPIO1 <- TP_INT */ in hannstar_hsd123jpw3_a15_prepare()
414 maxim_deserializer_write(max96752f, 0x0206, 0x84); /* GPIO2 -> TP_RST */ in hannstar_hsd123jpw3_a15_prepare()
415 maxim_deserializer_write(max96752f, 0x0224, 0x84); /* GPIO12 -> LCD_BL_PWM */ in hannstar_hsd123jpw3_a15_prepare()
420 static int hannstar_hsd123jpw3_a15_unprepare(struct max96752f *max96752f) in hannstar_hsd123jpw3_a15_unprepare() argument
425 static int hannstar_hsd123jpw3_a15_enable(struct max96752f *max96752f) in hannstar_hsd123jpw3_a15_enable() argument
427 maxim_deserializer_write(max96752f, 0x0221, 0x90); /* GPIO11 -> LCD_RESET */ in hannstar_hsd123jpw3_a15_enable()
433 static int hannstar_hsd123jpw3_a15_disable(struct max96752f *max96752f) in hannstar_hsd123jpw3_a15_disable() argument
435 maxim_deserializer_write(max96752f, 0x0221, 0x80); /* GPIO11 -> LCD_RESET */ in hannstar_hsd123jpw3_a15_disable()
451 static int ogm_101fhbllm01_prepare(struct max96752f *max96752f) in ogm_101fhbllm01_prepare() argument
453 maxim_deserializer_write(max96752f, 0x01ce, 0x5e); in ogm_101fhbllm01_prepare()
455 maxim_deserializer_write(max96752f, 0x0203, 0x84); /* GPIO1 -> BL_PWM */ in ogm_101fhbllm01_prepare()
456 maxim_deserializer_write(max96752f, 0x0206, 0x84); /* GPIO2 -> TP_RST */ in ogm_101fhbllm01_prepare()
457 maxim_deserializer_write(max96752f, 0x0209, 0x83); /* GPIO3 <- TP_INT */ in ogm_101fhbllm01_prepare()
459 maxim_deserializer_write(max96752f, 0x0001, 0x02); in ogm_101fhbllm01_prepare()
464 static int ogm_101fhbllm01_unprepare(struct max96752f *max96752f) in ogm_101fhbllm01_unprepare() argument
466 maxim_deserializer_write(max96752f, 0x0001, 0x01); in ogm_101fhbllm01_unprepare()