| .. | .. |
|---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-or-later */ |
|---|
| 1 | 2 | /* |
|---|
| 2 | | - lm75.h - Part of lm_sensors, Linux kernel modules for hardware |
|---|
| 3 | | - monitoring |
|---|
| 4 | | - Copyright (c) 2003 Mark M. Hoffman <mhoffman@lightlink.com> |
|---|
| 5 | | - |
|---|
| 6 | | - This program is free software; you can redistribute it and/or modify |
|---|
| 7 | | - it under the terms of the GNU General Public License as published by |
|---|
| 8 | | - the Free Software Foundation; either version 2 of the License, or |
|---|
| 9 | | - (at your option) any later version. |
|---|
| 10 | | - |
|---|
| 11 | | - This program is distributed in the hope that it will be useful, |
|---|
| 12 | | - but WITHOUT ANY WARRANTY; without even the implied warranty of |
|---|
| 13 | | - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|---|
| 14 | | - GNU General Public License for more details. |
|---|
| 15 | | - |
|---|
| 16 | | - You should have received a copy of the GNU General Public License |
|---|
| 17 | | - along with this program; if not, write to the Free Software |
|---|
| 18 | | - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
|---|
| 19 | | -*/ |
|---|
| 3 | + * lm75.h - Part of lm_sensors, Linux kernel modules for hardware monitoring |
|---|
| 4 | + * Copyright (c) 2003 Mark M. Hoffman <mhoffman@lightlink.com> |
|---|
| 5 | + */ |
|---|
| 20 | 6 | |
|---|
| 21 | 7 | /* |
|---|
| 22 | | - This file contains common code for encoding/decoding LM75 type |
|---|
| 23 | | - temperature readings, which are emulated by many of the chips |
|---|
| 24 | | - we support. As the user is unlikely to load more than one driver |
|---|
| 25 | | - which contains this code, we don't worry about the wasted space. |
|---|
| 26 | | -*/ |
|---|
| 8 | + * This file contains common code for encoding/decoding LM75 type |
|---|
| 9 | + * temperature readings, which are emulated by many of the chips |
|---|
| 10 | + * we support. As the user is unlikely to load more than one driver |
|---|
| 11 | + * which contains this code, we don't worry about the wasted space. |
|---|
| 12 | + */ |
|---|
| 27 | 13 | |
|---|
| 28 | 14 | #include <linux/kernel.h> |
|---|
| 29 | 15 | |
|---|
| .. | .. |
|---|
| 32 | 18 | #define LM75_TEMP_MAX 125000 |
|---|
| 33 | 19 | #define LM75_SHUTDOWN 0x01 |
|---|
| 34 | 20 | |
|---|
| 35 | | -/* TEMP: 0.001C/bit (-55C to +125C) |
|---|
| 36 | | - REG: (0.5C/bit, two's complement) << 7 */ |
|---|
| 21 | +/* |
|---|
| 22 | + * TEMP: 0.001C/bit (-55C to +125C) |
|---|
| 23 | + * REG: (0.5C/bit, two's complement) << 7 |
|---|
| 24 | + */ |
|---|
| 37 | 25 | static inline u16 LM75_TEMP_TO_REG(long temp) |
|---|
| 38 | 26 | { |
|---|
| 39 | 27 | int ntemp = clamp_val(temp, LM75_TEMP_MIN, LM75_TEMP_MAX); |
|---|
| 28 | + |
|---|
| 40 | 29 | ntemp += (ntemp < 0 ? -250 : 250); |
|---|
| 41 | 30 | return (u16)((ntemp / 500) << 7); |
|---|
| 42 | 31 | } |
|---|
| 43 | 32 | |
|---|
| 44 | 33 | static inline int LM75_TEMP_FROM_REG(u16 reg) |
|---|
| 45 | 34 | { |
|---|
| 46 | | - /* use integer division instead of equivalent right shift to |
|---|
| 47 | | - guarantee arithmetic shift and preserve the sign */ |
|---|
| 35 | + /* |
|---|
| 36 | + * use integer division instead of equivalent right shift to |
|---|
| 37 | + * guarantee arithmetic shift and preserve the sign |
|---|
| 38 | + */ |
|---|
| 48 | 39 | return ((s16)reg / 128) * 500; |
|---|
| 49 | 40 | } |
|---|