ptp_ocp.c (9f492c4cb2351c43e5ea64285e729a21392950df) ptp_ocp.c (2f23f486cf626a9a2ea70da0dac93c63e89f6595)
1// SPDX-License-Identifier: GPL-2.0-only
2/* Copyright (c) 2020 Facebook */
3
4#include <linux/err.h>
5#include <linux/kernel.h>
6#include <linux/module.h>
7#include <linux/debugfs.h>
8#include <linux/init.h>

--- 38 unchanged lines hidden (view full) ---

47 u32 __pad2[2];
48 u32 drift_ns;
49 u32 drift_window_ns;
50 u32 __pad3[6];
51 u32 servo_offset_p;
52 u32 servo_offset_i;
53 u32 servo_drift_p;
54 u32 servo_drift_i;
1// SPDX-License-Identifier: GPL-2.0-only
2/* Copyright (c) 2020 Facebook */
3
4#include <linux/err.h>
5#include <linux/kernel.h>
6#include <linux/module.h>
7#include <linux/debugfs.h>
8#include <linux/init.h>

--- 38 unchanged lines hidden (view full) ---

47 u32 __pad2[2];
48 u32 drift_ns;
49 u32 drift_window_ns;
50 u32 __pad3[6];
51 u32 servo_offset_p;
52 u32 servo_offset_i;
53 u32 servo_drift_p;
54 u32 servo_drift_i;
55 u32 status_offset;
56 u32 status_drift;
55};
56
57#define OCP_CTRL_ENABLE BIT(0)
58#define OCP_CTRL_ADJUST_TIME BIT(1)
59#define OCP_CTRL_ADJUST_OFFSET BIT(2)
60#define OCP_CTRL_ADJUST_DRIFT BIT(3)
61#define OCP_CTRL_ADJUST_SERVO BIT(8)
62#define OCP_CTRL_READ_TIME_REQ BIT(30)

--- 1867 unchanged lines hidden (view full) ---

1930static ssize_t
1931available_clock_sources_show(struct device *dev,
1932 struct device_attribute *attr, char *buf)
1933{
1934 return ptp_ocp_select_table_show(ptp_ocp_clock, buf);
1935}
1936static DEVICE_ATTR_RO(available_clock_sources);
1937
57};
58
59#define OCP_CTRL_ENABLE BIT(0)
60#define OCP_CTRL_ADJUST_TIME BIT(1)
61#define OCP_CTRL_ADJUST_OFFSET BIT(2)
62#define OCP_CTRL_ADJUST_DRIFT BIT(3)
63#define OCP_CTRL_ADJUST_SERVO BIT(8)
64#define OCP_CTRL_READ_TIME_REQ BIT(30)

--- 1867 unchanged lines hidden (view full) ---

1932static ssize_t
1933available_clock_sources_show(struct device *dev,
1934 struct device_attribute *attr, char *buf)
1935{
1936 return ptp_ocp_select_table_show(ptp_ocp_clock, buf);
1937}
1938static DEVICE_ATTR_RO(available_clock_sources);
1939
1940static ssize_t
1941clock_status_drift_show(struct device *dev,
1942 struct device_attribute *attr, char *buf)
1943{
1944 struct ptp_ocp *bp = dev_get_drvdata(dev);
1945 u32 val;
1946 int res;
1947
1948 val = ioread32(&bp->reg->status_drift);
1949 res = (val & ~INT_MAX) ? -1 : 1;
1950 res *= (val & INT_MAX);
1951 return sysfs_emit(buf, "%d\n", res);
1952}
1953static DEVICE_ATTR_RO(clock_status_drift);
1954
1955static ssize_t
1956clock_status_offset_show(struct device *dev,
1957 struct device_attribute *attr, char *buf)
1958{
1959 struct ptp_ocp *bp = dev_get_drvdata(dev);
1960 u32 val;
1961 int res;
1962
1963 val = ioread32(&bp->reg->status_offset);
1964 res = (val & ~INT_MAX) ? -1 : 1;
1965 res *= (val & INT_MAX);
1966 return sysfs_emit(buf, "%d\n", res);
1967}
1968static DEVICE_ATTR_RO(clock_status_offset);
1969
1938static struct attribute *timecard_attrs[] = {
1939 &dev_attr_serialnum.attr,
1940 &dev_attr_gnss_sync.attr,
1941 &dev_attr_clock_source.attr,
1942 &dev_attr_available_clock_sources.attr,
1943 &dev_attr_sma1.attr,
1944 &dev_attr_sma2.attr,
1945 &dev_attr_sma3.attr,
1946 &dev_attr_sma4.attr,
1947 &dev_attr_available_sma_inputs.attr,
1948 &dev_attr_available_sma_outputs.attr,
1970static struct attribute *timecard_attrs[] = {
1971 &dev_attr_serialnum.attr,
1972 &dev_attr_gnss_sync.attr,
1973 &dev_attr_clock_source.attr,
1974 &dev_attr_available_clock_sources.attr,
1975 &dev_attr_sma1.attr,
1976 &dev_attr_sma2.attr,
1977 &dev_attr_sma3.attr,
1978 &dev_attr_sma4.attr,
1979 &dev_attr_available_sma_inputs.attr,
1980 &dev_attr_available_sma_outputs.attr,
1981 &dev_attr_clock_status_drift.attr,
1982 &dev_attr_clock_status_offset.attr,
1949 &dev_attr_irig_b_mode.attr,
1950 &dev_attr_utc_tai_offset.attr,
1951 &dev_attr_ts_window_adjust.attr,
1952 NULL,
1953};
1954ATTRIBUTE_GROUPS(timecard);
1955
1956static const char *

--- 700 unchanged lines hidden ---
1983 &dev_attr_irig_b_mode.attr,
1984 &dev_attr_utc_tai_offset.attr,
1985 &dev_attr_ts_window_adjust.attr,
1986 NULL,
1987};
1988ATTRIBUTE_GROUPS(timecard);
1989
1990static const char *

--- 700 unchanged lines hidden ---