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>
This commit is contained in:
Magnus Damm 2013-03-26 22:49:49 +09:00 committed by Simon Horman
parent ba774cc738
commit c98f6c21af
6 changed files with 3754 additions and 0 deletions

View File

@ -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);

View File

@ -22,6 +22,11 @@ config GPIO_SH_PFC
This enables support for GPIOs within the SoC's pin function
controller.
config PINCTRL_PFC_R8A73A4
def_bool y
depends on ARCH_R8A73A4
select PINCTRL_SH_PFC
config PINCTRL_PFC_R8A7740
def_bool y
depends on ARCH_R8A7740

View File

@ -3,6 +3,7 @@ ifeq ($(CONFIG_GPIO_SH_PFC),y)
sh-pfc-objs += gpio.o
endif
obj-$(CONFIG_PINCTRL_SH_PFC) += sh-pfc.o
obj-$(CONFIG_PINCTRL_PFC_R8A73A4) += pfc-r8a73a4.o
obj-$(CONFIG_PINCTRL_PFC_R8A7740) += pfc-r8a7740.o
obj-$(CONFIG_PINCTRL_PFC_R8A7779) += pfc-r8a7779.o
obj-$(CONFIG_PINCTRL_PFC_SH7203) += pfc-sh7203.o

View File

@ -418,6 +418,9 @@ static int sh_pfc_remove(struct platform_device *pdev)
}
static const struct platform_device_id sh_pfc_id_table[] = {
#ifdef CONFIG_PINCTRL_PFC_R8A73A4
{ "pfc-r8a73a4", (kernel_ulong_t)&r8a73a4_pinmux_info },
#endif
#ifdef CONFIG_PINCTRL_PFC_R8A7740
{ "pfc-r8a7740", (kernel_ulong_t)&r8a7740_pinmux_info },
#endif

View File

@ -54,6 +54,7 @@ void sh_pfc_write_raw_reg(void __iomem *mapped_reg, unsigned long reg_width,
int sh_pfc_get_pin_index(struct sh_pfc *pfc, unsigned int pin);
int sh_pfc_config_mux(struct sh_pfc *pfc, unsigned mark, int pinmux_type);
extern const struct sh_pfc_soc_info r8a73a4_pinmux_info;
extern const struct sh_pfc_soc_info r8a7740_pinmux_info;
extern const struct sh_pfc_soc_info r8a7779_pinmux_info;
extern const struct sh_pfc_soc_info sh7203_pinmux_info;

File diff suppressed because it is too large Load Diff