struct twl4030_i2c_s *s = (struct twl4030_i2c_s *) opaque;\r
\r
switch (addr) {\r
+ case 0x00: /* VENDOR_ID_LO */\r
+ case 0x01: /* VENDOR_ID_HI */\r
+ case 0x02: /* PRODUCT_ID_LO */\r
+ case 0x03: /* PRODUCT_ID_HI */\r
+ return s->reg_data[addr];\r
+ case 0x04: /* FUNC_CTRL */\r
+ case 0x05: /* FUNC_CRTL_SET */\r
+ case 0x06: /* FUNC_CRTL_CLR */\r
+ return s->reg_data[0x04];\r
+ case 0x07: /* IFC_CTRL */\r
+ case 0x08: /* IFC_CRTL_SET */\r
+ case 0x09: /* IFC_CRTL_CLR */\r
+ return s->reg_data[0x07];\r
+ case 0xac: /* POWER_CTRL */\r
+ case 0xad: /* POWER_SET */\r
+ case 0xae: /* POWER_CLR */\r
+ return s->reg_data[0xac];\r
+ case 0xfe: /* PHY_CLK_CTRL */\r
case 0xfd: /* PHY_PWR_CTRL */\r
return s->reg_data[addr];\r
default:\r
\r
static void twl4030_48_write(void *opaque, uint8_t addr, uint8_t value)\r
{\r
- //struct twl4030_i2c_s *s = (struct twl4030_i2c_s *) opaque;\r
+ struct twl4030_i2c_s *s = (struct twl4030_i2c_s *) opaque;\r
\r
switch (addr) {\r
+ case 0x04: /* IFC_CTRL */\r
+ s->reg_data[0x04] = value & 0x80;\r
+ break;\r
+ case 0x05: /* IFC_CRTL_SET */\r
+ s->reg_data[0x04] = (s->reg_data[0x04] | value) & 0x80;\r
+ break;\r
+ case 0x06: /* IFC_CRTL_CLEAR */\r
+ s->reg_data[0x04] = (s->reg_data[0x04] & ~value) & 0x80;\r
+ break;\r
+ case 0x07: /* IFC_CTRL */\r
+ s->reg_data[0x07] = value & 0x61;\r
+ break;\r
+ case 0x08: /* IFC_CRTL_SET */\r
+ s->reg_data[0x07] = (s->reg_data[0x07] | value) & 0x61;\r
+ break;\r
+ case 0x09: /* IFC_CRTL_CLEAR */\r
+ s->reg_data[0x07] = (s->reg_data[0x07] & ~value) & 0x61;\r
+ break;\r
+ case 0xac: /* POWER_CTRL */\r
+ s->reg_data[0xac] = value & 0x20;\r
+ break;\r
+ case 0xad: /* POWER_SET */\r
+ s->reg_data[0xac] = (s->reg_data[0xac] | value) & 0x20;\r
+ break;\r
+ case 0xae: /* POWER_CLEAR */\r
+ s->reg_data[0xac] = (s->reg_data[0xac] & ~value) & 0x20;\r
+ break;\r
+ case 0xfe: /* PHY_CLK_CTRL */\r
+ s->reg_data[addr] = value & 0x7;\r
+ break;\r
+ case 0xfd: /* PHY_PWR_CTRL */\r
+ s->reg_data[addr] = value & 0x1;\r
+ break;\r
default:\r
#ifdef VERBOSE\r
printf("%s: unknown register %02x pc %x \n", __FUNCTION__, addr,cpu_single_env->regs[15] );\r
struct twl4030_i2c_s *s = (struct twl4030_i2c_s *) opaque;\r
\r
switch (addr) {\r
+ case 0x9b: /* GPIODATADIR1 */\r
+ case 0x9c: /* GPIODATADIR2 */\r
+ case 0x9d: /* GPIODATADIR3 */\r
+ case 0x9e: /* GPIODATAOUT1 */\r
+ case 0x9f: /* GPIODATAOUT2 */\r
+ case 0xa0: /* GPIODATAOUT3 */\r
+ case 0xa1: /* CLEARGPIODATAOUT1 */\r
+ case 0xa2: /* CLEARGPIODATAOUT2 */\r
+ case 0xa3: /* CLEARGPIODATAOUT3 */\r
+ case 0xa4: /* SETGPIODATAOUT1 */\r
+ case 0xa5: /* SETGPIODATAOUT2 */\r
+ case 0xa6: /* SETGPIODATAOUT3 */\r
+ case 0xa7: /* GPIO_DEBEN1 */\r
+ case 0xa8: /* GPIO_DEBEN2 */\r
+ case 0xa9: /* GPIO_DEBEN3 */\r
case 0xaa: /* GPIO_CTRL */\r
case 0xab: /* GPIOPUPDCTR1 */\r
case 0xac: /* GPIOPUPDCTR2 */\r