Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
F
FMC ADC 100M 14b 4cha - Software
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
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
FMC ADC 100M 14b 4cha - Software
Commits
4c8a23e5
Commit
4c8a23e5
authored
Aug 13, 2019
by
Federico Vaga
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
drv: fix timetag offsets
Signed-off-by:
Federico Vaga
<
federico.vaga@cern.ch
>
parent
16bd5168
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
78 additions
and
60 deletions
+78
-60
fa-core.c
kernel/fa-core.c
+11
-3
fa-dma.c
kernel/fa-dma.c
+5
-3
fa-regtable.c
kernel/fa-regtable.c
+18
-18
fa-zio-drv.c
kernel/fa-zio-drv.c
+18
-16
fa-zio-trg.c
kernel/fa-zio-trg.c
+8
-5
fmc-adc-100m14b4cha.h
kernel/fmc-adc-100m14b4cha.h
+18
-15
No files found.
kernel/fa-core.c
View file @
4c8a23e5
...
...
@@ -370,6 +370,16 @@ int zfad_fsm_command(struct fa_dev *fa, uint32_t command)
return
0
;
}
static
void
fa_init_timetag
(
struct
fa_dev
*
fa
)
{
unsigned
long
seconds
;
seconds
=
get_seconds
();
fa_writel
(
fa
,
fa
->
fa_utc_base
,
&
zfad_regs
[
ZFA_UTC_SECONDS_U
],
(
seconds
>>
32
)
&
0xFFFFFFFF
);
fa_writel
(
fa
,
fa
->
fa_utc_base
,
&
zfad_regs
[
ZFA_UTC_SECONDS_L
],
(
seconds
>>
00
)
&
0xFFFFFFFF
);
}
/*
* Specific check and init
...
...
@@ -420,9 +430,7 @@ static int __fa_init(struct fa_dev *fa)
/* Initialize channel saturation values */
zfad_init_saturation
(
fa
);
/* Set UTC seconds from the kernel seconds */
fa_writel
(
fa
,
fa
->
fa_utc_base
,
&
zfad_regs
[
ZFA_UTC_SECONDS
],
get_seconds
());
fa_init_timetag
(
fa
);
fa_writel
(
fa
,
fa
->
fa_adc_csr_base
,
&
zfad_regs
[
ZFAT_EXT_DLY
],
0
);
...
...
kernel/fa-dma.c
View file @
4c8a23e5
...
...
@@ -485,11 +485,13 @@ static void zfad_tstamp_start_get(struct fa_dev *fa,
struct
zio_timestamp
*
ztstamp
)
{
ztstamp
->
secs
=
fa_readl
(
fa
,
fa
->
fa_utc_base
,
&
zfad_regs
[
ZFA_UTC_ACQ_START_SECONDS
]);
&
zfad_regs
[
ZFA_UTC_ACQ_START_SECONDS_U
]);
ztstamp
->
secs
<<=
32
;
ztstamp
->
secs
|=
fa_readl
(
fa
,
fa
->
fa_utc_base
,
&
zfad_regs
[
ZFA_UTC_ACQ_START_SECONDS_L
]);
ztstamp
->
ticks
=
fa_readl
(
fa
,
fa
->
fa_utc_base
,
&
zfad_regs
[
ZFA_UTC_ACQ_START_COARSE
]);
ztstamp
->
bins
=
fa_readl
(
fa
,
fa
->
fa_utc_base
,
&
zfad_regs
[
ZFA_UTC_ACQ_START_FINE
]);
ztstamp
->
bins
=
0
;
}
static
int
zfad_block_timetag_extract
(
struct
zio_block
*
block
,
...
...
kernel/fa-regtable.c
View file @
4c8a23e5
...
...
@@ -105,22 +105,22 @@ const struct zfa_field_desc zfad_regs[] = {
[
ZFA_IRQ_VIC_MASK_STATUS
]
=
{
0x10
,
0x00000003
,
0
},
/* UTC */
[
ZFA_UTC_SECONDS
]
=
{
0x00
,
~
0x0
,
0
},
[
ZFA_UTC_
COARSE
]
=
{
0x04
,
~
0x0
,
0
},
[
ZFA_UTC_
TRIG_META
]
=
{
0x08
,
~
0x0
,
0
},
[
ZFA_UTC_TRIG_
SECONDS
]
=
{
0x0C
,
~
0x0
,
0
},
[
ZFA_UTC_TRIG_
COARSE
]
=
{
0x10
,
~
0x0
,
0
},
[
ZFA_UTC_TRIG_
FINE
]
=
{
0x14
,
~
0x0
,
0
},
[
ZFA_UTC_
ACQ_START_META
]
=
{
0x18
,
~
0x0
,
0
},
[
ZFA_UTC_
ACQ_START_SECONDS
]
=
{
0x1C
,
~
0x0
,
0
},
[
ZFA_UTC_
ACQ_START
_COARSE
]
=
{
0x20
,
~
0x0
,
0
},
[
ZFA_UTC_ACQ_START_
FINE
]
=
{
0x24
,
~
0x0
,
0
},
[
ZFA_UTC_ACQ_ST
OP_META
]
=
{
0x28
,
~
0x0
,
0
},
[
ZFA_UTC_ACQ_ST
OP_SECONDS
]
=
{
0x2C
,
~
0x0
,
0
},
[
ZFA_UTC_ACQ_STOP_
COARSE
]
=
{
0x30
,
~
0x0
,
0
},
[
ZFA_UTC_ACQ_STOP_
FINE
]
=
{
0x34
,
~
0x0
,
0
},
[
ZFA_UTC_ACQ_
END_META
]
=
{
0x38
,
~
0x0
,
0
},
[
ZFA_UTC_ACQ_END_SECONDS
]
=
{
0x3C
,
~
0x0
,
0
},
[
ZFA_UTC_ACQ_END_
COARSE
]
=
{
0x40
,
~
0x0
,
0
},
[
ZFA_UTC_ACQ_END_
FIN
E
]
=
{
0x44
,
~
0x0
,
0
},
[
ZFA_UTC_SECONDS
_U
]
=
{
0x00
,
~
0x0
,
0
},
[
ZFA_UTC_
SECONDS_L
]
=
{
0x04
,
~
0x0
,
0
},
[
ZFA_UTC_
COARSE
]
=
{
0x08
,
~
0x0
,
0
},
[
ZFA_UTC_TRIG_
TIME_SECONDS_U
]
=
{
0x0C
,
~
0x0
,
0
},
[
ZFA_UTC_TRIG_
TIME_SECONDS_L
]
=
{
0x10
,
~
0x0
,
0
},
[
ZFA_UTC_TRIG_
TIME_COARSE
]
=
{
0x14
,
~
0x0
,
0
},
[
ZFA_UTC_
TRIG_SECONDS_U
]
=
{
0x18
,
~
0x0
,
0
},
[
ZFA_UTC_
TRIG_SECONDS_L
]
=
{
0x1C
,
~
0x0
,
0
},
[
ZFA_UTC_
TRIG
_COARSE
]
=
{
0x20
,
~
0x0
,
0
},
[
ZFA_UTC_ACQ_START_
SECONDS_U
]
=
{
0x24
,
~
0x0
,
0
},
[
ZFA_UTC_ACQ_ST
ART_SECONDS_L
]
=
{
0x28
,
~
0x0
,
0
},
[
ZFA_UTC_ACQ_ST
ART_COARSE
]
=
{
0x2C
,
~
0x0
,
0
},
[
ZFA_UTC_ACQ_STOP_
SECONDS_U
]
=
{
0x30
,
~
0x0
,
0
},
[
ZFA_UTC_ACQ_STOP_
SECONDS_L
]
=
{
0x34
,
~
0x0
,
0
},
[
ZFA_UTC_ACQ_
STOP_COARSE
]
=
{
0x38
,
~
0x0
,
0
},
[
ZFA_UTC_ACQ_END_SECONDS
_U
]
=
{
0x3C
,
~
0x0
,
0
},
[
ZFA_UTC_ACQ_END_
SECONDS_L
]
=
{
0x40
,
~
0x0
,
0
},
[
ZFA_UTC_ACQ_END_
COARS
E
]
=
{
0x44
,
~
0x0
,
0
},
};
kernel/fa-zio-drv.c
View file @
4c8a23e5
...
...
@@ -67,16 +67,16 @@ static struct zio_attribute zfad_cset_ext_zattr[] = {
ZIO_ATTR_EXT
(
"ch3-50ohm-term"
,
ZIO_RW_PERM
,
ZFA_CH4_CTL_TERM
,
0
),
/* last acquisition start time stamp */
ZIO_ATTR_EXT
(
"tstamp-acq-str-s"
,
ZIO_RO_PERM
,
ZFA_UTC_ACQ_START_SECONDS
,
0
),
ZIO_ATTR_EXT
(
"tstamp-acq-str-su"
,
ZIO_RO_PERM
,
ZFA_UTC_ACQ_START_SECONDS_U
,
0
),
ZIO_ATTR_EXT
(
"tstamp-acq-str-sl"
,
ZIO_RO_PERM
,
ZFA_UTC_ACQ_START_SECONDS_L
,
0
),
ZIO_ATTR_EXT
(
"tstamp-acq-str-t"
,
ZIO_RO_PERM
,
ZFA_UTC_ACQ_START_COARSE
,
0
),
ZIO_ATTR_EXT
(
"tstamp-acq-str-b"
,
ZIO_RO_PERM
,
ZFA_UTC_ACQ_START_FINE
,
0
),
/* Timing base */
ZIO_ATTR_EXT
(
"tstamp-base-s
"
,
ZIO_RW_PERM
,
ZFA_UTC_SECONDS
,
0
),
ZIO_ATTR_EXT
(
"tstamp-base-s
u"
,
ZIO_RW_PERM
,
ZFA_UTC_SECONDS_U
,
0
),
ZIO_ATTR_EXT
(
"tstamp-base-sl"
,
ZIO_RW_PERM
,
ZFA_UTC_SECONDS_L
,
0
),
ZIO_ATTR_EXT
(
"tstamp-base-t"
,
ZIO_RW_PERM
,
ZFA_UTC_COARSE
,
0
),
/* Parameters (not attributes) follow */
...
...
@@ -104,19 +104,19 @@ static struct zio_attribute zfad_cset_ext_zattr[] = {
* */
ZIO_PARAM_EXT
(
"fsm-state"
,
ZIO_RO_PERM
,
ZFA_STA_FSM
,
0
),
/* last acquisition end time stamp */
ZIO_PARAM_EXT
(
"tstamp-acq-end-s"
,
ZIO_RO_PERM
,
ZFA_UTC_ACQ_END_SECONDS
,
0
),
ZIO_PARAM_EXT
(
"tstamp-acq-end-su"
,
ZIO_RO_PERM
,
ZFA_UTC_ACQ_END_SECONDS_U
,
0
),
ZIO_PARAM_EXT
(
"tstamp-acq-end-sl"
,
ZIO_RO_PERM
,
ZFA_UTC_ACQ_END_SECONDS_L
,
0
),
ZIO_PARAM_EXT
(
"tstamp-acq-end-t"
,
ZIO_RO_PERM
,
ZFA_UTC_ACQ_END_COARSE
,
0
),
ZIO_PARAM_EXT
(
"tstamp-acq-end-b"
,
ZIO_RO_PERM
,
ZFA_UTC_ACQ_END_FINE
,
0
),
/* last acquisition stop time stamp */
ZIO_PARAM_EXT
(
"tstamp-acq-stp-s"
,
ZIO_RO_PERM
,
ZFA_UTC_ACQ_STOP_SECONDS
,
0
),
ZIO_PARAM_EXT
(
"tstamp-acq-stp-su"
,
ZIO_RO_PERM
,
ZFA_UTC_ACQ_STOP_SECONDS_U
,
0
),
ZIO_PARAM_EXT
(
"tstamp-acq-stp-sl"
,
ZIO_RO_PERM
,
ZFA_UTC_ACQ_STOP_SECONDS_L
,
0
),
ZIO_PARAM_EXT
(
"tstamp-acq-stp-t"
,
ZIO_RO_PERM
,
ZFA_UTC_ACQ_STOP_COARSE
,
0
),
ZIO_PARAM_EXT
(
"tstamp-acq-stp-b"
,
ZIO_RO_PERM
,
ZFA_UTC_ACQ_STOP_FINE
,
0
),
/* Reset all channel offset */
ZIO_PARAM_EXT
(
"rst-ch-offset"
,
ZIO_WO_PERM
,
ZFA_CTL_DAC_CLR_N
,
1
),
...
...
@@ -176,7 +176,8 @@ static int zfad_conf_set(struct device *dev, struct zio_attribute *zattr,
reg_index
=
zattr
->
id
;
i
=
FA100M14B4C_NCHAN
;
if
(
zattr
->
id
>=
ZFA_UTC_SECONDS
&&
zattr
->
id
<=
ZFA_UTC_ACQ_END_FINE
)
if
(
zattr
->
id
>=
ZFA_UTC_SECONDS_U
&&
zattr
->
id
<=
ZFA_UTC_ACQ_END_COARSE
)
baseoff
=
fa
->
fa_utc_base
;
switch
(
reg_index
)
{
...
...
@@ -327,7 +328,8 @@ static int zfad_info_get(struct device *dev, struct zio_attribute *zattr,
i
=
FA100M14B4C_NCHAN
;
if
(
zattr
->
id
>=
ZFA_UTC_SECONDS
&&
zattr
->
id
<=
ZFA_UTC_ACQ_END_FINE
)
if
(
zattr
->
id
>=
ZFA_UTC_SECONDS_U
&&
zattr
->
id
<=
ZFA_UTC_ACQ_END_COARSE
)
baseoff
=
fa
->
fa_utc_base
;
switch
(
zattr
->
id
)
{
...
...
kernel/fa-zio-trg.c
View file @
4c8a23e5
...
...
@@ -90,12 +90,15 @@ static struct zio_attribute zfat_ext_zattr[] = {
ZFAT_SW
,
0
),
/* last trigger time stamp */
[
FA100M14B4C_TATTR_TRG_S
]
=
ZIO_PARAM_EXT
(
"tstamp-trg-lst-s"
,
ZIO_RO_PERM
,
ZFA_UTC_TRIG_SECONDS
,
0
),
[
FA100M14B4C_TATTR_TRG_SU
]
=
ZIO_PARAM_EXT
(
"tstamp-trg-lst-su"
,
ZIO_RO_PERM
,
ZFA_UTC_TRIG_SECONDS_U
,
0
),
[
FA100M14B4C_TATTR_TRG_SL
]
=
ZIO_PARAM_EXT
(
"tstamp-trg-lst-sl"
,
ZIO_RO_PERM
,
ZFA_UTC_TRIG_SECONDS_L
,
0
),
[
FA100M14B4C_TATTR_TRG_C
]
=
ZIO_PARAM_EXT
(
"tstamp-trg-lst-t"
,
ZIO_RO_PERM
,
ZFA_UTC_TRIG_COARSE
,
0
),
[
FA100M14B4C_TATTR_TRG_F
]
=
ZIO_PARAM_EXT
(
"tstamp-trg-lst-b"
,
ZIO_RO_PERM
,
ZFA_UTC_TRIG_FINE
,
0
),
ZIO_RO_PERM
,
ZFA_UTC_TRIG_COARSE
,
0
),
};
...
...
kernel/fmc-adc-100m14b4cha.h
View file @
4c8a23e5
...
...
@@ -72,9 +72,12 @@ enum fa100m14b4c_trg_ext_attr {
#ifdef __KERNEL__
FA100M14B4C_TATTR_SW_FIRE
,
FA100M14B4C_TATTR_TRG_S
,
FA100M14B4C_TATTR_TRG_TIM_SU
,
FA100M14B4C_TATTR_TRG_TIM_SL
,
FA100M14B4C_TATTR_TRG_TIM_C
,
FA100M14B4C_TATTR_TRG_SU
,
FA100M14B4C_TATTR_TRG_SL
,
FA100M14B4C_TATTR_TRG_C
,
FA100M14B4C_TATTR_TRG_F
,
#endif
};
...
...
@@ -308,24 +311,24 @@ enum zfadc_dregs_enum {
ZFA_IRQ_VIC_ENABLE_MASK
,
ZFA_IRQ_VIC_MASK_STATUS
,
/* UTC core */
ZFA_UTC_SECONDS
,
ZFA_UTC_SECONDS_U
,
ZFA_UTC_SECONDS_L
,
ZFA_UTC_COARSE
,
ZFA_UTC_TRIG_META
,
ZFA_UTC_TRIG_SECONDS
,
ZFA_UTC_TRIG_TIME_SECONDS_U
,
ZFA_UTC_TRIG_TIME_SECONDS_L
,
ZFA_UTC_TRIG_TIME_COARSE
,
ZFA_UTC_TRIG_SECONDS_U
,
ZFA_UTC_TRIG_SECONDS_L
,
ZFA_UTC_TRIG_COARSE
,
ZFA_UTC_TRIG_FINE
,
ZFA_UTC_ACQ_START_META
,
ZFA_UTC_ACQ_START_SECONDS
,
ZFA_UTC_ACQ_START_SECONDS_U
,
ZFA_UTC_ACQ_START_SECONDS_L
,
ZFA_UTC_ACQ_START_COARSE
,
ZFA_UTC_ACQ_START_FINE
,
ZFA_UTC_ACQ_STOP_META
,
ZFA_UTC_ACQ_STOP_SECONDS
,
ZFA_UTC_ACQ_STOP_SECONDS_U
,
ZFA_UTC_ACQ_STOP_SECONDS_L
,
ZFA_UTC_ACQ_STOP_COARSE
,
ZFA_UTC_ACQ_STOP_FINE
,
ZFA_UTC_ACQ_END_META
,
ZFA_UTC_ACQ_END_SECONDS
,
ZFA_UTC_ACQ_END_SECONDS_U
,
ZFA_UTC_ACQ_END_SECONDS_L
,
ZFA_UTC_ACQ_END_COARSE
,
ZFA_UTC_ACQ_END_FINE
,
ZFA_HW_PARAM_COMMON_LAST
,
};
...
...
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