| /linux/tools/testing/selftests/timers/ |
| H A D | clocksource-switch.c | 1 /* Clocksource change test 6 * NOTE: This is a meta-test which quickly changes the clocksource and 12 * $ gcc clocksource-switch.c -o clocksource-switch -lrt 47 fd = open("/sys/devices/system/clocksource/clocksource0/available_clocksource", O_RDONLY); in get_clocksources() 79 fd = open("/sys/devices/system/clocksource/clocksource0/current_clocksource", O_RDONLY); in get_cur_clocksource() 86 int change_clocksource(char *clocksource) in change_clocksource() argument 91 fd = open("/sys/devices/system/clocksource/clocksource0/current_clocksource", O_WRONLY); in change_clocksource() 96 size = write(fd, clocksource, strlen(clocksource)); in change_clocksource() 159 ksft_print_msg("Validating clocksource %s\n", in main() 189 ksft_test_result(!status, "clocksource-switch\n"); in main()
|
| /linux/drivers/clocksource/ |
| H A D | timer-vt8500.c | 17 #include <linux/clocksource.h> 43 static u64 vt8500_timer_read(struct clocksource *cs) in vt8500_timer_read() 53 static struct clocksource clocksource = { variable 65 u64 alarm = clocksource.read(&clocksource) + cycles; in vt8500_timer_set_next_event() 71 if ((signed)(alarm - clocksource.read(&clocksource)) <= MIN_OSCR_DELTA) in vt8500_timer_set_next_event() 126 ret = clocksource_register_hz(&clocksource, VT8500_TIMER_HZ); in vt8500_timer_init() 129 __func__, clocksource.name); in vt8500_timer_init()
|
| H A D | timer-pistachio.c | 3 * Pistachio clocksource based on general-purpose timers 11 #include <linux/clocksource.h> 48 struct clocksource cs; 68 pistachio_clocksource_read_cycles(struct clocksource *cs) in pistachio_clocksource_read_cycles() 93 static void pistachio_clksrc_set_mode(struct clocksource *cs, int timeridx, in pistachio_clksrc_set_mode() 108 static void pistachio_clksrc_enable(struct clocksource *cs, int timeridx) in pistachio_clksrc_enable() 118 static void pistachio_clksrc_disable(struct clocksource *cs, int timeridx) in pistachio_clksrc_disable() 124 static int pistachio_clocksource_enable(struct clocksource *cs) in pistachio_clocksource_enable() 130 static void pistachio_clocksource_disable(struct clocksource *cs) in pistachio_clocksource_disable() 202 /* Disable irq's for clocksource usage */ in pistachio_clksrc_of_init()
|
| H A D | dw_apb_timer.c | 44 clocksource_to_dw_apb_clocksource(struct clocksource *cs) in clocksource_to_dw_apb_clocksource() 280 * dw_apb_clocksource_start() - start the clocksource counting. 282 * @dw_cs: The clocksource to start. 284 * This is used to start the clocksource before registration and can be used 306 static u64 __apbt_read_clocksource(struct clocksource *cs) in __apbt_read_clocksource() 318 static void apbt_restart_clocksource(struct clocksource *cs) in apbt_restart_clocksource() 327 * dw_apb_clocksource_init() - use an APB timer as a clocksource. 329 * @rating: The rating to give the clocksource. 330 * @name: The name for the clocksource. 334 * This creates a clocksource using an APB timer but does not yet register it [all …]
|
| H A D | timer-ti-32k.c | 7 * Update to use new clocksource/clockevent layers 31 #include <linux/clocksource.h> 36 * 32KHz clocksource ... always available, on pretty most chips except 50 struct clocksource cs; 53 static inline struct ti_32k *to_ti_32k(struct clocksource *cs) in to_ti_32k() 58 static u64 notrace ti_32k_read_cycles(struct clocksource *cs) in ti_32k_read_cycles() 152 pr_info("OMAP clocksource: 32k_counter at 32768 Hz\n"); in ti_32k_timer_init() 156 pr_err("32k_counter: can't register clocksource\n"); in ti_32k_timer_init()
|
| H A D | timer-atmel-pit.c | 7 * Converted to ClockSource/ClockEvents by David Brownell. 40 struct clocksource clksrc; 49 static inline struct pit_data *clksrc_to_pit_data(struct clocksource *clksrc) in clksrc_to_pit_data() 70 * Clocksource: just a monotonic counter of MCK/16 cycles. 73 static u64 read_pit_clk(struct clocksource *cs) in read_pit_clk() 94 /* disable irq, leaving the clocksource active */ in pit_clkevt_shutdown() 106 /* update clocksource counter */ in pit_clkevt_set_periodic() 164 * Set up both clocksource and clockevent support. 217 * Register clocksource. The high order bits of PIV are unused, in at91sam926x_pit_dt_init() 229 pr_err("Failed to register clocksource\n"); in at91sam926x_pit_dt_init()
|
| H A D | timer-goldfish.c | 5 #include <linux/clocksource.h> 10 #include <clocksource/timer-goldfish.h> 13 struct clocksource cs; 24 static struct goldfish_timer *cs_to_gf(struct clocksource *cs) in cs_to_gf() 29 static u64 goldfish_timer_read(struct clocksource *cs) in goldfish_timer_read() 131 timerdrv->cs = (struct clocksource){ in goldfish_timer_init()
|
| H A D | arc_timer.c | 9 * We've designated TIMER0 for clockevents and TIMER1 for clocksource 19 #include <linux/clocksource.h> 58 static u64 arc_read_gfrc(struct clocksource *cs) in arc_read_gfrc() 95 static struct clocksource arc_counter_gfrc = { 110 pr_warn("Global-64-bit-Ctr clocksource not detected\n"); in arc_cs_setup_gfrc() 128 static u64 arc_read_rtc(struct clocksource *cs) in arc_read_rtc() 153 static struct clocksource arc_counter_rtc = { 168 pr_warn("Local-64-bit-Ctr clocksource not detected\n"); in arc_cs_setup_rtc() 196 static u64 arc_read_timer1(struct clocksource *cs) in arc_read_timer1() 206 static struct clocksource arc_counter_timer1 = {
|
| H A D | scx200_hrt.c | 5 * This is a clocksource driver for the Geode SCx200's 1 or 27 MHz 15 #include <linux/clocksource.h> 42 static u64 read_hrt(struct clocksource *cs) in read_hrt() 48 static struct clocksource cs_hrt = { 89 MODULE_DESCRIPTION("clocksource on SCx200 HiRes Timer");
|
| H A D | ingenic-ost.c | 10 #include <linux/clocksource.h> 39 struct clocksource cs; 56 static u64 notrace ingenic_ost_clocksource_readl(struct clocksource *cs) in ingenic_ost_clocksource_readl() 61 static u64 notrace ingenic_ost_clocksource_readh(struct clocksource *cs) in ingenic_ost_clocksource_readh() 71 struct clocksource *cs; in ingenic_ost_probe() 127 dev_err(dev, "clocksource registration failed"); in ingenic_ost_probe()
|
| H A D | clksrc_st_lpc.c | 3 * Clocksource using the Low Power Timer found in the Low Power Controller (LPC) 12 #include <linux/clocksource.h> 58 pr_err("clksrc-st-lpc: Failed to register clocksource\n"); in st_clksrc_init() 102 /* LPC can either run as a Clocksource or in RTC or WDT mode */ in st_clksrc_of_register() 126 pr_info("clksrc-st-lpc: clocksource initialised - running @ %luHz\n", in st_clksrc_of_register()
|
| H A D | mps2-timer.c | 12 #include <linux/clocksource.h> 196 pr_err("failed to get clock for clocksource: %d\n", ret); in mps2_clocksource_init() 202 pr_err("failed to enable clock for clocksource: %d\n", ret); in mps2_clocksource_init() 212 pr_err("failed to map register for clocksource: %d\n", ret); in mps2_clocksource_init() 219 /* ... and set it up as free-running clocksource */ in mps2_clocksource_init() 229 pr_err("failed to init clocksource: %d\n", ret); in mps2_clocksource_init()
|
| H A D | timer-davinci.c | 3 * TI DaVinci clocksource driver 20 #include <clocksource/timer-davinci.h> 61 struct clocksource dev; 186 static u64 davinci_clocksource_read(struct clocksource *dev) in davinci_clocksource_read() 193 * clocksource. The default is making the former run in oneshot mode 212 * both clocksource and clockevent. We set tim12 to periodic and don't touch 329 pr_err("Unable to register clocksource\n"); in davinci_timer_register()
|
| H A D | timer-microchip-pit64b.c | 79 * struct mchp_pit64b_clksrc - PIT64B clocksource data structure 81 * @clksrc: clocksource 85 struct clocksource clksrc; 92 /* Base address for clocksource timer. */ 150 static void mchp_pit64b_clksrc_suspend(struct clocksource *cs) in mchp_pit64b_clksrc_suspend() 157 static void mchp_pit64b_clksrc_resume(struct clocksource *cs) in mchp_pit64b_clksrc_resume() 165 static u64 mchp_pit64b_clksrc_read(struct clocksource *cs) in mchp_pit64b_clksrc_read() 376 pr_debug("clksrc: Failed to register PIT64B clocksource!\n"); in mchp_pit64b_init_clksrc() 500 /* 2nd request, register clocksource. */ in mchp_pit64b_dt_init()
|
| /linux/arch/mips/alchemy/common/ |
| H A D | time.c | 16 * Clocksource/event using the 32.768kHz-clocked Counter1 ('RTC' in the 18 * counter control register, otherwise the CP0 counter clocksource/event 23 #include <linux/clocksource.h> 35 static u64 au1x_counter1_read(struct clocksource *cs) in au1x_counter1_read() 40 static struct clocksource au1x_counter1_clocksource = { 83 * has been detected. If so install the rtcmatch2 clocksource, in alchemy_time_init() 116 /* register counter1 clocksource and event device */ in alchemy_time_init() 130 printk(KERN_INFO "Alchemy clocksource installed\n"); in alchemy_time_init()
|
| /linux/include/clocksource/ |
| H A D | timer-davinci.h | 3 * TI DaVinci clocksource driver 22 * struct davinci_timer_cfg - davinci clocksource driver configuration struct 24 * @irq: clockevent and clocksource interrupt resources 28 * clock half for both clocksource and clockevent and the compare register
|
| /linux/arch/mips/kernel/ |
| H A D | csrc-bcm1480.c | 5 #include <linux/clocksource.h> 19 static u64 bcm1480_hpt_read(struct clocksource *cs) in bcm1480_hpt_read() 24 struct clocksource bcm1480_clocksource = { 39 struct clocksource *cs = &bcm1480_clocksource; in sb1480_clocksource_init()
|
| H A D | csrc-ioasic.c | 3 * DEC I/O ASIC's counter clocksource 7 #include <linux/clocksource.h> 16 static u64 dec_ioasic_hpt_read(struct clocksource *cs) in dec_ioasic_hpt_read() 21 static struct clocksource clocksource_dec = {
|
| H A D | csrc-sb1250.c | 5 #include <linux/clocksource.h> 35 static u64 sb1250_hpt_read(struct clocksource *cs) in sb1250_hpt_read() 40 struct clocksource bcm1250_clocksource = { 55 struct clocksource *cs = &bcm1250_clocksource; in sb1250_clocksource_init()
|
| /linux/arch/arm/mach-footbridge/ |
| H A D | dc21285-timer.c | 9 #include <linux/clocksource.h> 23 static u64 cksrc_dc21285_read(struct clocksource *cs) in cksrc_dc21285_read() 28 static int cksrc_dc21285_enable(struct clocksource *cs) in cksrc_dc21285_enable() 36 static void cksrc_dc21285_disable(struct clocksource *cs) in cksrc_dc21285_disable() 41 static struct clocksource cksrc_dc21285 = {
|
| /linux/arch/openrisc/kernel/ |
| H A D | time.c | 19 #include <linux/clocksource.h> 135 * Clocksource: Based on OpenRISC timer/counter 140 static u64 openrisc_timer_read(struct clocksource *cs) in openrisc_timer_read() 145 static struct clocksource openrisc_timer = { 158 panic("failed to register clocksource"); in openrisc_timer_init()
|
| /linux/rust/kernel/ |
| H A D | time.rs | 69 pub unsafe trait ClockSource { interface 96 unsafe impl ClockSource for Monotonic { 123 unsafe impl ClockSource for RealTime { 143 unsafe impl ClockSource for BootTime { 167 unsafe impl ClockSource for Tai { 183 pub struct Instant<C: ClockSource> { 188 impl<C: ClockSource> Clone for Instant<C> { 194 impl<C: ClockSource> Copy for Instant<C> {} 196 impl<C: ClockSource> Instant<C> { 200 // INVARIANT: The `ClockSource::ktime_get()` function returns a value in the range in now() [all …]
|
| /linux/arch/m68k/hp300/ |
| H A D | time.c | 11 #include <linux/clocksource.h> 25 static u64 hp300_read_clk(struct clocksource *cs); 27 static struct clocksource hp300_clk = { 77 static u64 hp300_read_clk(struct clocksource *cs) in hp300_read_clk()
|
| /linux/arch/sh/kernel/ |
| H A D | time.c | 29 * clockevents and clocksource devices respectively. In the event in sh_late_time_init() 31 * clocksource and the jiffies clocksource is used transparently in sh_late_time_init()
|
| /linux/kernel/time/ |
| H A D | jiffies.c | 3 * This file contains the jiffies based clocksource. 7 #include <linux/clocksource.h> 16 static u64 jiffies_read(struct clocksource *cs) in jiffies_read() 22 * The Jiffies based clocksource is the lowest common 32 static struct clocksource clocksource_jiffies = { 65 struct clocksource * __init __weak clocksource_default_clock(void) in clocksource_default_clock() 74 static struct clocksource refined_jiffies;
|