From patchwork Sat Sep 5 12:58:38 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= X-Patchwork-Id: 514819 X-Patchwork-Delegate: jogo@openwrt.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from arrakis.dune.hu (arrakis.dune.hu [78.24.191.176]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 0804C1401AF for ; Sat, 5 Sep 2015 23:02:42 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=vW2CV7+S; dkim-atps=neutral Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id C221028C637; Sat, 5 Sep 2015 14:59:06 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on arrakis.dune.hu X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=unavailable version=3.3.2 Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id 8ABAB28C0E0 for ; Sat, 5 Sep 2015 14:57:14 +0200 (CEST) X-policyd-weight: using cached result; rate:hard: -8.5 Received: from mail-wi0-f179.google.com (mail-wi0-f179.google.com [209.85.212.179]) by arrakis.dune.hu (Postfix) with ESMTPS for ; Sat, 5 Sep 2015 14:57:12 +0200 (CEST) Received: by wiclk2 with SMTP id lk2so46318838wic.0 for ; Sat, 05 Sep 2015 05:58:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; bh=osQurB4WnMHLhtkwIh6+EwPO9UfDZdugipzhpVQtXPI=; b=vW2CV7+Sbb2YHpYVOiKkmUERUVW29UswP1WAJ6KO50i5eJiEIsAVq0uwlwUJqvV99m 43NZZ/4aUhZUaIFo+PFov7P8XuvT2W1oXNo86RBdvr+o6sIjWHPBnZiqo2oiAUejbq8v Swr3kOyY55DhHc+Y3p+TAbKUKAaaFD5ZuygPNFu2HvdC6iegpB2fTWBq1hL4NKgw0tqY xxbzONNFsJp4o+M5Zj7rm08/c56j3lGNmkb83rZN6KyhPSouhYP5tj11Y4T64V+uNqUs eo06NuKJV0Ep39prxnI58SI950hhnhtxgDM1nVkeS3ldQgbspLw884OsAb/Wx2AbImdP xiPA== X-Received: by 10.194.142.197 with SMTP id ry5mr7118502wjb.106.1441457893085; Sat, 05 Sep 2015 05:58:13 -0700 (PDT) Received: from skynet.lan (79.Red-83-35-233.dynamicIP.rima-tde.net. [83.35.233.79]) by smtp.gmail.com with ESMTPSA id f7sm9950877wij.17.2015.09.05.05.58.12 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 05 Sep 2015 05:58:12 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: openwrt-devel@lists.openwrt.org, jogo@openwrt.org Date: Sat, 5 Sep 2015 14:58:38 +0200 Message-Id: <1441457918-9494-3-git-send-email-noltari@gmail.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1441457918-9494-1-git-send-email-noltari@gmail.com> References: <1441457918-9494-1-git-send-email-noltari@gmail.com> MIME-Version: 1.0 Subject: [OpenWrt-Devel] [PATCH 3/3] brcm63xx: configure pinmux for Serial LEDs. X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: openwrt-devel-bounces@lists.openwrt.org Sender: "openwrt-devel" This is a temporary hack until a proper pinmux driver for bcm63xx is added Signed-off-by: Álvaro Fernández Rojas --- .../805-BCM63XX-pinmux-serial-leds.patch | 49 ++++++++++++++++++++++ .../805-BCM63XX-pinmux-serial-leds.patch | 49 ++++++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 target/linux/brcm63xx/patches-3.18/805-BCM63XX-pinmux-serial-leds.patch create mode 100644 target/linux/brcm63xx/patches-4.1/805-BCM63XX-pinmux-serial-leds.patch diff --git a/target/linux/brcm63xx/patches-3.18/805-BCM63XX-pinmux-serial-leds.patch b/target/linux/brcm63xx/patches-3.18/805-BCM63XX-pinmux-serial-leds.patch new file mode 100644 index 0000000..0af0ac9 --- /dev/null +++ b/target/linux/brcm63xx/patches-3.18/805-BCM63XX-pinmux-serial-leds.patch @@ -0,0 +1,49 @@ +diff -uprN a/arch/mips/bcm63xx/boards/board_common.c b/arch/mips/bcm63xx/boards/board_common.c +--- a/arch/mips/bcm63xx/boards/board_common.c 2015-03-16 16:07:28.171114109 +0100 ++++ b/arch/mips/bcm63xx/boards/board_common.c 2015-05-18 22:53:49.967864529 +0200 +@@ -222,6 +222,45 @@ int __init board_register_devices(void) + } + #endif + ++ /* Serial LEDs pinmux */ ++ if (board_of_device_present("leds0")) { ++ u32 val, val2; ++ ++ val = bcm_gpio_readl(GPIO_MODE_REG); ++ if (BCMCPU_IS_6318()) { ++ val |= BIT(6) | BIT(7); ++ ++ #define PINMUX_EPHY2_ACT_LED (1 << (6 << 1)) ++ #define PINMUX_EPHY3_ACT_LED (1 << (7 << 1)) ++ #define PINMUX_SERIAL_LED_DATA (3 << (6 << 1)) ++ #define PINMUX_SERIAL_LED_CLK (3 << (7 << 1)) ++ ++ val2 = bcm_gpio_readl(GPIO_PINMUX_SEL0_6318); ++ val2 &= ~(PINMUX_EPHY2_ACT_LED | PINMUX_EPHY3_ACT_LED); ++ val2 |= (PINMUX_SERIAL_LED_DATA | PINMUX_SERIAL_LED_CLK); ++ bcm_gpio_writel(val2, GPIO_PINMUX_SEL0_6318); ++ } else if (BCMCPU_IS_6328()) { ++ val |= BIT(6) | BIT(7); ++ } else if (BCMCPU_IS_63268()) { ++ val |= BIT(0) | BIT(1); ++ } else if (BCMCPU_IS_6358()) { ++ val |= BIT(10); ++ ++ val2 = bcm_gpio_readl(GPIO_CTL_LO_REG); ++ val2 |= BIT(6) | BIT(7); ++ bcm_gpio_writel(val2, GPIO_CTL_LO_REG); ++ } else if (BCMCPU_IS_6362()) { ++ val |= BIT(2) | BIT(3); ++ } else if (BCMCPU_IS_6368()) { ++ val |= BIT(3) | BIT(4); ++ ++ val2 = bcm_gpio_readl(GPIO_CTL_LO_REG); ++ val2 |= BIT(3) | BIT(4); ++ bcm_gpio_writel(val2, GPIO_CTL_LO_REG); ++ } ++ bcm_gpio_writel(val, GPIO_MODE_REG); ++ } ++ + bcm63xx_gpio_init(); + + if (board.has_uart0) diff --git a/target/linux/brcm63xx/patches-4.1/805-BCM63XX-pinmux-serial-leds.patch b/target/linux/brcm63xx/patches-4.1/805-BCM63XX-pinmux-serial-leds.patch new file mode 100644 index 0000000..0af0ac9 --- /dev/null +++ b/target/linux/brcm63xx/patches-4.1/805-BCM63XX-pinmux-serial-leds.patch @@ -0,0 +1,49 @@ +diff -uprN a/arch/mips/bcm63xx/boards/board_common.c b/arch/mips/bcm63xx/boards/board_common.c +--- a/arch/mips/bcm63xx/boards/board_common.c 2015-03-16 16:07:28.171114109 +0100 ++++ b/arch/mips/bcm63xx/boards/board_common.c 2015-05-18 22:53:49.967864529 +0200 +@@ -222,6 +222,45 @@ int __init board_register_devices(void) + } + #endif + ++ /* Serial LEDs pinmux */ ++ if (board_of_device_present("leds0")) { ++ u32 val, val2; ++ ++ val = bcm_gpio_readl(GPIO_MODE_REG); ++ if (BCMCPU_IS_6318()) { ++ val |= BIT(6) | BIT(7); ++ ++ #define PINMUX_EPHY2_ACT_LED (1 << (6 << 1)) ++ #define PINMUX_EPHY3_ACT_LED (1 << (7 << 1)) ++ #define PINMUX_SERIAL_LED_DATA (3 << (6 << 1)) ++ #define PINMUX_SERIAL_LED_CLK (3 << (7 << 1)) ++ ++ val2 = bcm_gpio_readl(GPIO_PINMUX_SEL0_6318); ++ val2 &= ~(PINMUX_EPHY2_ACT_LED | PINMUX_EPHY3_ACT_LED); ++ val2 |= (PINMUX_SERIAL_LED_DATA | PINMUX_SERIAL_LED_CLK); ++ bcm_gpio_writel(val2, GPIO_PINMUX_SEL0_6318); ++ } else if (BCMCPU_IS_6328()) { ++ val |= BIT(6) | BIT(7); ++ } else if (BCMCPU_IS_63268()) { ++ val |= BIT(0) | BIT(1); ++ } else if (BCMCPU_IS_6358()) { ++ val |= BIT(10); ++ ++ val2 = bcm_gpio_readl(GPIO_CTL_LO_REG); ++ val2 |= BIT(6) | BIT(7); ++ bcm_gpio_writel(val2, GPIO_CTL_LO_REG); ++ } else if (BCMCPU_IS_6362()) { ++ val |= BIT(2) | BIT(3); ++ } else if (BCMCPU_IS_6368()) { ++ val |= BIT(3) | BIT(4); ++ ++ val2 = bcm_gpio_readl(GPIO_CTL_LO_REG); ++ val2 |= BIT(3) | BIT(4); ++ bcm_gpio_writel(val2, GPIO_CTL_LO_REG); ++ } ++ bcm_gpio_writel(val, GPIO_MODE_REG); ++ } ++ + bcm63xx_gpio_init(); + + if (board.has_uart0)