Skip to content
Navigation Menu
Toggle navigation
Sign in
In this repository
All GitHub Enterprise
↵
Jump to
↵
No suggested jump to results
In this repository
All GitHub Enterprise
↵
Jump to
↵
In this organization
All GitHub Enterprise
↵
Jump to
↵
In this repository
All GitHub Enterprise
↵
Jump to
↵
Sign in
Reseting focus
You signed in with another tab or window.
Reload
to refresh your session.
You signed out in another tab or window.
Reload
to refresh your session.
You switched accounts on another tab or window.
Reload
to refresh your session.
Dismiss alert
{{ message }}
mariux64
/
linux
Public
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Issues
2
Pull requests
0
Actions
Projects
0
Wiki
Security
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Wiki
Security
Insights
Files
a912e80
Documentation
LICENSES
arch
alpha
arc
arm
arm64
c6x
csky
h8300
hexagon
ia64
m68k
microblaze
mips
alchemy
ar7
ath25
ath79
bcm47xx
bcm63xx
bmips
boot
cavium-octeon
cobalt
configs
crypto
dec
emma
fw
generic
include
asm
dec
emma
fw
ip32
lasat
mach-ar7
mach-ath25
mach-ath79
mach-au1x00
mach-bcm47xx
mach-bcm63xx
mach-bmips
mach-cavium-octeon
mach-cobalt
mach-db1x00
mach-dec
mach-emma2rh
mach-generic
mach-ip22
mach-ip27
mach-ip28
mach-ip32
mach-jazz
mach-jz4740
base.h
clock.h
cpu-feature-overrides.h
dma.h
gpio.h
irq.h
jz4740_fb.h
jz4740_mmc.h
platform.h
timer.h
mach-lantiq
mach-lasat
mach-loongson32
mach-loongson64
mach-malta
mach-netlogic
mach-paravirt
mach-pic32
mach-pistachio
mach-pmcs-msp71xx
mach-pnx833x
mach-ralink
mach-rc32434
mach-rm
mach-sibyte
mach-tx39xx
mach-tx49xx
mach-vr41xx
mach-xilfpga
mips-boards
netlogic
octeon
pci
sgi
sibyte
sn
txx9
vr41xx
xtalk
Kbuild
abi.h
addrspace.h
amon.h
arch_hweight.h
asm-eva.h
asm-offsets.h
asm-prototypes.h
asm.h
asmmacro-32.h
asmmacro-64.h
asmmacro.h
atomic.h
barrier.h
bcache.h
bitops.h
bitrev.h
bmips-spaces.h
bmips.h
bootinfo.h
branch.h
break.h
bug.h
bugs.h
cache.h
cacheflush.h
cacheops.h
cdmm.h
cevt-r4k.h
checksum.h
clock.h
clocksource.h
cmp.h
cmpxchg.h
compat-signal.h
compat.h
compiler.h
cop2.h
cpu-features.h
cpu-info.h
cpu-type.h
cpu.h
cpufeature.h
debug.h
delay.h
div64.h
dma-coherence.h
dma-direct.h
dma-mapping.h
dma.h
ds1287.h
dsemul.h
dsp.h
edac.h
elf.h
errno.h
eva.h
exec.h
extable.h
fb.h
fixmap.h
floppy.h
fpregdef.h
fpu.h
fpu_emulator.h
ftrace.h
futex.h
ginvt.h
gio_device.h
gt64120.h
hardirq.h
hazards.h
highmem.h
hpet.h
hugetlb.h
hw_irq.h
i8259.h
ide.h
idle.h
inst.h
io.h
irq.h
irq_cpu.h
irq_gt641xx.h
irq_regs.h
irqflags.h
isa-rev.h
isadep.h
jazz.h
jazzdma.h
jump_label.h
kdebug.h
kexec.h
kgdb.h
kmap_types.h
kprobes.h
kvm_host.h
kvm_para.h
linkage.h
llsc.h
local.h
m48t37.h
maar.h
machine.h
mc146818-time.h
mc146818rtc.h
mips-cm.h
mips-cpc.h
mips-cps.h
mips-gic.h
mips-r2-to-r6-emul.h
mips_machine.h
mips_mt.h
mipsmtregs.h
mipsprom.h
mipsregs.h
mmiowb.h
mmu.h
mmu_context.h
mmzone.h
module.h
msa.h
msc01_ic.h
nile4.h
paccess.h
page.h
pci.h
perf_event.h
pgalloc.h
pgtable-32.h
pgtable-64.h
pgtable-bits.h
pgtable.h
pm-cps.h
pm.h
pmon.h
prefetch.h
processor.h
prom.h
ptrace.h
r4k-timer.h
r4kcache.h
reboot.h
reg.h
regdef.h
rtlx.h
seccomp.h
serial.h
setup.h
sgialib.h
sgiarcs.h
shmparam.h
sigcontext.h
signal.h
sim.h
smp-cps.h
smp-ops.h
smp.h
sni.h
socket.h
sparsemem.h
spinlock.h
spinlock_types.h
spram.h
stackframe.h
stackprotector.h
stacktrace.h
string.h
switch_to.h
syscall.h
termios.h
thread_info.h
time.h
timex.h
tlb.h
tlbdebug.h
tlbex.h
tlbflush.h
tlbmisc.h
topology.h
traps.h
txx9irq.h
txx9pio.h
txx9tmr.h
types.h
uaccess.h
uasm.h
unistd.h
uprobes.h
vdso.h
vga.h
vpe.h
war.h
watch.h
wbflush.h
yamon-dt.h
uapi
jazz
jz4740
kernel
kvm
lantiq
lasat
lib
loongson32
loongson64
math-emu
mm
mti-malta
net
netlogic
oprofile
paravirt
pci
pic32
pistachio
pmcs-msp71xx
pnx833x
power
ralink
rb532
sgi-ip22
sgi-ip27
sgi-ip32
sibyte
sni
tools
txx9
vdso
vr41xx
Kbuild
Kbuild.platforms
Kconfig
Kconfig.debug
Makefile
Makefile.postlink
nds32
nios2
openrisc
parisc
powerpc
riscv
s390
sh
sparc
um
unicore32
x86
xtensa
.gitignore
Kconfig
block
certs
crypto
drivers
fs
include
init
ipc
kernel
lib
mm
net
samples
scripts
security
sound
tools
usr
virt
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS
Makefile
README
Breadcrumbs
linux
/
arch
/
mips
/
include
/
asm
/
mach-jz4740
/
timer.h
Copy path
Blame
Blame
Latest commit
History
History
126 lines (102 loc) · 3.71 KB
Breadcrumbs
linux
/
arch
/
mips
/
include
/
asm
/
mach-jz4740
/
timer.h
Top
File metadata and controls
Code
Blame
126 lines (102 loc) · 3.71 KB
Raw
/* SPDX-License-Identifier: GPL-2.0-or-later */ /* * Copyright (C) 2010, Lars-Peter Clausen <lars@metafoo.de> * JZ4740 platform timer support */ #ifndef __ASM_MACH_JZ4740_TIMER #define __ASM_MACH_JZ4740_TIMER #define JZ_REG_TIMER_STOP 0x0C #define JZ_REG_TIMER_STOP_SET 0x1C #define JZ_REG_TIMER_STOP_CLEAR 0x2C #define JZ_REG_TIMER_ENABLE 0x00 #define JZ_REG_TIMER_ENABLE_SET 0x04 #define JZ_REG_TIMER_ENABLE_CLEAR 0x08 #define JZ_REG_TIMER_FLAG 0x10 #define JZ_REG_TIMER_FLAG_SET 0x14 #define JZ_REG_TIMER_FLAG_CLEAR 0x18 #define JZ_REG_TIMER_MASK 0x20 #define JZ_REG_TIMER_MASK_SET 0x24 #define JZ_REG_TIMER_MASK_CLEAR 0x28 #define JZ_REG_TIMER_DFR(x) (((x) * 0x10) + 0x30) #define JZ_REG_TIMER_DHR(x) (((x) * 0x10) + 0x34) #define JZ_REG_TIMER_CNT(x) (((x) * 0x10) + 0x38) #define JZ_REG_TIMER_CTRL(x) (((x) * 0x10) + 0x3C) #define JZ_TIMER_IRQ_HALF(x) BIT((x) + 0x10) #define JZ_TIMER_IRQ_FULL(x) BIT(x) #define JZ_TIMER_CTRL_PWM_ABBRUPT_SHUTDOWN BIT(9) #define JZ_TIMER_CTRL_PWM_ACTIVE_LOW BIT(8) #define JZ_TIMER_CTRL_PWM_ENABLE BIT(7) #define JZ_TIMER_CTRL_PRESCALE_MASK 0x1c #define JZ_TIMER_CTRL_PRESCALE_OFFSET 0x3 #define JZ_TIMER_CTRL_PRESCALE_1 (0 << 3) #define JZ_TIMER_CTRL_PRESCALE_4 (1 << 3) #define JZ_TIMER_CTRL_PRESCALE_16 (2 << 3) #define JZ_TIMER_CTRL_PRESCALE_64 (3 << 3) #define JZ_TIMER_CTRL_PRESCALE_256 (4 << 3) #define JZ_TIMER_CTRL_PRESCALE_1024 (5 << 3) #define JZ_TIMER_CTRL_PRESCALER(x) ((x) << JZ_TIMER_CTRL_PRESCALE_OFFSET) #define JZ_TIMER_CTRL_SRC_EXT BIT(2) #define JZ_TIMER_CTRL_SRC_RTC BIT(1) #define JZ_TIMER_CTRL_SRC_PCLK BIT(0) extern void __iomem *jz4740_timer_base; void __init jz4740_timer_init(void); void jz4740_timer_enable_watchdog(void); void jz4740_timer_disable_watchdog(void); static inline void jz4740_timer_stop(unsigned int timer) { writel(BIT(timer), jz4740_timer_base + JZ_REG_TIMER_STOP_SET); } static inline void jz4740_timer_start(unsigned int timer) { writel(BIT(timer), jz4740_timer_base + JZ_REG_TIMER_STOP_CLEAR); } static inline bool jz4740_timer_is_enabled(unsigned int timer) { return readb(jz4740_timer_base + JZ_REG_TIMER_ENABLE) & BIT(timer); } static inline void jz4740_timer_enable(unsigned int timer) { writeb(BIT(timer), jz4740_timer_base + JZ_REG_TIMER_ENABLE_SET); } static inline void jz4740_timer_disable(unsigned int timer) { writeb(BIT(timer), jz4740_timer_base + JZ_REG_TIMER_ENABLE_CLEAR); } static inline void jz4740_timer_set_period(unsigned int timer, uint16_t period) { writew(period, jz4740_timer_base + JZ_REG_TIMER_DFR(timer)); } static inline void jz4740_timer_set_duty(unsigned int timer, uint16_t duty) { writew(duty, jz4740_timer_base + JZ_REG_TIMER_DHR(timer)); } static inline void jz4740_timer_set_count(unsigned int timer, uint16_t count) { writew(count, jz4740_timer_base + JZ_REG_TIMER_CNT(timer)); } static inline uint16_t jz4740_timer_get_count(unsigned int timer) { return readw(jz4740_timer_base + JZ_REG_TIMER_CNT(timer)); } static inline void jz4740_timer_ack_full(unsigned int timer) { writel(JZ_TIMER_IRQ_FULL(timer), jz4740_timer_base + JZ_REG_TIMER_FLAG_CLEAR); } static inline void jz4740_timer_irq_full_enable(unsigned int timer) { writel(JZ_TIMER_IRQ_FULL(timer), jz4740_timer_base + JZ_REG_TIMER_FLAG_CLEAR); writel(JZ_TIMER_IRQ_FULL(timer), jz4740_timer_base + JZ_REG_TIMER_MASK_CLEAR); } static inline void jz4740_timer_irq_full_disable(unsigned int timer) { writel(JZ_TIMER_IRQ_FULL(timer), jz4740_timer_base + JZ_REG_TIMER_MASK_SET); } static inline void jz4740_timer_set_ctrl(unsigned int timer, uint16_t ctrl) { writew(ctrl, jz4740_timer_base + JZ_REG_TIMER_CTRL(timer)); } static inline uint16_t jz4740_timer_get_ctrl(unsigned int timer) { return readw(jz4740_timer_base + JZ_REG_TIMER_CTRL(timer)); } #endif
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
You can’t perform that action at this time.