• Keerthy's avatar
    thermal: k3_j72xx_bandgap: Add the bandgap driver support · ffcb2fc8
    Keerthy authored
    Add VTM thermal support. In the Voltage Thermal Management
    Module(VTM), K3 J72XX supplies a voltage reference and a temperature
    sensor feature that are gathered in the band gap voltage and
    temperature sensor (VBGAPTS) module. The band gap provides current and
    voltage reference for its internal circuits and other analog IP
    blocks. The analog-to-digital converter (ADC) produces an output value
    that is proportional to the silicon temperature.
    
    Currently reading temperatures only is supported.  There are no
    active/passive cooling agent supported.
    
    J721e SoCs have errata i2128: https://www.ti.com/lit/pdf/sprz455
    
    The VTM Temperature Monitors (TEMPSENSORs) are trimmed during production,
    with the resulting values stored in software-readable registers. Software
    should use these  register values when translating the Temperature
    Monitor output codes to temperature values.
    
    It has an involved workaround. Software needs to read the error codes for
    -40C, 30C, 125C from the efuse for each device & derive a new look up table
    for adc to temperature conversion. Involved calculating slopes & constants
    using 3 different straight line equations with adc refernce codes as the
    y-axis & error codes in the x-axis.
    
    -40C to 30C
    30C to 125C
    125C to 150C
    
    With the above 2 line equations we derive the full look-up table to
    workaround the errata i2128 for j721e SoC.
    
    Tested temperature reading on J721e SoC & J7200 SoC.
    
    [daniel.lezcano@linaro.org: Generate look-up tables run-time]
    Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
    Signed-off-by: default avatarKeerthy <j-keerthy@ti.com>
    Link: https://lore.kernel.org/r/20220517172920.10857-3-j-keerthy@ti.comSigned-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
    ffcb2fc8
k3_j72xx_bandgap.c 13.7 KB