* Marvell Kirkwood 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,88f6180-pinctrl",
              "marvell,88f6190-pinctrl", "marvell,88f6192-pinctrl",
              "marvell,88f6281-pinctrl", "marvell,88f6282-pinctrl"
              "marvell,98dx4122-pinctrl"

This driver supports all kirkwood variants, i.e. 88f6180, 88f619x, and 88f628x.
It also support the 88f6281-based variant in the 98dx412x Bobcat SoCs.

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.

* Marvell Kirkwood 88f6180

name          pins     functions
================================================================================
mpp0          0        gpio, nand(io2), spi(cs)
mpp1          1        gpo, nand(io3), spi(mosi)
mpp2          2        gpo, nand(io4), spi(sck)
mpp3          3        gpo, nand(io5), spi(miso)
mpp4          4        gpio, nand(io6), uart0(rxd), ptp(clk)
mpp5          5        gpo, nand(io7), uart0(txd), ptp(trig)
mpp6          6        sysrst(out), spi(mosi), ptp(trig)
mpp7          7        gpo, pex(rsto), spi(cs), ptp(trig)
mpp8          8        gpio, twsi0(sda), uart0(rts), uart1(rts), ptp(clk),
                       mii(col)
mpp9          9        gpio, twsi(sck), uart0(cts), uart1(cts), ptp(evreq),
                       mii(crs)
mpp10         10       gpo, spi(sck), uart0(txd), ptp(trig)
mpp11         11       gpio, spi(miso), uart0(rxd), ptp(clk), ptp-1(evreq),
                       ptp-2(trig)
mpp12         12       gpo, sdio(clk)
mpp13         13       gpio, sdio(cmd), uart1(txd)
mpp14         14       gpio, sdio(d0), uart1(rxd), mii(col)
mpp15         15       gpio, sdio(d1), uart0(rts), uart1(txd)
mpp16         16       gpio, sdio(d2), uart0(cts), uart1(rxd), mii(crs)
mpp17         17       gpio, sdio(d3)
mpp18         18       gpo, nand(io0)
mpp19         19       gpo, nand(io1)
mpp20         20       gpio, mii(rxerr)
mpp21         21       gpio, audio(spdifi)
mpp22         22       gpio, audio(spdifo)
mpp23         23       gpio, audio(rmclk)
mpp24         24       gpio, audio(bclk)
mpp25         25       gpio, audio(sdo)
mpp26         26       gpio, audio(lrclk)
mpp27         27       gpio, audio(mclk)
mpp28         28       gpio, audio(sdi)
mpp29         29       gpio, audio(extclk)

* Marvell Kirkwood 88f6190

name          pins     functions
================================================================================
mpp0          0        gpio, nand(io2), spi(cs)
mpp1          1        gpo, nand(io3), spi(mosi)
mpp2          2        gpo, nand(io4), spi(sck)
mpp3          3        gpo, nand(io5), spi(miso)
mpp4          4        gpio, nand(io6), uart0(rxd), ptp(clk)
mpp5          5        gpo, nand(io7), uart0(txd), ptp(trig), sata0(act)
mpp6          6        sysrst(out), spi(mosi), ptp(trig)
mpp7          7        gpo, pex(rsto), spi(cs), ptp(trig)
mpp8          8        gpio, twsi0(sda), uart0(rts), uart1(rts), ptp(clk),
                       mii(col), mii-1(rxerr)
mpp9          9        gpio, twsi(sck), uart0(cts), uart1(cts), ptp(evreq),
                       mii(crs), sata0(prsnt)
mpp10         10       gpo, spi(sck), uart0(txd), ptp(trig)
mpp11         11       gpio, spi(miso), uart0(rxd), ptp(clk), ptp-1(evreq),
                       ptp-2(trig), sata0(act)
mpp12         12       gpo, sdio(clk)
mpp13         13       gpio, sdio(cmd), uart1(txd)
mpp14         14       gpio, sdio(d0), uart1(rxd), mii(col)
mpp15         15       gpio, sdio(d1), uart0(rts), uart1(txd), sata0(act)
mpp16         16       gpio, sdio(d2), uart0(cts), uart1(rxd), mii(crs)
mpp17         17       gpio, sdio(d3), sata0(prsnt)
mpp18         18       gpo, nand(io0)
mpp19         19       gpo, nand(io1)
mpp20         20       gpio, ge1(txd0)
mpp21         21       gpio, ge1(txd1), sata0(act)
mpp22         22       gpio, ge1(txd2)
mpp23         23       gpio, ge1(txd3), sata0(prsnt)
mpp24         24       gpio, ge1(rxd0)
mpp25         25       gpio, ge1(rxd1)
mpp26         26       gpio, ge1(rxd2)
mpp27         27       gpio, ge1(rxd3)
mpp28         28       gpio, ge1(col)
mpp29         29       gpio, ge1(txclk)
mpp30         30       gpio, ge1(rxclk)
mpp31         31       gpio, ge1(rxclk)
mpp32         32       gpio, ge1(txclko)
mpp33         33       gpo, ge1(txclk)
mpp34         34       gpio, ge1(txen)
mpp35         35       gpio, ge1(rxerr), sata0(act), mii(rxerr)

* Marvell Kirkwood 88f6192

name          pins     functions
================================================================================
mpp0          0        gpio, nand(io2), spi(cs)
mpp1          1        gpo, nand(io3), spi(mosi)
mpp2          2        gpo, nand(io4), spi(sck)
mpp3          3        gpo, nand(io5), spi(miso)
mpp4          4        gpio, nand(io6), uart0(rxd), ptp(clk), sata1(act)
mpp5          5        gpo, nand(io7), uart0(txd), ptp(trig), sata0(act)
mpp6          6        sysrst(out), spi(mosi), ptp(trig)
mpp7          7        gpo, pex(rsto), spi(cs), ptp(trig)
mpp8          8        gpio, twsi0(sda), uart0(rts), uart1(rts), ptp(clk),
                       mii(col), mii-1(rxerr), sata1(prsnt)
mpp9          9        gpio, twsi(sck), uart0(cts), uart1(cts), ptp(evreq),
                       mii(crs), sata0(prsnt)
mpp10         10       gpo, spi(sck), uart0(txd), ptp(trig), sata1(act)
mpp11         11       gpio, spi(miso), uart0(rxd), ptp(clk), ptp-1(evreq),
                       ptp-2(trig), sata0(act)
mpp12         12       gpo, sdio(clk)
mpp13         13       gpio, sdio(cmd), uart1(txd)
mpp14         14       gpio, sdio(d0), uart1(rxd), mii(col), sata1(prsnt)
mpp15         15       gpio, sdio(d1), uart0(rts), uart1(txd), sata0(act)
mpp16         16       gpio, sdio(d2), uart0(cts), uart1(rxd), mii(crs),
                       sata1(act)
mpp17         17       gpio, sdio(d3), sata0(prsnt)
mpp18         18       gpo, nand(io0)
mpp19         19       gpo, nand(io1)
mpp20         20       gpio, ge1(txd0), ts(mp0), tdm(tx0ql), audio(spdifi),
                       sata1(act)
mpp21         21       gpio, ge1(txd1), sata0(act), ts(mp1), tdm(rx0ql),
                       audio(spdifo)
mpp22         22       gpio, ge1(txd2), ts(mp2), tdm(tx2ql), audio(rmclk),
                       sata1(prsnt)
mpp23         23       gpio, ge1(txd3), sata0(prsnt), ts(mp3), tdm(rx2ql),
                       audio(bclk)
mpp24         24       gpio, ge1(rxd0), ts(mp4), tdm(spi-cs0), audio(sdo)
mpp25         25       gpio, ge1(rxd1), ts(mp5), tdm(spi-sck), audio(lrclk)
mpp26         26       gpio, ge1(rxd2), ts(mp6), tdm(spi-miso), audio(mclk)
mpp27         27       gpio, ge1(rxd3), ts(mp7), tdm(spi-mosi), audio(sdi)
mpp28         28       gpio, ge1(col), ts(mp8), tdm(int), audio(extclk)
mpp29         29       gpio, ge1(txclk), ts(mp9), tdm(rst)
mpp30         30       gpio, ge1(rxclk), ts(mp10), tdm(pclk)
mpp31         31       gpio, ge1(rxclk), ts(mp11), tdm(fs)
mpp32         32       gpio, ge1(txclko), ts(mp12), tdm(drx)
mpp33         33       gpo, ge1(txclk), tdm(drx)
mpp34         34       gpio, ge1(txen), tdm(spi-cs1)
mpp35         35       gpio, ge1(rxerr), sata0(act), mii(rxerr), tdm(tx0ql)

* Marvell Kirkwood 88f6281

name          pins     functions
================================================================================
mpp0          0        gpio, nand(io2), spi(cs)
mpp1          1        gpo, nand(io3), spi(mosi)
mpp2          2        gpo, nand(io4), spi(sck)
mpp3          3        gpo, nand(io5), spi(miso)
mpp4          4        gpio, nand(io6), uart0(rxd), ptp(clk), sata1(act)
mpp5          5        gpo, nand(io7), uart0(txd), ptp(trig), sata0(act)
mpp6          6        sysrst(out), spi(mosi), ptp(trig)
mpp7          7        gpo, pex(rsto), spi(cs), ptp(trig)
mpp8          8        gpio, twsi0(sda), uart0(rts), uart1(rts), ptp(clk),
                       mii(col), mii-1(rxerr), sata1(prsnt)
mpp9          9        gpio, twsi(sck), uart0(cts), uart1(cts), ptp(evreq),
                       mii(crs), sata0(prsnt)
mpp10         10       gpo, spi(sck), uart0(txd), ptp(trig), sata1(act)
mpp11         11       gpio, spi(miso), uart0(rxd), ptp(clk), ptp-1(evreq),
                       ptp-2(trig), sata0(act)
mpp12         12       gpio, sdio(clk)
mpp13         13       gpio, sdio(cmd), uart1(txd)
mpp14         14       gpio, sdio(d0), uart1(rxd), mii(col), sata1(prsnt)
mpp15         15       gpio, sdio(d1), uart0(rts), uart1(txd), sata0(act)
mpp16         16       gpio, sdio(d2), uart0(cts), uart1(rxd), mii(crs),
                       sata1(act)
mpp17         17       gpio, sdio(d3), sata0(prsnt)
mpp18         18       gpo, nand(io0)
mpp19         19       gpo, nand(io1)
mpp20         20       gpio, ge1(txd0), ts(mp0), tdm(tx0ql), audio(spdifi),
                       sata1(act)
mpp21         21       gpio, ge1(txd1), sata0(act), ts(mp1), tdm(rx0ql),
                       audio(spdifo)
mpp22         22       gpio, ge1(txd2), ts(mp2), tdm(tx2ql), audio(rmclk),
                       sata1(prsnt)
mpp23         23       gpio, ge1(txd3), sata0(prsnt), ts(mp3), tdm(rx2ql),
                       audio(bclk)
mpp24         24       gpio, ge1(rxd0), ts(mp4), tdm(spi-cs0), audio(sdo)
mpp25         25       gpio, ge1(rxd1), ts(mp5), tdm(spi-sck), audio(lrclk)
mpp26         26       gpio, ge1(rxd2), ts(mp6), tdm(spi-miso), audio(mclk)
mpp27         27       gpio, ge1(rxd3), ts(mp7), tdm(spi-mosi), audio(sdi)
mpp28         28       gpio, ge1(col), ts(mp8), tdm(int), audio(extclk)
mpp29         29       gpio, ge1(txclk), ts(mp9), tdm(rst)
mpp30         30       gpio, ge1(rxclk), ts(mp10), tdm(pclk)
mpp31         31       gpio, ge1(rxclk), ts(mp11), tdm(fs)
mpp32         32       gpio, ge1(txclko), ts(mp12), tdm(drx)
mpp33         33       gpo, ge1(txclk), tdm(drx)
mpp34         34       gpio, ge1(txen), tdm(spi-cs1), sata1(act)
mpp35         35       gpio, ge1(rxerr), sata0(act), mii(rxerr), tdm(tx0ql)
mpp36         36       gpio, ts(mp0), tdm(spi-cs1), audio(spdifi)
mpp37         37       gpio, ts(mp1), tdm(tx2ql), audio(spdifo)
mpp38         38       gpio, ts(mp2), tdm(rx2ql), audio(rmclk)
mpp39         39       gpio, ts(mp3), tdm(spi-cs0), audio(bclk)
mpp40         40       gpio, ts(mp4), tdm(spi-sck), audio(sdo)
mpp41         41       gpio, ts(mp5), tdm(spi-miso), audio(lrclk)
mpp42         42       gpio, ts(mp6), tdm(spi-mosi), audio(mclk)
mpp43         43       gpio, ts(mp7), tdm(int), audio(sdi)
mpp44         44       gpio, ts(mp8), tdm(rst), audio(extclk)
mpp45         45       gpio, ts(mp9), tdm(pclk)
mpp46         46       gpio, ts(mp10), tdm(fs)
mpp47         47       gpio, ts(mp11), tdm(drx)
mpp48         48       gpio, ts(mp12), tdm(dtx)
mpp49         49       gpio, ts(mp9), tdm(rx0ql), ptp(clk)

* Marvell Kirkwood 88f6282

name          pins     functions
================================================================================
mpp0          0        gpio, nand(io2), spi(cs)
mpp1          1        gpo, nand(io3), spi(mosi)
mpp2          2        gpo, nand(io4), spi(sck)
mpp3          3        gpo, nand(io5), spi(miso)
mpp4          4        gpio, nand(io6), uart0(rxd), sata1(act), lcd(hsync)
mpp5          5        gpo, nand(io7), uart0(txd), sata0(act), lcd(vsync)
mpp6          6        sysrst(out), spi(mosi)
mpp7          7        gpo, spi(cs), lcd(pwm)
mpp8          8        gpio, twsi0(sda), uart0(rts), uart1(rts), mii(col),
                       mii-1(rxerr), sata1(prsnt)
mpp9          9        gpio, twsi(sck), uart0(cts), uart1(cts), mii(crs),
                       sata0(prsnt)
mpp10         10       gpo, spi(sck), uart0(txd), sata1(act)
mpp11         11       gpio, spi(miso), uart0(rxd), sata0(act)
mpp12         12       gpo, sdio(clk), audio(spdifo), spi(mosi), twsi(sda)
mpp13         13       gpio, sdio(cmd), uart1(txd), audio(rmclk), lcd(pwm)
mpp14         14       gpio, sdio(d0), uart1(rxd), mii(col), sata1(prsnt),
                       audio(spdifi), audio-1(sdi)
mpp15         15       gpio, sdio(d1), uart0(rts), uart1(txd), sata0(act),
                       spi(cs)
mpp16         16       gpio, sdio(d2), uart0(cts), uart1(rxd), mii(crs),
                       sata1(act), lcd(extclk)
mpp17         17       gpio, sdio(d3), sata0(prsnt), sata1(act), twsi1(sck)
mpp18         18       gpo, nand(io0), pex(clkreq)
mpp19         19       gpo, nand(io1)
mpp20         20       gpio, ge1(txd0), ts(mp0), tdm(tx0ql), audio(spdifi),
                       sata1(act), lcd(d0)
mpp21         21       gpio, ge1(txd1), sata0(act), ts(mp1), tdm(rx0ql),
                       audio(spdifo), lcd(d1)
mpp22         22       gpio, ge1(txd2), ts(mp2), tdm(tx2ql), audio(rmclk),
                       sata1(prsnt), lcd(d2)
mpp23         23       gpio, ge1(txd3), sata0(prsnt), ts(mp3), tdm(rx2ql),
                       audio(bclk), lcd(d3)
mpp24         24       gpio, ge1(rxd0), ts(mp4), tdm(spi-cs0), audio(sdo),
                       lcd(d4)
mpp25         25       gpio, ge1(rxd1), ts(mp5), tdm(spi-sck), audio(lrclk),
                       lcd(d5)
mpp26         26       gpio, ge1(rxd2), ts(mp6), tdm(spi-miso), audio(mclk),
                       lcd(d6)
mpp27         27       gpio, ge1(rxd3), ts(mp7), tdm(spi-mosi), audio(sdi),
                       lcd(d7)
mpp28         28       gpio, ge1(col), ts(mp8), tdm(int), audio(extclk),
                       lcd(d8)
mpp29         29       gpio, ge1(txclk), ts(mp9), tdm(rst), lcd(d9)
mpp30         30       gpio, ge1(rxclk), ts(mp10), tdm(pclk), lcd(d10)
mpp31         31       gpio, ge1(rxclk), ts(mp11), tdm(fs), lcd(d11)
mpp32         32       gpio, ge1(txclko), ts(mp12), tdm(drx), lcd(d12)
mpp33         33       gpo, ge1(txclk), tdm(drx), lcd(d13)
mpp34         34       gpio, ge1(txen), tdm(spi-cs1), sata1(act), lcd(d14)
mpp35         35       gpio, ge1(rxerr), sata0(act), mii(rxerr), tdm(tx0ql),
                       lcd(d15)
mpp36         36       gpio, ts(mp0), tdm(spi-cs1), audio(spdifi), twsi1(sda)
mpp37         37       gpio, ts(mp1), tdm(tx2ql), audio(spdifo), twsi1(sck)
mpp38         38       gpio, ts(mp2), tdm(rx2ql), audio(rmclk), lcd(d18)
mpp39         39       gpio, ts(mp3), tdm(spi-cs0), audio(bclk), lcd(d19)
mpp40         40       gpio, ts(mp4), tdm(spi-sck), audio(sdo), lcd(d20)
mpp41         41       gpio, ts(mp5), tdm(spi-miso), audio(lrclk), lcd(d21)
mpp42         42       gpio, ts(mp6), tdm(spi-mosi), audio(mclk), lcd(d22)
mpp43         43       gpio, ts(mp7), tdm(int), audio(sdi), lcd(d23)
mpp44         44       gpio, ts(mp8), tdm(rst), audio(extclk), lcd(clk)
mpp45         45       gpio, ts(mp9), tdm(pclk), lcd(e)
mpp46         46       gpio, ts(mp10), tdm(fs), lcd(hsync)
mpp47         47       gpio, ts(mp11), tdm(drx), lcd(vsync)
mpp48         48       gpio, ts(mp12), tdm(dtx), lcd(d16)
mpp49         49       gpo, tdm(rx0ql), pex(clkreq), lcd(d17)

* Marvell Bobcat 98dx4122

name          pins     functions
================================================================================
mpp0          0        gpio, nand(io2), spi(cs)
mpp1          1        gpo, nand(io3), spi(mosi)
mpp2          2        gpo, nand(io4), spi(sck)
mpp3          3        gpo, nand(io5), spi(miso)
mpp4          4        gpio, nand(io6), uart0(rxd)
mpp5          5        gpo, nand(io7), uart0(txd)
mpp6          6        sysrst(out), spi(mosi)
mpp7          7        gpo, pex(rsto), spi(cs)
mpp8          8        gpio, twsi0(sda), uart0(rts), uart1(rts)
mpp9          9        gpio, twsi(sck), uart0(cts), uart1(cts)
mpp10         10       gpo, spi(sck), uart0(txd)
mpp11         11       gpio, spi(miso), uart0(rxd)
mpp13         13       gpio, uart1(txd)
mpp14         14       gpio, uart1(rxd)
mpp15         15       gpio, uart0(rts)
mpp16         16       gpio, uart0(cts)
mpp18         18       gpo, nand(io0)
mpp19         19       gpo, nand(io1)
mpp34         34       gpio
mpp35         35       gpio
mpp36         36       gpio
mpp37         37       gpio
mpp38         38       gpio
mpp39         39       gpio
mpp40         40       gpio
mpp41         41       gpio
mpp42         42       gpio
mpp43         43       gpio
mpp44         44       gpio
mpp45         45       gpio
mpp49         49       gpio

