mirror of
https://github.com/Dasharo/skiboot.git
synced 2026-03-06 14:50:44 -08:00
49496485fe
SPDX makes it a simpler diff. I have audited the commit history of each file to ensure that they are exclusively authored by IBM and thus we have the right to relicense. The motivation behind this is twofold: 1) We want to enable experiments with coreboot, which is GPLv2 licensed 2) An upcoming firmware component wants to incorporate code from skiboot and code from the Linux kernel, which is GPLv2 licensed. I have gone through the IBM internal way of gaining approval for this. The following files are not exclusively authored by IBM, so are *not* included in this update (I will be seeking approval from contributors): core/direct-controls.c core/flash.c core/pcie-slot.c external/common/arch_flash_unknown.c external/common/rules.mk external/gard/Makefile external/gard/rules.mk external/opal-prd/Makefile external/pflash/Makefile external/xscom-utils/Makefile hdata/vpd.c hw/dts.c hw/ipmi/ipmi-watchdog.c hw/phb4.c include/cpu.h include/phb4.h include/platform.h libflash/libffs.c libstb/mbedtls/sha512.c libstb/mbedtls/sha512.h platforms/astbmc/barreleye.c platforms/astbmc/garrison.c platforms/astbmc/mihawk.c platforms/astbmc/nicole.c platforms/astbmc/p8dnu.c platforms/astbmc/p8dtu.c platforms/astbmc/p9dsu.c platforms/astbmc/vesnin.c platforms/rhesus/ec/config.h platforms/rhesus/ec/gpio.h platforms/rhesus/gpio.c platforms/rhesus/rhesus.c platforms/astbmc/talos.c platforms/astbmc/romulus.c Signed-off-by: Stewart Smith <stewart@linux.ibm.com> [oliver: fixed up the drift] Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
56 lines
1.5 KiB
C
56 lines
1.5 KiB
C
// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
|
|
/* Copyright 2013-2017 IBM Corp. */
|
|
|
|
#ifndef __SENSOR_H
|
|
#define __SENSOR_H
|
|
|
|
/*
|
|
* A sensor handler is a four bytes value which identifies a sensor by
|
|
* its resource class (temperature, fans ...), a resource identifier
|
|
* and an attribute number (data, status, ...) :
|
|
*
|
|
* Res.
|
|
* | Attr. |Fam Class| Resource Id |
|
|
* |--------|---|-----|----------------|
|
|
*
|
|
* The last 3bits of the resource class are used to hold the family
|
|
* number. That leaves 32 differents resource classes. This is enough
|
|
* for the FSP as it uses 15.
|
|
*/
|
|
|
|
/*
|
|
* Helper routines to build or use the sensor handler.
|
|
*/
|
|
#define sensor_make_handler(family, class, rid, attr) \
|
|
(((attr) << 24) | ((family) & 0x7) << 21 | ((class) & 0x1f) << 16 | \
|
|
((rid) & 0xffff))
|
|
|
|
#define sensor_get_family(handler) (((handler) >> 21) & 0x7)
|
|
#define sensor_get_frc(handler) (((handler) >> 16) & 0x1f)
|
|
#define sensor_get_rid(handler) ((handler) & 0xffff)
|
|
#define sensor_get_attr(handler) ((handler) >> 24)
|
|
|
|
/*
|
|
* Sensor families
|
|
*
|
|
* This identifier is used to dispatch calls to OPAL_SENSOR_READ to
|
|
* the appropriate component. FSP is the initial family and you can
|
|
* have up to eight, as we are hijacking the last 3bits of the
|
|
* resource class.
|
|
*/
|
|
enum {
|
|
SENSOR_FSP = 0,
|
|
SENSOR_OCC = 6,
|
|
SENSOR_DTS = 7,
|
|
};
|
|
|
|
/*
|
|
* root node of all sensors : /ibm,opal/sensors
|
|
*/
|
|
extern struct dt_node *sensor_node;
|
|
|
|
extern void sensor_init(void);
|
|
extern void check_sensor_read(int token);
|
|
|
|
#endif /* __SENSOR_H */
|