| 1 |
|
| 2 | |
| 3 | * Regulator uapi header
|
| 4 | *
|
| 5 | * Author: Naresh Solanki <[email protected]>
|
| 6 |
|
| 7 |
|
| 8 | #ifndef _UAPI_REGULATOR_H
|
| 9 | #define _UAPI_REGULATOR_H
|
| 10 |
|
| 11 | #include <linux/types.h>
|
| 12 |
|
| 13 | |
| 14 | * Regulator notifier events.
|
| 15 | *
|
| 16 | * UNDER_VOLTAGE Regulator output is under voltage.
|
| 17 | * OVER_CURRENT Regulator output current is too high.
|
| 18 | * REGULATION_OUT Regulator output is out of regulation.
|
| 19 | * FAIL Regulator output has failed.
|
| 20 | * OVER_TEMP Regulator over temp.
|
| 21 | * FORCE_DISABLE Regulator forcibly shut down by software.
|
| 22 | * VOLTAGE_CHANGE Regulator voltage changed.
|
| 23 | * Data passed is old voltage cast to (void *).
|
| 24 | * DISABLE Regulator was disabled.
|
| 25 | * PRE_VOLTAGE_CHANGE Regulator is about to have voltage changed.
|
| 26 | * Data passed is "struct pre_voltage_change_data"
|
| 27 | * ABORT_VOLTAGE_CHANGE Regulator voltage change failed for some reason.
|
| 28 | * Data passed is old voltage cast to (void *).
|
| 29 | * PRE_DISABLE Regulator is about to be disabled
|
| 30 | * ABORT_DISABLE Regulator disable failed for some reason
|
| 31 | *
|
| 32 | * NOTE: These events can be OR'ed together when passed into handler.
|
| 33 |
|
| 34 |
|
| 35 | #define REGULATOR_EVENT_UNDER_VOLTAGE 0x01
|
| 36 | #define REGULATOR_EVENT_OVER_CURRENT 0x02
|
| 37 | #define REGULATOR_EVENT_REGULATION_OUT 0x04
|
| 38 | #define REGULATOR_EVENT_FAIL 0x08
|
| 39 | #define REGULATOR_EVENT_OVER_TEMP 0x10
|
| 40 | #define REGULATOR_EVENT_FORCE_DISABLE 0x20
|
| 41 | #define REGULATOR_EVENT_VOLTAGE_CHANGE 0x40
|
| 42 | #define REGULATOR_EVENT_DISABLE 0x80
|
| 43 | #define REGULATOR_EVENT_PRE_VOLTAGE_CHANGE 0x100
|
| 44 | #define REGULATOR_EVENT_ABORT_VOLTAGE_CHANGE 0x200
|
| 45 | #define REGULATOR_EVENT_PRE_DISABLE 0x400
|
| 46 | #define REGULATOR_EVENT_ABORT_DISABLE 0x800
|
| 47 | #define REGULATOR_EVENT_ENABLE 0x1000
|
| 48 | |
| 49 | * Following notifications should be emitted only if detected condition
|
| 50 | * is such that the HW is likely to still be working but consumers should
|
| 51 | * take a recovery action to prevent problems escalating into errors.
|
| 52 |
|
| 53 | #define REGULATOR_EVENT_UNDER_VOLTAGE_WARN 0x2000
|
| 54 | #define REGULATOR_EVENT_OVER_CURRENT_WARN 0x4000
|
| 55 | #define REGULATOR_EVENT_OVER_VOLTAGE_WARN 0x8000
|
| 56 | #define REGULATOR_EVENT_OVER_TEMP_WARN 0x10000
|
| 57 | #define REGULATOR_EVENT_WARN_MASK 0x1E000
|
| 58 |
|
| 59 | struct reg_genl_event {
|
| 60 | char reg_name[32];
|
| 61 | __u64 event;
|
| 62 | };
|
| 63 |
|
| 64 |
|
| 65 | enum {
|
| 66 | REG_GENL_ATTR_UNSPEC,
|
| 67 | REG_GENL_ATTR_EVENT,
|
| 68 | __REG_GENL_ATTR_MAX,
|
| 69 | };
|
| 70 |
|
| 71 | #define REG_GENL_ATTR_MAX (__REG_GENL_ATTR_MAX - 1)
|
| 72 |
|
| 73 |
|
| 74 | enum {
|
| 75 | REG_GENL_CMD_UNSPEC,
|
| 76 | REG_GENL_CMD_EVENT,
|
| 77 | __REG_GENL_CMD_MAX,
|
| 78 | };
|
| 79 |
|
| 80 | #define REG_GENL_CMD_MAX (__REG_GENL_CMD_MAX - 1)
|
| 81 |
|
| 82 | #define REG_GENL_FAMILY_NAME "reg_event"
|
| 83 | #define REG_GENL_VERSION 0x01
|
| 84 | #define REG_GENL_MCAST_GROUP_NAME "reg_mc_group"
|
| 85 |
|
| 86 | #endif
|