#include <util/delay.h>
#include "serial.h"
#include "i2c.h"
+#include "tda93xx.h"
enum {
IR_CMD_ONOFF = 0x0c,
PEND_VOL = 4
};
-/* TODO
- * IR decoding, connected to PD2
- * enable/disable with switch on PCINT1
- * some of the buttons multiplexed on ADC0
- */
#define PD_IR 2
#define PD_ENSW 3
pending = 0;
sei();
if((pend & PEND_IR) && !(ir_input & 0x8000)) {
- printf("IR addr: %02x cmd: %02x (%04x)\n", (ir_input >> 6) & 0x1f, ir_input & 0x3f, ir_input);
+ if(dbgmode) {
+ printf("IR addr: %02x cmd: %02x (%04x)\n", (ir_input >> 6) & 0x1f, ir_input & 0x3f, ir_input);
+ }
if(((ir_input >> 6) & 0x1f) == 0) { /* TV remote sends IR address 0 */
switch(ir_input & 0x3f) {
{
data[0] = mute ? 0 : volume;
data[1] = 0x1f;
- i2c_write(0x8a, 0x1f, data, 1);
+ /*
+ i2c_write(JADDR, JSUB_VOLUME, data, 1);
i2c_wait();
- i2c_write(0x8a, 0x1c, data + 1, 1);
+ */
+ i2c_write(JADDR, JSUB_SATURATION, data + 1, 1);
i2c_wait();
i2c_hold();
}
s = i2c_isheld() ? STAT_BUSHOLD : 0;
if(enable) s |= STAT_EN;
- i2c_read(0x8a, 0, data, 3);
+ i2c_read(JADDR, JSUB_STAT0, data, 3);
if(s & STAT_BUSHOLD) {
i2c_wait();
i2c_hold();
/* AV switch (22): 0 0 SVO CMB1 CMB0 INA INB 0 */
data[0] = 0x22;
- i2c_write(0x8a, 0x22, data, 1);
+ i2c_write(JADDR, JSUB_AVSWITCH, data, 1);
i2c_async(i2c_hold);
} else if(strcmp(input, "rgb") == 0) {
*/
data[0] = 0x70;
data[1] = 0;
- i2c_write(0x8a, 0x2a, data, 1);
+ i2c_write(JADDR, JSUB_CTRL0, data, 1);
i2c_wait();
- i2c_write(0x8a, 0x2b, data + 1, 1);
+ i2c_write(JADDR, JSUB_CTRL1, data + 1, 1);
} else if(memcmp(input, "vol ", 4) == 0) {
int vol = atoi(input + 4);
printf("ERR vol (%s)\n", input + 4);
} else {
data[0] = vol;
- i2c_write(0x8a, 0x1f, data, 1);
+ i2c_write(JADDR, JSUB_VOLUME, data, 1);
printf("OK volume: %d\n", vol);
}
if(data[0] <= 0 || data[0] > 0x3f) {
data[0] = 0x1f;
}
- i2c_write(0x8a, 0x1c, data, 1);
+ i2c_write(JADDR, JSUB_SATURATION, data, 1);
i2c_async(i2c_hold); /* hold I2C when done */
} else if(strcmp(input, "rel") == 0) {
i2c_release();
} else if(strcmp(input, "status") == 0) {
- i2c_read(0x8a, 0, data, 3);
+ i2c_read(JADDR, JSUB_STAT0, data, 3);
i2c_async(printstat);
} else if(memcmp(input, "rd ", 3) == 0) {