• Keerthy's avatar
    thermal: ti-soc-thermal: dra7: Implement Workaround for Errata i814 · 79010636
    Keerthy authored
    Bandgap Temperature read Dtemp can be corrupted
    
    DESCRIPTION
            Read accesses to registers listed below can be corrupted due to
    	incorrect resynchronization between clock domains.
    
            Read access to registers below can be corrupted :
                    • CTRL_CORE_DTEMP_MPU/GPU/CORE/DSPEVE/IVA_n (n = 0 to 4)
            • CTRL_CORE_TEMP_SENSOR_MPU/GPU/CORE/DSPEVE/IVA_n
    
    WORKAROUND
        Multiple reads to CTRL_CORE_TEMP_SENSOR_MPU/GPU/CORE/DSPEVE/IVA[9:0]:
        BGAP_DTEMPMPU/GPU/CORE/DSPEVE/IVA is needed to discard false value and
        read right value:
           1. Perform two successive reads to BGAP_DTEMP bit field.
                   (a) If read1 returns Val1 and read2 returns Val1, then
           	right value is Val1.
                   (b) If read1 returns Val1, read 2 returns Val2, a third
           	read is needed.
           2. Perform third read
                   (a) If read3 returns Val2 then right value is Val2.
                   (b) If read3 returns Val3, then right value is Val3.
    
        The above in gist means if val1 and val2 are the same then we can go
        ahead with that value else we need a third read which will be right
        since synchronization will be complete by then.
    Signed-off-by: default avatarKeerthy <j-keerthy@ti.com>
    Signed-off-by: default avatarEduardo Valentin <edubezval@gmail.com>
    79010636
dra752-thermal-data.c 18 KB