Commit 8a406bae authored by Lucas Russo's avatar Lucas Russo

sm_io/*/trigger_iface/*: add direction polarity function

parent 04ce1b5e
......@@ -14,19 +14,21 @@
#define TRIGGER_IFACE_OPCODE_DIR 0
#define TRIGGER_IFACE_NAME_DIR "trigger_iface_dir"
#define TRIGGER_IFACE_OPCODE_RCV_COUNT_RST 1
#define TRIGGER_IFACE_OPCODE_DIR_POL 1
#define TRIGGER_IFACE_NAME_DIR_POL "trigger_iface_dir_pol"
#define TRIGGER_IFACE_OPCODE_RCV_COUNT_RST 2
#define TRIGGER_IFACE_NAME_RCV_COUNT_RST "trigger_iface_rcv_count_rst"
#define TRIGGER_IFACE_OPCODE_TRANSM_COUNT_RST 2
#define TRIGGER_IFACE_OPCODE_TRANSM_COUNT_RST 3
#define TRIGGER_IFACE_NAME_TRANSM_COUNT_RST "trigger_iface_transm_count_rst"
#define TRIGGER_IFACE_OPCODE_RCV_LEN 3
#define TRIGGER_IFACE_OPCODE_RCV_LEN 4
#define TRIGGER_IFACE_NAME_RCV_LEN "trigger_iface_rcv_len"
#define TRIGGER_IFACE_OPCODE_TRANSM_LEN 4
#define TRIGGER_IFACE_OPCODE_TRANSM_LEN 5
#define TRIGGER_IFACE_NAME_TRANSM_LEN "trigger_iface_transm_len"
#define TRIGGER_IFACE_OPCODE_COUNT_RCV 5
#define TRIGGER_IFACE_OPCODE_COUNT_RCV 6
#define TRIGGER_IFACE_NAME_COUNT_RCV "trigger_iface_count_rcv"
#define TRIGGER_IFACE_OPCODE_COUNT_TRANSM 6
#define TRIGGER_IFACE_OPCODE_COUNT_TRANSM 7
#define TRIGGER_IFACE_NAME_COUNT_TRANSM "trigger_iface_count_transm"
#define TRIGGER_IFACE_OPCODE_END 7
#define TRIGGER_IFACE_OPCODE_END 8
/* Messaging Reply OPCODES */
#define TRIGGER_IFACE_REPLY_TYPE uint32_t
......
......@@ -59,6 +59,7 @@ smio_err_e trigger_iface_config_defaults (char *broker_endp, char *service,
uint32_t chan;
for (chan = 0; chan < SMIO_TRIGGER_IFACE_MAX_CHAN; ++chan) {
client_err = bpm_set_trigger_dir (config_client, service, chan, TRIGGER_IFACE_DFLT_DIR);
client_err |= bpm_set_trigger_dir_pol (config_client, service, chan, TRIGGER_IFACE_DIR_POL);
client_err |= bpm_set_trigger_rcv_count_rst (config_client, service, chan, TRIGGER_IFACE_DFLT_RCV_RST);
client_err |= bpm_set_trigger_transm_count_rst (config_client, service, chan, TRIGGER_IFACE_DFLT_TRANSM_RST);
client_err |= bpm_set_trigger_rcv_len (config_client, service, chan, TRIGGER_IFACE_DFLT_RCV_LEN);
......
......@@ -11,6 +11,7 @@
#include "sm_io_err.h"
#define TRIGGER_IFACE_DFLT_DIR 1 /* Input */
#define TRIGGER_IFACE_DFLT_DIR_POL 1 /* Reversed polarity */
#define TRIGGER_IFACE_DFLT_RCV_RST 1 /* Pulse Reset */
#define TRIGGER_IFACE_DFLT_TRANSM_RST 1 /* Pulse Reset */
#define TRIGGER_IFACE_DFLT_RCV_LEN 1 /* Debounce Length */
......
......@@ -54,6 +54,15 @@ RW_PARAM_FUNC(trigger_iface, dir) {
NO_FMT_FUNC, SET_FIELD);
}
#define BPM_TRIGGER_IFACE_DIR_POL_MIN 0 /* Direction polarity kept */
#define BPM_TRIGGER_IFACE_DIR_POL_MAX 1 /* Direction polarity reversed */
RW_PARAM_FUNC(trigger_iface, dir_pol) {
SET_GET_PARAM_CHANNEL(trigger_iface, WB_TRIGGER_IFACE_RAW_REG_OFFS, WB_TRIG_IFACE,
CH0_CTL, DIR_POL, TRIGGER_IFACE_CHAN_OFFSET, TRIGGER_IFACE_NUM_CHAN, SINGLE_BIT_PARAM,
BPM_TRIGGER_IFACE_DIR_POL_MIN, BPM_TRIGGER_IFACE_DIR_POL_MAX, NO_CHK_FUNC,
NO_FMT_FUNC, SET_FIELD);
}
#define BPM_TRIGGER_IFACE_RCV_COUNT_RST_MIN 0 /* Receive Counter Reset */
#define BPM_TRIGGER_IFACE_RCV_COUNT_RST_MAX 1 /* Receive Counter Reset */
RW_PARAM_FUNC(trigger_iface, rcv_count_rst) {
......@@ -107,6 +116,7 @@ RW_PARAM_FUNC(trigger_iface, count_transm) {
/* Exported function pointers */
const disp_table_func_fp trigger_iface_exp_fp [] = {
RW_PARAM_FUNC_NAME(trigger_iface, dir),
RW_PARAM_FUNC_NAME(trigger_iface, dir_pol),
RW_PARAM_FUNC_NAME(trigger_iface, rcv_count_rst),
RW_PARAM_FUNC_NAME(trigger_iface, transm_count_rst),
RW_PARAM_FUNC_NAME(trigger_iface, rcv_len),
......
......@@ -23,6 +23,19 @@ disp_op_t trigger_iface_dir_exp = {
}
};
disp_op_t trigger_iface_dir_pol_exp = {
.name = TRIGGER_IFACE_NAME_DIR_POL,
.opcode = TRIGGER_IFACE_OPCODE_DIR_POL,
.retval = DISP_ARG_ENCODE(DISP_ATYPE_UINT32, uint32_t),
.retval_owner = DISP_OWNER_OTHER,
.args = {
DISP_ARG_ENCODE(DISP_ATYPE_UINT32, uint32_t),
DISP_ARG_ENCODE(DISP_ATYPE_UINT32, uint32_t),
DISP_ARG_ENCODE(DISP_ATYPE_UINT32, uint32_t),
DISP_ARG_END
}
};
disp_op_t trigger_iface_rcv_count_rst_exp = {
.name = TRIGGER_IFACE_NAME_RCV_COUNT_RST,
.opcode = TRIGGER_IFACE_OPCODE_RCV_COUNT_RST,
......@@ -104,6 +117,7 @@ disp_op_t trigger_iface_count_transm_exp = {
/* Exported function description */
const disp_op_t *trigger_iface_exp_ops [] = {
&trigger_iface_dir_exp,
&trigger_iface_dir_pol_exp,
&trigger_iface_rcv_count_rst_exp,
&trigger_iface_transm_count_rst_exp,
&trigger_iface_rcv_len_exp,
......
......@@ -11,6 +11,7 @@
#include "disptable.h"
extern disp_op_t trigger_iface_dir_exp;
extern disp_op_t trigger_iface_dir_pol_exp;
extern disp_op_t trigger_iface_rcv_count_rst_exp;
extern disp_op_t trigger_iface_transm_count_rst_exp;
extern disp_op_t trigger_iface_rcv_len_exp;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment