diff --git a/src/ec/it8587e/include/ec/gctrl.h b/src/ec/it8587e/include/ec/gctrl.h index a2a86bf..28882c2 100644 --- a/src/ec/it8587e/include/ec/gctrl.h +++ b/src/ec/it8587e/include/ec/gctrl.h @@ -3,8 +3,8 @@ #include -__xdata volatile uint8_t __at(0x2006) RSTS; -__xdata volatile uint8_t __at(0x200A) BADRSEL; -__xdata volatile uint8_t __at(0x200D) SPCTRL1; +volatile uint8_t __xdata __at(0x2006) RSTS; +volatile uint8_t __xdata __at(0x200A) BADRSEL; +volatile uint8_t __xdata __at(0x200D) SPCTRL1; #endif // _EC_GCTRL_H diff --git a/src/ec/it8587e/include/ec/gpio.h b/src/ec/it8587e/include/ec/gpio.h index c1c2534..4e104eb 100644 --- a/src/ec/it8587e/include/ec/gpio.h +++ b/src/ec/it8587e/include/ec/gpio.h @@ -5,9 +5,9 @@ #include struct Gpio { - __xdata volatile uint8_t * data; - __xdata volatile uint8_t * mirror; - __xdata volatile uint8_t * control; + volatile uint8_t __xdata * data; + volatile uint8_t __xdata * mirror; + volatile uint8_t __xdata * control; uint8_t value; }; @@ -21,140 +21,140 @@ struct Gpio { bool gpio_get(struct Gpio * gpio); void gpio_set(struct Gpio * gpio, bool value); -__xdata volatile uint8_t __at(0x1600) GCR; +volatile uint8_t __xdata __at(0x1600) GCR; -__xdata volatile uint8_t __at(0x1601) GPDRA; -__xdata volatile uint8_t __at(0x1602) GPDRB; -__xdata volatile uint8_t __at(0x1603) GPDRC; -__xdata volatile uint8_t __at(0x1604) GPDRD; -__xdata volatile uint8_t __at(0x1605) GPDRE; -__xdata volatile uint8_t __at(0x1606) GPDRF; -__xdata volatile uint8_t __at(0x1607) GPDRG; -__xdata volatile uint8_t __at(0x1608) GPDRH; -__xdata volatile uint8_t __at(0x1609) GPDRI; -__xdata volatile uint8_t __at(0x160A) GPDRJ; -__xdata volatile uint8_t __at(0x160D) GPDRM; +volatile uint8_t __xdata __at(0x1601) GPDRA; +volatile uint8_t __xdata __at(0x1602) GPDRB; +volatile uint8_t __xdata __at(0x1603) GPDRC; +volatile uint8_t __xdata __at(0x1604) GPDRD; +volatile uint8_t __xdata __at(0x1605) GPDRE; +volatile uint8_t __xdata __at(0x1606) GPDRF; +volatile uint8_t __xdata __at(0x1607) GPDRG; +volatile uint8_t __xdata __at(0x1608) GPDRH; +volatile uint8_t __xdata __at(0x1609) GPDRI; +volatile uint8_t __xdata __at(0x160A) GPDRJ; +volatile uint8_t __xdata __at(0x160D) GPDRM; -__xdata volatile uint8_t __at(0x1661) GPDMRA; -__xdata volatile uint8_t __at(0x1662) GPDMRB; -__xdata volatile uint8_t __at(0x1663) GPDMRC; -__xdata volatile uint8_t __at(0x1664) GPDMRD; -__xdata volatile uint8_t __at(0x1665) GPDMRE; -__xdata volatile uint8_t __at(0x1666) GPDMRF; -__xdata volatile uint8_t __at(0x1667) GPDMRG; -__xdata volatile uint8_t __at(0x1668) GPDMRH; -__xdata volatile uint8_t __at(0x1669) GPDMRI; -__xdata volatile uint8_t __at(0x166A) GPDMRJ; -__xdata volatile uint8_t __at(0x166D) GPDMRM; +volatile uint8_t __xdata __at(0x1661) GPDMRA; +volatile uint8_t __xdata __at(0x1662) GPDMRB; +volatile uint8_t __xdata __at(0x1663) GPDMRC; +volatile uint8_t __xdata __at(0x1664) GPDMRD; +volatile uint8_t __xdata __at(0x1665) GPDMRE; +volatile uint8_t __xdata __at(0x1666) GPDMRF; +volatile uint8_t __xdata __at(0x1667) GPDMRG; +volatile uint8_t __xdata __at(0x1668) GPDMRH; +volatile uint8_t __xdata __at(0x1669) GPDMRI; +volatile uint8_t __xdata __at(0x166A) GPDMRJ; +volatile uint8_t __xdata __at(0x166D) GPDMRM; -__xdata volatile uint8_t __at(0x1671) GPOTA; -__xdata volatile uint8_t __at(0x1672) GPOTB; -__xdata volatile uint8_t __at(0x1673) GPOTC; -__xdata volatile uint8_t __at(0x1674) GPOTD; -__xdata volatile uint8_t __at(0x1675) GPOTE; -__xdata volatile uint8_t __at(0x1676) GPOTF; -__xdata volatile uint8_t __at(0x1677) GPOTG; -__xdata volatile uint8_t __at(0x1678) GPOTH; -__xdata volatile uint8_t __at(0x1679) GPOTI; -__xdata volatile uint8_t __at(0x167A) GPOTJ; +volatile uint8_t __xdata __at(0x1671) GPOTA; +volatile uint8_t __xdata __at(0x1672) GPOTB; +volatile uint8_t __xdata __at(0x1673) GPOTC; +volatile uint8_t __xdata __at(0x1674) GPOTD; +volatile uint8_t __xdata __at(0x1675) GPOTE; +volatile uint8_t __xdata __at(0x1676) GPOTF; +volatile uint8_t __xdata __at(0x1677) GPOTG; +volatile uint8_t __xdata __at(0x1678) GPOTH; +volatile uint8_t __xdata __at(0x1679) GPOTI; +volatile uint8_t __xdata __at(0x167A) GPOTJ; // GPOTM does not exist -__xdata volatile uint8_t __at(0x1610) GPCRA0; -__xdata volatile uint8_t __at(0x1611) GPCRA1; -__xdata volatile uint8_t __at(0x1612) GPCRA2; -__xdata volatile uint8_t __at(0x1613) GPCRA3; -__xdata volatile uint8_t __at(0x1614) GPCRA4; -__xdata volatile uint8_t __at(0x1615) GPCRA5; -__xdata volatile uint8_t __at(0x1616) GPCRA6; -__xdata volatile uint8_t __at(0x1617) GPCRA7; +volatile uint8_t __xdata __at(0x1610) GPCRA0; +volatile uint8_t __xdata __at(0x1611) GPCRA1; +volatile uint8_t __xdata __at(0x1612) GPCRA2; +volatile uint8_t __xdata __at(0x1613) GPCRA3; +volatile uint8_t __xdata __at(0x1614) GPCRA4; +volatile uint8_t __xdata __at(0x1615) GPCRA5; +volatile uint8_t __xdata __at(0x1616) GPCRA6; +volatile uint8_t __xdata __at(0x1617) GPCRA7; -__xdata volatile uint8_t __at(0x1618) GPCRB0; -__xdata volatile uint8_t __at(0x1619) GPCRB1; -__xdata volatile uint8_t __at(0x161A) GPCRB2; -__xdata volatile uint8_t __at(0x161B) GPCRB3; -__xdata volatile uint8_t __at(0x161C) GPCRB4; -__xdata volatile uint8_t __at(0x161D) GPCRB5; -__xdata volatile uint8_t __at(0x161E) GPCRB6; -__xdata volatile uint8_t __at(0x161F) GPCRB7; +volatile uint8_t __xdata __at(0x1618) GPCRB0; +volatile uint8_t __xdata __at(0x1619) GPCRB1; +volatile uint8_t __xdata __at(0x161A) GPCRB2; +volatile uint8_t __xdata __at(0x161B) GPCRB3; +volatile uint8_t __xdata __at(0x161C) GPCRB4; +volatile uint8_t __xdata __at(0x161D) GPCRB5; +volatile uint8_t __xdata __at(0x161E) GPCRB6; +volatile uint8_t __xdata __at(0x161F) GPCRB7; -__xdata volatile uint8_t __at(0x1620) GPCRC0; -__xdata volatile uint8_t __at(0x1621) GPCRC1; -__xdata volatile uint8_t __at(0x1622) GPCRC2; -__xdata volatile uint8_t __at(0x1623) GPCRC3; -__xdata volatile uint8_t __at(0x1624) GPCRC4; -__xdata volatile uint8_t __at(0x1625) GPCRC5; -__xdata volatile uint8_t __at(0x1626) GPCRC6; -__xdata volatile uint8_t __at(0x1627) GPCRC7; +volatile uint8_t __xdata __at(0x1620) GPCRC0; +volatile uint8_t __xdata __at(0x1621) GPCRC1; +volatile uint8_t __xdata __at(0x1622) GPCRC2; +volatile uint8_t __xdata __at(0x1623) GPCRC3; +volatile uint8_t __xdata __at(0x1624) GPCRC4; +volatile uint8_t __xdata __at(0x1625) GPCRC5; +volatile uint8_t __xdata __at(0x1626) GPCRC6; +volatile uint8_t __xdata __at(0x1627) GPCRC7; -__xdata volatile uint8_t __at(0x1628) GPCRD0; -__xdata volatile uint8_t __at(0x1629) GPCRD1; -__xdata volatile uint8_t __at(0x162A) GPCRD2; -__xdata volatile uint8_t __at(0x162B) GPCRD3; -__xdata volatile uint8_t __at(0x162C) GPCRD4; -__xdata volatile uint8_t __at(0x162D) GPCRD5; -__xdata volatile uint8_t __at(0x162E) GPCRD6; -__xdata volatile uint8_t __at(0x162F) GPCRD7; +volatile uint8_t __xdata __at(0x1628) GPCRD0; +volatile uint8_t __xdata __at(0x1629) GPCRD1; +volatile uint8_t __xdata __at(0x162A) GPCRD2; +volatile uint8_t __xdata __at(0x162B) GPCRD3; +volatile uint8_t __xdata __at(0x162C) GPCRD4; +volatile uint8_t __xdata __at(0x162D) GPCRD5; +volatile uint8_t __xdata __at(0x162E) GPCRD6; +volatile uint8_t __xdata __at(0x162F) GPCRD7; -__xdata volatile uint8_t __at(0x1630) GPCRE0; -__xdata volatile uint8_t __at(0x1631) GPCRE1; -__xdata volatile uint8_t __at(0x1632) GPCRE2; -__xdata volatile uint8_t __at(0x1633) GPCRE3; -__xdata volatile uint8_t __at(0x1634) GPCRE4; -__xdata volatile uint8_t __at(0x1635) GPCRE5; -__xdata volatile uint8_t __at(0x1636) GPCRE6; -__xdata volatile uint8_t __at(0x1637) GPCRE7; +volatile uint8_t __xdata __at(0x1630) GPCRE0; +volatile uint8_t __xdata __at(0x1631) GPCRE1; +volatile uint8_t __xdata __at(0x1632) GPCRE2; +volatile uint8_t __xdata __at(0x1633) GPCRE3; +volatile uint8_t __xdata __at(0x1634) GPCRE4; +volatile uint8_t __xdata __at(0x1635) GPCRE5; +volatile uint8_t __xdata __at(0x1636) GPCRE6; +volatile uint8_t __xdata __at(0x1637) GPCRE7; -__xdata volatile uint8_t __at(0x1638) GPCRF0; -__xdata volatile uint8_t __at(0x1639) GPCRF1; -__xdata volatile uint8_t __at(0x163A) GPCRF2; -__xdata volatile uint8_t __at(0x163B) GPCRF3; -__xdata volatile uint8_t __at(0x163C) GPCRF4; -__xdata volatile uint8_t __at(0x163D) GPCRF5; -__xdata volatile uint8_t __at(0x163E) GPCRF6; -__xdata volatile uint8_t __at(0x163F) GPCRF7; +volatile uint8_t __xdata __at(0x1638) GPCRF0; +volatile uint8_t __xdata __at(0x1639) GPCRF1; +volatile uint8_t __xdata __at(0x163A) GPCRF2; +volatile uint8_t __xdata __at(0x163B) GPCRF3; +volatile uint8_t __xdata __at(0x163C) GPCRF4; +volatile uint8_t __xdata __at(0x163D) GPCRF5; +volatile uint8_t __xdata __at(0x163E) GPCRF6; +volatile uint8_t __xdata __at(0x163F) GPCRF7; -__xdata volatile uint8_t __at(0x1640) GPCRG0; -__xdata volatile uint8_t __at(0x1641) GPCRG1; -__xdata volatile uint8_t __at(0x1642) GPCRG2; -__xdata volatile uint8_t __at(0x1643) GPCRG3; -__xdata volatile uint8_t __at(0x1644) GPCRG4; -__xdata volatile uint8_t __at(0x1645) GPCRG5; -__xdata volatile uint8_t __at(0x1646) GPCRG6; -__xdata volatile uint8_t __at(0x1647) GPCRG7; +volatile uint8_t __xdata __at(0x1640) GPCRG0; +volatile uint8_t __xdata __at(0x1641) GPCRG1; +volatile uint8_t __xdata __at(0x1642) GPCRG2; +volatile uint8_t __xdata __at(0x1643) GPCRG3; +volatile uint8_t __xdata __at(0x1644) GPCRG4; +volatile uint8_t __xdata __at(0x1645) GPCRG5; +volatile uint8_t __xdata __at(0x1646) GPCRG6; +volatile uint8_t __xdata __at(0x1647) GPCRG7; -__xdata volatile uint8_t __at(0x1648) GPCRH0; -__xdata volatile uint8_t __at(0x1649) GPCRH1; -__xdata volatile uint8_t __at(0x164A) GPCRH2; -__xdata volatile uint8_t __at(0x164B) GPCRH3; -__xdata volatile uint8_t __at(0x164C) GPCRH4; -__xdata volatile uint8_t __at(0x164D) GPCRH5; -__xdata volatile uint8_t __at(0x164E) GPCRH6; -__xdata volatile uint8_t __at(0x164F) GPCRH7; +volatile uint8_t __xdata __at(0x1648) GPCRH0; +volatile uint8_t __xdata __at(0x1649) GPCRH1; +volatile uint8_t __xdata __at(0x164A) GPCRH2; +volatile uint8_t __xdata __at(0x164B) GPCRH3; +volatile uint8_t __xdata __at(0x164C) GPCRH4; +volatile uint8_t __xdata __at(0x164D) GPCRH5; +volatile uint8_t __xdata __at(0x164E) GPCRH6; +volatile uint8_t __xdata __at(0x164F) GPCRH7; -__xdata volatile uint8_t __at(0x1650) GPCRI0; -__xdata volatile uint8_t __at(0x1651) GPCRI1; -__xdata volatile uint8_t __at(0x1652) GPCRI2; -__xdata volatile uint8_t __at(0x1653) GPCRI3; -__xdata volatile uint8_t __at(0x1654) GPCRI4; -__xdata volatile uint8_t __at(0x1655) GPCRI5; -__xdata volatile uint8_t __at(0x1656) GPCRI6; -__xdata volatile uint8_t __at(0x1657) GPCRI7; +volatile uint8_t __xdata __at(0x1650) GPCRI0; +volatile uint8_t __xdata __at(0x1651) GPCRI1; +volatile uint8_t __xdata __at(0x1652) GPCRI2; +volatile uint8_t __xdata __at(0x1653) GPCRI3; +volatile uint8_t __xdata __at(0x1654) GPCRI4; +volatile uint8_t __xdata __at(0x1655) GPCRI5; +volatile uint8_t __xdata __at(0x1656) GPCRI6; +volatile uint8_t __xdata __at(0x1657) GPCRI7; -__xdata volatile uint8_t __at(0x1658) GPCRJ0; -__xdata volatile uint8_t __at(0x1659) GPCRJ1; -__xdata volatile uint8_t __at(0x165A) GPCRJ2; -__xdata volatile uint8_t __at(0x165B) GPCRJ3; -__xdata volatile uint8_t __at(0x165C) GPCRJ4; -__xdata volatile uint8_t __at(0x165D) GPCRJ5; -__xdata volatile uint8_t __at(0x165E) GPCRJ6; -__xdata volatile uint8_t __at(0x165F) GPCRJ7; +volatile uint8_t __xdata __at(0x1658) GPCRJ0; +volatile uint8_t __xdata __at(0x1659) GPCRJ1; +volatile uint8_t __xdata __at(0x165A) GPCRJ2; +volatile uint8_t __xdata __at(0x165B) GPCRJ3; +volatile uint8_t __xdata __at(0x165C) GPCRJ4; +volatile uint8_t __xdata __at(0x165D) GPCRJ5; +volatile uint8_t __xdata __at(0x165E) GPCRJ6; +volatile uint8_t __xdata __at(0x165F) GPCRJ7; -__xdata volatile uint8_t __at(0x16A0) GPCRM0; -__xdata volatile uint8_t __at(0x16A1) GPCRM1; -__xdata volatile uint8_t __at(0x16A2) GPCRM2; -__xdata volatile uint8_t __at(0x16A3) GPCRM3; -__xdata volatile uint8_t __at(0x16A4) GPCRM4; -__xdata volatile uint8_t __at(0x16A5) GPCRM5; -__xdata volatile uint8_t __at(0x16A6) GPCRM6; +volatile uint8_t __xdata __at(0x16A0) GPCRM0; +volatile uint8_t __xdata __at(0x16A1) GPCRM1; +volatile uint8_t __xdata __at(0x16A2) GPCRM2; +volatile uint8_t __xdata __at(0x16A3) GPCRM3; +volatile uint8_t __xdata __at(0x16A4) GPCRM4; +volatile uint8_t __xdata __at(0x16A5) GPCRM5; +volatile uint8_t __xdata __at(0x16A6) GPCRM6; #endif // _EC_GPIO_H diff --git a/src/ec/it8587e/include/ec/kbc.h b/src/ec/it8587e/include/ec/kbc.h index 5db371d..9dfb114 100644 --- a/src/ec/it8587e/include/ec/kbc.h +++ b/src/ec/it8587e/include/ec/kbc.h @@ -20,7 +20,7 @@ struct Kbc { volatile uint8_t * data_in; }; -extern __code struct Kbc KBC; +extern struct Kbc __code KBC; #define KBC_STS_OBF (1 << 0) #define KBC_STS_IBF (1 << 1) @@ -33,11 +33,11 @@ void kbc_mouse(struct Kbc * kbc, uint8_t data); void kbc_event(struct Kbc * kbc); -__xdata volatile uint8_t __at(0x1300) KBHICR; -__xdata volatile uint8_t __at(0x1302) KBIRQR; -__xdata volatile uint8_t __at(0x1304) KBHISR; -__xdata volatile uint8_t __at(0x1306) KBHIKDOR; -__xdata volatile uint8_t __at(0x1308) KBHIMDOR; -__xdata volatile uint8_t __at(0x130A) KBHIDIR; +volatile uint8_t __xdata __at(0x1300) KBHICR; +volatile uint8_t __xdata __at(0x1302) KBIRQR; +volatile uint8_t __xdata __at(0x1304) KBHISR; +volatile uint8_t __xdata __at(0x1306) KBHIKDOR; +volatile uint8_t __xdata __at(0x1308) KBHIMDOR; +volatile uint8_t __xdata __at(0x130A) KBHIDIR; #endif // _EC_KBC_H diff --git a/src/ec/it8587e/include/ec/kbscan.h b/src/ec/it8587e/include/ec/kbscan.h index d821cb5..58dc162 100644 --- a/src/ec/it8587e/include/ec/kbscan.h +++ b/src/ec/it8587e/include/ec/kbscan.h @@ -3,45 +3,45 @@ #include -__xdata volatile uint8_t __at(0x1D00) KSOL; -__xdata volatile uint8_t __at(0x1D01) KSOH1; -__xdata volatile uint8_t __at(0x1D02) KSOCTRL; -__xdata volatile uint8_t __at(0x1D03) KSOH2; -__xdata volatile uint8_t __at(0x1D04) KSI; -__xdata volatile uint8_t __at(0x1D05) KSICTRLR; -__xdata volatile uint8_t __at(0x1D06) KSIGCTRL; -__xdata volatile uint8_t __at(0x1D07) KSIGOEN; -__xdata volatile uint8_t __at(0x1D08) KSIGDAT; -__xdata volatile uint8_t __at(0x1D09) KSIGDMRR; -__xdata volatile uint8_t __at(0x1D0A) KSOHGCTRL; -__xdata volatile uint8_t __at(0x1D0B) KSOHGOEN; -__xdata volatile uint8_t __at(0x1D0C) KSOHGDMRR; -__xdata volatile uint8_t __at(0x1D0D) KSOLGCTRL; -__xdata volatile uint8_t __at(0x1D0E) KSOLGOEN; -__xdata volatile uint8_t __at(0x1D0F) KSOLGDMRR; +volatile uint8_t __xdata __at(0x1D00) KSOL; +volatile uint8_t __xdata __at(0x1D01) KSOH1; +volatile uint8_t __xdata __at(0x1D02) KSOCTRL; +volatile uint8_t __xdata __at(0x1D03) KSOH2; +volatile uint8_t __xdata __at(0x1D04) KSI; +volatile uint8_t __xdata __at(0x1D05) KSICTRLR; +volatile uint8_t __xdata __at(0x1D06) KSIGCTRL; +volatile uint8_t __xdata __at(0x1D07) KSIGOEN; +volatile uint8_t __xdata __at(0x1D08) KSIGDAT; +volatile uint8_t __xdata __at(0x1D09) KSIGDMRR; +volatile uint8_t __xdata __at(0x1D0A) KSOHGCTRL; +volatile uint8_t __xdata __at(0x1D0B) KSOHGOEN; +volatile uint8_t __xdata __at(0x1D0C) KSOHGDMRR; +volatile uint8_t __xdata __at(0x1D0D) KSOLGCTRL; +volatile uint8_t __xdata __at(0x1D0E) KSOLGOEN; +volatile uint8_t __xdata __at(0x1D0F) KSOLGDMRR; -__xdata volatile uint8_t __at(0x1D10) KSO0LSDR; -__xdata volatile uint8_t __at(0x1D11) KSO1LSDR; -__xdata volatile uint8_t __at(0x1D12) KSO2LSDR; -__xdata volatile uint8_t __at(0x1D13) KSO3LSDR; -__xdata volatile uint8_t __at(0x1D14) KSO4LSDR; -__xdata volatile uint8_t __at(0x1D15) KSO5LSDR; -__xdata volatile uint8_t __at(0x1D16) KSO6LSDR; -__xdata volatile uint8_t __at(0x1D17) KSO7LSDR; -__xdata volatile uint8_t __at(0x1D18) KSO8LSDR; -__xdata volatile uint8_t __at(0x1D19) KSO9LSDR; -__xdata volatile uint8_t __at(0x1D1A) KSO10LSDR; -__xdata volatile uint8_t __at(0x1D1B) KSO11LSDR; -__xdata volatile uint8_t __at(0x1D1C) KSO12LSDR; -__xdata volatile uint8_t __at(0x1D1D) KSO13LSDR; -__xdata volatile uint8_t __at(0x1D1E) KSO14LSDR; -__xdata volatile uint8_t __at(0x1D1F) KSO15LSDR; -__xdata volatile uint8_t __at(0x1D20) KSO16LSDR; -__xdata volatile uint8_t __at(0x1D21) KSO17LSDR; +volatile uint8_t __xdata __at(0x1D10) KSO0LSDR; +volatile uint8_t __xdata __at(0x1D11) KSO1LSDR; +volatile uint8_t __xdata __at(0x1D12) KSO2LSDR; +volatile uint8_t __xdata __at(0x1D13) KSO3LSDR; +volatile uint8_t __xdata __at(0x1D14) KSO4LSDR; +volatile uint8_t __xdata __at(0x1D15) KSO5LSDR; +volatile uint8_t __xdata __at(0x1D16) KSO6LSDR; +volatile uint8_t __xdata __at(0x1D17) KSO7LSDR; +volatile uint8_t __xdata __at(0x1D18) KSO8LSDR; +volatile uint8_t __xdata __at(0x1D19) KSO9LSDR; +volatile uint8_t __xdata __at(0x1D1A) KSO10LSDR; +volatile uint8_t __xdata __at(0x1D1B) KSO11LSDR; +volatile uint8_t __xdata __at(0x1D1C) KSO12LSDR; +volatile uint8_t __xdata __at(0x1D1D) KSO13LSDR; +volatile uint8_t __xdata __at(0x1D1E) KSO14LSDR; +volatile uint8_t __xdata __at(0x1D1F) KSO15LSDR; +volatile uint8_t __xdata __at(0x1D20) KSO16LSDR; +volatile uint8_t __xdata __at(0x1D21) KSO17LSDR; -__xdata volatile uint8_t __at(0x1D22) SDC1R; -__xdata volatile uint8_t __at(0x1D23) SDC2R; -__xdata volatile uint8_t __at(0x1D24) SDC3R; -__xdata volatile uint8_t __at(0x1D25) SDSR; +volatile uint8_t __xdata __at(0x1D22) SDC1R; +volatile uint8_t __xdata __at(0x1D23) SDC2R; +volatile uint8_t __xdata __at(0x1D24) SDC3R; +volatile uint8_t __xdata __at(0x1D25) SDSR; #endif // _EC_KBSCAN_H diff --git a/src/ec/it8587e/include/ec/pmc.h b/src/ec/it8587e/include/ec/pmc.h index 13d1255..0dbe3d4 100644 --- a/src/ec/it8587e/include/ec/pmc.h +++ b/src/ec/it8587e/include/ec/pmc.h @@ -14,8 +14,8 @@ struct Pmc { volatile uint8_t * control; }; -extern __code struct Pmc PMC_1; -extern __code struct Pmc PMC_2; +extern struct Pmc __code PMC_1; +extern struct Pmc __code PMC_2; #define PMC_STS_OBF (1 << 0) #define PMC_STS_IBF (1 << 1) @@ -27,14 +27,14 @@ void pmc_write(struct Pmc * pmc, uint8_t data); void pmc_event(struct Pmc * pmc); -__xdata volatile uint8_t __at(0x1500) PM1STS; -__xdata volatile uint8_t __at(0x1501) PM1DO; -__xdata volatile uint8_t __at(0x1504) PM1DI; -__xdata volatile uint8_t __at(0x1506) PM1CTL; +volatile uint8_t __xdata __at(0x1500) PM1STS; +volatile uint8_t __xdata __at(0x1501) PM1DO; +volatile uint8_t __xdata __at(0x1504) PM1DI; +volatile uint8_t __xdata __at(0x1506) PM1CTL; -__xdata volatile uint8_t __at(0x1510) PM2STS; -__xdata volatile uint8_t __at(0x1511) PM2DO; -__xdata volatile uint8_t __at(0x1514) PM2DI; -__xdata volatile uint8_t __at(0x1516) PM2CTL; +volatile uint8_t __xdata __at(0x1510) PM2STS; +volatile uint8_t __xdata __at(0x1511) PM2DO; +volatile uint8_t __xdata __at(0x1514) PM2DI; +volatile uint8_t __xdata __at(0x1516) PM2CTL; #endif // _EC_PMC_H diff --git a/src/ec/it8587e/include/ec/ps2.h b/src/ec/it8587e/include/ec/ps2.h index 73ee6a4..cbf29b7 100644 --- a/src/ec/it8587e/include/ec/ps2.h +++ b/src/ec/it8587e/include/ec/ps2.h @@ -3,20 +3,31 @@ #include -__xdata volatile uint8_t __at(0x1700) PSCTL1; -__xdata volatile uint8_t __at(0x1701) PSCTL2; -__xdata volatile uint8_t __at(0x1702) PSCTL3; +struct Ps2 { + volatile uint8_t * control; + volatile uint8_t * interrupt; + volatile uint8_t * status; + volatile uint8_t * data; +}; -__xdata volatile uint8_t __at(0x1704) PSINT1; -__xdata volatile uint8_t __at(0x1705) PSINT2; -__xdata volatile uint8_t __at(0x1706) PSINT3; +extern struct Ps2 __code PS2_1; +extern struct Ps2 __code PS2_2; +extern struct Ps2 __code PS2_3; -__xdata volatile uint8_t __at(0x1708) PSSTS1; -__xdata volatile uint8_t __at(0x1709) PSSTS2; -__xdata volatile uint8_t __at(0x170A) PSSTS3; +volatile uint8_t __xdata __at(0x1700) PSCTL1; +volatile uint8_t __xdata __at(0x1701) PSCTL2; +volatile uint8_t __xdata __at(0x1702) PSCTL3; -__xdata volatile uint8_t __at(0x170C) PSDAT1; -__xdata volatile uint8_t __at(0x170D) PSDAT2; -__xdata volatile uint8_t __at(0x170E) PSDAT3; +volatile uint8_t __xdata __at(0x1704) PSINT1; +volatile uint8_t __xdata __at(0x1705) PSINT2; +volatile uint8_t __xdata __at(0x1706) PSINT3; + +volatile uint8_t __xdata __at(0x1708) PSSTS1; +volatile uint8_t __xdata __at(0x1709) PSSTS2; +volatile uint8_t __xdata __at(0x170A) PSSTS3; + +volatile uint8_t __xdata __at(0x170C) PSDAT1; +volatile uint8_t __xdata __at(0x170D) PSDAT2; +volatile uint8_t __xdata __at(0x170E) PSDAT3; #endif // _EC_PS2_H diff --git a/src/ec/it8587e/include/ec/pwm.h b/src/ec/it8587e/include/ec/pwm.h index 5967f27..e8de656 100644 --- a/src/ec/it8587e/include/ec/pwm.h +++ b/src/ec/it8587e/include/ec/pwm.h @@ -3,32 +3,57 @@ #include +// Channel 6 clock prescaler register (low byte) +volatile uint8_t __xdata __at(0x182B) C6CPRS; +// Channel 6 clock prescaler register (high byte) +volatile uint8_t __xdata __at(0x182C) C6MCPRS; + +// Cycle Time 0 +volatile uint8_t __xdata __at(0x1801) CTR0; +// Cycle Time 1 +volatile uint8_t __xdata __at(0x1841) CTR1; +// Cycle Time 2 +volatile uint8_t __xdata __at(0x1842) CTR2; +// Cycle Time 3 +volatile uint8_t __xdata __at(0x1843) CTR3; + // Duty cycle register 0 -__xdata volatile uint8_t __at(0x1802) DCR0; +volatile uint8_t __xdata __at(0x1802) DCR0; // Duty cycle register 1 -__xdata volatile uint8_t __at(0x1803) DCR1; +volatile uint8_t __xdata __at(0x1803) DCR1; // Duty cycle register 2 -__xdata volatile uint8_t __at(0x1804) DCR2; +volatile uint8_t __xdata __at(0x1804) DCR2; // Duty cycle register 3 -__xdata volatile uint8_t __at(0x1805) DCR3; +volatile uint8_t __xdata __at(0x1805) DCR3; // Duty cycle register 4 -__xdata volatile uint8_t __at(0x1806) DCR4; +volatile uint8_t __xdata __at(0x1806) DCR4; // Duty cycle register 5 -__xdata volatile uint8_t __at(0x1807) DCR5; +volatile uint8_t __xdata __at(0x1807) DCR5; // Duty cycle register 6 -__xdata volatile uint8_t __at(0x1808) DCR6; +volatile uint8_t __xdata __at(0x1808) DCR6; // Duty cycle register 7 -__xdata volatile uint8_t __at(0x1809) DCR7; +volatile uint8_t __xdata __at(0x1809) DCR7; // Fan one tachometer least significant byte reading register -__xdata volatile uint8_t __at(0x181E) F1TLRR; +volatile uint8_t __xdata __at(0x181E) F1TLRR; // Fan one tachometer most significant byte reading register -__xdata volatile uint8_t __at(0x181F) F1TMRR; +volatile uint8_t __xdata __at(0x181F) F1TMRR; // Fan two tachometer least significant byte reading register -__xdata volatile uint8_t __at(0x1820) F2TLRR; +volatile uint8_t __xdata __at(0x1820) F2TLRR; // Fan two tachometer most significant byte reading register -__xdata volatile uint8_t __at(0x1821) F2TMRR; +volatile uint8_t __xdata __at(0x1821) F2TMRR; + +// Prescaler clock frequency select register +volatile uint8_t __xdata __at(0x180B) PCFSR; +// Prescaler clock source select group low +volatile uint8_t __xdata __at(0x180C) PCSSGL; +// Prescaler clock source select group high +volatile uint8_t __xdata __at(0x180D) PCSSGH; +// Prescaler clock source gating register +volatile uint8_t __xdata __at(0x180F) PCSGR; +// PWM clock control register with weird name +volatile uint8_t __xdata __at(0x1821) ZTIER; // Tachometer switch control register -__xdata volatile uint8_t __at(0x1848) TSWCTLR; +volatile uint8_t __xdata __at(0x1848) TSWCTLR; #endif // _EC_PWM_H diff --git a/src/ec/it8587e/kbc.c b/src/ec/it8587e/kbc.c index 2ea3aea..339d736 100644 --- a/src/ec/it8587e/kbc.c +++ b/src/ec/it8587e/kbc.c @@ -2,7 +2,7 @@ #include -__code struct Kbc KBC = { +struct Kbc __code KBC = { .control = &KBHICR, .irq = &KBIRQR, .status = &KBHISR, diff --git a/src/ec/it8587e/pmc.c b/src/ec/it8587e/pmc.c index 8e8e9e8..7d8e67c 100644 --- a/src/ec/it8587e/pmc.c +++ b/src/ec/it8587e/pmc.c @@ -10,8 +10,8 @@ .control = &PM ## NUM ## CTL, \ } -__code struct Pmc PMC_1 = PMC(1); -__code struct Pmc PMC_2 = PMC(2); +struct Pmc __code PMC_1 = PMC(1); +struct Pmc __code PMC_2 = PMC(2); uint8_t pmc_status(struct Pmc * pmc) { return *(pmc->status); diff --git a/src/ec/it8587e/ps2.c b/src/ec/it8587e/ps2.c new file mode 100644 index 0000000..467dd00 --- /dev/null +++ b/src/ec/it8587e/ps2.c @@ -0,0 +1,12 @@ +#include + +#define PS2(NUM) { \ + .control = &PSCTL ## NUM, \ + .interrupt = &PSINT ## NUM, \ + .status = &PSSTS ## NUM, \ + .data = &PSDAT ## NUM, \ +} + +struct Ps2 __code PS2_1 = PS2(1); +struct Ps2 __code PS2_2 = PS2(2); +struct Ps2 __code PS2_3 = PS2(3);