]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge tag 'tegra-for-3.9-soc-ccf' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorOlof Johansson <olof@lixom.net>
Tue, 5 Feb 2013 20:13:10 +0000 (12:13 -0800)
committerOlof Johansson <olof@lixom.net>
Tue, 5 Feb 2013 20:13:10 +0000 (12:13 -0800)
From Stephen Warren:
ARM: tegra: Common Clock Framework rework

Tegra already supports the common clock framework, but had issues:

1) The clock driver was located in arch/arm/mach-tegra/ rather than
   drivers/clk/.

2) A single "Tegra clock" type was implemented, rather than separate
   clock types for PLL, mux, divider, ... type in HW.

3) Clock lookups by device drivers were still driven by device name
   and connection ID, rather than through device tree.

This pull request solves all three issues. This required some DT changes
to add clocks properties, and driver changes to request clocks more
"correctly". Finally, this rework allows all AUXDATA to be removed from
Tegra board files, and various duplicate clock lookup entries to be
removed from the driver.

This pull request is based on the previous pull request, with tag
tegra-for-3.9-cleanup.

* tag 'tegra-for-3.9-soc-ccf' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra: (31 commits)
  clk: tegra30: remove unused TEGRA_CLK_DUPLICATE()s
  clk: tegra20: remove unused TEGRA_CLK_DUPLICATE()s
  ARM: tegra30: remove auxdata
  ARM: tegra20: remove auxdata
  ASoC: tegra: remove auxdata
  staging: nvec: remove use of clk_get_sys
  ARM: tegra: paz00: add clock information to DT
  ARM: tegra: add clock properties to Tegra30 DT
  ARM: tegra: add clock properties to Tegra20 DT
  spi: tegra: do not use clock name to get clock
  ARM: tegra: remove legacy clock code
  ARM: tegra: migrate to new clock code
  clk: tegra: add clock support for Tegra30
  clk: tegra: add clock support for Tegra20
  clk: tegra: add Tegra specific clocks
  ARM: tegra: define Tegra30 CAR binding
  ARM: tegra: define Tegra20 CAR binding
  ARM: tegra: move tegra_cpu_car.h to linux/clk/tegra.h
  ARM: tegra: add function to read chipid
  ARM: tegra: fix compile error when disable CPU_IDLE
  ...

Signed-off-by: Olof Johansson <olof@lixom.net>
Conflicts:
arch/arm/mach-tegra/board-dt-tegra20.c
arch/arm/mach-tegra/board-dt-tegra30.c
arch/arm/mach-tegra/common.c
arch/arm/mach-tegra/platsmp.c
drivers/clocksource/Makefile

1  2 
arch/arm/Kconfig
arch/arm/mach-tegra/board-dt-tegra20.c
arch/arm/mach-tegra/board-dt-tegra30.c
arch/arm/mach-tegra/common.c
arch/arm/mach-tegra/platsmp.c
drivers/clocksource/Makefile
drivers/clocksource/tegra20_timer.c
drivers/dma/tegra20-apb-dma.c

Simple merge
index 5ed81bab2d4bb4eb6aaf561200c400cc8d1cc506,5049edf68f4f2e2e42792ed637f83bab0b263f61..abdbe9e658f96afb0c28834b50f46e331281514a
@@@ -200,7 -149,8 +147,7 @@@ DT_MACHINE_START(TEGRA_DT, "nVidia Tegr
        .smp            = smp_ops(tegra_smp_ops),
        .init_early     = tegra20_init_early,
        .init_irq       = tegra_dt_init_irq,
-       .init_time      = tegra_init_timer,
 -      .handle_irq     = gic_handle_irq,
+       .init_time      = clocksource_of_init,
        .init_machine   = tegra_dt_init,
        .init_late      = tegra_dt_init_late,
        .restart        = tegra_assert_system_reset,
index 12dc2ddeca640914c694d92a0735813de37c6591,5b58b6439db6c9b08322a2dc609a259b330bd003..bf68567e549d6e011d266eca8e11efe88942cf1e
@@@ -31,9 -32,9 +32,8 @@@
  #include <linux/of_platform.h>
  
  #include <asm/mach/arch.h>
 -#include <asm/hardware/gic.h>
  
  #include "board.h"
- #include "clock.h"
  #include "common.h"
  #include "iomap.h"
  
@@@ -111,7 -53,8 +52,7 @@@ DT_MACHINE_START(TEGRA30_DT, "NVIDIA Te
        .map_io         = tegra_map_common_io,
        .init_early     = tegra30_init_early,
        .init_irq       = tegra_dt_init_irq,
-       .init_time      = tegra_init_timer,
 -      .handle_irq     = gic_handle_irq,
+       .init_time      = clocksource_of_init,
        .init_machine   = tegra30_dt_init,
        .init_late      = tegra_init_late,
        .restart        = tegra_assert_system_reset,
index 3599959517b3059b63277163d5f6ab8e7c67b854,87dd69ccdf8e55ffe4747818d485424e9cc75b03..46c071861c4eab9c2f173adc6f9ef8efe3914935
  #include <linux/io.h>
  #include <linux/clk.h>
  #include <linux/delay.h>
 -#include <linux/of_irq.h>
 +#include <linux/irqchip.h>
+ #include <linux/clk/tegra.h>
  
  #include <asm/hardware/cache-l2x0.h>
 -#include <asm/hardware/gic.h>
  
  #include <mach/powergate.h>
  
@@@ -56,10 -58,16 +57,11 @@@ u32 tegra_uart_config[4] = 
  };
  
  #ifdef CONFIG_OF
 -static const struct of_device_id tegra_dt_irq_match[] __initconst = {
 -      { .compatible = "arm,cortex-a9-gic", .data = gic_of_init },
 -      { }
 -};
 -
  void __init tegra_dt_init_irq(void)
  {
+       tegra_clocks_init();
        tegra_init_irq();
 -      of_irq_init(tegra_dt_irq_match);
 +      irqchip_init();
  }
  #endif
  
index 18d7290cf93b63dbe592591bfb6b4ed87be76ff0,3ec7fc487857af2d3fa56152982ccbe4c6f8d459..c72e249e33b0740ca90f63d3834ae7c971375f4e
  #include <linux/jiffies.h>
  #include <linux/smp.h>
  #include <linux/io.h>
 +#include <linux/irqchip/arm-gic.h>
+ #include <linux/clk/tegra.h>
  
  #include <asm/cacheflush.h>
 -#include <asm/hardware/gic.h>
  #include <asm/mach-types.h>
  #include <asm/smp_scu.h>
+ #include <asm/smp_plat.h>
  
  #include <mach/powergate.h>
  
index 440449c1ca21e139e7c5d79e19c0feab9934e550,b5cc50796a809e80f8623a77f0b22126d7bd8fea..596c45c2f192114224f6626f786401f5b41656a6
@@@ -17,6 -17,6 +17,7 @@@ obj-$(CONFIG_CLKSRC_DBX500_PRCMU)     += cl
  obj-$(CONFIG_ARMADA_370_XP_TIMER)     += time-armada-370-xp.o
  obj-$(CONFIG_ARCH_BCM2835)    += bcm2835_timer.o
  obj-$(CONFIG_SUNXI_TIMER)     += sunxi_timer.o
+ obj-$(CONFIG_ARCH_TEGRA)      += tegra20_timer.o
 +obj-$(CONFIG_VT8500_TIMER)    += vt8500_timer.o
  
  obj-$(CONFIG_CLKSRC_ARM_GENERIC)      += arm_generic.o
Simple merge
Simple merge