1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */
2225f5eecSMinkyu Kang /*
3225f5eecSMinkyu Kang  * Copyright (C) 2009 Samsung Electronics
4225f5eecSMinkyu Kang  * Kyungmin Park <kyungmin.park@samsung.com>
5225f5eecSMinkyu Kang  * Minkyu Kang <mk7.kang@samsung.com>
6225f5eecSMinkyu Kang  */
7225f5eecSMinkyu Kang 
8225f5eecSMinkyu Kang #ifndef __ASM_ARM_ARCH_PWM_H_
9225f5eecSMinkyu Kang #define __ASM_ARM_ARCH_PWM_H_
10225f5eecSMinkyu Kang 
11225f5eecSMinkyu Kang #define PRESCALER_0		(8 - 1)		/* prescaler of timer 0, 1 */
12225f5eecSMinkyu Kang #define PRESCALER_1		(16 - 1)	/* prescaler of timer 2, 3, 4 */
13225f5eecSMinkyu Kang 
14225f5eecSMinkyu Kang /* Divider MUX */
15225f5eecSMinkyu Kang #define MUX_DIV_1		0		/* 1/1 period */
16225f5eecSMinkyu Kang #define MUX_DIV_2		1		/* 1/2 period */
17225f5eecSMinkyu Kang #define MUX_DIV_4		2		/* 1/4 period */
18225f5eecSMinkyu Kang #define MUX_DIV_8		3		/* 1/8 period */
19225f5eecSMinkyu Kang #define MUX_DIV_16		4		/* 1/16 period */
20225f5eecSMinkyu Kang 
21225f5eecSMinkyu Kang #define MUX_DIV_SHIFT(x)	(x * 4)
22225f5eecSMinkyu Kang 
23225f5eecSMinkyu Kang #define TCON_OFFSET(x)		((x + 1) * (!!x) << 2)
24225f5eecSMinkyu Kang 
25225f5eecSMinkyu Kang #define TCON_START(x)		(1 << TCON_OFFSET(x))
26225f5eecSMinkyu Kang #define TCON_UPDATE(x)		(1 << (TCON_OFFSET(x) + 1))
27225f5eecSMinkyu Kang #define TCON_INVERTER(x)	(1 << (TCON_OFFSET(x) + 2))
28225f5eecSMinkyu Kang #define TCON_AUTO_RELOAD(x)	(1 << (TCON_OFFSET(x) + 3))
29225f5eecSMinkyu Kang #define TCON4_AUTO_RELOAD	(1 << 22)
30225f5eecSMinkyu Kang 
31225f5eecSMinkyu Kang #ifndef __ASSEMBLY__
32225f5eecSMinkyu Kang struct s5p_timer {
33225f5eecSMinkyu Kang 	unsigned int	tcfg0;
34225f5eecSMinkyu Kang 	unsigned int	tcfg1;
35225f5eecSMinkyu Kang 	unsigned int	tcon;
36225f5eecSMinkyu Kang 	unsigned int	tcntb0;
37225f5eecSMinkyu Kang 	unsigned int	tcmpb0;
38225f5eecSMinkyu Kang 	unsigned int	tcnto0;
39225f5eecSMinkyu Kang 	unsigned int	tcntb1;
40225f5eecSMinkyu Kang 	unsigned int	tcmpb1;
41225f5eecSMinkyu Kang 	unsigned int	tcnto1;
42225f5eecSMinkyu Kang 	unsigned int	tcntb2;
43225f5eecSMinkyu Kang 	unsigned int	tcmpb2;
44225f5eecSMinkyu Kang 	unsigned int	tcnto2;
45225f5eecSMinkyu Kang 	unsigned int	tcntb3;
46225f5eecSMinkyu Kang 	unsigned int	res1;
47225f5eecSMinkyu Kang 	unsigned int	tcnto3;
48225f5eecSMinkyu Kang 	unsigned int	tcntb4;
49225f5eecSMinkyu Kang 	unsigned int	tcnto4;
50225f5eecSMinkyu Kang 	unsigned int	tintcstat;
51225f5eecSMinkyu Kang };
52225f5eecSMinkyu Kang #endif	/* __ASSEMBLY__ */
53225f5eecSMinkyu Kang 
54225f5eecSMinkyu Kang #endif
55