xref: /titanic_51/usr/src/uts/intel/io/acpica/resources/rsserial.c (revision 385cc6b4ad1792caef3f84eb61eed3f27085801f)
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