219 | | || 0 || GSC_TP_ENABLE || 1 = Enable Thermal protection || |
| 219 | || 0 || GSC_TP_ENABLE || 1 = Enable Thermal protection || |
| 220 | || 1 || RESERVED || || |
| 221 | || 2 || RESERVED || || |
| 222 | || 3-7 || GSC_TP_LIMIT || Max temp limit additive value. This value is multiplied by 2, then added to 70C. Valid values result in a range of 70-126C || |
| 223 | |
| 224 | For example, to configure a value of 100C use the following formula: |
| 225 | {{{#!bash |
| 226 | bit value = ((target_temp_limit_in_celcius - 70) / 2) << 3 |
| 227 | 0x78 = ((100 - 70) / 2) << 3 |
| 228 | |
| 229 | # In U-Boot: |
| 230 | i2c dev 0; i2c mw 0x20 0x13 0x79 # add 1 for enable bit |
| 231 | }}} |
975 | | This feature is present on: |
976 | | - GW6100-A+ |
977 | | - GW6200-A+ |
978 | | - GW6300-D+ |
979 | | - GW6400-B+ |
| 987 | **Firmware v59+**: For firmware versions v59 and beyond, support has been added to manually set the temperature limit in order to provide better control to customers with boards in varying thermal environments. The top 5 bits in the {{{GSC_THERMAL_PROTECTION}}} register are used to create a specific temperature limit starting at 70C as a minimum. The 5 bit value is multiplied by 2, then added to the base 70C to result in the new temperature limit. A 0 value is defaulted to result in an 86C limit, to support the register settings of older firmware. A max limit of 126C is also enforced, therefore allowing for a total range of {{{72-126C}}}. |
| 988 | |
| 989 | Some bootloader examples showing control of the thermal protection limit: |
| 990 | {{{#!bash |
| 991 | i2c dev 0; i2c mw 0x20 0x13 0x9 # set limit to minimum (72C) |
| 992 | i2c dev 0; i2c mw 0x20 0x13 0x79 # set limit to 100C |
| 993 | i2c dev 0; i2c mw 0x20 0x13 0xf9 # set limit to maximum (126C) |
| 994 | i2c dev 0; i2c mw 0x20 0x13 0x1 # return limit to default (86C) |
| 995 | i2c dev 0; i2c mw 0x20 0x13 0x0 # disable thermal protection limit |
| 996 | }}} |