mirror of
				https://git.proxmox.com/git/mirror_edk2
				synced 2025-11-04 09:12:31 +00:00 
			
		
		
		
	https://svn.code.sf.net/p/edk2/code/trunk/edk2/, which are for MinnowBoard MAX open source project. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: David Wei <david.wei@intel.com> Reviewed-by: Mike Wu <mike.wu@intel.com> Reviewed-by: Hot Tian <hot.tian@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16599 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			178 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			178 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
/** @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 <20>symbolic-identifiers<72> 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)
 | 
						||
  }
 | 
						||
}
 |