Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
S
Software for White Rabbit PTP Core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
32
Issues
32
List
Board
Labels
Milestones
Merge Requests
7
Merge Requests
7
CI / CD
CI / CD
Pipelines
Schedules
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
Software for White Rabbit PTP Core
Commits
1944f630
Commit
1944f630
authored
Sep 07, 2021
by
Juan David González Cobas
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add function to export out enable status
Somehow this went overlooked in the design of the API
parent
498a056d
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
26 additions
and
6 deletions
+26
-6
libertm.c
libertm/libertm.c
+26
-6
No files found.
libertm/libertm.c
View file @
1944f630
...
...
@@ -635,14 +635,15 @@ static void update_board_config(struct ertm_status *st,
ertm_get_board_config
(
st
,
bs
);
}
static
int
ertm_get_freq_sync_state
(
struct
ertm_status
*
handle
,
static
int
ertm_get_freq_sync_
out_
state
(
struct
ertm_status
*
handle
,
enum
ertm_connector
connector
,
int
channel
,
uint32_t
*
freq
,
int
*
sync_state
)
uint32_t
*
freq
,
int
*
sync_state
,
uint8_t
*
out_state
)
{
int
err
=
0
;
struct
ertm14_board_state
*
bs
;
uint32_t
*
freg
;
uint8_t
*
ssreg
;
int
enable
;
/* channel param is irrelevant for lo/ref */
if
(
connector
==
ERTM_LO
||
connector
==
ERTM_REF
)
{
...
...
@@ -656,19 +657,23 @@ static int ertm_get_freq_sync_state(struct ertm_status *handle,
case
ERTM_CLKA
:
freg
=
&
bs
->
clka_freq_hz
[
channel
];
ssreg
=
&
bs
->
clka_sync_state
[
channel
];
enable
=
bs
->
clka_enable_mask
&
(
1
<<
channel
);
// clkab_set_output_divider(ERTM14_OUT_CLKA, channel, freq);
break
;
case
ERTM_CLKB
:
freg
=
&
bs
->
clkb_freq_hz
[
channel
];
ssreg
=
&
bs
->
clkb_sync_state
[
channel
];
enable
=
bs
->
clkb_enable_mask
&
(
1
<<
channel
);
break
;
case
ERTM_LO
:
freg
=
&
bs
->
lo
.
ftw
;
ssreg
=
&
bs
->
lo
.
sync_state
;
enable
=
bs
->
lo
.
out_state
[
channel
];
break
;
case
ERTM_REF
:
freg
=
&
bs
->
ref
.
ftw
;
ssreg
=
&
bs
->
ref
.
sync_state
;
enable
=
bs
->
ref
.
out_state
[
channel
];
break
;
default:
errno
=
EINVAL
;
...
...
@@ -677,6 +682,7 @@ static int ertm_get_freq_sync_state(struct ertm_status *handle,
update_board_config
(
handle
,
&
handle
->
state
->
board_state
);
*
freq
=
*
freg
;
*
sync_state
=
*
ssreg
;
*
out_state
=
enable
;
return
0
;
}
...
...
@@ -684,15 +690,29 @@ static int ertm_get_freq_sync_state(struct ertm_status *handle,
int
ertm_get_freq
(
struct
ertm_status
*
handle
,
enum
ertm_connector
connector
,
int
channel
,
uint32_t
*
freq
)
{
int
unused
;
return
ertm_get_freq_sync_state
(
handle
,
connector
,
channel
,
freq
,
&
unused
);
uint32_t
u
;
void
*
unused1
=
&
u
,
*
unused2
=
&
u
;
return
ertm_get_freq_sync_out_state
(
handle
,
connector
,
channel
,
freq
,
unused1
,
unused2
);
}
int
ertm_get_sync_state
(
struct
ertm_status
*
handle
,
enum
ertm_connector
connector
,
int
channel
,
int
*
sync_state
)
{
uint32_t
unused
;
return
ertm_get_freq_sync_state
(
handle
,
connector
,
channel
,
&
unused
,
sync_state
);
uint32_t
u
;
void
*
unused1
=
&
u
,
*
unused2
=
&
u
;
return
ertm_get_freq_sync_out_state
(
handle
,
connector
,
channel
,
unused1
,
sync_state
,
unused2
);
return
0
;
}
int
ertm_get_enable_state
(
struct
ertm_status
*
handle
,
enum
ertm_connector
connector
,
int
channel
,
uint8_t
*
enable_state
)
{
uint32_t
u
;
void
*
unused1
=
&
u
,
*
unused2
=
&
u
;
return
ertm_get_freq_sync_out_state
(
handle
,
connector
,
channel
,
unused1
,
unused2
,
enable_state
);
return
0
;
}
...
...
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