OpenOCD
linuxgpiod.c File Reference
Include dependency graph for linuxgpiod.c:

Go to the source code of this file.

Functions

static int helper_get_line (enum adapter_gpio_config_index idx)
 
static void helper_release (enum adapter_gpio_config_index idx)
 
static bool is_gpio_config_valid (enum adapter_gpio_config_index idx)
 
static int linuxgpiod_blink (bool on)
 
static int linuxgpiod_init (void)
 
static bool linuxgpiod_jtag_mode_possible (void)
 
static int linuxgpiod_line_get_value (enum adapter_gpio_config_index idx)
 
static int linuxgpiod_line_set_value (enum adapter_gpio_config_index idx, int value)
 
static int linuxgpiod_quit (void)
 
static enum bb_value linuxgpiod_read (void)
 
static int linuxgpiod_reset (int trst, int srst)
 
static bool linuxgpiod_swd_mode_possible (void)
 
static int linuxgpiod_swd_write (int swclk, int swdio)
 
static void linuxgpiod_swdio_drive (bool is_output)
 
static int linuxgpiod_swdio_read (void)
 
static int linuxgpiod_write (int tck, int tms, int tdi)
 

Variables

static const struct adapter_gpio_configadapter_gpio_config
 
static struct gpiod_chip * gpiod_chip [ADAPTER_GPIO_IDX_NUM] = {}
 
static struct gpiod_line_config * gpiod_line_config [ADAPTER_GPIO_IDX_NUM] = {}
 
static struct gpiod_line_request * gpiod_line_req [ADAPTER_GPIO_IDX_NUM] = {}
 
static struct gpiod_line_settings * gpiod_line_settings [ADAPTER_GPIO_IDX_NUM] = {}
 
static bool last_stored
 
static int last_swclk
 
static int last_swdio
 
struct adapter_driver linuxgpiod_adapter_driver
 
static const struct bitbang_interface linuxgpiod_bitbang
 
static struct jtag_interface linuxgpiod_interface
 
static bool swdio_input
 

Function Documentation

◆ helper_get_line()

◆ helper_release()

static void helper_release ( enum adapter_gpio_config_index  idx)
inlinestatic

Definition at line 563 of file linuxgpiod.c.

References gpiod_chip, gpiod_line_config, gpiod_line_req, gpiod_line_settings, and NULL.

Referenced by linuxgpiod_quit().

◆ is_gpio_config_valid()

static bool is_gpio_config_valid ( enum adapter_gpio_config_index  idx)
static

◆ linuxgpiod_blink()

static int linuxgpiod_blink ( bool  on)
static

Definition at line 489 of file linuxgpiod.c.

◆ linuxgpiod_init()

static int linuxgpiod_init ( void  )
static

Definition at line 698 of file linuxgpiod.c.

◆ linuxgpiod_jtag_mode_possible()

static bool linuxgpiod_jtag_mode_possible ( void  )
static

◆ linuxgpiod_line_get_value()

static int linuxgpiod_line_get_value ( enum adapter_gpio_config_index  idx)
static

Definition at line 303 of file linuxgpiod.c.

References adapter_gpio_config::gpio_num, and gpiod_line_req.

Referenced by linuxgpiod_swdio_read().

◆ linuxgpiod_line_set_value()

static int linuxgpiod_line_set_value ( enum adapter_gpio_config_index  idx,
int  value 
)
static

◆ linuxgpiod_quit()

static int linuxgpiod_quit ( void  )
static

Definition at line 583 of file linuxgpiod.c.

References ADAPTER_GPIO_IDX_NUM, ERROR_OK, helper_release(), and LOG_DEBUG.

◆ linuxgpiod_read()

static enum bb_value linuxgpiod_read ( void  )
static

Definition at line 322 of file linuxgpiod.c.

◆ linuxgpiod_reset()

static int linuxgpiod_reset ( int  trst,
int  srst 
)
static

◆ linuxgpiod_swd_mode_possible()

static bool linuxgpiod_swd_mode_possible ( void  )
static

◆ linuxgpiod_swd_write()

static int linuxgpiod_swd_write ( int  swclk,
int  swdio 
)
static

◆ linuxgpiod_swdio_drive()

◆ linuxgpiod_swdio_read()

static int linuxgpiod_swdio_read ( void  )
static

Definition at line 391 of file linuxgpiod.c.

References ADAPTER_GPIO_IDX_SWDIO, linuxgpiod_line_get_value(), and LOG_WARNING.

◆ linuxgpiod_write()

static int linuxgpiod_write ( int  tck,
int  tms,
int  tdi 
)
static

Variable Documentation

◆ adapter_gpio_config

Definition at line 300 of file linuxgpiod.c.

◆ gpiod_chip

struct gpiod_chip* gpiod_chip[ADAPTER_GPIO_IDX_NUM] = {}
static

Definition at line 290 of file linuxgpiod.c.

Referenced by helper_get_line(), and helper_release().

◆ gpiod_line_config

struct gpiod_line_config* gpiod_line_config[ADAPTER_GPIO_IDX_NUM] = {}
static

Definition at line 292 of file linuxgpiod.c.

Referenced by helper_get_line(), helper_release(), and linuxgpiod_swdio_drive().

◆ gpiod_line_req

struct gpiod_line_request* gpiod_line_req[ADAPTER_GPIO_IDX_NUM] = {}
static

◆ gpiod_line_settings

struct gpiod_line_settings* gpiod_line_settings[ADAPTER_GPIO_IDX_NUM] = {}
static

Definition at line 291 of file linuxgpiod.c.

Referenced by helper_get_line(), helper_release(), and linuxgpiod_swdio_drive().

◆ last_stored

bool last_stored
static

Definition at line 297 of file linuxgpiod.c.

Referenced by linuxgpiod_swd_write(), and linuxgpiod_swdio_drive().

◆ last_swclk

int last_swclk
static

Definition at line 295 of file linuxgpiod.c.

Referenced by linuxgpiod_swd_write().

◆ last_swdio

int last_swdio
static

Definition at line 296 of file linuxgpiod.c.

Referenced by linuxgpiod_swd_write().

◆ linuxgpiod_adapter_driver

struct adapter_driver linuxgpiod_adapter_driver
Initial value:
= {
.name = "linuxgpiod",
.transport_ids = TRANSPORT_SWD | TRANSPORT_JTAG,
.transport_preferred_id = TRANSPORT_SWD,
.init = linuxgpiod_init,
.quit = linuxgpiod_quit,
.reset = linuxgpiod_reset,
.jtag_ops = &linuxgpiod_interface,
.swd_ops = &bitbang_swd,
}
const struct swd_driver bitbang_swd
Definition: bitbang.c:614
static int linuxgpiod_quit(void)
Definition: linuxgpiod.c:583
static struct jtag_interface linuxgpiod_interface
Definition: linuxgpiod.c:763
static int linuxgpiod_reset(int trst, int srst)
Definition: linuxgpiod.c:516
static int linuxgpiod_init(void)
Definition: linuxgpiod.c:698
#define TRANSPORT_SWD
Definition: transport.h:20
#define TRANSPORT_JTAG
Definition: transport.h:19

Definition at line 698 of file linuxgpiod.c.

◆ linuxgpiod_bitbang

const struct bitbang_interface linuxgpiod_bitbang
static
Initial value:
= {
.read = linuxgpiod_read,
.write = linuxgpiod_write,
.swdio_read = linuxgpiod_swdio_read,
.swdio_drive = linuxgpiod_swdio_drive,
.swd_write = linuxgpiod_swd_write,
.blink = linuxgpiod_blink,
}
static int linuxgpiod_blink(bool on)
Definition: linuxgpiod.c:489
static int linuxgpiod_swdio_read(void)
Definition: linuxgpiod.c:391
static enum bb_value linuxgpiod_read(void)
Definition: linuxgpiod.c:329
static void linuxgpiod_swdio_drive(bool is_output)
Definition: linuxgpiod.c:404
static int linuxgpiod_write(int tck, int tms, int tdi)
Definition: linuxgpiod.c:348
static int linuxgpiod_swd_write(int swclk, int swdio)
Definition: linuxgpiod.c:463

Definition at line 489 of file linuxgpiod.c.

◆ linuxgpiod_interface

struct jtag_interface linuxgpiod_interface
static
Initial value:
= {
.supported = DEBUG_CAP_TMS_SEQ,
.execute_queue = bitbang_execute_queue,
}
int bitbang_execute_queue(struct jtag_command *cmd_queue)
Definition: bitbang.c:293
#define DEBUG_CAP_TMS_SEQ
Definition: interface.h:188

Definition at line 698 of file linuxgpiod.c.

◆ swdio_input

bool swdio_input
static

Definition at line 298 of file linuxgpiod.c.

Referenced by linuxgpiod_swd_write(), and linuxgpiod_swdio_drive().