Lines Matching full:panel

196 	struct panel_info	*panel;  member
235 get_panel_info(struct dcu_softc *sc, struct panel_info *panel) in get_panel_info() argument
244 /* panel size */ in get_panel_info()
245 if ((len = OF_getproplen(node, "panel-size")) <= 0) in get_panel_info()
247 OF_getencprop(node, "panel-size", dts_value, len); in get_panel_info()
248 panel->width = dts_value[0]; in get_panel_info()
249 panel->height = dts_value[1]; in get_panel_info()
252 if ((len = OF_getproplen(node, "panel-hsync")) <= 0) in get_panel_info()
254 OF_getencprop(node, "panel-hsync", dts_value, len); in get_panel_info()
255 panel->h_back_porch = dts_value[0]; in get_panel_info()
256 panel->h_pulse_width = dts_value[1]; in get_panel_info()
257 panel->h_front_porch = dts_value[2]; in get_panel_info()
260 if ((len = OF_getproplen(node, "panel-vsync")) <= 0) in get_panel_info()
262 OF_getencprop(node, "panel-vsync", dts_value, len); in get_panel_info()
263 panel->v_back_porch = dts_value[0]; in get_panel_info()
264 panel->v_pulse_width = dts_value[1]; in get_panel_info()
265 panel->v_front_porch = dts_value[2]; in get_panel_info()
268 if ((len = OF_getproplen(node, "panel-clk-div")) <= 0) in get_panel_info()
270 OF_getencprop(node, "panel-clk-div", dts_value, len); in get_panel_info()
271 panel->clk_div = dts_value[0]; in get_panel_info()
274 if ((len = OF_getproplen(node, "panel-backlight-pin")) <= 0) in get_panel_info()
276 OF_getencprop(node, "panel-backlight-pin", dts_value, len); in get_panel_info()
277 panel->backlight_pin = dts_value[0]; in get_panel_info()
285 struct panel_info *panel; in dcu_init() local
289 panel = sc->panel; in dcu_init()
296 reg = (panel->h_back_porch << BP_H_SHIFT); in dcu_init()
297 reg |= (panel->h_pulse_width << PW_H_SHIFT); in dcu_init()
298 reg |= (panel->h_front_porch << FP_H_SHIFT); in dcu_init()
301 reg = (panel->v_back_porch << BP_V_SHIFT); in dcu_init()
302 reg |= (panel->v_pulse_width << PW_V_SHIFT); in dcu_init()
303 reg |= (panel->v_front_porch << FP_V_SHIFT); in dcu_init()
307 WRITE4(sc, DCU_DIV_RATIO, panel->clk_div); in dcu_init()
312 /* TODO: export to panel info */ in dcu_init()
363 struct panel_info panel; in dcu_attach() local
388 if (get_panel_info(sc, &panel)) { in dcu_attach()
389 device_printf(dev, "Can't get panel info\n"); in dcu_attach()
393 sc->panel = &panel; in dcu_attach()
407 GPIO_PIN_SETFLAGS(gpio_dev, panel.backlight_pin, GPIO_PIN_OUTPUT); in dcu_attach()
408 GPIO_PIN_SET(gpio_dev, panel.backlight_pin, GPIO_PIN_HIGH); in dcu_attach()
410 sc->sc_info.fb_width = panel.width; in dcu_attach()
411 sc->sc_info.fb_height = panel.height; in dcu_attach()