caab277b1de0a (Thomas Gleixner 2019-06-03 07:44:50 +0200 1) /* SPDX-License-Identifier: GPL-2.0-only */
f11899894c0a6 (Tomasz Figa 2013-04-20 23:22:13 +0200 2) /*
f11899894c0a6 (Tomasz Figa 2013-04-20 23:22:13 +0200 3) * Copyright (C) 2013 Samsung Electronics Co., Ltd.
f11899894c0a6 (Tomasz Figa 2013-04-20 23:22:13 +0200 4) */
f11899894c0a6 (Tomasz Figa 2013-04-20 23:22:13 +0200 5) #ifndef __CLOCKSOURCE_SAMSUNG_PWM_H
f11899894c0a6 (Tomasz Figa 2013-04-20 23:22:13 +0200 6) #define __CLOCKSOURCE_SAMSUNG_PWM_H
f11899894c0a6 (Tomasz Figa 2013-04-20 23:22:13 +0200 7)
f11899894c0a6 (Tomasz Figa 2013-04-20 23:22:13 +0200 8) #include <linux/spinlock.h>
f11899894c0a6 (Tomasz Figa 2013-04-20 23:22:13 +0200 9)
f11899894c0a6 (Tomasz Figa 2013-04-20 23:22:13 +0200 10) #define SAMSUNG_PWM_NUM 5
f11899894c0a6 (Tomasz Figa 2013-04-20 23:22:13 +0200 11)
11ad39ede24ee (Tomasz Figa 2013-04-06 02:40:36 +0200 12) /*
11ad39ede24ee (Tomasz Figa 2013-04-06 02:40:36 +0200 13) * Following declaration must be in an ifdef due to this symbol being static
11ad39ede24ee (Tomasz Figa 2013-04-06 02:40:36 +0200 14) * in pwm-samsung driver if the clocksource driver is not compiled in and the
11ad39ede24ee (Tomasz Figa 2013-04-06 02:40:36 +0200 15) * spinlock is not shared between both drivers.
11ad39ede24ee (Tomasz Figa 2013-04-06 02:40:36 +0200 16) */
11ad39ede24ee (Tomasz Figa 2013-04-06 02:40:36 +0200 17) #ifdef CONFIG_CLKSRC_SAMSUNG_PWM
7aac482e6290a (Tomasz Figa 2013-04-23 17:46:24 +0200 18) extern spinlock_t samsung_pwm_lock;
11ad39ede24ee (Tomasz Figa 2013-04-06 02:40:36 +0200 19) #endif
7aac482e6290a (Tomasz Figa 2013-04-23 17:46:24 +0200 20)
f11899894c0a6 (Tomasz Figa 2013-04-20 23:22:13 +0200 21) struct samsung_pwm_variant {
f11899894c0a6 (Tomasz Figa 2013-04-20 23:22:13 +0200 22) u8 bits;
f11899894c0a6 (Tomasz Figa 2013-04-20 23:22:13 +0200 23) u8 div_base;
f11899894c0a6 (Tomasz Figa 2013-04-20 23:22:13 +0200 24) u8 tclk_mask;
f11899894c0a6 (Tomasz Figa 2013-04-20 23:22:13 +0200 25) u8 output_mask;
f11899894c0a6 (Tomasz Figa 2013-04-20 23:22:13 +0200 26) bool has_tint_cstat;
f11899894c0a6 (Tomasz Figa 2013-04-20 23:22:13 +0200 27) };
f11899894c0a6 (Tomasz Figa 2013-04-20 23:22:13 +0200 28)
f9bb48a2c25a9 (Tomasz Figa 2013-04-23 17:46:27 +0200 29) void samsung_pwm_clocksource_init(void __iomem *base,
f9bb48a2c25a9 (Tomasz Figa 2013-04-23 17:46:27 +0200 30) unsigned int *irqs, struct samsung_pwm_variant *variant);
f9bb48a2c25a9 (Tomasz Figa 2013-04-23 17:46:27 +0200 31)
f11899894c0a6 (Tomasz Figa 2013-04-20 23:22:13 +0200 32) #endif /* __CLOCKSOURCE_SAMSUNG_PWM_H */