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 number- pin.
- 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 | DEPRECATED - Unused | 
SERVICES
Service
Defined in fuchsia.hardware.pinimpl/pin-impl.fidl
| Name | Type | Transport | 
|---|---|---|
| device | fuchsia.hardware.pinimpl/PinImpl | Driver |