/** @file * * [DSDT] RHProxy device to enable WinRT API (RHPX) * * Copyright (c) 2018, Andrey Warkentin * Copyright (c) Microsoft Corporation. All rights reserved. * * SPDX-License-Identifier: BSD-2-Clause-Patent * **/ Device (RHPX) { Name (_HID, "MSFT8000") Name (_CID, "MSFT8000") Name (_UID, 1) Name(_CRS, ResourceTemplate () { // Index 0 SPISerialBus ( // SCKL - GPIO 11 - Pin 23 // MOSI - GPIO 10 - Pin 19 // MISO - GPIO 9 - Pin 21 // CE0 - GPIO 8 - Pin 24 0, // Device selection (CE0) PolarityLow, // Device selection polarity FourWireMode, // WireMode 8, // DataBit len ControllerInitiated, // Slave mode 4000000, // Connection speed ClockPolarityLow, // Clock polarity ClockPhaseFirst, // Clock phase "\\_SB.GDV0.SPI0", // ResourceSource: SPI bus controller name 0, // ResourceSourceIndex // Resource usage // DescriptorName: creates name for offset of resource descriptor ) // Vendor Data // Index 1 SPISerialBus ( // SCKL - GPIO 11 - Pin 23 // MOSI - GPIO 10 - Pin 19 // MISO - GPIO 9 - Pin 21 // CE1 - GPIO 7 - Pin 26 1, // Device selection (CE1) PolarityLow, // Device selection polarity FourWireMode, // WireMode 8, // DataBit len ControllerInitiated, // Slave mode 4000000, // Connection speed ClockPolarityLow, // Clock polarity ClockPhaseFirst, // Clock phase "\\_SB.GDV0.SPI0", // ResourceSource: SPI bus controller name 0, // ResourceSourceIndex // Resource usage // DescriptorName: creates name for offset of resource descriptor ) // Vendor Data // Index 2 I2CSerialBus ( // Pin 3 (GPIO2, SDA1), 5 (GPIO3, SCL1) 0xFFFF, // SlaveAddress: placeholder , // SlaveMode: default to ControllerInitiated 0, // ConnectionSpeed: placeholder , // Addressing Mode: default to 7 bit "\\_SB.GDV0.I2C1", // ResourceSource: I2C bus controller name , , , // Descriptor Name: creates name for offset of resource descriptor ) // Vendor Data // Index 3 SPISerialBus ( // SPI1_SCLK - GPIO21 // SPI1_MOSI - GPIO20 // SPI1_MISO - GPIO19 // SPI1_CE2_N - GPIO16 2, // Device selection (CE2) PolarityLow, // Device selection polarity FourWireMode, // WireMode 8, // DataBit len ControllerInitiated, // Slave mode 4000000, // Connection speed ClockPolarityLow, // Clock polarity ClockPhaseFirst, // Clock phase "\\_SB.GDV0.SPI1", // ResourceSource: SPI bus controller name 0, // ResourceSourceIndex // Resource usage // DescriptorName: creates name for offset of resource descriptor ) // Vendor Data // GPIO 2 GpioIO (Shared, PullUp, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 2 } GpioInt (Edge, ActiveBoth, Shared, PullUp, 0, "\\_SB.GDV0.GPI0",) { 2 } // GPIO 3 GpioIO (Shared, PullUp, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 3 } GpioInt (Edge, ActiveBoth, Shared, PullUp, 0, "\\_SB.GDV0.GPI0",) { 3 } // GPIO 4 GpioIO (Shared, PullUp, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 4 } GpioInt (Edge, ActiveBoth, Shared, PullUp, 0, "\\_SB.GDV0.GPI0",) { 4 } // GPIO 5 GpioIO (Shared, PullUp, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 5 } GpioInt (Edge, ActiveBoth, Shared, PullUp, 0, "\\_SB.GDV0.GPI0",) { 5 } // GPIO 6 GpioIO (Shared, PullUp, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 6 } GpioInt (Edge, ActiveBoth, Shared, PullUp, 0, "\\_SB.GDV0.GPI0",) { 6 } // GPIO 7 GpioIO (Shared, PullUp, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 7 } GpioInt (Edge, ActiveBoth, Shared, PullUp, 0, "\\_SB.GDV0.GPI0",) { 7 } // GPIO 8 GpioIO (Shared, PullUp, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 8 } GpioInt (Edge, ActiveBoth, Shared, PullUp, 0, "\\_SB.GDV0.GPI0",) { 8 } // GPIO 9 GpioIO (Shared, PullDown, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 9 } GpioInt (Edge, ActiveBoth, Shared, PullDown, 0, "\\_SB.GDV0.GPI0",) { 9 } // GPIO 10 GpioIO (Shared, PullDown, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 10 } GpioInt (Edge, ActiveBoth, Shared, PullDown, 0, "\\_SB.GDV0.GPI0",) { 10 } // GPIO 11 GpioIO (Shared, PullDown, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 11 } GpioInt (Edge, ActiveBoth, Shared, PullDown, 0, "\\_SB.GDV0.GPI0",) { 11 } // GPIO 12 GpioIO (Shared, PullDown, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 12 } GpioInt (Edge, ActiveBoth, Shared, PullDown, 0, "\\_SB.GDV0.GPI0",) { 12 } // GPIO 13 GpioIO (Shared, PullDown, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 13 } GpioInt (Edge, ActiveBoth, Shared, PullDown, 0, "\\_SB.GDV0.GPI0",) { 13 } // NTRAID#MSFT-7141401-2016/04/7-jordanrh - disable UART muxing // until a proper solution can be created for the dmap conflict // GPIO 14 - UART TX // GpioIO (Shared, PullDown, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 14 } // GpioInt (Edge, ActiveBoth, Shared, PullDown, 0, "\\_SB.GDV0.GPI0",) { 14 } // GPIO 15 - UART RX // GpioIO (Shared, PullDown, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 15 } // GpioInt (Edge, ActiveBoth, Shared, PullDown, 0, "\\_SB.GDV0.GPI0",) { 15 } // GPIO 16 GpioIO (Shared, PullDown, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 16 } GpioInt (Edge, ActiveBoth, Shared, PullDown, 0, "\\_SB.GDV0.GPI0",) { 16 } // GPIO 17 GpioIO (Shared, PullDown, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 17 } GpioInt (Edge, ActiveBoth, Shared, PullDown, 0, "\\_SB.GDV0.GPI0",) { 17 } // GPIO 18 GpioIO (Shared, PullDown, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 18 } GpioInt (Edge, ActiveBoth, Shared, PullDown, 0, "\\_SB.GDV0.GPI0",) { 18 } // GPIO 19 GpioIO (Shared, PullDown, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 19 } GpioInt (Edge, ActiveBoth, Shared, PullDown, 0, "\\_SB.GDV0.GPI0",) { 19 } // GPIO 20 GpioIO (Shared, PullDown, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 20 } GpioInt (Edge, ActiveBoth, Shared, PullDown, 0, "\\_SB.GDV0.GPI0",) { 20 } // GPIO 21 GpioIO (Shared, PullDown, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 21 } GpioInt (Edge, ActiveBoth, Shared, PullDown, 0, "\\_SB.GDV0.GPI0",) { 21 } // GPIO 22 GpioIO (Shared, PullDown, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 22 } GpioInt (Edge, ActiveBoth, Shared, PullDown, 0, "\\_SB.GDV0.GPI0",) { 22 } // GPIO 23 GpioIO (Shared, PullDown, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 23 } GpioInt (Edge, ActiveBoth, Shared, PullDown, 0, "\\_SB.GDV0.GPI0",) { 23 } // GPIO 24 GpioIO (Shared, PullDown, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 24 } GpioInt (Edge, ActiveBoth, Shared, PullDown, 0, "\\_SB.GDV0.GPI0",) { 24 } // GPIO 25 GpioIO (Shared, PullDown, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 25 } GpioInt (Edge, ActiveBoth, Shared, PullDown, 0, "\\_SB.GDV0.GPI0",) { 25 } // GPIO 26 GpioIO (Shared, PullDown, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 26 } GpioInt (Edge, ActiveBoth, Shared, PullDown, 0, "\\_SB.GDV0.GPI0",) { 26 } // GPIO 27 GpioIO (Shared, PullDown, 0, 0, IoRestrictionNone, "\\_SB.GDV0.GPI0", 0, ResourceConsumer,,) { 27 } GpioInt (Edge, ActiveBoth, Shared, PullDown, 0, "\\_SB.GDV0.GPI0",) { 27 } }) Name (_DSD, Package() { ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), Package () { // Reference http://www.raspberrypi.org/documentation/hardware/raspberrypi/spi/README.md // SPI 0 Package (2) { "bus-SPI-SPI0", Package() { 0, 1 } }, // Index 0 & 1 Package (2) { "SPI0-MinClockInHz", 7629 }, // 7629 Hz Package (2) { "SPI0-MaxClockInHz", 125000000 }, // 125 MHz Package (2) { "SPI0-SupportedDataBitLengths", Package() { 8 } }, // Data Bit Length // I2C1 Package (2) { "bus-I2C-I2C1", Package() { 2 } }, // GPIO Pin Count and supported drive modes Package (2) { "GPIO-PinCount", 54 }, Package (2) { "GPIO-UseDescriptorPinNumbers", 1 }, Package (2) { "GPIO-SupportedDriveModes", 0xf }, // InputHighImpedance, InputPullUp, InputPullDown, OutputCmos // SPI 1 Package (2) { "bus-SPI-SPI1", Package() { 3 }}, // Index 3 Package (2) { "SPI1-MinClockInHz", 30511 }, // 30.5 kHz Package (2) { "SPI1-MaxClockInHz", 20000000 }, // 20 MHz Package (2) { "SPI1-SupportedDataBitLengths", Package() { 8 } }, // Data Bit Length } }) }