linux-mips.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 00/16] pinctrl: ralink: fix ABI, improve driver, move to mediatek, improve dt-bindings
@ 2023-02-22 18:39 arinc9.unal
  2023-02-22 18:39 ` [RFC PATCH 01/16] pinctrl: ralink: reintroduce ralink,rt2880-pinmux compatible string arinc9.unal
                   ` (16 more replies)
  0 siblings, 17 replies; 45+ messages in thread
From: arinc9.unal @ 2023-02-22 18:39 UTC (permalink / raw)
  To: Sergio Paracuellos, Linus Walleij, Rob Herring,
	Krzysztof Kozlowski
  Cc: Arınç ÜNAL, linux-mediatek, linux-mips, linux-gpio,
	devicetree, linux-arm-kernel, linux-kernel, Matthias Brugger,
	Sean Wang, William Dean, Daniel Golle, Daniel Santos,
	Luiz Angelo Daros de Luca, Frank Wunderlich, Landen Chao,
	DENG Qingfang, Sean Wang, erkin.bozoglu

This is an ambitious effort I've been wanting to do for months.

Straight off the bat, I'm fixing the ABI that I broke a while back, by
reintroducing the ralink,rt2880-pinmux compatible string.

If you take a look at the schema for mt7620 and rt305x, some functions got
multiple lists for groups. Like refclk on mt7620. Because mt7620 and
mt7628/mt7688 SoCs use the same compatible string, it's impossible to
differentiate on the binding which SoC a devicetree is actually for.
Therefore, the binding will allow all groups listed for that function. For
example, if the SoC is mt7620, only the refclk function for the mdio group
can be used. If one were to put "spi cs1" as the function there, there
wouldn't be a warning.

I address this by introducing new compatible strings for these SoCs, then
split the schemas. I also separate mt7628/mt7688 from mt7620 pinctrl
subdriver in the process.

I wanted to split the rt305x driver too but too much code would be reused
so I backed down from that.

Ralink was acquired by MediaTek in 2011. These SoCs have been rebranded as
MediaTek. We're moving the Ralink pinctrl driver to MediaTek, and rename
the schemas to mediatek.

I've renamed the ralink core driver to mtmips. I decided to call the core
mtmips as I've seen folks from MediaTek use the same name when they added
support for MT7621 pinctrl on U-Boot. Feel free to comment on this.

The MTMIPS pinctrl driver requires rt_sysc_membase from
arch/mips/ralink/of.c, so, for COMPILE_TEST to be useful, RALINK must be
selected. These headers, asm/mach-ralink/ralink_regs.h and
asm/mach-ralink/mt7620.h, from arch/mips/include are also required but
they can easily be included:

ifeq ($(CONFIG_COMPILE_TEST),y)
CFLAGS_pinctrl-mtmips.o			+= -I$(srctree)/arch/mips/include
endif

Sergio, do you see a way to make the pinctrl driver independent of
architecture code? At least avoid using rt_sysc_membase.

dtbs_check will print warnings for DTs with the old strings as it will
match multiple bindings. I assume that's acceptable in order to have the
things properly documented without breaking the ABI. The bindings will work
fine with the new compatible strings.

I could define the checks under $defs:, then refer to it if the compatible
string is the one which would work fine. Or I could put only the new
compatible strings on the documentation. What are your thoughts Krzysztof,
Rob?

Arınç



^ permalink raw reply	[flat|nested] 45+ messages in thread

end of thread, other threads:[~2023-03-03  8:04 UTC | newest]

Thread overview: 45+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-22 18:39 [RFC PATCH 00/16] pinctrl: ralink: fix ABI, improve driver, move to mediatek, improve dt-bindings arinc9.unal
2023-02-22 18:39 ` [RFC PATCH 01/16] pinctrl: ralink: reintroduce ralink,rt2880-pinmux compatible string arinc9.unal
2023-02-22 18:39 ` [RFC PATCH 02/16] pinctrl: ralink: add mediatek compatible strings arinc9.unal
2023-02-22 18:39 ` [RFC PATCH 03/16] pinctrl: ralink: rt305x: add compatible string for every SoC arinc9.unal
2023-02-22 18:39 ` [RFC PATCH 04/16] pinctrl: ralink: mt7620: split out to mt76x8 arinc9.unal
2023-02-22 18:39 ` [RFC PATCH 05/16] pinctrl: ralink: move to mediatek as mtmips arinc9.unal
2023-02-22 18:39 ` [RFC PATCH 06/16] pinctrl: mediatek: remove OF_GPIO as reverse dependency arinc9.unal
2023-02-22 18:39 ` [RFC PATCH 07/16] dt-bindings: pinctrl: ralink: add new compatible strings arinc9.unal
2023-02-27 17:33   ` Rob Herring
2023-02-28 16:46     ` Arınç ÜNAL
2023-03-01  2:44       ` Rob Herring
2023-03-01  8:15         ` Arınç ÜNAL
2023-03-02  8:28           ` Krzysztof Kozlowski
2023-03-02  9:17             ` Arınç ÜNAL
2023-03-02  9:58               ` Krzysztof Kozlowski
2023-03-02 10:22                 ` Arınç ÜNAL
2023-03-02 10:29                   ` Krzysztof Kozlowski
2023-03-02 10:47                     ` Arınç ÜNAL
2023-03-02 11:36                       ` Krzysztof Kozlowski
2023-03-02 11:50                         ` Arınç ÜNAL
2023-03-03  7:05                           ` Krzysztof Kozlowski
2023-03-03  7:44                             ` Arınç ÜNAL
2023-03-03  7:53                               ` Krzysztof Kozlowski
2023-03-03  8:03                                 ` Arınç ÜNAL
2023-03-02 22:33                       ` Arınç ÜNAL
2023-02-22 18:39 ` [RFC PATCH 08/16] dt-bindings: pinctrl: ralink: rename to mediatek arinc9.unal
2023-02-22 18:39 ` [RFC PATCH 09/16] dt-bindings: pinctrl: mediatek: rt305x: split binding arinc9.unal
2023-02-27 17:38   ` Rob Herring
2023-02-28  8:24   ` Krzysztof Kozlowski
2023-02-22 18:39 ` [RFC PATCH 10/16] dt-bindings: pinctrl: mediatek: mt7620: " arinc9.unal
2023-02-27 18:21   ` Rob Herring
2023-02-28 19:38     ` Arınç ÜNAL
2023-02-22 18:39 ` [RFC PATCH 11/16] MAINTAINERS: move ralink pinctrl to mediatek mips pinctrl arinc9.unal
2023-02-22 18:39 ` [RFC PATCH 12/16] dt-bindings: pinctrl: mediatek: mt6795: rename to mediatek,mt6795-pinctrl arinc9.unal
2023-02-27 18:22   ` Rob Herring
2023-02-22 18:39 ` [RFC PATCH 13/16] dt-bindings: pinctrl: mediatek: mt8186: rename to mediatek,mt8186-pinctrl arinc9.unal
2023-02-27 18:23   ` Rob Herring
2023-02-22 18:39 ` [RFC PATCH 14/16] dt-bindings: pinctrl: mediatek: mt8192: rename to mediatek,mt8192-pinctrl arinc9.unal
2023-02-27 18:24   ` Rob Herring
2023-02-22 18:39 ` [RFC PATCH 15/16] dt-bindings: pinctrl: mediatek: mt8195: rename to mediatek,mt8195-pinctrl arinc9.unal
2023-02-27 18:24   ` Rob Herring
2023-02-22 18:39 ` [RFC PATCH 16/16] dt-bindings: pinctrl: mediatek: improve schemas arinc9.unal
2023-02-27 18:28   ` Rob Herring
2023-02-23  4:58 ` [RFC PATCH 00/16] pinctrl: ralink: fix ABI, improve driver, move to mediatek, improve dt-bindings Sergio Paracuellos
2023-02-23  6:01   ` Arınç ÜNAL

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).