Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp880590pxu; Wed, 2 Dec 2020 05:57:32 -0800 (PST) X-Google-Smtp-Source: ABdhPJyEI5/T7XJ527dd4wYl/LPXM+sLrW66xDQ0XdzqCByGmCX1k5HhRvuHVw8LCxvW1aC4k68O X-Received: by 2002:a17:906:f2c3:: with SMTP id gz3mr2476131ejb.448.1606917452095; Wed, 02 Dec 2020 05:57:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1606917452; cv=none; d=google.com; s=arc-20160816; b=F2Ej7qylqlU9nc6kpiH54qDGDA7fJqNd+LaIVQ8czj27tJthLo74p4RqT2jwSkmzJS tBEhnOyA5BhXB7SNIIBXhEkuCbvENlHxb73fZV1K55rKUIfkSO5mVMYJGA6F7jndl4uH Qhg8zw1byerzNzr2FIAMNFS7XWkYnUto+OTZuDrVmx0sZrmjiHMUYrjCeQzYBgtLYtOb k/HiySf3rnQ7aZmzWogaJ1YdxtzCGDMrT2jv4Xe/4ECDozMD45WAuKDgwRkPV/dWaxZ6 9kSHB0yaPcnvI+vVqM5eSnol4XfLdYpdMuq1L8ud8qYK5B1aMdMSKyRSst5slrDN56mv RkMA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from; bh=dVVhZPQAQnqdyd0dicRnJmrAk7/GMU2y2WhWkggySNE=; b=eC0ahrGmJaI4WCEkz8aHEHoreJx7lKCzLf6c3ujljggSj93sumsKlq26GJlMVY6GWK Bk+F2XIsgDn2VxpfCakoiOLsCc7J+Wecdu58W3gBhDeRHk9XSTn88aPuyPV3cmtnYdvC WwjPxc4oKDTbYvHutMYL9Qy62n2xOl5nNafZX86uCBpTuonbe/LYZFlNau6a5pr69134 qeME2PlwApWGeWWOE1eU8864WISqf5UQYO5G/wFV1SkfB5aC4zNAZ1SmLy4qPbrlL+Zz eQzHdpabPRICdq+n7Smv1Xr1Un6xHsK3pLaEFhGAOO8rTmZTnQLuZyZIGupejub/OM/a mO3w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w22si853809ejf.740.2020.12.02.05.57.08; Wed, 02 Dec 2020 05:57:32 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388853AbgLBNza (ORCPT + 99 others); Wed, 2 Dec 2020 08:55:30 -0500 Received: from foss.arm.com ([217.140.110.172]:40316 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727927AbgLBNz2 (ORCPT ); Wed, 2 Dec 2020 08:55:28 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id E4DE111B3; Wed, 2 Dec 2020 05:54:42 -0800 (PST) Received: from localhost.localdomain (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 4692F3F718; Wed, 2 Dec 2020 05:54:41 -0800 (PST) From: Andre Przywara To: Maxime Ripard , Chen-Yu Tsai , Jernej Skrabec Cc: Icenowy Zheng , linux-arm-kernel@lists.infradead.org, linux-sunxi@googlegroups.com, Linus Walleij , Rob Herring , Yangtao Li , linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Andre Przywara Subject: [PATCH 3/8] pinctrl: sunxi: Add support for the Allwinner H616-R pin controller Date: Wed, 2 Dec 2020 13:54:04 +0000 Message-Id: <20201202135409.13683-4-andre.przywara@arm.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20201202135409.13683-1-andre.przywara@arm.com> References: <20201202135409.13683-1-andre.przywara@arm.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org There are only two pins left now, used to connect to the PMIC via I2C. Signed-off-by: Andre Przywara --- drivers/pinctrl/sunxi/Kconfig | 5 ++ drivers/pinctrl/sunxi/Makefile | 1 + drivers/pinctrl/sunxi/pinctrl-sun50i-h616-r.c | 58 +++++++++++++++++++ 3 files changed, 64 insertions(+) create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun50i-h616-r.c diff --git a/drivers/pinctrl/sunxi/Kconfig b/drivers/pinctrl/sunxi/Kconfig index 73e88ce71a48..33751a6a0757 100644 --- a/drivers/pinctrl/sunxi/Kconfig +++ b/drivers/pinctrl/sunxi/Kconfig @@ -124,4 +124,9 @@ config PINCTRL_SUN50I_H616 default ARM64 && ARCH_SUNXI select PINCTRL_SUNXI +config PINCTRL_SUN50I_H616_R + bool "Support for the Allwinner H616 R-PIO" + default ARM64 && ARCH_SUNXI + select PINCTRL_SUNXI + endif diff --git a/drivers/pinctrl/sunxi/Makefile b/drivers/pinctrl/sunxi/Makefile index 5359327a3c8f..d3440c42b9d6 100644 --- a/drivers/pinctrl/sunxi/Makefile +++ b/drivers/pinctrl/sunxi/Makefile @@ -24,5 +24,6 @@ obj-$(CONFIG_PINCTRL_SUN50I_H5) += pinctrl-sun50i-h5.o obj-$(CONFIG_PINCTRL_SUN50I_H6) += pinctrl-sun50i-h6.o obj-$(CONFIG_PINCTRL_SUN50I_H6_R) += pinctrl-sun50i-h6-r.o obj-$(CONFIG_PINCTRL_SUN50I_H616) += pinctrl-sun50i-h616.o +obj-$(CONFIG_PINCTRL_SUN50I_H616_R) += pinctrl-sun50i-h616-r.o obj-$(CONFIG_PINCTRL_SUN9I_A80) += pinctrl-sun9i-a80.o obj-$(CONFIG_PINCTRL_SUN9I_A80_R) += pinctrl-sun9i-a80-r.o diff --git a/drivers/pinctrl/sunxi/pinctrl-sun50i-h616-r.c b/drivers/pinctrl/sunxi/pinctrl-sun50i-h616-r.c new file mode 100644 index 000000000000..eb76c009bf24 --- /dev/null +++ b/drivers/pinctrl/sunxi/pinctrl-sun50i-h616-r.c @@ -0,0 +1,58 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Allwinner H616 R_PIO pin controller driver + * + * Copyright (C) 2020 Arm Ltd. + * Based on former work, which is: + * Copyright (C) 2017 Icenowy Zheng + * Copyright (C) 2014 Boris Brezillon + * Boris Brezillon + * Copyright (C) 2014 Maxime Ripard + * Maxime Ripard + */ + +#include +#include +#include +#include +#include +#include + +#include "pinctrl-sunxi.h" + +static const struct sunxi_desc_pin sun50i_h616_r_pins[] = { + SUNXI_PIN(SUNXI_PINCTRL_PIN(L, 0), + SUNXI_FUNCTION(0x0, "gpio_in"), + SUNXI_FUNCTION(0x1, "gpio_out"), + SUNXI_FUNCTION(0x3, "s_i2c")), /* SCK */ + SUNXI_PIN(SUNXI_PINCTRL_PIN(L, 1), + SUNXI_FUNCTION(0x0, "gpio_in"), + SUNXI_FUNCTION(0x1, "gpio_out"), + SUNXI_FUNCTION(0x3, "s_i2c")), /* SDA */ +}; + +static const struct sunxi_pinctrl_desc sun50i_h616_r_pinctrl_data = { + .pins = sun50i_h616_r_pins, + .npins = ARRAY_SIZE(sun50i_h616_r_pins), + .pin_base = PL_BASE, +}; + +static int sun50i_h616_r_pinctrl_probe(struct platform_device *pdev) +{ + return sunxi_pinctrl_init(pdev, + &sun50i_h616_r_pinctrl_data); +} + +static const struct of_device_id sun50i_h616_r_pinctrl_match[] = { + { .compatible = "allwinner,sun50i-h616-r-pinctrl", }, + {} +}; + +static struct platform_driver sun50i_h616_r_pinctrl_driver = { + .probe = sun50i_h616_r_pinctrl_probe, + .driver = { + .name = "sun50i-h616-r-pinctrl", + .of_match_table = sun50i_h616_r_pinctrl_match, + }, +}; +builtin_platform_driver(sun50i_h616_r_pinctrl_driver); -- 2.17.5