Move omap timer to drivers for 4.17
This series from Keerthy and Ladislav Michl move omap dmtimer code to drivers. As we don't want to export custom timer functions to random drivers, we also need to update the related PWM driver to pass the timer specific functions in platform data. Note that this series is based on a merge of omap1 specific timer fix and omap2+ platform data clean-up to keep things working and make the move a bit simpler. -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEEkgNvrZJU/QSQYIcQG9Q+yVyrpXMFAlqdd1IRHHRvbnlAYXRv bWlkZS5jb20ACgkQG9Q+yVyrpXNziQ/+OywQPRLgeYodIl5AXJCMaZhyFJPN1BP3 OXsDllCnqJOpH4yjIPz4WoEI3ciVRJw+iBOl28pDtomdyejyE9qx/FmIhL081Wgm T7TgJTieungliRfZu3UWRJdinpEyEzvTtEWlSVWa++lH5Bsub7lIPJsZ3A2bYVMh 9n6uE9bzU/ECdq/1hP9fhM2rssf8mu5l1IKlYmPWuxoFm/YSYoiyneU+rOILnJQ6 dsbc71p3+VdsZBDI+nMGcLE923LGXKEmxlHoR9+9EY12MOIwbTt/jxcI8j+Iugfk vetncsXbpKnbutTP1iXr64IXa5QFOZKtMNlfNqLo4aihWMJ6tV4570w/pxk/qMgq +qCidWm9RgVUm1N4t8kMm8aWm1BC1L8g9fw2/l0JFBHcuIlOYewa6cZ6gcUI6XxN BqcET9iyxG9HgqgB6yekHRI3niywgGcpw420RS0DLmxIzpnpeQHGkXrva0tVcVS7 4SZ9UWgLQVCKgm/8mSDv4PkIzuPXyu4fqjxzMihQdNUHAG1xeqODfU8SLsItW43a sGojvPPNWhCyvL2hpWuyWsRSOTc8MyAteeowYN1PzoSCO0cI3MTL0TUpxRTBV/9/ y1l5DYmdc1HUARXxJWreBSl3uToADguqzYUv3rHe/B20+LA19F9GRzoc9uOhqTGn ePjiA5EC64o= =2B8N -----END PGP SIGNATURE----- Merge tag 'omap-for-v4.17/timer-signed' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/soc Pull "Move omap timer to drivers for 4.17" from Tony Lindgren: This series from Keerthy and Ladislav Michl move omap dmtimer code to drivers. As we don't want to export custom timer functions to random drivers, we also need to update the related PWM driver to pass the timer specific functions in platform data. Note that this series is based on a merge of omap1 specific timer fix and omap2+ platform data clean-up to keep things working and make the move a bit simpler. * tag 'omap-for-v4.17/timer-signed' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: clocksource: timer-ti-dm: Check prescaler value clocksource: timer-ti-dm: Consolidate set source clocksource: timer-ti-dm: Make unexported functions static ARM: OMAP: pdata-quirks: Remove unused timer pdata pwm: pwm-omap-dmtimer: Adapt driver to utilize dmtimer pdata ops clocksource: timer-ti-dm: Hook device platform data if not already assigned clocksource: timer-ti-dm: Populate the timer ops to the pdata clocksource: timer-ti-dm: Add timer ops to the platform data structure ARM: OMAP: Move dmtimer driver out of plat-omap to drivers under clocksource clocksource: timer-ti-dm: Replace architecture ARM: OMAP: Move dmtimer.h out of plat-omap ARM: OMAP: timer: Wrap the inline functions under OMAP2PLUS define ARM: OMAP: dmtimer: Remove all the exports ARM: OMAP: Fix dmtimer init for omap1
This commit is contained in:
commit
6f566c4f30
13 changed files with 243 additions and 246 deletions
|
|
@ -20,12 +20,50 @@
|
|||
#ifndef __PLATFORM_DATA_DMTIMER_OMAP_H__
|
||||
#define __PLATFORM_DATA_DMTIMER_OMAP_H__
|
||||
|
||||
struct omap_dm_timer_ops {
|
||||
struct omap_dm_timer *(*request_by_node)(struct device_node *np);
|
||||
struct omap_dm_timer *(*request_specific)(int timer_id);
|
||||
struct omap_dm_timer *(*request)(void);
|
||||
|
||||
int (*free)(struct omap_dm_timer *timer);
|
||||
|
||||
void (*enable)(struct omap_dm_timer *timer);
|
||||
void (*disable)(struct omap_dm_timer *timer);
|
||||
|
||||
int (*get_irq)(struct omap_dm_timer *timer);
|
||||
int (*set_int_enable)(struct omap_dm_timer *timer,
|
||||
unsigned int value);
|
||||
int (*set_int_disable)(struct omap_dm_timer *timer, u32 mask);
|
||||
|
||||
struct clk *(*get_fclk)(struct omap_dm_timer *timer);
|
||||
|
||||
int (*start)(struct omap_dm_timer *timer);
|
||||
int (*stop)(struct omap_dm_timer *timer);
|
||||
int (*set_source)(struct omap_dm_timer *timer, int source);
|
||||
|
||||
int (*set_load)(struct omap_dm_timer *timer, int autoreload,
|
||||
unsigned int value);
|
||||
int (*set_match)(struct omap_dm_timer *timer, int enable,
|
||||
unsigned int match);
|
||||
int (*set_pwm)(struct omap_dm_timer *timer, int def_on,
|
||||
int toggle, int trigger);
|
||||
int (*set_prescaler)(struct omap_dm_timer *timer, int prescaler);
|
||||
|
||||
unsigned int (*read_counter)(struct omap_dm_timer *timer);
|
||||
int (*write_counter)(struct omap_dm_timer *timer,
|
||||
unsigned int value);
|
||||
unsigned int (*read_status)(struct omap_dm_timer *timer);
|
||||
int (*write_status)(struct omap_dm_timer *timer,
|
||||
unsigned int value);
|
||||
};
|
||||
|
||||
struct dmtimer_platform_data {
|
||||
/* set_timer_src - Only used for OMAP1 devices */
|
||||
int (*set_timer_src)(struct platform_device *pdev, int source);
|
||||
u32 timer_capability;
|
||||
u32 timer_errata;
|
||||
int (*get_context_loss_count)(struct device *);
|
||||
const struct omap_dm_timer_ops *timer_ops;
|
||||
};
|
||||
|
||||
#endif /* __PLATFORM_DATA_DMTIMER_OMAP_H__ */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue