80 lines
3.4 KiB
C
80 lines
3.4 KiB
C
/***************************************************************************
|
|
* Copyright (C) 2016 by Matthias Welwarsky *
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
* This program is distributed in the hope that it will be useful, *
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
* GNU General Public License for more details. *
|
|
* *
|
|
* You should have received a copy of the GNU General Public License *
|
|
* along with this program; if not, write to the *
|
|
* Free Software Foundation, Inc., *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
#ifndef OPENOCD_TARGET_ARM_CTI_H
|
|
#define OPENOCD_TARGET_ARM_CTI_H
|
|
|
|
/*define CTI(cross trigger interface)*/
|
|
#define CTI_CTR 0x0
|
|
#define CTI_INACK 0x10
|
|
#define CTI_APPSET 0x14
|
|
#define CTI_APPCLEAR 0x18
|
|
#define CTI_APPPULSE 0x1C
|
|
#define CTI_INEN0 0x20
|
|
#define CTI_INEN1 0x24
|
|
#define CTI_INEN2 0x28
|
|
#define CTI_INEN3 0x2C
|
|
#define CTI_INEN4 0x30
|
|
#define CTI_INEN5 0x34
|
|
#define CTI_INEN6 0x38
|
|
#define CTI_INEN7 0x3C
|
|
#define CTI_INEN8 0x40
|
|
#define CTI_INEN(n) (0x20 + 4 * n)
|
|
#define CTI_OUTEN0 0xA0
|
|
#define CTI_OUTEN1 0xA4
|
|
#define CTI_OUTEN2 0xA8
|
|
#define CTI_OUTEN3 0xAC
|
|
#define CTI_OUTEN4 0xB0
|
|
#define CTI_OUTEN5 0xB4
|
|
#define CTI_OUTEN6 0xB8
|
|
#define CTI_OUTEN7 0xBC
|
|
#define CTI_OUTEN8 0xC0
|
|
#define CTI_OUTEN(n) (0xA0 + 4 * n)
|
|
#define CTI_TRIN_STATUS 0x130
|
|
#define CTI_TROUT_STATUS 0x134
|
|
#define CTI_CHIN_STATUS 0x138
|
|
#define CTI_CHOU_STATUS 0x13C
|
|
#define CTI_GATE 0x140
|
|
#define CTI_UNLOCK 0xFB0
|
|
|
|
#define CTI_CHNL(x) (1 << x)
|
|
#define CTI_TRIG_HALT 0
|
|
#define CTI_TRIG_RESUME 1
|
|
#define CTI_TRIG(n) (1 << CTI_TRIG_##n)
|
|
|
|
/* forward-declare arm_cti struct */
|
|
struct arm_cti;
|
|
struct adiv5_ap;
|
|
|
|
extern const char *arm_cti_name(struct arm_cti *self);
|
|
extern struct arm_cti *cti_instance_by_jim_obj(Jim_Interp *interp, Jim_Obj *o);
|
|
extern int arm_cti_enable(struct arm_cti *self, bool enable);
|
|
extern int arm_cti_ack_events(struct arm_cti *self, uint32_t event);
|
|
extern int arm_cti_gate_channel(struct arm_cti *self, uint32_t channel);
|
|
extern int arm_cti_ungate_channel(struct arm_cti *self, uint32_t channel);
|
|
extern int arm_cti_write_reg(struct arm_cti *self, unsigned int reg, uint32_t value);
|
|
extern int arm_cti_read_reg(struct arm_cti *self, unsigned int reg, uint32_t *value);
|
|
extern int arm_cti_pulse_channel(struct arm_cti *self, uint32_t channel);
|
|
extern int arm_cti_set_channel(struct arm_cti *self, uint32_t channel);
|
|
extern int arm_cti_clear_channel(struct arm_cti *self, uint32_t channel);
|
|
extern int arm_cti_cleanup_all(void);
|
|
extern int cti_register_commands(struct command_context *cmd_ctx);
|
|
|
|
#endif /* OPENOCD_TARGET_ARM_CTI_H */
|