[U-Boot] [PATCH v5 2/3] wandboard: add Future Eletronics 7" WVGA LCD extension board

Fabio Estevam festevam at gmail.com
Mon Jan 6 20:46:27 CET 2014


On Mon, Jan 6, 2014 at 1:27 PM, Otavio Salvador <otavio at ossystems.com.br> wrote:

[Removed wandboard -devel list as it bounces when I reply to it]

> -int board_video_skip(void)
> -{
> -       int ret;
> +static iomux_v3_cfg_t const fwadapt_7wvga_pads[] = {
> +       MX6_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK,
> +       MX6_PAD_DI0_PIN2__IPU1_DI0_PIN02, /* HSync */
> +       MX6_PAD_DI0_PIN3__IPU1_DI0_PIN03, /* VSync */
> +       MX6_PAD_DI0_PIN4__IPU1_DI0_PIN04
> +               | MUX_PAD_CTRL(PAD_CTL_DSE_120ohm), /* Contrast */
> +       MX6_PAD_DI0_PIN15__IPU1_DI0_PIN15, /* DISP0_DRDY */
> +
> +       MX6_PAD_DISP0_DAT0__IPU1_DISP0_DATA00,
> +       MX6_PAD_DISP0_DAT1__IPU1_DISP0_DATA01,
> +       MX6_PAD_DISP0_DAT2__IPU1_DISP0_DATA02,
> +       MX6_PAD_DISP0_DAT3__IPU1_DISP0_DATA03,
> +       MX6_PAD_DISP0_DAT4__IPU1_DISP0_DATA04,
> +       MX6_PAD_DISP0_DAT5__IPU1_DISP0_DATA05,
> +       MX6_PAD_DISP0_DAT6__IPU1_DISP0_DATA06,
> +       MX6_PAD_DISP0_DAT7__IPU1_DISP0_DATA07,
> +       MX6_PAD_DISP0_DAT8__IPU1_DISP0_DATA08,
> +       MX6_PAD_DISP0_DAT9__IPU1_DISP0_DATA09,
> +       MX6_PAD_DISP0_DAT10__IPU1_DISP0_DATA10,
> +       MX6_PAD_DISP0_DAT11__IPU1_DISP0_DATA11,
> +       MX6_PAD_DISP0_DAT12__IPU1_DISP0_DATA12,
> +       MX6_PAD_DISP0_DAT13__IPU1_DISP0_DATA13,
> +       MX6_PAD_DISP0_DAT14__IPU1_DISP0_DATA14,
> +       MX6_PAD_DISP0_DAT15__IPU1_DISP0_DATA15,
> +       MX6_PAD_DISP0_DAT16__IPU1_DISP0_DATA16,
> +       MX6_PAD_DISP0_DAT17__IPU1_DISP0_DATA17,
> +
> +       MX6_PAD_SD4_DAT2__GPIO2_IO10
> +               | MUX_PAD_CTRL(NO_PAD_CTRL), /* DISP0_BKLEN */
> +       MX6_PAD_SD4_DAT3__GPIO2_IO11
> +               | MUX_PAD_CTRL(NO_PAD_CTRL), /* DISP0_VDDEN */
> +};

Here you enable the parallel data lines for the display ....

>  static void setup_display(void)
>  {
>         struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
> +       struct iomuxc *iomux = (struct iomuxc *)IOMUXC_BASE_ADDR;
>         int reg;
>
>         enable_ipu_clock();
>         imx_setup_hdmi();
>
> +       /* Turn on LDB0, LDB1, IPU,IPU DI0 clocks */
> +       reg = __raw_readl(&mxc_ccm->CCGR3);
> +       reg |=  MXC_CCM_CCGR3_LDB_DI0_MASK | MXC_CCM_CCGR3_LDB_DI1_MASK;
> +       writel(reg, &mxc_ccm->CCGR3);
> +
> +       /* set LDB0, LDB1 clk select to 011/011 */
> +       reg = readl(&mxc_ccm->cs2cdr);
> +       reg &= ~(MXC_CCM_CS2CDR_LDB_DI0_CLK_SEL_MASK
> +                | MXC_CCM_CS2CDR_LDB_DI1_CLK_SEL_MASK);
> +       reg |= (3 << MXC_CCM_CS2CDR_LDB_DI0_CLK_SEL_OFFSET)
> +             | (3 << MXC_CCM_CS2CDR_LDB_DI1_CLK_SEL_OFFSET);
> +       writel(reg, &mxc_ccm->cs2cdr);

,but here you enable the LDB clocks.

Why do you need to enable the LDB clocks for driving the parallel display?

Regards,

Fabio Estevam


More information about the U-Boot mailing list