From patchwork Wed Jan 30 21:42:33 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Warren X-Patchwork-Id: 217180 Return-Path: X-Original-To: incoming-imx@patchwork.ozlabs.org Delivered-To: patchwork-incoming-imx@bilbo.ozlabs.org Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:4978:20e::2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 927832C0091 for ; Thu, 31 Jan 2013 23:31:34 +1100 (EST) Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1U0tDt-00038B-Fq; Thu, 31 Jan 2013 12:26:33 +0000 Received: from avon.wwwdotorg.org ([2001:470:1f0f:bd7::2]) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1U0fQg-0007k6-2M for linux-arm-kernel@lists.infradead.org; Wed, 30 Jan 2013 21:42:50 +0000 Received: from severn.wwwdotorg.org (unknown [192.168.65.5]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by avon.wwwdotorg.org (Postfix) with ESMTPS id 95C1865BA; Wed, 30 Jan 2013 14:45:09 -0700 (MST) Received: from swarren-lx1.nvidia.com (localhost [127.0.0.1]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by severn.wwwdotorg.org (Postfix) with ESMTPSA id 9EA6FE47A1; Wed, 30 Jan 2013 14:42:47 -0700 (MST) From: Stephen Warren To: arm@kernel.org Subject: [GIT PULL 2/8] ARM: tegra: Common Clock Framework rework Date: Wed, 30 Jan 2013 14:42:33 -0700 Message-Id: <1359582159-28816-2-git-send-email-swarren@wwwdotorg.org> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1359582159-28816-1-git-send-email-swarren@wwwdotorg.org> References: <1359582159-28816-1-git-send-email-swarren@wwwdotorg.org> X-NVConfidentiality: public X-Virus-Scanned: clamav-milter 0.96.5 at avon.wwwdotorg.org X-Virus-Status: Clean X-Bad-Reply: References and In-Reply-To but no 'Re:' in Subject. X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20130130_164250_325993_DC0F52AF X-CRM114-Status: GOOD ( 14.14 ) X-Spam-Score: -2.6 (--) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-2.6 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record -0.7 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Mailman-Approved-At: Thu, 31 Jan 2013 07:10:07 -0500 Cc: linux-tegra@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Stephen Warren X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.14 Precedence: list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: linux-arm-kernel-bounces@lists.infradead.org Errors-To: linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org List-Id: linux-imx-kernel.lists.patchwork.ozlabs.org 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. ---------------------------------------------------------------- The following changes since commit 24e30c9417230b359bf6dfeb923e90138df7c112: ARM: tegra: fix compile error when disable CPU_IDLE are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra.git tegra-for-3.9-soc-ccf for you to fetch changes up to ef3ffe5a0458606c488def757bb7f6dd013c2db5: clk: tegra30: remove unused TEGRA_CLK_DUPLICATE()s ---------------------------------------------------------------- Prashant Gaikwad (18): ARM: tegra: add function to read chipid ARM: tegra: move tegra_cpu_car.h to linux/clk/tegra.h ARM: tegra: define Tegra30 CAR binding clk: tegra: add Tegra specific clocks clk: tegra: add clock support for Tegra20 clk: tegra: add clock support for Tegra30 ARM: tegra: migrate to new clock code ARM: tegra: remove legacy clock code spi: tegra: do not use clock name to get clock ARM: tegra: add clock properties to Tegra20 DT ARM: tegra: add clock properties to Tegra30 DT ARM: tegra: paz00: add clock information to DT staging: nvec: remove use of clk_get_sys ASoC: tegra: remove auxdata ARM: tegra20: remove auxdata ARM: tegra30: remove auxdata clk: tegra20: remove unused TEGRA_CLK_DUPLICATE()s clk: tegra30: remove unused TEGRA_CLK_DUPLICATE()s Stephen Warren (1): ARM: tegra: define Tegra20 CAR binding .../bindings/clock/nvidia,tegra20-car.txt | 205 ++ .../bindings/clock/nvidia,tegra30-car.txt | 262 ++ arch/arm/boot/dts/tegra20-paz00.dts | 2 + arch/arm/boot/dts/tegra20.dtsi | 50 + arch/arm/boot/dts/tegra30.dtsi | 62 +- arch/arm/mach-tegra/Makefile | 5 - arch/arm/mach-tegra/board-dt-tegra20.c | 54 - arch/arm/mach-tegra/board-dt-tegra30.c | 62 +- arch/arm/mach-tegra/clock.c | 166 -- arch/arm/mach-tegra/clock.h | 153 -- arch/arm/mach-tegra/common.c | 44 +- arch/arm/mach-tegra/cpu-tegra.c | 2 +- arch/arm/mach-tegra/cpuidle-tegra30.c | 2 +- arch/arm/mach-tegra/fuse.c | 8 +- arch/arm/mach-tegra/hotplug.c | 2 +- arch/arm/mach-tegra/include/mach/clk.h | 44 - arch/arm/mach-tegra/pcie.c | 2 +- arch/arm/mach-tegra/platsmp.c | 2 +- arch/arm/mach-tegra/pm.c | 2 +- arch/arm/mach-tegra/powergate.c | 2 +- arch/arm/mach-tegra/tegra20_clocks.c | 1623 ------------ arch/arm/mach-tegra/tegra20_clocks.h | 42 - arch/arm/mach-tegra/tegra20_clocks_data.c | 1143 -------- arch/arm/mach-tegra/tegra30_clocks.c | 2506 ------------------ arch/arm/mach-tegra/tegra30_clocks.h | 54 - arch/arm/mach-tegra/tegra30_clocks_data.c | 1425 ---------- drivers/clk/Makefile | 1 + drivers/clk/tegra/Makefile | 11 + drivers/clk/tegra/clk-audio-sync.c | 87 + drivers/clk/tegra/clk-divider.c | 187 ++ drivers/clk/tegra/clk-periph-gate.c | 179 ++ drivers/clk/tegra/clk-periph.c | 218 ++ drivers/clk/tegra/clk-pll-out.c | 123 + drivers/clk/tegra/clk-pll.c | 648 +++++ drivers/clk/tegra/clk-super.c | 154 ++ drivers/clk/tegra/clk-tegra20.c | 1256 +++++++++ drivers/clk/tegra/clk-tegra30.c | 1987 ++++++++++++++ drivers/clk/tegra/clk.c | 85 + drivers/clk/tegra/clk.h | 502 ++++ drivers/dma/tegra20-apb-dma.c | 2 +- drivers/gpu/drm/tegra/dc.c | 3 +- drivers/gpu/drm/tegra/drm.c | 1 - drivers/gpu/drm/tegra/hdmi.c | 3 +- drivers/i2c/busses/i2c-tegra.c | 3 +- drivers/input/keyboard/tegra-kbc.c | 2 +- drivers/spi/spi-tegra20-sflash.c | 4 +- drivers/spi/spi-tegra20-slink.c | 4 +- drivers/staging/nvec/TODO | 4 - drivers/staging/nvec/nvec.c | 5 +- .../linux/clk/tegra.h | 13 +- include/linux/tegra-soc.h | 22 + sound/soc/tegra/tegra30_ahub.c | 16 +- 52 files changed, 6079 insertions(+), 7365 deletions(-) create mode 100644 Documentation/devicetree/bindings/clock/nvidia,tegra20-car.txt create mode 100644 Documentation/devicetree/bindings/clock/nvidia,tegra30-car.txt delete mode 100644 arch/arm/mach-tegra/clock.c delete mode 100644 arch/arm/mach-tegra/clock.h delete mode 100644 arch/arm/mach-tegra/include/mach/clk.h delete mode 100644 arch/arm/mach-tegra/tegra20_clocks.c delete mode 100644 arch/arm/mach-tegra/tegra20_clocks.h delete mode 100644 arch/arm/mach-tegra/tegra20_clocks_data.c delete mode 100644 arch/arm/mach-tegra/tegra30_clocks.c delete mode 100644 arch/arm/mach-tegra/tegra30_clocks.h delete mode 100644 arch/arm/mach-tegra/tegra30_clocks_data.c create mode 100644 drivers/clk/tegra/Makefile create mode 100644 drivers/clk/tegra/clk-audio-sync.c create mode 100644 drivers/clk/tegra/clk-divider.c create mode 100644 drivers/clk/tegra/clk-periph-gate.c create mode 100644 drivers/clk/tegra/clk-periph.c create mode 100644 drivers/clk/tegra/clk-pll-out.c create mode 100644 drivers/clk/tegra/clk-pll.c create mode 100644 drivers/clk/tegra/clk-super.c create mode 100644 drivers/clk/tegra/clk-tegra20.c create mode 100644 drivers/clk/tegra/clk-tegra30.c create mode 100644 drivers/clk/tegra/clk.c create mode 100644 drivers/clk/tegra/clk.h rename arch/arm/mach-tegra/tegra_cpu_car.h => include/linux/clk/tegra.h (91%) create mode 100644 include/linux/tegra-soc.h