All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/13] pinctrl: add BCM63XX pincontrol support
@ 2016-08-19 10:53 Jonas Gorski
  2016-08-19 10:53 ` [PATCH 03/13] pinctrl: add a pincontrol driver for BCM6328 Jonas Gorski
                   ` (7 more replies)
  0 siblings, 8 replies; 36+ messages in thread
From: Jonas Gorski @ 2016-08-19 10:53 UTC (permalink / raw)
  To: linux-gpio-u79uwXL29TY76Z2rM5mHXA
  Cc: Linus Walleij, devicetree-u79uwXL29TY76Z2rM5mHXA, Rob Herring,
	Mark Rutland, Kevin Cernekee, Florian Fainelli,
	Álvaro Fernández Rojas

This patchset adds appropriate binding documentation and drivers for
pin controller cores found in the BCM63XX MIPS SoCs currently supported.

While the GPIO part is always the same, the pinmux part varies quite a
lot between different SoCs. Sometimes they have defined groups which
can be muxed into different functions, sometimes each function has a
different group. Sometimes you can mux individual pins. Often it is a
combination of single pins and groups.

Some core versions require the GPIO direction to be set according to the
function, most do not. Sometimes the mux register(s) contain bits for
unrelated other functions.

I intentionally left out any MIPS patches so keep the patchset smaller
and to make it clearer to which tree this belongs.

Some implementation notes:

BCM6348 has one mux function that enables two unrelated functions at the
same time; additional SPI CS signals as well as extra UART pins. This
means that in case both the uart as well as the spi driver needs it, it
would need to be requested globally, as the same mux can't be requested
by two different devices. Since this is a linux internal detail, I
chose to not try to split this function and try to work around it in
the driver (by refcounting etc).

BCM6358 has two "invert-mii-clock" bits in its GPIO Mode register for
the ethernet cores. This didn't seem to fit well into pinmux/conf; at
best as two pins which you could apply exactly one property,
"brcm,invert-clock". So I chose syscon so the ethernet driver can poke
at the bits itself.

BCM6368 has several additional bits in its GPIO BaseMode register for
enabling RGMII pins, UTOPIA, or changing the PCI clock to 66 MHz. These
seemed to fit even less.


Based on the current HEAD of linux-pinctrl/for-next.

Jonas Gorski (13):
  pinctrl: add bcm63xx base code
  Documentation: add BCM6328 pincontroller binding documentation
  pinctrl: add a pincontrol driver for BCM6328
  Documentation: add BCM6348 pincontroller binding documentation
  pinctrl: add a pincontrol driver for BCM6348
  Documentation: add BCM6358 pincontroller binding documentation
  pinctrl: add a pincontrol driver for BCM6358
  Documentation: add BCM6362 pincontroller binding documentation
  pinctrl: add a pincontrol driver for BCM6362
  Documentation: add BCM6368 pincontroller binding documentation
  pinctrl: add a pincontrol driver for BCM6368
  Documentation: add BCM63268 pincontroller binding documentation
  pinctrl: add a pincontrol driver for BCM63268

 .../bindings/pinctrl/brcm,bcm63268-pinctrl.txt     |  88 +++
 .../bindings/pinctrl/brcm,bcm6328-pinctrl.txt      |  61 ++
 .../bindings/pinctrl/brcm,bcm6348-pinctrl.txt      |  32 +
 .../bindings/pinctrl/brcm,bcm6358-pinctrl.txt      |  44 ++
 .../bindings/pinctrl/brcm,bcm6362-pinctrl.txt      |  79 +++
 .../bindings/pinctrl/brcm,bcm6368-pinctrl.txt      |  67 ++
 MAINTAINERS                                        |   1 +
 drivers/pinctrl/Kconfig                            |   1 +
 drivers/pinctrl/Makefile                           |   1 +
 drivers/pinctrl/bcm63xx/Kconfig                    |  47 ++
 drivers/pinctrl/bcm63xx/Makefile                   |   7 +
 drivers/pinctrl/bcm63xx/pinctrl-bcm63268.c         | 710 +++++++++++++++++++++
 drivers/pinctrl/bcm63xx/pinctrl-bcm6328.c          | 456 +++++++++++++
 drivers/pinctrl/bcm63xx/pinctrl-bcm6348.c          | 392 ++++++++++++
 drivers/pinctrl/bcm63xx/pinctrl-bcm6358.c          | 393 ++++++++++++
 drivers/pinctrl/bcm63xx/pinctrl-bcm6362.c          | 692 ++++++++++++++++++++
 drivers/pinctrl/bcm63xx/pinctrl-bcm6368.c          | 573 +++++++++++++++++
 drivers/pinctrl/bcm63xx/pinctrl-bcm63xx.c          | 141 ++++
 drivers/pinctrl/bcm63xx/pinctrl-bcm63xx.h          |  14 +
 19 files changed, 3799 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,bcm63268-pinctrl.txt
 create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,bcm6328-pinctrl.txt
 create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,bcm6348-pinctrl.txt
 create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,bcm6358-pinctrl.txt
 create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,bcm6362-pinctrl.txt
 create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,bcm6368-pinctrl.txt
 create mode 100644 drivers/pinctrl/bcm63xx/Kconfig
 create mode 100644 drivers/pinctrl/bcm63xx/Makefile
 create mode 100644 drivers/pinctrl/bcm63xx/pinctrl-bcm63268.c
 create mode 100644 drivers/pinctrl/bcm63xx/pinctrl-bcm6328.c
 create mode 100644 drivers/pinctrl/bcm63xx/pinctrl-bcm6348.c
 create mode 100644 drivers/pinctrl/bcm63xx/pinctrl-bcm6358.c
 create mode 100644 drivers/pinctrl/bcm63xx/pinctrl-bcm6362.c
 create mode 100644 drivers/pinctrl/bcm63xx/pinctrl-bcm6368.c
 create mode 100644 drivers/pinctrl/bcm63xx/pinctrl-bcm63xx.c
 create mode 100644 drivers/pinctrl/bcm63xx/pinctrl-bcm63xx.h

-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

end of thread, other threads:[~2016-08-23 16:49 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-19 10:53 [PATCH 00/13] pinctrl: add BCM63XX pincontrol support Jonas Gorski
2016-08-19 10:53 ` [PATCH 03/13] pinctrl: add a pincontrol driver for BCM6328 Jonas Gorski
2016-08-22 13:15   ` Linus Walleij
     [not found]     ` <CACRpkdbZDmHimo9K1rUcs-4MyOSZH5SHUD3kuSYANppLUU0WwQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-08-22 13:54       ` Jonas Gorski
2016-08-23  8:57         ` Linus Walleij
2016-08-19 10:53 ` [PATCH 04/13] Documentation: add BCM6348 pincontroller binding documentation Jonas Gorski
2016-08-22 13:17   ` Linus Walleij
2016-08-19 10:53 ` [PATCH 07/13] pinctrl: add a pincontrol driver for BCM6358 Jonas Gorski
2016-08-22 13:21   ` Linus Walleij
2016-08-22 13:57     ` Jonas Gorski
2016-08-23  9:18       ` Linus Walleij
2016-08-23 15:43         ` Re[2]: " Alexander Shiyan
2016-08-19 10:53 ` [PATCH 08/13] Documentation: add BCM6362 pincontroller binding documentation Jonas Gorski
     [not found]   ` <1471604025-21575-9-git-send-email-jonas.gorski-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-08-22 13:22     ` Linus Walleij
2016-08-19 10:53 ` [PATCH 09/13] pinctrl: add a pincontrol driver for BCM6362 Jonas Gorski
     [not found]   ` <1471604025-21575-10-git-send-email-jonas.gorski-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-08-22 13:23     ` Linus Walleij
2016-08-19 10:53 ` [PATCH 10/13] Documentation: add BCM6368 pincontroller binding documentation Jonas Gorski
     [not found]   ` <1471604025-21575-11-git-send-email-jonas.gorski-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-08-22 13:24     ` Linus Walleij
     [not found] ` <1471604025-21575-1-git-send-email-jonas.gorski-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-08-19 10:53   ` [PATCH 01/13] pinctrl: add bcm63xx base code Jonas Gorski
2016-08-22 12:46     ` Linus Walleij
     [not found]       ` <CACRpkdbAWJruB=4rv_SoPZ5D5XgWjebK_Qmv2GLgOOrSyqXcDA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-08-22 13:44         ` Jonas Gorski
2016-08-23  9:15           ` Linus Walleij
2016-08-19 10:53   ` [PATCH 02/13] Documentation: add BCM6328 pincontroller binding documentation Jonas Gorski
2016-08-19 14:14     ` Rob Herring
2016-08-19 14:30       ` Jonas Gorski
     [not found]         ` <CAOiHx=mLgZ6Q3tBY3zYkCpMX09Kv54OQQoAXAdP16D_xoXO3mg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-08-22 12:51           ` Linus Walleij
2016-08-19 10:53   ` [PATCH 05/13] pinctrl: add a pincontrol driver for BCM6348 Jonas Gorski
     [not found]     ` <1471604025-21575-6-git-send-email-jonas.gorski-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-08-22 13:19       ` Linus Walleij
2016-08-19 10:53   ` [PATCH 06/13] Documentation: add BCM6358 pincontroller binding documentation Jonas Gorski
     [not found]     ` <1471604025-21575-7-git-send-email-jonas.gorski-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-08-22 13:20       ` Linus Walleij
2016-08-19 10:53   ` [PATCH 11/13] pinctrl: add a pincontrol driver for BCM6368 Jonas Gorski
     [not found]     ` <1471604025-21575-12-git-send-email-jonas.gorski-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-08-22 13:25       ` Linus Walleij
2016-08-19 10:53   ` [PATCH 13/13] pinctrl: add a pincontrol driver for BCM63268 Jonas Gorski
     [not found]     ` <1471604025-21575-14-git-send-email-jonas.gorski-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-08-22 13:26       ` Linus Walleij
2016-08-19 10:53 ` [PATCH 12/13] Documentation: add BCM63268 pincontroller binding documentation Jonas Gorski
2016-08-22 13:25   ` Linus Walleij

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.