Reorder memory segment specifier, add Ps2 struct

This commit is contained in:
Jeremy Soller 2019-10-01 11:59:07 -06:00
parent 15004f76b3
commit 9deb7b11ad
No known key found for this signature in database
GPG Key ID: E988B49EE78A7FB1
10 changed files with 257 additions and 209 deletions

View File

@ -3,8 +3,8 @@
#include <stdint.h> #include <stdint.h>
__xdata volatile uint8_t __at(0x2006) RSTS; volatile uint8_t __xdata __at(0x2006) RSTS;
__xdata volatile uint8_t __at(0x200A) BADRSEL; volatile uint8_t __xdata __at(0x200A) BADRSEL;
__xdata volatile uint8_t __at(0x200D) SPCTRL1; volatile uint8_t __xdata __at(0x200D) SPCTRL1;
#endif // _EC_GCTRL_H #endif // _EC_GCTRL_H

View File

@ -5,9 +5,9 @@
#include <stdint.h> #include <stdint.h>
struct Gpio { struct Gpio {
__xdata volatile uint8_t * data; volatile uint8_t __xdata * data;
__xdata volatile uint8_t * mirror; volatile uint8_t __xdata * mirror;
__xdata volatile uint8_t * control; volatile uint8_t __xdata * control;
uint8_t value; uint8_t value;
}; };
@ -21,140 +21,140 @@ struct Gpio {
bool gpio_get(struct Gpio * gpio); bool gpio_get(struct Gpio * gpio);
void gpio_set(struct Gpio * gpio, bool value); 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; volatile uint8_t __xdata __at(0x1601) GPDRA;
__xdata volatile uint8_t __at(0x1602) GPDRB; volatile uint8_t __xdata __at(0x1602) GPDRB;
__xdata volatile uint8_t __at(0x1603) GPDRC; volatile uint8_t __xdata __at(0x1603) GPDRC;
__xdata volatile uint8_t __at(0x1604) GPDRD; volatile uint8_t __xdata __at(0x1604) GPDRD;
__xdata volatile uint8_t __at(0x1605) GPDRE; volatile uint8_t __xdata __at(0x1605) GPDRE;
__xdata volatile uint8_t __at(0x1606) GPDRF; volatile uint8_t __xdata __at(0x1606) GPDRF;
__xdata volatile uint8_t __at(0x1607) GPDRG; volatile uint8_t __xdata __at(0x1607) GPDRG;
__xdata volatile uint8_t __at(0x1608) GPDRH; volatile uint8_t __xdata __at(0x1608) GPDRH;
__xdata volatile uint8_t __at(0x1609) GPDRI; volatile uint8_t __xdata __at(0x1609) GPDRI;
__xdata volatile uint8_t __at(0x160A) GPDRJ; volatile uint8_t __xdata __at(0x160A) GPDRJ;
__xdata volatile uint8_t __at(0x160D) GPDRM; volatile uint8_t __xdata __at(0x160D) GPDRM;
__xdata volatile uint8_t __at(0x1661) GPDMRA; volatile uint8_t __xdata __at(0x1661) GPDMRA;
__xdata volatile uint8_t __at(0x1662) GPDMRB; volatile uint8_t __xdata __at(0x1662) GPDMRB;
__xdata volatile uint8_t __at(0x1663) GPDMRC; volatile uint8_t __xdata __at(0x1663) GPDMRC;
__xdata volatile uint8_t __at(0x1664) GPDMRD; volatile uint8_t __xdata __at(0x1664) GPDMRD;
__xdata volatile uint8_t __at(0x1665) GPDMRE; volatile uint8_t __xdata __at(0x1665) GPDMRE;
__xdata volatile uint8_t __at(0x1666) GPDMRF; volatile uint8_t __xdata __at(0x1666) GPDMRF;
__xdata volatile uint8_t __at(0x1667) GPDMRG; volatile uint8_t __xdata __at(0x1667) GPDMRG;
__xdata volatile uint8_t __at(0x1668) GPDMRH; volatile uint8_t __xdata __at(0x1668) GPDMRH;
__xdata volatile uint8_t __at(0x1669) GPDMRI; volatile uint8_t __xdata __at(0x1669) GPDMRI;
__xdata volatile uint8_t __at(0x166A) GPDMRJ; volatile uint8_t __xdata __at(0x166A) GPDMRJ;
__xdata volatile uint8_t __at(0x166D) GPDMRM; volatile uint8_t __xdata __at(0x166D) GPDMRM;
__xdata volatile uint8_t __at(0x1671) GPOTA; volatile uint8_t __xdata __at(0x1671) GPOTA;
__xdata volatile uint8_t __at(0x1672) GPOTB; volatile uint8_t __xdata __at(0x1672) GPOTB;
__xdata volatile uint8_t __at(0x1673) GPOTC; volatile uint8_t __xdata __at(0x1673) GPOTC;
__xdata volatile uint8_t __at(0x1674) GPOTD; volatile uint8_t __xdata __at(0x1674) GPOTD;
__xdata volatile uint8_t __at(0x1675) GPOTE; volatile uint8_t __xdata __at(0x1675) GPOTE;
__xdata volatile uint8_t __at(0x1676) GPOTF; volatile uint8_t __xdata __at(0x1676) GPOTF;
__xdata volatile uint8_t __at(0x1677) GPOTG; volatile uint8_t __xdata __at(0x1677) GPOTG;
__xdata volatile uint8_t __at(0x1678) GPOTH; volatile uint8_t __xdata __at(0x1678) GPOTH;
__xdata volatile uint8_t __at(0x1679) GPOTI; volatile uint8_t __xdata __at(0x1679) GPOTI;
__xdata volatile uint8_t __at(0x167A) GPOTJ; volatile uint8_t __xdata __at(0x167A) GPOTJ;
// GPOTM does not exist // GPOTM does not exist
__xdata volatile uint8_t __at(0x1610) GPCRA0; volatile uint8_t __xdata __at(0x1610) GPCRA0;
__xdata volatile uint8_t __at(0x1611) GPCRA1; volatile uint8_t __xdata __at(0x1611) GPCRA1;
__xdata volatile uint8_t __at(0x1612) GPCRA2; volatile uint8_t __xdata __at(0x1612) GPCRA2;
__xdata volatile uint8_t __at(0x1613) GPCRA3; volatile uint8_t __xdata __at(0x1613) GPCRA3;
__xdata volatile uint8_t __at(0x1614) GPCRA4; volatile uint8_t __xdata __at(0x1614) GPCRA4;
__xdata volatile uint8_t __at(0x1615) GPCRA5; volatile uint8_t __xdata __at(0x1615) GPCRA5;
__xdata volatile uint8_t __at(0x1616) GPCRA6; volatile uint8_t __xdata __at(0x1616) GPCRA6;
__xdata volatile uint8_t __at(0x1617) GPCRA7; volatile uint8_t __xdata __at(0x1617) GPCRA7;
__xdata volatile uint8_t __at(0x1618) GPCRB0; volatile uint8_t __xdata __at(0x1618) GPCRB0;
__xdata volatile uint8_t __at(0x1619) GPCRB1; volatile uint8_t __xdata __at(0x1619) GPCRB1;
__xdata volatile uint8_t __at(0x161A) GPCRB2; volatile uint8_t __xdata __at(0x161A) GPCRB2;
__xdata volatile uint8_t __at(0x161B) GPCRB3; volatile uint8_t __xdata __at(0x161B) GPCRB3;
__xdata volatile uint8_t __at(0x161C) GPCRB4; volatile uint8_t __xdata __at(0x161C) GPCRB4;
__xdata volatile uint8_t __at(0x161D) GPCRB5; volatile uint8_t __xdata __at(0x161D) GPCRB5;
__xdata volatile uint8_t __at(0x161E) GPCRB6; volatile uint8_t __xdata __at(0x161E) GPCRB6;
__xdata volatile uint8_t __at(0x161F) GPCRB7; volatile uint8_t __xdata __at(0x161F) GPCRB7;
__xdata volatile uint8_t __at(0x1620) GPCRC0; volatile uint8_t __xdata __at(0x1620) GPCRC0;
__xdata volatile uint8_t __at(0x1621) GPCRC1; volatile uint8_t __xdata __at(0x1621) GPCRC1;
__xdata volatile uint8_t __at(0x1622) GPCRC2; volatile uint8_t __xdata __at(0x1622) GPCRC2;
__xdata volatile uint8_t __at(0x1623) GPCRC3; volatile uint8_t __xdata __at(0x1623) GPCRC3;
__xdata volatile uint8_t __at(0x1624) GPCRC4; volatile uint8_t __xdata __at(0x1624) GPCRC4;
__xdata volatile uint8_t __at(0x1625) GPCRC5; volatile uint8_t __xdata __at(0x1625) GPCRC5;
__xdata volatile uint8_t __at(0x1626) GPCRC6; volatile uint8_t __xdata __at(0x1626) GPCRC6;
__xdata volatile uint8_t __at(0x1627) GPCRC7; volatile uint8_t __xdata __at(0x1627) GPCRC7;
__xdata volatile uint8_t __at(0x1628) GPCRD0; volatile uint8_t __xdata __at(0x1628) GPCRD0;
__xdata volatile uint8_t __at(0x1629) GPCRD1; volatile uint8_t __xdata __at(0x1629) GPCRD1;
__xdata volatile uint8_t __at(0x162A) GPCRD2; volatile uint8_t __xdata __at(0x162A) GPCRD2;
__xdata volatile uint8_t __at(0x162B) GPCRD3; volatile uint8_t __xdata __at(0x162B) GPCRD3;
__xdata volatile uint8_t __at(0x162C) GPCRD4; volatile uint8_t __xdata __at(0x162C) GPCRD4;
__xdata volatile uint8_t __at(0x162D) GPCRD5; volatile uint8_t __xdata __at(0x162D) GPCRD5;
__xdata volatile uint8_t __at(0x162E) GPCRD6; volatile uint8_t __xdata __at(0x162E) GPCRD6;
__xdata volatile uint8_t __at(0x162F) GPCRD7; volatile uint8_t __xdata __at(0x162F) GPCRD7;
__xdata volatile uint8_t __at(0x1630) GPCRE0; volatile uint8_t __xdata __at(0x1630) GPCRE0;
__xdata volatile uint8_t __at(0x1631) GPCRE1; volatile uint8_t __xdata __at(0x1631) GPCRE1;
__xdata volatile uint8_t __at(0x1632) GPCRE2; volatile uint8_t __xdata __at(0x1632) GPCRE2;
__xdata volatile uint8_t __at(0x1633) GPCRE3; volatile uint8_t __xdata __at(0x1633) GPCRE3;
__xdata volatile uint8_t __at(0x1634) GPCRE4; volatile uint8_t __xdata __at(0x1634) GPCRE4;
__xdata volatile uint8_t __at(0x1635) GPCRE5; volatile uint8_t __xdata __at(0x1635) GPCRE5;
__xdata volatile uint8_t __at(0x1636) GPCRE6; volatile uint8_t __xdata __at(0x1636) GPCRE6;
__xdata volatile uint8_t __at(0x1637) GPCRE7; volatile uint8_t __xdata __at(0x1637) GPCRE7;
__xdata volatile uint8_t __at(0x1638) GPCRF0; volatile uint8_t __xdata __at(0x1638) GPCRF0;
__xdata volatile uint8_t __at(0x1639) GPCRF1; volatile uint8_t __xdata __at(0x1639) GPCRF1;
__xdata volatile uint8_t __at(0x163A) GPCRF2; volatile uint8_t __xdata __at(0x163A) GPCRF2;
__xdata volatile uint8_t __at(0x163B) GPCRF3; volatile uint8_t __xdata __at(0x163B) GPCRF3;
__xdata volatile uint8_t __at(0x163C) GPCRF4; volatile uint8_t __xdata __at(0x163C) GPCRF4;
__xdata volatile uint8_t __at(0x163D) GPCRF5; volatile uint8_t __xdata __at(0x163D) GPCRF5;
__xdata volatile uint8_t __at(0x163E) GPCRF6; volatile uint8_t __xdata __at(0x163E) GPCRF6;
__xdata volatile uint8_t __at(0x163F) GPCRF7; volatile uint8_t __xdata __at(0x163F) GPCRF7;
__xdata volatile uint8_t __at(0x1640) GPCRG0; volatile uint8_t __xdata __at(0x1640) GPCRG0;
__xdata volatile uint8_t __at(0x1641) GPCRG1; volatile uint8_t __xdata __at(0x1641) GPCRG1;
__xdata volatile uint8_t __at(0x1642) GPCRG2; volatile uint8_t __xdata __at(0x1642) GPCRG2;
__xdata volatile uint8_t __at(0x1643) GPCRG3; volatile uint8_t __xdata __at(0x1643) GPCRG3;
__xdata volatile uint8_t __at(0x1644) GPCRG4; volatile uint8_t __xdata __at(0x1644) GPCRG4;
__xdata volatile uint8_t __at(0x1645) GPCRG5; volatile uint8_t __xdata __at(0x1645) GPCRG5;
__xdata volatile uint8_t __at(0x1646) GPCRG6; volatile uint8_t __xdata __at(0x1646) GPCRG6;
__xdata volatile uint8_t __at(0x1647) GPCRG7; volatile uint8_t __xdata __at(0x1647) GPCRG7;
__xdata volatile uint8_t __at(0x1648) GPCRH0; volatile uint8_t __xdata __at(0x1648) GPCRH0;
__xdata volatile uint8_t __at(0x1649) GPCRH1; volatile uint8_t __xdata __at(0x1649) GPCRH1;
__xdata volatile uint8_t __at(0x164A) GPCRH2; volatile uint8_t __xdata __at(0x164A) GPCRH2;
__xdata volatile uint8_t __at(0x164B) GPCRH3; volatile uint8_t __xdata __at(0x164B) GPCRH3;
__xdata volatile uint8_t __at(0x164C) GPCRH4; volatile uint8_t __xdata __at(0x164C) GPCRH4;
__xdata volatile uint8_t __at(0x164D) GPCRH5; volatile uint8_t __xdata __at(0x164D) GPCRH5;
__xdata volatile uint8_t __at(0x164E) GPCRH6; volatile uint8_t __xdata __at(0x164E) GPCRH6;
__xdata volatile uint8_t __at(0x164F) GPCRH7; volatile uint8_t __xdata __at(0x164F) GPCRH7;
__xdata volatile uint8_t __at(0x1650) GPCRI0; volatile uint8_t __xdata __at(0x1650) GPCRI0;
__xdata volatile uint8_t __at(0x1651) GPCRI1; volatile uint8_t __xdata __at(0x1651) GPCRI1;
__xdata volatile uint8_t __at(0x1652) GPCRI2; volatile uint8_t __xdata __at(0x1652) GPCRI2;
__xdata volatile uint8_t __at(0x1653) GPCRI3; volatile uint8_t __xdata __at(0x1653) GPCRI3;
__xdata volatile uint8_t __at(0x1654) GPCRI4; volatile uint8_t __xdata __at(0x1654) GPCRI4;
__xdata volatile uint8_t __at(0x1655) GPCRI5; volatile uint8_t __xdata __at(0x1655) GPCRI5;
__xdata volatile uint8_t __at(0x1656) GPCRI6; volatile uint8_t __xdata __at(0x1656) GPCRI6;
__xdata volatile uint8_t __at(0x1657) GPCRI7; volatile uint8_t __xdata __at(0x1657) GPCRI7;
__xdata volatile uint8_t __at(0x1658) GPCRJ0; volatile uint8_t __xdata __at(0x1658) GPCRJ0;
__xdata volatile uint8_t __at(0x1659) GPCRJ1; volatile uint8_t __xdata __at(0x1659) GPCRJ1;
__xdata volatile uint8_t __at(0x165A) GPCRJ2; volatile uint8_t __xdata __at(0x165A) GPCRJ2;
__xdata volatile uint8_t __at(0x165B) GPCRJ3; volatile uint8_t __xdata __at(0x165B) GPCRJ3;
__xdata volatile uint8_t __at(0x165C) GPCRJ4; volatile uint8_t __xdata __at(0x165C) GPCRJ4;
__xdata volatile uint8_t __at(0x165D) GPCRJ5; volatile uint8_t __xdata __at(0x165D) GPCRJ5;
__xdata volatile uint8_t __at(0x165E) GPCRJ6; volatile uint8_t __xdata __at(0x165E) GPCRJ6;
__xdata volatile uint8_t __at(0x165F) GPCRJ7; volatile uint8_t __xdata __at(0x165F) GPCRJ7;
__xdata volatile uint8_t __at(0x16A0) GPCRM0; volatile uint8_t __xdata __at(0x16A0) GPCRM0;
__xdata volatile uint8_t __at(0x16A1) GPCRM1; volatile uint8_t __xdata __at(0x16A1) GPCRM1;
__xdata volatile uint8_t __at(0x16A2) GPCRM2; volatile uint8_t __xdata __at(0x16A2) GPCRM2;
__xdata volatile uint8_t __at(0x16A3) GPCRM3; volatile uint8_t __xdata __at(0x16A3) GPCRM3;
__xdata volatile uint8_t __at(0x16A4) GPCRM4; volatile uint8_t __xdata __at(0x16A4) GPCRM4;
__xdata volatile uint8_t __at(0x16A5) GPCRM5; volatile uint8_t __xdata __at(0x16A5) GPCRM5;
__xdata volatile uint8_t __at(0x16A6) GPCRM6; volatile uint8_t __xdata __at(0x16A6) GPCRM6;
#endif // _EC_GPIO_H #endif // _EC_GPIO_H

View File

@ -20,7 +20,7 @@ struct Kbc {
volatile uint8_t * data_in; volatile uint8_t * data_in;
}; };
extern __code struct Kbc KBC; extern struct Kbc __code KBC;
#define KBC_STS_OBF (1 << 0) #define KBC_STS_OBF (1 << 0)
#define KBC_STS_IBF (1 << 1) #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); void kbc_event(struct Kbc * kbc);
__xdata volatile uint8_t __at(0x1300) KBHICR; volatile uint8_t __xdata __at(0x1300) KBHICR;
__xdata volatile uint8_t __at(0x1302) KBIRQR; volatile uint8_t __xdata __at(0x1302) KBIRQR;
__xdata volatile uint8_t __at(0x1304) KBHISR; volatile uint8_t __xdata __at(0x1304) KBHISR;
__xdata volatile uint8_t __at(0x1306) KBHIKDOR; volatile uint8_t __xdata __at(0x1306) KBHIKDOR;
__xdata volatile uint8_t __at(0x1308) KBHIMDOR; volatile uint8_t __xdata __at(0x1308) KBHIMDOR;
__xdata volatile uint8_t __at(0x130A) KBHIDIR; volatile uint8_t __xdata __at(0x130A) KBHIDIR;
#endif // _EC_KBC_H #endif // _EC_KBC_H

View File

@ -3,45 +3,45 @@
#include <stdint.h> #include <stdint.h>
__xdata volatile uint8_t __at(0x1D00) KSOL; volatile uint8_t __xdata __at(0x1D00) KSOL;
__xdata volatile uint8_t __at(0x1D01) KSOH1; volatile uint8_t __xdata __at(0x1D01) KSOH1;
__xdata volatile uint8_t __at(0x1D02) KSOCTRL; volatile uint8_t __xdata __at(0x1D02) KSOCTRL;
__xdata volatile uint8_t __at(0x1D03) KSOH2; volatile uint8_t __xdata __at(0x1D03) KSOH2;
__xdata volatile uint8_t __at(0x1D04) KSI; volatile uint8_t __xdata __at(0x1D04) KSI;
__xdata volatile uint8_t __at(0x1D05) KSICTRLR; volatile uint8_t __xdata __at(0x1D05) KSICTRLR;
__xdata volatile uint8_t __at(0x1D06) KSIGCTRL; volatile uint8_t __xdata __at(0x1D06) KSIGCTRL;
__xdata volatile uint8_t __at(0x1D07) KSIGOEN; volatile uint8_t __xdata __at(0x1D07) KSIGOEN;
__xdata volatile uint8_t __at(0x1D08) KSIGDAT; volatile uint8_t __xdata __at(0x1D08) KSIGDAT;
__xdata volatile uint8_t __at(0x1D09) KSIGDMRR; volatile uint8_t __xdata __at(0x1D09) KSIGDMRR;
__xdata volatile uint8_t __at(0x1D0A) KSOHGCTRL; volatile uint8_t __xdata __at(0x1D0A) KSOHGCTRL;
__xdata volatile uint8_t __at(0x1D0B) KSOHGOEN; volatile uint8_t __xdata __at(0x1D0B) KSOHGOEN;
__xdata volatile uint8_t __at(0x1D0C) KSOHGDMRR; volatile uint8_t __xdata __at(0x1D0C) KSOHGDMRR;
__xdata volatile uint8_t __at(0x1D0D) KSOLGCTRL; volatile uint8_t __xdata __at(0x1D0D) KSOLGCTRL;
__xdata volatile uint8_t __at(0x1D0E) KSOLGOEN; volatile uint8_t __xdata __at(0x1D0E) KSOLGOEN;
__xdata volatile uint8_t __at(0x1D0F) KSOLGDMRR; volatile uint8_t __xdata __at(0x1D0F) KSOLGDMRR;
__xdata volatile uint8_t __at(0x1D10) KSO0LSDR; volatile uint8_t __xdata __at(0x1D10) KSO0LSDR;
__xdata volatile uint8_t __at(0x1D11) KSO1LSDR; volatile uint8_t __xdata __at(0x1D11) KSO1LSDR;
__xdata volatile uint8_t __at(0x1D12) KSO2LSDR; volatile uint8_t __xdata __at(0x1D12) KSO2LSDR;
__xdata volatile uint8_t __at(0x1D13) KSO3LSDR; volatile uint8_t __xdata __at(0x1D13) KSO3LSDR;
__xdata volatile uint8_t __at(0x1D14) KSO4LSDR; volatile uint8_t __xdata __at(0x1D14) KSO4LSDR;
__xdata volatile uint8_t __at(0x1D15) KSO5LSDR; volatile uint8_t __xdata __at(0x1D15) KSO5LSDR;
__xdata volatile uint8_t __at(0x1D16) KSO6LSDR; volatile uint8_t __xdata __at(0x1D16) KSO6LSDR;
__xdata volatile uint8_t __at(0x1D17) KSO7LSDR; volatile uint8_t __xdata __at(0x1D17) KSO7LSDR;
__xdata volatile uint8_t __at(0x1D18) KSO8LSDR; volatile uint8_t __xdata __at(0x1D18) KSO8LSDR;
__xdata volatile uint8_t __at(0x1D19) KSO9LSDR; volatile uint8_t __xdata __at(0x1D19) KSO9LSDR;
__xdata volatile uint8_t __at(0x1D1A) KSO10LSDR; volatile uint8_t __xdata __at(0x1D1A) KSO10LSDR;
__xdata volatile uint8_t __at(0x1D1B) KSO11LSDR; volatile uint8_t __xdata __at(0x1D1B) KSO11LSDR;
__xdata volatile uint8_t __at(0x1D1C) KSO12LSDR; volatile uint8_t __xdata __at(0x1D1C) KSO12LSDR;
__xdata volatile uint8_t __at(0x1D1D) KSO13LSDR; volatile uint8_t __xdata __at(0x1D1D) KSO13LSDR;
__xdata volatile uint8_t __at(0x1D1E) KSO14LSDR; volatile uint8_t __xdata __at(0x1D1E) KSO14LSDR;
__xdata volatile uint8_t __at(0x1D1F) KSO15LSDR; volatile uint8_t __xdata __at(0x1D1F) KSO15LSDR;
__xdata volatile uint8_t __at(0x1D20) KSO16LSDR; volatile uint8_t __xdata __at(0x1D20) KSO16LSDR;
__xdata volatile uint8_t __at(0x1D21) KSO17LSDR; volatile uint8_t __xdata __at(0x1D21) KSO17LSDR;
__xdata volatile uint8_t __at(0x1D22) SDC1R; volatile uint8_t __xdata __at(0x1D22) SDC1R;
__xdata volatile uint8_t __at(0x1D23) SDC2R; volatile uint8_t __xdata __at(0x1D23) SDC2R;
__xdata volatile uint8_t __at(0x1D24) SDC3R; volatile uint8_t __xdata __at(0x1D24) SDC3R;
__xdata volatile uint8_t __at(0x1D25) SDSR; volatile uint8_t __xdata __at(0x1D25) SDSR;
#endif // _EC_KBSCAN_H #endif // _EC_KBSCAN_H

View File

@ -14,8 +14,8 @@ struct Pmc {
volatile uint8_t * control; volatile uint8_t * control;
}; };
extern __code struct Pmc PMC_1; extern struct Pmc __code PMC_1;
extern __code struct Pmc PMC_2; extern struct Pmc __code PMC_2;
#define PMC_STS_OBF (1 << 0) #define PMC_STS_OBF (1 << 0)
#define PMC_STS_IBF (1 << 1) #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); void pmc_event(struct Pmc * pmc);
__xdata volatile uint8_t __at(0x1500) PM1STS; volatile uint8_t __xdata __at(0x1500) PM1STS;
__xdata volatile uint8_t __at(0x1501) PM1DO; volatile uint8_t __xdata __at(0x1501) PM1DO;
__xdata volatile uint8_t __at(0x1504) PM1DI; volatile uint8_t __xdata __at(0x1504) PM1DI;
__xdata volatile uint8_t __at(0x1506) PM1CTL; volatile uint8_t __xdata __at(0x1506) PM1CTL;
__xdata volatile uint8_t __at(0x1510) PM2STS; volatile uint8_t __xdata __at(0x1510) PM2STS;
__xdata volatile uint8_t __at(0x1511) PM2DO; volatile uint8_t __xdata __at(0x1511) PM2DO;
__xdata volatile uint8_t __at(0x1514) PM2DI; volatile uint8_t __xdata __at(0x1514) PM2DI;
__xdata volatile uint8_t __at(0x1516) PM2CTL; volatile uint8_t __xdata __at(0x1516) PM2CTL;
#endif // _EC_PMC_H #endif // _EC_PMC_H

View File

@ -3,20 +3,31 @@
#include <stdint.h> #include <stdint.h>
__xdata volatile uint8_t __at(0x1700) PSCTL1; struct Ps2 {
__xdata volatile uint8_t __at(0x1701) PSCTL2; volatile uint8_t * control;
__xdata volatile uint8_t __at(0x1702) PSCTL3; volatile uint8_t * interrupt;
volatile uint8_t * status;
volatile uint8_t * data;
};
__xdata volatile uint8_t __at(0x1704) PSINT1; extern struct Ps2 __code PS2_1;
__xdata volatile uint8_t __at(0x1705) PSINT2; extern struct Ps2 __code PS2_2;
__xdata volatile uint8_t __at(0x1706) PSINT3; extern struct Ps2 __code PS2_3;
__xdata volatile uint8_t __at(0x1708) PSSTS1; volatile uint8_t __xdata __at(0x1700) PSCTL1;
__xdata volatile uint8_t __at(0x1709) PSSTS2; volatile uint8_t __xdata __at(0x1701) PSCTL2;
__xdata volatile uint8_t __at(0x170A) PSSTS3; volatile uint8_t __xdata __at(0x1702) PSCTL3;
__xdata volatile uint8_t __at(0x170C) PSDAT1; volatile uint8_t __xdata __at(0x1704) PSINT1;
__xdata volatile uint8_t __at(0x170D) PSDAT2; volatile uint8_t __xdata __at(0x1705) PSINT2;
__xdata volatile uint8_t __at(0x170E) PSDAT3; 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 #endif // _EC_PS2_H

View File

@ -3,32 +3,57 @@
#include <stdint.h> #include <stdint.h>
// 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 // Duty cycle register 0
__xdata volatile uint8_t __at(0x1802) DCR0; volatile uint8_t __xdata __at(0x1802) DCR0;
// Duty cycle register 1 // Duty cycle register 1
__xdata volatile uint8_t __at(0x1803) DCR1; volatile uint8_t __xdata __at(0x1803) DCR1;
// Duty cycle register 2 // Duty cycle register 2
__xdata volatile uint8_t __at(0x1804) DCR2; volatile uint8_t __xdata __at(0x1804) DCR2;
// Duty cycle register 3 // Duty cycle register 3
__xdata volatile uint8_t __at(0x1805) DCR3; volatile uint8_t __xdata __at(0x1805) DCR3;
// Duty cycle register 4 // Duty cycle register 4
__xdata volatile uint8_t __at(0x1806) DCR4; volatile uint8_t __xdata __at(0x1806) DCR4;
// Duty cycle register 5 // Duty cycle register 5
__xdata volatile uint8_t __at(0x1807) DCR5; volatile uint8_t __xdata __at(0x1807) DCR5;
// Duty cycle register 6 // Duty cycle register 6
__xdata volatile uint8_t __at(0x1808) DCR6; volatile uint8_t __xdata __at(0x1808) DCR6;
// Duty cycle register 7 // 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 // 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 // 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 // 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 // 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 // Tachometer switch control register
__xdata volatile uint8_t __at(0x1848) TSWCTLR; volatile uint8_t __xdata __at(0x1848) TSWCTLR;
#endif // _EC_PWM_H #endif // _EC_PWM_H

View File

@ -2,7 +2,7 @@
#include <ec/kbc.h> #include <ec/kbc.h>
__code struct Kbc KBC = { struct Kbc __code KBC = {
.control = &KBHICR, .control = &KBHICR,
.irq = &KBIRQR, .irq = &KBIRQR,
.status = &KBHISR, .status = &KBHISR,

View File

@ -10,8 +10,8 @@
.control = &PM ## NUM ## CTL, \ .control = &PM ## NUM ## CTL, \
} }
__code struct Pmc PMC_1 = PMC(1); struct Pmc __code PMC_1 = PMC(1);
__code struct Pmc PMC_2 = PMC(2); struct Pmc __code PMC_2 = PMC(2);
uint8_t pmc_status(struct Pmc * pmc) { uint8_t pmc_status(struct Pmc * pmc) {
return *(pmc->status); return *(pmc->status);

12
src/ec/it8587e/ps2.c Normal file
View File

@ -0,0 +1,12 @@
#include <ec/ps2.h>
#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);