2 * This file is part of the coreboot project.
4 * Copyright (C) 2009 coresystems GmbH
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as
8 * published by the Free Software Foundation; version 2 of
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
29 Name(_HID, EisaId("PNP0C0A"))
32 Name(_PCL, Package(){ \_SB })
34 Name(PBST, Package() { 0x00, 0x04b0, 0x0bb8, 0x03e8 })
40 If(\_SB.PCI0.LPCB.EC0.BAT) {
50 Name(PBIF, Package() {
68 And(Local0, 0x10, Local0)
73 Store(\_SB.PCI0.LPCB.EC0.BDC0, Index(PBIF, 1))
74 Store(\_SB.PCI0.LPCB.EC0.BDV0, Index(PBIF, 4))
76 Store(\_SB.PCI0.LPCB.EC0.BFC0, Local0)
77 Store(Local0, Index(PBIF, 2))
79 Divide(Local0, 10, Local1, Local2)
80 Store(Local2, Index(PBIF, 5))
82 Divide(Local0, 20, Local1, Local2)
83 Store(Local2, Index(PBIF, 6))
85 If(\_SB.PCI0.LPCB.EC0.BTYP) {
86 Store(NIMH, Index(PBIF, 11))
88 Store(LION, Index(PBIF, 11))
97 If(\_SB.PCI0.LPCB.EC0.BAT) {
98 Store(\_SB.PCI0.LPCB.EC0.BPV0, Index(PBST, 3))
100 Multiply(\_SB.PCI0.LPCB.EC0.BRC0, 100, Local3)
101 Divide(Local3, \_SB.PCI0.LPCB.EC0.BFC0, Local3, Local0)
102 Multiply(\_SB.PCI0.LPCB.EC0.BFC0, Local0, Local3)
103 Divide(Local3, 0x64, Local3, Local0)
105 Store(Local0, Index(PBST, 2))
107 Store (\_SB.PCI0.LPCB.EC0.BRC0, Local3)
108 Store (\_SB.PCI0.LPCB.EC0.BPR0, Local0)
109 And (Not (Local0), 0xFFFF, Local0)
110 Store (Local0, Index(PBST,1))
112 // AC Power connected?
113 If(\_SB.PCI0.LPCB.EC0.ADP) {
114 If(\_SB.PCI0.LPCB.EC0.CHRG) {
115 Store(2, Index(PBST, 0))
117 Store(0, Index(PBST, 0))
120 If(LLess(Local3, 25)) {
121 Store(5, Index(PBST, 0))
123 Store(1, Index(PBST, 0))
134 Name(_HID, EisaId("PNP0C0A"))
137 Name(_PCL, Package(){ \_SB })
139 Name(PBST, Package() { 0x00, 0x04b0, 0x0bb8, 0x03e8 })
145 If(\_SB.PCI0.LPCB.EC0.BAT2) {
155 Name(PBIF, Package() {
172 Store(_STA(), Local0)
173 And(Local0, 0x10, Local0)
178 Store(\_SB.PCI0.LPCB.EC0.BDC2, Index(PBIF, 1))
179 Store(\_SB.PCI0.LPCB.EC0.BDV2, Index(PBIF, 4))
181 Store(\_SB.PCI0.LPCB.EC0.BFC2, Local0)
182 Store(Local0, Index(PBIF, 2))
184 Divide(Local0, 10, Local1, Local2)
185 Store(Local2, Index(PBIF, 5))
187 Divide(Local0, 20, Local1, Local2)
188 Store(Local2, Index(PBIF, 6))
190 If(\_SB.PCI0.LPCB.EC0.BTY2) {
191 Store(NIMH, Index(PBIF, 11))
193 Store(LION, Index(PBIF, 11))
202 If(\_SB.PCI0.LPCB.EC0.BAT2) {
203 Store(\_SB.PCI0.LPCB.EC0.BPV2, Index(PBST, 3))
205 Multiply(\_SB.PCI0.LPCB.EC0.BRC2, 100, Local3)
206 Divide(Local3, \_SB.PCI0.LPCB.EC0.BFC2, Local3, Local0)
207 Multiply(\_SB.PCI0.LPCB.EC0.BFC2, Local0, Local3)
208 Divide(Local3, 0x64, Local3, Local0)
210 Store(Local0, Index(PBST, 2))
212 Store (\_SB.PCI0.LPCB.EC0.BRC2, Local3)
213 Store (\_SB.PCI0.LPCB.EC0.BPR2, Local0)
214 And (Not (Local0), 0xFFFF, Local0)
215 Store (Local0, Index(PBST,1))
217 // AC Power connected?
218 If(\_SB.PCI0.LPCB.EC0.ADP) {
219 If(\_SB.PCI0.LPCB.EC0.CRG2) {
220 Store(2, Index(PBST, 0))
222 Store(0, Index(PBST, 0))
225 If(LLess(Local3, 25)) {
226 Store(5, Index(PBST, 0))
228 Store(1, Index(PBST, 0))
241 Name (_HID, "ACPI0003")
248 Store(\_SB.PCI0.LPCB.EC0.ADP, Local0)
256 Name(_PCL, Package(){