| Age | Commit message (Collapse) | Author | Files | Lines |
|
Fix RTC write bit as per application manual
Cc: [email protected] # 4.1+
Signed-off-by: Mitja Spes <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Add a sentinel to ab85xx_rtc_ids[] in order to fix the following error:
drivers/rtc/rtc-ab8500: struct platform_device_id is 24 bytes. The last of 2 is:
0x61 0x62 0x38 0x35 0x34 0x30 0x2d 0x72 0x74 0x63 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x8c
FATAL: drivers/rtc/rtc-ab8500: struct platform_device_id is not terminated with a NULL entry!
Reported-by: Andrey Ryabinin <[email protected]>
Reported-by: Olof's autobuilder <[email protected]>
Signed-off-by: Fabio Estevam <[email protected]>
Reviewed-by: Krzysztof Kozlowski <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Remove unused variable 'res' and fix the following build warning:
drivers/rtc/rtc-ds1374.c:667:6: warning: unused variable 'res' [-Wunused-variable]
Reported-by: Olof's autobuilder <[email protected]>
Signed-off-by: Fabio Estevam <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
These platform drivers have a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Javier Martinez Canillas <[email protected]>
Acked-by: Andrew Lunn <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
These platform drivers have a platform device ID table but the module
alias information is not created so module autoloading will not work.
Signed-off-by: Javier Martinez Canillas <[email protected]>
Reviewed-by: Krzysztof Kozlowski <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Configure the clock source to external clock if available.
External clock is preferred as it can be ticking during suspend.
Signed-off-by: Keerthy <[email protected]>
Acked-by: Tony Lindgren <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The rtc can be clocked by an internal 32K clock. Adding the support
to enable the same.
Signed-off-by: Keerthy <[email protected]>
Acked-by: Tony Lindgren <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
According to datasheet, the S2MPS13X and S2MPS14X should update write
buffer via setting WUDR bit to high after ctrl register is written.
If not, ALARM interrupt of rtc-s5m doesn't happen first time when i use
tools/testing/selftests/timers/rtctest.c test program and hour format is
used to 12 hour mode in Odroid-XU3 board.
One more issue is the RTC doesn't keep time on Odroid-XU3 board when i
turn on board after power off even if RTC battery is connected. It can
be solved as setting WUDR & RUDR bits to high at the same time after
RTC_CTRL register is written. It's same with condition of only writing
ALARM registers, so this is for only S2MPS14 and we should set WUDR &
A_UDR bits to high on S2MPS13.
I can't find any reasonable description about this like fix from
datasheet, but can find similar codes from rtc driver source of
hardkernel kernel and vendor kernel.
Signed-off-by: Joonyoung Shim <[email protected]>
Cc: <[email protected]> # v3.16
Reviewed-by: Krzysztof Kozlowski <[email protected]>
Tested-by: Krzysztof Kozlowski <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Add support for RTC controller found on Xilinx Zynq Ultrascale+ MPSoC
platform.
Signed-off-by: Suneel Garapati <[email protected]>
Acked-by: Moritz Fischer <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The RTC month value is 1-indexed, but the kernel assumes it is 0-indexed.
This may result in the RTC not rolling over correctly.
Signed-off-by: Bibek Basu <[email protected]>
Signed-off-by: Felix Janda <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
SA1100 and PXA differ only in register offsets which are currently
hardcoded in a machine specific header. Some arm64 platforms (PXA1928)
have this RTC block as well (and not the PXA270 variant).
Convert the driver to use ioremap and set the register offsets dynamically.
Since we are touching all the register accesses, convert them all to
readl_relaxed/writel_relaxed.
Signed-off-by: Rob Herring <[email protected]>
Acked-by: Robert Jarzmik <[email protected]>
Cc: Alessandro Zummo <[email protected]>
Cc: Alexandre Belloni <[email protected]>
Cc: [email protected]
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Currently, the rtc-sa1100 and rtc-pxa drivers co-exist as rtc-pxa has a
superset of functionality. Having 2 drivers sharing the same memory
resource is not allowed by the driver model if resources are properly
declared. This problem was avoided by not adding memory resources to the
SA1100 RTC driver, but that prevents clean-up of the SA1100 driver.
This commit converts the PXA RTC to use the exported SA1100 RTC
functions. Now the sa1100-rtc and pxa-rtc devices are mutually
exclusive, so we must remove the sa1100-rtc from pxa27x and pxa3xx.
Signed-off-by: Rob Herring <[email protected]>
Cc: Daniel Mack <[email protected]>
Cc: Haojian Zhuang <[email protected]>
Cc: Robert Jarzmik <[email protected]>
Cc: Russell King <[email protected]>
Cc: Alessandro Zummo <[email protected]>
Cc: Alexandre Belloni <[email protected]>
Cc: [email protected]
Cc: [email protected]
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Factor out the RTC initialization from the platform device specific
parts in order to share the RTC device ops with other drivers.
Specifically, it will be shared with rtc-pxa driver.
Signed-off-by: Rob Herring <[email protected]>
Cc: Robert Jarzmik <[email protected]>
Cc: Russell King <[email protected]>
Cc: Alessandro Zummo <[email protected]>
Cc: Alexandre Belloni <[email protected]>
Cc: [email protected]
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
If ds3232 work on some platform that is not implementing
irq_set_wake, ds3232 will get a WARNING trace in resume.
So fix ds3232->suspended state to false when irq_set_irq_wake
return error.
WARNING: CPU: 0 PID: 729 at kernel/irq/manage.c:604 irq_set_irq_wake+0x4b/0x8c()
Unbalanced IRQ 201 wake disable
Modules linked in:
CPU: 0 PID: 729 Comm: sh Not tainted 3.12.19-rt30+ #25
[<800107d9>] (unwind_backtrace+0x1/0x88) from [<8000e4ef>] (show_stack+0xb/0xc)
[<8000e4ef>] (show_stack+0xb/0xc) from [<802b5fa9>] (dump_stack+0x4d/0x60)
[<802b5fa9>] (dump_stack+0x4d/0x60) from [<800186dd>] (warn_slowpath_common+0x45/0x64)
[<800186dd>] (warn_slowpath_common+0x45/0x64) from [<80018717>] (warn_slowpath_fmt+0x1b/0x24)
[<80018717>] (warn_slowpath_fmt+0x1b/0x24) from [<8003a8d3>] (irq_set_irq_wake+0x4b/0x8c)
[<8003a8d3>] (irq_set_irq_wake+0x4b/0x8c) from [<80204fcb>] (ds3232_resume+0x2d/0x36)
[<80204fcb>] (ds3232_resume+0x2d/0x36) from [<801954c7>] (dpm_run_callback.isra.13+0xb/0x28)
[<801954c7>] (dpm_run_callback.isra.13+0xb/0x28) from [<80195b1b>] (device_resume+0x7b/0xa2)
[<80195b1b>] (device_resume+0x7b/0xa2) from [<80195f0f>] (dpm_resume+0xbb/0x19c)
[<80195f0f>] (dpm_resume+0xbb/0x19c) from [<801960d9>] (dpm_resume_end+0x9/0x12)
[<801960d9>] (dpm_resume_end+0x9/0x12) from [<80037e1d>] (suspend_devices_and_enter+0x17d/0x1d0)
[<80037e1d>] (suspend_devices_and_enter+0x17d/0x1d0) from [<80037ee1>] (pm_suspend+0x71/0x128)
[<80037ee1>] (pm_suspend+0x71/0x128) from [<80037449>] (state_store+0x6d/0x80)
[<80037449>] (state_store+0x6d/0x80) from [<800af4d5>] (sysfs_write_file+0x9f/0xde)
[<800af4d5>] (sysfs_write_file+0x9f/0xde) from [<8007a437>] (vfs_write+0x7b/0x104)
[<8007a437>] (vfs_write+0x7b/0x104) from [<8007a7f7>] (SyS_write+0x27/0x48)
[<8007a7f7>] (SyS_write+0x27/0x48) from [<8000c121>] (ret_fast_syscall+0x1/0x44)
Signed-off-by: Wang Dongsheng <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
It's unnecessary the code that assigns info->rtc_clk to NULL in
s3c_rtc_remove.
Signed-off-by: Joonyoung Shim <[email protected]>
Reviewed-by: Krzysztof Kozlowski <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
It's missed to call clk_unprepare() about info->rtc_src_clk in
s3c_rtc_remove and to call clk_disable_unprepare about info->rtc_clk in
error routine of s3c_rtc_probe.
Signed-off-by: Joonyoung Shim <[email protected]>
Reviewed-by: Krzysztof Kozlowski <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The clock enable/disable codes for alarm have been removed from
commit 24e1455493da ("drivers/rtc/rtc-s3c.c: delete duplicate clock
control") and the clocks are disabled even if alarm is set, so alarm
interrupt can't happen.
The s3c_rtc_setaie function can be called several times with 'enabled'
argument having same value, so it needs to check whether clocks are
enabled or not.
Signed-off-by: Joonyoung Shim <[email protected]>
Cc: <[email protected]> # v4.1
Reviewed-by: Krzysztof Kozlowski <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Definitions from linux/platform_data/atmel.h are not used, remove the
include.
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
This driver is using device tree but is not including of.h
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
According to the Armada38x functional errata FE-3124064, writing to
the RTC TIME register may fail. As a workaround, after writing to RTC
TIME register, issue a dummy write of 0x0 twice to the RTC Status
register. This is the updated implementation of the Errata that
eliminates the need of the long 100ms delay during the RTC set time
procedure.
[[email protected]]: removed the mutex and use the
spinlock again
Signed-off-by: Nadav Haklai <[email protected]>
Reviewed-by: Neta Zur Hershkovits <[email protected]>
Signed-off-by: Gregory CLEMENT <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Check time validity when reading time as this is when we need to know.
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
RX8025_BIT_CTRL2_CTFG was set to 0 only when it was already 0.
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
irq_freq is already initialized to 1 in rtc_device_register()
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Wait for the user to set the time to reset the validity bits. Until then,
the time may be invalid.
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
rx8025_init_client is modifying ctrl[0] and writing it to RX8025_REG_CTRL2
but ctrl[0] is actually RX8025_REG_CTRL1.
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Instead of bailing out, disable alarms and continue when
devm_request_threaded_irq() fails. This allows to still provide some
functionality.
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Remove useless error messages, at that point, the user already knows
something went wrong but will not be able to do anything about it anyway.
It is also highly unlikely that some registers are readable/writable
but not some other ones.
Also, transform rx8025_read_reg to be more resemblant to
i2c_smbus_read_byte_data()
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Stop setting the time to epoch when it is invalid. The proper way to handle
that is to return an error when it is invalid instead of returning an
incorrect value.
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The datasheet specifies that transfer mode must be 0 for write and either
0x4 (simplified read) or 0 (standard read). 0x8 is not specified, use
standard mode.
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The hardware is only capable of handling dates between 2000 and 2099,
enforce that.
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Use BIT() instead of hand coding.
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
It is useless to print a message when probe fails as the user is already
aware that it failed.
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Use devm_request_threaded_irq() so it is not necessary to call free_irq()
explicitly.
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The driver currently emulates the concept of threaded IRQ using a
workqueue, switch to threaded IRQ instead.
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Remove the useless includes and order the remaining ones alphabetically.
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller side in fs/sysfs/file.c
Signed-off-by: Vladimir Zapolskiy <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller side in fs/sysfs/file.c
Signed-off-by: Vladimir Zapolskiy <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller side in fs/sysfs/file.c
Signed-off-by: Vladimir Zapolskiy <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller side in fs/sysfs/file.c
Spinlock acquisition/release is moved out of the loop body to get
atomic states of NVRAM reading and writing operations.
Signed-off-by: Vladimir Zapolskiy <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller side in fs/sysfs/file.c
Signed-off-by: Vladimir Zapolskiy <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller side in fs/sysfs/file.c
Signed-off-by: Vladimir Zapolskiy <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller side in fs/sysfs/file.c
The change enables burst mode of access to SRAM for any read()/write()
operations, it is worth to mention that this may influence on
userspace, for instance prior to the change
read(fd, buf, 1);
read(fd, buf + 1, 1);
and
read(fd, buf, 2);
sequences of syscalls over DS1511's sysfs "nvram" fd led to different
DS1511 state changes and/or buf content, if some userspace applications
are written specifically for DS1511 and exploit this strange
"feature", they may be impacted.
Also the change corrects NVRAM size accessible to userspace from 255
bytes to 256 bytes.
Signed-off-by: Vladimir Zapolskiy <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller side in fs/sysfs/file.c
Signed-off-by: Vladimir Zapolskiy <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller side in fs/sysfs/file.c
Signed-off-by: Vladimir Zapolskiy <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller size in fs/sysfs/file.c
Signed-off-by: Vladimir Zapolskiy <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller side in fs/sysfs/file.c
Signed-off-by: Vladimir Zapolskiy <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Commit dca1a4b5ff6e ("clk: at91: keep slow clk enabled to prevent system
hang") added a workaround for the slow clock as it is not properly handled
by its users.
Get and use the slow clock as it is necessary for the at91rm9200 rtc.
Acked-by: Boris Brezillon <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
drivers/rtc/rtc-gemini.c:151:1-3: WARNING: PTR_ERR_OR_ZERO can be used
Use PTR_ERR_OR_ZERO rather than if(IS_ERR(...)) + PTR_ERR
Generated by: scripts/coccinelle/api/ptr_ret.cocci
Signed-off-by: Fengguang Wu <[email protected]>
Signed-off-by: Viresh Kumar <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
IS_ERR(_OR_NULL) already contain an 'unlikely' compiler flag and there
is no need to do that again from its callers. Drop it.
gemini driver was using likely() for a failure case while the rtc driver
is getting registered. That looks wrong and it should really be
unlikely. But because we are killing all the unlikely() flags, lets kill
that too.
Signed-off-by: Viresh Kumar <[email protected]>
Acked-by: Hans Ulli Kroll <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Sort included headers alphabetically.
Signed-off-by: Alexandre Belloni <[email protected]>
Acked-by: Boris Brezillon <[email protected]>
Acked-by: Nicolas Ferre <[email protected]>
|