[SeaBIOS] [RFC][PATCH 1/2] acpi: add ASL for Embedded Controller
li guang
lig.fnst at cn.fujitsu.com
Thu Apr 18 03:25:29 CEST 2013
在 2013-04-17三的 07:46 -0600,Marc Jones写道:
> What EC is this for? The device and interface is defined by the spec,
> but the offsets and methods are custom for every EC.
>
>
you're mostly right,
the specific content ACPI space will vary
for different boards, this one just for
a common case
>
>
> Marc
>
>
> On Wed, Apr 17, 2013 at 1:22 AM, liguang <lig.fnst at cn.fujitsu.com>
> wrote:
> defined at ACPI SPEC v5 chapter 12:
> "ACPI Embedded Controller Interface Specification"
>
> Signed-off-by: liguang <lig.fnst at cn.fujitsu.com>
> ---
> src/acpi-dsdt-ec.dsl | 106
> ++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 106 insertions(+), 0 deletions(-)
> create mode 100644 src/acpi-dsdt-ec.dsl
>
> diff --git a/src/acpi-dsdt-ec.dsl b/src/acpi-dsdt-ec.dsl
> new file mode 100644
> index 0000000..6bd8edd
> --- /dev/null
> +++ b/src/acpi-dsdt-ec.dsl
> @@ -0,0 +1,106 @@
> +/*
> + * This program is free software; you can redistribute it
> and/or modify
> + * it under the terms of the GNU General Public License as
> published by
> + * the Free Software Foundation; version 2 of the License.
> + *
> + * This program is distributed in the hope that it will be
> useful,
> + * but WITHOUT ANY WARRANTY; without even the implied
> warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
> the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public
> License
> + * along with this program; if not, write to the Free
> Software
> + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
> 02110-1301 USA
> + */
> +
> +
> +Device (EC0)
> +{
> + Name (_HID, EISAID ("PNP0C09"))
> + Name(_UID, 1)
> +
> + Method(_CRS, 0)
> + {
> + Name(BFFR, ResourceTemplate()
> + {
> + IO(Decode16, 0x62, 0x62, 0, 1) // ACPI
> DATA IN/OUT
> + IO(Decode16, 0x66, 0x66, 0, 1) // CMD/STS
> + IRQ(Edge, ActiveHigh, Exclusive) {0x0B}
> + })
> + Return(BFFR)
> + }
> +
> + OperationRegion(ECF0, EmbeddedControl, 0, 0xFF)
> + Field(ECF2, ByteAcc, Lock, Preserve)
> + {
> + Offset(1),
> + STMP, 8, // 1, Sensor Temperature
> + ACPW, 8, // 2, AC Power (AC
> Present = 1, else 0)
> + LIDS, 8, // 3, Lid State (Lid Open
> = 1, else 0)
> + PBNS, 8, // 4, Power Button State
> (Pressed = 1, else 0)
> + BTST, 8, // 5, Battery Status
> + BTCR, 8, // 6, Battery Current
> Rate
> + BTCC, 8, // 7, Battery Current
> Capacity
> + BTVT, 8, // 8, Battery Voltage
> + offset(0x10),
> + SPTR, 8, // 5, SMBus Protocol
> Register
> + SSTS, 8, // 5, SMBus Status
> Register
> + SADR, 8, // 6, SMBus Address
> Register
> + SCMD, 8, // 7, SMBus Command
> Register
> + SBFR, 256, // 8, SMBus Block Buffer
> + SCNT, 8, // 40, SMBus Block Count
> + }
> +
> + Method(_REG, 2)
> + {
> + }
> +
> + /* AC status: present */
> + Method(_Q01, 0, NotSerialized)
> + {
> + Notify (AC, 0x80)
> + }
> +
> + /* AC status: dispear*/
> + Method(_Q02, 0, NotSerialized)
> + {
> + Notify (AC, 0x80)
> + }
> +
> + Method(_Q04, 0, NotSerialized)
> + {
> + Notify(LID, 0x80)
> + }
> +
> + Method(_Q04, 0, NotSerialized)
> + {
> + Notify(LID, 0x80)
> + }
> +
> + Device(AC)
> + {
> + Name(_HID, "ACPI0003")
> + Name(_UID, 0x00)
> + Name(_PCL, Package() { \_SB } )
> +
> + Method(_PSR, 0, NotSerialized)
> + {
> + return (ACPW)
> + }
> +
> + Method(_STA, 0, NotSerialized)
> + {
> + Return (0x0f)
> + }
> + }
> +
> + Device(LID)
> + {
> + Name(_HID, "PNP0C0D")
> +
> + Method(_LID, 0, NotSerialized)
> + {
> + return (LIDS)
> + }
> + }
> +}
> --
> 1.7.2.5
>
>
> _______________________________________________
> SeaBIOS mailing list
> SeaBIOS at seabios.org
> http://www.seabios.org/mailman/listinfo/seabios
>
>
>
>
> --
> http://se-eng.com
More information about the SeaBIOS
mailing list