Re: [PATCH] rtc: ds1307: Fix alarm programming for mcp794xx

2015-10-24 Thread Nishanth Menon
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 Kristo 

Nice 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

2015-10-24 Thread Andrew F. Davis
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

2015-10-24 Thread Tony Lindgren
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

2015-10-24 Thread Neil Armstrong
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