From patchwork Sun Nov 10 14:49:54 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 3165391 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 0F9A19F39E for ; Sun, 10 Nov 2013 14:51:22 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 02040202FF for ; Sun, 10 Nov 2013 14:51:21 +0000 (UTC) Received: from casper.infradead.org (casper.infradead.org [85.118.1.10]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DC8F8202FE for ; Sun, 10 Nov 2013 14:51:19 +0000 (UTC) Received: from merlin.infradead.org ([2001:4978:20e::2]) by casper.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1VfWLQ-0007ux-H6; Sun, 10 Nov 2013 14:50:33 +0000 Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1VfWLA-0004ol-JG; Sun, 10 Nov 2013 14:50:16 +0000 Received: from perceval.ideasonboard.com ([95.142.166.194]) by merlin.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1VfWL8-0004nP-Dx for linux-arm-kernel@lists.infradead.org; Sun, 10 Nov 2013 14:50:15 +0000 Received: from avalon.ideasonboard.com (unknown [109.134.95.56]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 5C68935A6D; Sun, 10 Nov 2013 15:48:44 +0100 (CET) From: Laurent Pinchart To: linux-sh@vger.kernel.org Subject: [PATCH v2 2/2] ARM: shmobile: lager: Enable SCIF0 and SCIF1 serial ports in DT Date: Sun, 10 Nov 2013 15:49:54 +0100 Message-Id: <1384094994-5115-3-git-send-email-laurent.pinchart+renesas@ideasonboard.com> X-Mailer: git-send-email 1.8.1.5 In-Reply-To: <1384094994-5115-1-git-send-email-laurent.pinchart+renesas@ideasonboard.com> References: <1384094994-5115-1-git-send-email-laurent.pinchart+renesas@ideasonboard.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20131110_095014_675903_DFCA19AE X-CRM114-Status: GOOD ( 13.51 ) X-Spam-Score: -1.9 (-) Cc: linux-arm-kernel@lists.infradead.org X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP SCIF0 and SCIF1 are used as debug serial ports. Enable them and configure pinmuxing appropriately. We can now remove the clkdev registration hack for SCIF devices from the Lager reference board file. As a side effect of switching to DT-based serial port instantiation, ttySC6 and ttySC7 get renamed to ttySC0 and ttySC1. As the device tree source if now shared between lager and lager-reference, we need to update the serial ports in C code as well. Signed-off-by: Laurent Pinchart --- arch/arm/boot/dts/r8a7790-lager.dts | 24 ++++++++++++++++++++---- arch/arm/mach-shmobile/board-lager-reference.c | 18 ++---------------- arch/arm/mach-shmobile/clock-r8a7790.c | 16 ++++++++-------- arch/arm/mach-shmobile/setup-r8a7790.c | 26 +++++++++++++------------- 4 files changed, 43 insertions(+), 41 deletions(-) diff --git a/arch/arm/boot/dts/r8a7790-lager.dts b/arch/arm/boot/dts/r8a7790-lager.dts index 2da3312..27b2002 100644 --- a/arch/arm/boot/dts/r8a7790-lager.dts +++ b/arch/arm/boot/dts/r8a7790-lager.dts @@ -16,8 +16,13 @@ model = "Lager"; compatible = "renesas,lager", "renesas,r8a7790"; + aliases { + serial0 = &scif0; + serial1 = &scif1; + }; + chosen { - bootargs = "console=ttySC6,115200 ignore_loglevel rw root=/dev/nfs ip=dhcp"; + bootargs = "console=ttySC0,115200 ignore_loglevel rw root=/dev/nfs ip=dhcp"; }; memory@40000000 { @@ -58,9 +63,6 @@ }; &pfc { - pinctrl-0 = <&scif0_pins &scif1_pins>; - pinctrl-names = "default"; - scif0_pins: serial0 { renesas,groups = "scif0_data"; renesas,function = "scif0"; @@ -86,3 +88,17 @@ non-removable; status = "okay"; }; + +&scif0 { + pinctrl-0 = <&scif0_pins>; + pinctrl-names = "default"; + + status = "okay"; +}; + +&scif1 { + pinctrl-0 = <&scif1_pins>; + pinctrl-names = "default"; + + status = "okay"; +}; diff --git a/arch/arm/mach-shmobile/board-lager-reference.c b/arch/arm/mach-shmobile/board-lager-reference.c index 2964995..04f24d8 100644 --- a/arch/arm/mach-shmobile/board-lager-reference.c +++ b/arch/arm/mach-shmobile/board-lager-reference.c @@ -37,24 +37,10 @@ static void __init lager_init_time(void) static void __init lager_add_standard_devices(void) { /* - * This is a really crude hack to provide clkdev support to the SCIF - * and CMT devices until they get moved to DT. + * This is a really crude hack to provide clkdev support to the CMT + * device until it gets moved to DT. */ - static const char * const scif_names[] = { - "scifa0", "scifa1", "scifb0", "scifb1", - "scifb2", "scifa2", "scif0", "scif1", - "hscif0", "hscif1", - }; struct clk *clk; - unsigned int i; - - for (i = 0; i < ARRAY_SIZE(scif_names); ++i) { - clk = clk_get(NULL, scif_names[i]); - if (clk) { - clk_register_clkdev(clk, NULL, "sh-sci.%u", i); - clk_put(clk); - } - } clk = clk_get(NULL, "cmt0"); if (clk) { diff --git a/arch/arm/mach-shmobile/clock-r8a7790.c b/arch/arm/mach-shmobile/clock-r8a7790.c index 12770cf..55ebf8f 100644 --- a/arch/arm/mach-shmobile/clock-r8a7790.c +++ b/arch/arm/mach-shmobile/clock-r8a7790.c @@ -271,14 +271,14 @@ static struct clk_lookup lookups[] = { CLKDEV_ICK_ID("du.0", "rcar-du-r8a7790", &mstp_clks[MSTP724]), CLKDEV_ICK_ID("du.1", "rcar-du-r8a7790", &mstp_clks[MSTP723]), CLKDEV_ICK_ID("du.2", "rcar-du-r8a7790", &mstp_clks[MSTP722]), - CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP204]), - CLKDEV_DEV_ID("sh-sci.1", &mstp_clks[MSTP203]), - CLKDEV_DEV_ID("sh-sci.2", &mstp_clks[MSTP206]), - CLKDEV_DEV_ID("sh-sci.3", &mstp_clks[MSTP207]), - CLKDEV_DEV_ID("sh-sci.4", &mstp_clks[MSTP216]), - CLKDEV_DEV_ID("sh-sci.5", &mstp_clks[MSTP202]), - CLKDEV_DEV_ID("sh-sci.6", &mstp_clks[MSTP721]), - CLKDEV_DEV_ID("sh-sci.7", &mstp_clks[MSTP720]), + CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP721]), + CLKDEV_DEV_ID("sh-sci.1", &mstp_clks[MSTP720]), + CLKDEV_DEV_ID("sh-sci.2", &mstp_clks[MSTP204]), + CLKDEV_DEV_ID("sh-sci.3", &mstp_clks[MSTP203]), + CLKDEV_DEV_ID("sh-sci.4", &mstp_clks[MSTP206]), + CLKDEV_DEV_ID("sh-sci.5", &mstp_clks[MSTP207]), + CLKDEV_DEV_ID("sh-sci.6", &mstp_clks[MSTP216]), + CLKDEV_DEV_ID("sh-sci.7", &mstp_clks[MSTP202]), CLKDEV_DEV_ID("sh-sci.8", &mstp_clks[MSTP717]), CLKDEV_DEV_ID("sh-sci.9", &mstp_clks[MSTP716]), CLKDEV_DEV_ID("r8a7790-ether", &mstp_clks[MSTP813]), diff --git a/arch/arm/mach-shmobile/setup-r8a7790.c b/arch/arm/mach-shmobile/setup-r8a7790.c index 70bb553..0c32e1d 100644 --- a/arch/arm/mach-shmobile/setup-r8a7790.c +++ b/arch/arm/mach-shmobile/setup-r8a7790.c @@ -107,14 +107,14 @@ static struct resource scif##index##_resources[] = { \ __R8A7790_SCIF(PORT_HSCIF, SCSCR_RE | SCSCR_TE, \ SCBRR_ALGO_6, index, baseaddr, irq) -R8A7790_SCIFA(0, 0xe6c40000, gic_spi(144)); /* SCIFA0 */ -R8A7790_SCIFA(1, 0xe6c50000, gic_spi(145)); /* SCIFA1 */ -R8A7790_SCIFB(2, 0xe6c20000, gic_spi(148)); /* SCIFB0 */ -R8A7790_SCIFB(3, 0xe6c30000, gic_spi(149)); /* SCIFB1 */ -R8A7790_SCIFB(4, 0xe6ce0000, gic_spi(150)); /* SCIFB2 */ -R8A7790_SCIFA(5, 0xe6c60000, gic_spi(151)); /* SCIFA2 */ -R8A7790_SCIF(6, 0xe6e60000, gic_spi(152)); /* SCIF0 */ -R8A7790_SCIF(7, 0xe6e68000, gic_spi(153)); /* SCIF1 */ +R8A7790_SCIF(0, 0xe6e60000, gic_spi(152)); /* SCIF0 */ +R8A7790_SCIF(1, 0xe6e68000, gic_spi(153)); /* SCIF1 */ +R8A7790_SCIFA(2, 0xe6c40000, gic_spi(144)); /* SCIFA0 */ +R8A7790_SCIFA(3, 0xe6c50000, gic_spi(145)); /* SCIFA1 */ +R8A7790_SCIFB(4, 0xe6c20000, gic_spi(148)); /* SCIFB0 */ +R8A7790_SCIFB(5, 0xe6c30000, gic_spi(149)); /* SCIFB1 */ +R8A7790_SCIFB(6, 0xe6ce0000, gic_spi(150)); /* SCIFB2 */ +R8A7790_SCIFA(7, 0xe6c60000, gic_spi(151)); /* SCIFA2 */ R8A7790_HSCIF(8, 0xe62c0000, gic_spi(154)); /* HSCIF0 */ R8A7790_HSCIF(9, 0xe62c8000, gic_spi(155)); /* HSCIF1 */ @@ -176,6 +176,11 @@ static const struct resource cmt00_resources[] __initconst = { void __init r8a7790_add_dt_devices(void) { + r8a7790_register_cmt(00); +} + +void __init r8a7790_add_standard_devices(void) +{ r8a7790_register_scif(0); r8a7790_register_scif(1); r8a7790_register_scif(2); @@ -186,11 +191,6 @@ void __init r8a7790_add_dt_devices(void) r8a7790_register_scif(7); r8a7790_register_scif(8); r8a7790_register_scif(9); - r8a7790_register_cmt(00); -} - -void __init r8a7790_add_standard_devices(void) -{ r8a7790_add_dt_devices(); r8a7790_register_irqc(0); r8a7790_register_thermal();