Latest update Android YouTube

What is IPU? - Computer Fundamental

Admin
Estimated read time: 1 min

Image Processing Unit (IPU)

The Image Processing Unit (IPU) is designed to support video and graphics processing functions and to interface with video and still image sensors and displays.
The IPU driver provides the following software support:
  • Synchronous frame buffer driver
  • Display Interface (DI)
  • Display Processor (DP)
  • Image DMA Controller (IDMAC)
  • CMOS Sensor Interface (CSI)
  • Image Converter (IC)

Kernel configuration

You can manage the IPU driver support through the kernel configuration option:
  • Image Processing Unit Driver (CONFIG_MXC_IPU)
This option is enabled as built-in on the default ConnectCore 6 SBC kernel configuration file.

Platform driver mapping

The IPU drivers for the i.MX6 are located at drivers/mxc/ipu3:
FileDescription
ipu_common.cIPU common library functions
ipu_ic.cIPU IC base driver
ipu_device.cIPU driver device interface and fops functions
ipu_capture.cIPU CSI capture base driver
ipu_disp.cIPU display functions
ipu_calc_stripes_sizes.cMulti-stripes method functions for ipu_device.c
vdoa.cVDOA post-processing driver, used by ipu_device.c
drivers/video/mxc:
FileDescription
mxc_ipuv3_fb.cDriver for synchronous frame buffer
mxc_hdmi.cDisplay driver for HDMI interface
ldb.cDriver for synchronous frame buffer for on chip LVDS
mxc_dispdrv.cDisplay driver framework for synchronous frame buffer
mxc_edid.cDriver for EDID

Device tree bindings and customization

The i.MX6 IPU device tree binding is documented at Documentation/devicetree/bindings/fb/fsl_ipuv3_fb.txt.
The IPU is defined in the i.MX6 CPU and ConnectCore 6 SBC device tree files.

Definition of the GPU interface

Common i.MX6 device tree
ipu1: ipu@02400000 {
            compatible = "fsl,imx6q-ipu";
            reg = <0x02400000 0x400000>;
            interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>,
                     <0 5 IRQ_TYPE_LEVEL_HIGH>;
            clocks = <&clks IMX6QDL_CLK_IPU1>,
                 <&clks IMX6QDL_CLK_IPU1_DI0>, <&clks IMX6QDL_CLK_IPU1_DI1>,
                 <&clks IMX6QDL_CLK_IPU1_DI0_SEL>, <&clks IMX6QDL_CLK_IPU1_DI1_SEL>,
                 <&clks IMX6QDL_CLK_LDB_DI0>, <&clks IMX6QDL_CLK_LDB_DI1>;
            clock-names = "bus",
                      "di0", "di1",
                      "di0_sel", "di1_sel",
                      "ldb_di0", "ldb_di1";
            resets = <&src 2>;
            bypass_reset = <0>;
};            

IOMUX configuration

Since the IPU is an internal CPU device, it doesn't have an IOMUX configuration.

2 comments

  1. second ago
    Hii
  2. second ago
    Helpful
Feel free to ask your query...
Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.