kopia lustrzana https://github.com/pa3gsb/Radioberry-2.x
39 wiersze
928 B
C
39 wiersze
928 B
C
|
|
#include "bias.h"
|
|
#include <sys/ioctl.h>
|
|
|
|
static int fd_i2c_bias;
|
|
static int i2c_bias_handler;
|
|
|
|
|
|
void init_I2C_bias(void) {
|
|
|
|
fd_i2c_bias = open("/dev/i2c-1", O_RDWR);
|
|
|
|
if (fd_i2c_bias < 0 ) {
|
|
fprintf(stderr, "Your SBC device is missing the following driver: '/dev/i2c-1' \n");
|
|
fprintf(stderr, "Change of Bias Setting is not possible\n");
|
|
return ;// fd_i2c_bias;
|
|
}
|
|
i2c_bias_handler = ioctl(fd_i2c_bias, I2C_SLAVE, ADDR_BIAS);
|
|
|
|
if (i2c_bias_handler < 0) close(i2c_bias_handler);
|
|
}
|
|
|
|
void write_I2C_bias(uint8_t control, uint8_t data) {
|
|
|
|
uint8_t bias_data[2];
|
|
bias_data[0] = control;
|
|
bias_data[1] = data;
|
|
|
|
int result = write(fd_i2c_bias, bias_data, 2);
|
|
|
|
if (result == 2) fprintf(stderr, "Write I2C Bias command %02X value= %02X \n", control, bias_data[1]);
|
|
else fprintf(stderr, "Write I2C Bias command failed \n");
|
|
}
|
|
|
|
void close_I2C_bias(void) {
|
|
if (fd_i2c_bias >= 0) close(fd_i2c_bias);
|
|
}
|
|
//end of source
|