summaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorMagnus Damm <damm@opensource.se>2013-03-26 22:49:49 +0900
committerSimon Horman <horms+renesas@verge.net.au>2013-04-03 10:30:38 +0900
commitc98f6c21afaf4692886cea0f5b63ead9945d85cc (patch)
tree1aa7e6f751c81e45ab0980447275119103341405 /arch/arm
parentba774cc7380e83f942c08564d3c142af2fbd05be (diff)
downloadlinux-c98f6c21afaf4692886cea0f5b63ead9945d85cc.tar.gz
linux-c98f6c21afaf4692886cea0f5b63ead9945d85cc.tar.bz2
linux-c98f6c21afaf4692886cea0f5b63ead9945d85cc.zip
sh-pfc: Add r8a73a4 pinmux support
Add initial PFC support for the r8a73a4 SoC. At this point only GPIO interface is supported, move to newer interfaces planned as incremental changes. Original authors are Morimoto-san with help from Yoshii-san, thanks to them for the heavy lifting. Adjusted by Magnus to work together with updated code in drivers/pinctrl. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Takashi Yoshii <takashi.yoshii.zj@renesas.com> Signed-off-by: Magnus Damm <damm@opensource.se> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-shmobile/include/mach/r8a73a4.h918
1 files changed, 918 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/include/mach/r8a73a4.h b/arch/arm/mach-shmobile/include/mach/r8a73a4.h
index f043103e32c9..f0b1b4a962b3 100644
--- a/arch/arm/mach-shmobile/include/mach/r8a73a4.h
+++ b/arch/arm/mach-shmobile/include/mach/r8a73a4.h
@@ -1,6 +1,924 @@
#ifndef __ASM_R8A73A4_H__
#define __ASM_R8A73A4_H__
+/*
+ * Pin Function Controller:
+ * GPIO_FN_xx - GPIO used to select pin function
+ * GPIO_PORTxx - GPIO mapped to real I/O pin on CPU
+ */
+enum {
+
+ /* PORT */
+ GPIO_PORT0, GPIO_PORT1, GPIO_PORT2, GPIO_PORT3, GPIO_PORT4,
+ GPIO_PORT5, GPIO_PORT6, GPIO_PORT7, GPIO_PORT8, GPIO_PORT9,
+
+ GPIO_PORT10, GPIO_PORT11, GPIO_PORT12, GPIO_PORT13, GPIO_PORT14,
+ GPIO_PORT15, GPIO_PORT16, GPIO_PORT17, GPIO_PORT18, GPIO_PORT19,
+
+ GPIO_PORT20, GPIO_PORT21, GPIO_PORT22, GPIO_PORT23, GPIO_PORT24,
+ GPIO_PORT25, GPIO_PORT26, GPIO_PORT27, GPIO_PORT28, GPIO_PORT29,
+
+ GPIO_PORT30, GPIO_PORT32, GPIO_PORT33, GPIO_PORT34,
+ GPIO_PORT35, GPIO_PORT36, GPIO_PORT37, GPIO_PORT38, GPIO_PORT39,
+
+ GPIO_PORT40, GPIO_PORT64,
+ GPIO_PORT65, GPIO_PORT66, GPIO_PORT67, GPIO_PORT68, GPIO_PORT69,
+
+ GPIO_PORT70, GPIO_PORT71, GPIO_PORT72, GPIO_PORT73, GPIO_PORT74,
+ GPIO_PORT75, GPIO_PORT76, GPIO_PORT77, GPIO_PORT78, GPIO_PORT79,
+
+ GPIO_PORT80, GPIO_PORT81, GPIO_PORT82, GPIO_PORT83, GPIO_PORT84,
+ GPIO_PORT85, GPIO_PORT96, GPIO_PORT97, GPIO_PORT98, GPIO_PORT99,
+
+ GPIO_PORT100, GPIO_PORT101, GPIO_PORT102, GPIO_PORT103, GPIO_PORT104,
+ GPIO_PORT105, GPIO_PORT106, GPIO_PORT107, GPIO_PORT108, GPIO_PORT109,
+
+ GPIO_PORT110, GPIO_PORT111, GPIO_PORT112, GPIO_PORT113, GPIO_PORT114,
+ GPIO_PORT115, GPIO_PORT116, GPIO_PORT117, GPIO_PORT118, GPIO_PORT119,
+
+ GPIO_PORT120, GPIO_PORT121, GPIO_PORT122, GPIO_PORT123, GPIO_PORT124,
+ GPIO_PORT125, GPIO_PORT126, GPIO_PORT128, GPIO_PORT129,
+
+ GPIO_PORT130, GPIO_PORT131, GPIO_PORT132, GPIO_PORT133, GPIO_PORT134,
+
+ GPIO_PORT160, GPIO_PORT161, GPIO_PORT162, GPIO_PORT163, GPIO_PORT164,
+ GPIO_PORT165, GPIO_PORT166, GPIO_PORT167, GPIO_PORT168, GPIO_PORT169,
+
+ GPIO_PORT170, GPIO_PORT171, GPIO_PORT172, GPIO_PORT173, GPIO_PORT174,
+ GPIO_PORT175, GPIO_PORT176, GPIO_PORT177, GPIO_PORT178,
+
+ GPIO_PORT192, GPIO_PORT193, GPIO_PORT194,
+ GPIO_PORT195, GPIO_PORT196, GPIO_PORT197, GPIO_PORT198, GPIO_PORT199,
+
+ GPIO_PORT200, GPIO_PORT201, GPIO_PORT202, GPIO_PORT203, GPIO_PORT204,
+ GPIO_PORT205, GPIO_PORT206, GPIO_PORT207, GPIO_PORT208, GPIO_PORT209,
+
+ GPIO_PORT210, GPIO_PORT211, GPIO_PORT212, GPIO_PORT213, GPIO_PORT214,
+ GPIO_PORT215, GPIO_PORT216, GPIO_PORT217, GPIO_PORT218, GPIO_PORT219,
+
+ GPIO_PORT220, GPIO_PORT221, GPIO_PORT222, GPIO_PORT224,
+ GPIO_PORT225, GPIO_PORT226, GPIO_PORT227, GPIO_PORT228, GPIO_PORT229,
+
+ GPIO_PORT230, GPIO_PORT231, GPIO_PORT232, GPIO_PORT233, GPIO_PORT234,
+ GPIO_PORT235, GPIO_PORT236, GPIO_PORT237, GPIO_PORT238, GPIO_PORT239,
+
+ GPIO_PORT240, GPIO_PORT241, GPIO_PORT242, GPIO_PORT243, GPIO_PORT244,
+ GPIO_PORT245, GPIO_PORT246, GPIO_PORT247, GPIO_PORT248, GPIO_PORT249,
+
+ GPIO_PORT250, GPIO_PORT256, GPIO_PORT257, GPIO_PORT258, GPIO_PORT259,
+
+ GPIO_PORT260, GPIO_PORT261, GPIO_PORT262, GPIO_PORT263, GPIO_PORT264,
+ GPIO_PORT265, GPIO_PORT266, GPIO_PORT267, GPIO_PORT268, GPIO_PORT269,
+
+ GPIO_PORT270, GPIO_PORT271, GPIO_PORT272, GPIO_PORT273, GPIO_PORT274,
+ GPIO_PORT275, GPIO_PORT276, GPIO_PORT277, GPIO_PORT278, GPIO_PORT279,
+
+ GPIO_PORT280, GPIO_PORT281, GPIO_PORT282, GPIO_PORT283,
+ GPIO_PORT288, GPIO_PORT289,
+
+ GPIO_PORT290, GPIO_PORT291, GPIO_PORT292, GPIO_PORT293, GPIO_PORT294,
+ GPIO_PORT295, GPIO_PORT296, GPIO_PORT297, GPIO_PORT298, GPIO_PORT299,
+
+ GPIO_PORT300, GPIO_PORT301, GPIO_PORT302, GPIO_PORT303, GPIO_PORT304,
+ GPIO_PORT305, GPIO_PORT306, GPIO_PORT307, GPIO_PORT308,
+
+ GPIO_PORT320, GPIO_PORT321, GPIO_PORT322, GPIO_PORT323, GPIO_PORT324,
+ GPIO_PORT325, GPIO_PORT326, GPIO_PORT327, GPIO_PORT328, GPIO_PORT329,
+
+ /* Port0 */
+ GPIO_FN_LCDD0,
+ GPIO_FN_PDM2_CLK_0,
+ GPIO_FN_DU0_DR0,
+ GPIO_FN_IRQ0,
+
+ /* Port1 */
+ GPIO_FN_LCDD1,
+ GPIO_FN_PDM2_DATA_1,
+ GPIO_FN_DU0_DR19,
+ GPIO_FN_IRQ1,
+
+ /* Port2 */
+ GPIO_FN_LCDD2,
+ GPIO_FN_PDM3_CLK_2,
+ GPIO_FN_DU0_DR2,
+ GPIO_FN_IRQ2,
+
+ /* Port3 */
+ GPIO_FN_LCDD3,
+ GPIO_FN_PDM3_DATA_3,
+ GPIO_FN_DU0_DR3,
+ GPIO_FN_IRQ3,
+
+ /* Port4 */
+ GPIO_FN_LCDD4,
+ GPIO_FN_PDM4_CLK_4,
+ GPIO_FN_DU0_DR4,
+ GPIO_FN_IRQ4,
+
+ /* Port5 */
+ GPIO_FN_LCDD5,
+ GPIO_FN_PDM4_DATA_5,
+ GPIO_FN_DU0_DR5,
+ GPIO_FN_IRQ5,
+
+ /* Port6 */
+ GPIO_FN_LCDD6,
+ GPIO_FN_PDM0_OUTCLK_6,
+ GPIO_FN_DU0_DR6,
+ GPIO_FN_IRQ6,
+
+ /* Port7 */
+ GPIO_FN_LCDD7,
+ GPIO_FN_PDM0_OUTDATA_7,
+ GPIO_FN_DU0_DR7,
+ GPIO_FN_IRQ7,
+
+ /* Port8 */
+ GPIO_FN_LCDD8,
+ GPIO_FN_PDM1_OUTCLK_8,
+ GPIO_FN_DU0_DG0,
+ GPIO_FN_IRQ8,
+
+ /* Port9 */
+ GPIO_FN_LCDD9,
+ GPIO_FN_PDM1_OUTDATA_9,
+ GPIO_FN_DU0_DG1,
+ GPIO_FN_IRQ9,
+
+ /* Port10 */
+ GPIO_FN_LCDD10,
+ GPIO_FN_FSICCK,
+ GPIO_FN_DU0_DG2,
+ GPIO_FN_IRQ10,
+
+ /* Port11 */
+ GPIO_FN_LCDD11,
+ GPIO_FN_FSICISLD,
+ GPIO_FN_DU0_DG3,
+ GPIO_FN_IRQ11,
+
+ /* Port12 */
+ GPIO_FN_LCDD12,
+ GPIO_FN_FSICOMC,
+ GPIO_FN_DU0_DG4,
+ GPIO_FN_IRQ12,
+
+ /* Port13 */
+ GPIO_FN_LCDD13,
+ GPIO_FN_FSICOLR,
+ GPIO_FN_FSICILR,
+ GPIO_FN_DU0_DG5,
+ GPIO_FN_IRQ13,
+
+ /* Port14 */
+ GPIO_FN_LCDD14,
+ GPIO_FN_FSICOBT,
+ GPIO_FN_FSICIBT,
+ GPIO_FN_DU0_DG6,
+ GPIO_FN_IRQ14,
+
+ /* Port15 */
+ GPIO_FN_LCDD15,
+ GPIO_FN_FSICOSLD,
+ GPIO_FN_DU0_DG7,
+ GPIO_FN_IRQ15,
+
+ /* Port16 */
+ GPIO_FN_LCDD16,
+ GPIO_FN_TPU1TO1,
+ GPIO_FN_DU0_DB0,
+
+ /* Port17 */
+ GPIO_FN_LCDD17,
+ GPIO_FN_SF_IRQ_00,
+ GPIO_FN_DU0_DB1,
+
+ /* Port18 */
+ GPIO_FN_LCDD18,
+ GPIO_FN_SF_IRQ_01,
+ GPIO_FN_DU0_DB2,
+
+ /* Port19 */
+ GPIO_FN_LCDD19,
+ GPIO_FN_SCIFB3_RTS_19,
+ GPIO_FN_DU0_DB3,
+
+ /* Port20 */
+ GPIO_FN_LCDD20,
+ GPIO_FN_SCIFB3_CTS_20,
+ GPIO_FN_DU0_DB4,
+
+ /* Port21 */
+ GPIO_FN_LCDD21,
+ GPIO_FN_SCIFB3_TXD_21,
+ GPIO_FN_DU0_DB5,
+
+ /* Port22 */
+ GPIO_FN_LCDD22,
+ GPIO_FN_SCIFB3_RXD_22,
+ GPIO_FN_DU0_DB6,
+
+ /* Port23 */
+ GPIO_FN_LCDD23,
+ GPIO_FN_SCIFB3_SCK_23,
+ GPIO_FN_DU0_DB7,
+
+ /* Port24 */
+ GPIO_FN_LCDHSYN,
+ GPIO_FN_LCDCS,
+ GPIO_FN_SCIFB1_RTS_24,
+ GPIO_FN_DU0_EXHSYNC_N_CSYNC_N_HSYNC_N,
+
+ /* Port25 */
+ GPIO_FN_LCDVSYN,
+ GPIO_FN_SCIFB1_CTS_25,
+ GPIO_FN_DU0_EXVSYNC_N_VSYNC_N_CSYNC_N,
+
+ /* Port26 */
+ GPIO_FN_LCDDCK,
+ GPIO_FN_LCDWR,
+ GPIO_FN_SCIFB1_TXD_26,
+ GPIO_FN_DU0_DOTCLKIN,
+
+ /* Port27 */
+ GPIO_FN_LCDDISP,
+ GPIO_FN_LCDRS,
+ GPIO_FN_SCIFB1_RXD_27,
+ GPIO_FN_DU0_DOTCLKOUT,
+
+ /* Port28 */
+ GPIO_FN_LCDRD_N,
+ GPIO_FN_SCIFB1_SCK_28,
+ GPIO_FN_DU0_DOTCLKOUTB,
+
+ /* Port29 */
+ GPIO_FN_LCDLCLK,
+ GPIO_FN_SF_IRQ_02,
+ GPIO_FN_DU0_DISP_CSYNC_N_DE,
+
+ /* Port30 */
+ GPIO_FN_LCDDON,
+ GPIO_FN_SF_IRQ_03,
+ GPIO_FN_DU0_ODDF_N_CLAMP,
+
+ /* Port32 */
+ GPIO_FN_SCIFA0_RTS,
+ GPIO_FN_SIM0_DET,
+ GPIO_FN_CSCIF0_RTS,
+
+ /* Port33 */
+ GPIO_FN_SCIFA0_CTS,
+ GPIO_FN_SIM1_DET,
+ GPIO_FN_CSCIF0_CTS,
+
+ /* Port34 */
+ GPIO_FN_SCIFA0_SCK,
+ GPIO_FN_SIM0_PWRON,
+ GPIO_FN_CSCIF0_SCK,
+
+ /* Port35 */
+ GPIO_FN_SCIFA1_RTS,
+ GPIO_FN_CSCIF1_RTS,
+
+ /* Port36 */
+ GPIO_FN_SCIFA1_CTS,
+ GPIO_FN_CSCIF1_CTS,
+
+ /* Port37 */
+ GPIO_FN_SCIFA1_SCK,
+ GPIO_FN_CSCIF1_SCK,
+
+ /* Port38 */
+ GPIO_FN_SCIFB0_RTS,
+ GPIO_FN_TPU0TO1,
+ GPIO_FN_SCIFB3_RTS_38,
+ GPIO_FN_CHSCIF0_HRTS,
+
+ /* Port39 */
+ GPIO_FN_SCIFB0_CTS,
+ GPIO_FN_TPU0TO2,
+ GPIO_FN_SCIFB3_CTS_39,
+ GPIO_FN_CHSCIF0_HCTS,
+
+ /* Port40 */
+ GPIO_FN_SCIFB0_SCK,
+ GPIO_FN_TPU0TO3,
+ GPIO_FN_SCIFB3_SCK_40,
+ GPIO_FN_CHSCIF0_HSCK,
+
+ /* Port64 */
+ GPIO_FN_PDM0_DATA,
+
+ /* Port65 */
+ GPIO_FN_PDM1_DATA,
+
+ /* Port66 */
+ GPIO_FN_HSI_RX_WAKE,
+ GPIO_FN_SCIFB2_CTS_66,
+ GPIO_FN_MSIOF3_SYNC,
+ GPIO_FN_GenIO4,
+ GPIO_FN_IRQ40,
+
+ /* Port67 */
+ GPIO_FN_HSI_RX_READY,
+ GPIO_FN_SCIFB1_TXD_67,
+ GPIO_FN_GIO_OUT3_67,
+ GPIO_FN_CHSCIF1_HTX,
+
+ /* Port68 */
+ GPIO_FN_HSI_RX_FLAG,
+ GPIO_FN_SCIFB2_TXD_68,
+ GPIO_FN_MSIOF3_TXD,
+ GPIO_FN_GIO_OUT4_68,
+
+ /* Port69 */
+ GPIO_FN_HSI_RX_DATA,
+ GPIO_FN_SCIFB2_RXD_69,
+ GPIO_FN_MSIOF3_RXD,
+ GPIO_FN_GIO_OUT5_69,
+
+ /* Port70 */
+ GPIO_FN_HSI_TX_FLAG,
+ GPIO_FN_SCIFB1_RTS_70,
+ GPIO_FN_GIO_OUT1_70,
+ GPIO_FN_HSIC_TSTCLK0,
+ GPIO_FN_CHSCIF1_HRTS,
+
+ /* Port71 */
+ GPIO_FN_HSI_TX_DATA,
+ GPIO_FN_SCIFB1_CTS_71,
+ GPIO_FN_GIO_OUT2_71,
+ GPIO_FN_HSIC_TSTCLK1,
+ GPIO_FN_CHSCIF1_HCTS,
+
+ /* Port72 */
+ GPIO_FN_HSI_TX_WAKE,
+ GPIO_FN_SCIFB1_RXD_72,
+ GPIO_FN_GenIO8,
+ GPIO_FN_CHSCIF1_HRX,
+
+ /* Port73 */
+ GPIO_FN_HSI_TX_READY,
+ GPIO_FN_SCIFB2_RTS_73,
+ GPIO_FN_MSIOF3_SCK,
+ GPIO_FN_GIO_OUT0_73,
+
+ /* Port74 - Port85 */
+ GPIO_FN_IRDA_OUT,
+ GPIO_FN_IRDA_IN,
+ GPIO_FN_IRDA_FIRSEL,
+ GPIO_FN_TPU0TO0,
+ GPIO_FN_DIGRFEN,
+ GPIO_FN_GPS_TIMESTAMP,
+ GPIO_FN_TXP,
+ GPIO_FN_TXP2,
+ GPIO_FN_COEX_0,
+ GPIO_FN_COEX_1,
+ GPIO_FN_IRQ19,
+ GPIO_FN_IRQ18,
+
+ /* Port96 - Port101 */
+ GPIO_FN_KEYIN0,
+ GPIO_FN_KEYIN1,
+ GPIO_FN_KEYIN2,
+ GPIO_FN_KEYIN3,
+ GPIO_FN_KEYIN4,
+ GPIO_FN_KEYIN5,
+
+ /* Port102 */
+ GPIO_FN_KEYIN6,
+ GPIO_FN_IRQ41,
+
+ /* Port103 */
+ GPIO_FN_KEYIN7,
+ GPIO_FN_IRQ42,
+
+ /* Port104 - Port108 */
+ GPIO_FN_KEYOUT0,
+ GPIO_FN_KEYOUT1,
+ GPIO_FN_KEYOUT2,
+ GPIO_FN_KEYOUT3,
+ GPIO_FN_KEYOUT4,
+
+ /* Port109 */
+ GPIO_FN_KEYOUT5,
+ GPIO_FN_IRQ43,
+
+ /* Port110 */
+ GPIO_FN_KEYOUT6,
+ GPIO_FN_IRQ44,
+
+ /* Port111 */
+ GPIO_FN_KEYOUT7,
+ GPIO_FN_RFANAEN,
+ GPIO_FN_IRQ45,
+
+ /* Port112 */
+ GPIO_FN_KEYIN8,
+ GPIO_FN_KEYOUT8,
+ GPIO_FN_SF_IRQ_04,
+ GPIO_FN_IRQ46,
+
+ /* Port113 */
+ GPIO_FN_KEYIN9,
+ GPIO_FN_KEYOUT9,
+ GPIO_FN_SF_IRQ_05,
+ GPIO_FN_IRQ47,
+
+ /* Port114 */
+ GPIO_FN_KEYIN10,
+ GPIO_FN_KEYOUT10,
+ GPIO_FN_SF_IRQ_06,
+ GPIO_FN_IRQ48,
+
+ /* Port115 */
+ GPIO_FN_KEYIN11,
+ GPIO_FN_KEYOUT11,
+ GPIO_FN_SF_IRQ_07,
+ GPIO_FN_IRQ49,
+
+ /* Port116 */
+ GPIO_FN_SCIFA0_TXD,
+ GPIO_FN_CSCIF0_TX,
+
+ /* Port117 */
+ GPIO_FN_SCIFA0_RXD,
+ GPIO_FN_CSCIF0_RX,
+
+ /* Port118 */
+ GPIO_FN_SCIFA1_TXD,
+ GPIO_FN_CSCIF1_TX,
+
+ /* Port119 */
+ GPIO_FN_SCIFA1_RXD,
+ GPIO_FN_CSCIF1_RX,
+
+ /* Port120 */
+ GPIO_FN_SF_PORT_1_120,
+ GPIO_FN_SCIFB3_RXD_120,
+ GPIO_FN_DU0_CDE,
+
+ /* Port121 */
+ GPIO_FN_SF_PORT_0_121,
+ GPIO_FN_SCIFB3_TXD_121,
+
+ /* Port122 */
+ GPIO_FN_SCIFB0_TXD,
+ GPIO_FN_CHSCIF0_HTX,
+
+ /* Port123 */
+ GPIO_FN_SCIFB0_RXD,
+ GPIO_FN_CHSCIF0_HRX,
+
+ /* Port124 */
+ GPIO_FN_ISP_STROBE_124,
+
+ /* Port125 */
+ GPIO_FN_STP_ISD_0,
+ GPIO_FN_PDM4_CLK_125,
+ GPIO_FN_MSIOF2_TXD,
+ GPIO_FN_SIM0_VOLTSEL0,
+
+ /* Port126 */
+ GPIO_FN_TS_SDEN,
+ GPIO_FN_MSIOF7_SYNC,
+ GPIO_FN_STP_ISEN_1,
+
+ /* Port128 */
+ GPIO_FN_STP_ISEN_0,
+ GPIO_FN_PDM1_OUTDATA_128,
+ GPIO_FN_MSIOF2_SYNC,
+ GPIO_FN_SIM1_VOLTSEL1,
+
+ /* Port129 */
+ GPIO_FN_TS_SPSYNC,
+ GPIO_FN_MSIOF7_RXD,
+ GPIO_FN_STP_ISSYNC_1,
+
+ /* Port130 */
+ GPIO_FN_STP_ISSYNC_0,
+ GPIO_FN_PDM4_DATA_130,
+ GPIO_FN_MSIOF2_RXD,
+ GPIO_FN_SIM0_VOLTSEL1,
+
+ /* Port131 */
+ GPIO_FN_STP_OPWM_0,
+ GPIO_FN_SIM1_PWRON,
+
+ /* Port132 */
+ GPIO_FN_TS_SCK,
+ GPIO_FN_MSIOF7_SCK,
+ GPIO_FN_STP_ISCLK_1,
+
+ /* Port133 */
+ GPIO_FN_STP_ISCLK_0,
+ GPIO_FN_PDM1_OUTCLK_133,
+ GPIO_FN_MSIOF2_SCK,
+ GPIO_FN_SIM1_VOLTSEL0,
+
+ /* Port134 */
+ GPIO_FN_TS_SDAT,
+ GPIO_FN_MSIOF7_TXD,
+ GPIO_FN_STP_ISD_1,
+
+ /* Port160 - Port178 */
+ GPIO_FN_IRQ20,
+ GPIO_FN_IRQ21,
+ GPIO_FN_IRQ22,
+ GPIO_FN_IRQ23,
+ GPIO_FN_MMCD0_0,
+ GPIO_FN_MMCD0_1,
+ GPIO_FN_MMCD0_2,
+ GPIO_FN_MMCD0_3,
+ GPIO_FN_MMCD0_4,
+ GPIO_FN_MMCD0_5,
+ GPIO_FN_MMCD0_6,
+ GPIO_FN_MMCD0_7,
+ GPIO_FN_MMCCMD0,
+ GPIO_FN_MMCCLK0,
+ GPIO_FN_MMCRST,
+ GPIO_FN_IRQ24,
+ GPIO_FN_IRQ25,
+ GPIO_FN_IRQ26,
+ GPIO_FN_IRQ27,
+
+ /* Port192 - Port200 FN1 */
+ GPIO_FN_A10,
+ GPIO_FN_A9,
+ GPIO_FN_A8,
+ GPIO_FN_A7,
+ GPIO_FN_A6,
+ GPIO_FN_A5,
+ GPIO_FN_A4,
+ GPIO_FN_A3,
+ GPIO_FN_A2,
+
+ /* Port192 - Port200 FN2 */
+ GPIO_FN_MMCD1_7,
+ GPIO_FN_MMCD1_6,
+ GPIO_FN_MMCD1_5,
+ GPIO_FN_MMCD1_4,
+ GPIO_FN_MMCD1_3,
+ GPIO_FN_MMCD1_2,
+ GPIO_FN_MMCD1_1,
+ GPIO_FN_MMCD1_0,
+ GPIO_FN_MMCCMD1,
+
+ /* Port192 - Port200 IRQ */
+ GPIO_FN_IRQ31,
+ GPIO_FN_IRQ32,
+ GPIO_FN_IRQ33,
+ GPIO_FN_IRQ34,
+ GPIO_FN_IRQ35,
+ GPIO_FN_IRQ36,
+ GPIO_FN_IRQ37,
+ GPIO_FN_IRQ38,
+ GPIO_FN_IRQ39,
+
+ /* Port201 */
+ GPIO_FN_A1,
+
+ /* Port202 */
+ GPIO_FN_A0,
+ GPIO_FN_BS,
+
+ /* Port203 */
+ GPIO_FN_CKO,
+ GPIO_FN_MMCCLK1,
+
+ /* Port204 */
+ GPIO_FN_CS0_N,
+ GPIO_FN_SIM0_GPO1,
+
+ /* Port205 */
+ GPIO_FN_CS2_N,
+ GPIO_FN_SIM0_GPO2,
+
+ /* Port206 */
+ GPIO_FN_CS4_N,
+ GPIO_FN_VIO_VD,
+ GPIO_FN_SIM1_GPO0,
+
+ /* Port207 - Port212 FN1 */
+ GPIO_FN_D15,
+ GPIO_FN_D14,
+ GPIO_FN_D13,
+ GPIO_FN_D12,
+ GPIO_FN_D11,
+ GPIO_FN_D10,
+
+ /* Port207 - Port212 FN5 */
+ GPIO_FN_GIO_OUT15,
+ GPIO_FN_GIO_OUT14,
+ GPIO_FN_GIO_OUT13,
+ GPIO_FN_GIO_OUT12,
+ GPIO_FN_WGM_TXP2,
+ GPIO_FN_WGM_GPS_TIMEM_ASK_RFCLK,
+
+ /* Port213 - Port222 FN1 */
+ GPIO_FN_D9,
+ GPIO_FN_D8,
+ GPIO_FN_D7,
+ GPIO_FN_D6,
+ GPIO_FN_D5,
+ GPIO_FN_D4,
+ GPIO_FN_D3,
+ GPIO_FN_D2,
+ GPIO_FN_D1,
+ GPIO_FN_D0,
+
+ /* Port213 - Port222 FN2 */
+ GPIO_FN_VIO_D9,
+ GPIO_FN_VIO_D8,
+ GPIO_FN_VIO_D7,
+ GPIO_FN_VIO_D6,
+ GPIO_FN_VIO_D5,
+ GPIO_FN_VIO_D4,
+ GPIO_FN_VIO_D3,
+ GPIO_FN_VIO_D2,
+ GPIO_FN_VIO_D1,
+ GPIO_FN_VIO_D0,
+
+ /* Port213 - Port222 FN5 */
+ GPIO_FN_GIO_OUT9,
+ GPIO_FN_GIO_OUT8,
+ GPIO_FN_GIO_OUT7,
+ GPIO_FN_GIO_OUT6,
+ GPIO_FN_GIO_OUT5_217,
+ GPIO_FN_GIO_OUT4_218,
+ GPIO_FN_GIO_OUT3_219,
+ GPIO_FN_GIO_OUT2_220,
+ GPIO_FN_GIO_OUT1_221,
+ GPIO_FN_GIO_OUT0_222,
+
+ /* Port224 */
+ GPIO_FN_RDWR_224,
+ GPIO_FN_VIO_HD,
+ GPIO_FN_SIM1_GPO2,
+
+ /* Port225 */
+ GPIO_FN_RD_N,
+
+ /* Port226 */
+ GPIO_FN_WAIT_N,
+ GPIO_FN_VIO_CLK,
+ GPIO_FN_SIM1_GPO1,
+
+ /* Port227 */
+ GPIO_FN_WE0_N,
+ GPIO_FN_RDWR_227,
+
+ /* Port228 */
+ GPIO_FN_WE1_N,
+ GPIO_FN_SIM0_GPO0,
+
+ /* Port229 */
+ GPIO_FN_PWMO,
+ GPIO_FN_VIO_CKO1_229,
+
+ /* Port230 */
+ GPIO_FN_SLIM_CLK,
+ GPIO_FN_VIO_CKO4_230,
+
+ /* Port231 */
+ GPIO_FN_SLIM_DATA,
+ GPIO_FN_VIO_CKO5_231,
+
+ /* Port232 */
+ GPIO_FN_VIO_CKO2_232,
+ GPIO_FN_SF_PORT_0_232,
+
+ /* Port233 */
+ GPIO_FN_VIO_CKO3_233,
+ GPIO_FN_SF_PORT_1_233,
+
+ /* Port234 */
+ GPIO_FN_FSIACK,
+ GPIO_FN_PDM3_CLK_234,
+ GPIO_FN_ISP_IRIS1_234,
+
+ /* Port235 */
+ GPIO_FN_FSIAISLD,
+ GPIO_FN_PDM3_DATA_235,
+
+ /* Port236 */
+ GPIO_FN_FSIAOMC,
+ GPIO_FN_PDM0_OUTCLK_236,
+ GPIO_FN_ISP_IRIS0_236,
+
+ /* Port237 */
+ GPIO_FN_FSIAOLR,
+ GPIO_FN_FSIAILR,
+
+ /* Port238 */
+ GPIO_FN_FSIAOBT,
+ GPIO_FN_FSIAIBT,
+
+ /* Port239 */
+ GPIO_FN_FSIAOSLD,
+ GPIO_FN_PDM0_OUTDATA_239,
+
+ /* Port240 */
+ GPIO_FN_FSIBISLD,
+
+ /* Port241 */
+ GPIO_FN_FSIBOLR,
+ GPIO_FN_FSIBILR,
+
+ /* Port242 */
+ GPIO_FN_FSIBOMC,
+ GPIO_FN_ISP_SHUTTER1_242,
+
+ /* Port243 */
+ GPIO_FN_FSIBOBT,
+ GPIO_FN_FSIBIBT,
+
+ /* Port244 */
+ GPIO_FN_FSIBOSLD,
+ GPIO_FN_FSIASPDIF,
+
+ /* Port245 */
+ GPIO_FN_FSIBCK,
+ GPIO_FN_ISP_SHUTTER0_245,
+
+ /* Port246 - Port250 FN1 */
+ GPIO_FN_ISP_IRIS1_246,
+ GPIO_FN_ISP_IRIS0_247,
+ GPIO_FN_ISP_SHUTTER1_248,
+ GPIO_FN_ISP_SHUTTER0_249,
+ GPIO_FN_ISP_STROBE_250,
+
+ /* Port256 - Port258 */
+ GPIO_FN_MSIOF0_SYNC,
+ GPIO_FN_MSIOF0_RXD,
+ GPIO_FN_MSIOF0_SCK,
+
+ /* Port259 */
+ GPIO_FN_MSIOF0_SS2,
+ GPIO_FN_VIO_CKO3_259,
+
+ /* Port260 */
+ GPIO_FN_MSIOF0_TXD,
+
+ /* Port261 */
+ GPIO_FN_SCIFB1_SCK_261,
+ GPIO_FN_CHSCIF1_HSCK,
+
+ /* Port262 */
+ GPIO_FN_SCIFB2_SCK_262,
+
+ /* Port263 - Port266 FN1 */
+ GPIO_FN_MSIOF1_SS2,
+ GPIO_FN_MSIOF1_TXD,
+ GPIO_FN_MSIOF1_RXD,
+ GPIO_FN_MSIOF1_SS1,
+
+ /* Port263 - Port266 FN4 */
+ GPIO_FN_MSIOF5_SS2,
+ GPIO_FN_MSIOF5_TXD,
+ GPIO_FN_MSIOF5_RXD,
+ GPIO_FN_MSIOF5_SS1,
+
+ /* Port267 */
+ GPIO_FN_MSIOF0_SS1,
+
+ /* Port268 */
+ GPIO_FN_MSIOF1_SCK,
+ GPIO_FN_MSIOF5_SCK,
+
+ /* Port269 */
+ GPIO_FN_MSIOF1_SYNC,
+ GPIO_FN_MSIOF5_SYNC,
+
+ /* Port270 - Port273 FN1 */
+ GPIO_FN_MSIOF2_SS1,
+ GPIO_FN_MSIOF2_SS2,
+ GPIO_FN_MSIOF3_SS2,
+ GPIO_FN_MSIOF3_SS1,
+
+ /* Port270 - Port273 FN3 */
+ GPIO_FN_VIO_CKO5_270,
+ GPIO_FN_VIO_CKO2_271,
+ GPIO_FN_VIO_CKO1_272,
+ GPIO_FN_VIO_CKO4_273,
+
+ /* Port274 */
+ GPIO_FN_MSIOF4_SS2,
+ GPIO_FN_TPU1TO0,
+
+ /* Port275 - Port280 */
+ GPIO_FN_IC_DP,
+ GPIO_FN_SIM0_RST,
+ GPIO_FN_IC_DM,
+ GPIO_FN_SIM0_BSICOMP,
+ GPIO_FN_SIM0_CLK,
+ GPIO_FN_SIM0_IO,
+
+ /* Port281 */
+ GPIO_FN_SIM1_IO,
+ GPIO_FN_PDM2_DATA_281,
+
+ /* Port282 */
+ GPIO_FN_SIM1_CLK,
+ GPIO_FN_PDM2_CLK_282,
+
+ /* Port283 */
+ GPIO_FN_SIM1_RST,
+
+ /* Port289 */
+ GPIO_FN_SDHID1_0,
+ GPIO_FN_STMDATA0_2,
+
+ /* Port290 */
+ GPIO_FN_SDHID1_1,
+ GPIO_FN_STMDATA1_2,
+ GPIO_FN_IRQ51,
+
+ /* Port291 - Port294 FN1 */
+ GPIO_FN_SDHID1_2,
+ GPIO_FN_SDHID1_3,
+ GPIO_FN_SDHICLK1,
+ GPIO_FN_SDHICMD1,
+
+ /* Port291 - Port294 FN3 */
+ GPIO_FN_STMDATA2_2,
+ GPIO_FN_STMDATA3_2,
+ GPIO_FN_STMCLK_2,
+ GPIO_FN_STMSIDI_2,
+
+ /* Port295 */
+ GPIO_FN_SDHID2_0,
+ GPIO_FN_MSIOF4_TXD,
+ GPIO_FN_SCIFB2_TXD_295,
+ GPIO_FN_MSIOF6_TXD,
+
+ /* Port296 */
+ GPIO_FN_SDHID2_1,
+ GPIO_FN_MSIOF6_SS2,
+ GPIO_FN_IRQ52,
+
+ /* Port297 - Port300 FN1 */
+ GPIO_FN_SDHID2_2,
+ GPIO_FN_SDHID2_3,
+ GPIO_FN_SDHICLK2,
+ GPIO_FN_SDHICMD2,
+
+ /* Port297 - Port300 FN2 */
+ GPIO_FN_MSIOF4_RXD,
+ GPIO_FN_MSIOF4_SYNC,
+ GPIO_FN_MSIOF4_SCK,
+ GPIO_FN_MSIOF4_SS1,
+
+ /* Port297 - Port300 FN3 */
+ GPIO_FN_SCIFB2_RXD_297,
+ GPIO_FN_SCIFB2_CTS_298,
+ GPIO_FN_SCIFB2_SCK_299,
+ GPIO_FN_SCIFB2_RTS_300,
+
+ /* Port297 - Port300 FN4 */
+ GPIO_FN_MSIOF6_RXD,
+ GPIO_FN_MSIOF6_SYNC,
+ GPIO_FN_MSIOF6_SCK,
+ GPIO_FN_MSIOF6_SS1,
+
+ /* Port301 */
+ GPIO_FN_SDHICD0,
+ GPIO_FN_IRQ50,
+
+ /* Port302 - Port306 FN1 */
+ GPIO_FN_SDHID0_0,
+ GPIO_FN_SDHID0_1,
+ GPIO_FN_SDHID0_2,
+ GPIO_FN_SDHID0_3,
+ GPIO_FN_SDHICMD0,
+
+ /* Port302 - Port306 FN3 */
+ GPIO_FN_STMDATA0_1,
+ GPIO_FN_STMDATA1_1,
+ GPIO_FN_STMDATA2_1,
+ GPIO_FN_STMDATA3_1,
+ GPIO_FN_STMSIDI_1,
+
+ /* Port307 */
+ GPIO_FN_SDHIWP0,
+
+ /* Port308 */
+ GPIO_FN_SDHICLK0,
+ GPIO_FN_STMCLK_1,
+
+ /* Port320 - Port329 */
+ GPIO_FN_IRQ16,
+ GPIO_FN_IRQ17,
+ GPIO_FN_IRQ28,
+ GPIO_FN_IRQ29,
+ GPIO_FN_IRQ30,
+ GPIO_FN_IRQ53,
+ GPIO_FN_IRQ54,
+ GPIO_FN_IRQ55,
+ GPIO_FN_IRQ56,
+ GPIO_FN_IRQ57,
+};
+
void r8a73a4_add_standard_devices(void);
void r8a73a4_clock_init(void);
void r8a73a4_pinmux_init(void);