1. 12 11月, 2014 4 次提交
    • A
      OMAPDSS: DSS: init dss ports cleanly · 387ce9f2
      Archit Taneja 提交于
      The init/uninit port functions are used to set up the DPI and SDI outputs under
      the dss platform device. A 'reg' property is used to determine the port number
      of the output. This tells us whether the port is DPI or SDI for OMAP34xx DSS
      revision. For other DSS revisions, we only have DPI outputs under the dss
      platform device.
      
      For multiple DPI output instances(introduced in DRA7xx DSS), we will use the
      the port number to specify which DPI output instance is being inited.
      
      The current functions work fine if there is only one DPI output instance in
      DSS. For multiple DPI instances, it would get complicated to figure out whether
      port number was used to specify whether the output is SDI, or another DPI
      instance.
      
      We create a list of port types supported for each DSS rev, with the index of the
      port in the list specifying the port number of the output for that DSS revision.
      This allows us to have a more generic way to init/uninit ports within DSS, and
      also support multiple DPI ports.
      
      We make the uninit_port functions iterative since we will have multiple DPI
      ports to uninit in the future.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      387ce9f2
    • A
      OMAPDSS: DPI: Store dpi_data pointer in the DT port's data · 80eb6751
      Archit Taneja 提交于
      DPI and SDI ports are backed by only one parent DSS device. We don't have a
      corresponding platform_device for ports under DSS. In order to support multiple
      instances of DPI, we need to pass the driver data pointer through the DPI port's
      private data ('data' member in device_node struct).
      
      dpi_init_output/dpi_uninit_output are untouched and only used for non-DT case,
      these are called when the DPI platform device probed/removed. These funcs will
      be removed when non-DT mode is removed.
      
      dpi_init_output_port/dpi_uninit_output_port are created and used for the DT
      path, called when DSS inits/uninits it's ports. These new functions retrieve
      the dpi_data pointer from 'port->data', and not from the platform device's
      data(pdev->dev) like in the non-DT path.
      
      We add some code in dss_uninit_ports() to pass a pointer to the DPI port in
      dpi_uninit_port().
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      80eb6751
    • A
      OMAPDSS: DPI: Allocate driver data · 2ac6a1aa
      Archit Taneja 提交于
      Allocate driver data(dpi_data) for each DPI instance. It's allocated in
      omap_dpi_probe() when DT isn't used, and in dpi_init_port() when DT is used.
      The dpi_data struct instance is no longer global. In the case of DPI ops, it's
      retrieved from dpi_get_data_from_dssdev(). 'dssdev' passed by the connected
      encoder/panel driver is a pointer to the 'output' member in dpi_data, and thus
      can be used to get the DPI instance's driver data. In the case of probe/ini_port
      functions, it's set as DPI/DSS device's private data embedded in the
      platform_device struct.
      
      Having dpi_data as private data of the platform device will not work for
      multiple DPI instances in the DT case. This is because there is no corresponding
      platform_device for DPI or SDI, they exist only as ports under the parent DSS
      platform_device in the DT case. The DPI port's private data('data' member in
      device_node struct) will later be used to store dpi_data.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      2ac6a1aa
    • A
      OMAPDSS: DPI: Use DPI driver data · 630d2d0d
      Archit Taneja 提交于
      DPI related data is currently a static global struct parameter. It is accessed
      directly by functions in the driver.
      
      This method won't work if we want the driver to support multiple DPI instances.
      Create struct dpi_data, and pass its pointer to functions which need to use it.
      
      We still have a static instance defined for dpi_data, which is accessed by top
      level DPI ops. This will be removed when the driver dynamically allocates
      dpi_data for each DPI instance.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      630d2d0d
  2. 22 10月, 2014 7 次提交
  3. 30 9月, 2014 1 次提交
  4. 26 8月, 2014 1 次提交
  5. 08 8月, 2014 1 次提交
  6. 04 7月, 2014 12 次提交
  7. 26 6月, 2014 1 次提交
  8. 28 5月, 2014 1 次提交
  9. 23 5月, 2014 3 次提交
  10. 19 5月, 2014 1 次提交
  11. 09 5月, 2014 8 次提交
    • T
      OMAPDSS: Fix writes to DISPC_POL_FREQ · d80e02ef
      Tomi Valkeinen 提交于
      When omapdss writes to DISPC_POL_FREQ register, it always ORs the bits
      with the current contents of the register, never clearing the old ones,
      causing wrong signal polarity settings.
      
      As we write all the bits in DISPC_POL_FREQ, we don't need to care about
      the current contents of the register. So fix the issue by constructing
      new register value from scratch.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      d80e02ef
    • T
      OMAPDSS: HDMI: cleanup ioremaps · 59b3d38a
      Tomi Valkeinen 提交于
      Now that all the boards using OMAP HDMI are using DT boot, we can remove
      the hacks for getting the ioresources with non-DT boot.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      59b3d38a
    • T
      OMAPDSS: HDMI: Add OMAP5 HDMI support · f5bab222
      Tomi Valkeinen 提交于
      This adds a new driver to omapdss for OMAP5 HDMI. However, the new
      driver uses common HDMI files which are shared with OMAP4 HDMI driver.
      
      OMAP5 HDMI has a different HDMI core IP compared to OMAP4, but has very
      similar PLL and PHY IPs which can be handled with common code.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      f5bab222
    • A
      OMAPDSS: HDMI: PLL changes for OMAP5 · 2d64b1b3
      Archit Taneja 提交于
      Add a features struct to differentiate between the HDMI PLLs on OMAP4
      and OMAP5. The OMAP5 PLL is more sensitive when it comes to locking.  We
      need to ensure that the DCO freq isn't too low for lower pixel clocks.
      
      Modify the PLL computation slightly to ensure the HDMI PLL locks for lower
      frequencies. This will be later replaced by a more complex computation
      which makes sure all the PLL constraints are met.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      2d64b1b3
    • A
      OMAPDSS: HDMI: PHY changes for OMAP5 · 19289fdc
      Archit Taneja 提交于
      OMAP5 HDMI PHY has some differences compared to OMAP4 HDMI PHY. This
      patch creates a features struct which help the driver configure the PHY
      based on what SoC it is.
      
      Some of the features aren't currenlty used, but will come in use later.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      19289fdc
    • A
      OMAPDSS: HDMI: support larger register offsets for OMAP5 HDMI core · 8955b727
      Archit Taneja 提交于
      The HDMI core IP on OMAP5 has a wider address range for registers. The offsets
      for the later registers can't fit into the u16 type currently used for hdmi
      register read and write functions. Use u32 for offsets instead.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      8955b727
    • T
      OMAPDSS: HDMI: move irq & phy pwr handling · dcf5f729
      Tomi Valkeinen 提交于
      HDMI IRQ handling was moved into hdmi_phy.c when restructuring the HDMI
      driver. While this worked fine, it's not correct.
      
      The HDMI IRQ handling should be either in the hdmi_wp, or in the main
      hdmi driver. This patch moves the handling to the main hdmi driver, as I
      feel it's a more appropriate choice.
      
      This move also requires changing the handling of the PHY power, as that
      was partly handled in the IRQ handler. The PHY power is handled via the
      WP module. An option would be to give HDMI PHY driver function pointers
      that it could use to manage the PHY power, but as the PHY power is not
      needed to access the PHY registers, the handling was also moved to the
      main HDMI driver. This could be changed later if need be.
      
      Note that there's slightly similar power issue with the PLL: the HDMI
      PLLs power is also handled via the WP module. For now, the PLL power
      handling is still done inside the PLL driver.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      dcf5f729
    • T
      OMAPDSS: HDMI: improve Makefile · 543e761f
      Tomi Valkeinen 提交于
      We'll soon add support for OMAP5 HDMI, which uses some of the same files
      as OMAP4 HDMI does.
      
      This patch adds a new config entry "OMAP2_DSS_HDMI_COMMON", which both
      OMAP4 and OMAP5 HDMI config entries can select. OMAP2_DSS_HDMI_COMMON
      will cause the common HDMI files to be compiled.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      543e761f