• Tomi Valkeinen's avatar
    OMAPDSS: DSI: calculate dsi clock · ee144e64
    Tomi Valkeinen authored
    Currently the way to configure clocks related to DSI (both DSI and DISPC
    clocks) happens via omapdss platform data. The reason for this is that
    configuring the DSS clocks is a very complex problem, and it's
    impossible for the SW to know requirements about things like
    interference.
    
    However, for general cases it should be fine to calculate the dividers
    for clocks in the SW. The calculated clocks are probably not perfect,
    but should work.
    
    This patch adds support to calculate the dividers when using DSI command
    mode panels. The panel gives the required DDR clock rate and LP clock
    rate, and the DSI driver configures itself and DISPC accordingly.
    
    This patch is somewhat ugly, though. The code does its job by modifying
    the platform data where the clock dividers would be if the board file
    gave them. This is not how it's going to be in the future, but allows us
    to have quite simple patch and keep the backward compatibility.
    
    It also allows the developer to still give the exact dividers from the
    board file when there's need for that, as long as the panel driver does
    not override them.
    
    There are also other areas for improvement. For example, it would be
    better if the panel driver could ask for a DSI clock in a certain range,
    as, at least command mode panels, the panel can work fine with many
    different clock speeds.
    
    While the patch is not perfect, it allows us to remove the hardcoded
    clock dividers from the board file, making it easier to bring up a new
    panel and to use device tree from omapdss.
    Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
    ee144e64
omapdss.h 22.2 KB