Pull pwm updates from Thierry Reding: "There's quite a few changes this time around. Most of these are fixes and cleanups, but there's also new chip support for some drivers and a bit of rework" * tag 'pwm/for-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: (33 commits) pwm: pca9685: Fix PWM/GPIO inter-operation pwm: Make pwm_apply_state_debug() static pwm: meson: Remove redundant assignment to variable fin_freq pwm: jz4740: Allow selection of PWM channels 0 and 1 pwm: jz4740: Obtain regmap from parent node pwm: jz4740: Improve algorithm of clock calculation pwm: jz4740: Use clocks from TCU driver pwm: sun4i: Remove redundant needs_delay pwm: omap-dmtimer: Implement .apply callback pwm: omap-dmtimer: Do not disable PWM before changing period/duty_cycle pwm: omap-dmtimer: Fix PWM enabling sequence pwm: omap-dmtimer: Update description for PWM OMAP DM timer pwm: omap-dmtimer: Drop unused header file pwm: renesas-tpu: Drop confusing registered message pwm: renesas-tpu: Fix late Runtime PM enablement pwm: rcar: Fix late Runtime PM enablement dt-bindings: pwm: renesas-tpu: Document more R-Car Gen2 support pwm: meson: Fix confusing indentation pwm: pca9685: Use gpio core provided macro GPIO_LINE_DIRECTION_OUT pwm: pca9685: Replace CONFIG_PM with __maybe_unused ...
Showing the changes to include/linux (2 of 20 files). Show all
Unified · Split
| @@ -1,90 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * include/linux/platform_data/pwm_omap_dmtimer.h | ||
| 3 | * | ||
| 4 | * OMAP Dual-Mode Timer PWM platform data | ||
| 5 | * | ||
| 6 | * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/ | ||
| 7 | * Tarun Kanti DebBarma <tarun.kanti@ti.com> | ||
| 8 | * Thara Gopinath <thara@ti.com> | ||
| 9 | * | ||
| 10 | * Platform device conversion and hwmod support. | ||
| 11 | * | ||
| 12 | * Copyright (C) 2005 Nokia Corporation | ||
| 13 | * Author: Lauri Leukkunen <lauri.leukkunen@nokia.com> | ||
| 14 | * PWM and clock framework support by Timo Teras. | ||
| 15 | * | ||
| 16 | * This program is free software; you can redistribute it and/or modify it | ||
| 17 | * under the terms of the GNU General Public License as published by the | ||
| 18 | * Free Software Foundation; either version 2 of the License, or (at your | ||
| 19 | * option) any later version. | ||
| 20 | * | ||
| 21 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
| 22 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
| 23 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN | ||
| 24 | * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
| 25 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
| 26 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
| 27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
| 28 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
| 29 | * | ||
| 30 | * You should have received a copy of the GNU General Public License along | ||
| 31 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
| 32 | * 675 Mass Ave, Cambridge, MA 02139, USA. | ||
| 33 | */ | ||
| 34 | |||
| 35 | #ifndef __PWM_OMAP_DMTIMER_PDATA_H | ||
| 36 | #define __PWM_OMAP_DMTIMER_PDATA_H | ||
| 37 | |||
| 38 | /* clock sources */ | ||
| 39 | #define PWM_OMAP_DMTIMER_SRC_SYS_CLK 0x00 | ||
| 40 | #define PWM_OMAP_DMTIMER_SRC_32_KHZ 0x01 | ||
| 41 | #define PWM_OMAP_DMTIMER_SRC_EXT_CLK 0x02 | ||
| 42 | |||
| 43 | /* timer interrupt enable bits */ | ||
| 44 | #define PWM_OMAP_DMTIMER_INT_CAPTURE (1 << 2) | ||
| 45 | #define PWM_OMAP_DMTIMER_INT_OVERFLOW (1 << 1) | ||
| 46 | #define PWM_OMAP_DMTIMER_INT_MATCH (1 << 0) | ||
| 47 | |||
| 48 | /* trigger types */ | ||
| 49 | #define PWM_OMAP_DMTIMER_TRIGGER_NONE 0x00 | ||
| 50 | #define PWM_OMAP_DMTIMER_TRIGGER_OVERFLOW 0x01 | ||
| 51 | #define PWM_OMAP_DMTIMER_TRIGGER_OVERFLOW_AND_COMPARE 0x02 | ||
| 52 | |||
| 53 | struct omap_dm_timer; | ||
| 54 | typedef struct omap_dm_timer pwm_omap_dmtimer; | ||
| 55 | |||
| 56 | struct pwm_omap_dmtimer_pdata { | ||
| 57 | pwm_omap_dmtimer *(*request_by_node)(struct device_node *np); | ||
| 58 | pwm_omap_dmtimer *(*request_specific)(int timer_id); | ||
| 59 | pwm_omap_dmtimer *(*request)(void); | ||
| 60 | |||
| 61 | int (*free)(pwm_omap_dmtimer *timer); | ||
| 62 | |||
| 63 | void (*enable)(pwm_omap_dmtimer *timer); | ||
| 64 | void (*disable)(pwm_omap_dmtimer *timer); | ||
| 65 | |||
| 66 | int (*get_irq)(pwm_omap_dmtimer *timer); | ||
| 67 | int (*set_int_enable)(pwm_omap_dmtimer *timer, unsigned int value); | ||
| 68 | int (*set_int_disable)(pwm_omap_dmtimer *timer, u32 mask); | ||
| 69 | |||
| 70 | struct clk *(*get_fclk)(pwm_omap_dmtimer *timer); | ||
| 71 | |||
| 72 | int (*start)(pwm_omap_dmtimer *timer); | ||
| 73 | int (*stop)(pwm_omap_dmtimer *timer); | ||
| 74 | int (*set_source)(pwm_omap_dmtimer *timer, int source); | ||
| 75 | |||
| 76 | int (*set_load)(pwm_omap_dmtimer *timer, int autoreload, | ||
| 77 | unsigned int value); | ||
| 78 | int (*set_match)(pwm_omap_dmtimer *timer, int enable, | ||
| 79 | unsigned int match); | ||
| 80 | int (*set_pwm)(pwm_omap_dmtimer *timer, int def_on, | ||
| 81 | int toggle, int trigger); | ||
| 82 | int (*set_prescaler)(pwm_omap_dmtimer *timer, int prescaler); | ||
| 83 | |||
| 84 | unsigned int (*read_counter)(pwm_omap_dmtimer *timer); | ||
| 85 | int (*write_counter)(pwm_omap_dmtimer *timer, unsigned int value); | ||
| 86 | unsigned int (*read_status)(pwm_omap_dmtimer *timer); | ||
| 87 | int (*write_status)(pwm_omap_dmtimer *timer, unsigned int value); | ||
| 88 | }; | ||
| 89 | |||
| 90 | #endif /* __PWM_OMAP_DMTIMER_PDATA_H */ | ||
| @@ -71,7 +71,8 @@ struct pwm_state { · 70 unmodified lines | |||
| 71 | * @chip: PWM chip providing this PWM device | 71 | * @chip: PWM chip providing this PWM device |
| 72 | * @chip_data: chip-private data associated with the PWM device | 72 | * @chip_data: chip-private data associated with the PWM device |
| 73 | * @args: PWM arguments | 73 | * @args: PWM arguments |
| 74 | * @state: curent PWM channel state | 74 | * @state: last applied state |
| 75 | * @last: last implemented state (for PWM_DEBUG) | ||
| 75 | */ | 76 | */ |
| 76 | struct pwm_device { | 77 | struct pwm_device { |
| 77 | const char *label; | 78 | const char *label; |
| @@ -83,6 +84,7 @@ struct pwm_device { · 5 unmodified lines | |||
| 83 | 84 | ||
| 84 | struct pwm_args args; | 85 | struct pwm_args args; |
| 85 | struct pwm_state state; | 86 | struct pwm_state state; |
| 87 | struct pwm_state last; | ||
| 86 | }; | 88 | }; |
| 87 | 89 | ||
| 88 | /** | 90 | /** |