/** @file
NXP PCAL9555A i2c-accessible I/O expander.

Copyright (c) 2013-2015 Intel Corporation.

SPDX-License-Identifier: BSD-2-Clause-Patent

**/

Device(NIO1)
{
    Name(_HID, "INT3491") // NXP PCAL9555A i2c-accessible I/O expander.
    Name(_CID, "INT3491")
    Name(_UID, 1)

    Name(RBUF, ResourceTemplate()
    {
        I2CSerialBus(0x25, ControllerInitiated, 400000, AddressingMode7Bit, "\\_SB.PCI0.GIP0.I2C_", 0, ResourceConsumer, , )
    })
    Method(_CRS, 0x0, NotSerialized)
    {
        Return(RBUF)
    }
    Method(_STA, 0x0, NotSerialized)
    {
        //
        // Only Platform Type / Id 8 has this device.
        //
        If(LNotEqual(PTYP, 8))
        {
          return (0)
        }
        Return(0xf)
    }
}

Device(NIO2)
{
    Name(_HID, "INT3491") // NXP PCAL9555A i2c-accessible I/O expander.
    Name(_CID, "INT3491")
    Name(_UID, 2)

    Name(RBUF, ResourceTemplate()
    {
        I2CSerialBus(0x26, ControllerInitiated, 400000, AddressingMode7Bit, "\\_SB.PCI0.GIP0.I2C_", 0, ResourceConsumer, , )
    })
    Method(_CRS, 0x0, NotSerialized)
    {
        Return(RBUF)
    }
    Method(_STA, 0x0, NotSerialized)
    {
        //
        // Only Platform Type / Id 8 has this device.
        //
        If(LNotEqual(PTYP, 8))
        {
          return (0)
        }
        Return(0xf)
    }
}

Device(NIO3)
{
    Name(_HID, "INT3491") // NXP PCAL9555A i2c-accessible I/O expander.
    Name(_CID, "INT3491")
    Name(_UID, 3)

    Name(RBUF, ResourceTemplate()
    {
        I2CSerialBus(0x27, ControllerInitiated, 400000, AddressingMode7Bit, "\\_SB.PCI0.GIP0.I2C_", 0, ResourceConsumer, , )
        GpioInt (Level, ActiveLow, Exclusive, PullDefault, , "\\_SB.PCI0.GIP0.GPO", 0, ResourceConsumer, , ) {QUARK_GPIO1_MAPPING} /* GPIO<1> is EXP2_INT */
    })
    Method(_CRS, 0x0, NotSerialized)
    {
        Return(RBUF)
    }
    Method(_STA, 0x0, NotSerialized)
    {
        //
        // Only Platform Type / Id 8 has this device.
        //
        If(LNotEqual(PTYP, 8))
        {
          return (0)
        }
        Return(0xf)
    }
}
