1. 09 10月, 2013 4 次提交
    • P
      ARM: OMAP2: RX-51: Add missing max_current to rx51_lp5523_led_config · d1f1ca36
      Pali Rohár 提交于
      File drivers/leds/leds-lp55xx-common.c refuse to change led_current sysfs
      attribute if value is higher than max_current specified in board file. By default
      global C variables are zero, so changing always failed. This patch adding missing
      max_current and setting it to max safe value 100 (10 mA).
      
      It is unclear which commit exactly caused this regression as the lp5523
      driver was broken and was hiding the platform data breakage. Now
      the driver is fixed so this should be fixed as well.
      Signed-off-by: NPali Rohár <pali.rohar@gmail.com>
      Signed-off-by: NJoerg Reisenweber <joerg@openmoko.org>
      [tony@atomide.com: updated comments to describe regression]
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      d1f1ca36
    • S
      ARM: mach-omap2: board-generic: fix undefined symbol · 0b8214fe
      Simon Barth 提交于
      Since dra7 reuses the  function 'omap5_realtime_timer_init' in
      arch/arm/mach-omap2/board-generic.c as timer init function, it has to be
      built for this SoC as well.
      Signed-off-by: NSimon Barth <Simon.Pe.Barth@gmail.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      0b8214fe
    • T
      ARM: dts: Fix pinctrl mask for omap3 · d623a0e1
      Tony Lindgren 提交于
      The wake-up interrupt bit is available on omap3/4/5 processors
      unlike what we claim. Without fixing it we cannot use it on
      omap3 and the system configured for wake-up events will just
      hang on wake-up.
      
      Cc: Grygorii Strashko <grygorii.strashko@ti.com>
      Cc: Benoît Cousson <bcousson@baylibre.com>
      Cc: devicetree@vger.kernel.org
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      d623a0e1
    • N
      ARM: OMAP3: Fix hardware detection for omap3630 when booted with device tree · 016c12d2
      Nishanth Menon 提交于
      SoC family definitions at the moment are reactive to board needs
      as a result, beagle-xm would matchup with ti,omap3 which invokes
      omap3430_init_early instead of omap3630_init_early. Obviously, this is
      the wrong behavior.
      
      With clock node dts conversion, we get the following warnings before
      system hangs as a result and 3630 based platforms fails to boot
      (uart4 clocks are only present in OMAP3630 and not present in
      OMAP3430):
      
      ...
      omap_hwmod: uart4: cannot clk_get main_clk uart4_fck
      omap_hwmod: uart4: cannot _init_clocks
      
      WARNING: CPU: 0 PID: 1 at arch/arm/mach-omap2/omap_hwmod.c:2434
      _init+0x6c/0x80()
      omap_hwmod: uart4: couldn't init clocks
      ...
      
      WARNING: CPU: 0 PID: 1 at arch/arm/mach-omap2/omap_hwmod.c:2126
      _enable+0x254/0x280()
      omap_hwmod: timer12: enabled state can only be entered from
      initialized, idle, or disabled state
      ...
      
      WARNING: CPU: 0 PID: 46 at arch/arm/mach-omap2/omap_hwmod.c:2224
      _idle+0xd4/0xf8()
      omap_hwmod: timer12: idle state can only be entered from enabled state
      
      WARNING: CPU: 0 PID: 1 at arch/arm/mach-omap2/omap_hwmod.c:2126
      _enable+0x254/0x280()
      omap_hwmod: uart4: enabled state can only be entered from
      initialized, idle, or disabled state
      
      So, add specific compatiblity for 3630 to allow match for Beagle-XM
      platform.
      Signed-off-by: NNishanth Menon <nm@ti.com>
      [tony@atomide.com: left out ti,omap343x, updated comments]
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      016c12d2
  2. 04 10月, 2013 1 次提交
    • A
      ARM: OMAP2: gpmc-onenand: fix sync mode setup with DT · 1dc1c338
      Aaro Koskinen 提交于
      With DT-based boot, the GPMC OneNAND sync mode setup does not work
      correctly. During the async mode setup, sync flags gets incorrectly
      set in the onenand_async data and the system crashes during the async
      setup. Also, the sync mode never gets set in gpmc_onenand_data->flags, so
      even without the crash, the actual sync mode setup would never be called.
      
      The patch fixes this by adjusting the gpmc_onenand_data->flags when the
      data is read from the DT. Also while doing this we force the onenand_async
      to be always async.
      
      The patch enables to use the following DTS chunk (that should correspond
      the arch/arm/mach-omap2/board-rm680.c board file setup) with Nokia N950,
      which currently crashes with 3.12-rc1. The crash output can be also
      found below.
      
      &gpmc {
      	ranges = <0 0 0x04000000 0x20000000>;
      
      	onenand@0,0 {
      		#address-cells = <1>;
      		#size-cells = <1>;
      		reg = <0 0 0x20000000>;
      
      		gpmc,sync-read;
      		gpmc,sync-write;
      		gpmc,burst-length = <16>;
      		gpmc,burst-read;
      		gpmc,burst-wrap;
      		gpmc,burst-write;
      		gpmc,device-width = <2>;
      		gpmc,mux-add-data = <2>;
      		gpmc,cs-on-ns = <0>;
      		gpmc,cs-rd-off-ns = <87>;
      		gpmc,cs-wr-off-ns = <87>;
      		gpmc,adv-on-ns = <0>;
      		gpmc,adv-rd-off-ns = <10>;
      		gpmc,adv-wr-off-ns = <10>;
      		gpmc,oe-on-ns = <15>;
      		gpmc,oe-off-ns = <87>;
      		gpmc,we-on-ns = <0>;
      		gpmc,we-off-ns = <87>;
      		gpmc,rd-cycle-ns = <112>;
      		gpmc,wr-cycle-ns = <112>;
      		gpmc,access-ns = <81>;
      		gpmc,page-burst-access-ns = <15>;
      		gpmc,bus-turnaround-ns = <0>;
      		gpmc,cycle2cycle-delay-ns = <0>;
      		gpmc,wait-monitoring-ns = <0>;
      		gpmc,clk-activation-ns = <5>;
      		gpmc,wr-data-mux-bus-ns = <30>;
      		gpmc,wr-access-ns = <81>;
      		gpmc,sync-clk-ps = <15000>;
      	};
      };
      
      [    1.467559] GPMC CS0: cs_on     :   0 ticks,   0 ns (was   0 ticks)   0 ns
      [    1.474822] GPMC CS0: cs_rd_off :   1 ticks,   5 ns (was  24 ticks)   5 ns
      [    1.482116] GPMC CS0: cs_wr_off :  14 ticks,  71 ns (was  24 ticks)  71 ns
      [    1.489349] GPMC CS0: adv_on    :   0 ticks,   0 ns (was   0 ticks)   0 ns
      [    1.496582] GPMC CS0: adv_rd_off:   3 ticks,  15 ns (was   3 ticks)  15 ns
      [    1.503845] GPMC CS0: adv_wr_off:   3 ticks,  15 ns (was   3 ticks)  15 ns
      [    1.511077] GPMC CS0: oe_on     :   3 ticks,  15 ns (was   4 ticks)  15 ns
      [    1.518310] GPMC CS0: oe_off    :   1 ticks,   5 ns (was  24 ticks)   5 ns
      [    1.525543] GPMC CS0: we_on     :   0 ticks,   0 ns (was   0 ticks)   0 ns
      [    1.532806] GPMC CS0: we_off    :   8 ticks,  40 ns (was  24 ticks)  40 ns
      [    1.540039] GPMC CS0: rd_cycle  :   4 ticks,  20 ns (was  29 ticks)  20 ns
      [    1.547302] GPMC CS0: wr_cycle  :   4 ticks,  20 ns (was  29 ticks)  20 ns
      [    1.554504] GPMC CS0: access    :   0 ticks,   0 ns (was  23 ticks)   0 ns
      [    1.561767] GPMC CS0: page_burst_access:   0 ticks,   0 ns (was   3 ticks)   0 ns
      [    1.569641] GPMC CS0: bus_turnaround:   0 ticks,   0 ns (was   0 ticks)   0 ns
      [    1.577270] GPMC CS0: cycle2cycle_delay:   0 ticks,   0 ns (was   0 ticks)   0 ns
      [    1.585144] GPMC CS0: wait_monitoring:   0 ticks,   0 ns (was   0 ticks)   0 ns
      [    1.592834] GPMC CS0: clk_activation:   0 ticks,   0 ns (was   0 ticks)   0 ns
      [    1.600463] GPMC CS0: wr_data_mux_bus:   5 ticks,  25 ns (was   8 ticks)  25 ns
      [    1.608154] GPMC CS0: wr_access :   0 ticks,   0 ns (was  23 ticks)   0 ns
      [    1.615386] GPMC CS0 CLK period is 5 ns (div 1)
      [    1.625122] Unhandled fault: external abort on non-linefetch (0x1008) at 0xf009e442
      [    1.633178] Internal error: : 1008 [#1] ARM
      [    1.637573] Modules linked in:
      [    1.640777] CPU: 0 PID: 1 Comm: swapper Not tainted 3.12.0-rc1-n9xx-los.git-5318619-00006-g4baa700-dirty #26
      [    1.651123] task: ef04c000 ti: ef050000 task.ti: ef050000
      [    1.656799] PC is at gpmc_onenand_setup+0x98/0x1e0
      [    1.661865] LR is at gpmc_cs_set_timings+0x494/0x5a4
      [    1.667083] pc : [<c002e040>]    lr : [<c001f384>]    psr: 60000113
      [    1.667083] sp : ef051d10  ip : ef051ce0  fp : ef051d94
      [    1.679138] r10: c0caaf60  r9 : ef050000  r8 : ef18b32c
      [    1.684631] r7 : f0080000  r6 : c0caaf60  r5 : 00000000  r4 : f009e400
      [    1.691497] r3 : f009e442  r2 : 80050000  r1 : 00000014  r0 : 00000000
      [    1.698333] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
      [    1.706024] Control: 10c5387d  Table: af290019  DAC: 00000015
      [    1.712066] Process swapper (pid: 1, stack limit = 0xef050240)
      [    1.718200] Stack: (0xef051d10 to 0xef052000)
      [    1.722778] 1d00:                                     00004000 00001402 00000000 00000005
      [    1.731384] 1d20: 00000047 00000000 0000000f 0000000f 00000000 00000028 0000000f 00000005
      [    1.739990] 1d40: 00000000 00000000 00000014 00000014 00000000 00000000 00000000 00000000
      [    1.748596] 1d60: 00000000 00000019 00000000 00000000 ef18b000 ef099c50 c0c8cb30 00000000
      [    1.757171] 1d80: c0488074 c048f868 ef051dcc ef051d98 c024447c c002dfb4 00000000 c048f868
      [    1.765777] 1da0: 00000000 00000000 c010e4a4 c0dbbb7c c0c8cb40 00000000 c0ca2500 c0488074
      [    1.774383] 1dc0: ef051ddc ef051dd0 c01fd508 c0244370 ef051dfc ef051de0 c01fc204 c01fd4f4
      [    1.782989] 1de0: c0c8cb40 c0ca2500 c0c8cb74 00000000 ef051e1c ef051e00 c01fc3b0 c01fc104
      [    1.791595] 1e00: ef0983bc 00000000 c0ca2500 c01fc31c ef051e44 ef051e20 c01fa794 c01fc328
      [    1.800201] 1e20: ef03634c ef0983b0 ef27d534 c0ca2500 ef27d500 c0c9a2f8 ef051e54 ef051e48
      [    1.808807] 1e40: c01fbcfc c01fa744 ef051e84 ef051e58 c01fb838 c01fbce4 c0411df8 c0caa040
      [    1.817413] 1e60: ef051e84 c0ca2500 00000006 c0caa040 00000066 c0488074 ef051e9c ef051e88
      [    1.825988] 1e80: c01fca30 c01fb768 c04975b8 00000006 ef051eac ef051ea0 c01fd728 c01fc9bc
      [    1.834594] 1ea0: ef051ebc ef051eb0 c048808c c01fd6e4 ef051f4c ef051ec0 c0008888 c0488080
      [    1.843200] 1ec0: 0000006f c046bae8 00000000 00000000 ef051efc ef051ee0 ef051f04 ef051ee8
      [    1.851806] 1ee0: c046d400 c0181218 c046d410 c18da8d5 c036a8e4 00000066 ef051f4c ef051f08
      [    1.860412] 1f00: c004b9a8 c046d41c c048f840 00000006 00000006 c046b488 00000000 c043ec08
      [    1.869018] 1f20: ef051f4c c04975b8 00000006 c0caa040 00000066 c046d410 c048f85c c048f868
      [    1.877593] 1f40: ef051f94 ef051f50 c046db8c c00087a0 00000006 00000006 c046d410 ffffffff
      [    1.886199] 1f60: ffffffff ffffffff ffffffff 00000000 c0348fd0 00000000 00000000 00000000
      [    1.894805] 1f80: 00000000 00000000 ef051fac ef051f98 c0348fe0 c046daa8 00000000 00000000
      [    1.903411] 1fa0: 00000000 ef051fb0 c000e7f8 c0348fdc 00000000 00000000 00000000 00000000
      [    1.912017] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      [    1.920623] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000 ffffffff ffffffff
      [    1.929199] Backtrace:
      [    1.931793] [<c002dfa8>] (gpmc_onenand_setup+0x0/0x1e0) from [<c024447c>] (omap2_onenand_probe+0x118/0x49c)
      [    1.942047] [<c0244364>] (omap2_onenand_probe+0x0/0x49c) from [<c01fd508>] (platform_drv_probe+0x20/0x24)
      [    1.952117]  r8:c0488074 r7:c0ca2500 r6:00000000 r5:c0c8cb40 r4:c0dbbb7c
      [    1.959197] [<c01fd4e8>] (platform_drv_probe+0x0/0x24) from [<c01fc204>] (driver_probe_device+0x10c/0x224)
      [    1.969360] [<c01fc0f8>] (driver_probe_device+0x0/0x224) from [<c01fc3b0>] (__driver_attach+0x94/0x98)
      [    1.979125]  r7:00000000 r6:c0c8cb74 r5:c0ca2500 r4:c0c8cb40
      [    1.985107] [<c01fc31c>] (__driver_attach+0x0/0x98) from [<c01fa794>] (bus_for_each_dev+0x5c/0x90)
      [    1.994506]  r6:c01fc31c r5:c0ca2500 r4:00000000 r3:ef0983bc
      [    2.000488] [<c01fa738>] (bus_for_each_dev+0x0/0x90) from [<c01fbcfc>] (driver_attach+0x24/0x28)
      [    2.009735]  r6:c0c9a2f8 r5:ef27d500 r4:c0ca2500
      [    2.014587] [<c01fbcd8>] (driver_attach+0x0/0x28) from [<c01fb838>] (bus_add_driver+0xdc/0x260)
      [    2.023742] [<c01fb75c>] (bus_add_driver+0x0/0x260) from [<c01fca30>] (driver_register+0x80/0xfc)
      [    2.033081]  r8:c0488074 r7:00000066 r6:c0caa040 r5:00000006 r4:c0ca2500
      [    2.040161] [<c01fc9b0>] (driver_register+0x0/0xfc) from [<c01fd728>] (__platform_driver_register+0x50/0x64)
      [    2.050476]  r5:00000006 r4:c04975b8
      [    2.054260] [<c01fd6d8>] (__platform_driver_register+0x0/0x64) from [<c048808c>] (omap2_onenand_driver_init+0x18/0x20)
      [    2.065490] [<c0488074>] (omap2_onenand_driver_init+0x0/0x20) from [<c0008888>] (do_one_initcall+0xf4/0x150)
      [    2.075836] [<c0008794>] (do_one_initcall+0x0/0x150) from [<c046db8c>] (kernel_init_freeable+0xf0/0x1b4)
      [    2.085815] [<c046da9c>] (kernel_init_freeable+0x0/0x1b4) from [<c0348fe0>] (kernel_init+0x10/0xec)
      [    2.095336] [<c0348fd0>] (kernel_init+0x0/0xec) from [<c000e7f8>] (ret_from_fork+0x14/0x3c)
      [    2.104125]  r4:00000000 r3:00000000
      [    2.107879] Code: ebffc3ae e2505000 ba00002e e2843042 (e1d320b0)
      [    2.114318] ---[ end trace b8ee3e3e5e002451 ]---
      Signed-off-by: NAaro Koskinen <aaro.koskinen@iki.fi>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      1dc1c338
  3. 19 9月, 2013 6 次提交
    • P
      ARM: OMAP2+: mux: fix trivial typo in name · e942cc06
      Phil Carmody 提交于
      Fix trivial typo in name.
      Signed-off-by: NPhil Carmody <phil.carmody@partner.samsung.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      e942cc06
    • A
      ARM: OMAP4 SMP: Corrected a typo fucntions to functions · b6b24852
      Anoop Thomas Mathew 提交于
      Corrected the functions spelling mistake in the OMAP4 SMP source file.
      Signed-off-by: NAnoop Thomas Mathew <atm@profoundis.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      b6b24852
    • V
      ARM: OMAP4: cpuidle: fix: call cpu_cluster_pm_exit conditionally · 78350271
      Vladimir Murzin 提交于
      We call cpu_cluster_pm_enter for dev->cpu == 0 only, but
      cpu_cluster_pm_exit called without that check.
      
      Because of that unhandled page fault may happen:
      
      [    3.803405] Unable to handle kernel paging request at virtual address 00002500
      [    3.810974] pgd = c0004000
      [    3.813812] [00002500] *pgd=00000000
      [    3.817596] Internal error: Oops: 5 [#1] SMP ARM
      [    3.822418] Modules linked in:
      [    3.825653] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 3.11.0-rc6+ #21
      [    3.832397] task: ed86ef40 ti: ed896000 task.ti: ed896000
      [    3.838073] PC is at irq_notifier+0x234/0x25c
      [    3.842651] LR is at irq_notifier+0x218/0x25c
      [    3.847229] pc : [<c0029ed8>]    lr : [<c0029ebc>]    psr: 80000193
      [    3.847229] sp : ed897ee8  ip : 00000005  fp : 00000001
      [    3.859283] r10: c0b395f0  r9 : c0b30594  r8 : c0b8c2ac
      [    3.864776] r7 : ffffffff  r6 : 00000000  r5 : 00000005  r4 : 00000000
      [    3.871643] r3 : 00002500  r2 : 00000000  r1 : 00000005  r0 : 44302244
      [    3.878479] Flags: Nzcv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
      [    3.886260] Control: 10c5387d  Table: 8000404a  DAC: 00000015
      [    3.892272] Process swapper/1 (pid: 0, stack limit = 0xed896240)
      [    3.898590] Stack: (0xed897ee8 to 0xed898000)
      [    3.903167] 7ee0:                   c0979c3a 00000001 ed897ef8 ed896000 c0014f7c 00000000
      [    3.911743] 7f00: 00000005 00000000 ffffffff c0b8c2ac c0b395f0 c077c04c c0c94b48 c0b3953c
      [    3.920318] 7f20: c0bcd928 00000002 c0b39524 c00cfad8 00000000 ffffffff 00000000 c00cfb10
      [    3.928924] 7f40: c14e62c0 c002c1c8 c002c0ac c14e62c0 00000002 e251c37d 00000000 c0b39548
      [    3.937499] 7f60: c0b395f0 c05a1bc4 e251c37d 00000000 00000005 c05a3870 edc90380 edc90380
      [    3.946105] 7f80: edc90394 c14e62c0 c0b39548 00000002 c0784064 c05a3c78 c0b395e0 c14e62c0
      [    3.954681] 7fa0: 00000002 c0b39548 c0bc9db8 00000000 00000001 c05a1dc0 ed896000 00000015
      [    3.963287] 7fc0: c0bc9db8 ed896000 8000406a c0b30594 c0784064 c000e504 00000746 c007a528
      [    3.971862] 7fe0: 00000001 0000001d 600001d3 c0bcc004 00000000 800086c4 ee0aa6a7 d2aabaa9
      [    3.980499] [<c0029ed8>] (irq_notifier+0x234/0x25c) from [<c077c04c>] (notifier_call_chain+0x38/0x68)
      [    3.990173] [<c077c04c>] (notifier_call_chain+0x38/0x68) from [<c00cfad8>] (cpu_pm_notify+0x20/0x38)
      [    3.999786] [<c00cfad8>] (cpu_pm_notify+0x20/0x38) from [<c00cfb10>] (cpu_cluster_pm_exit+0x20/0x50)
      [    4.009399] [<c00cfb10>] (cpu_cluster_pm_exit+0x20/0x50) from [<c002c1c8>] (omap_enter_idle_coupled+0x11c/0x14c)
      [    4.020111] [<c002c1c8>] (omap_enter_idle_coupled+0x11c/0x14c) from [<c05a1bc4>] (cpuidle_enter_state+0x40/0xec)
      [    4.030822] [<c05a1bc4>] (cpuidle_enter_state+0x40/0xec) from [<c05a3c78>] (cpuidle_enter_state_coupled+0x1f4/0x240)
      [    4.041870] [<c05a3c78>] (cpuidle_enter_state_coupled+0x1f4/0x240) from [<c05a1dc0>] (cpuidle_idle_call+0x150/0x228)
      [    4.052947] [<c05a1dc0>] (cpuidle_idle_call+0x150/0x228) from [<c000e504>] (arch_cpu_idle+0x8/0x38)
      [    4.062499] [<c000e504>] (arch_cpu_idle+0x8/0x38) from [<c007a528>] (cpu_startup_entry+0x178/0x1e4)
      [    4.071990] [<c007a528>] (cpu_startup_entry+0x178/0x1e4) from [<800086c4>] (0x800086c4)
      [    4.080383] Code: e5922288 03a03b0a 13a03c25 e0823003 (e5932000)
      [    4.086791] ---[ end trace d83954a84a6fa69e ]---
      
      It is supposed that sar_base is initialized in irq_save_context, which
      is called on CPU_CLUSTER_PM_ENTER notification. If this notification
      has been missed and CPU_CLUSTER_PM_EXIT is received sar_base is NULL.
      
      Fix it by calling CPU_CLUSTER_PM_{ENTER,EXIT} under the same condition.
      Signed-off-by: NVladimir Murzin <murzin.v@gmail.com>
      Acked-by: NKevin Hilman <khilman@linaro.org>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      78350271
    • F
      ARM: mach-omap2: gpmc: Fix warning when CONFIG_ARM_LPAE=y · f70bf2a3
      Fabio Estevam 提交于
      When CONFIG_ARM_LPAE=y the following build warning is generated:
      
      arch/arm/mach-omap2/gpmc.c:1495:4: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'resource_size_t' [-Wformat]
      
      According to Documentation/printk-formats.txt '%pa' can be used to properly
      print 'resource_size_t'.
      Reported-by: NKevin Hilman <khilman@linaro.org>
      Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com>
      Acked-by: NKevin Hilman <khilman@linaro.org>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      f70bf2a3
    • W
      ARM: OMAP: fix return value check in omap_device_build_from_dt() · 4cf9cf89
      Wei Yongjun 提交于
      In case of error, the function omap_device_alloc() returns ERR_PTR()
      and never returns NULL. The NULL test in the return value check
      should be replaced with IS_ERR().
      Signed-off-by: NWei Yongjun <yongjun_wei@trendmicro.com.cn>
      Acked-by: NKevin Hilman <khilman@linaro.org>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      4cf9cf89
    • T
      ARM: OMAP4: Fix clock_get error for GPMC during boot · 2cfeed31
      Tony Lindgren 提交于
      Looks like we still have the legacy clock alias name for
      omap4 GPMC (General Purpose Memory Controller), so let's
      fix it for the device tree naming. There's no need to keep
      the legacy naming as omap4 is DT only nowadays.
      
      Without this fix we get the following error while booting:
      
      [    0.440399] omap-gpmc 50000000.gpmc: error: clk_get
      Reported-by: NOlof Johansson <olof@lixom.net>
      Cc: stable@vger.kernel.org # v3.11
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      2cfeed31
  4. 30 8月, 2013 2 次提交
  5. 29 8月, 2013 1 次提交
    • T
      OMAPDSS: fix DPI and SDI device ids · 35f5df6f
      Tomi Valkeinen 提交于
      The DPI and SDI platform devices are currently created with the ID of
      -1. The ID doesn't currently affect anything.
      
      However, we have added regulator supply entries for "omapdss_dpi.0" and
      "omapdss_sdi.0" to the board files, although these supply entries are
      not yet used. As the ID used for the devices is -1, these regulator
      supply entries will not work.
      
      To fix the issue, assign ID of 0 to the devices. In the future there may
      be more than one DPI or SDI output, so it makes sense to have a proper
      ID for them.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Reviewed-by: NArchit Taneja <archit@ti.com>
      35f5df6f
  6. 28 8月, 2013 18 次提交
  7. 24 8月, 2013 1 次提交
  8. 23 8月, 2013 7 次提交
    • A
      ARM: OMAP: TI81XX: add always-on powerdomain for TI81XX · 0f0dd089
      Aida Mynzhasova 提交于
      This patch adds alwon powerdomain support for TI81XX, which is required
      for stable functioning of a big number of TI81XX subsystems.
      Signed-off-by: NAida Mynzhasova <aida.mynzhasova@skitlab.ru>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      0f0dd089
    • R
      ARM: OMAP4: clock: Lock PLLs in the right sequence · eeb6603f
      Rajendra Nayak 提交于
      On OMAP4 we have clk_set_rate()s being done for a few
      DPLL clock nodes, as part of the clock init code, since
      the bootloaders no longer locks these DPLLs.
      
      So we have a clk_set_rate() done for a ABE DPLL node (which
      inturn locks it) followed by a clk_set_rate() for the USB DPLL.
      
      With USB DPLL being in bypass, we have this parent->child
      relationship thats formed while the clocks get registered.
      
      dpll_abe_ck
          |
          V
      dpll_abe_x2_ck
          |
          V
      dpll_abe_m3x2_ck
          |
          V
      usb_hs_clk_div_ck
          |
          V
      dpll_usb_ck
      
      This is because usb_hs_clk_div_ck is bypass clock for dpll_usb_ck.
      
      So with this parent->child relationship in place, a clk_set_rate()
      on ABE DPLL results eventually in a clk_set_rate() call on USB DPLL,
      because CCF does a clk_change_rate() (as part of clk_set_rate()) on
      all downstream clocks resulting from a rate change on the top clock.
      
      So its important that we lock USB DPLL before we lock ABE DPLL.
      Without which we see these error logs at boot.
      [These error logs will not be seen if using a bootloader that locks
      USB DPLL]
      
      [    0.000000] clock: dpll_usb_ck failed transition to 'locked'
      [    0.000000] Division by zero in kernel.
      [    0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.0-03445-gfb2af002-dirty #7
      [    0.000000] [<c001bfe8>] (unwind_backtrace+0x0/0xf4) from [<c001868c>] (show_stack+0x10/0x14)
      [    0.000000] [<c001868c>] (show_stack+0x10/0x14) from [<c02deb28>] (Ldiv0+0x8/0x10)
      [    0.000000] [<c02deb28>] (Ldiv0+0x8/0x10) from [<c0477030>] (clk_divider_set_rate+0x10/0x114)
      [    0.000000] [<c0477030>] (clk_divider_set_rate+0x10/0x114) from [<c0476ef4>] (clk_change_rate+0x38/0xb8)
      [    0.000000] [<c0476ef4>] (clk_change_rate+0x38/0xb8) from [<c0476f5c>] (clk_change_rate+0xa0/0xb8)
      [    0.000000] Division by zero in kernel.
      [    0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.0-03445-gfb2af002-dirty #7
      [    0.000000] [<c001bfe8>] (unwind_backtrace+0x0/0xf4) from [<c001868c>] (show_stack+0x10/0x14)
      [    0.000000] [<c001868c>] (show_stack+0x10/0x14) from [<c02deb28>] (Ldiv0+0x8/0x10)
      [    0.000000] [<c02deb28>] (Ldiv0+0x8/0x10) from [<c0477030>] (clk_divider_set_rate+0x10/0x114)
      [    0.000000] [<c0477030>] (clk_divider_set_rate+0x10/0x114) from [<c0476ef4>] (clk_change_rate+0x38/0xb8)
      [    0.000000] [<c0476ef4>] (clk_change_rate+0x38/0xb8) from [<c0476f5c>] (clk_change_rate+0xa0/0xb8)
      [    0.000000] Division by zero in kernel.
      [    0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.0-03445-gfb2af002-dirty #7
      [    0.000000] [<c001bfe8>] (unwind_backtrace+0x0/0xf4) from [<c001868c>] (show_stack+0x10/0x14)
      [    0.000000] [<c001868c>] (show_stack+0x10/0x14) from [<c02deb28>] (Ldiv0+0x8/0x10)
      [    0.000000] [<c02deb28>] (Ldiv0+0x8/0x10) from [<c0477030>] (clk_divider_set_rate+0x10/0x114)
      [    0.000000] [<c0477030>] (clk_divider_set_rate+0x10/0x114) from [<c0476ef4>] (clk_change_rate+0x38/0xb8)
      [    0.000000] [<c0476ef4>] (clk_change_rate+0x38/0xb8) from [<c0476f5c>] (clk_change_rate+0xa0/0xb8)
      [    0.000000] Division by zero in kernel.
      [    0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.0-03445-gfb2af002-dirty #7
      [    0.000000] [<c001bfe8>] (unwind_backtrace+0x0/0xf4) from [<c001868c>] (show_stack+0x10/0x14)
      [    0.000000] [<c001868c>] (show_stack+0x10/0x14) from [<c02deb28>] (Ldiv0+0x8/0x10)
      [    0.000000] [<c02deb28>] (Ldiv0+0x8/0x10) from [<c0477030>] (clk_divider_set_rate+0x10/0x114)
      [    0.000000] [<c0477030>] (clk_divider_set_rate+0x10/0x114) from [<c0476ef4>] (clk_change_rate+0x38/0xb8)
      [    0.000000] [<c0476ef4>] (clk_change_rate+0x38/0xb8) from [<c0476f5c>] (clk_change_rate+0xa0/0xb8)
      [    0.000000] Division by zero in kernel.
      [    0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.0-03445-gfb2af002-dirty #7
      [    0.000000] [<c001bfe8>] (unwind_backtrace+0x0/0xf4) from [<c001868c>] (show_stack+0x10/0x14)
      [    0.000000] [<c001868c>] (show_stack+0x10/0x14) from [<c02deb28>] (Ldiv0+0x8/0x10)
      [    0.000000] [<c02deb28>] (Ldiv0+0x8/0x10) from [<c0477030>] (clk_divider_set_rate+0x10/0x114)
      [    0.000000] [<c0477030>] (clk_divider_set_rate+0x10/0x114) from [<c0476ef4>] (clk_change_rate+0x38/0xb8)
      [    0.000000] [<c0476ef4>] (clk_change_rate+0x38/0xb8) from [<c0476f5c>] (clk_change_rate+0xa0/0xb8)
      [    0.000000] Division by zero in kernel.
      [    0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.0-03445-gfb2af002-dirty #7
      [    0.000000] [<c001bfe8>] (unwind_backtrace+0x0/0xf4) from [<c001868c>] (show_stack+0x10/0x14)
      [    0.000000] [<c001868c>] (show_stack+0x10/0x14) from [<c02deb28>] (Ldiv0+0x8/0x10)
      [    0.000000] [<c02deb28>] (Ldiv0+0x8/0x10) from [<c0477030>] (clk_divider_set_rate+0x10/0x114)
      [    0.000000] [<c0477030>] (clk_divider_set_rate+0x10/0x114) from [<c0476ef4>] (clk_change_rate+0x38/0xb8)
      [    0.000000] [<c0476ef4>] (clk_change_rate+0x38/0xb8) from [<c0476f5c>] (clk_change_rate+0xa0/0xb8)
      [    0.000000] clock: trace_clk_div_ck: could not find divisor for target rate 0 for parent pmd_trace_clk_mux_ck
      [    0.000000] Division by zero in kernel.
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      eeb6603f
    • V
      ARM: OMAP: AM33XX: hwmod: Add hwmod data for debugSS · 1721c702
      Vaibhav Hiremath 提交于
      In the original hwmod data file, DebugSS entry was disabled,
      since we didn't (and do not) have SW to control it.
      
      This patch enables it back with right data, so that it can be
      controlled by different ways; and the suggested method it to
      have modular driver for debugSS as well.
      
      Refer to the link for more discussion on handling of debugSS -
      https://patchwork.kernel.org/patch/2212111/Signed-off-by: NVaibhav Hiremath <hvaibhav@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Tony Lindgren <tony@atomide.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      1721c702
    • J
      ARM: OMAP2+: Only write the sysconfig on idle when necessary · 127500cc
      Jon Hunter 提交于
      Currently, whenever we idle a device _idle_sysc() is called and writes to the
      devices SYSCONFIG register to set the idle mode. A lot devices are using the
      smart-idle mode and so the write to the SYSCONFIG register is programming the
      same value that is already stored in the register.
      
      Writes to the devices SYSCONFIG register can be slow, for example, writing to
      the DMTIMER SYSCONFIG register takes 3 interface clock cycles and 3 functional
      clock cycles. If the DMTIMER is using the slow 32kHz functional clock this can
      take ~100us.
      
      Furthermore, during boot on an OMAP4430 panda board, I see that there are 100
      calls to _idle_sysc(), however, only 3 out of the 100 calls actually write
      the SYSCONFIG register with a new value.
      
      Therefore, to avoid unnecessary writes to device SYSCONFIG registers when
      idling the device, only write the value if the value has changed. It should be
      safe to do this on idle as the context of the register will never be lost while
      the device is active.
      
      Verified that suspend, CORE off and retention states are working with this
      change on OMAP3430 Beagle board.
      Signed-off-by: NJon Hunter <jon-hunter@ti.com>
      [paul@pwsan.com: updated to apply]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      127500cc
    • A
      ARM: OMAP: DRA7: Enable PM framework initializations · 7de516a6
      Ambresh K 提交于
      Initialise powerdomains, clockdomains, and hwmod frameworks.
      Signed-off-by: NAmbresh K <ambresh@ti.com>
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      [paul@pwsan.com: updated to apply]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      7de516a6
    • A
      ARM: OMAP: DRA7: hwmod: Create initial DRA7XX SoC data · 90020c7b
      Ambresh K 提交于
      Adding the hwmod data for DRA7XX platforms.
      Signed-off-by: NAmbresh K <ambresh@ti.com>
      Signed-off-by: NTero Kristo <t-kristo@ti.com>
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      90020c7b
    • R
      ARM: OMAP: DRA7: Reuse the omap44xx_restart and fix the device instance · 1d597b07
      Rajendra Nayak 提交于
      The omap44xx_restart used on omap4 and omap5 devices can be reused
      on dra7 devices as well. The device instance however is different
      across omap5 and dra7 as compared to omap4. So fix this for omap5
      as well as dra7.
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      Signed-off-by: NR Sricharan <r.sricharan@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      1d597b07