From patchwork Mon Sep 28 21:15:33 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Cvek X-Patchwork-Id: 7280481 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.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id C3B339F536 for ; Mon, 28 Sep 2015 21:19:56 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id D8828206EB for ; Mon, 28 Sep 2015 21:19:55 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F17FC206F9 for ; Mon, 28 Sep 2015 21:19:54 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1Zgfoe-0003FR-U1; Mon, 28 Sep 2015 21:18:32 +0000 Received: from bubo.tul.cz ([2001:718:1c01:16::aa]) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1Zgfm2-0001cd-BP for linux-arm-kernel@lists.infradead.org; Mon, 28 Sep 2015 21:15:51 +0000 Received: from [78.80.185.17] (78-80-185-17.tmcz.cz [78.80.185.17]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by bubo.tul.cz (Postfix) with ESMTPSA id 120D61F0004; Mon, 28 Sep 2015 23:15:21 +0200 (CEST) From: Petr Cvek Subject: [PATCH v4 07/26] ARM: pxa: magician: Fix HTC Magician pin mux definitions To: robert.jarzmik@free.fr, philipp.zabel@gmail.com, daniel@zonque.org, haojian.zhuang@gmail.com, linux@arm.linux.org.uk References: Message-ID: <5609ADF5.9070003@tul.cz> Date: Mon, 28 Sep 2015 23:15:33 +0200 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20150928_141550_800298_7F852ED7 X-CRM114-Status: GOOD ( 12.88 ) X-Spam-Score: -2.6 (--) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org 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, T_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 This patch fixes a pin mux for the HTC Magician machine. Wrong and missing definitions caused a bad LCD operation and an unavailability of several peripherals. Signed-off-by: Petr Cvek --- arch/arm/mach-pxa/magician.c | 77 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 70 insertions(+), 7 deletions(-) diff --git a/arch/arm/mach-pxa/magician.c b/arch/arm/mach-pxa/magician.c index a93ed14..91d302b 100644 --- a/arch/arm/mach-pxa/magician.c +++ b/arch/arm/mach-pxa/magician.c @@ -4,8 +4,9 @@ * and T-Mobile MDA Compact. * * Copyright (c) 2006-2007 Philipp Zabel + * Copyright (c) 2014-2015 Petr Cvek (massive rework) * - * Based on hx4700.c, spitz.c and others. + * Based on hx4700.c, spitz.c, board-overo.c and others. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -56,6 +57,8 @@ static unsigned long magician_pin_config[] __initdata = { GPIO79_nCS_3, /* EGPIO CPLD */ GPIO80_nCS_4, GPIO33_nCS_5, + GPIO49_nPWE, + GPIO18_RDY, /* I2C UDA1380 + OV9640 */ GPIO117_I2C_SCL, @@ -64,6 +67,10 @@ static unsigned long magician_pin_config[] __initdata = { /* PWM 0 - LCD backlight */ GPIO16_PWM0_OUT, + /* Omnivision camera power and reset GPIO */ + MFP_CFG_OUT(GPIO116, AF0, DRIVE_HIGH), /* /Enable */ + MFP_CFG_OUT(GPIO57, AF0, DRIVE_HIGH), /* Reset */ + /* I2S UDA1380 capture */ GPIO28_I2S_BITCLK_OUT, GPIO29_I2S_SDATA_IN, @@ -89,8 +96,26 @@ static unsigned long magician_pin_config[] __initdata = { GPIO111_MMC_DAT_3, GPIO112_MMC_CMD, - /* LCD */ - GPIOxx_LCD_TFT_16BPP, + /* + * LCD + * NOTICE Samsung LTP280QV: + * cannot use GPIOxx_LCD_TFT_16BPP, GPIO75 is LCD power, + * 74 unused (AF0 by bootloader?) + */ + GPIOxx_LCD_16BPP, + GPIO76_LCD_PCLK, + GPIO77_LCD_BIAS, /* data_valid (v/hsync) (ADS7846 sync?) */ + + /* NOTICE valid LCD init sequence */ + + /* for GPIO75_MAGICIAN_SAMSUNG_POWER */ + MFP_CFG_OUT(GPIO75, AF0, DRIVE_HIGH), + /* for GPIO106_MAGICIAN_LCD_DCDC_NRESET */ + MFP_CFG_OUT(GPIO106, AF0, DRIVE_HIGH), + /* for GPIO104_MAGICIAN_LCD_VOFF_EN */ + MFP_CFG_OUT(GPIO104, AF0, DRIVE_HIGH), + /* for GPIO105_MAGICIAN_LCD_VON_EN */ + MFP_CFG_OUT(GPIO105, AF0, DRIVE_HIGH), /* QCI camera interface */ GPIO12_CIF_DD_7, @@ -107,16 +132,54 @@ static unsigned long magician_pin_config[] __initdata = { GPIO85_CIF_LV, /* Magician specific input GPIOs */ - GPIO9_GPIO, /* unknown */ GPIO10_GPIO, /* GSM_IRQ */ GPIO13_GPIO, /* CPLD_IRQ */ GPIO107_GPIO, /* DS1WM_IRQ */ GPIO108_GPIO, /* GSM_READY */ GPIO115_GPIO, /* nPEN_IRQ */ - /* I2C */ - GPIO117_I2C_SCL, - GPIO118_I2C_SDA, + /* Vibration motor */ + MFP_CFG_OUT(GPIO22, AF0, DRIVE_LOW), + + /* Keypad LEDs (red/green phone) */ + MFP_CFG_OUT(GPIO103, AF0, DRIVE_LOW), + + /* GSM pins */ + MFP_CFG_OUT(GPIO11, AF0, DRIVE_LOW), /* CPU is unavailable(?) */ + MFP_CFG_OUT(GPIO26, AF0, DRIVE_LOW), /* GSM power */ + MFP_CFG_OUT(GPIO86, AF0, DRIVE_HIGH), /* GSM reset */ + + /* USB connector */ + MFP_CFG_OUT(GPIO27, AF0, DRIVE_LOW), /* enable usbc pull-up */ + MFP_CFG_OUT(GPIO30, AF0, DRIVE_LOW), /* /charging enable */ + + /* FFUART, FIXME never observed to do something, GSM data? */ + GPIO34_FFUART_RXD, + GPIO35_FFUART_CTS, + GPIO36_FFUART_DCD, + GPIO39_FFUART_TXD, + GPIO41_FFUART_RTS, + + /* BTUART, AT commands/data, HTC port line discipline */ + GPIO42_BTUART_RXD, + GPIO43_BTUART_TXD, + GPIO44_BTUART_CTS, + GPIO45_BTUART_RTS, + + /* Power I2C, controller will overrule GPIO */ + GPIO3_GPIO, /* SCL */ + GPIO4_GPIO, /* SDA */ + + /* IrDA GPIOs, pxaficp will change it to correct AFx */ + MFP_CFG_IN(GPIO46, AF0), + MFP_CFG_OUT(GPIO47, AF0, DRIVE_LOW), + /* FIXME: probably IrDA transmitter disable */ + MFP_CFG_OUT(GPIO83, AF0, DRIVE_HIGH), + + /* FIXME yet unknown exact function */ + GPIO9_GPIO, /* unknown */ + MFP_CFG_OUT(GPIO40, AF0, DRIVE_LOW), /* FIXME GSM? */ + MFP_CFG_OUT(GPIO87, AF0, DRIVE_LOW), /* FIXME GSM? */ }; /*