template <>

class NaturalSyncClientImpl

Defined at line 243 of file fidling/gen/sdk/fidl/fuchsia.hardware.spmi/fuchsia.hardware.spmi/cpp/fidl/fuchsia.hardware.spmi/cpp/natural_messaging.h

Public Methods

::fidl::Result< ::fuchsia_hardware_spmi::Device::ExtendedRegisterReadLong> ExtendedRegisterReadLong (const ::fidl::Request< ::fuchsia_hardware_spmi::Device::ExtendedRegisterReadLong> & request)

Issue Extended Register Read Long SPMI commands to the SPMI device.

Used to read from a 16 bit SPMI register space.

When successful, it returns `size_bytes` in `data` read contiguously starting from

`address` in the device.

::fidl::Result< ::fuchsia_hardware_spmi::Device::ExtendedRegisterWriteLong> ExtendedRegisterWriteLong (const ::fidl::Request< ::fuchsia_hardware_spmi::Device::ExtendedRegisterWriteLong> & request)

Issue Extended Register Write Long SPMI commands to the SPMI device.

Used to write to a 16 bit SPMI register space.

When this command is successful, `data` will be written contiguously starting from

`address` in the device.

::fidl::Result< ::fuchsia_hardware_spmi::Device::GetProperties> GetProperties ()

Get the properties of the SPMI device.

::fidl::Result< ::fuchsia_hardware_spmi::Device::WatchControllerWriteCommands> WatchControllerWriteCommands (::fidl::Request< ::fuchsia_hardware_spmi::Device::WatchControllerWriteCommands> request)

Hanging-get method to receive controller write commands from the device. `address` and

`size` specify the register range to monitor for commands. Multiple overlapping calls to

this method are not allowed.

Returns `INVALID_ARGS` if `address` or `size` are invalid, or `BAD_STATE` if another call

is pending for this register range. Returns `CANCELED` if

`CancelWatchControllerWriteCommands()` was called for this register range.

If this method is meant to keep the system awake (prevents suspension) while watch is setup,

use the passed-in `setup_wake_lease` `LeaseToken`. Then, when the watch is triggered this

method will return a second `wake_lease` `LeaseToken` to prevent suspension.

These keep alive wake lease tokens are provided by the Power Framework's System Activity

Governor. A driver supporting keep alive must be able to get `wake_lease` from System

Activity Governor.

When `wake_lease` is closed, then the created wake lease keeping the system from suspending

at the time of watch triggering is dropped. Hence, to guarantee that the system is not

suspended by the Power Framework a client must either keep this `wake_lease` for as long as

the system needs to stay awake, or a client must get its own wake lease from the Power

Framework before it drops `wake_lease` to prevent suspension.

::fidl::Result< ::fuchsia_hardware_spmi::Device::CancelWatchControllerWriteCommands> CancelWatchControllerWriteCommands (const ::fidl::Request< ::fuchsia_hardware_spmi::Device::CancelWatchControllerWriteCommands> & request)

Cancels an pending call to `WatchControllerWriteCommands`. `address` and `size` must

exactly match a previous call to `WatchControllerWriteCommands()`, otherwise `NOT_FOUND`

is returned.