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>
__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

View File

@ -5,9 +5,9 @@
#include <stdint.h>
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

View File

@ -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

View File

@ -3,45 +3,45 @@
#include <stdint.h>
__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

View File

@ -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

View File

@ -3,20 +3,31 @@
#include <stdint.h>
__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

View File

@ -3,32 +3,57 @@
#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
__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

View File

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

View File

@ -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);

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);