]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
ARM: rmobile: Add missing IPSR18 bits to R8A7795 PFC
authorMarek Vasut <marek.vasut@gmail.com>
Mon, 28 Aug 2017 12:13:11 +0000 (14:13 +0200)
committerNobuhiro Iwamatsu <iwamatsu@nigauri.org>
Mon, 4 Sep 2017 22:51:39 +0000 (07:51 +0900)
The IPSR18 register bits were missing from the R8A7795 ES2.0+ PFC
tables, which triggered a BUG() in sh_pfc driver. This is because
of an out-of-bounds access to the pinmux_gpios[] array in the PFC
tables, which was too short due to the missing IPSR18 bits.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
arch/arm/mach-rmobile/pfc-r8a7795.c

index 44460939733dec7cbfc61521948058307778ced8..93aaf31ed960f11f8e779199694a61552307dbce 100644 (file)
@@ -2185,6 +2185,27 @@ enum {
        FSO_TOEx_MARK,
        TPU0TO1_MARK,
 
+       /* IPSR18 */
+       USB3_PWEN_IMARK,
+       AUDIO_CLKOUT2_B_MARK,
+       SSI_SCK9_B_MARK,
+       TS_SDEN0_E_MARK,
+       STP_ISEN_0_E_MARK,
+       RIF2_D0_B_MARK,
+       TPU0TO2_MARK,
+       FMCLK_C_MARK,
+       FMCLK_D_MARK,
+
+       USB3_OVC_IMARK,
+       AUDIO_CLKOUT3_B_MARK,
+       SSI_WS9_B_MARK,
+       TS_SPSYNC0_E_MARK,
+       STP_ISSYNC_0_E_MARK,
+       RIF2_D1_B_MARK,
+       TPU0TO3_MARK,
+       FMIN_C_MARK,
+       FMIN_D_MARK,
+
        PINMUX_MARK_END,
 };
 
@@ -3288,6 +3309,27 @@ static struct pinmux_gpio pinmux_gpios[] = {
        GPIO_FN(RIF3_D1_B),
        GPIO_FN(FSO_TOEx),
        GPIO_FN(TPU0TO1),
+
+       /* IPSR18 */
+       GPIO_IFN(USB3_PWEN),
+       GPIO_FN(AUDIO_CLKOUT2_B),
+       GPIO_FN(SSI_SCK9_B),
+       GPIO_FN(TS_SDEN0_E),
+       GPIO_FN(STP_ISEN_0_E),
+       GPIO_FN(RIF2_D0_B),
+       GPIO_FN(TPU0TO2),
+       GPIO_FN(FMCLK_C),
+       GPIO_FN(FMCLK_D),
+
+       GPIO_IFN(USB3_OVC),
+       GPIO_FN(AUDIO_CLKOUT3_B),
+       GPIO_FN(SSI_WS9_B),
+       GPIO_FN(TS_SPSYNC0_E),
+       GPIO_FN(STP_ISSYNC_0_E),
+       GPIO_FN(RIF2_D1_B),
+       GPIO_FN(TPU0TO3),
+       GPIO_FN(FMIN_C),
+       GPIO_FN(FMIN_D),
 };
 
 static struct pinmux_cfg_reg pinmux_config_regs[] = {