Lines Matching +full:gpio +full:- +full:line

1 .. SPDX-License-Identifier: GPL-2.0
4 _DSD Device Properties Related to GPIO
10 the corresponding GPIO, which is pretty error prone (it depends on
31 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
34 Package () { "reset-gpios", Package () { ^BTH, 1, 1, 0 } },
35 Package () { "shutdown-gpios", Package () { ^BTH, 0, 0, 0 } },
40 The format of the supported GPIO property is::
52 If 1, the GPIO is marked as active_low.
56 it to 1 marks the GPIO as active low.
61 In our Bluetooth example the "reset-gpios" refers to the second GpioIo()
62 resource, second pin in that resource with the GPIO number of 31.
75 assuming non-active (Polarity = !Pull Bias)
77 Down High as low, assuming non-active
78 Up Low as high, assuming non-active
94 "cs-gpios",
96 ^GPIO, 19, 0, 0, // chip select 0: GPIO
98 ^GPIO, 20, 0, 0, // chip select 2: GPIO
102 Note, that historically ACPI has no means of the GPIO polarity and thus
103 the SPISerialBus() resource defines it on the per-chip basis. In order
104 to avoid a chain of negations, the GPIO polarity is considered being
106 above) the GPIO CS polarity must be defined Active High to avoid ambiguity.
112 _DSD device properties for GPIO controllers:
114 - gpio-hog
115 - output-high
116 - output-low
117 - input
118 - line-name
124 ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
126 Package () { "hog-gpio8", "G8PU" }
131 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
133 Package () { "gpio-hog", 1 },
135 Package () { "output-high", 1 },
136 Package () { "line-name", "gpio8-pullup" },
140 - gpio-line-names
142 The ``gpio-line-names`` declaration is a list of strings ("names"), which
143 describes each line/pin of a GPIO controller/expander. This list, contained in
144 a package, must be inserted inside the GPIO controller declaration of an ACPI
145 table (typically inside the DSDT). The ``gpio-line-names`` list must respect the
148 - the first name in the list corresponds with the first line/pin of the GPIO
150 - the names inside the list must be consecutive (no "holes" are permitted)
151 - the list can be incomplete and can end before the last GPIO line: in
152 other words, it is not mandatory to fill all the GPIO lines
153 - empty names are allowed (two quotation marks ``""`` correspond to an empty
155 - names inside one GPIO controller/expander must be unique
157 Example of a GPIO controller of 16 lines, with an incomplete list with two
161 "gpio-line-names",
176 gpiochip4 - 16 lines:
177 line 0: "pin_0" unused input active-high
178 line 1: "pin_1" unused input active-high
179 line 2: unnamed unused input active-high
180 line 3: unnamed unused input active-high
181 line 4: "pin_3" unused input active-high
182 line 5: "pin_4_push_button" unused input active-high
183 line 6: unnamed unused input active-high
184 line 7 unnamed unused input active-high
185 line 8: unnamed unused input active-high
186 line 9: unnamed unused input active-high
187 line 10: unnamed unused input active-high
188 line 11: unnamed unused input active-high
189 line 12: unnamed unused input active-high
190 line 13: unnamed unused input active-high
191 line 14: unnamed unused input active-high
192 line 15: unnamed unused input active-high
200 "gpio-line-names",
207 See Documentation/devicetree/bindings/gpio/gpio.txt for more information
210 ACPI GPIO Mappings Provided by Drivers
219 to be sufficient to determine the meaning and purpose of all of the GPIO lines
223 to the GPIO lines it is going to use and provide the GPIO subsystem with a
224 mapping between those names and the ACPI GPIO resources corresponding to them.
226 To do that, the driver needs to define a mapping table as a NULL-terminated
228 to an array of line data (struct acpi_gpio_params) objects and the size of that
232 line in that resource starting from zero, and the active-low flag for that line,
233 respectively, in analogy with the _DSD GPIO property format specified above.
242 { "reset-gpios", &reset_gpio, 1 },
243 { "shutdown-gpios", &shutdown_gpio, 1 },
251 On removal, the driver should unregister its GPIO mapping table by
258 If a device does not have _DSD or the driver does not create ACPI GPIO
259 mapping, the Linux GPIO framework refuses to return any GPIOs. This is
275 The driver might expect to get the right GPIO when it does::
282 the GpioIo() in _CRS desc will hold ERR_PTR(-ENOENT).
287 The ACPI GPIO mapping tables should not contaminate drivers that are not
289 the ACPI GPIO mapping tables are hardly linked to an ACPI ID and certain
292 Getting GPIO descriptor
295 There are two main approaches to get GPIO resource from ACPI::
305 desc = gpiod_get(dev, "non-null-connection-id", flags);
306 desc = gpiod_get_index(dev, "non-null-connection-id", index, flags);
314 defined device properties and will prevent to getting any GPIO resources
317 Case 2 explicitly tells GPIO core to look for resources in _CRS.