Zephyr Project API 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
13#ifndef ZEPHYR_INCLUDE_SWDP_H_
14#define ZEPHYR_INCLUDE_SWDP_H_
15
16#include <zephyr/device.h>
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
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)
48
61#define SWDP_ACK_OK BIT(0)
63#define SWDP_ACK_WAIT BIT(1)
65#define SWDP_ACK_FAULT BIT(2)
66
70#define SWDP_TRANSFER_ERROR BIT(3)
71
82#define SWDP_SWCLK_PIN 0U
84#define SWDP_SWDIO_PIN 1U
86#define SWDP_nRESET_PIN 7U
87
94struct swdp_api {
103 int (*swdp_output_sequence)(const struct device *dev,
104 uint32_t count,
105 const uint8_t *data);
106
115 int (*swdp_input_sequence)(const struct device *dev,
116 uint32_t count,
117 uint8_t *data);
118
129 int (*swdp_transfer)(const struct device *dev,
130 uint8_t request,
131 uint32_t *data,
132 uint8_t idle_cycles,
133 uint8_t *response);
134
144 int (*swdp_set_pins)(const struct device *dev,
145 uint8_t pins, uint8_t value);
146
155 int (*swdp_get_pins)(const struct device *dev, uint8_t *state);
156
164 int (*swdp_set_clock)(const struct device *dev, uint32_t clock);
165
174 int (*swdp_configure)(const struct device *dev,
175 uint8_t turnaround,
176 bool data_phase);
177
186 int (*swdp_port_on)(const struct device *dev);
187
194 int (*swdp_port_off)(const struct device *dev);
195};
196
197#ifdef __cplusplus
198}
199#endif
200
203#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: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