1. 11 5月, 2011 17 次提交
    • T
      OMAP: DSS2: DSI: implement enable/disable SCP clk · 24c1ae41
      Tomi Valkeinen 提交于
      SCP clock is needed for CIO on OMAP3, and for CIO and PLL on OMAP4.
      Current driver enables the CIO clock always when DSI display is
      initialized. However, if a DPI display tries to use DSI PLL, the SCP
      clock is never enabled.
      
      This patch implements simple ref counting enable/disable functions for
      SCP clock.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      24c1ae41
    • T
      OMAP: DSS2: DSI: fix _dsi_print_reset_status · c335cbf9
      Tomi Valkeinen 提交于
      The bits for TXCLKESCx reset have changed for OMAP3630 and OMAP4.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      c335cbf9
    • T
      OMAP: DSS2: DSI: rename complexio related functions · cc5c1850
      Tomi Valkeinen 提交于
      Rename ComplexIO from dsi_complexio_xxx to dsi_cio_xxx for brevity.
      Also, add cio prefix for couple of functions that didn't have it, but
      are cio related.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      cc5c1850
    • T
      OMAP: DSS2: DSI: add option to leave DSI lanes powered on · 2a89dc15
      Tomi Valkeinen 提交于
      The DSI pins are powered by VDDS_DSI. If VDDS_DSI is off, the DSI pins
      are floating even if they are pinmuxed to, say, safe mode and there's a
      pull down/up.
      
      This patch gives the panel drivers an option to leave the VDDS_DSI power
      enabled while the DSS itself is turned off. This can be used to keep the
      DSI lanes in a valid state while DSS is off, if the DSI pins are muxed
      for pull down (not done in this patch).
      
      There will be a slight power consumption increase (~100 uA?) when the
      VDDS_DSI is left on, but because this option is used when the panel is
      left on, the regulator consumption is negligible compared to panel power
      consumption.
      
      When the panel is fully turned off the VDDS_DSI is also turned off.
      
      As an added bonus this will give us faster start up time when starting
      up the DSS and the regulator is already enabled.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      2a89dc15
    • T
      OMAP: DSS2: DSI: implement ULPS enter and exit · 40885ab3
      Tomi Valkeinen 提交于
      Entering ULPS (Ultra Low Power State) happens by sending ULPS entry
      sequence to the DSI peripheral and pulling the DSI lines down.
      
      Exiting ULPS happens by sending ULPS exit sequence.
      
      We can send the ULPS entry sequence by using OMAP DSS HW's ULPS support,
      but we cannot use the ULPS exit support from DSS HW. DSS HW refuses to
      send the ULPS exit sequence if it thinks that the lanes are not in ULPS.
      After being in OFF mode the DSS HW has been reset, and so it does not
      know that the lanes are actually in ULPS.
      
      Thus we need to use the lane override support and manually send the ULPS
      exit sequence. Luckily the sequence is very simple.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      40885ab3
    • T
      OMAP: DSS2: DSI: Remove CIO LDO status check · 95861368
      Tomi Valkeinen 提交于
      CIO LDO status check seems to be broken on OMAP3630+ chips, and it's
      also quite unclear what LDO status actually tells and when its status
      changes.
      
      This patch removes the whole check on the grounds that if there's a
      problem with the LDO, we should anyway catch the problem as we check the
      CIO power state and CIO reset status.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      95861368
    • T
      OMAP: DSS2: DSI: Add lane override functions · 0a0ee46b
      Tomi Valkeinen 提交于
      DSI_DSIPHY_CFG10 register can be used to override DSI lane state. Add
      functions to configure and enable the override, and to disable the
      override.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      0a0ee46b
    • A
      OMAP2PLUS: DSS2: Remove hack config "CONFIG_OMAP2_DSS_USE_DSI_PLL" · 7636b3b4
      Archit Taneja 提交于
      The clock sources for DISPC_FCLK and LCD1_CLK are now specified in the board file.
      There is no need for the hack config "CONFIG_OMAP2_DSS_USE_DSI_PLL" anymore.
      Introduce function dpi_use_dsi_pll() which checks for the clock sources to decide
      whether DSI PLL is to be used or not.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      7636b3b4
    • A
      OMAP2PLUS: DSS2: Add clock sources to dss device clock configuration · e8881662
      Archit Taneja 提交于
      Add enum dss_clock_source in dssdev.clocks struct so that the clock sources can
      be specified in the board file.
      Replace hard coded clock sources in dsi.c, dpi.c and replace them with the new
      clock source members in dssdev.clocks. Modify the sdp4430_lcd_device struct in
      board-4430sdp.c to specify clock sources for DISPC_FCLK, LCD1_CLK and DSI1_FCLK.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      e8881662
    • A
      OMAP2PLUS: DSS2: Change enum "dss_clk_source" to "omap_dss_clk_source" · 89a35e51
      Archit Taneja 提交于
      Change enum dss_clk_source to omap_dss_clock_source and move it to
      'plat/display.h'. Change the enum members to attach "OMAP_" in the beginning.
      These changes are done in order to specify the clock sources for DSS in the
      board file.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      89a35e51
    • T
      OMAP: DSS2: move dss device clock configuration · c6940a3d
      Tomi Valkeinen 提交于
      Clock configuration was defined inside dssdev.phy.dsi struct. The clock
      config doesn't really belong there, and so it's moved to dssdev.clock
      struct.
      
      Now the explicit clock configuration could also be used for other
      interfaces than DSI, although there's no support for it currently.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      c6940a3d
    • A
      OMAP: DSS2: DSI: Introduce sync_vc functions · cf398fb3
      Archit Taneja 提交于
      The DSI protocol engine has no interrupt for signalling the end of a Frame
      transfer. The present approach is to send a BTA after DISPC generates a
      FRAMEDONE interrupt, and unlock the dsi bus only when the BTA Ack is received.
      
      The assumption made with this approach was that OMAP will send a BTA only after
      the long packet corresponding to the last line is sent. However, it is possible
      that on the DISPC FRAMEDONE interrupt there are 2 (or more) lines of pixel data
      in the DSI line buffer. Hence, the BTA Ack could be received for the long packet
      corresponding to the second last line (or the third last and so on..).
      Therefore, the current method doesn't ensure that the complete frame data is
      sent before we start a new transfer. A similar explanation holds valid if we
      send a BTA in between multiple short/long command packets from the slave port.
      
      Introduce dsi_sync_vc functions, based on Tomi Valkeinen's idea, which ensure
      that the DSI Virtual Channel in use(update_channel) completes its previous work
      before proceeding to the next Frame/Command.
      
      For a frame update, the DSI driver now sends a callback to the Panel Driver
      on the FRAMEDONE interrupt itself. The callback in the panel driver then unlocks
      the bus. dsi_sync_vc() functions are placed in dsi_vc_config_l4() and
      dsi_vc_config_vp() to ensure that the previous task of the Virtual Channel is
      completed.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      cf398fb3
    • A
      OMAP4: DSS2: Register configuration changes for DSI · 9613c02b
      Archit Taneja 提交于
      The following changes have changed from OMAP3 to OMAP4 DSI:
      -The register field DSI_PLL_FREQSEL in DSI_PLL_CONFIGURATION2 has been removed.
      -DCS_CMD_ENABLE and DCS_CMD_CODE bits have been moved from DSI_CTRL to
      DSI_VC_CTRLi, hence the control of the bits is available per VC.
      -DSI LDO powergood notification doesn't work on OMAP4. This is mentioned in
      OMAP4 errata revision 1.8(Errata 1.76).
      -OCP_WIDTH register field is included in DSI_VC_CTRL.
      -The SCP clock is also required to access DSI PLL registers
      
      Introduce dss features for these changes so that DSI runs on both OMAP3 and
      OMAP4.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      9613c02b
    • T
      OMAP: DSS2: DSI: Fix DSI PLL power bug · c94dfe05
      Tomi Valkeinen 提交于
      OMAP3630 has a HW bug causing DSI PLL power command POWER_ON_DIV (0x3)
      to not work properly. The bug prevents us from enabling DSI PLL power
      only to HS divider block.
      
      This patch adds a dss feature for the bug and converts POWER_ON_DIV
      requests to POWER_ON_ALL (0x2).
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      c94dfe05
    • T
      OMAP: DSS2: DSI: fix dsi_dump_clocks() · a9a6500b
      Tomi Valkeinen 提交于
      On OMAP4, reading DSI_PLL_CONFIGURATION2 register requires the L3 clock
      (CIO_CLK_ICG) to PLL. Currently dsi_dump_clocks() tries to read that
      register without enabling the L3 clock, leading to crash if DSI is not
      in use.
      
      The status of the bit being read from DSI_PLL_CONFIGURATION2 is
      available from dsi_clock_info->use_sys_clk, so we can avoid the whole
      problem by just using that.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      a9a6500b
    • T
      OMAP: DSS2: DSI: fix use_sys_clk & highfreq · b2765092
      Tomi Valkeinen 提交于
      use_sys_clk and highfreq fields in dsi.current_cinfo were never set.
      Luckily they weren't used anywhere so it didn't cause any problems.
      
      This patch fixes those fields and they are now set at the same time as
      the rest of the fields.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      b2765092
    • T
      OMAP: DSS2: Move display.h to include/video/ · a0b38cc4
      Tomi Valkeinen 提交于
      arch/arm/plat-omap/include/plat/display.h is an include for the OMAP DSS
      driver. A more logical place for it is in include/video.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      a0b38cc4
  2. 15 3月, 2011 8 次提交
  3. 11 3月, 2011 14 次提交
  4. 10 1月, 2011 1 次提交