/** @file | |
Copyright (c) 2014, Intel Corporation. All rights reserved.<BR> | |
This program and the accompanying materials | |
are licensed and made available under the terms and conditions of the BSD License | |
which accompanies this distribution. The full text of the license may be found at | |
http://opensource.org/licenses/bsd-license.php | |
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
**/ | |
Device(IOTD) { | |
Name(_HID, "MSFT8000") | |
Name(_CID, "MSFT8000") | |
Name(_CRS, ResourceTemplate() { | |
// Index 0 | |
SPISerialBus( // Pin 5, 7, 9 , 11 of JP1 for SIO_SPI | |
1, // Device selection | |
PolarityLow, // Device selection polarity | |
FourWireMode, // wiremode | |
8, // databit len | |
ControllerInitiated, // slave mode | |
8000000, // Connection speed | |
ClockPolarityLow, // Clock polarity | |
ClockPhaseSecond, // clock phase | |
"\\_SB.SPI1", // ResourceSource: SPI bus controller name | |
0, // ResourceSourceIndex | |
ResourceConsumer, // Resource usage | |
JSPI, // DescriptorName: creates name for offset of resource descriptor | |
) // Vendor Data | |
// Index 1 | |
I2CSerialBus( // Pin 13, 15 of JP1, for SIO_I2C5 (signal) | |
0x00, // SlaveAddress: bus address (TBD) | |
, // SlaveMode: default to ControllerInitiated | |
400000, // ConnectionSpeed: in Hz | |
, // Addressing Mode: default to 7 bit | |
"\\_SB.I2C6", // ResourceSource: I2C bus controller name (For MinnowBoard Max, hardware I2C5(0-based) is reported as ACPI I2C6(1-based)) | |
, | |
, | |
JI2C, // Descriptor Name: creates name for offset of resource descriptor | |
) // VendorData | |
// Index 2 | |
UARTSerialBus( // Pin 17, 19 of JP1, for SIO_UART2 | |
115200, // InitialBaudRate: in bits ber second | |
, // BitsPerByte: default to 8 bits | |
, // StopBits: Defaults to one bit | |
0xfc, // LinesInUse: 8 1-bit flags to declare line enabled | |
, // IsBigEndian: default to LittleEndian | |
, // Parity: Defaults to no parity | |
, // FlowControl: Defaults to no flow control | |
32, // ReceiveBufferSize | |
32, // TransmitBufferSize | |
"\\_SB.URT2", // ResourceSource: UART bus controller name | |
, | |
, | |
UAR2, // DescriptorName: creates name for offset of resource descriptor | |
) | |
// Index 3 | |
GpioIo (Shared, PullDefault, 0, 0, IoRestrictionNone, "\\_SB.GPO2",) {0} // Pin 21 of JP1 (GPIO_S5[00]) | |
// Index 4 | |
GpioInt(Edge, ActiveBoth, SharedAndWake, PullNone, 0,"\\_SB.GPO2",) {0} | |
// Index 5 | |
GpioIo (Shared, PullDefault, 0, 0, IoRestrictionNone, "\\_SB.GPO2",) {1} // Pin 23 of JP1 (GPIO_S5[01]) | |
// Index 6 | |
GpioInt(Edge, ActiveBoth, SharedAndWake, PullNone, 0,"\\_SB.GPO2",) {1} | |
// Index 7 | |
GpioIo (Shared, PullDefault, 0, 0, IoRestrictionNone, "\\_SB.GPO2",) {2} // Pin 25 of JP1 (GPIO_S5[02]) | |
// Index 8 | |
GpioInt(Edge, ActiveBoth, SharedAndWake, PullNone, 0,"\\_SB.GPO2",) {2} | |
// Index 9 | |
UARTSerialBus( // Pin 6, 8, 10, 12 of JP1, for SIO_UART1 | |
115200, // InitialBaudRate: in bits ber second | |
, // BitsPerByte: default to 8 bits | |
, // StopBits: Defaults to one bit | |
0xfc, // LinesInUse: 8 1-bit flags to declare line enabled | |
, // IsBigEndian: default to LittleEndian | |
, // Parity: Defaults to no parity | |
FlowControlHardware, // FlowControl: Defaults to no flow control | |
32, // ReceiveBufferSize | |
32, // TransmitBufferSize | |
"\\_SB.URT1", // ResourceSource: UART bus controller name | |
, | |
, | |
UAR1, // DescriptorName: creates name for offset of resource descriptor | |
) | |
// Index 10 | |
GpioIo (Shared, PullDefault, 0, 0, IoRestrictionNone, "\\_SB.GPO0",) {62} // Pin 14 of JP1 (GPIO_SC[62]) | |
// Index 11 | |
GpioInt(Edge, ActiveBoth, SharedAndWake, PullNone, 0,"\\_SB.GPO0",) {62} | |
// Index 12 | |
GpioIo (Shared, PullDefault, 0, 0, IoRestrictionNone, "\\_SB.GPO0",) {63} // Pin 16 of JP1 (GPIO_SC[63]) | |
// Index 13 | |
GpioInt(Edge, ActiveBoth, SharedAndWake, PullNone, 0,"\\_SB.GPO0",) {63} | |
// Index 14 | |
GpioIo (Shared, PullDefault, 0, 0, IoRestrictionNone, "\\_SB.GPO0",) {65} // Pin 18 of JP1 (GPIO_SC[65]) | |
// Index 15 | |
GpioInt(Edge, ActiveBoth, SharedAndWake, PullNone, 0,"\\_SB.GPO0",) {65} | |
// Index 16 | |
GpioIo (Shared, PullDefault, 0, 0, IoRestrictionNone, "\\_SB.GPO0",) {64} // Pin 20 of JP1 (GPIO_SC[64]) | |
// Index 17 | |
GpioInt(Edge, ActiveBoth, SharedAndWake, PullNone, 0,"\\_SB.GPO0",) {64} | |
// Index 18 | |
GpioIo (Shared, PullDefault, 0, 0, IoRestrictionNone, "\\_SB.GPO0",) {94} // Pin 22 of JP1 (GPIO_SC[94]) | |
// Index 19 | |
GpioInt(Edge, ActiveBoth, SharedAndWake, PullNone, 0,"\\_SB.GPO0",) {94} | |
// Index 20 | |
GpioIo (Shared, PullDefault, 0, 0, IoRestrictionNone, "\\_SB.GPO0",) {95} // Pin 24 of JP1 (GPIO_SC[95]) | |
// Index 21 | |
GpioInt(Edge, ActiveBoth, SharedAndWake, PullNone, 0,"\\_SB.GPO0",) {95} | |
// Index 22 | |
GpioIo (Shared, PullDefault, 0, 0, IoRestrictionNone, "\\_SB.GPO0",) {54} // Pin 26 of JP1 (GPIO_SC[54]) | |
// Index 23 | |
GpioInt(Edge, ActiveBoth, SharedAndWake, PullNone, 0,"\\_SB.GPO0",) {54} | |
}) | |
Name(_DSD, Package() { | |
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), | |
Package(1) { // Just one Property for IOT (at this time) | |
Package(2) { //The symbolic-identifiers property | |
"symbolic-identifiers", | |
Package() { //Contains all the <resource index, symbolic-identifier> pairs | |
0, "SPI0", | |
1, "I2C5", | |
2, "UART2", | |
3, 21, // Pin 21 of JP1 (GPIO_S5[00]) | |
4, 21, // Pin 21 for separate resource. | |
5, 23, // Pin 23 of JP1 (GPIO_S5[01]) | |
6, 23, | |
7, 25, // Pin 25 of JP1 (GPIO_S5[02]) | |
8, 25, | |
9, "UART1", | |
10, 14, // Pin 14 of JP1 (GPIO_SC[62]) | |
11, 14, | |
12, 16, // Pin 16 of JP1 (GPIO_SC[63]) | |
13, 16, | |
14, 18, // Pin 18 of JP1 (GPIO_SC[65]) | |
15, 18, | |
16, 20, // Pin 20 of JP1 (GPIO_SC[64]) | |
17, 20, | |
18, 22, // Pin 22 of JP1 (GPIO_SC[94]) | |
19, 22, | |
20, 24, // Pin 24 of JP1 (GPIO_SC[95]) | |
21, 24, | |
22, 26, // Pin 26 of JP1 (GPIO_SC[54]) | |
23, 26 | |
} | |
} | |
} | |
}) | |
Method(_STA,0,Serialized) { | |
// | |
// Only report IoT virtual device when all pins' configuration follows MSFT's datasheet. | |
// | |
If (LEqual(IOT, 1)) { | |
Return (0xF) | |
} | |
Return (0x0) | |
} | |
} |