Re: [PATCH] rtc: ds1307: Fix alarm programming for mcp794xx
On 10/23/2015 01:29 AM, Tero Kristo wrote: > mcp794xx alarm registers must be written in BCD format. However, the > alarm programming logic neglected this by adding one to the value > after bin2bcd conversion has been already done, writing bad values > to month register in case the alarm being set is in October. In this > case, the alarm month value becomes 0x0a instead of the expected 0x10. > > Fix by moving the +1 addition within the bin2bcd call also. > > Fixes: 1d1945d261a2 ("drivers/rtc/rtc-ds1307.c: add alarm support for > mcp7941x chips") > > Signed-off-by: Tero KristoNice catch. Acked-by: Nishanth Menon > --- > drivers/rtc/rtc-ds1307.c |4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c > index a705e64..188006c 100644 > --- a/drivers/rtc/rtc-ds1307.c > +++ b/drivers/rtc/rtc-ds1307.c > @@ -718,9 +718,9 @@ static int mcp794xx_set_alarm(struct device *dev, struct > rtc_wkalrm *t) > regs[3] = bin2bcd(t->time.tm_sec); > regs[4] = bin2bcd(t->time.tm_min); > regs[5] = bin2bcd(t->time.tm_hour); > - regs[6] = bin2bcd(t->time.tm_wday) + 1; > + regs[6] = bin2bcd(t->time.tm_wday + 1); > regs[7] = bin2bcd(t->time.tm_mday); > - regs[8] = bin2bcd(t->time.tm_mon) + 1; > + regs[8] = bin2bcd(t->time.tm_mon + 1); > > /* Clear the alarm 0 interrupt flag. */ > regs[6] &= ~MCP794XX_BIT_ALMX_IF; > -- Regards, Nishanth Menon -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2] ARM: dts: am335x-boneblack: Use pinctrl constants and AM33XX_IOPAD macro
Using constants for pinctrl allows better readability and removes redundancy with comments. AM33XX_IOPAD allows us to use part of the pinctrl physical address as in the TRM instead of an offset. Signed-off-by: Andrew F. Davis--- arch/arm/boot/dts/am335x-boneblack.dts | 44 +- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts index eadbba3..346f529 100644 --- a/arch/arm/boot/dts/am335x-boneblack.dts +++ b/arch/arm/boot/dts/am335x-boneblack.dts @@ -36,32 +36,32 @@ _pinmux { nxp_hdmi_bonelt_pins: nxp_hdmi_bonelt_pins { pinctrl-single,pins = < - 0x1b0 0x03 /* xdma_event_intr0, OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT */ - 0xa0 0x08 /* lcd_data0.lcd_data0, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xa4 0x08 /* lcd_data1.lcd_data1, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xa8 0x08 /* lcd_data2.lcd_data2, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xac 0x08 /* lcd_data3.lcd_data3, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xb0 0x08 /* lcd_data4.lcd_data4, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xb4 0x08 /* lcd_data5.lcd_data5, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xb8 0x08 /* lcd_data6.lcd_data6, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xbc 0x08 /* lcd_data7.lcd_data7, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xc0 0x08 /* lcd_data8.lcd_data8, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xc4 0x08 /* lcd_data9.lcd_data9, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xc8 0x08 /* lcd_data10.lcd_data10, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xcc 0x08 /* lcd_data11.lcd_data11, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xd0 0x08 /* lcd_data12.lcd_data12, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xd4 0x08 /* lcd_data13.lcd_data13, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xd8 0x08 /* lcd_data14.lcd_data14, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xdc 0x08 /* lcd_data15.lcd_data15, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ - 0xe0 0x00 /* lcd_vsync.lcd_vsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ - 0xe4 0x00 /* lcd_hsync.lcd_hsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ - 0xe8 0x00 /* lcd_pclk.lcd_pclk, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ - 0xec 0x00 /* lcd_ac_bias_en.lcd_ac_bias_en, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ + AM33XX_IOPAD(0x9b0, (PIN_OUTPUT_PULLDOWN | MUX_MODE3)) /* xdma_event_intr0 */ + AM33XX_IOPAD(0x8a0, (PIN_OUTPUT | MUX_MODE0)) /* lcd_data0.lcd_data0 */ + AM33XX_IOPAD(0x8a4, (PIN_OUTPUT | MUX_MODE0)) /* lcd_data1.lcd_data1 */ + AM33XX_IOPAD(0x8a8, (PIN_OUTPUT | MUX_MODE0)) /* lcd_data2.lcd_data2 */ + AM33XX_IOPAD(0x8ac, (PIN_OUTPUT | MUX_MODE0)) /* lcd_data3.lcd_data3 */ + AM33XX_IOPAD(0x8b0, (PIN_OUTPUT | MUX_MODE0)) /* lcd_data4.lcd_data4 */ + AM33XX_IOPAD(0x8b4, (PIN_OUTPUT | MUX_MODE0)) /* lcd_data5.lcd_data5 */ + AM33XX_IOPAD(0x8b8, (PIN_OUTPUT | MUX_MODE0)) /* lcd_data6.lcd_data6 */ + AM33XX_IOPAD(0x8bc, (PIN_OUTPUT | MUX_MODE0)) /* lcd_data7.lcd_data7 */ + AM33XX_IOPAD(0x8c0, (PIN_OUTPUT | MUX_MODE0)) /* lcd_data8.lcd_data8 */ + AM33XX_IOPAD(0x8c4, (PIN_OUTPUT | MUX_MODE0)) /* lcd_data9.lcd_data9 */ + AM33XX_IOPAD(0x8c8, (PIN_OUTPUT | MUX_MODE0)) /* lcd_data10.lcd_data10 */ + AM33XX_IOPAD(0x8cc, (PIN_OUTPUT | MUX_MODE0)) /* lcd_data11.lcd_data11 */ + AM33XX_IOPAD(0x8d0, (PIN_OUTPUT | MUX_MODE0)) /* lcd_data12.lcd_data12 */ + AM33XX_IOPAD(0x8d4, (PIN_OUTPUT | MUX_MODE0)) /* lcd_data13.lcd_data13 */ + AM33XX_IOPAD(0x8d8, (PIN_OUTPUT | MUX_MODE0)) /* lcd_data14.lcd_data14 */ + AM33XX_IOPAD(0x8dc, (PIN_OUTPUT | MUX_MODE0))
[GIT PULL] omap soc clean-up for v4.4 merge window
The following changes since commit 049e6dde7e57f0054fdc49102e7ef4830c698b46: Linux 4.3-rc4 (2015-10-04 16:57:17 +0100) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap tags/omap-for-v4.4/soc-clean-up for you to fetch changes up to ef4da0c1c8f3ca3e9dcf6936bf687a32cd62f293: Merge tag 'for-v4.4/omap-hwmod-cleanup-a' of git://git.kernel.org/pub/scm/linux/kernel/git/pjw/omap-pending into omap-for-v4.4/soc (2015-10-23 18:13:38 -0700) Minimal omap SoC changes for v4.4 merge window. As we've spent quite a bit of time sorting out regressions for v4.3 and are very late with these, I've kept the changes down to minimum: - A series of timer changes from Felipe Balbi to get us closer to moving the remaining timer code into drivers - A series of hwmod clean-up changes queued by Paul Walmsley - SoC detection clean-up to use soc_is instead of cpu_is as CPU is within the SoC and is confusing naming. The rest we can now change along with the other clean-up Felipe Balbi (13): arm: omap2: timer: always define omap4_local_timer_init arm: omap2: timer: get rid of obfuscating macros arm: omap2: timer: add a gptimer argument to sync32k_timer_init() arm: omap2: timer: remove __omap_gptimer_init() arm: omap2: timer: provide generic sync32k_timer_init function arm: omap2: timer: move realtime_counter_init() around arm: omap2: timer: always call clocksource_of_init() when DT arm: omap2: timer: rename omap_sync32k_timer_init() clocksource: add TI 32.768 Hz counter driver arm: omap2+: select 32k clocksource driver arm: omap2: timer: limit hwmod usage to non-DT boots clocksource: ti-32k: make it depend on GENERIC_CLOCKSOURCE arm: omap2: board-generic: use omap4_local_timer_init for AM437x Franklin S Cooper Jr (2): ARM: DRA7/AM335x/AM437x: hwmod: Remove elm address space from hwmod data ARM: DRA7/AM335x/AM437x: hwmod: Remove gpmc address space from hwmod data Javier Martinez Canillas (1): ARM: OMAP: Remove duplicated operand in OR operation Keerthy (1): ARM: OMAP: Change all cpu_is_* occurences to soc_is_* for id.c Suman Anna (3): ARM: OMAP4: hwmod data: Remove spinlock hwmod addrs ARM: DRA7: hwmod data: Remove spinlock hwmod addrs ARM: OMAP3: hwmod data: Remove legacy mailbox data and addrs Tony Lindgren (3): ARM: OMAP2+: Rename cpu_is macros to soc_is Merge branch 'for-tony' of git://git.kernel.org/.../balbi/usb into omap-for-v4.4/soc Merge tag 'for-v4.4/omap-hwmod-cleanup-a' of git://git.kernel.org/.../pjw/omap-pending into omap-for-v4.4/soc arch/arm/mach-omap2/Kconfig| 1 + arch/arm/mach-omap2/board-generic.c| 12 +- arch/arm/mach-omap2/board-ldp.c| 2 +- arch/arm/mach-omap2/board-rx51.c | 2 +- arch/arm/mach-omap2/common.h | 3 +- arch/arm/mach-omap2/id.c | 30 ++-- .../omap_hwmod_33xx_43xx_interconnect_data.c | 20 --- arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 29 --- arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 10 -- arch/arm/mach-omap2/omap_hwmod_54xx_data.c | 3 +- arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 30 arch/arm/mach-omap2/soc.h | 195 +++-- arch/arm/mach-omap2/timer.c| 162 - drivers/clocksource/Kconfig| 8 + drivers/clocksource/Makefile | 1 + drivers/clocksource/timer-ti-32k.c | 126 + 16 files changed, 339 insertions(+), 295 deletions(-) create mode 100644 drivers/clocksource/timer-ti-32k.c -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/4] arm: omap2+: add missing HWMOD_NO_IDLEST in 81xx hwmod data
Hi, 2015-10-24 3:21 GMT+02:00 Tony Lindgren: > > Hi, > > * Neil Armstrong [151022 02:19]: > > Add missing HWMOD_NO_IDLEST hwmod flag for entries no > > having omap4 clkctrl values. > > Have you checked this is the case both in dm814x and dm816x TRM? > Also the documentation may not be complete FYI, might be also > worth checking the legacy TI kernel tree to be sure. > > Regards, > > Tony > > > Cc: Brian Hutchinson > > Signed-off-by: Neil Armstrong > > --- > > arch/arm/mach-omap2/omap_hwmod_81xx_data.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/arch/arm/mach-omap2/omap_hwmod_81xx_data.c > > b/arch/arm/mach-omap2/omap_hwmod_81xx_data.c > > index b1288f5..6256052 100644 > > --- a/arch/arm/mach-omap2/omap_hwmod_81xx_data.c > > +++ b/arch/arm/mach-omap2/omap_hwmod_81xx_data.c > > @@ -144,6 +144,7 @@ static struct omap_hwmod dm81xx_l4_ls_hwmod = { > > .name = "l4_ls", > > .clkdm_name = "alwon_l3s_clkdm", > > .class = _hwmod_class, > > + .flags = HWMOD_NO_IDLEST, > > }; In DM814x TRM, the CM_ALWON_L3_SLOW_CLKSTCTRL does not have IDLEST field. Same in DM816x TRM. > > > > /* > > @@ -155,6 +156,7 @@ static struct omap_hwmod dm81xx_l4_hs_hwmod = { > > .name = "l4_hs", > > .clkdm_name = "alwon_l3_med_clkdm", > > .class = _hwmod_class, > > + .flags = HWMOD_NO_IDLEST, > > }; In DM814x TRM, the CM_ALWON_L3_MED_CLKSTCTRL does not have IDLEST field. Same in DM816x TRM. > > > > /* L3 slow -> L4 ls peripheral interface running at 125MHz */ > > @@ -850,6 +852,7 @@ static struct omap_hwmod dm816x_emac0_hwmod = { > > .name = "emac0", > > .clkdm_name = "alwon_ethernet_clkdm", > > .class = _emac_hwmod_class, > > + .flags = HWMOD_NO_IDLEST, > > }; In this particular case, the IDLEST is handled in the MDIO hwmod. > > > > static struct omap_hwmod_ocp_if dm81xx_l4_hs__emac0 = { > > -- > > 1.9.1 I'll check the TI tree to be sure... Regards, Neil -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html