From patchwork Mon May 25 11:41:50 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 6473591 Return-Path: X-Original-To: patchwork-linux-spi@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id AD937C0020 for ; Mon, 25 May 2015 11:44:34 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id CA39120253 for ; Mon, 25 May 2015 11:44:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C3667203F1 for ; Mon, 25 May 2015 11:44:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752524AbbEYLmx (ORCPT ); Mon, 25 May 2015 07:42:53 -0400 Received: from mail-la0-f50.google.com ([209.85.215.50]:36299 "EHLO mail-la0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752498AbbEYLmv (ORCPT ); Mon, 25 May 2015 07:42:51 -0400 Received: by lagv1 with SMTP id v1so47827934lag.3; Mon, 25 May 2015 04:42:49 -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; bh=Oo4t4M6Yebp3HtsEamd3hK3OicSnIznoTJqXNsZ/GHY=; b=PjD4RV2wU02nMNBZytaYma9VJLfUBaw7M2c9B9D/V8u/sAhKwJjDbvUe3kRCoOLK9f /QrfK1cJax/bsGo1Enj4/SRTMg1fy9GPAeZEtSPX9PjAMY6kj2wIdXmo+/X+J5pn1CW3 SegXKIFUX74k4QNR75W5fGxvpwSsUSxGHDz7HC1nOgdQ6JqEsPbmXhyoz0jqozzFr485 JKLBl79GsaHy7Djefius7lJPYgm5Xs6hprAQxwQIdxhG8zXOm7Hfa4pMZTNJAz+kLGAo 5eH2EW9MYsdtrm+6lcdxyuTMo9siP2IbIa883tduoAW617sySZ1h4SzXuVkULjO1J4sW G+kA== X-Received: by 10.112.25.69 with SMTP id a5mr17875114lbg.16.1432554169451; Mon, 25 May 2015 04:42:49 -0700 (PDT) Received: from anuminas.rup.mentorg.com (ppp89-110-13-209.pppoe.avangarddsl.ru. [89.110.13.209]) by mx.google.com with ESMTPSA id si3sm2315895lbb.32.2015.05.25.04.42.47 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 25 May 2015 04:42:48 -0700 (PDT) From: Dmitry Eremin-Solenikov To: Russell King , Daniel Mack , Robert Jarzmik , Linus Walleij , Alexandre Courbot , Dmitry Torokhov , Samuel Ortiz , Lee Jones , Mark Brown , Jingoo Han , Liam Girdwood , Andrea Adami Cc: linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org, linux-input@vger.kernel.org, linux-spi@vger.kernel.org, alsa-devel@alsa-project.org Subject: [PATCH v4 15/18] ARM: pxa: poodle: use new LoCoMo driver Date: Mon, 25 May 2015 14:41:50 +0300 Message-Id: <1432554113-26280-16-git-send-email-dbaryshkov@gmail.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1432554113-26280-1-git-send-email-dbaryshkov@gmail.com> References: <1432554113-26280-1-git-send-email-dbaryshkov@gmail.com> Sender: linux-spi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-spi@vger.kernel.org X-Spam-Status: No, score=-6.8 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, T_DKIM_INVALID, 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 Convert poodle to use new mfd-based LoCoMo driver. Signed-off-by: Dmitry Eremin-Solenikov Reviewed-by: Linus Walleij Acked-by: Robert Jarzmik --- arch/arm/mach-pxa/Kconfig | 1 - arch/arm/mach-pxa/include/mach/poodle.h | 6 ---- arch/arm/mach-pxa/poodle.c | 58 ++++++++++++++++++++++++++++++--- 3 files changed, 54 insertions(+), 11 deletions(-) diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig index 8896e71..a2756b0 100644 --- a/arch/arm/mach-pxa/Kconfig +++ b/arch/arm/mach-pxa/Kconfig @@ -481,7 +481,6 @@ config MACH_POODLE bool "Enable Sharp SL-5600 (Poodle) Support" depends on PXA_SHARPSL select PXA25x - select SHARP_LOCOMO config MACH_CORGI bool "Enable Sharp SL-C700 (Corgi) Support" diff --git a/arch/arm/mach-pxa/include/mach/poodle.h b/arch/arm/mach-pxa/include/mach/poodle.h index b56b193..5905cf1 100644 --- a/arch/arm/mach-pxa/include/mach/poodle.h +++ b/arch/arm/mach-pxa/include/mach/poodle.h @@ -81,12 +81,6 @@ #define POODLE_GPIO_L_LCLK (POODLE_SCOOP_GPIO_BASE + 10) #define POODLE_GPIO_HS_OUT (POODLE_SCOOP_GPIO_BASE + 11) -#define POODLE_LOCOMO_GPIO_AMP_ON LOCOMO_GPIO(8) -#define POODLE_LOCOMO_GPIO_MUTE_L LOCOMO_GPIO(10) -#define POODLE_LOCOMO_GPIO_MUTE_R LOCOMO_GPIO(11) -#define POODLE_LOCOMO_GPIO_232VCC_ON LOCOMO_GPIO(12) -#define POODLE_LOCOMO_GPIO_JK_B LOCOMO_GPIO(13) - #define POODLE_NR_IRQS (IRQ_BOARD_START + 4) /* 4 for LoCoMo */ extern struct platform_device poodle_locomo_device; diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c index 195b112..0236ee8 100644 --- a/arch/arm/mach-pxa/poodle.c +++ b/arch/arm/mach-pxa/poodle.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -31,6 +32,8 @@ #include #include #include +#include +#include #include #include @@ -49,7 +52,6 @@ #include #include -#include #include #include "generic.h" @@ -179,7 +181,8 @@ static struct resource locomo_resources[] = { }; static struct locomo_platform_data locomo_info = { - .irq_base = IRQ_BOARD_START, + .gpio_base = -1, + .comadj = 118, }; struct platform_device poodle_locomo_device = { @@ -192,8 +195,6 @@ struct platform_device poodle_locomo_device = { }, }; -EXPORT_SYMBOL(poodle_locomo_device); - #if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MODULE) static struct pxa2xx_spi_master poodle_spi_info = { .num_chipselect = 1, @@ -424,6 +425,47 @@ static struct i2c_board_info __initdata poodle_i2c_devices[] = { { I2C_BOARD_INFO("wm8731", 0x1b) }, }; +static struct iio_map locomo_iio_map[] = { + { + .consumer_dev_name = "locomo-lcd.0", + .consumer_channel = "comadj", + .adc_channel_label = "CH0", + }, + { } +}; + +static struct i2c_board_info locomo_i2c_devs[] __initdata = { + { + I2C_BOARD_INFO("m62332", 0x4e), + .platform_data = locomo_iio_map, + }, +}; + +static struct gpiod_lookup_table poodle_audio_gpios_table = { + .dev_id = "poodle-audio", + .table = { + GPIO_LOOKUP("locomo-gpio", 10, "mute-l", GPIO_ACTIVE_LOW), + GPIO_LOOKUP("locomo-gpio", 11, "mute-r", GPIO_ACTIVE_LOW), + GPIO_LOOKUP("locomo-gpio", 8, "amp-on", GPIO_ACTIVE_LOW), + { }, + }, +}, poodle_bl_gpios_table = { + .dev_id = "locomo-backlight.0", + .table = { + GPIO_LOOKUP("locomo-gpio", 9, "flvr", GPIO_ACTIVE_HIGH), + { }, + }, +}, poodle_lcd_gpios_table = { + .dev_id = "locomo-lcd.0", + .table = { + GPIO_LOOKUP("locomo-gpio", 4, "VSHA", GPIO_ACTIVE_HIGH), + GPIO_LOOKUP("locomo-gpio", 5, "VSHD", GPIO_ACTIVE_HIGH), + GPIO_LOOKUP("locomo-gpio", 6, "Vee", GPIO_ACTIVE_HIGH), + GPIO_LOOKUP("locomo-gpio", 7, "MOD", GPIO_ACTIVE_HIGH), + { }, + }, +}; + static void poodle_poweroff(void) { pxa_restart(REBOOT_HARD, NULL); @@ -445,6 +487,13 @@ static void __init poodle_init(void) platform_scoop_config = &poodle_pcmcia_config; + if (sharpsl_param.comadj != -1) + locomo_info.comadj = sharpsl_param.comadj; + + gpiod_add_lookup_table(&poodle_audio_gpios_table); + gpiod_add_lookup_table(&poodle_bl_gpios_table); + gpiod_add_lookup_table(&poodle_lcd_gpios_table); + ret = platform_add_devices(devices, ARRAY_SIZE(devices)); if (ret) pr_warn("poodle: Unable to register LoCoMo device\n"); @@ -455,6 +504,7 @@ static void __init poodle_init(void) pxa_set_ficp_info(&poodle_ficp_platform_data); pxa_set_i2c_info(NULL); i2c_register_board_info(0, ARRAY_AND_SIZE(poodle_i2c_devices)); + i2c_register_board_info(1, ARRAY_AND_SIZE(locomo_i2c_devs)); poodle_init_spi(); regulator_has_full_constraints(); }