Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161834AbbKFRzc (ORCPT ); Fri, 6 Nov 2015 12:55:32 -0500 Received: from mail-wi0-f171.google.com ([209.85.212.171]:35022 "EHLO mail-wi0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1161814AbbKFRz3 (ORCPT ); Fri, 6 Nov 2015 12:55:29 -0500 MIME-Version: 1.0 In-Reply-To: <4813305.v3X2DlHJmB@wuerfel> References: <1446766883-25703-1-git-send-email-moritz.fischer@ettus.com> <3715539.QztuvljIIp@wuerfel> <4813305.v3X2DlHJmB@wuerfel> Date: Fri, 6 Nov 2015 09:55:28 -0800 Message-ID: Subject: Re: [RFC 3/3] ARM: e3xx: Add header file for pinctrl constants From: Moritz Fischer To: Arnd Bergmann Cc: Linus Walleij , linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Rob Herring , "pawel.moll@arm.com" , Mark Rutland , Ian Campbell , Kumar Gala , devicetree@vger.kernel.org Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2784 Lines: 74 On Fri, Nov 6, 2015 at 8:42 AM, Arnd Bergmann wrote: > On Friday 06 November 2015 08:01:25 Moritz Fischer wrote: >> Hi Arnd, >> >> On Fri, Nov 6, 2015 at 12:54 AM, Arnd Bergmann wrote: >> > On Thursday 05 November 2015 15:41:23 Moritz Fischer wrote: >> >> +/* Pin names for the E31x usecase */ >> >> +#define E31X_TX_BANDSEL_2 "DB_1" >> >> +#define E31X_RX1B_BANDSEL_0 "DB_3" >> >> +#define E31X_RX1B_BANDSEL_1 "DB_5" >> >> +#define E31X_VCTXRX2_V2 "DB_7" >> >> +#define E31X_TX_ENABLE1A "DB_9" >> >> +#define E31X_TX_ENABLE2A "DB_11" >> >> +#define E31X_TX_BANDSEL_0 "DB_12" >> > >> > Why not put the strings directly into the .dts files and change the >> > lookup table in the driver accordingly: >> > >> > +static const struct pinctrl_pin_desc e3xx_pins[] = { >> > + /* pin0 doesn't exist */ >> > + PINCTRL_PIN(1, "TX_BANDSEL_2"), >> > + PINCTRL_PIN(3, "RX1B_BANDSEL_0"), >> > + PINCTRL_PIN(5, "RX1B_BANDSEL_1"), >> > + PINCTRL_PIN(7, "VCTXRX2_V2"), >> >> That's actually the way I initially had it, however the pin names >> literally changed >> in the schematic depending on which daughter-board you stick into the slot. >> So my plan was to add the #defines for the second daughter-board in a >> follow up patch >> once the pin assignment is final. This would allow me to have something like: >> >> pins = E31X_TX_BANDSEL_2; >> output-low; >> >> in one .dts, while having something like >> >> pins = E33X_TX_BANDSEL_2 >> output low; >> >> in the second dts > > That doesn't seem helpful though, because the assignment of the > pins is not hidden from the source file that should be documenting > it: if someone wants to know how the pins are muxed, they now have > to cross-reference the dts file with the header. If you just put the > pin number directly into the dts, it becomes completely clear > what the setting is. Just to clarify, you're suggesting using "DB_0" etc in the dts file? At that point the name becomes kinda useless. I found the PINCTRL_PIN_ANON macro, but haven't found any use throughout the tree, is using it discouraged? >> The other option would have been to stick a e31x_pins and a e33x_pins >> into the driver, >> and set them according to a compatible string or "ettus,daughterboard" >> property on probe. >> >> Does that make sense, or do you think there's a cleaner / better way >> to achieve this sort of behavior? > > The driver should not be board specific. Agreed, thank you! Cheers, Moritz -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/