/* 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
	FRMF, 8,	// Force Mirror Flag
	TXEL, 8,	// TXE Lock

	Offset(0x10),
	CPWR, 8,	// Control Power
	CDEV, 8,	// Control Device
	OSFG, 8,	// OS Flag
	CWFU, 8,	// CW2015 Full
	TPLE, 8,	// Trackpad State
	AFG3, 8,	// After G3
	CLTP, 8,	// Close Trackpad
	WKOL, 8,	// Wake on Lid
	KLBE, 8,	// Keyboard Backlight Brightness
	KLSE, 8,	// Keyboard Backlight State

	Offset(0x1a),
	KLTE, 8,	// Keyboard Backlight Timeout

	Offset(0x22),
	ECT0, 8,	// EC Build Time 0
	ECT1, 8,	// EC Build Time 1
	ECT2, 8,	// EC Build Time 2
	ECT3, 8,	// EC Build Time 3
	ECT4, 8,	// EC Build Time 4
	ECT5, 8,	// EC Build Time 5
	ECT6, 8,	// EC Build Time 6
	ECT7, 8,	// EC Build Time 7
	ECT8, 8,	// EC Build Time 8
	ECT9, 8,	// EC Build Time 9

	Offset(0x2c),
	FLKE, 8,	// Function Lock State

	Offset(0x30),
	STEF, 8,	// Sensor T Error F
	ECD0, 8,	// EC Build Date 0
	ECD1, 8,	// EC Build Date 1
	ECD2, 8,	// EC Build Date 2
	ECD3, 8,	// EC Build Date 3
	ECD4, 8,	// EC Build Date 4
	ECD5, 8,	// EC Build Date 5
	ECD6, 8,	// EC Build Date 6
	ECD7, 8,	// EC Build Date 7
	ECD8, 8,	// EC Build Date 8
	ECD9, 8,	// EC Build Date 9

	Offset(0x40),
	SHIP, 8,        // Shipping Mode Flag
	LEDF, 8,	// LED Control Flag
	LIDF, 8,	// Lid Flag
	KBFL, 8,	// Keyboard Flag
	CYCC, 8,	// Cycle Count

	Offset(0x46),
	BFCP, 8,	// Battery Full Charge Percentage

	Offset(0x62),
	TSE2, 8,	// Sensor 2 Temperature
	SENF, 8,	// Sensor F
	TSHT, 8,	// Thermal Sensor High Trip Point
	TSLT, 8,	// Thermal Sensor Low Trip Point
	THER, 8,	// Thermal Source

	Offset(0x70),
	CPUT, 8,	// PECI CPU Temperature
	PMXT, 8,	// PLMX Temperature
	CHAR, 8,	// Charger Temperature

	Offset(0x7e),
	OCTF, 8,	// OEM Control Flag
	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, 16,	// Battery Remaining percentage

	Offset(0x9d),
	OPWE, 8,	// OPM write to EC flag for UCSI

	Offset(0xbf),
	EJ8A, 8,	// EJ898A Firmware Version

	Offset(0xc0),
	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(0xd0),
	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(0xe0),
	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(0xf0),
	P0SD, 8,	// PD Port Status DD
	P0S4, 8,	// PD Port Status 4
	P0S5, 8,	// PD Port Status 5
	P0SE, 8,	// PD Port Status E
	P0SA, 8,	// PD Port Status 10
	P0SB, 8,	// PD Port Status 11

	Offset(0xfd),
	STCD, 8,	// Shutdown Code
	EJ8R, 8,	// EJ898A Need Reboot
	EJ8E, 8,	// EJ898A Error
}
