/**************************************************************************; ;* *; ;* *; ;* Intel Corporation - ACPI Reference Code for the Haswell *; ;* Family of Customer Reference Boards. *; ;* *; ;* *; ;* Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved *; ; ; This program and the accompanying materials are licensed and made available under ; the terms and conditions of the BSD License that 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. ; ;* *; ;* *; ;**************************************************************************/ //scope is \_SB.PCI0.XHC Device(XHC1) { Name(_ADR, 0x00140000) //Device 20, Function 0 //When it is in Host mode, USH core is connected to USB3 microAB(USB3 P1 and USB2 P0) Name (_DDN, "Baytrail XHCI controller (CCG core/Host only)" ) Method(XDEP, 0) { If(LEqual(OSYS,2013)) { Name(_DEP, Package(0x1) { PEPD }) } } Name (_STR, Unicode ("Baytrail XHCI controller (CCG core/Host only)")) Name(_PRW, Package() {0xD,4}) Method(_PSW,1) { If (LAnd (PMES, PMEE)) { Store (0, PMEE) Store (1, PMES) } } OperationRegion (PMEB, PCI_Config, 0x74, 0x04) // Power Management Control/Status Field (PMEB, WordAcc, NoLock, Preserve) { , 8, PMEE, 1, //bit8 PME_En , 6, PMES, 1 //bit15 PME_Status } Method(_STA, 0) { If(LNotEqual(XHCI, 0)) //NVS variable controls present of XHCI controller { Return (0xF) } Else { Return (0x0) } } OperationRegion(XPRT,PCI_Config,0xD0,0x10) Field(XPRT,DWordAcc,NoLock,Preserve) //usbx_top.doc.xml { PR2, 32, //bit[8:0] USB2HCSEL PR2M, 32, //bit[8:0] USB2HCSELM PR3, 32, //bit[3:0] USB3SSEN PR3M, 32 //bit[3:0] USB3SSENM } Device(RHUB) { Name(_ADR, Zero) //address 0 is reserved for root hub // // Super Speed Ports - must match _UPC declarations of the coresponding Full Speed Ports. // Paired with Port 1 Device(SSP1) { Name(_ADR, 0x07) Method(_UPC,0,Serialized) { Name(UPCP, Package() { 0xFF, // Port is connectable if non-zero 0x06, // USB3 uAB connector 0x00, 0x00 }) Return(UPCP) } Method(_PLD,0,Serialized) { Name(PLDP, Package() //pls check ACPI 5.0 section 6.1.8 { Buffer(0x14) { //31:0 - Bit[6:0]=2 revision is 0x2, Bit[7]=1 Ignore Color Bit[31:8]=0 RGB color is ignored 0x82, 0x00, 0x00, 0x00, //63:32 - Bit[47:32]=0 width: 0x0000 Bit[63:48]=0 Height:0x0000 0x00, 0x00, 0x00, 0x00, //95:64 - bit[66:64]=b'011 visiable/docking/no lid bit[69:67]=b'001 bottom panel bit[71:70]=b'01 Center bit[73:72]=b'01 Center // bit[77:74]=6 Horizontal Trapezoid bit[78]=0 bit[86:79]=0 bit[94:87]='0 no group info' bit[95]=0 not a bay 0x4B, 0x19, 0x00, 0x00, //127:96 -bit[96]=1 Ejectable bit[97]=1 OSPM Ejection required Bit[105:98]=0 no Cabinet Number // bit[113:106]=0 no Card cage Number bit[114]=0 no reference shape Bit[118:115]=0 no rotation Bit[123:119]=0 no order 0x03, 0x00, 0x00, 0x00, //159:128 Vert. and Horiz. Offsets not supplied 0xFF, 0xFF, 0xFF, 0xFF } }) Return (PLDP) } } // // High Speed Ports // pair port with port 7 (SS) // The UPC declarations for LS/FS/HS and SS ports that are paired to form a USB3.0 compatible connector. // A "pair" is defined by two ports that declare _PLDs with identical Panel, Vertical Position, Horizontal Postion, Shape, Group Orientation // and Group Token Device(HS01) { Name(_ADR, 0x01) Method(_UPC,0,Serialized) { Name(UPCP, Package() { 0xFF,0x06,0x00,0x00 }) Return(UPCP) } Method(_PLD,0,Serialized) { Name(PLDP, Package() //pls check ACPI 5.0 section 6.1.8 { Buffer(0x14) { //31:0 - Bit[6:0]=2 revision is 0x2, Bit[7]=1 Ignore Color Bit[31:8]=0 RGB color is ignored 0x82, 0x00, 0x00, 0x00, //63:32 - Bit[47:32]=0 width: 0x0000 Bit[63:48]=0 Height:0x0000 0x00, 0x00, 0x00, 0x00, //95:64 - bit[66:64]=b'011 visiable/docking/no lid bit[69:67]=b'001 bottom panel bit[71:70]=b'01 Center bit[73:72]=b'01 Center // bit[77:74]=6 Horizontal Trapezoid bit[78]=0 bit[86:79]=0 bit[94:87]='0 no group info' bit[95]=0 not a bay 0x4B, 0x19, 0x00, 0x00, //127:96 -bit[96]=1 Ejectable bit[97]=1 OSPM Ejection required Bit[105:98]=0 no Cabinet Number // bit[113:106]=0 no Card cage Number bit[114]=0 no reference shape Bit[118:115]=0 no rotation Bit[123:119]=0 no order 0x03, 0x00, 0x00, 0x00, //159:128 Vert. and Horiz. Offsets not supplied 0xFF, 0xFF, 0xFF, 0xFF } }) Return (PLDP) } }//end of HS01 // USB2 Type-A/USB2 only // EHCI debug capable Device(HS02) { Name(_ADR, 0x02) // 0 is for root hub so physical port index starts from 1 (it is port1 in schematic) Method(_UPC,0,Serialized) { Name(UPCP, Package() { 0xFF, // connectable 0xFF, // 0x00, 0x00 }) Return(UPCP) } Method(_PLD,0,Serialized) { Name(PLDP, Package() { Buffer(0x14) { //31:0 - Bit[6:0]=2 revision is 0x2, Bit[7]=1 Ignore Color Bit[31:8]=0 RGB color is ignored 0x82, 0x00, 0x00, 0x00, //63:32 - Bit[47:32]=0 width: 0x0000 Bit[63:48]=0 Height:0x0000 0x00, 0x00, 0x00, 0x00, //95:64 - bit[66:64]=b'011 visiable/docking/no lid bit[69:67]=b'001 bottom panel bit[71:70]=b'01 Center bit[73:72]=b'00 Left // bit[77:74]=2 Square bit[78]=0 bit[86:79]=0 bit[94:87]='0 no group info' bit[95]=0 not a bay 0x4B, 0x08, 0x00, 0x00, //127:96 -bit[96]=1 Ejectable bit[97]=1 OSPM Ejection required Bit[105:98]=0 no Cabinet Number // bit[113:106]=0 no Card cage Number bit[114]=0 no reference shape Bit[118:115]=0 no rotation Bit[123:119]=0 no order 0x03, 0x00, 0x00, 0x00, //159:128 Vert. and Horiz. Offsets not supplied 0xFF, 0xFF, 0xFF, 0xFF } }) Return (PLDP) } }//end of HS02 // high speed port 3 Device(HS03) { Name(_ADR, 0x03) Method(_UPC,0,Serialized) { Name(UPCP, Package() { 0xFF, // connectable 0xFF, 0x00, 0x00 }) Return(UPCP) } Method(_RMV, 0) // for XHCICV debug purpose { Return(0x0) } Method(_PLD,0,Serialized) { Name(PLDP, Package() { Buffer(0x14) { //31:0 - Bit[6:0]=2 revision is 0x2, Bit[7]=1 Ignore Color Bit[31:8]=0 RGB color is ignored 0x82, 0x00, 0x00, 0x00, //63:32 - Bit[47:32]=0 width: 0x0000 Bit[63:48]=0 Height:0x0000 0x00, 0x00, 0x00, 0x00, //95:64 - bit[66:64]=b'000 not Visible/no docking/no lid bit[69:67]=6 (b'110) unknown(Vertical Position and Horizontal Position will be ignored) // bit[71:70]=b'00 Vertical Position ignore bit[73:72]=b'00 Horizontal Position ignore // bit[77:74]=2 Square bit[78]=0 bit[86:79]=0 bit[94:87]='0 no group info' bit[95]=0 not a bay 0x30, 0x08, 0x00, 0x00, //127:96 -bit[96]=0 not Ejectable bit[97]=0 OSPM Ejection not required Bit[105:98]=0 no Cabinet Number // bit[113:106]=0 no Card cage Number bit[114]=0 no reference shape Bit[118:115]=0 no rotation Bit[123:119]=0 no order 0x00, 0x00, 0x00, 0x00, //159:128 Vert. and Horiz. Offsets not supplied 0xFF, 0xFF, 0xFF, 0xFF } }) Return (PLDP) } } Device(HS04) { Name(_ADR, 0x04) Method(_UPC,0,Serialized) { Name(UPCP, Package() { 0xFF, //connectable 0xFF, //Proprietary connector (FPC connector) 0x00, 0x00 }) Return(UPCP) } Method(_PLD,0,Serialized) { Name(PLDP, Package() { Buffer(0x14) { //31:0 - Bit[6:0]=2 revision is 0x2, Bit[7]=1 Ignore Color Bit[31:8]=0 RGB color is ignored 0x82, 0x00, 0x00, 0x00, //63:32 - Bit[47:32]=0 width: 0x0000 Bit[63:48]=0 Height:0x0000 0x00, 0x00, 0x00, 0x00, //95:64 - bit[66:64]=b'000 not Visible/no docking/no lid bit[69:67]=6 (b'110) unknown(Vertical Position and Horizontal Position will be ignored) // bit[71:70]=b'00 Vertical Position ignore bit[73:72]=b'00 Horizontal Position ignore // bit[77:74]=2 Square bit[78]=0 bit[86:79]=0 bit[94:87]='0 no group info' bit[95]=0 not a bay 0x30, 0x08, 0x00, 0x00, //127:96 -bit[96]=0 not Ejectable bit[97]=0 OSPM Ejection not required Bit[105:98]=0 no Cabinet Number // bit[113:106]=0 no Card cage Number bit[114]=0 no reference shape Bit[118:115]=0 no rotation Bit[123:119]=0 no order 0x00, 0x00, 0x00, 0x00, //159:128 Vert. and Horiz. Offsets not supplied 0xFF, 0xFF, 0xFF, 0xFF } }) Return (PLDP) } } Device(HSC1) // USB2 HSIC 01 { Name(_ADR, 0x05) Method(_UPC,0,Serialized) { Name(UPCP, Package() { 0xFF, //connectable 0xFF, //Proprietary connector (FPC connector) 0x00, 0x00 }) Return(UPCP) } Method(_PLD,0,Serialized) { Name(PLDP, Package() { Buffer(0x14) { //31:0 - Bit[6:0]=2 revision is 0x2, Bit[7]=1 Ignore Color Bit[31:8]=0 RGB color is ignored 0x82, 0x00, 0x00, 0x00, //63:32 - Bit[47:32]=0 width: 0x0000 Bit[63:48]=0 Height:0x0000 0x00, 0x00, 0x00, 0x00, //95:64 - bit[66:64]=b'000 not Visible/no docking/no lid bit[69:67]=6 (b'110) unknown(Vertical Position and Horizontal Position will be ignored) // bit[71:70]=b'00 Vertical Position ignore bit[73:72]=b'00 Horizontal Position ignore // bit[77:74]=2 Square bit[78]=0 bit[86:79]=0 bit[94:87]='0 no group info' bit[95]=0 not a bay 0x30, 0x08, 0x00, 0x00, //127:96 -bit[96]=0 not Ejectable bit[97]=0 OSPM Ejection not required Bit[105:98]=0 no Cabinet Number // bit[113:106]=0 no Card cage Number bit[114]=0 no reference shape Bit[118:115]=0 no rotation Bit[123:119]=0 no order 0x00, 0x00, 0x00, 0x00, //159:128 Vert. and Horiz. Offsets not supplied 0xFF, 0xFF, 0xFF, 0xFF } }) Return (PLDP) } } Device(HSC2) // USB2 HSIC 02 { Name(_ADR, 0x06) Method(_UPC,0,Serialized) { Name(UPCP, Package() { 0xFF, //connectable 0xFF, //Proprietary connector (FPC connector) 0x00, 0x00 }) Return(UPCP) } Method(_PLD,0,Serialized) { Name(PLDP, Package() { Buffer(0x14) { //31:0 - Bit[6:0]=2 revision is 0x2, Bit[7]=1 Ignore Color Bit[31:8]=0 RGB color is ignored 0x82, 0x00, 0x00, 0x00, //63:32 - Bit[47:32]=0 width: 0x0000 Bit[63:48]=0 Height:0x0000 0x00, 0x00, 0x00, 0x00, //95:64 - bit[66:64]=b'000 not Visible/no docking/no lid bit[69:67]=6 (b'110) unknown(Vertical Position and Horizontal Position will be ignored) // bit[71:70]=b'00 Vertical Position ignore bit[73:72]=b'00 Horizontal Position ignore // bit[77:74]=2 Square bit[78]=0 bit[86:79]=0 bit[94:87]='0 no group info' bit[95]=0 not a bay 0x30, 0x08, 0x00, 0x00, //127:96 -bit[96]=0 not Ejectable bit[97]=0 OSPM Ejection not required Bit[105:98]=0 no Cabinet Number // bit[113:106]=0 no Card cage Number bit[114]=0 no reference shape Bit[118:115]=0 no rotation Bit[123:119]=0 no order 0x00, 0x00, 0x00, 0x00, //159:128 Vert. and Horiz. Offsets not supplied 0xFF, 0xFF, 0xFF, 0xFF } }) Return (PLDP) } } } //end of root hub } // end of XHC1