Lines Matching defs:sc

117 ipu3_fb_init(struct ipu3sc_softc *sc)
124 w0sh96 = IPUV3_READ(sc, cpmem, CPMEM_OFFSET(IMX_IPU_DP1, 23, 0, 16));
126 w0sh96 |= IPUV3_READ(sc, cpmem, CPMEM_OFFSET(IMX_IPU_DP1, 23, 0, 12));
128 sc->sc_info.fb_width = ((w0sh96 >> 29) & 0x1fff) + 1;
129 sc->sc_info.fb_height = ((w0sh96 >> 42) & 0x0fff) + 1;
132 w1sh96 = IPUV3_READ(sc, cpmem, CPMEM_OFFSET(IMX_IPU_DP1, 23, 1, 12));
133 sc->sc_info.fb_stride = ((w1sh96 >> 6) & 0x3fff) + 1;
135 printf("%dx%d [%d]\n", sc->sc_info.fb_width, sc->sc_info.fb_height,
136 sc->sc_info.fb_stride);
137 sc->sc_info.fb_size = sc->sc_info.fb_height * sc->sc_info.fb_stride;
139 sc->sc_info.fb_vbase = (intptr_t)contigmalloc(sc->sc_info.fb_size,
141 sc->sc_info.fb_pbase = (intptr_t)vtophys(sc->sc_info.fb_vbase);
144 IPUV3_WRITE(sc, cpmem, CPMEM_OFFSET(IMX_IPU_DP1, 23, 1, 0),
145 (((uint32_t)sc->sc_info.fb_pbase >> 3) |
146 (((uint32_t)sc->sc_info.fb_pbase >> 3) << 29)) & 0xffffffff);
148 IPUV3_WRITE(sc, cpmem, CPMEM_OFFSET(IMX_IPU_DP1, 23, 1, 4),
149 (((uint32_t)sc->sc_info.fb_pbase >> 3) >> 3) & 0xffffffff);
152 sc->sc_info.fb_bpp = sc->sc_info.fb_depth = sc->sc_info.fb_stride /
153 sc->sc_info.fb_width * 8;
198 struct ipu3sc_softc *sc = device_get_softc(dev);
206 ipu3sc_softc = sc;
212 sc->dev = dev;
214 sc = device_get_softc(dev);
215 sc->iot = iot = fdtbus_bs_tag;
233 sc->cm_ioh = ioh;
239 sc->dmfc_ioh = ioh;
245 sc->di0_ioh = ioh;
251 sc->di1_ioh = ioh;
257 sc->dp_ioh = ioh;
263 sc->dc_ioh = ioh;
270 sc->idmac_ioh = ioh;
277 sc->cpmem_ioh = ioh;
284 sc->dctmpl_ioh = ioh;
287 sc->ih = imx51_ipuv3_intr_establish(IMX51_INT_IPUV3, IPL_BIO,
288 ipuv3intr, sc);
289 if (sc->ih == NULL) {
290 device_printf(sc->dev,
301 ipu3_fb_init(sc);
303 sc->sc_info.fb_name = device_get_nameunit(dev);
305 ipu3_fb_init_cmap(sc->sc_info.fb_cmap, sc->sc_info.fb_depth);
306 sc->sc_info.fb_cmsize = 16;
309 sc->sc_fbd = device_add_child(dev, "fbd", device_get_unit(dev));
310 if (sc->sc_fbd == NULL)
316 bus_space_unmap(sc->iot, sc->cpmem_ioh, IPU_CPMEM_SIZE);
318 bus_space_unmap(sc->iot, sc->idmac_ioh, IPU_IDMAC_SIZE);
320 bus_space_unmap(sc->iot, sc->dc_ioh, IPU_DC_SIZE);
322 bus_space_unmap(sc->iot, sc->dp_ioh, IPU_DP_SIZE);
324 bus_space_unmap(sc->iot, sc->di1_ioh, IPU_DI1_SIZE);
326 bus_space_unmap(sc->iot, sc->di0_ioh, IPU_DI0_SIZE);
328 bus_space_unmap(sc->iot, sc->dmfc_ioh, IPU_DMFC_SIZE);
330 bus_space_unmap(sc->iot, sc->dc_ioh, IPU_CM_SIZE);
332 device_printf(sc->dev,
340 struct ipu3sc_softc *sc = device_get_softc(dev);
342 return (&sc->sc_info);