Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
B
Beam Positoning Monitor - Software
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
Beam Positoning Monitor - Software
Commits
02b19d6b
Commit
02b19d6b
authored
Apr 26, 2016
by
Lucas Russo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sm_io/*/fmc_active_clk/*: export new si57x_get_freq ()
parent
3c467e7e
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
63 additions
and
20 deletions
+63
-20
sm_io_fmc_active_clk_codes.h
...sm_io/modules/fmc_active_clk/sm_io_fmc_active_clk_codes.h
+2
-2
sm_io_fmc_active_clk_exp.c
src/sm_io/modules/fmc_active_clk/sm_io_fmc_active_clk_exp.c
+56
-13
sm_io_fmc_active_clk_exports.c
..._io/modules/fmc_active_clk/sm_io_fmc_active_clk_exports.c
+4
-4
sm_io_fmc_active_clk_exports.h
..._io/modules/fmc_active_clk/sm_io_fmc_active_clk_exports.h
+1
-1
No files found.
src/sm_io/modules/fmc_active_clk/sm_io_fmc_active_clk_codes.h
View file @
02b19d6b
...
...
@@ -40,8 +40,8 @@
#define FMC_ACTIVE_CLK_NAME_AD9510_OUTPUTS "fmc_active_clk_ad9510_outputs"
#define FMC_ACTIVE_CLK_OPCODE_AD9510_PLL_CLK_SEL 13
#define FMC_ACTIVE_CLK_NAME_AD9510_PLL_CLK_SEL "fmc_active_clk_ad9510_pll_clk_sel"
#define FMC_ACTIVE_CLK_OPCODE_SI571_
SET_FREQ
14
#define FMC_ACTIVE_CLK_NAME_SI571_
SET_FREQ "fmc_active_clk_si571_set
_freq"
#define FMC_ACTIVE_CLK_OPCODE_SI571_
FREQ
14
#define FMC_ACTIVE_CLK_NAME_SI571_
FREQ "fmc_active_clk_si571
_freq"
#define FMC_ACTIVE_CLK_OPCODE_SI571_GET_DEFAULTS 15
#define FMC_ACTIVE_CLK_NAME_SI571_GET_DEFAULTS "fmc_active_clk_si571_get_defaults"
#define FMC_ACTIVE_CLK_OPCODE_END 16
...
...
src/sm_io/modules/fmc_active_clk/sm_io_fmc_active_clk_exp.c
View file @
02b19d6b
...
...
@@ -230,7 +230,7 @@ FMC_ACTIVE_CLK_AD9510_FUNC_NAME_HEADER(pll_clk_sel)
}
/* Macros to avoid repetition of the function body Si57X */
typedef
smch_err_e
(
*
smch_si57x_func_fp
)
(
smch_si57x_t
*
self
,
double
param
);
typedef
smch_err_e
(
*
smch_si57x_func_fp
)
(
smch_si57x_t
*
self
,
double
*
param
);
#define FMC_ACTIVE_CLK_SI571_FUNC_NAME(func_name) \
_fmc_active_clk_si571_ ## func_name
...
...
@@ -238,7 +238,8 @@ typedef smch_err_e (*smch_si57x_func_fp) (smch_si57x_t *self, double param);
#define FMC_ACTIVE_CLK_SI571_FUNC_NAME_HEADER(func_name) \
static int FMC_ACTIVE_CLK_SI571_FUNC_NAME(func_name) (void *owner, void *args, void *ret)
#define FMC_ACTIVE_CLK_SI571_FUNC_BODY(owner, args, ret, func, error_msg) \
#define FMC_ACTIVE_CLK_SI571_FUNC_BODY(owner, args, ret, read_func, write_func, \
error_msg) \
do { \
(void) ret; \
assert (owner); \
...
...
@@ -251,30 +252,72 @@ typedef smch_err_e (*smch_si57x_func_fp) (smch_si57x_t *self, double param);
err_get_fmcaclk_handler, -FMC_ACTIVE_CLK_ERR); \
smch_si57x_t *smch_si57x = SMIO_SI57X_HANDLER(fmcaclk); \
uint32_t rw = *(uint32_t *) EXP_MSG_ZMQ_FIRST_ARG(args); \
(void) rw;
/* Ignored for now */
\
double param = *(double *) EXP_MSG_ZMQ_NEXT_ARG(args); \
\
smch_err_e serr = SMCH_SUCCESS; \
/* Call specific function */
\
smch_err_e serr = ((smch_si57x_func_fp) func) (smch_si57x, param); \
ASSERT_TEST(serr == SMCH_SUCCESS, error_msg, \
err_smpr_write, -FMC_ACTIVE_CLK_ERR); \
if (rw) { \
WHEN(ISEMPTY(read_func))( \
(void) ret; \
DBE_DEBUG (DBG_SM_IO | DBG_LVL_TRACE, "[sm_io:fmc_active_clk_exp] " \
"SI57x read function not implemented\n"); \
err = -FMC_ACTIVE_CLK_UNINPL; \
return err; \
) \
WHENNOT(ISEMPTY(read_func))( \
double value = 0; \
serr = ((smch_si57x_func_fp) read_func) (smch_si57x, \
&value); \
if (serr != SMCH_SUCCESS) { \
err = -FMC_ACTIVE_CLK_ERR; \
} \
else { \
*((double *) ret) = value; \
err = sizeof (value); \
DBE_DEBUG (DBG_SM_IO | DBG_LVL_TRACE, "[sm_io:fmc_active_clk_exp] " \
"SI57x function read value = 0x%f\n", value); \
} \
) \
} \
else { \
WHEN(ISEMPTY(write_func))( \
DBE_DEBUG (DBG_SM_IO | DBG_LVL_TRACE, "[sm_io:fmc_active_clk_exp] " \
"SI57x write function not implemented\n"); \
err = -FMC_ACTIVE_CLK_UNINPL; \
return err; \
) \
WHENNOT(ISEMPTY(write_func))( \
serr = ((smch_si57x_func_fp) write_func) (smch_si57x, \
¶m); \
if (serr != SMCH_SUCCESS) { \
err = -FMC_ACTIVE_CLK_ERR; \
} \
else { \
err = -FMC_ACTIVE_CLK_OK; \
} \
) \
} \
\
err_smpr_write: \
err_get_fmcaclk_handler: \
return err; \
\
} while(0)
FMC_ACTIVE_CLK_SI571_FUNC_NAME_HEADER
(
set_freq
)
FMC_ACTIVE_CLK_SI571_FUNC_NAME_HEADER
(
freq
)
{
FMC_ACTIVE_CLK_SI571_FUNC_BODY
(
owner
,
args
,
ret
,
smch_si57x_get_freq
,
smch_si57x_set_freq
,
"Could not set SI571 frequency"
);
}
static
smch_err_e
smch_si57x_get_defaults_compat
(
smch_si57x_t
*
self
,
double
*
param
)
{
FMC_ACTIVE_CLK_SI571_FUNC_BODY
(
owner
,
args
,
ret
,
smch_si57x_set_freq
,
"Could not set SI571 frequency"
);
return
smch_si57x_get_defaults
(
self
,
*
param
);
}
FMC_ACTIVE_CLK_SI571_FUNC_NAME_HEADER
(
get_defaults
)
{
FMC_ACTIVE_CLK_SI571_FUNC_BODY
(
owner
,
args
,
ret
,
smch_si57x_get_defaults
,
"Could not restart SI571 to its defaults"
);
FMC_ACTIVE_CLK_SI571_FUNC_BODY
(
owner
,
args
,
ret
,
/* No read func*/
,
smch_si57x_get_defaults_compat
,
"Could not restart SI571 to its defaults"
);
}
/* Exported function pointers */
...
...
@@ -293,7 +336,7 @@ const disp_table_func_fp fmc_active_clk_exp_fp [] = {
FMC_ACTIVE_CLK_AD9510_FUNC_NAME
(
cp_current
),
FMC_ACTIVE_CLK_AD9510_FUNC_NAME
(
outputs
),
FMC_ACTIVE_CLK_AD9510_FUNC_NAME
(
pll_clk_sel
),
FMC_ACTIVE_CLK_SI571_FUNC_NAME
(
set_
freq
),
FMC_ACTIVE_CLK_SI571_FUNC_NAME
(
freq
),
FMC_ACTIVE_CLK_SI571_FUNC_NAME
(
get_defaults
),
NULL
};
...
...
src/sm_io/modules/fmc_active_clk/sm_io_fmc_active_clk_exports.c
View file @
02b19d6b
...
...
@@ -178,9 +178,9 @@ disp_op_t fmc_active_clk_ad9510_pll_clk_sel_exp = {
}
};
disp_op_t
fmc_active_clk_si571_
set_
freq_exp
=
{
.
name
=
FMC_ACTIVE_CLK_NAME_SI571_
SET_
FREQ
,
.
opcode
=
FMC_ACTIVE_CLK_OPCODE_SI571_
SET_
FREQ
,
disp_op_t
fmc_active_clk_si571_freq_exp
=
{
.
name
=
FMC_ACTIVE_CLK_NAME_SI571_FREQ
,
.
opcode
=
FMC_ACTIVE_CLK_OPCODE_SI571_FREQ
,
.
retval
=
DISP_ARG_END
,
.
retval_owner
=
DISP_OWNER_OTHER
,
.
args
=
{
...
...
@@ -218,7 +218,7 @@ const disp_op_t *fmc_active_clk_exp_ops [] = {
&
fmc_active_clk_ad9510_cp_current_exp
,
&
fmc_active_clk_ad9510_outputs_exp
,
&
fmc_active_clk_ad9510_pll_clk_sel_exp
,
&
fmc_active_clk_si571_
set_
freq_exp
,
&
fmc_active_clk_si571_freq_exp
,
&
fmc_active_clk_si571_get_defaults_exp
,
NULL
};
...
...
src/sm_io/modules/fmc_active_clk/sm_io_fmc_active_clk_exports.h
View file @
02b19d6b
...
...
@@ -24,7 +24,7 @@ extern disp_op_t fmc_active_clk_ad9510_mux_status_exp;
extern
disp_op_t
fmc_active_clk_ad9510_cp_current_exp
;
extern
disp_op_t
fmc_active_clk_ad9510_outputs_exp
;
extern
disp_op_t
fmc_active_clk_ad9510_pll_clk_sel_exp
;
extern
disp_op_t
fmc_active_clk_si571_
set_
freq_exp
;
extern
disp_op_t
fmc_active_clk_si571_freq_exp
;
extern
disp_op_t
fmc_active_clk_si571_get_defaults_exp
;
extern
const
disp_op_t
*
fmc_active_clk_exp_ops
[];
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment