void sh7785lcr_macdtrd(unsigned char *buf, unsigned short address, unsigned int count) { unsigned int i; unsigned short wk; for (i = 0 ; i < count; i++) { EECS(HIGH); EEDI(LOW); mac_delay(TIME1); sh7785lcr_setcmd(MAC_EEP_READ); sh7785lcr_setadd(address++); wk = sh7785lcr_getdt(); *buf++ = (unsigned char)(wk & 0xff); *buf++ = (unsigned char)((wk >> 8) & 0xff); EECLK(LOW); EEDI(LOW); EECS(LOW); } }
static void sh7785lcr_datawrite(const unsigned short *data, unsigned short address, unsigned int count) { unsigned int i; for (i = 0; i < count; i++) { EECS(HIGH); EEDI(LOW); mac_delay(TIME1); sh7785lcr_setcmd(MAC_EEP_WRITE); sh7785lcr_setadd(address++); sh7785lcr_setdata(*(data + i)); EECLK(LOW); EEDI(LOW); EECS(LOW); mac_delay(TIME2); } }
static void sh7785lcr_eepewen(void) { *PCI_MEMR = PCI_PROG; mac_delay(TIME1); EECS(LOW); EECLK(LOW); EEDI(LOW); EECS(HIGH); mac_delay(TIME1); sh7785lcr_setcmd(MAC_EEP_EWEN); sh7785lcr_bitset(1); sh7785lcr_bitset(1); sh7785lcr_bitset(BIT_DUMMY); sh7785lcr_bitset(BIT_DUMMY); sh7785lcr_bitset(BIT_DUMMY); sh7785lcr_bitset(BIT_DUMMY); EECLK(LOW); EEDI(LOW); EECS(LOW); mac_delay(TIME1); }
static void sh7785lcr_macerase(void) { unsigned int i; unsigned short pci_address = 7; for (i = 0; i < 3; i++) { EECS(HIGH); EEDI(LOW); mac_delay(TIME1); sh7785lcr_setcmd(MAC_EEP_ERACE); sh7785lcr_setadd(pci_address++); mac_delay(TIME1); EECLK(LOW); EEDI(LOW); EECS(LOW); } mac_delay(TIME2); printf("\n\nErace End\n"); for (i = 0; i < 10; i++) mac_delay(TIME2); }