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