• H. Nikolaus Schaller's avatar
    cpufreq: ti-cpufreq: add support for omap34xx and omap36xx · b4bc9f9e
    H. Nikolaus Schaller authored
    This adds code and tables to read the silicon revision and
    eFuse (speed binned / 720 MHz grade) bits for selecting
    opp-v2 table entries.
    
    Since these bits are not always part of the syscon register
    range (like for am33xx, am43, dra7), we add code to directly
    read the register values using ioremap() if syscon access fails.
    
    The format of the opp-supported-hw entries is that it has
    two 32 bit bitfields. E.g.:
    
    	opp-supported-hw = <0xffffffff 3>
    
    The first value is matched against the bit position of the
    silicon revision which is (see TRM)
    
    omap34xx:
    BIT(0)	ES1.0
    BIT(1)	ES2.0
    BIT(2)	ES2.1
    BIT(3)	ES3.0
    BIT(4)	ES3.1
    BIT(7)	ES3.1.2
    
    omap36xx:
    BIT(0)	ES1.0
    BIT(1)	ES1.1
    BIT(2)	ES1.2
    
    The second value is matched against the speed grade eFuse:
    
    BIT(0)	no high speed OPP
    BIT(1)	high speed OPP
    
    This means for the example above that it is always enabled
    while e.g.
    
    	opp-supported-hw = <0x1 2>
    
    enables the OPP only for ES1.0 BIT(0) and if the high speed
    eFuse is set BIT(1).
    Signed-off-by: default avatarH. Nikolaus Schaller <hns@goldelico.com>
    Reviewed-by: default avatarTony Lindgren <tony@atomide.com>
    Tested-by: default avatarAdam Ford <aford173@gmail.com>
    Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
    b4bc9f9e
ti-cpufreq.c 10.3 KB