Commit a84ff4e1 authored by Grzegorz Daniluk's avatar Grzegorz Daniluk

diot_util: add clocks pts

parent 89d5d1ac
......@@ -11,6 +11,7 @@
#include <stdio.h>
#include <stdlib.h>
#include "diot_util_error.h"
#include "diot_util_pts.h"
#define INPUT_PRESENT_FILE "/sys/bus/i2c/drivers/si5341/7-0076/input_present"
#define PLL_LOCKED_FILE "/sys/bus/i2c/drivers/si5341/7-0076/pll_locked"
......@@ -152,6 +153,66 @@ char *check_ret_value(int ret, int val)
return "Unkn";
}
int pts_clocks(void)
{
struct pts_sensor *pts_sensor_p;
int val, ret;
int errors = 0;
int i;
char path_buff[100];
char buff[20];
printf("Test Clocks");
get_file_content(INPUT_PRESENT_FILE, &val);
pts_sensor_p = find_pts_sensor("PLL Input Present");
if (!pts_sensor_inrange(val, pts_sensor_p)) {
if (errors++ == 0)
printf("\rFAIL Clocks\n");
printf("\t%s: ERROR (%d vs [%.1f;%.1f])\n", pts_sensor_p->short_name,
val, pts_sensor_p->allowed_min, pts_sensor_p->allowed_max);
}
get_file_content(PLL_LOCKED_FILE, &val);
pts_sensor_p = find_pts_sensor("PLL Locked");
if (!pts_sensor_inrange(val, pts_sensor_p)) {
if (errors++ == 0)
printf("\rFAIL Clocks\n");
printf("\t%s: ERROR (%d vs [%.1f;%.1f])\n", pts_sensor_p->short_name,
val, pts_sensor_p->allowed_min, pts_sensor_p->allowed_max);
}
get_selected_input(&val, NULL, NULL);
pts_sensor_p = find_pts_sensor("PLL Input");
if (!pts_sensor_inrange(val, pts_sensor_p)) {
if (errors++ == 0)
printf("\rFAIL Clocks\n");
printf("\t%s: ERROR (%d vs [%.1f;%.1f])\n", pts_sensor_p->short_name,
val, pts_sensor_p->allowed_min, pts_sensor_p->allowed_max);
}
for (i = 0; i < SI5341_N_CH_OUT; i++) {
snprintf(path_buff, sizeof(path_buff), "%s.%d/clk_rate",
SI5341_PREFIX_PATH, i);
get_file_content(path_buff, &val);
snprintf(path_buff, sizeof(path_buff), "PLL Out%d", i);
pts_sensor_p = find_pts_sensor(path_buff);
if (!pts_sensor_inrange((float)val/1000000, pts_sensor_p)) {
if (errors++ == 0)
printf("\rFAIL Clocks\n");
printf("\t%s: ERROR (%.1f vs [%.1f;%.1f])\n", pts_sensor_p->short_name,
(float)val/1000000, pts_sensor_p->allowed_min, pts_sensor_p->allowed_max);
}
}
if (errors == 0) {
printf("\rOK Clocks\n");
}
return errors;
}
int cmd_clocks(char *params)
{
int val;
......
......@@ -11,6 +11,7 @@
#ifndef __DIOT_UTIL_CLK_H
#define __DIOT_UTIL_CLK_H
int pts_clocks(void);
int cmd_clocks(char *params);
#endif /* __DIOT_UTIL_CLK_H */
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