From patchwork Fri Sep 29 10:14:59 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Charles Keepax X-Patchwork-Id: 819850 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3y3SBB2fbJz9t2V for ; Fri, 29 Sep 2017 20:15:46 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752155AbdI2KPQ (ORCPT ); Fri, 29 Sep 2017 06:15:16 -0400 Received: from mx0b-001ae601.pphosted.com ([67.231.152.168]:38166 "EHLO mx0b-001ae601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752120AbdI2KPP (ORCPT ); Fri, 29 Sep 2017 06:15:15 -0400 Received: from pps.filterd (m0077474.ppops.net [127.0.0.1]) by mx0b-001ae601.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id v8TADsLJ022590; Fri, 29 Sep 2017 05:15:13 -0500 Authentication-Results: ppops.net; spf=none smtp.mailfrom=ckeepax@opensource.cirrus.com Received: from mail4.cirrus.com ([87.246.98.35]) by mx0b-001ae601.pphosted.com with ESMTP id 2d5m1na2uv-1; Fri, 29 Sep 2017 05:15:12 -0500 Received: from EX17.ad.cirrus.com (unknown [172.20.9.81]) by mail4.cirrus.com (Postfix) with ESMTP id 2D114611CE7C; Fri, 29 Sep 2017 05:15:11 -0500 (CDT) Received: from imbe.wolfsonmicro.main (198.61.95.81) by EX17.ad.cirrus.com (172.20.9.81) with Microsoft SMTP Server id 14.3.301.0; Fri, 29 Sep 2017 11:15:11 +0100 Received: from algalon.ad.cirrus.com (algalon.ad.cirrus.com [198.90.223.36]) by imbe.wolfsonmicro.main (8.14.4/8.14.4) with ESMTP id v8TAF3Uv010995; Fri, 29 Sep 2017 11:15:03 +0100 From: Charles Keepax To: CC: , , Subject: [PATCH 0/4] Add support for muxing individual pins Date: Fri, 29 Sep 2017 11:14:59 +0100 Message-ID: <20170929101503.6769-1-ckeepax@opensource.cirrus.com> X-Mailer: git-send-email 2.11.0 MIME-Version: 1.0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000 definitions=main-1709290149 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org This series add support for muxing individual pins within pin mux, rather than just whole groups. Mainly, I had two motivations here, one to avoid the need to add loads of groups containing individual pins and hardware that actually has some internal concept of groups of pins, and disambiguating that from individual pin muxing. I have marked it as RFC to just get peoples opinions at this stage, although it should be pretty well tested. Sorry about the amount of files touched in patch 2 it would be possible to drop it from the chain although it leaves the field rather inaccurately named. Also I have left all the existing code paths parsing all mux options as groups from DT, and added a new helper to unlock the pin based functionality this should ease the transition across. Thanks, Charles Charles Keepax (4): pinctrl: Factor out individual pin handling from pinmux_pins_show pinctrl: Rename mux group to group_or_pin to prepare for pin support pinctrl: Add support for muxing individual pins pinctrl: Add support for parsing individual pinmux from DT drivers/pinctrl/bcm/pinctrl-bcm2835.c | 2 +- drivers/pinctrl/core.c | 26 ++- drivers/pinctrl/core.h | 3 +- drivers/pinctrl/freescale/pinctrl-imx.c | 5 +- drivers/pinctrl/freescale/pinctrl-imx1-core.c | 5 +- drivers/pinctrl/freescale/pinctrl-mxs.c | 4 +- drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 2 +- drivers/pinctrl/mvebu/pinctrl-mvebu.c | 2 +- drivers/pinctrl/nomadik/pinctrl-abx500.c | 2 +- drivers/pinctrl/nomadik/pinctrl-nomadik.c | 2 +- drivers/pinctrl/pinconf-generic.c | 30 ++- drivers/pinctrl/pinctrl-at91.c | 5 +- drivers/pinctrl/pinctrl-lantiq.c | 2 +- drivers/pinctrl/pinctrl-rockchip.c | 5 +- drivers/pinctrl/pinctrl-rza1.c | 2 +- drivers/pinctrl/pinctrl-single.c | 4 +- drivers/pinctrl/pinctrl-st.c | 2 +- drivers/pinctrl/pinctrl-tz1090-pdc.c | 2 +- drivers/pinctrl/pinctrl-tz1090.c | 2 +- drivers/pinctrl/pinctrl-utils.c | 10 +- drivers/pinctrl/pinctrl-utils.h | 14 +- drivers/pinctrl/pinmux.c | 311 ++++++++++++++++++-------- drivers/pinctrl/samsung/pinctrl-exynos5440.c | 4 +- drivers/pinctrl/samsung/pinctrl-samsung.c | 2 +- drivers/pinctrl/sh-pfc/pinctrl.c | 2 +- drivers/pinctrl/sirf/pinctrl-atlas7.c | 3 +- drivers/pinctrl/sirf/pinctrl-sirf.c | 2 +- drivers/pinctrl/spear/pinctrl-spear.c | 2 +- drivers/pinctrl/stm32/pinctrl-stm32.c | 2 +- drivers/pinctrl/sunxi/pinctrl-sunxi.c | 2 +- drivers/pinctrl/vt8500/pinctrl-wmt.c | 2 +- include/linux/pinctrl/machine.h | 3 +- include/linux/pinctrl/pinconf-generic.h | 24 +- include/linux/pinctrl/pinmux.h | 7 + 34 files changed, 338 insertions(+), 159 deletions(-)