- 30 1月, 2017 3 次提交
-
-
由 Lukasz Majewski 提交于
The code has been rewritten to remove "generic" calls to imx_pwm_{enable|disable|config}. Such approach would facilitate switch to atomic PWM (a.k.a ->apply()) implementation. Suggested-by: NStefan Agner <stefan@agner.ch> Suggested-by: NBoris Brezillon <boris.brezillon@free-electrons.com> Reviewed-by: NStefan Agner <stefan@agner.ch> Signed-off-by: NLukasz Majewski <l.majewski@majess.pl> Reviewed-by: NBoris Brezillon <boris.brezillon@free-electrons.com> Signed-off-by: NThierry Reding <thierry.reding@gmail.com> -
由 Lukasz Majewski 提交于
This patch provides separate set of PWM operations utilized by i.MX's v1 and v2 of the PWM hardware. Signed-off-by: NLothar Waßmann <LW@KARO-electronics.de> Signed-off-by: NBhuvanchandra DV <bhuvanchandra.dv@toradex.com> Signed-off-by: NLukasz Majewski <l.majewski@majess.pl> Acked-by: NShawn Guo <shawn.guo@linaro.org> Reviewed-by: NSascha Hauer <s.hauer@pengutronix.de> Reviewed-by: NBoris Brezillon <boris.brezillon@free-electrons.com> Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
由 Sascha Hauer 提交于
The use of the ipg clock was introduced with commit 7b27c160 ("pwm: i.MX: fix clock lookup"). In the commit message it was claimed that the ipg clock is enabled for register accesses. This is true for the ->config() callback, but not for the ->set_enable() callback. Given that the ipg clock is not consistently enabled for all register accesses we can assume that either it is not required at all or that the current code does not work. Remove the ipg clock code for now so that it's no longer in the way of refactoring the driver. On the other hand, the i.MX 7 IP requires the peripheral clock to be enabled before accessing its registers. Since ->config() can be called when the PWM is disabled (in which case, the peripheral clock is also disabled), we need to surround the imx->config() with clk_prepare_enable(per_clk)/clk_disable_unprepare(per_clk) calls. Note that the driver was working fine for the i.MX 7 IP so far because the ipg and peripheral clock use the same hardware clock gate, which guaranteed peripheral clock activation even when ->config() was called when the PWM was disabled. Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de> Signed-off-by: NBoris Brezillon <boris.brezillon@free-electrons.com> Cc: Philipp Zabel <p.zabel@pengutronix.de> Reviewed-by: NStefan Agner <stefan@agner.ch> Tested-by: NStefan Agner <stefan@agner.ch> Reviewed-by: NBoris Brezillon <boris.brezillon@free-electrons.com> Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
- 19 1月, 2017 1 次提交
-
-
由 Bhumika Goyal 提交于
Declare pwm_ops structures as const as they are only stored in the ops field of a pwm_chip structure. This field is of type const struct pwm_ops *, so pwm_ops structures having this property can be declared as const. Done using Coccinelle: @r1 disable optional_qualifier@ identifier i; position p; @@ static struct pwm_ops i@p={...}; @ok1@ identifier r1.i; position p; struct pxa_pwm_chip pwm; struct bfin_pwm_chip bwm; struct vt8500_chip vp; struct imx_chip icp; @@ ( pwm.chip.ops=&i@p | bwm.chip.ops=&i@p | vp.chip.ops=&i@p | icp.chip.ops=&i@p ) @bad@ position p!={r1.p,ok1.p}; identifier r1.i; @@ i@p @depends on !bad disable optional_qualifier@ identifier r1.i; @@ +const struct pwm_ops i; File size details: text data bss dec hex filename 1646 328 0 1974 7b6 drivers/pwm/pwm-imx.o 1742 224 0 1966 7ae drivers/pwm/pwm-imx.o 1941 296 0 2237 8bd drivers/pwm/pwm-pxa.o 2037 192 0 2229 8b5 drivers/pwm/pwm-pxa.o 1946 296 0 2242 8c2 drivers/pwm/pwm-vt8500.o 2050 192 0 2242 8c2 drivers/pwm/pwm-vt8500.o The drivers/pwm/pwm-bfin.o file did not compile. Signed-off-by: NBhumika Goyal <bhumirks@gmail.com> Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
- 20 7月, 2015 2 次提交
-
-
由 Boris Brezillon 提交于
Use the pwm_get_xxx() helpers instead of directly accessing the fields in struct pwm_device. This will allow us to smoothly move to the atomic update approach. Signed-off-by: NBoris Brezillon <boris.brezillon@free-electrons.com> Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
由 Boris Brezillon 提交于
Some PWM drivers are testing the PWMF_ENABLED flag. Create a helper function to hide the logic behind enabled test. This will allow us to smoothly move from the current approach to an atomic PWM update approach. Signed-off-by: NBoris Brezillon <boris.brezillon@free-electrons.com> Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
- 20 10月, 2014 1 次提交
-
-
由 Wolfram Sang 提交于
A platform_driver does not need to set an owner, it will be populated by the driver core. Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
- 25 8月, 2014 3 次提交
-
-
由 Liu Ying 提交于
The i.MX PWM version2 is embedded in several i.MX SoCs, such as i.MX27, i.MX51 and i.MX6SL. There is a 4-word (16 bit) sample FIFO in this IP. Each FIFO slot determines the duty period of a PWM waveform in one full cycle. The IP spec mentions that we should not write a fourth sample because the FIFO will become full and triggers a FIFO write error (FWE) which will prevent the PWM from starting once it is enabled. In order to avoid any sample FIFO overflow issue, this patch clears all sample FIFO by doing software reset in the configuration hook when the controller is disabled or waits for a full PWM cycle to get a relinquished FIFO slot when the controller is enabled and the FIFO is fully loaded. The FIFO overflow issue can be reproduced by the following commands on the i.MX6SL EVK platform, assuming we use PWM2 for the debug LED which is driven by the pin HSIC_STROBE and the maximal brightness is 255. echo 0 > /sys/class/leds/user/brightness echo 0 > /sys/class/leds/user/brightness echo 0 > /sys/class/leds/user/brightness echo 0 > /sys/class/leds/user/brightness echo 255 > /sys/class/leds/user/brightness Here, FWE happens (PWMSR register reads 0x58) and the LED can not be lighten. Another way to reproduce the FIFO overflow issue is to run this script: while true; do echo 255 > /sys/class/leds/user/brightness; done Cc: Thierry Reding <thierry.reding@gmail.com> Cc: Sascha Hauer <s.hauer@pengutronix.de> Cc: Shawn Guo <shawn.guo@freescale.com> Cc: Lothar Waßmann <LW@KARO-electronics.de> Cc: linux-pwm@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: NLiu Ying <Ying.Liu@freescale.com> Acked-by: NShawn Guo <shawn.guo@freescale.com> Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
由 Liu Ying 提交于
This patch contains no logic change to cleanup indentation for register definitions only. Cc: Thierry Reding <thierry.reding@gmail.com> Cc: Sascha Hauer <s.hauer@pengutronix.de> Cc: Shawn Guo <shawn.guo@freescale.com> Cc: Lothar Waßmann <LW@KARO-electronics.de> Cc: linux-pwm@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: NLiu Ying <Ying.Liu@freescale.com> Acked-by: NShawn Guo <shawn.guo@freescale.com> Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
由 Liu Ying 提交于
This patch adds missing parentheses around the argument of the macro MX3_PWMCR_PRESCALER(x) to avoid any potential macro expansion issue. Reported-by: NLothar Waßmann <LW@KARO-electronics.de> Cc: Thierry Reding <thierry.reding@gmail.com> Cc: Sascha Hauer <s.hauer@pengutronix.de> Cc: Shawn Guo <shawn.guo@freescale.com> Cc: Lothar Waßmann <LW@KARO-electronics.de> Cc: linux-pwm@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: NLiu Ying <Ying.Liu@freescale.com> Acked-by: NShawn Guo <shawn.guo@freescale.com> Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
- 07 8月, 2014 1 次提交
-
-
由 Shawn Guo 提交于
The .config() hook imx_pwm_config() calls clk APIs like clk_prepare() and clk_get_rate(), which might sleep, so we need to set can_sleep flag on pwm_chip. Signed-off-by: NShawn Guo <shawn.guo@freescale.com> Acked-by: NUwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
- 28 4月, 2014 1 次提交
-
-
由 Jingoo Han 提交于
The site-specific OOM messages are unnecessary, because they duplicate the MM subsystem generic OOM message. Signed-off-by: NJingoo Han <jg1.han@samsung.com> Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
- 08 10月, 2013 2 次提交
-
-
由 Sachin Kamat 提交于
The data structure of_match_ptr() protects is always compiled in. Hence of_match_ptr() is not needed. Signed-off-by: NSachin Kamat <sachin.kamat@linaro.org> Acked-by: NSascha Hauer <s.hauer@pengutronix.de> Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
由 Sachin Kamat 提交于
'of_match_ptr' is defined in linux/of.h. Include it explicitly. Signed-off-by: NSachin Kamat <sachin.kamat@linaro.org> Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
- 12 6月, 2013 1 次提交
-
-
由 Thierry Reding 提交于
Some drivers don't set the .owner fields of the struct device_driver or struct pwm_ops, which causes the module usage count to become wrong. Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
- 18 5月, 2013 1 次提交
-
-
由 Wolfram Sang 提交于
devm_ioremap_resource does sanity checks on the given resource. No need to duplicate this in the driver. Signed-off-by: NWolfram Sang <wsa@the-dreams.de> Acked-by: NStephen Warren <swarren@nvidia.com>
-
- 02 4月, 2013 1 次提交
-
-
由 Axel Lin 提交于
We can test PWMF_ENABLED bit to know if pwm is enabled or not. Thus remove enabled field from struct imx_chip. Signed-off-by: NAxel Lin <axel.lin@ingics.com> Acked-by: NSascha Hauer <s.hauer@pengutronix.de> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
- 23 1月, 2013 1 次提交
-
-
由 Thierry Reding 提交于
Convert all uses of devm_request_and_ioremap() to the newly introduced devm_ioremap_resource() which provides more consistent error handling. Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de> Acked-by: NViresh Kumar <viresh.kumar@linaro.org> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 06 12月, 2012 1 次提交
-
-
由 Lothar Waßmann 提交于
compiling the i.MX pwm driver produces the following warning: |drivers/pwm/pwm-imx.c: In function 'imx_pwm_probe': |drivers/pwm/pwm-imx.c:281:7: warning: assignment discards qualifiers from pointer target type Apply a 'const' attribute to the affected variable declaration. Signed-off-by: NLothar Waßmann <LW@KARO-electronics.de> Acked-by: NSascha Hauer <s.hauer@pengutronix.de> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
- 29 11月, 2012 3 次提交
-
-
由 Bill Pemberton 提交于
CONFIG_HOTPLUG is going away as an option so __devexit is no longer needed. Signed-off-by: NBill Pemberton <wfp5p@virginia.edu> Acked-by: NThierry Reding <thierry.reding@avionic-design.de> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Bill Pemberton 提交于
CONFIG_HOTPLUG is going away as an option so __devinit is no longer needed. Signed-off-by: NBill Pemberton <wfp5p@virginia.edu> Acked-by: NThierry Reding <thierry.reding@avionic-design.de> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Bill Pemberton 提交于
CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer needed. Signed-off-by: NBill Pemberton <wfp5p@virginia.edu> Acked-by: NThierry Reding <thierry.reding@avionic-design.de> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 12 9月, 2012 7 次提交
-
-
由 Philipp Zabel 提交于
The i.MX PWM core has two clocks: The ipg clock and the ipg highfreq (peripheral) clock. The ipg clock has to be enabled for this hardware to work. The actual PWM output can either be driven by the ipg clock or the ipg highfreq. The ipg highfreq has the advantage that it runs even when the SoC is in low power modes. This patch requests both clocks and enables the ipg clock for accessing registers and the peripheral clock to actually turn on the PWM. Signed-off-by: NPhilipp Zabel <p.zabel@pengutronix.de> Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de> Reviewed-by: NShawn Guo <shawn.guo@linaro.org> Reviewed-by: NBenoît Thébaudeau <benoit.thebaudeau@advansee.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Sascha Hauer 提交于
The i.MX PWM module has two clocks: The ipg clock and the ipg highfreq (peripheral) clock. The ipg clock has to be enabled for this hardware to work. The actual PWM output can either be driven by the ipg clock or the ipg highfreq. The ipg highfreq has the advantage that it runs even when the SoC is in low power modes. Use the always running clock also on i.MX25. Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de> Reviewed-by: NShawn Guo <shawn.guo@linaro.org> Reviewed-by: NBenoît Thébaudeau <benoit.thebaudeau@advansee.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Philipp Zabel 提交于
At the same time remove platform based support. No user for this driver has made it into mainline so far, so all we break is out of tree stuff. Signed-off-by: NPhilipp Zabel <p.zabel@pengutronix.de> Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de> Reviewed-by: NShawn Guo <shawn.guo@linaro.org> Reviewed-by: NBenoît Thébaudeau <benoit.thebaudeau@advansee.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Sascha Hauer 提交于
Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de> Reviewed-by: NShawn Guo <shawn.guo@linaro.org> Reviewed-by: NBenoît Thébaudeau <benoit.thebaudeau@advansee.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Sascha Hauer 提交于
We used to enable/disable the PWM only by switching the clock on or off. Instead, use the dedicated register bits. These differ on different SoCs, so introduce a SoC specific function for this. Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de> Reviewed-by: NShawn Guo <shawn.guo@linaro.org> Reviewed-by: NBenoît Thébaudeau <benoit.thebaudeau@advansee.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Sascha Hauer 提交于
The PWM core makes sure that pwm_enable/disable are called only once. Still keep the enabled state since we will need it in pwm_config. Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de> Reviewed-by: NShawn Guo <shawn.guo@linaro.org> Reviewed-by: NBenoît Thébaudeau <benoit.thebaudeau@advansee.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Sascha Hauer 提交于
To cleanup the code and to make it easier to support different SoCs. Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de> Reviewed-by: NShawn Guo <shawn.guo@linaro.org> Reviewed-by: NBenoît Thébaudeau <benoit.thebaudeau@advansee.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
- 23 7月, 2012 1 次提交
-
-
由 Axel Lin 提交于
Signed-off-by: NAxel Lin <axel.lin@gmail.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
- 03 7月, 2012 1 次提交
-
-
由 Sascha Hauer 提交于
Move the driver to drivers/pwm/ and convert it to use the framework. Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de> [eric@eukrea.com: set chip.dev to prevent probe failure] [eric@eukrea.com: fix pwmchip_add return code test] Signed-off-by: NEric Bénard <eric@eukrea.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
- 01 2月, 2012 1 次提交
-
-
由 Richard Zhao 提交于
It's for migrating to generic clk framework API. Signed-off-by: NRichard Zhao <richard.zhao@linaro.org> Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de>
-
- 19 12月, 2011 1 次提交
-
-
由 Jason Chen 提交于
According to imx pwm RM, the real period value should be PERIOD value in PWMPR plus 2. PWMO (Hz) = PCLK(Hz) / (period +2) Signed-off-by: NJason Chen <jason.chen@linaro.org> Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de> Cc: stable@kernel.org
-
- 09 12月, 2011 1 次提交
-
-
由 Jason Chen 提交于
Signed-off-by: NJason Chen <jason.chen@linaro.org> Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de> Cc: stable@kernel.org
-
- 24 8月, 2011 1 次提交
-
-
由 Fabio Estevam 提交于
Instead of adding the check for MX53 CPU type, use the negative logic and let PWM to be configured for MX53 as well. Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com> Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de>
-
- 07 7月, 2011 1 次提交
-
-
由 H Hartley Sweeten 提交于
Signed-off-by: NH Hartley Sweeten <hsweeten@visionengravers.com> Cc: Sascha Hauer <kernel@pengutronix.de> Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de>
-
- 10 6月, 2011 1 次提交
-
-
由 Joe Perches 提交于
Several fixes as well where the +1 was missing. Done via coccinelle scripts like: @@ struct resource *ptr; @@ - ptr->end - ptr->start + 1 + resource_size(ptr) and some grep and typing. Mostly uncompiled, no cross-compilers. Signed-off-by: NJoe Perches <joe@perches.com> Signed-off-by: NJiri Kosina <jkosina@suse.cz>
-
- 13 1月, 2011 1 次提交
-
-
由 Arnaud Patard (Rtp) 提交于
This patch is adding support for pwm1 and pwm2 devices found on mx51. [ this patch has been tested with pwm-backlight driver ] Signed-off-by: NArnaud Patard <arnaud.patard@rtp-net.org> Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de>
-
- 30 3月, 2010 1 次提交
-
-
由 Tejun Heo 提交于
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h percpu.h is included by sched.h and module.h and thus ends up being included when building most .c files. percpu.h includes slab.h which in turn includes gfp.h making everything defined by the two files universally available and complicating inclusion dependencies. percpu.h -> slab.h dependency is about to be removed. Prepare for this change by updating users of gfp and slab facilities include those headers directly instead of assuming availability. As this conversion needs to touch large number of source files, the following script is used as the basis of conversion. http://userweb.kernel.org/~tj/misc/slabh-sweep.py The script does the followings. * Scan files for gfp and slab usages and update includes such that only the necessary includes are there. ie. if only gfp is used, gfp.h, if slab is used, slab.h. * When the script inserts a new include, it looks at the include blocks and try to put the new include such that its order conforms to its surrounding. It's put in the include block which contains core kernel includes, in the same order that the rest are ordered - alphabetical, Christmas tree, rev-Xmas-tree or at the end if there doesn't seem to be any matching order. * If the script can't find a place to put a new include (mostly because the file doesn't have fitting include block), it prints out an error message indicating which .h file needs to be added to the file. The conversion was done in the following steps. 1. The initial automatic conversion of all .c files updated slightly over 4000 files, deleting around 700 includes and adding ~480 gfp.h and ~3000 slab.h inclusions. The script emitted errors for ~400 files. 2. Each error was manually checked. Some didn't need the inclusion, some needed manual addition while adding it to implementation .h or embedding .c file was more appropriate for others. This step added inclusions to around 150 files. 3. The script was run again and the output was compared to the edits from #2 to make sure no file was left behind. 4. Several build tests were done and a couple of problems were fixed. e.g. lib/decompress_*.c used malloc/free() wrappers around slab APIs requiring slab.h to be added manually. 5. The script was run on all .h files but without automatically editing them as sprinkling gfp.h and slab.h inclusions around .h files could easily lead to inclusion dependency hell. Most gfp.h inclusion directives were ignored as stuff from gfp.h was usually wildly available and often used in preprocessor macros. Each slab.h inclusion directive was examined and added manually as necessary. 6. percpu.h was updated not to include slab.h. 7. Build test were done on the following configurations and failures were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my distributed build env didn't work with gcov compiles) and a few more options had to be turned off depending on archs to make things build (like ipr on powerpc/64 which failed due to missing writeq). * x86 and x86_64 UP and SMP allmodconfig and a custom test config. * powerpc and powerpc64 SMP allmodconfig * sparc and sparc64 SMP allmodconfig * ia64 SMP allmodconfig * s390 SMP allmodconfig * alpha SMP allmodconfig * um on x86_64 SMP allmodconfig 8. percpu.h modifications were reverted so that it could be applied as a separate patch and serve as bisection point. Given the fact that I had only a couple of failures from tests on step 6, I'm fairly confident about the coverage of this conversion patch. If there is a breakage, it's likely to be something in one of the arch headers which should be easily discoverable easily on most builds of the specific arch. Signed-off-by: NTejun Heo <tj@kernel.org> Guess-its-ok-by: NChristoph Lameter <cl@linux-foundation.org> Cc: Ingo Molnar <mingo@redhat.com> Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
-
- 04 12月, 2009 1 次提交
-
-
由 André Goddard Rosa 提交于
That is "success", "unknown", "through", "performance", "[re|un]mapping" , "access", "default", "reasonable", "[con]currently", "temperature" , "channel", "[un]used", "application", "example","hierarchy", "therefore" , "[over|under]flow", "contiguous", "threshold", "enough" and others. Signed-off-by: NAndré Goddard Rosa <andre.goddard@gmail.com> Signed-off-by: NJiri Kosina <jkosina@suse.cz>
-