Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp326441imm; Wed, 11 Jul 2018 03:12:37 -0700 (PDT) X-Google-Smtp-Source: AAOMgpffFu55volcGYH+2D9twwf1vEDrQcLksrPRBDEexfO7XE1oN3IHfPakKAb73nWUZPpv1FXI X-Received: by 2002:a17:902:8f94:: with SMTP id z20-v6mr27838332plo.337.1531303957512; Wed, 11 Jul 2018 03:12:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531303957; cv=none; d=google.com; s=arc-20160816; b=u0mVViH2i14ql2aRbPupikuBxU/DKmowie8Tgek6D+mwNIbljPFjdRMOt7nc6S2Rbw u1s7hVLPIxDqor/HLuLYjxvCdrVM0l9muCUsJyBS81sBV8+cztMWyWwkHN35Y/q4WOJs HQgnmE8ro69eYL1ZI9zkbrHOQmvmOpchTm2ro78IlN0WuuPDpMsF0r1PGNxSNANFmee8 uU447xPewJPnESNzDjU/nqHU6zBs92Agob5gVck43E0vuCMULi38PgMW0wxXDQ+s3nJ4 vHdP/BdusNOYeFFwv5LW+r2vu8OVNkTA/Zep/Rm5SKw0LM9/+VNZKmrAfMXG2x5x9Wll Zcgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :arc-authentication-results; bh=OJlQTtPZhw/uVuZhmXhSxCBVSwGa784KYxPZSokFbJY=; b=KxiKr8qjbr9JdzjBnPsXPDhdggkL9sOznkWJqawuIy6urZYVOfTp+i+5viKskp+x6R FEQpSHz7pwdPyO8fodxSiEW5e8aUZ2u6vZvUM/rld49fWbs6TEioN+SaM2XOHQWQc6+1 XaFqkOANGc32AHE5oN9Yu7Rek32NJZ/LzKFdT4CQRqSLvypzI+llFQPLLEoa+a5tnsSK 5O02ai+Kbn1m7qzK8unWVDbsJLDjtrI5GRCGLBjHsC7mGSQG0FlQWRTXEdqEkgMgeVI3 XJvuwfCbV+GF8vsSdSWPYeK/KBpUFMcSG/Jd+yu4znsv2UsWYuLDSSYrplZ2zp2zhKQH qOVQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nvidia.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y1-v6si6491611pgf.146.2018.07.11.03.12.21; Wed, 11 Jul 2018 03:12:37 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nvidia.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726682AbeGKJ0h (ORCPT + 99 others); Wed, 11 Jul 2018 05:26:37 -0400 Received: from hqemgate16.nvidia.com ([216.228.121.65]:1098 "EHLO hqemgate16.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726368AbeGKJ0g (ORCPT ); Wed, 11 Jul 2018 05:26:36 -0400 Received: from hqpgpgate102.nvidia.com (Not Verified[216.228.121.13]) by hqemgate16.nvidia.com (using TLS: TLSv1, AES128-SHA) id ; Wed, 11 Jul 2018 02:23:07 -0700 Received: from HQMAIL101.nvidia.com ([172.20.161.6]) by hqpgpgate102.nvidia.com (PGP Universal service); Wed, 11 Jul 2018 02:23:08 -0700 X-PGP-Universal: processed; by hqpgpgate102.nvidia.com on Wed, 11 Jul 2018 02:23:08 -0700 Received: from dhcp-10-21-25-168 (10.21.25.201) by HQMAIL101.nvidia.com (172.20.187.10) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Wed, 11 Jul 2018 09:23:09 +0000 Date: Wed, 11 Jul 2018 12:23:03 +0300 From: Aapo Vienamo To: Jon Hunter CC: Rob Herring , Mark Rutland , Thierry Reding , Mikko Perttunen , , , Subject: Re: [PATCH 4/6] soc/tegra: pmc: Use X macro to generate IO pad tables Message-ID: <20180711122303.45512721@dhcp-10-21-25-168> In-Reply-To: References: <1531226879-11802-1-git-send-email-avienamo@nvidia.com> <1531226879-11802-5-git-send-email-avienamo@nvidia.com> X-NVConfidentiality: public MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.21.25.201] X-ClientProxiedBy: UKMAIL101.nvidia.com (10.26.138.13) To HQMAIL101.nvidia.com (172.20.187.10) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 11 Jul 2018 09:30:57 +0100 Jon Hunter wrote: > On 10/07/18 13:47, Aapo Vienamo wrote: > > Refactor the IO pad tables into macro tables so that they can be reused > > to generate pinctrl pin descriptors. Also add a name field which is > > needed by pinctrl. > > > > Signed-off-by: Aapo Vienamo > > --- > > drivers/soc/tegra/pmc.c | 231 ++++++++++++++++++++++++++---------------------- > > 1 file changed, 126 insertions(+), 105 deletions(-) > > > > diff --git a/drivers/soc/tegra/pmc.c b/drivers/soc/tegra/pmc.c > > index 3f5b69fd..b833334 100644 > > --- a/drivers/soc/tegra/pmc.c > > +++ b/drivers/soc/tegra/pmc.c > > @@ -137,6 +137,7 @@ struct tegra_io_pad_soc { > > enum tegra_io_pad id; > > unsigned int dpd; > > unsigned int voltage; > > + const char *name; > > }; > > > > struct tegra_pmc_regs { > > @@ -1697,37 +1698,49 @@ static const u8 tegra124_cpu_powergates[] = { > > TEGRA_POWERGATE_CPU3, > > }; > > > > +#define TEGRA_IO_PAD(_id, _dpd, _voltage, _name) \ > > + (struct tegra_io_pad_soc) { \ > > + .id = _id, \ > > + .dpd = _dpd, \ > > + .voltage = _voltage, \ > > + .name = _name, \ > > + }, > > + > > +#define TEGRA124_IO_PAD_TABLE(_pad) \ > > + /* .id .dpd .voltage .name */ \ > > + _pad(TEGRA_IO_PAD_AUDIO, 17, UINT_MAX, "audio") \ > > + _pad(TEGRA_IO_PAD_BB, 15, UINT_MAX, "bb") \ > > + _pad(TEGRA_IO_PAD_CAM, 36, UINT_MAX, "cam") \ > > + _pad(TEGRA_IO_PAD_COMP, 22, UINT_MAX, "comp") \ > > + _pad(TEGRA_IO_PAD_CSIA, 0, UINT_MAX, "csia") \ > > + _pad(TEGRA_IO_PAD_CSIB, 1, UINT_MAX, "csb") \ > > + _pad(TEGRA_IO_PAD_CSIE, 44, UINT_MAX, "cse") \ > > + _pad(TEGRA_IO_PAD_DSI, 2, UINT_MAX, "dsi") \ > > + _pad(TEGRA_IO_PAD_DSIB, 39, UINT_MAX, "dsib") \ > > + _pad(TEGRA_IO_PAD_DSIC, 40, UINT_MAX, "dsic") \ > > + _pad(TEGRA_IO_PAD_DSID, 41, UINT_MAX, "dsid") \ > > + _pad(TEGRA_IO_PAD_HDMI, 28, UINT_MAX, "hdmi") \ > > + _pad(TEGRA_IO_PAD_HSIC, 19, UINT_MAX, "hsic") \ > > + _pad(TEGRA_IO_PAD_HV, 38, UINT_MAX, "hv") \ > > + _pad(TEGRA_IO_PAD_LVDS, 57, UINT_MAX, "lvds") \ > > + _pad(TEGRA_IO_PAD_MIPI_BIAS, 3, UINT_MAX, "mipi-bias") \ > > + _pad(TEGRA_IO_PAD_NAND, 13, UINT_MAX, "nand") \ > > + _pad(TEGRA_IO_PAD_PEX_BIAS, 4, UINT_MAX, "pex-bias") \ > > + _pad(TEGRA_IO_PAD_PEX_CLK1, 5, UINT_MAX, "pex-clk1") \ > > + _pad(TEGRA_IO_PAD_PEX_CLK2, 6, UINT_MAX, "pex-clk2") \ > > + _pad(TEGRA_IO_PAD_PEX_CNTRL, 32, UINT_MAX, "pex-cntrl") \ > > + _pad(TEGRA_IO_PAD_SDMMC1, 33, UINT_MAX, "sdmmc1") \ > > + _pad(TEGRA_IO_PAD_SDMMC3, 34, UINT_MAX, "sdmmc3") \ > > + _pad(TEGRA_IO_PAD_SDMMC4, 35, UINT_MAX, "sdmmc4") \ > > + _pad(TEGRA_IO_PAD_SYS_DDC, 58, UINT_MAX, "sys_ddc") \ > > + _pad(TEGRA_IO_PAD_UART, 14, UINT_MAX, "uart") \ > > + _pad(TEGRA_IO_PAD_USB0, 9, UINT_MAX, "usb0") \ > > + _pad(TEGRA_IO_PAD_USB1, 10, UINT_MAX, "usb1") \ > > + _pad(TEGRA_IO_PAD_USB2, 11, UINT_MAX, "usb2") \ > > + _pad(TEGRA_IO_PAD_USB_BIAS, 12, UINT_MAX, "usb_bias") > > + > > static const struct tegra_io_pad_soc tegra124_io_pads[] = { > > - { .id = TEGRA_IO_PAD_AUDIO, .dpd = 17, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_BB, .dpd = 15, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_CAM, .dpd = 36, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_COMP, .dpd = 22, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_CSIA, .dpd = 0, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_CSIB, .dpd = 1, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_CSIE, .dpd = 44, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_DSI, .dpd = 2, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_DSIB, .dpd = 39, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_DSIC, .dpd = 40, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_DSID, .dpd = 41, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_HDMI, .dpd = 28, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_HSIC, .dpd = 19, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_HV, .dpd = 38, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_LVDS, .dpd = 57, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_MIPI_BIAS, .dpd = 3, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_NAND, .dpd = 13, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_PEX_BIAS, .dpd = 4, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_PEX_CLK1, .dpd = 5, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_PEX_CLK2, .dpd = 6, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_PEX_CNTRL, .dpd = 32, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_SDMMC1, .dpd = 33, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_SDMMC3, .dpd = 34, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_SDMMC4, .dpd = 35, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_SYS_DDC, .dpd = 58, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_UART, .dpd = 14, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_USB0, .dpd = 9, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_USB1, .dpd = 10, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_USB2, .dpd = 11, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_USB_BIAS, .dpd = 12, .voltage = UINT_MAX }, > > + TEGRA124_IO_PAD_TABLE(TEGRA_IO_PAD) > > }; > > > > static const struct tegra_pmc_soc tegra124_pmc_soc = { > > @@ -1779,45 +1792,49 @@ static const u8 tegra210_cpu_powergates[] = { > > TEGRA_POWERGATE_CPU3, > > }; > > > > +#define TEGRA210_IO_PAD_TABLE(_pad) \ > > + /* .id .dpd .voltage .name */ \ > > + _pad(TEGRA_IO_PAD_AUDIO, 17, 5, "audio") \ > > + _pad(TEGRA_IO_PAD_AUDIO_HV, 61, 18, "audio-hv") \ > > + _pad(TEGRA_IO_PAD_CAM, 36, 10, "cam") \ > > + _pad(TEGRA_IO_PAD_CSIA, 0, UINT_MAX, "csia") \ > > + _pad(TEGRA_IO_PAD_CSIB, 1, UINT_MAX, "csib") \ > > + _pad(TEGRA_IO_PAD_CSIC, 42, UINT_MAX, "csic") \ > > + _pad(TEGRA_IO_PAD_CSID, 43, UINT_MAX, "csid") \ > > + _pad(TEGRA_IO_PAD_CSIE, 44, UINT_MAX, "csie") \ > > + _pad(TEGRA_IO_PAD_CSIF, 45, UINT_MAX, "csif") \ > > + _pad(TEGRA_IO_PAD_DBG, 25, 19, "dbg") \ > > + _pad(TEGRA_IO_PAD_DEBUG_NONAO, 26, UINT_MAX, "debug-nonao") \ > > + _pad(TEGRA_IO_PAD_DMIC, 50, 20, "dmic") \ > > + _pad(TEGRA_IO_PAD_DP, 51, UINT_MAX, "dp") \ > > + _pad(TEGRA_IO_PAD_DSI, 2, UINT_MAX, "dsi") \ > > + _pad(TEGRA_IO_PAD_DSIB, 39, UINT_MAX, "dsib") \ > > + _pad(TEGRA_IO_PAD_DSIC, 40, UINT_MAX, "dsic") \ > > + _pad(TEGRA_IO_PAD_DSID, 41, UINT_MAX, "dsid") \ > > + _pad(TEGRA_IO_PAD_EMMC, 35, UINT_MAX, "emmc") \ > > + _pad(TEGRA_IO_PAD_EMMC2, 37, UINT_MAX, "emmc2") \ > > + _pad(TEGRA_IO_PAD_GPIO, 27, 21, "gpio") \ > > + _pad(TEGRA_IO_PAD_HDMI, 28, UINT_MAX, "hdmi") \ > > + _pad(TEGRA_IO_PAD_HSIC, 19, UINT_MAX, "hsic") \ > > + _pad(TEGRA_IO_PAD_LVDS, 57, UINT_MAX, "lvds") \ > > + _pad(TEGRA_IO_PAD_MIPI_BIAS, 3, UINT_MAX, "mipi-bias") \ > > + _pad(TEGRA_IO_PAD_PEX_BIAS, 4, UINT_MAX, "pex-bias") \ > > + _pad(TEGRA_IO_PAD_PEX_CLK1, 5, UINT_MAX, "pex-clk1") \ > > + _pad(TEGRA_IO_PAD_PEX_CLK2, 6, UINT_MAX, "pex-clk2") \ > > + _pad(TEGRA_IO_PAD_PEX_CNTRL, UINT_MAX, 11, "pex-cntrl") \ > > + _pad(TEGRA_IO_PAD_SDMMC1, 33, 12, "sdmmc1") \ > > + _pad(TEGRA_IO_PAD_SDMMC3, 34, 13, "sdmmc3") \ > > + _pad(TEGRA_IO_PAD_SPI, 46, 22, "spi") \ > > + _pad(TEGRA_IO_PAD_SPI_HV, 47, 23, "spi-hv") \ > > + _pad(TEGRA_IO_PAD_UART, 14, 2, "uart") \ > > + _pad(TEGRA_IO_PAD_USB0, 9, UINT_MAX, "usb0") \ > > + _pad(TEGRA_IO_PAD_USB1, 10, UINT_MAX, "usb1") \ > > + _pad(TEGRA_IO_PAD_USB2, 11, UINT_MAX, "usb2") \ > > + _pad(TEGRA_IO_PAD_USB3, 18, UINT_MAX, "usb3") \ > > + _pad(TEGRA_IO_PAD_USB_BIAS, 12, UINT_MAX, "usb-bias") > > + > > static const struct tegra_io_pad_soc tegra210_io_pads[] = { > > - { .id = TEGRA_IO_PAD_AUDIO, .dpd = 17, .voltage = 5 }, > > - { .id = TEGRA_IO_PAD_AUDIO_HV, .dpd = 61, .voltage = 18 }, > > - { .id = TEGRA_IO_PAD_CAM, .dpd = 36, .voltage = 10 }, > > - { .id = TEGRA_IO_PAD_CSIA, .dpd = 0, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_CSIB, .dpd = 1, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_CSIC, .dpd = 42, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_CSID, .dpd = 43, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_CSIE, .dpd = 44, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_CSIF, .dpd = 45, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_DBG, .dpd = 25, .voltage = 19 }, > > - { .id = TEGRA_IO_PAD_DEBUG_NONAO, .dpd = 26, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_DMIC, .dpd = 50, .voltage = 20 }, > > - { .id = TEGRA_IO_PAD_DP, .dpd = 51, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_DSI, .dpd = 2, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_DSIB, .dpd = 39, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_DSIC, .dpd = 40, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_DSID, .dpd = 41, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_EMMC, .dpd = 35, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_EMMC2, .dpd = 37, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_GPIO, .dpd = 27, .voltage = 21 }, > > - { .id = TEGRA_IO_PAD_HDMI, .dpd = 28, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_HSIC, .dpd = 19, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_LVDS, .dpd = 57, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_MIPI_BIAS, .dpd = 3, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_PEX_BIAS, .dpd = 4, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_PEX_CLK1, .dpd = 5, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_PEX_CLK2, .dpd = 6, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_PEX_CNTRL, .dpd = UINT_MAX, .voltage = 11 }, > > - { .id = TEGRA_IO_PAD_SDMMC1, .dpd = 33, .voltage = 12 }, > > - { .id = TEGRA_IO_PAD_SDMMC3, .dpd = 34, .voltage = 13 }, > > - { .id = TEGRA_IO_PAD_SPI, .dpd = 46, .voltage = 22 }, > > - { .id = TEGRA_IO_PAD_SPI_HV, .dpd = 47, .voltage = 23 }, > > - { .id = TEGRA_IO_PAD_UART, .dpd = 14, .voltage = 2 }, > > - { .id = TEGRA_IO_PAD_USB0, .dpd = 9, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_USB1, .dpd = 10, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_USB2, .dpd = 11, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_USB3, .dpd = 18, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_USB_BIAS, .dpd = 12, .voltage = UINT_MAX }, > > + TEGRA210_IO_PAD_TABLE(TEGRA_IO_PAD) > > }; > > > > static const struct tegra_pmc_soc tegra210_pmc_soc = { > > @@ -1836,44 +1853,48 @@ static const struct tegra_pmc_soc tegra210_pmc_soc = { > > .setup_irq_polarity = tegra20_pmc_setup_irq_polarity, > > }; > > > > +#define TEGRA186_IO_PAD_TABLE(_pad) \ > > + /* .id .dpd .voltage .name */ \ > > + _pad(TEGRA_IO_PAD_CSIA, 0, UINT_MAX, "csia") \ > > + _pad(TEGRA_IO_PAD_CSIB, 1, UINT_MAX, "csib") \ > > + _pad(TEGRA_IO_PAD_DSI, 2, UINT_MAX, "dsi") \ > > + _pad(TEGRA_IO_PAD_MIPI_BIAS, 3, UINT_MAX, "mipi-bias") \ > > + _pad(TEGRA_IO_PAD_PEX_CLK_BIAS, 4, UINT_MAX, "pex-clk-bias") \ > > + _pad(TEGRA_IO_PAD_PEX_CLK3, 5, UINT_MAX, "pex-clk3") \ > > + _pad(TEGRA_IO_PAD_PEX_CLK2, 6, UINT_MAX, "pex-clk2") \ > > + _pad(TEGRA_IO_PAD_PEX_CLK1, 7, UINT_MAX, "pex-clk1") \ > > + _pad(TEGRA_IO_PAD_USB0, 9, UINT_MAX, "usb0") \ > > + _pad(TEGRA_IO_PAD_USB1, 10, UINT_MAX, "usb1") \ > > + _pad(TEGRA_IO_PAD_USB2, 11, UINT_MAX, "usb2") \ > > + _pad(TEGRA_IO_PAD_USB_BIAS, 12, UINT_MAX, "usb-bias") \ > > + _pad(TEGRA_IO_PAD_UART, 14, UINT_MAX, "uart") \ > > + _pad(TEGRA_IO_PAD_AUDIO, 17, UINT_MAX, "audio") \ > > + _pad(TEGRA_IO_PAD_HSIC, 19, UINT_MAX, "hsic") \ > > + _pad(TEGRA_IO_PAD_DBG, 25, UINT_MAX, "dbg") \ > > + _pad(TEGRA_IO_PAD_HDMI_DP0, 28, UINT_MAX, "hdmi-dp0") \ > > + _pad(TEGRA_IO_PAD_HDMI_DP1, 29, UINT_MAX, "hdmi-dp1") \ > > + _pad(TEGRA_IO_PAD_PEX_CNTRL, 32, UINT_MAX, "pex-cntrl") \ > > + _pad(TEGRA_IO_PAD_SDMMC2_HV, 34, 5, "sdmmc2-hv") \ > > + _pad(TEGRA_IO_PAD_SDMMC4, 36, UINT_MAX, "sdmmc4") \ > > + _pad(TEGRA_IO_PAD_CAM, 38, UINT_MAX, "cam") \ > > + _pad(TEGRA_IO_PAD_DSIB, 40, UINT_MAX, "dsib") \ > > + _pad(TEGRA_IO_PAD_DSIC, 41, UINT_MAX, "dsic") \ > > + _pad(TEGRA_IO_PAD_DSID, 42, UINT_MAX, "dsid") \ > > + _pad(TEGRA_IO_PAD_CSIC, 43, UINT_MAX, "csic") \ > > + _pad(TEGRA_IO_PAD_CSID, 44, UINT_MAX, "csid") \ > > + _pad(TEGRA_IO_PAD_CSIE, 45, UINT_MAX, "csie") \ > > + _pad(TEGRA_IO_PAD_CSIF, 46, UINT_MAX, "csif") \ > > + _pad(TEGRA_IO_PAD_SPI, 47, UINT_MAX, "spi") \ > > + _pad(TEGRA_IO_PAD_UFS, 49, UINT_MAX, "ufs") \ > > + _pad(TEGRA_IO_PAD_DMIC_HV, 52, 2, "dmic-hv") \ > > + _pad(TEGRA_IO_PAD_EDP, 53, UINT_MAX, "edp") \ > > + _pad(TEGRA_IO_PAD_SDMMC1_HV, 55, 4, "sdmmc1-hv") \ > > + _pad(TEGRA_IO_PAD_SDMMC3_HV, 56, 6, "sdmmc3-hv") \ > > + _pad(TEGRA_IO_PAD_CONN, 60, UINT_MAX, "conn") \ > > + _pad(TEGRA_IO_PAD_AUDIO_HV, 61, 1, "audio-hv") > > + > > static const struct tegra_io_pad_soc tegra186_io_pads[] = { > > - { .id = TEGRA_IO_PAD_CSIA, .dpd = 0, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_CSIB, .dpd = 1, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_DSI, .dpd = 2, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_MIPI_BIAS, .dpd = 3, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_PEX_CLK_BIAS, .dpd = 4, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_PEX_CLK3, .dpd = 5, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_PEX_CLK2, .dpd = 6, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_PEX_CLK1, .dpd = 7, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_USB0, .dpd = 9, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_USB1, .dpd = 10, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_USB2, .dpd = 11, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_USB_BIAS, .dpd = 12, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_UART, .dpd = 14, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_AUDIO, .dpd = 17, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_HSIC, .dpd = 19, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_DBG, .dpd = 25, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_HDMI_DP0, .dpd = 28, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_HDMI_DP1, .dpd = 29, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_PEX_CNTRL, .dpd = 32, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_SDMMC2_HV, .dpd = 34, .voltage = 5 }, > > - { .id = TEGRA_IO_PAD_SDMMC4, .dpd = 36, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_CAM, .dpd = 38, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_DSIB, .dpd = 40, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_DSIC, .dpd = 41, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_DSID, .dpd = 42, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_CSIC, .dpd = 43, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_CSID, .dpd = 44, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_CSIE, .dpd = 45, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_CSIF, .dpd = 46, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_SPI, .dpd = 47, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_UFS, .dpd = 49, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_DMIC_HV, .dpd = 52, .voltage = 2 }, > > - { .id = TEGRA_IO_PAD_EDP, .dpd = 53, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_SDMMC1_HV, .dpd = 55, .voltage = 4 }, > > - { .id = TEGRA_IO_PAD_SDMMC3_HV, .dpd = 56, .voltage = 6 }, > > - { .id = TEGRA_IO_PAD_CONN, .dpd = 60, .voltage = UINT_MAX }, > > - { .id = TEGRA_IO_PAD_AUDIO_HV, .dpd = 61, .voltage = 1 }, > > + TEGRA186_IO_PAD_TABLE(TEGRA_IO_PAD) > > }; > > > > static const struct tegra_pmc_regs tegra186_pmc_regs = { > > Can you run checkpatch on this and fix up the warnings? > > Cheers > Jon > I did run checkpatch on it. The remaining errors and warnings are either about the table rows being too long or about the macro values used to generate them not being enclosed in parentheses. I felt that fixing them could be somewhat detrimental to the overall readability. I probably could fix the errors about macro parens, but I'd rather not give up the aligned columns of the tables. I guess I can try to get them squeezed a bit tighter together by not aligning to tab stops. -Aapo