diff options
Diffstat (limited to 'packages/i2c-tools/picodlp-control/picodlp-control.c')
-rw-r--r-- | packages/i2c-tools/picodlp-control/picodlp-control.c | 74 |
1 files changed, 44 insertions, 30 deletions
diff --git a/packages/i2c-tools/picodlp-control/picodlp-control.c b/packages/i2c-tools/picodlp-control/picodlp-control.c index 8120356f7d..313d977f58 100644 --- a/packages/i2c-tools/picodlp-control/picodlp-control.c +++ b/packages/i2c-tools/picodlp-control/picodlp-control.c @@ -31,46 +31,60 @@ #define ADDRESS 0x1a -int -main (int argc, char **argv) +int main(int argc, char **argv) { - int fd = 0; + int fd = 0; - /* Attempt to open I2C device (/dev/i2c-3) */ - fd = open ("/dev/i2c-3", O_RDWR); - if (fd == -1) - { - fprintf (stderr, "Failed to open pico DLP I2C device: %m\n"); - exit (0); - } + /* Attempt to open I2C device (/dev/i2c-3) */ + fd = open("/dev/i2c-3", O_RDWR); + if (fd == -1) { + fprintf(stderr, "Failed to open pico DLP I2C device: %m\n"); + exit(0); + } - /* Set the slave address of type I2C_SLAVE */ - if (ioctl (fd, I2C_SLAVE, ADDRESS) < 0) - { - fprintf (stderr, "Failed to access pico DLp: %m\n"); - exit (0); - } + /* Set the slave address of type I2C_SLAVE */ + if (ioctl(fd, I2C_SLAVE, ADDRESS) < 0) { + fprintf(stderr, "Failed to access pico DLp: %m\n"); + exit(0); + } - /* Attempt to enable checksumming */ - if (ioctl (fd, I2C_PEC, 1) < 0) - { - fprintf (stderr, "Failed to enable PEC\n"); - exit (0); - } + /* Attempt to enable checksumming */ + if (ioctl(fd, I2C_PEC, 1) < 0) { + fprintf(stderr, "Failed to enable PEC\n"); + exit(0); + } - uint16_t hflip; /* The horizontal flip bit */ - uint16_t vflip; /* The vertical flip bit */ + uint16_t hflip; /* The horizontal flip bit */ + uint16_t vflip; /* The vertical flip bit */ - /* Read the status bits for horizontal and vertical vlip */ - hflip = i2c_smbus_read_word_data (fd, 0x08); - vflip = i2c_smbus_read_word_data (fd, 0x09); + /* Read the status bits for horizontal and vertical vlip */ + fprintf(stdout, "Getting flip bits \n"); + hflip = i2c_smbus_read_word_data(fd, 0x08); + vflip = i2c_smbus_read_word_data(fd, 0x09); + /* set flip bits to 0 */ + fprintf(stdout, "Setting flip bits to zero\n"); + i2c_smbus_write_word_data(fd, 0x08, 0); + i2c_smbus_write_word_data(fd, 0x08, 0); + sleep(2); - /* Output the values to stdout */ - fprintf (stdout, "hflip: %d - vflip: %d\n", hflip, vflip); + /* set flip bits to 1 */ + fprintf(stdout, "Getting flip bits to one\n"); + i2c_smbus_write_word_data(fd, 0x08, 1); + i2c_smbus_write_word_data(fd, 0x08, 1); - return 0; + sleep(2); + + /* restore values */ + fprintf(stdout, "Restoring flip bits \n"); + i2c_smbus_write_word_data(fd, 0x08, hflip); + i2c_smbus_write_word_data(fd, 0x08, vflip); + + /* Output the values to stdout */ + fprintf(stdout, "hflip: %d - vflip: %d\n", hflip, vflip); + + return 0; } |