aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bts-sysmo/misc/sysmobts_misc.h
blob: c22a54b2ebe5b104cb37e01fe366e724a7779c8f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#ifndef _SYSMOBTS_MISC_H
#define _SYSMOBTS_MISC_H

enum sysmobts_temp_sensor {
	SYSMOBTS_TEMP_DIGITAL = 1,
	SYSMOBTS_TEMP_RF = 2,
};

enum sysmobts_temp_type {
	SYSMOBTS_TEMP_INPUT,
	SYSMOBTS_TEMP_LOWEST,
	SYSMOBTS_TEMP_HIGHEST,
	_NUM_TEMP_TYPES
};

enum sbts2050_status_rqt {
	SBTS2050_STATUS_MASTER,
	SBTS2050_STATUS_SLAVE,
	SBTS2050_STATUS_PA
};

struct uc {
	int id;
	int fd;
	const char *path;
};

struct ucinfo {
	uint16_t id;
	int master;
	int slave;
	int pa;
};

enum sbts2050_alert_lvl {
	SBTS2050_WARN_ALERT,
	SBTS2050_SEVERE_ALERT
};

enum sbts2050_temp_sensor {
	SBTS2050_TEMP_BOARD,
	SBTS2050_TEMP_PA
};

struct sbts2050_config_info {
	char name_sensor[8];
	int temp_max_pa_warn_limit;
	int temp_min_pa_warn_limit;
	int temp_max_pa_severe_limit;
	int temp_min_pa_severe_limit;
	int temp_max_board_warn_limit;
	int temp_min_board_warn_limit;
	int temp_max_board_severe_limit;
	int temp_min_board_severe_limit;
	int reduce_max_power;
	int slave_power_act;
	int master_power_act;
	int pa_power_act;
	int temp_pa_cur;
	int temp_board_cur;
};

int sysmobts_temp_get(enum sysmobts_temp_sensor sensor,
		      enum sysmobts_temp_type type);

void sysmobts_check_temp(int no_eeprom_write);

void sbts2050_uc_check_temp(struct uc *ucontrol, int *temp_pa, int *temp_board);

void sbts2050_uc_power(struct uc *ucontrol, int pmaster, int pslave, int ppa);

int sbts2050_uc_status(struct uc *ucontrol, enum sbts2050_status_rqt status);

int send_omlfailure(int fd_unix, enum sbts2050_alert_lvl alert,
		   enum sbts2050_temp_sensor sensor,
		   struct sbts2050_config_info *add_info, int trx_nr);

int sysmobts_update_hours(int no_epprom_write);

enum sysmobts_firmware_type {
	SYSMOBTS_FW_FPGA,
	SYSMOBTS_FW_DSP,
	_NUM_FW
};

int sysmobts_firmware_reload(enum sysmobts_firmware_type type);

#endif