• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/* SPDX-License-Identifier: GPL-2.0-only */
2
3// Notifications:
4//   0x80 - hardware backlight toggle
5//   0x81 - backlight toggle
6//   0x82 - backlight down
7//   0x83 - backlight up
8//   0x84 - backlight color change
9Device (S76D) {
10	Name (_HID, "17761776")
11	Name (_UID, 0)
12
13	Method (RSET, 0, Serialized) {
14		Printf ("S76D: RSET")
15		SAPL(0)
16		SKBL(0)
17	}
18
19	Method (INIT, 0, Serialized) {
20		Printf ("S76D: INIT")
21		RSET()
22		If (^^PCI0.LPCB.EC0.ECOK) {
23			// Set flags to use software control
24			^^PCI0.LPCB.EC0.ECOS = 2
25			Return (0)
26		} Else {
27			Return (1)
28		}
29	}
30
31	Method (FINI, 0, Serialized) {
32		Printf ("S76D: FINI")
33		RSET()
34		If (^^PCI0.LPCB.EC0.ECOK) {
35			// Set flags to use hardware control
36			^^PCI0.LPCB.EC0.ECOS = 1
37			Return (0)
38		} Else {
39			Return (1)
40		}
41	}
42
43	// Get Airplane LED
44	Method (GAPL, 0, Serialized) {
45		If (^^PCI0.LPCB.EC0.ECOK) {
46			If (^^PCI0.LPCB.EC0.AIRP & 0x40) {
47				Return (1)
48			}
49		}
50		Return (0)
51	}
52
53	// Set Airplane LED
54	Method (SAPL, 1, Serialized) {
55		If (^^PCI0.LPCB.EC0.ECOK) {
56			If (Arg0) {
57				^^PCI0.LPCB.EC0.AIRP |= 0x40
58			} Else {
59				^^PCI0.LPCB.EC0.AIRP &= 0xBF
60			}
61		}
62	}
63
64	// Get KB LED
65	Method (GKBL, 0, Serialized) {
66		Local0 = 0
67		If (^^PCI0.LPCB.EC0.ECOK) {
68			^^PCI0.LPCB.EC0.FDAT = 1
69			^^PCI0.LPCB.EC0.FCMD = 0xCA
70			Local0 = ^^PCI0.LPCB.EC0.FBUF
71			^^PCI0.LPCB.EC0.FCMD = 0
72		}
73		Return (Local0)
74	}
75
76	// Set KB Led
77	Method (SKBL, 1, Serialized) {
78		If (^^PCI0.LPCB.EC0.ECOK) {
79			^^PCI0.LPCB.EC0.FDAT = 0
80			^^PCI0.LPCB.EC0.FBUF = Arg0
81			^^PCI0.LPCB.EC0.FCMD = 0xCA
82		}
83	}
84}
85