Vishal Bhoj | 82c8071 | 2015-12-15 21:13:33 +0530 | [diff] [blame^] | 1 | /** @file
|
| 2 | Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>
|
| 3 | This program and the accompanying materials
|
| 4 | are licensed and made available under the terms and conditions of the BSD License
|
| 5 | which accompanies this distribution. The full text of the license may be found at
|
| 6 | http://opensource.org/licenses/bsd-license.php
|
| 7 |
|
| 8 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
| 9 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
| 10 |
|
| 11 | **/
|
| 12 |
|
| 13 | Device(IOTD) {
|
| 14 | Name(_HID, "MSFT8000")
|
| 15 | Name(_CID, "MSFT8000")
|
| 16 |
|
| 17 | Name(_CRS, ResourceTemplate() {
|
| 18 | // Index 0
|
| 19 | SPISerialBus( // Pin 5, 7, 9 , 11 of JP1 for SIO_SPI
|
| 20 | 1, // Device selection
|
| 21 | PolarityLow, // Device selection polarity
|
| 22 | FourWireMode, // wiremode
|
| 23 | 8, // databit len
|
| 24 | ControllerInitiated, // slave mode
|
| 25 | 8000000, // Connection speed
|
| 26 | ClockPolarityLow, // Clock polarity
|
| 27 | ClockPhaseSecond, // clock phase
|
| 28 | "\\_SB.SPI1", // ResourceSource: SPI bus controller name
|
| 29 | 0, // ResourceSourceIndex
|
| 30 | ResourceConsumer, // Resource usage
|
| 31 | JSPI, // DescriptorName: creates name for offset of resource descriptor
|
| 32 | ) // Vendor Data
|
| 33 |
|
| 34 | // Index 1
|
| 35 | I2CSerialBus( // Pin 13, 15 of JP1, for SIO_I2C5 (signal)
|
| 36 | 0x00, // SlaveAddress: bus address (TBD)
|
| 37 | , // SlaveMode: default to ControllerInitiated
|
| 38 | 400000, // ConnectionSpeed: in Hz
|
| 39 | , // Addressing Mode: default to 7 bit
|
| 40 | "\\_SB.I2C6", // ResourceSource: I2C bus controller name (For MinnowBoard Max, hardware I2C5(0-based) is reported as ACPI I2C6(1-based))
|
| 41 | ,
|
| 42 | ,
|
| 43 | JI2C, // Descriptor Name: creates name for offset of resource descriptor
|
| 44 | ) // VendorData
|
| 45 |
|
| 46 | // Index 2
|
| 47 | UARTSerialBus( // Pin 17, 19 of JP1, for SIO_UART2
|
| 48 | 115200, // InitialBaudRate: in bits ber second
|
| 49 | , // BitsPerByte: default to 8 bits
|
| 50 | , // StopBits: Defaults to one bit
|
| 51 | 0xfc, // LinesInUse: 8 1-bit flags to declare line enabled
|
| 52 | , // IsBigEndian: default to LittleEndian
|
| 53 | , // Parity: Defaults to no parity
|
| 54 | , // FlowControl: Defaults to no flow control
|
| 55 | 32, // ReceiveBufferSize
|
| 56 | 32, // TransmitBufferSize
|
| 57 | "\\_SB.URT2", // ResourceSource: UART bus controller name
|
| 58 | ,
|
| 59 | ,
|
| 60 | UAR2, // DescriptorName: creates name for offset of resource descriptor
|
| 61 | )
|
| 62 |
|
| 63 | // Index 3
|
| 64 | GpioIo (Shared, PullDefault, 0, 0, IoRestrictionNone, "\\_SB.GPO2",) {0} // Pin 21 of JP1 (GPIO_S5[00])
|
| 65 | // Index 4
|
| 66 | GpioInt(Edge, ActiveBoth, SharedAndWake, PullNone, 0,"\\_SB.GPO2",) {0}
|
| 67 |
|
| 68 | // Index 5
|
| 69 | GpioIo (Shared, PullDefault, 0, 0, IoRestrictionNone, "\\_SB.GPO2",) {1} // Pin 23 of JP1 (GPIO_S5[01])
|
| 70 | // Index 6
|
| 71 | GpioInt(Edge, ActiveBoth, SharedAndWake, PullNone, 0,"\\_SB.GPO2",) {1}
|
| 72 |
|
| 73 | // Index 7
|
| 74 | GpioIo (Shared, PullDefault, 0, 0, IoRestrictionNone, "\\_SB.GPO2",) {2} // Pin 25 of JP1 (GPIO_S5[02])
|
| 75 | // Index 8
|
| 76 | GpioInt(Edge, ActiveBoth, SharedAndWake, PullNone, 0,"\\_SB.GPO2",) {2}
|
| 77 |
|
| 78 | // Index 9
|
| 79 | UARTSerialBus( // Pin 6, 8, 10, 12 of JP1, for SIO_UART1
|
| 80 | 115200, // InitialBaudRate: in bits ber second
|
| 81 | , // BitsPerByte: default to 8 bits
|
| 82 | , // StopBits: Defaults to one bit
|
| 83 | 0xfc, // LinesInUse: 8 1-bit flags to declare line enabled
|
| 84 | , // IsBigEndian: default to LittleEndian
|
| 85 | , // Parity: Defaults to no parity
|
| 86 | FlowControlHardware, // FlowControl: Defaults to no flow control
|
| 87 | 32, // ReceiveBufferSize
|
| 88 | 32, // TransmitBufferSize
|
| 89 | "\\_SB.URT1", // ResourceSource: UART bus controller name
|
| 90 | ,
|
| 91 | ,
|
| 92 | UAR1, // DescriptorName: creates name for offset of resource descriptor
|
| 93 | )
|
| 94 |
|
| 95 | // Index 10
|
| 96 | GpioIo (Shared, PullDefault, 0, 0, IoRestrictionNone, "\\_SB.GPO0",) {62} // Pin 14 of JP1 (GPIO_SC[62])
|
| 97 | // Index 11
|
| 98 | GpioInt(Edge, ActiveBoth, SharedAndWake, PullNone, 0,"\\_SB.GPO0",) {62}
|
| 99 |
|
| 100 | // Index 12
|
| 101 | GpioIo (Shared, PullDefault, 0, 0, IoRestrictionNone, "\\_SB.GPO0",) {63} // Pin 16 of JP1 (GPIO_SC[63])
|
| 102 | // Index 13
|
| 103 | GpioInt(Edge, ActiveBoth, SharedAndWake, PullNone, 0,"\\_SB.GPO0",) {63}
|
| 104 |
|
| 105 | // Index 14
|
| 106 | GpioIo (Shared, PullDefault, 0, 0, IoRestrictionNone, "\\_SB.GPO0",) {65} // Pin 18 of JP1 (GPIO_SC[65])
|
| 107 | // Index 15
|
| 108 | GpioInt(Edge, ActiveBoth, SharedAndWake, PullNone, 0,"\\_SB.GPO0",) {65}
|
| 109 |
|
| 110 | // Index 16
|
| 111 | GpioIo (Shared, PullDefault, 0, 0, IoRestrictionNone, "\\_SB.GPO0",) {64} // Pin 20 of JP1 (GPIO_SC[64])
|
| 112 | // Index 17
|
| 113 | GpioInt(Edge, ActiveBoth, SharedAndWake, PullNone, 0,"\\_SB.GPO0",) {64}
|
| 114 |
|
| 115 | // Index 18
|
| 116 | GpioIo (Shared, PullDefault, 0, 0, IoRestrictionNone, "\\_SB.GPO0",) {94} // Pin 22 of JP1 (GPIO_SC[94])
|
| 117 | // Index 19
|
| 118 | GpioInt(Edge, ActiveBoth, SharedAndWake, PullNone, 0,"\\_SB.GPO0",) {94}
|
| 119 |
|
| 120 | // Index 20
|
| 121 | GpioIo (Shared, PullDefault, 0, 0, IoRestrictionNone, "\\_SB.GPO0",) {95} // Pin 24 of JP1 (GPIO_SC[95])
|
| 122 | // Index 21
|
| 123 | GpioInt(Edge, ActiveBoth, SharedAndWake, PullNone, 0,"\\_SB.GPO0",) {95}
|
| 124 |
|
| 125 | // Index 22
|
| 126 | GpioIo (Shared, PullDefault, 0, 0, IoRestrictionNone, "\\_SB.GPO0",) {54} // Pin 26 of JP1 (GPIO_SC[54])
|
| 127 | // Index 23
|
| 128 | GpioInt(Edge, ActiveBoth, SharedAndWake, PullNone, 0,"\\_SB.GPO0",) {54}
|
| 129 | })
|
| 130 |
|
| 131 | Name(_DSD, Package() {
|
| 132 | ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
|
| 133 | Package(1) { // Just one Property for IOT (at this time)
|
| 134 | Package(2) { //The symbolic-identifiers property
|
| 135 | "symbolic-identifiers",
|
| 136 | Package() { //Contains all the <resource index, symbolic-identifier> pairs
|
| 137 | 0, "SPI0",
|
| 138 | 1, "I2C5",
|
| 139 | 2, "UART2",
|
| 140 | 3, 21, // Pin 21 of JP1 (GPIO_S5[00])
|
| 141 | 4, 21, // Pin 21 for separate resource.
|
| 142 | 5, 23, // Pin 23 of JP1 (GPIO_S5[01])
|
| 143 | 6, 23,
|
| 144 | 7, 25, // Pin 25 of JP1 (GPIO_S5[02])
|
| 145 | 8, 25,
|
| 146 | 9, "UART1",
|
| 147 | 10, 14, // Pin 14 of JP1 (GPIO_SC[62])
|
| 148 | 11, 14,
|
| 149 | 12, 16, // Pin 16 of JP1 (GPIO_SC[63])
|
| 150 | 13, 16,
|
| 151 | 14, 18, // Pin 18 of JP1 (GPIO_SC[65])
|
| 152 | 15, 18,
|
| 153 | 16, 20, // Pin 20 of JP1 (GPIO_SC[64])
|
| 154 | 17, 20,
|
| 155 | 18, 22, // Pin 22 of JP1 (GPIO_SC[94])
|
| 156 | 19, 22,
|
| 157 | 20, 24, // Pin 24 of JP1 (GPIO_SC[95])
|
| 158 | 21, 24,
|
| 159 | 22, 26, // Pin 26 of JP1 (GPIO_SC[54])
|
| 160 | 23, 26
|
| 161 | }
|
| 162 | }
|
| 163 | }
|
| 164 | })
|
| 165 |
|
| 166 | Method(_STA,0,Serialized) {
|
| 167 |
|
| 168 | //
|
| 169 | // Only report IoT virtual device when all pins' configuration follows MSFT's datasheet.
|
| 170 | //
|
| 171 | If (LEqual(IOT, 1)) {
|
| 172 | Return (0xF)
|
| 173 | }
|
| 174 |
|
| 175 | Return (0x0)
|
| 176 | }
|
| 177 | }
|