Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ca6d9a08 authored by Thomas Petazzoni's avatar Thomas Petazzoni Committed by Sebastian Hesselbarth
Browse files

pinctrl: mvebu: add pin-muxing driver for the Marvell Armada 380/385



The Marvell Armada 380/385 are new ARM SoCs from Marvell, part of the
mvebu family, but using a Cortex-A9 CPU core. In terms of pin-muxing,
it is similar to Armada 370 and XP for the register layout, only
different in the number of available pins and their
functions. Therefore, we simply use the existing
drivers/pinctrl/mvebu/ infrastructure, with no other changes that the
list of pins and corresponding functions.

Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: default avatarSebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
parent ce3ed59d
Loading
Loading
Loading
Loading
+80 −0
Original line number Diff line number Diff line
* Marvell Armada 380/385 SoC pinctrl driver for mpp

Please refer to marvell,mvebu-pinctrl.txt in this directory for common binding
part and usage.

Required properties:
- compatible: "marvell,88f6810-pinctrl", "marvell,88f6820-pinctrl" or
  "marvell,88f6828-pinctrl" depending on the specific variant of the
  SoC being used.
- reg: register specifier of MPP registers

Available mpp pins/groups and functions:
Note: brackets (x) are not part of the mpp name for marvell,function and given
only for more detailed description in this document.

name          pins     functions
================================================================================
mpp0          0        gpio, ua0(rxd)
mpp1          1        gpio, ua0(txd)
mpp2          2        gpio, i2c0(sck)
mpp3          3        gpio, i2c0(sda)
mpp4          4        gpio, ge(mdc), ua1(txd), ua0(rts)
mpp5          5        gpio, ge(mdio), ua1(rxd), ua0(cts)
mpp6          6        gpio, ge0(txclkout), ge0(crs), dev(cs3)
mpp7          7        gpio, ge0(txd0), dev(ad9)
mpp8          8        gpio, ge0(txd1), dev(ad10)
mpp9          9        gpio, ge0(txd2), dev(ad11)
mpp10         10       gpio, ge0(txd3), dev(ad12)
mpp11         11       gpio, ge0(txctl), dev(ad13)
mpp12         12       gpio, ge0(rxd0), pcie0(rstout), pcie1(rstout) [1], spi0(cs1), dev(ad14)
mpp13         13       gpio, ge0(rxd1), pcie0(clkreq), pcie1(clkreq) [1], spi0(cs2), dev(ad15)
mpp14         14       gpio, ge0(rxd2), ptp(clk), m(vtt_ctrl), spi0(cs3), dev(wen1)
mpp15         15       gpio, ge0(rxd3), ge(mdc slave), pcie0(rstout), spi0(mosi), pcie1(rstout) [1]
mpp16         16       gpio, ge0(rxctl), ge(mdio slave), m(decc_err), spi0(miso), pcie0(clkreq)
mpp17         17       gpio, ge0(rxclk), ptp(clk), ua1(rxd), spi0(sck), sata1(prsnt)
mpp18         18       gpio, ge0(rxerr), ptp(trig_gen), ua1(txd), spi0(cs0), pcie1(rstout) [1]
mpp19         19       gpio, ge0(col), ptp(event_req), pcie0(clkreq), sata1(prsnt), ua0(cts)
mpp20         20       gpio, ge0(txclk), ptp(clk), pcie1(rstout) [1], sata0(prsnt), ua0(rts)
mpp21         21       gpio, spi0(cs1), ge1(rxd0), sata0(prsnt), sd0(cmd), dev(bootcs)
mpp22         22       gpio, spi0(mosi), dev(ad0)
mpp23         23       gpio, spi0(sck), dev(ad2)
mpp24         24       gpio, spi0(miso), ua0(cts), ua1(rxd), sd0(d4), dev(ready)
mpp25         25       gpio, spi0(cs0), ua0(rts), ua1(txd), sd0(d5), dev(cs0)
mpp26         26       gpio, spi0(cs2), i2c1(sck), sd0(d6), dev(cs1)
mpp27         27       gpio, spi0(cs3), ge1(txclkout), i2c1(sda), sd0(d7), dev(cs2)
mpp28         28       gpio, ge1(txd0), sd0(clk), dev(ad5)
mpp29         29       gpio, ge1(txd1), dev(ale0)
mpp30         30       gpio, ge1(txd2), dev(oen)
mpp31         31       gpio, ge1(txd3), dev(ale1)
mpp32         32       gpio, ge1(txctl), dev(wen0)
mpp33         33       gpio, m(decc_err), dev(ad3)
mpp34         34       gpio, dev(ad1)
mpp35         35       gpio, ref(clk_out1), dev(a1)
mpp36         36       gpio, ptp(trig_gen), dev(a0)
mpp37         37       gpio, ptp(clk), ge1(rxclk), sd0(d3), dev(ad8)
mpp38         38       gpio, ptp(event_req), ge1(rxd1), ref(clk_out0), sd0(d0), dev(ad4)
mpp39         39       gpio, i2c1(sck), ge1(rxd2), ua0(cts), sd0(d1), dev(a2)
mpp40         40       gpio, i2c1(sda), ge1(rxd3), ua0(rts), sd0(d2), dev(ad6)
mpp41         41       gpio, ua1(rxd), ge1(rxctl), ua0(cts), spi1(cs3), dev(burst/last)
mpp42         42       gpio, ua1(txd), ua0(rts), dev(ad7)
mpp43         43       gpio, pcie0(clkreq), m(vtt_ctrl), m(decc_err), pcie0(rstout), dev(clkout)
mpp44         44       gpio, sata0(prsnt), sata1(prsnt), sata2(prsnt) [2], sata3(prsnt) [3], pcie0(rstout)
mpp45         45       gpio, ref(clk_out0), pcie0(rstout), pcie1(rstout) [1], pcie2(rstout), pcie3(rstout)
mpp46         46       gpio, ref(clk_out1), pcie0(rstout), pcie1(rstout) [1], pcie2(rstout), pcie3(rstout)
mpp47         47       gpio, sata0(prsnt), sata1(prsnt), sata2(prsnt) [2], spi1(cs2), sata3(prsnt) [2]
mpp48         48       gpio, sata0(prsnt), m(vtt_ctrl), tdm2c(pclk), audio(mclk), sd0(d4)
mpp49         49       gpio, sata2(prsnt) [2], sata3(prsnt) [2], tdm2c(fsync), audio(lrclk), sd0(d5)
mpp50         50       gpio, pcie0(rstout), pcie1(rstout) [1], tdm2c(drx), audio(extclk), sd0(cmd)
mpp51         51       gpio, tdm2c(dtx), audio(sdo), m(decc_err)
mpp52         52       gpio, pcie0(rstout), pcie1(rstout) [1], tdm2c(intn), audio(sdi), sd0(d6)
mpp53         53       gpio, sata1(prsnt), sata0(prsnt), tdm2c(rstn), audio(bclk), sd0(d7)
mpp54         54       gpio, sata0(prsnt), sata1(prsnt), pcie0(rstout), pcie1(rstout) [1], sd0(d3)
mpp55         55       gpio, ua1(cts), ge(mdio), pcie1(clkreq) [1], spi1(cs1), sd0(d0)
mpp56         56       gpio, ua1(rts), ge(mdc), m(decc_err), spi1(mosi)
mpp57         57       gpio, spi1(sck), sd0(clk)
mpp58         58       gpio, pcie1(clkreq) [1], i2c1(sck), pcie2(clkreq), spi1(miso), sd0(d1)
mpp59         59       gpio, pcie0(rstout), i2c1(sda), pcie1(rstout) [1], spi1(cs0), sd0(d2)

[1]: only available on 88F6820 and 88F6828
[2]: only available on 88F6828
+4 −0
Original line number Diff line number Diff line
@@ -21,6 +21,10 @@ config PINCTRL_ARMADA_375
	bool
	select PINCTRL_MVEBU

config PINCTRL_ARMADA_38X
	bool
	select PINCTRL_MVEBU

config PINCTRL_ARMADA_XP
	bool
	select PINCTRL_MVEBU
+1 −0
Original line number Diff line number Diff line
@@ -3,4 +3,5 @@ obj-$(CONFIG_PINCTRL_DOVE) += pinctrl-dove.o
obj-$(CONFIG_PINCTRL_KIRKWOOD)	+= pinctrl-kirkwood.o
obj-$(CONFIG_PINCTRL_ARMADA_370) += pinctrl-armada-370.o
obj-$(CONFIG_PINCTRL_ARMADA_375) += pinctrl-armada-375.o
obj-$(CONFIG_PINCTRL_ARMADA_38X) += pinctrl-armada-38x.o
obj-$(CONFIG_PINCTRL_ARMADA_XP)  += pinctrl-armada-xp.o
+462 −0

File added.

Preview size limit exceeded, changes collapsed.