Commit 176ebcd8 authored by Tristan Gingold's avatar Tristan Gingold

libwrtd: add adcin device configuration.

parent 9729516c
......@@ -14,7 +14,7 @@ LIB = libwrtd.a
OBJS := libwrtd-base.o libwrtd-devices.o libwrtd-attributes.o libwrtd-rules.o
INCFLAGS=-I. -I../include -I$(TRTL)/include -I$(TRTL)/lib \
-I../firmware/tdc
-I../firmware/tdc -I../../dependencies/fmc-adc-100m14b4cha-gw/hdl/rtl/wb_gen/
CFLAGS += -fno-strict-aliasing $(INCFLAGS)
CFLAGS += -Wall -Werror
......
......@@ -7,6 +7,7 @@
#include "libwrtd.h"
#include "libwrtd-private.h"
#include "hw/fmctdc-direct.h"
#include "fmc_adc_alt_trigout.h"
/* FIXME: duplicated macro. */
#define BASE_DP_TDC_DIRECT 0x8000
......@@ -33,7 +34,26 @@ static enum wrtd_status wrtd_tdc_configure(struct wrtd_dev *wrtd,
addr = wrtd->roots[cpu].devices_io_addr[dev]
+ BASE_DP_TDC_DIRECT + DR_REG_CHAN_ENABLE;
printf("wrtd: write 0x%08x at 0x%08x on cpu#%u\n", val, addr, cpu);
printf("wrtd: tdc write 0x%08x at 0x%08x on cpu#%u\n", val, addr, cpu);
status = wrtd_msg_writew(wrtd, cpu, addr, 1, &val);
return status;
}
static enum wrtd_status wrtd_adcin_configure(struct wrtd_dev *wrtd,
unsigned cpu, unsigned dev,
unsigned int ch_mask)
{
enum wrtd_status status;
uint32_t val;
uint32_t addr;
assert((ch_mask & 0x1f) == ch_mask);
/* Just set the enable bits. */
val = (ch_mask & 0x0f) | ((ch_mask & 0x10) << 4);
addr = wrtd->roots[cpu].devices_io_addr[dev] + ALT_TRIGOUT_ENABLE;
printf("wrtd: adcin write 0x%08x at 0x%08x on cpu#%u\n", val, addr, cpu);
status = wrtd_msg_writew(wrtd, cpu, addr, 1, &val);
return status;
}
......@@ -83,7 +103,7 @@ static const struct wrtd_mt_device adcin_device =
.dir = wrtd_input,
.nbr_chs = 5,
.channels = adcin_channels,
.configure = wrtd_none_configure
.configure = wrtd_adcin_configure
};
static const struct wrtd_mt_device adcout_device =
......@@ -98,6 +118,7 @@ static const struct wrtd_mt_device adcout_device =
static const struct wrtd_mt_config configs[] =
{
/* TDC + FD board. */
{
.mt_app_id = 0x115790de,
.nbr_cpus = 2,
......@@ -121,6 +142,7 @@ static const struct wrtd_mt_config configs[] =
}
}
},
/* ADC board. */
{
.mt_app_id = 0x115790d1,
.nbr_cpus = 1,
......
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