Make PMC handling slightly faster
This commit is contained in:
parent
d16ecc6129
commit
277ad664a2
@ -58,18 +58,8 @@ void pmc_event(struct Pmc * pmc) {
|
|||||||
static uint8_t state_data = 0;
|
static uint8_t state_data = 0;
|
||||||
|
|
||||||
uint8_t sts = pmc_status(pmc);
|
uint8_t sts = pmc_status(pmc);
|
||||||
if (!(sts & PMC_STS_OBF)) {
|
|
||||||
switch (state) {
|
// Read command/data if available
|
||||||
case PMC_STATE_WRITE:
|
|
||||||
DEBUG("pmc write: %02X\n", state_data);
|
|
||||||
state = PMC_STATE_DEFAULT;
|
|
||||||
pmc_write(pmc, state_data);
|
|
||||||
// Send SCI for OBF=1
|
|
||||||
pmc_sci_interrupt();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sts & PMC_STS_IBF) {
|
if (sts & PMC_STS_IBF) {
|
||||||
uint8_t data = pmc_read(pmc);
|
uint8_t data = pmc_read(pmc);
|
||||||
if (sts & PMC_STS_CMD) {
|
if (sts & PMC_STS_CMD) {
|
||||||
@ -146,4 +136,17 @@ void pmc_event(struct Pmc * pmc) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Write data if possible
|
||||||
|
if (!(sts & PMC_STS_OBF)) {
|
||||||
|
switch (state) {
|
||||||
|
case PMC_STATE_WRITE:
|
||||||
|
DEBUG("pmc write: %02X\n", state_data);
|
||||||
|
state = PMC_STATE_DEFAULT;
|
||||||
|
pmc_write(pmc, state_data);
|
||||||
|
// Send SCI for OBF=1
|
||||||
|
pmc_sci_interrupt();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -58,18 +58,8 @@ void pmc_event(struct Pmc * pmc) {
|
|||||||
static uint8_t state_data = 0;
|
static uint8_t state_data = 0;
|
||||||
|
|
||||||
uint8_t sts = pmc_status(pmc);
|
uint8_t sts = pmc_status(pmc);
|
||||||
if (!(sts & PMC_STS_OBF)) {
|
|
||||||
switch (state) {
|
// Read command/data if available
|
||||||
case PMC_STATE_WRITE:
|
|
||||||
DEBUG("pmc write: %02X\n", state_data);
|
|
||||||
state = PMC_STATE_DEFAULT;
|
|
||||||
pmc_write(pmc, state_data);
|
|
||||||
// Send SCI for OBF=1
|
|
||||||
pmc_sci_interrupt();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sts & PMC_STS_IBF) {
|
if (sts & PMC_STS_IBF) {
|
||||||
uint8_t data = pmc_read(pmc);
|
uint8_t data = pmc_read(pmc);
|
||||||
if (sts & PMC_STS_CMD) {
|
if (sts & PMC_STS_CMD) {
|
||||||
@ -146,4 +136,17 @@ void pmc_event(struct Pmc * pmc) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Write data if possible
|
||||||
|
if (!(sts & PMC_STS_OBF)) {
|
||||||
|
switch (state) {
|
||||||
|
case PMC_STATE_WRITE:
|
||||||
|
DEBUG("pmc write: %02X\n", state_data);
|
||||||
|
state = PMC_STATE_DEFAULT;
|
||||||
|
pmc_write(pmc, state_data);
|
||||||
|
// Send SCI for OBF=1
|
||||||
|
pmc_sci_interrupt();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -58,18 +58,8 @@ void pmc_event(struct Pmc * pmc) {
|
|||||||
static uint8_t state_data = 0;
|
static uint8_t state_data = 0;
|
||||||
|
|
||||||
uint8_t sts = pmc_status(pmc);
|
uint8_t sts = pmc_status(pmc);
|
||||||
if (!(sts & PMC_STS_OBF)) {
|
|
||||||
switch (state) {
|
// Read command/data if available
|
||||||
case PMC_STATE_WRITE:
|
|
||||||
DEBUG("pmc write: %02X\n", state_data);
|
|
||||||
state = PMC_STATE_DEFAULT;
|
|
||||||
pmc_write(pmc, state_data);
|
|
||||||
// Send SCI for OBF=1
|
|
||||||
pmc_sci_interrupt();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sts & PMC_STS_IBF) {
|
if (sts & PMC_STS_IBF) {
|
||||||
uint8_t data = pmc_read(pmc);
|
uint8_t data = pmc_read(pmc);
|
||||||
if (sts & PMC_STS_CMD) {
|
if (sts & PMC_STS_CMD) {
|
||||||
@ -146,4 +136,17 @@ void pmc_event(struct Pmc * pmc) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Write data if possible
|
||||||
|
if (!(sts & PMC_STS_OBF)) {
|
||||||
|
switch (state) {
|
||||||
|
case PMC_STATE_WRITE:
|
||||||
|
DEBUG("pmc write: %02X\n", state_data);
|
||||||
|
state = PMC_STATE_DEFAULT;
|
||||||
|
pmc_write(pmc, state_data);
|
||||||
|
// Send SCI for OBF=1
|
||||||
|
pmc_sci_interrupt();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user