ec/starlabs/merlin: Add EC related files for Cezanne laptops
Add EC memory layout and Q events for AMD Cezanne based boards, the "StarBook Mk VI" and "StarFighter Mk I", which both use the ITE 5570E. Change-Id: I87806b830b3d58a6ce3b89f45b5a07f4502a87f3 Signed-off-by: Sean Rhodes <sean@starlabs.systems> Reviewed-on: https://review.coreboot.org/c/coreboot/+/68333 Reviewed-by: Angel Pons <th3fanbus@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
6dc05a369e
commit
836881935f
|
@ -0,0 +1,28 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* EC communication interface for ITE Embedded Controller
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _EC_STARLABS_CEZANNE_EC_DEFS_H
|
||||||
|
#define _EC_STARLABS_CEZANNE_EC_DEFS_H
|
||||||
|
|
||||||
|
/* IT5570 chip ID byte values */
|
||||||
|
#define ITE_CHIPID_VAL 0x5570
|
||||||
|
|
||||||
|
/* EC RAM offsets */
|
||||||
|
#define ECRAM_TRACKPAD_STATE 0x14
|
||||||
|
#define ECRAM_FN_CTRL_REVERSE 0x1a
|
||||||
|
#define ECRAM_MAX_CHARGE 0x31
|
||||||
|
#define ECRAM_FAN_MODE 0x32
|
||||||
|
#define ECRAM_KBL_TIMEOUT 0x34
|
||||||
|
#define ECRAM_KBL_STATE 0x35
|
||||||
|
#define ECRAM_KBL_BRIGHTNESS 0x36
|
||||||
|
#define ECRAM_FN_LOCK_STATE 0x70
|
||||||
|
#define ECRAM_FAST_CHARGE dead_code_t(uint8_t)
|
||||||
|
#define ECRAM_MIRROR_FLAG 0x05
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,149 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
OperationRegion (ECF2, EmbeddedControl, 0x00, 0x100)
|
||||||
|
Field (ECF2, ByteAcc, Lock, Preserve)
|
||||||
|
{
|
||||||
|
Offset(0x00),
|
||||||
|
ECMV, 8, // Major Version Number
|
||||||
|
ECSV, 8, // Minor Version Number
|
||||||
|
KBVS, 8, // Keyboard Controller Version
|
||||||
|
ECTV, 8, // Test Version Number
|
||||||
|
OSFG, 8, // OS Flag
|
||||||
|
FRMF, 8, // Force Mirror Flag
|
||||||
|
PDMV, 8, // PD Major Version
|
||||||
|
PDSV, 8, // PD Minor Version
|
||||||
|
|
||||||
|
Offset(0x0a),
|
||||||
|
CPUT, 8, // CPU Temperature
|
||||||
|
|
||||||
|
Offset(0x13),
|
||||||
|
AUDI, 8, // Control Audio
|
||||||
|
TPLE, 8, // Trackpad State
|
||||||
|
PSTC, 8, // Current P State
|
||||||
|
PSTL, 8, // Last P State
|
||||||
|
FNFT, 8, // Fan Fault
|
||||||
|
|
||||||
|
Offset(0x1a),
|
||||||
|
FCLA, 8, // Fn Ctrl Reverse
|
||||||
|
|
||||||
|
Offset(0x20),
|
||||||
|
WIFI, 8, // WIFI Enable
|
||||||
|
|
||||||
|
Offset(0x30),
|
||||||
|
KLMT, 8, // Keyboard Matrix
|
||||||
|
BFCP, 8, // Battery Full Charge Percentage
|
||||||
|
FANM, 8, // Fan Mode
|
||||||
|
|
||||||
|
Offset(0x34),
|
||||||
|
KLTE, 8, // Keyboard Backlight Timeout
|
||||||
|
KLSE, 8, // Keyboard Backlight State
|
||||||
|
KLBE, 8, // Keyboard Backlight Brightness
|
||||||
|
|
||||||
|
Offset(0x40),
|
||||||
|
SHIP, 8, // Shipping Mode Flag
|
||||||
|
LIDF, 8, // Lid FLag
|
||||||
|
STCD, 8, // Shutdown Code
|
||||||
|
SSDT, 8, // SSD Type
|
||||||
|
S0I3, 8, // S0I3 Mode
|
||||||
|
CPUF, 8, // CPU Family
|
||||||
|
CPUM, 8, // CPU Model
|
||||||
|
CPUS, 8, // CPU Stepping
|
||||||
|
|
||||||
|
Offset(0x50),
|
||||||
|
OEMM, 8, // OEM Charger Mode
|
||||||
|
OEMF, 8, // OEM Charger Mode F
|
||||||
|
|
||||||
|
Offset(0x70),
|
||||||
|
FLKE, 8, // Function Lock State
|
||||||
|
|
||||||
|
Offset(0x74),
|
||||||
|
P0MV, 8, // PD Port 0 Major Version
|
||||||
|
P0SV, 8, // PD Port 0 Minor Version
|
||||||
|
P1MV, 8, // PD Port 1 Major Version
|
||||||
|
P1SV, 8, // PD Port 1 Minor Version
|
||||||
|
USMA, 8, // USCI Major Revision
|
||||||
|
USMI, 8, // USCI Minor Revision
|
||||||
|
USRV, 8, // USCI Revision Version
|
||||||
|
|
||||||
|
Offset(0x7f),
|
||||||
|
LSTE, 1, // Lid Status
|
||||||
|
, 7, // Reserved
|
||||||
|
|
||||||
|
Offset (0x80),
|
||||||
|
ECPS, 8, // AC & Battery status
|
||||||
|
B1MN, 8, // Battery Model Number Code
|
||||||
|
B1SN, 16, // Battery Serial Number
|
||||||
|
B1DC, 16, // Battery Design Capacity
|
||||||
|
B1DV, 16, // Battery Design Voltage
|
||||||
|
B1FC, 16, // Battery Last Full Charge Capacity
|
||||||
|
B1TP, 16, // Battery Trip Point
|
||||||
|
B1ST, 8, // Battery State
|
||||||
|
B1PR, 16, // Battery Present Rate
|
||||||
|
B1RC, 16, // Battery Remaining Capacity
|
||||||
|
B1PV, 16, // Battery Present Voltage
|
||||||
|
BPRP, 8, // Battery Remaining percentage
|
||||||
|
|
||||||
|
|
||||||
|
Offset(0xb0),
|
||||||
|
UCSV, 16, // UCSI DS Version
|
||||||
|
UCSD, 16, // UCSI DS Reserved
|
||||||
|
CCI0, 8, // UCSI DS CCI 0
|
||||||
|
CCI1, 8, // UCSI DS CCI 1
|
||||||
|
CCI2, 8, // UCSI DS CCI 2
|
||||||
|
CCI3, 8, // UCSI DS CCI 3
|
||||||
|
CTL0, 8, // UCSI DS Control 0
|
||||||
|
CTL1, 8, // UCSI DS Control 0
|
||||||
|
CTL2, 8, // UCSI DS Control 0
|
||||||
|
CTL3, 8, // UCSI DS Control 0
|
||||||
|
CTL4, 8, // UCSI DS Control 0
|
||||||
|
CTL5, 8, // UCSI DS Control 0
|
||||||
|
CTL6, 8, // UCSI DS Control 0
|
||||||
|
CTL7, 8, // UCSI DS Control 0
|
||||||
|
|
||||||
|
Offset(0xc0),
|
||||||
|
MGI0, 8, // UCSI DS MGI 0
|
||||||
|
MGI1, 8, // UCSI DS MGI 1
|
||||||
|
MGI2, 8, // UCSI DS MGI 2
|
||||||
|
MGI3, 8, // UCSI DS MGI 3
|
||||||
|
MGI4, 8, // UCSI DS MGI 4
|
||||||
|
MGI5, 8, // UCSI DS MGI 5
|
||||||
|
MGI6, 8, // UCSI DS MGI 6
|
||||||
|
MGI7, 8, // UCSI DS MGI 7
|
||||||
|
MGI8, 8, // UCSI DS MGI 8
|
||||||
|
MGI9, 8, // UCSI DS MGI 9
|
||||||
|
MGIA, 8, // UCSI DS MGI A
|
||||||
|
MGIB, 8, // UCSI DS MGI B
|
||||||
|
MGIC, 8, // UCSI DS MGI C
|
||||||
|
MGID, 8, // UCSI DS MGI D
|
||||||
|
MGIE, 8, // UCSI DS MGI E
|
||||||
|
MGIF, 8, // UCSI DS MGI F
|
||||||
|
|
||||||
|
Offset(0xd0),
|
||||||
|
MGO0, 8, // UCSI DS MGO 0
|
||||||
|
MGO1, 8, // UCSI DS MGO 1
|
||||||
|
MGO2, 8, // UCSI DS MGO 2
|
||||||
|
MGO3, 8, // UCSI DS MGO 3
|
||||||
|
MGO4, 8, // UCSI DS MGO 4
|
||||||
|
MGO5, 8, // UCSI DS MGO 5
|
||||||
|
MGO6, 8, // UCSI DS MGO 6
|
||||||
|
MGO7, 8, // UCSI DS MGO 7
|
||||||
|
MGO8, 8, // UCSI DS MGO 8
|
||||||
|
MGO9, 8, // UCSI DS MGO 9
|
||||||
|
MGOA, 8, // UCSI DS MGO A
|
||||||
|
MGOB, 8, // UCSI DS MGO B
|
||||||
|
MGOC, 8, // UCSI DS MGO C
|
||||||
|
MGOD, 8, // UCSI DS MGO D
|
||||||
|
MGOE, 8, // UCSI DS MGO E
|
||||||
|
MGOF, 8, // UCSI DS MGO F
|
||||||
|
|
||||||
|
Offset(0xe6),
|
||||||
|
ECWD, 16, // EC Wakeup Delay
|
||||||
|
ECWE, 8, // EC Wakeup Enable
|
||||||
|
|
||||||
|
Offset(0xf7),
|
||||||
|
TBTC, 8, // Thunderbolt Command
|
||||||
|
TBTP, 8, // Thunderbolt Data Port
|
||||||
|
TBTD, 8, // Thunderbolt Data
|
||||||
|
TBTA, 8, // Thunderbolt Acknowledge
|
||||||
|
TBTG, 16, // Thunderbolt DBG Data
|
||||||
|
}
|
|
@ -0,0 +1,258 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
Method (_Q01, 0, NotSerialized) // Event: F1 Hot Key
|
||||||
|
{
|
||||||
|
Printf ("EC: F1")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q02, 0, NotSerialized) // Event: F2 Hot Key
|
||||||
|
{
|
||||||
|
Printf ("EC: F2")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q03, 0, NotSerialized) // Event: F3 Hot Key
|
||||||
|
{
|
||||||
|
Printf ("EC: F3")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q04, 0, NotSerialized) // Event: F4 Hot Key
|
||||||
|
{
|
||||||
|
Printf ("EC: F4")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q05, 0, NotSerialized) // Event: F5 Hot Key
|
||||||
|
{
|
||||||
|
Printf ("EC: F5")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q06, 0, NotSerialized) // Event: F6 Hot Key
|
||||||
|
{
|
||||||
|
Printf ("EC: F6")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q07, 0, NotSerialized) // Event: F7 Hot Key
|
||||||
|
{
|
||||||
|
Printf ("EC: F7")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q08, 0, NotSerialized) // Event: Backlight Brightness Down
|
||||||
|
{
|
||||||
|
^^^^HIDD.HPEM (20)
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q09, 0, NotSerialized) // Event: Backlight Brightness Up
|
||||||
|
{
|
||||||
|
^^^^HIDD.HPEM (19)
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q10, 0, NotSerialized) // Event: F10 Hot Key
|
||||||
|
{
|
||||||
|
Printf ("EC: F10")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q11, 0, NotSerialized) // Event: F11 Hot Key
|
||||||
|
{
|
||||||
|
Printf ("EC: F11")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q12, 0, NotSerialized) // Event: F12 Hot Key
|
||||||
|
{
|
||||||
|
Printf ("EC: F12")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q0A, 0, NotSerialized) // Event: AC Power Connected
|
||||||
|
{
|
||||||
|
Notify (BAT0, 0x81)
|
||||||
|
Notify (ADP1, 0x80)
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q0B, 0, NotSerialized) // Event: AC Power Disconnected
|
||||||
|
{
|
||||||
|
Notify (BAT0, 0x81)
|
||||||
|
Notify (BAT0, 0x80)
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q0C, 0, NotSerialized) // Event: Lid Closed
|
||||||
|
{
|
||||||
|
\LIDS = LSTE
|
||||||
|
Notify (LID0, 0x80)
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q0D, 0, NotSerialized) // Event: Lid Opened
|
||||||
|
{
|
||||||
|
\LIDS = LSTE
|
||||||
|
Notify (LID0, 0x80)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Method (_Q0E, 0, NotSerialized) // Event: SLEEP
|
||||||
|
{
|
||||||
|
Printf ("EC: SLEEP")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q13, 0, NotSerialized) // Event: BRIGHTNESS
|
||||||
|
{
|
||||||
|
Printf ("EC: BRIGHTNESS")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Method (_Q20, 0, NotSerialized) // Event: CPU_T
|
||||||
|
{
|
||||||
|
Printf ("EC: CPU_T")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q21, 0, NotSerialized) // Event: SKIN_T
|
||||||
|
{
|
||||||
|
Printf ("EC: SKIN_T")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q22, 0, NotSerialized) // Event: CHARGER_T
|
||||||
|
{
|
||||||
|
Printf ("EC: CHARGER_T")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q30, 0, NotSerialized) // Event: THROT_OFF
|
||||||
|
{
|
||||||
|
Printf ("EC: THROT_OFF")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q31, 0, NotSerialized) // Event: THROT_LV1
|
||||||
|
{
|
||||||
|
Printf ("EC: THROT_LV1")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q32, 0, NotSerialized) // Event: THROT_LV2
|
||||||
|
{
|
||||||
|
Printf ("EC: THROT_LV2")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q33, 0, NotSerialized) // Event: THROT_LV3
|
||||||
|
{
|
||||||
|
Printf ("EC: THROT_LV3")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q34, 0, NotSerialized) // Event: THROT_LV4
|
||||||
|
{
|
||||||
|
Printf ("EC: THROT_LV4")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q35, 0, NotSerialized) // Event: THROT_LV5
|
||||||
|
{
|
||||||
|
Printf ("EC: THROT_LV5")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q36, 0, NotSerialized) // Event: THROT_LV6
|
||||||
|
{
|
||||||
|
Printf ("EC: THROT_LV6")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q37, 0, NotSerialized) // Event: THROT_LV7
|
||||||
|
{
|
||||||
|
Printf ("EC: THROT_LV7")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q3B, 0, NotSerialized) // Event: CPU_DN_SPEED
|
||||||
|
{
|
||||||
|
Printf ("EC: CPU_DN_SPEED")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q3C, 0, NotSerialized) // Event: CPU_UP_SPEED
|
||||||
|
{
|
||||||
|
Printf ("EC: CPU_UP_SPEED")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q3D, 0, NotSerialized) // Event: CPU_TURBO_OFF
|
||||||
|
{
|
||||||
|
Printf ("EC: CPU_TURBO_OFF")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q3E, 0, NotSerialized) // Event: CPU_TURBO_ON
|
||||||
|
{
|
||||||
|
Printf ("EC: CPU_TURBO_ON")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q3F, 0, NotSerialized) // Event: SHUTDOWN
|
||||||
|
{
|
||||||
|
Printf ("EC: SHUTDOWN")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q40, 0, NotSerialized) // Event: AC and DC Power
|
||||||
|
{
|
||||||
|
SMB2 = 0xC6
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q41, 0, NotSerialized) // Event: Battery Charge between 0% and 20%
|
||||||
|
{
|
||||||
|
SMB2 = 0xC7
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q42, 0, NotSerialized) // Event: Battery Charge between 20% and 60%
|
||||||
|
{
|
||||||
|
SMB2 = 0xC8
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q43, 0, NotSerialized) // Event: Battery Charge between 60% and 100%
|
||||||
|
{
|
||||||
|
SMB2 = 0xC9
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q44, 0, NotSerialized) // Event: AC Power Only
|
||||||
|
{
|
||||||
|
SMB2 = 0xCA
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q54, 0, NotSerialized) // Event: Power Button Press
|
||||||
|
{
|
||||||
|
Printf ("EC: PWRBTN")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q79, 0, NotSerialized) // Event: USB Type-C
|
||||||
|
{
|
||||||
|
Printf ("EC: USB Type-C")
|
||||||
|
UCEV()
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q80, 0, NotSerialized) // Event: Volume Up
|
||||||
|
{
|
||||||
|
Printf ("EC: VOLUME_UP")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q81, 0, NotSerialized) // Event: Volume Down
|
||||||
|
{
|
||||||
|
Printf ("EC: VOLUME_DOWN")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q85, 0, NotSerialized) // Event: HOME
|
||||||
|
{
|
||||||
|
Printf ("EC: HOME")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q87, 0, NotSerialized) // Event: Function Lock
|
||||||
|
{
|
||||||
|
Printf ("EC: Function Lock")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_QD5, 0, NotSerialized) // Event: 10 Second Power Button Pressed
|
||||||
|
{
|
||||||
|
Notify (HIDD, 0xCE)
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_QD6, 0, NotSerialized) // Event: 10 Second Power Button Released
|
||||||
|
{
|
||||||
|
Notify (HIDD, 0xCF)
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_QF0, 0, NotSerialized) // Event: Temperature Report
|
||||||
|
{
|
||||||
|
Printf ("EC: Temperature Report")
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_QF1, 0, NotSerialized) // Event: Temperature Trigger
|
||||||
|
{
|
||||||
|
// Notify (SEN3, 0x90)
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (_Q99, 0, NotSerialized) // Event: Airplane Mode
|
||||||
|
{
|
||||||
|
^^^^HIDD.HPEM (8)
|
||||||
|
}
|
Loading…
Reference in New Issue