1*385cc6b4SJerry Jelinek /******************************************************************************* 2*385cc6b4SJerry Jelinek * 3*385cc6b4SJerry Jelinek * Module Name: rsserial - GPIO/SerialBus resource descriptors 4*385cc6b4SJerry Jelinek * 5*385cc6b4SJerry Jelinek ******************************************************************************/ 6*385cc6b4SJerry Jelinek 7*385cc6b4SJerry Jelinek /* 8*385cc6b4SJerry Jelinek * Copyright (C) 2000 - 2016, Intel Corp. 9*385cc6b4SJerry Jelinek * All rights reserved. 10*385cc6b4SJerry Jelinek * 11*385cc6b4SJerry Jelinek * Redistribution and use in source and binary forms, with or without 12*385cc6b4SJerry Jelinek * modification, are permitted provided that the following conditions 13*385cc6b4SJerry Jelinek * are met: 14*385cc6b4SJerry Jelinek * 1. Redistributions of source code must retain the above copyright 15*385cc6b4SJerry Jelinek * notice, this list of conditions, and the following disclaimer, 16*385cc6b4SJerry Jelinek * without modification. 17*385cc6b4SJerry Jelinek * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18*385cc6b4SJerry Jelinek * substantially similar to the "NO WARRANTY" disclaimer below 19*385cc6b4SJerry Jelinek * ("Disclaimer") and any redistribution must be conditioned upon 20*385cc6b4SJerry Jelinek * including a substantially similar Disclaimer requirement for further 21*385cc6b4SJerry Jelinek * binary redistribution. 22*385cc6b4SJerry Jelinek * 3. Neither the names of the above-listed copyright holders nor the names 23*385cc6b4SJerry Jelinek * of any contributors may be used to endorse or promote products derived 24*385cc6b4SJerry Jelinek * from this software without specific prior written permission. 25*385cc6b4SJerry Jelinek * 26*385cc6b4SJerry Jelinek * Alternatively, this software may be distributed under the terms of the 27*385cc6b4SJerry Jelinek * GNU General Public License ("GPL") version 2 as published by the Free 28*385cc6b4SJerry Jelinek * Software Foundation. 29*385cc6b4SJerry Jelinek * 30*385cc6b4SJerry Jelinek * NO WARRANTY 31*385cc6b4SJerry Jelinek * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32*385cc6b4SJerry Jelinek * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33*385cc6b4SJerry Jelinek * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34*385cc6b4SJerry Jelinek * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35*385cc6b4SJerry Jelinek * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36*385cc6b4SJerry Jelinek * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37*385cc6b4SJerry Jelinek * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38*385cc6b4SJerry Jelinek * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39*385cc6b4SJerry Jelinek * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40*385cc6b4SJerry Jelinek * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41*385cc6b4SJerry Jelinek * POSSIBILITY OF SUCH DAMAGES. 42*385cc6b4SJerry Jelinek */ 43*385cc6b4SJerry Jelinek 44*385cc6b4SJerry Jelinek #include "acpi.h" 45*385cc6b4SJerry Jelinek #include "accommon.h" 46*385cc6b4SJerry Jelinek #include "acresrc.h" 47*385cc6b4SJerry Jelinek 48*385cc6b4SJerry Jelinek #define _COMPONENT ACPI_RESOURCES 49*385cc6b4SJerry Jelinek ACPI_MODULE_NAME ("rsserial") 50*385cc6b4SJerry Jelinek 51*385cc6b4SJerry Jelinek 52*385cc6b4SJerry Jelinek /******************************************************************************* 53*385cc6b4SJerry Jelinek * 54*385cc6b4SJerry Jelinek * AcpiRsConvertGpio 55*385cc6b4SJerry Jelinek * 56*385cc6b4SJerry Jelinek ******************************************************************************/ 57*385cc6b4SJerry Jelinek 58*385cc6b4SJerry Jelinek ACPI_RSCONVERT_INFO AcpiRsConvertGpio[18] = 59*385cc6b4SJerry Jelinek { 60*385cc6b4SJerry Jelinek {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_GPIO, 61*385cc6b4SJerry Jelinek ACPI_RS_SIZE (ACPI_RESOURCE_GPIO), 62*385cc6b4SJerry Jelinek ACPI_RSC_TABLE_SIZE (AcpiRsConvertGpio)}, 63*385cc6b4SJerry Jelinek 64*385cc6b4SJerry Jelinek {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_GPIO, 65*385cc6b4SJerry Jelinek sizeof (AML_RESOURCE_GPIO), 66*385cc6b4SJerry Jelinek 0}, 67*385cc6b4SJerry Jelinek 68*385cc6b4SJerry Jelinek /* 69*385cc6b4SJerry Jelinek * These fields are contiguous in both the source and destination: 70*385cc6b4SJerry Jelinek * RevisionId 71*385cc6b4SJerry Jelinek * ConnectionType 72*385cc6b4SJerry Jelinek */ 73*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.Gpio.RevisionId), 74*385cc6b4SJerry Jelinek AML_OFFSET (Gpio.RevisionId), 75*385cc6b4SJerry Jelinek 2}, 76*385cc6b4SJerry Jelinek 77*385cc6b4SJerry Jelinek {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Gpio.ProducerConsumer), 78*385cc6b4SJerry Jelinek AML_OFFSET (Gpio.Flags), 79*385cc6b4SJerry Jelinek 0}, 80*385cc6b4SJerry Jelinek 81*385cc6b4SJerry Jelinek {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Gpio.Sharable), 82*385cc6b4SJerry Jelinek AML_OFFSET (Gpio.IntFlags), 83*385cc6b4SJerry Jelinek 3}, 84*385cc6b4SJerry Jelinek 85*385cc6b4SJerry Jelinek {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Gpio.WakeCapable), 86*385cc6b4SJerry Jelinek AML_OFFSET (Gpio.IntFlags), 87*385cc6b4SJerry Jelinek 4}, 88*385cc6b4SJerry Jelinek 89*385cc6b4SJerry Jelinek {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.Gpio.IoRestriction), 90*385cc6b4SJerry Jelinek AML_OFFSET (Gpio.IntFlags), 91*385cc6b4SJerry Jelinek 0}, 92*385cc6b4SJerry Jelinek 93*385cc6b4SJerry Jelinek {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Gpio.Triggering), 94*385cc6b4SJerry Jelinek AML_OFFSET (Gpio.IntFlags), 95*385cc6b4SJerry Jelinek 0}, 96*385cc6b4SJerry Jelinek 97*385cc6b4SJerry Jelinek {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.Gpio.Polarity), 98*385cc6b4SJerry Jelinek AML_OFFSET (Gpio.IntFlags), 99*385cc6b4SJerry Jelinek 1}, 100*385cc6b4SJerry Jelinek 101*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.Gpio.PinConfig), 102*385cc6b4SJerry Jelinek AML_OFFSET (Gpio.PinConfig), 103*385cc6b4SJerry Jelinek 1}, 104*385cc6b4SJerry Jelinek 105*385cc6b4SJerry Jelinek /* 106*385cc6b4SJerry Jelinek * These fields are contiguous in both the source and destination: 107*385cc6b4SJerry Jelinek * DriveStrength 108*385cc6b4SJerry Jelinek * DebounceTimeout 109*385cc6b4SJerry Jelinek */ 110*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE16, ACPI_RS_OFFSET (Data.Gpio.DriveStrength), 111*385cc6b4SJerry Jelinek AML_OFFSET (Gpio.DriveStrength), 112*385cc6b4SJerry Jelinek 2}, 113*385cc6b4SJerry Jelinek 114*385cc6b4SJerry Jelinek /* Pin Table */ 115*385cc6b4SJerry Jelinek 116*385cc6b4SJerry Jelinek {ACPI_RSC_COUNT_GPIO_PIN, ACPI_RS_OFFSET (Data.Gpio.PinTableLength), 117*385cc6b4SJerry Jelinek AML_OFFSET (Gpio.PinTableOffset), 118*385cc6b4SJerry Jelinek AML_OFFSET (Gpio.ResSourceOffset)}, 119*385cc6b4SJerry Jelinek 120*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE_GPIO_PIN, ACPI_RS_OFFSET (Data.Gpio.PinTable), 121*385cc6b4SJerry Jelinek AML_OFFSET (Gpio.PinTableOffset), 122*385cc6b4SJerry Jelinek 0}, 123*385cc6b4SJerry Jelinek 124*385cc6b4SJerry Jelinek /* Resource Source */ 125*385cc6b4SJerry Jelinek 126*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.Gpio.ResourceSource.Index), 127*385cc6b4SJerry Jelinek AML_OFFSET (Gpio.ResSourceIndex), 128*385cc6b4SJerry Jelinek 1}, 129*385cc6b4SJerry Jelinek 130*385cc6b4SJerry Jelinek {ACPI_RSC_COUNT_GPIO_RES, ACPI_RS_OFFSET (Data.Gpio.ResourceSource.StringLength), 131*385cc6b4SJerry Jelinek AML_OFFSET (Gpio.ResSourceOffset), 132*385cc6b4SJerry Jelinek AML_OFFSET (Gpio.VendorOffset)}, 133*385cc6b4SJerry Jelinek 134*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE_GPIO_RES, ACPI_RS_OFFSET (Data.Gpio.ResourceSource.StringPtr), 135*385cc6b4SJerry Jelinek AML_OFFSET (Gpio.ResSourceOffset), 136*385cc6b4SJerry Jelinek 0}, 137*385cc6b4SJerry Jelinek 138*385cc6b4SJerry Jelinek /* Vendor Data */ 139*385cc6b4SJerry Jelinek 140*385cc6b4SJerry Jelinek {ACPI_RSC_COUNT_GPIO_VEN, ACPI_RS_OFFSET (Data.Gpio.VendorLength), 141*385cc6b4SJerry Jelinek AML_OFFSET (Gpio.VendorLength), 142*385cc6b4SJerry Jelinek 1}, 143*385cc6b4SJerry Jelinek 144*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE_GPIO_RES, ACPI_RS_OFFSET (Data.Gpio.VendorData), 145*385cc6b4SJerry Jelinek AML_OFFSET (Gpio.VendorOffset), 146*385cc6b4SJerry Jelinek 0}, 147*385cc6b4SJerry Jelinek }; 148*385cc6b4SJerry Jelinek 149*385cc6b4SJerry Jelinek 150*385cc6b4SJerry Jelinek /******************************************************************************* 151*385cc6b4SJerry Jelinek * 152*385cc6b4SJerry Jelinek * AcpiRsConvertI2cSerialBus 153*385cc6b4SJerry Jelinek * 154*385cc6b4SJerry Jelinek ******************************************************************************/ 155*385cc6b4SJerry Jelinek 156*385cc6b4SJerry Jelinek ACPI_RSCONVERT_INFO AcpiRsConvertI2cSerialBus[17] = 157*385cc6b4SJerry Jelinek { 158*385cc6b4SJerry Jelinek {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_SERIAL_BUS, 159*385cc6b4SJerry Jelinek ACPI_RS_SIZE (ACPI_RESOURCE_I2C_SERIALBUS), 160*385cc6b4SJerry Jelinek ACPI_RSC_TABLE_SIZE (AcpiRsConvertI2cSerialBus)}, 161*385cc6b4SJerry Jelinek 162*385cc6b4SJerry Jelinek {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_SERIAL_BUS, 163*385cc6b4SJerry Jelinek sizeof (AML_RESOURCE_I2C_SERIALBUS), 164*385cc6b4SJerry Jelinek 0}, 165*385cc6b4SJerry Jelinek 166*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.CommonSerialBus.RevisionId), 167*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.RevisionId), 168*385cc6b4SJerry Jelinek 1}, 169*385cc6b4SJerry Jelinek 170*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.CommonSerialBus.Type), 171*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.Type), 172*385cc6b4SJerry Jelinek 1}, 173*385cc6b4SJerry Jelinek 174*385cc6b4SJerry Jelinek {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.CommonSerialBus.SlaveMode), 175*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.Flags), 176*385cc6b4SJerry Jelinek 0}, 177*385cc6b4SJerry Jelinek 178*385cc6b4SJerry Jelinek {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.CommonSerialBus.ProducerConsumer), 179*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.Flags), 180*385cc6b4SJerry Jelinek 1}, 181*385cc6b4SJerry Jelinek 182*385cc6b4SJerry Jelinek {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.CommonSerialBus.ConnectionSharing), 183*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.Flags), 184*385cc6b4SJerry Jelinek 2}, 185*385cc6b4SJerry Jelinek 186*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.CommonSerialBus.TypeRevisionId), 187*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.TypeRevisionId), 188*385cc6b4SJerry Jelinek 1}, 189*385cc6b4SJerry Jelinek 190*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE16, ACPI_RS_OFFSET (Data.CommonSerialBus.TypeDataLength), 191*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.TypeDataLength), 192*385cc6b4SJerry Jelinek 1}, 193*385cc6b4SJerry Jelinek 194*385cc6b4SJerry Jelinek /* Vendor data */ 195*385cc6b4SJerry Jelinek 196*385cc6b4SJerry Jelinek {ACPI_RSC_COUNT_SERIAL_VEN, ACPI_RS_OFFSET (Data.CommonSerialBus.VendorLength), 197*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.TypeDataLength), 198*385cc6b4SJerry Jelinek AML_RESOURCE_I2C_MIN_DATA_LEN}, 199*385cc6b4SJerry Jelinek 200*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE_SERIAL_VEN, ACPI_RS_OFFSET (Data.CommonSerialBus.VendorData), 201*385cc6b4SJerry Jelinek 0, 202*385cc6b4SJerry Jelinek sizeof (AML_RESOURCE_I2C_SERIALBUS)}, 203*385cc6b4SJerry Jelinek 204*385cc6b4SJerry Jelinek /* Resource Source */ 205*385cc6b4SJerry Jelinek 206*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.CommonSerialBus.ResourceSource.Index), 207*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.ResSourceIndex), 208*385cc6b4SJerry Jelinek 1}, 209*385cc6b4SJerry Jelinek 210*385cc6b4SJerry Jelinek {ACPI_RSC_COUNT_SERIAL_RES, ACPI_RS_OFFSET (Data.CommonSerialBus.ResourceSource.StringLength), 211*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.TypeDataLength), 212*385cc6b4SJerry Jelinek sizeof (AML_RESOURCE_COMMON_SERIALBUS)}, 213*385cc6b4SJerry Jelinek 214*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE_SERIAL_RES, ACPI_RS_OFFSET (Data.CommonSerialBus.ResourceSource.StringPtr), 215*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.TypeDataLength), 216*385cc6b4SJerry Jelinek sizeof (AML_RESOURCE_COMMON_SERIALBUS)}, 217*385cc6b4SJerry Jelinek 218*385cc6b4SJerry Jelinek /* I2C bus type specific */ 219*385cc6b4SJerry Jelinek 220*385cc6b4SJerry Jelinek {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.I2cSerialBus.AccessMode), 221*385cc6b4SJerry Jelinek AML_OFFSET (I2cSerialBus.TypeSpecificFlags), 222*385cc6b4SJerry Jelinek 0}, 223*385cc6b4SJerry Jelinek 224*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE32, ACPI_RS_OFFSET (Data.I2cSerialBus.ConnectionSpeed), 225*385cc6b4SJerry Jelinek AML_OFFSET (I2cSerialBus.ConnectionSpeed), 226*385cc6b4SJerry Jelinek 1}, 227*385cc6b4SJerry Jelinek 228*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE16, ACPI_RS_OFFSET (Data.I2cSerialBus.SlaveAddress), 229*385cc6b4SJerry Jelinek AML_OFFSET (I2cSerialBus.SlaveAddress), 230*385cc6b4SJerry Jelinek 1}, 231*385cc6b4SJerry Jelinek }; 232*385cc6b4SJerry Jelinek 233*385cc6b4SJerry Jelinek 234*385cc6b4SJerry Jelinek /******************************************************************************* 235*385cc6b4SJerry Jelinek * 236*385cc6b4SJerry Jelinek * AcpiRsConvertSpiSerialBus 237*385cc6b4SJerry Jelinek * 238*385cc6b4SJerry Jelinek ******************************************************************************/ 239*385cc6b4SJerry Jelinek 240*385cc6b4SJerry Jelinek ACPI_RSCONVERT_INFO AcpiRsConvertSpiSerialBus[21] = 241*385cc6b4SJerry Jelinek { 242*385cc6b4SJerry Jelinek {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_SERIAL_BUS, 243*385cc6b4SJerry Jelinek ACPI_RS_SIZE (ACPI_RESOURCE_SPI_SERIALBUS), 244*385cc6b4SJerry Jelinek ACPI_RSC_TABLE_SIZE (AcpiRsConvertSpiSerialBus)}, 245*385cc6b4SJerry Jelinek 246*385cc6b4SJerry Jelinek {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_SERIAL_BUS, 247*385cc6b4SJerry Jelinek sizeof (AML_RESOURCE_SPI_SERIALBUS), 248*385cc6b4SJerry Jelinek 0}, 249*385cc6b4SJerry Jelinek 250*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.CommonSerialBus.RevisionId), 251*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.RevisionId), 252*385cc6b4SJerry Jelinek 1}, 253*385cc6b4SJerry Jelinek 254*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.CommonSerialBus.Type), 255*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.Type), 256*385cc6b4SJerry Jelinek 1}, 257*385cc6b4SJerry Jelinek 258*385cc6b4SJerry Jelinek {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.CommonSerialBus.SlaveMode), 259*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.Flags), 260*385cc6b4SJerry Jelinek 0}, 261*385cc6b4SJerry Jelinek 262*385cc6b4SJerry Jelinek {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.CommonSerialBus.ProducerConsumer), 263*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.Flags), 264*385cc6b4SJerry Jelinek 1}, 265*385cc6b4SJerry Jelinek 266*385cc6b4SJerry Jelinek {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.CommonSerialBus.ConnectionSharing), 267*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.Flags), 268*385cc6b4SJerry Jelinek 2}, 269*385cc6b4SJerry Jelinek 270*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.CommonSerialBus.TypeRevisionId), 271*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.TypeRevisionId), 272*385cc6b4SJerry Jelinek 1}, 273*385cc6b4SJerry Jelinek 274*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE16, ACPI_RS_OFFSET (Data.CommonSerialBus.TypeDataLength), 275*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.TypeDataLength), 276*385cc6b4SJerry Jelinek 1}, 277*385cc6b4SJerry Jelinek 278*385cc6b4SJerry Jelinek /* Vendor data */ 279*385cc6b4SJerry Jelinek 280*385cc6b4SJerry Jelinek {ACPI_RSC_COUNT_SERIAL_VEN, ACPI_RS_OFFSET (Data.CommonSerialBus.VendorLength), 281*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.TypeDataLength), 282*385cc6b4SJerry Jelinek AML_RESOURCE_SPI_MIN_DATA_LEN}, 283*385cc6b4SJerry Jelinek 284*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE_SERIAL_VEN, ACPI_RS_OFFSET (Data.CommonSerialBus.VendorData), 285*385cc6b4SJerry Jelinek 0, 286*385cc6b4SJerry Jelinek sizeof (AML_RESOURCE_SPI_SERIALBUS)}, 287*385cc6b4SJerry Jelinek 288*385cc6b4SJerry Jelinek /* Resource Source */ 289*385cc6b4SJerry Jelinek 290*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.CommonSerialBus.ResourceSource.Index), 291*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.ResSourceIndex), 292*385cc6b4SJerry Jelinek 1}, 293*385cc6b4SJerry Jelinek 294*385cc6b4SJerry Jelinek {ACPI_RSC_COUNT_SERIAL_RES, ACPI_RS_OFFSET (Data.CommonSerialBus.ResourceSource.StringLength), 295*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.TypeDataLength), 296*385cc6b4SJerry Jelinek sizeof (AML_RESOURCE_COMMON_SERIALBUS)}, 297*385cc6b4SJerry Jelinek 298*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE_SERIAL_RES, ACPI_RS_OFFSET (Data.CommonSerialBus.ResourceSource.StringPtr), 299*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.TypeDataLength), 300*385cc6b4SJerry Jelinek sizeof (AML_RESOURCE_COMMON_SERIALBUS)}, 301*385cc6b4SJerry Jelinek 302*385cc6b4SJerry Jelinek /* Spi bus type specific */ 303*385cc6b4SJerry Jelinek 304*385cc6b4SJerry Jelinek {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.SpiSerialBus.WireMode), 305*385cc6b4SJerry Jelinek AML_OFFSET (SpiSerialBus.TypeSpecificFlags), 306*385cc6b4SJerry Jelinek 0}, 307*385cc6b4SJerry Jelinek 308*385cc6b4SJerry Jelinek {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.SpiSerialBus.DevicePolarity), 309*385cc6b4SJerry Jelinek AML_OFFSET (SpiSerialBus.TypeSpecificFlags), 310*385cc6b4SJerry Jelinek 1}, 311*385cc6b4SJerry Jelinek 312*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.SpiSerialBus.DataBitLength), 313*385cc6b4SJerry Jelinek AML_OFFSET (SpiSerialBus.DataBitLength), 314*385cc6b4SJerry Jelinek 1}, 315*385cc6b4SJerry Jelinek 316*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.SpiSerialBus.ClockPhase), 317*385cc6b4SJerry Jelinek AML_OFFSET (SpiSerialBus.ClockPhase), 318*385cc6b4SJerry Jelinek 1}, 319*385cc6b4SJerry Jelinek 320*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.SpiSerialBus.ClockPolarity), 321*385cc6b4SJerry Jelinek AML_OFFSET (SpiSerialBus.ClockPolarity), 322*385cc6b4SJerry Jelinek 1}, 323*385cc6b4SJerry Jelinek 324*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE16, ACPI_RS_OFFSET (Data.SpiSerialBus.DeviceSelection), 325*385cc6b4SJerry Jelinek AML_OFFSET (SpiSerialBus.DeviceSelection), 326*385cc6b4SJerry Jelinek 1}, 327*385cc6b4SJerry Jelinek 328*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE32, ACPI_RS_OFFSET (Data.SpiSerialBus.ConnectionSpeed), 329*385cc6b4SJerry Jelinek AML_OFFSET (SpiSerialBus.ConnectionSpeed), 330*385cc6b4SJerry Jelinek 1}, 331*385cc6b4SJerry Jelinek }; 332*385cc6b4SJerry Jelinek 333*385cc6b4SJerry Jelinek 334*385cc6b4SJerry Jelinek /******************************************************************************* 335*385cc6b4SJerry Jelinek * 336*385cc6b4SJerry Jelinek * AcpiRsConvertUartSerialBus 337*385cc6b4SJerry Jelinek * 338*385cc6b4SJerry Jelinek ******************************************************************************/ 339*385cc6b4SJerry Jelinek 340*385cc6b4SJerry Jelinek ACPI_RSCONVERT_INFO AcpiRsConvertUartSerialBus[23] = 341*385cc6b4SJerry Jelinek { 342*385cc6b4SJerry Jelinek {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_SERIAL_BUS, 343*385cc6b4SJerry Jelinek ACPI_RS_SIZE (ACPI_RESOURCE_UART_SERIALBUS), 344*385cc6b4SJerry Jelinek ACPI_RSC_TABLE_SIZE (AcpiRsConvertUartSerialBus)}, 345*385cc6b4SJerry Jelinek 346*385cc6b4SJerry Jelinek {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_SERIAL_BUS, 347*385cc6b4SJerry Jelinek sizeof (AML_RESOURCE_UART_SERIALBUS), 348*385cc6b4SJerry Jelinek 0}, 349*385cc6b4SJerry Jelinek 350*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.CommonSerialBus.RevisionId), 351*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.RevisionId), 352*385cc6b4SJerry Jelinek 1}, 353*385cc6b4SJerry Jelinek 354*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.CommonSerialBus.Type), 355*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.Type), 356*385cc6b4SJerry Jelinek 1}, 357*385cc6b4SJerry Jelinek 358*385cc6b4SJerry Jelinek {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.CommonSerialBus.SlaveMode), 359*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.Flags), 360*385cc6b4SJerry Jelinek 0}, 361*385cc6b4SJerry Jelinek 362*385cc6b4SJerry Jelinek {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.CommonSerialBus.ProducerConsumer), 363*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.Flags), 364*385cc6b4SJerry Jelinek 1}, 365*385cc6b4SJerry Jelinek 366*385cc6b4SJerry Jelinek {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.CommonSerialBus.ConnectionSharing), 367*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.Flags), 368*385cc6b4SJerry Jelinek 2}, 369*385cc6b4SJerry Jelinek 370*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.CommonSerialBus.TypeRevisionId), 371*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.TypeRevisionId), 372*385cc6b4SJerry Jelinek 1}, 373*385cc6b4SJerry Jelinek 374*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE16, ACPI_RS_OFFSET (Data.CommonSerialBus.TypeDataLength), 375*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.TypeDataLength), 376*385cc6b4SJerry Jelinek 1}, 377*385cc6b4SJerry Jelinek 378*385cc6b4SJerry Jelinek /* Vendor data */ 379*385cc6b4SJerry Jelinek 380*385cc6b4SJerry Jelinek {ACPI_RSC_COUNT_SERIAL_VEN, ACPI_RS_OFFSET (Data.CommonSerialBus.VendorLength), 381*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.TypeDataLength), 382*385cc6b4SJerry Jelinek AML_RESOURCE_UART_MIN_DATA_LEN}, 383*385cc6b4SJerry Jelinek 384*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE_SERIAL_VEN, ACPI_RS_OFFSET (Data.CommonSerialBus.VendorData), 385*385cc6b4SJerry Jelinek 0, 386*385cc6b4SJerry Jelinek sizeof (AML_RESOURCE_UART_SERIALBUS)}, 387*385cc6b4SJerry Jelinek 388*385cc6b4SJerry Jelinek /* Resource Source */ 389*385cc6b4SJerry Jelinek 390*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.CommonSerialBus.ResourceSource.Index), 391*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.ResSourceIndex), 392*385cc6b4SJerry Jelinek 1}, 393*385cc6b4SJerry Jelinek 394*385cc6b4SJerry Jelinek {ACPI_RSC_COUNT_SERIAL_RES, ACPI_RS_OFFSET (Data.CommonSerialBus.ResourceSource.StringLength), 395*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.TypeDataLength), 396*385cc6b4SJerry Jelinek sizeof (AML_RESOURCE_COMMON_SERIALBUS)}, 397*385cc6b4SJerry Jelinek 398*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE_SERIAL_RES, ACPI_RS_OFFSET (Data.CommonSerialBus.ResourceSource.StringPtr), 399*385cc6b4SJerry Jelinek AML_OFFSET (CommonSerialBus.TypeDataLength), 400*385cc6b4SJerry Jelinek sizeof (AML_RESOURCE_COMMON_SERIALBUS)}, 401*385cc6b4SJerry Jelinek 402*385cc6b4SJerry Jelinek /* Uart bus type specific */ 403*385cc6b4SJerry Jelinek 404*385cc6b4SJerry Jelinek {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.UartSerialBus.FlowControl), 405*385cc6b4SJerry Jelinek AML_OFFSET (UartSerialBus.TypeSpecificFlags), 406*385cc6b4SJerry Jelinek 0}, 407*385cc6b4SJerry Jelinek 408*385cc6b4SJerry Jelinek {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.UartSerialBus.StopBits), 409*385cc6b4SJerry Jelinek AML_OFFSET (UartSerialBus.TypeSpecificFlags), 410*385cc6b4SJerry Jelinek 2}, 411*385cc6b4SJerry Jelinek 412*385cc6b4SJerry Jelinek {ACPI_RSC_3BITFLAG, ACPI_RS_OFFSET (Data.UartSerialBus.DataBits), 413*385cc6b4SJerry Jelinek AML_OFFSET (UartSerialBus.TypeSpecificFlags), 414*385cc6b4SJerry Jelinek 4}, 415*385cc6b4SJerry Jelinek 416*385cc6b4SJerry Jelinek {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.UartSerialBus.Endian), 417*385cc6b4SJerry Jelinek AML_OFFSET (UartSerialBus.TypeSpecificFlags), 418*385cc6b4SJerry Jelinek 7}, 419*385cc6b4SJerry Jelinek 420*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.UartSerialBus.Parity), 421*385cc6b4SJerry Jelinek AML_OFFSET (UartSerialBus.Parity), 422*385cc6b4SJerry Jelinek 1}, 423*385cc6b4SJerry Jelinek 424*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.UartSerialBus.LinesEnabled), 425*385cc6b4SJerry Jelinek AML_OFFSET (UartSerialBus.LinesEnabled), 426*385cc6b4SJerry Jelinek 1}, 427*385cc6b4SJerry Jelinek 428*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE16, ACPI_RS_OFFSET (Data.UartSerialBus.RxFifoSize), 429*385cc6b4SJerry Jelinek AML_OFFSET (UartSerialBus.RxFifoSize), 430*385cc6b4SJerry Jelinek 1}, 431*385cc6b4SJerry Jelinek 432*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE16, ACPI_RS_OFFSET (Data.UartSerialBus.TxFifoSize), 433*385cc6b4SJerry Jelinek AML_OFFSET (UartSerialBus.TxFifoSize), 434*385cc6b4SJerry Jelinek 1}, 435*385cc6b4SJerry Jelinek 436*385cc6b4SJerry Jelinek {ACPI_RSC_MOVE32, ACPI_RS_OFFSET (Data.UartSerialBus.DefaultBaudRate), 437*385cc6b4SJerry Jelinek AML_OFFSET (UartSerialBus.DefaultBaudRate), 438*385cc6b4SJerry Jelinek 1}, 439*385cc6b4SJerry Jelinek }; 440