1 #include <linux/kernel.h>
2 #include <linux/module.h>
3 #include <linux/init.h>
4 #include <linux/device.h>
5 #include <linux/platform_device.h>
7 extern u32
PTP_INIT_01_API(void);
9 static ssize_t
track_vsram_show(struct device_driver
*driver
, char *buf
)
14 static ssize_t
track_vsram_store(struct device_driver
*driver
, const char *buf
, size_t count
)
19 DRIVER_ATTR(track_vsram
, 0644, track_vsram_show
, track_vsram_store
);
21 static ssize_t
ptp_od_show(struct device_driver
*driver
, char *buf
)
23 volatile u32
*clc_temp_p
;
26 clc_temp_p
= (volatile u32
*)PTP_INIT_01_API();
29 /* only need bit 31 ~ bit 16 of the read data*/
34 return snprintf(buf
, PAGE_SIZE
, "0x%x\n", val
);
36 return snprintf(buf
, PAGE_SIZE
, "Not support PTP-OD\n");
40 static ssize_t
ptp_od_store(struct device_driver
*driver
, const char *buf
, size_t count
)
45 DRIVER_ATTR(ptp_od
, 0644, ptp_od_show
, ptp_od_store
);
47 static ssize_t
chip_id_show(struct device_driver
*driver
, char *buf
)
49 return snprintf(buf
, PAGE_SIZE
, "0x%x\n", *(volatile u32
*)0xF0009070);
52 static ssize_t
chip_id_store(struct device_driver
*driver
, const char *buf
, size_t count
)
57 DRIVER_ATTR(chip_id
, 0644, chip_id_show
, chip_id_store
);
61 struct device_driver driver
;
62 const struct platform_device_id
*id_table
;
65 static struct mssv_driver mssv_driver
=
70 .bus
= &platform_bus_type
,
80 ret
= driver_register(&mssv_driver
.driver
);
82 printk("Fail to register mssv_driver\n");
86 ret
= driver_create_file(&mssv_driver
.driver
, &driver_attr_track_vsram
);
88 printk("Fail to create mssv_driver sysfs files\n");
92 ret
= driver_create_file(&mssv_driver
.driver
, &driver_attr_ptp_od
);
94 printk("Fail to create mssv_driver sysfs files\n");
98 ret
= driver_create_file(&mssv_driver
.driver
, &driver_attr_chip_id
);
100 printk("Fail to create mssv_driver sysfs files\n");
107 arch_initcall(mssv_init
);