From patchwork Mon Mar 23 15:29:01 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Linus Walleij X-Patchwork-Id: 46201 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-la0-f70.google.com (mail-la0-f70.google.com [209.85.215.70]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id EAE1420D10 for ; Mon, 23 Mar 2015 15:29:21 +0000 (UTC) Received: by labgm9 with SMTP id gm9sf27860404lab.1 for ; Mon, 23 Mar 2015 08:29:20 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:delivered-to:from:to:cc:subject :date:message-id:sender:precedence:list-id:x-original-sender :x-original-authentication-results:mailing-list:list-post:list-help :list-archive:list-unsubscribe; bh=5U87vw3WK+b/H6M2WPOr53ja7c8xfcFxDlGzGcGuUHE=; b=OqEcvFhwNIG2YH+eIlDFPZp1x9JG9PCFLPPrXHJiR1a0Zqim6qpryCYF/RJxEVAKlu saMmvjOjGgpkR6d2KtWilDaUR9Sc2I3gYKJGfP5UO7KjnojwApYcudrS6israhBh6/Q7 JEPXmCD0WR/3j8Wx/M7MBZdSFlCQwSsLaGQDw0ytM0TudwynKiqymiGi0ROq845ZdsnR jPVtZ6rhbby9V7YU+9oE85270vLrhZ8JsVEh6sL5JdPmnSVYTqh4pgHGccLJr36HO2MQ zs78uxKZiMX/0QMZQJAh/yxsqmCBSJY7ixbNjoY9E1f/EVQqTzZkbQSFgm/bFlG7F7Yr 7VZw== X-Gm-Message-State: ALoCoQlksR8mD7IqjqJQ74ZqIGZhBH6yzgDEs0LnYRzUE/GutnChvPUrlEEjWRisVmpg1wVJ9Vdl X-Received: by 10.181.29.66 with SMTP id ju2mr2152773wid.1.1427124560921; Mon, 23 Mar 2015 08:29:20 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: patchwork-forward@linaro.org Received: by 10.152.170.164 with SMTP id an4ls703316lac.19.gmail; Mon, 23 Mar 2015 08:29:20 -0700 (PDT) X-Received: by 10.152.170.164 with SMTP id an4mr70448757lac.9.1427124560724; Mon, 23 Mar 2015 08:29:20 -0700 (PDT) Received: from mail-lb0-f174.google.com (mail-lb0-f174.google.com. [209.85.217.174]) by mx.google.com with ESMTPS id a10si880725lak.61.2015.03.23.08.29.20 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 Mar 2015 08:29:20 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.217.174 as permitted sender) client-ip=209.85.217.174; Received: by lbbug6 with SMTP id ug6so26575202lbb.3 for ; Mon, 23 Mar 2015 08:29:20 -0700 (PDT) X-Received: by 10.112.130.195 with SMTP id og3mr82962774lbb.112.1427124560617; Mon, 23 Mar 2015 08:29:20 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.112.57.201 with SMTP id k9csp897548lbq; Mon, 23 Mar 2015 08:29:19 -0700 (PDT) X-Received: by 10.70.0.176 with SMTP id 16mr216057777pdf.78.1427124558659; Mon, 23 Mar 2015 08:29:18 -0700 (PDT) Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id ng17si1649225pdb.51.2015.03.23.08.29.16; Mon, 23 Mar 2015 08:29:18 -0700 (PDT) Received-SPF: none (google.com: linux-kernel-owner@vger.kernel.org does not designate permitted sender hosts) client-ip=209.132.180.67; Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752961AbbCWP3L (ORCPT + 27 others); Mon, 23 Mar 2015 11:29:11 -0400 Received: from mail-la0-f45.google.com ([209.85.215.45]:34888 "EHLO mail-la0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752916AbbCWP3I (ORCPT ); Mon, 23 Mar 2015 11:29:08 -0400 Received: by laae1 with SMTP id e1so4936853laa.2 for ; Mon, 23 Mar 2015 08:29:06 -0700 (PDT) X-Received: by 10.112.157.100 with SMTP id wl4mr85079135lbb.108.1427124546098; Mon, 23 Mar 2015 08:29:06 -0700 (PDT) Received: from localhost.localdomain ([85.235.11.236]) by mx.google.com with ESMTPSA id q7sm246439lag.27.2015.03.23.08.29.03 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 Mar 2015 08:29:04 -0700 (PDT) From: Linus Walleij To: Samuel Ortiz , Lee Jones , Dmitry Torokhov , linux-kernel@vger.kernel.org, linux-input@vger.kernel.org Cc: Linus Walleij Subject: [PATCH 1/2] input: touchscreen: stmpe: restrict to device tree mode Date: Mon, 23 Mar 2015 16:29:01 +0100 Message-Id: <1427124541-27509-1-git-send-email-linus.walleij@linaro.org> X-Mailer: git-send-email 1.9.3 Sender: linux-kernel-owner@vger.kernel.org Precedence: list List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: linus.walleij@linaro.org X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.217.174 as permitted sender) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , This strips the STMPE touchscreen input driver to only probe and acquire its configuration from the device tree. No in-kernel platforms use the static platform data so there is no point in keeping it around. Signed-off-by: Linus Walleij Acked-by: Lee Jones --- Dmitry if you can ACK this I think it is best of it's going in through Lee's MFD tree with some other cleanups. --- drivers/input/touchscreen/stmpe-ts.c | 86 +++++++++++++++++++++--------------- include/linux/mfd/stmpe.h | 43 ------------------ 2 files changed, 51 insertions(+), 78 deletions(-) diff --git a/drivers/input/touchscreen/stmpe-ts.c b/drivers/input/touchscreen/stmpe-ts.c index 2d5ff86b343f..88a4bc0787c9 100644 --- a/drivers/input/touchscreen/stmpe-ts.c +++ b/drivers/input/touchscreen/stmpe-ts.c @@ -63,6 +63,38 @@ #define STMPE_TS_NAME "stmpe-ts" #define XY_MASK 0xfff +/** + * struct stmpe_touch - stmpe811 touch screen controller state + * @stmpe: pointer back to STMPE MFD container + * @idev: registered input device + * @work: a work item used to scan the device + * @dev: a pointer back to the MFD cell struct device* + * @sample_time: ADC converstion time in number of clock. + * (0 -> 36 clocks, 1 -> 44 clocks, 2 -> 56 clocks, 3 -> 64 clocks, + * 4 -> 80 clocks, 5 -> 96 clocks, 6 -> 144 clocks), + * recommended is 4. + * @mod_12b: ADC Bit mode (0 -> 10bit ADC, 1 -> 12bit ADC) + * @ref_sel: ADC reference source + * (0 -> internal reference, 1 -> external reference) + * @adc_freq: ADC Clock speed + * (0 -> 1.625 MHz, 1 -> 3.25 MHz, 2 || 3 -> 6.5 MHz) + * @ave_ctrl: Sample average control + * (0 -> 1 sample, 1 -> 2 samples, 2 -> 4 samples, 3 -> 8 samples) + * @touch_det_delay: Touch detect interrupt delay + * (0 -> 10 us, 1 -> 50 us, 2 -> 100 us, 3 -> 500 us, + * 4-> 1 ms, 5 -> 5 ms, 6 -> 10 ms, 7 -> 50 ms) + * recommended is 3 + * @settling: Panel driver settling time + * (0 -> 10 us, 1 -> 100 us, 2 -> 500 us, 3 -> 1 ms, + * 4 -> 5 ms, 5 -> 10 ms, 6 for 50 ms, 7 -> 100 ms) + * recommended is 2 + * @fraction_z: Length of the fractional part in z + * (fraction_z ([0..7]) = Count of the fractional part) + * recommended is 7 + * @i_drive: current limit value of the touchscreen drivers + * (0 -> 20 mA typical 35 mA max, 1 -> 50 mA typical 80 mA max) + * + */ struct stmpe_touch { struct stmpe *stmpe; struct input_dev *idev; @@ -269,44 +301,28 @@ static void stmpe_ts_get_platform_info(struct platform_device *pdev, { struct stmpe *stmpe = dev_get_drvdata(pdev->dev.parent); struct device_node *np = pdev->dev.of_node; - struct stmpe_ts_platform_data *ts_pdata = NULL; + u32 val; ts->stmpe = stmpe; - if (stmpe->pdata && stmpe->pdata->ts) { - ts_pdata = stmpe->pdata->ts; - - ts->sample_time = ts_pdata->sample_time; - ts->mod_12b = ts_pdata->mod_12b; - ts->ref_sel = ts_pdata->ref_sel; - ts->adc_freq = ts_pdata->adc_freq; - ts->ave_ctrl = ts_pdata->ave_ctrl; - ts->touch_det_delay = ts_pdata->touch_det_delay; - ts->settling = ts_pdata->settling; - ts->fraction_z = ts_pdata->fraction_z; - ts->i_drive = ts_pdata->i_drive; - } else if (np) { - u32 val; - - if (!of_property_read_u32(np, "st,sample-time", &val)) - ts->sample_time = val; - if (!of_property_read_u32(np, "st,mod-12b", &val)) - ts->mod_12b = val; - if (!of_property_read_u32(np, "st,ref-sel", &val)) - ts->ref_sel = val; - if (!of_property_read_u32(np, "st,adc-freq", &val)) - ts->adc_freq = val; - if (!of_property_read_u32(np, "st,ave-ctrl", &val)) - ts->ave_ctrl = val; - if (!of_property_read_u32(np, "st,touch-det-delay", &val)) - ts->touch_det_delay = val; - if (!of_property_read_u32(np, "st,settling", &val)) - ts->settling = val; - if (!of_property_read_u32(np, "st,fraction-z", &val)) - ts->fraction_z = val; - if (!of_property_read_u32(np, "st,i-drive", &val)) - ts->i_drive = val; - } + if (!of_property_read_u32(np, "st,sample-time", &val)) + ts->sample_time = val; + if (!of_property_read_u32(np, "st,mod-12b", &val)) + ts->mod_12b = val; + if (!of_property_read_u32(np, "st,ref-sel", &val)) + ts->ref_sel = val; + if (!of_property_read_u32(np, "st,adc-freq", &val)) + ts->adc_freq = val; + if (!of_property_read_u32(np, "st,ave-ctrl", &val)) + ts->ave_ctrl = val; + if (!of_property_read_u32(np, "st,touch-det-delay", &val)) + ts->touch_det_delay = val; + if (!of_property_read_u32(np, "st,settling", &val)) + ts->settling = val; + if (!of_property_read_u32(np, "st,fraction-z", &val)) + ts->fraction_z = val; + if (!of_property_read_u32(np, "st,i-drive", &val)) + ts->i_drive = val; } static int stmpe_input_probe(struct platform_device *pdev) diff --git a/include/linux/mfd/stmpe.h b/include/linux/mfd/stmpe.h index c9d869027300..93e62ae32906 100644 --- a/include/linux/mfd/stmpe.h +++ b/include/linux/mfd/stmpe.h @@ -117,46 +117,6 @@ extern int stmpe_disable(struct stmpe *stmpe, unsigned int blocks); #define STMPE_GPIO_NOREQ_811_TOUCH (0xf0) -/** - * struct stmpe_ts_platform_data - stmpe811 touch screen controller platform - * data - * @sample_time: ADC converstion time in number of clock. - * (0 -> 36 clocks, 1 -> 44 clocks, 2 -> 56 clocks, 3 -> 64 clocks, - * 4 -> 80 clocks, 5 -> 96 clocks, 6 -> 144 clocks), - * recommended is 4. - * @mod_12b: ADC Bit mode (0 -> 10bit ADC, 1 -> 12bit ADC) - * @ref_sel: ADC reference source - * (0 -> internal reference, 1 -> external reference) - * @adc_freq: ADC Clock speed - * (0 -> 1.625 MHz, 1 -> 3.25 MHz, 2 || 3 -> 6.5 MHz) - * @ave_ctrl: Sample average control - * (0 -> 1 sample, 1 -> 2 samples, 2 -> 4 samples, 3 -> 8 samples) - * @touch_det_delay: Touch detect interrupt delay - * (0 -> 10 us, 1 -> 50 us, 2 -> 100 us, 3 -> 500 us, - * 4-> 1 ms, 5 -> 5 ms, 6 -> 10 ms, 7 -> 50 ms) - * recommended is 3 - * @settling: Panel driver settling time - * (0 -> 10 us, 1 -> 100 us, 2 -> 500 us, 3 -> 1 ms, - * 4 -> 5 ms, 5 -> 10 ms, 6 for 50 ms, 7 -> 100 ms) - * recommended is 2 - * @fraction_z: Length of the fractional part in z - * (fraction_z ([0..7]) = Count of the fractional part) - * recommended is 7 - * @i_drive: current limit value of the touchscreen drivers - * (0 -> 20 mA typical 35 mA max, 1 -> 50 mA typical 80 mA max) - * - * */ -struct stmpe_ts_platform_data { - u8 sample_time; - u8 mod_12b; - u8 ref_sel; - u8 adc_freq; - u8 ave_ctrl; - u8 touch_det_delay; - u8 settling; - u8 fraction_z; - u8 i_drive; -}; /** * struct stmpe_platform_data - STMPE platform data @@ -168,7 +128,6 @@ struct stmpe_ts_platform_data { * @irq_over_gpio: true if gpio is used to get irq * @irq_gpio: gpio number over which irq will be requested (significant only if * irq_over_gpio is true) - * @ts: touchscreen-specific platform data */ struct stmpe_platform_data { int id; @@ -178,8 +137,6 @@ struct stmpe_platform_data { bool irq_over_gpio; int irq_gpio; int autosleep_timeout; - - struct stmpe_ts_platform_data *ts; }; #endif