PROTOCOLS
PinImpl
Defined in fuchsia.hardware.pinimpl/pin-impl.fidl
This protocol combines the functionality of fuchsia.hardware.gpio.Gpio and fuchsia.hardware.pin.Pin, accepting a number indicating the pin to act on. See those protocol definitions for details on specific methods.
A PinImpl server must support at least one client connection. The server should release all
interrupts returned by GetInterrupt()
if the client that requested the interrupts disconnects.
Common error codes:
ZX_ERR_NOT_FOUND
: No pin exists with numberpin
.ZX_ERR_NOT_SUPPORTED
: The requested operation is not supported by this controller.ZX_ERR_WRONG_TYPE
: If the pin does not support GPIO.
Configure
Request
Name | Type |
---|---|
pin |
uint32
|
config |
fuchsia.hardware.pin/Configuration
|
Response
Name | Type |
---|---|
payload |
PinImpl_Configure_Result
|
ConfigureInterrupt
Request
Name | Type |
---|---|
pin |
uint32
|
config |
fuchsia.hardware.gpio/InterruptConfiguration
|
Response
Name | Type |
---|---|
payload |
PinImpl_ConfigureInterrupt_Result
|
GetInterrupt
The PinImpl server should create a new interrupt object for each call to GetInterrupt()
.
Request
Name | Type |
---|---|
pin |
uint32
|
options |
fuchsia.hardware.gpio/InterruptOptions
|
Response
Name | Type |
---|---|
payload |
PinImpl_GetInterrupt_Result
|
Read
Request
Name | Type |
---|---|
pin |
uint32
|
Response
Name | Type |
---|---|
payload |
PinImpl_Read_Result
|
ReleaseInterrupt
Request
Name | Type |
---|---|
pin |
uint32
|
Response
Name | Type |
---|---|
payload |
PinImpl_ReleaseInterrupt_Result
|
SetBufferMode
Request
Name | Type |
---|---|
pin |
uint32
|
mode |
fuchsia.hardware.gpio/BufferMode
|
Response
Name | Type |
---|---|
payload |
PinImpl_SetBufferMode_Result
|
STRUCTS
Call
Defined in fuchsia.hardware.pinimpl/metadata.fidl
Field | Type | Description | Default |
---|---|---|---|
pin |
uint32
|
The platform-specific pin number that this call operates on. |
No default |
call |
InitCall
|
The call to make and the arguments to pass to it. |
No default |
PinImpl_ConfigureInterrupt_Response
Defined in fuchsia.hardware.pinimpl/pin-impl.fidl
<EMPTY>
PinImpl_Configure_Response
Defined in fuchsia.hardware.pinimpl/pin-impl.fidl
Field | Type | Description | Default |
---|---|---|---|
new_config |
fuchsia.hardware.pin/Configuration
|
No default |
PinImpl_GetInterrupt_Response resource
Defined in fuchsia.hardware.pinimpl/pin-impl.fidl
Field | Type | Description | Default |
---|---|---|---|
interrupt |
handle<interrupt>
|
No default |
PinImpl_Read_Response
Defined in fuchsia.hardware.pinimpl/pin-impl.fidl
Field | Type | Description | Default |
---|---|---|---|
value |
bool
|
No default |
PinImpl_ReleaseInterrupt_Response
Defined in fuchsia.hardware.pinimpl/pin-impl.fidl
<EMPTY>
PinImpl_SetBufferMode_Response
Defined in fuchsia.hardware.pinimpl/pin-impl.fidl
<EMPTY>
TABLES
Metadata
Defined in fuchsia.hardware.pinimpl/metadata.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
init_steps |
vector<InitStep>
|
Init steps are processed sequentially in the order that they appear in the vector. Processing occurs once during the GPIO core driver's start hook. |
2 |
controller_id |
uint32
|
|
3 |
pins |
vector<Pin>
|
Pin
Defined in fuchsia.hardware.pinimpl/metadata.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
pin |
uint32
|
|
2 |
name |
string:64
|
UNIONS
InitCall flexible
Defined in fuchsia.hardware.pinimpl/metadata.fidl
Arguments to a fuchsia.hardware.pinimpl.PinImpl call to make as part of an InitStep
.
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
pin_config |
fuchsia.hardware.pin/Configuration
|
If set, the GPIO core driver will call `Configure' with the given config. |
2 |
buffer_mode |
fuchsia.hardware.gpio/BufferMode
|
If set, the GPIO core driver will call |
InitStep flexible
Defined in fuchsia.hardware.pinimpl/metadata.fidl
A single init step to be performed by the GPIO core driver.
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
call |
Call
|
If set, the GPIO core driver will make a call to the PinImpl driver with the given pin and arguments. |
2 |
delay |
zx/Duration
|
If set, the GPIO core driver will delay for this long before processing the next step. |
PinImpl_ConfigureInterrupt_Result strict
Defined in fuchsia.hardware.pinimpl/pin-impl.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
PinImpl_ConfigureInterrupt_Response
|
|
2 |
err |
zx/Status
|
PinImpl_Configure_Result strict
Defined in fuchsia.hardware.pinimpl/pin-impl.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
PinImpl_Configure_Response
|
|
2 |
err |
zx/Status
|
PinImpl_GetInterrupt_Result strict resource
Defined in fuchsia.hardware.pinimpl/pin-impl.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
PinImpl_GetInterrupt_Response
|
|
2 |
err |
zx/Status
|
PinImpl_Read_Result strict
Defined in fuchsia.hardware.pinimpl/pin-impl.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
PinImpl_Read_Response
|
|
2 |
err |
zx/Status
|
PinImpl_ReleaseInterrupt_Result strict
Defined in fuchsia.hardware.pinimpl/pin-impl.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
PinImpl_ReleaseInterrupt_Response
|
|
2 |
err |
zx/Status
|
PinImpl_SetBufferMode_Result strict
Defined in fuchsia.hardware.pinimpl/pin-impl.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
PinImpl_SetBufferMode_Response
|
|
2 |
err |
zx/Status
|
CONSTANTS
Name | Value | Type | Description |
---|---|---|---|
METADATA_TYPE_NAME | fuchsia.hardware.pinimpl.Metadata |
String |
SERVICES
Service
Defined in fuchsia.hardware.pinimpl/pin-impl.fidl
Name | Type | Transport |
---|---|---|
device |
fuchsia.hardware.pinimpl/PinImpl
|
Driver |