13#ifndef ZEPHYR_INCLUDE_SWDP_H_
14#define ZEPHYR_INCLUDE_SWDP_H_
41#define SWDP_REQUEST_APnDP BIT(0)
43#define SWDP_REQUEST_RnW BIT(1)
45#define SWDP_REQUEST_A2 BIT(2)
47#define SWDP_REQUEST_A3 BIT(3)
61#define SWDP_ACK_OK BIT(0)
63#define SWDP_ACK_WAIT BIT(1)
65#define SWDP_ACK_FAULT BIT(2)
70#define SWDP_TRANSFER_ERROR BIT(3)
82#define SWDP_SWCLK_PIN 0U
84#define SWDP_SWDIO_PIN 1U
86#define SWDP_nRESET_PIN 7U
211static inline int z_impl_swdp_output_sequence(
const struct device *dev,
232static inline int z_impl_swdp_input_sequence(
const struct device *dev,
260static inline int z_impl_swdp_transfer(
const struct device *dev,
268 return api->
swdp_transfer(dev, request, data, idle_cycles, response);
284static inline int z_impl_swdp_set_pins(
const struct device *dev,
304static inline int z_impl_swdp_get_pins(
const struct device *dev,
322static inline int z_impl_swdp_set_clock(
const struct device *dev,
340static inline int z_impl_swdp_port_on(
const struct device *dev)
355static inline int z_impl_swdp_port_off(
const struct device *dev)
372 const bool data_phase);
374static inline int z_impl_swdp_configure(
const struct device *dev,
376 const bool data_phase)
389#include <zephyr/syscalls/swdp.h>
int swdp_port_on(const struct device *dev)
Enable interface, set pins to default state.
int swdp_output_sequence(const struct device *dev, const uint32_t count, const uint8_t *const data)
Write count bits to SWDIO from data LSB first.
int swdp_input_sequence(const struct device *dev, const uint32_t count, uint8_t *const buf)
Read count bits from SWDIO into data LSB first.
int swdp_get_pins(const struct device *dev, uint8_t *const state)
Get SWCLK, SWDPIO, and nRESET pins state.
int swdp_set_pins(const struct device *dev, const uint8_t pins, const uint8_t value)
Set SWCLK, SWDPIO, and nRESET pins state.
int swdp_transfer(const struct device *dev, const uint8_t request, uint32_t *const data, const uint8_t idle_cycles, uint8_t *const response)
Perform SWDP transfer and store response.
int swdp_configure(const struct device *dev, const uint8_t turnaround, const bool data_phase)
Configure SWDP interface.
int swdp_port_off(const struct device *dev)
Disable interface, set pins to High-Z mode.
int swdp_set_clock(const struct device *dev, const uint32_t clock)
Set SWDP clock frequency.
state
Definition parser_state.h:29
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
Runtime device structure (in ROM) per driver instance.
Definition device.h:513
void * data
Address of the device instance private data.
Definition device.h:523
const void * api
Address of the API structure exposed by the device instance.
Definition device.h:519
Serial Wire Debug Port (SWDP) driver API.
Definition swdp.h:94
int(* swdp_input_sequence)(const struct device *dev, uint32_t count, uint8_t *data)
Read count bits from SWDIO into data LSB first.
Definition swdp.h:115
int(* swdp_transfer)(const struct device *dev, uint8_t request, uint32_t *data, uint8_t idle_cycles, uint8_t *response)
Perform SWDP transfer and store response.
Definition swdp.h:129
int(* swdp_output_sequence)(const struct device *dev, uint32_t count, const uint8_t *data)
Write count bits to SWDIO from data LSB first.
Definition swdp.h:103
int(* swdp_configure)(const struct device *dev, uint8_t turnaround, bool data_phase)
Configure SWDP interface.
Definition swdp.h:174
int(* swdp_port_on)(const struct device *dev)
Enable interface, set pins to default state.
Definition swdp.h:186
int(* swdp_port_off)(const struct device *dev)
Disable interface, set pins to High-Z mode.
Definition swdp.h:194
int(* swdp_set_clock)(const struct device *dev, uint32_t clock)
Set SWDP clock frequency.
Definition swdp.h:164
int(* swdp_get_pins)(const struct device *dev, uint8_t *state)
Get SWCLK, SWDPIO, and nRESET pins state.
Definition swdp.h:155
int(* swdp_set_pins)(const struct device *dev, uint8_t pins, uint8_t value)
Set SWCLK, SWDPIO, and nRESET pins state.
Definition swdp.h:144