Zephyr API Documentation 4.2.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
swdp.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2019 PHYTEC Messtechnik GmbH
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
11
12#ifndef ZEPHYR_INCLUDE_SWDP_H_
13#define ZEPHYR_INCLUDE_SWDP_H_
14
15#include <zephyr/device.h>
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
28
37
39#define SWDP_REQUEST_APnDP BIT(0)
41#define SWDP_REQUEST_RnW BIT(1)
43#define SWDP_REQUEST_A2 BIT(2)
45#define SWDP_REQUEST_A3 BIT(3)
46
48
57
59#define SWDP_ACK_OK BIT(0)
61#define SWDP_ACK_WAIT BIT(1)
63#define SWDP_ACK_FAULT BIT(2)
64
66
68#define SWDP_TRANSFER_ERROR BIT(3)
69
78
80#define SWDP_SWCLK_PIN 0U
82#define SWDP_SWDIO_PIN 1U
84#define SWDP_nRESET_PIN 7U
85
87
92struct swdp_api {
101 int (*swdp_output_sequence)(const struct device *dev,
102 uint32_t count,
103 const uint8_t *data);
104
113 int (*swdp_input_sequence)(const struct device *dev,
114 uint32_t count,
115 uint8_t *data);
116
127 int (*swdp_transfer)(const struct device *dev,
128 uint8_t request,
129 uint32_t *data,
130 uint8_t idle_cycles,
131 uint8_t *response);
132
142 int (*swdp_set_pins)(const struct device *dev,
143 uint8_t pins, uint8_t value);
144
153 int (*swdp_get_pins)(const struct device *dev, uint8_t *state);
154
162 int (*swdp_set_clock)(const struct device *dev, uint32_t clock);
163
172 int (*swdp_configure)(const struct device *dev,
173 uint8_t turnaround,
174 bool data_phase);
175
184 int (*swdp_port_on)(const struct device *dev);
185
192 int (*swdp_port_off)(const struct device *dev);
193};
194
195#ifdef __cplusplus
196}
197#endif
198
200
201#endif /* ZEPHYR_INCLUDE_SWDP_H_ */
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:510
Serial Wire Debug Port (SWDP) driver API.
Definition swdp.h:92
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:113
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:127
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:101
int(* swdp_configure)(const struct device *dev, uint8_t turnaround, bool data_phase)
Configure SWDP interface.
Definition swdp.h:172
int(* swdp_port_on)(const struct device *dev)
Enable interface, set pins to default state.
Definition swdp.h:184
int(* swdp_port_off)(const struct device *dev)
Disable interface, set pins to High-Z mode.
Definition swdp.h:192
int(* swdp_set_clock)(const struct device *dev, uint32_t clock)
Set SWDP clock frequency.
Definition swdp.h:162
int(* swdp_get_pins)(const struct device *dev, uint8_t *state)
Get SWCLK, SWDPIO, and nRESET pins state.
Definition swdp.h:153
int(* swdp_set_pins)(const struct device *dev, uint8_t pins, uint8_t value)
Set SWCLK, SWDPIO, and nRESET pins state.
Definition swdp.h:142