forked from luck/tmp_suning_uos_patched
Some pinctrl fixes for the v3.7 series:
- A set of SPEAr pinctrl fixes that recently arrived - A fixup for the Samsung/Exynos Kconfig deps -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) iQIcBAABAgAGBQJQm230AAoJEEEQszewGV1zOwQP/1R0PCMHJhIs9V6W9RtOtFPb yqDPBh4ELH5P+BHfvbgeZgXWEz+y6oqLnn2JOvdIDYJbKz2w9vb1oH6vQQO/34d+ 3OY7yADIpg6wwbv9Lgb6t8MfS6OV5WqUE6yBmIhV/JqSMDPDA3FeHkQ4i2ptgEXk qGRR2TzwhhAuziKB0ECJrc6N9MDaf5r9O97bqv8xE0WKHSWieFHXFeUuvgQIpTjS 1ZOv2Z45G7p8i6RcKsg0x7VAfoGJ2xs2wTjeIpPM4BcBPcxfjcrwPR2Y9v+YvlbL saH3rw/ZHqHel7vuXhLeFNXjh7gT88n4MEq7+Jai47C4om0H2eBNSPU09scb14bG 4Gw9oLDeF2+0KBJVNuyJGo2lHWQ3b2TN13JuHuZxjKMPlxBtMuKObTGt3yo3kTR6 p5Pr+Q8T5MPD0NdAjVdPECu6VdiSGViblO+MLcyIHS35cv/+HYV8M10BwHP+quXh 8MdSgd2zSIj4c50DsiDBOkL4KNQz7v4iun25rQNZKAiSFZwjKE7K7cqco4XnMgFC nPpz8R8Y5B0sS9gs3qeJh1Ms5+g47egoef+H+UtQBHPeXsyi1SD7iQklr4lHO96l NiIpQxme+ovIeZSgswdmDpiqii5IlrODTGUguyXRhrbwkg1I12isgNLWV27WCu37 zprLa2a61MyHNbCEg0RG =IsnT -----END PGP SIGNATURE----- Merge tag 'pinctrl-for-v3.7-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl Pull pinctrl fixes from Linus Walleij: - A set of SPEAr pinctrl fixes that recently arrived - A fixup for the Samsung/Exynos Kconfig deps * tag 'pinctrl-for-v3.7-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: pinctrl: samsung and exynos need to depend on OF && GPIOLIB pinctrl: SPEAr1340: Add clcd sleep mode pin configuration pinctrl: SPEAr1340: Make DDR reset & clock pads as gpio pinctrl: SPEAr1310: add register entries for enabling pad direction pinctrl: SPEAr1310: Separate out pci pins from pcie_sata pin group pinctrl: SPEAr1310: Fix value of PERIP_CFG reigster and MCIF_SEL_SHIFT pinctrl: SPEAr1310: fix clcd high resolution pin group name pinctrl: SPEAr320: Correct pad mux entries for rmii/smii pinctrl: SPEAr3xx: correct register space to configure pwm pinctrl: SPEAr: Don't update all non muxreg bits on pinctrl_disable
This commit is contained in:
commit
a186d25de3
@ -179,11 +179,13 @@ config PINCTRL_COH901
|
||||
|
||||
config PINCTRL_SAMSUNG
|
||||
bool "Samsung pinctrl driver"
|
||||
depends on OF && GPIOLIB
|
||||
select PINMUX
|
||||
select PINCONF
|
||||
|
||||
config PINCTRL_EXYNOS4
|
||||
bool "Pinctrl driver data for Exynos4 SoC"
|
||||
depends on OF && GPIOLIB
|
||||
select PINCTRL_SAMSUNG
|
||||
|
||||
config PINCTRL_MVEBU
|
||||
|
@ -244,7 +244,7 @@ static int spear_pinctrl_endisable(struct pinctrl_dev *pctldev,
|
||||
else
|
||||
temp = ~muxreg->val;
|
||||
|
||||
val |= temp;
|
||||
val |= muxreg->mask & temp;
|
||||
pmx_writel(pmx, val, muxreg->reg);
|
||||
}
|
||||
}
|
||||
|
@ -25,8 +25,8 @@ static const struct pinctrl_pin_desc spear1310_pins[] = {
|
||||
};
|
||||
|
||||
/* registers */
|
||||
#define PERIP_CFG 0x32C
|
||||
#define MCIF_SEL_SHIFT 3
|
||||
#define PERIP_CFG 0x3B0
|
||||
#define MCIF_SEL_SHIFT 5
|
||||
#define MCIF_SEL_SD (0x1 << MCIF_SEL_SHIFT)
|
||||
#define MCIF_SEL_CF (0x2 << MCIF_SEL_SHIFT)
|
||||
#define MCIF_SEL_XD (0x3 << MCIF_SEL_SHIFT)
|
||||
@ -164,6 +164,10 @@ static const struct pinctrl_pin_desc spear1310_pins[] = {
|
||||
#define PMX_SSP0_CS0_MASK (1 << 29)
|
||||
#define PMX_SSP0_CS1_2_MASK (1 << 30)
|
||||
|
||||
#define PAD_DIRECTION_SEL_0 0x65C
|
||||
#define PAD_DIRECTION_SEL_1 0x660
|
||||
#define PAD_DIRECTION_SEL_2 0x664
|
||||
|
||||
/* combined macros */
|
||||
#define PMX_GMII_MASK (PMX_GMIICLK_MASK | \
|
||||
PMX_GMIICOL_CRS_XFERER_MIITXCLK_MASK | \
|
||||
@ -237,6 +241,10 @@ static struct spear_muxreg i2c0_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_0,
|
||||
.mask = PMX_I2C0_MASK,
|
||||
.val = PMX_I2C0_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_0,
|
||||
.mask = PMX_I2C0_MASK,
|
||||
.val = PMX_I2C0_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -269,6 +277,10 @@ static struct spear_muxreg ssp0_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_0,
|
||||
.mask = PMX_SSP0_MASK,
|
||||
.val = PMX_SSP0_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_0,
|
||||
.mask = PMX_SSP0_MASK,
|
||||
.val = PMX_SSP0_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -294,6 +306,10 @@ static struct spear_muxreg ssp0_cs0_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_2,
|
||||
.mask = PMX_SSP0_CS0_MASK,
|
||||
.val = PMX_SSP0_CS0_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_2,
|
||||
.mask = PMX_SSP0_CS0_MASK,
|
||||
.val = PMX_SSP0_CS0_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -319,6 +335,10 @@ static struct spear_muxreg ssp0_cs1_2_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_2,
|
||||
.mask = PMX_SSP0_CS1_2_MASK,
|
||||
.val = PMX_SSP0_CS1_2_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_2,
|
||||
.mask = PMX_SSP0_CS1_2_MASK,
|
||||
.val = PMX_SSP0_CS1_2_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -352,6 +372,10 @@ static struct spear_muxreg i2s0_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_0,
|
||||
.mask = PMX_I2S0_MASK,
|
||||
.val = PMX_I2S0_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_0,
|
||||
.mask = PMX_I2S0_MASK,
|
||||
.val = PMX_I2S0_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -384,6 +408,10 @@ static struct spear_muxreg i2s1_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_1,
|
||||
.mask = PMX_I2S1_MASK,
|
||||
.val = PMX_I2S1_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_I2S1_MASK,
|
||||
.val = PMX_I2S1_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -418,6 +446,10 @@ static struct spear_muxreg clcd_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_0,
|
||||
.mask = PMX_CLCD1_MASK,
|
||||
.val = PMX_CLCD1_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_0,
|
||||
.mask = PMX_CLCD1_MASK,
|
||||
.val = PMX_CLCD1_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -443,6 +475,10 @@ static struct spear_muxreg clcd_high_res_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_1,
|
||||
.mask = PMX_CLCD2_MASK,
|
||||
.val = PMX_CLCD2_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_CLCD2_MASK,
|
||||
.val = PMX_CLCD2_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -461,7 +497,7 @@ static struct spear_pingroup clcd_high_res_pingroup = {
|
||||
.nmodemuxs = ARRAY_SIZE(clcd_high_res_modemux),
|
||||
};
|
||||
|
||||
static const char *const clcd_grps[] = { "clcd_grp", "clcd_high_res" };
|
||||
static const char *const clcd_grps[] = { "clcd_grp", "clcd_high_res_grp" };
|
||||
static struct spear_function clcd_function = {
|
||||
.name = "clcd",
|
||||
.groups = clcd_grps,
|
||||
@ -479,6 +515,14 @@ static struct spear_muxreg arm_gpio_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_1,
|
||||
.mask = PMX_EGPIO_1_GRP_MASK,
|
||||
.val = PMX_EGPIO_1_GRP_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_0,
|
||||
.mask = PMX_EGPIO_0_GRP_MASK,
|
||||
.val = PMX_EGPIO_0_GRP_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_EGPIO_1_GRP_MASK,
|
||||
.val = PMX_EGPIO_1_GRP_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -511,6 +555,10 @@ static struct spear_muxreg smi_2_chips_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_0,
|
||||
.mask = PMX_SMI_MASK,
|
||||
.val = PMX_SMI_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_0,
|
||||
.mask = PMX_SMI_MASK,
|
||||
.val = PMX_SMI_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -539,6 +587,14 @@ static struct spear_muxreg smi_4_chips_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_1,
|
||||
.mask = PMX_SMINCS2_MASK | PMX_SMINCS3_MASK,
|
||||
.val = PMX_SMINCS2_MASK | PMX_SMINCS3_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_0,
|
||||
.mask = PMX_SMI_MASK,
|
||||
.val = PMX_SMI_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_SMINCS2_MASK | PMX_SMINCS3_MASK,
|
||||
.val = PMX_SMINCS2_MASK | PMX_SMINCS3_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -573,6 +629,10 @@ static struct spear_muxreg gmii_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_0,
|
||||
.mask = PMX_GMII_MASK,
|
||||
.val = PMX_GMII_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_0,
|
||||
.mask = PMX_GMII_MASK,
|
||||
.val = PMX_GMII_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -615,6 +675,18 @@ static struct spear_muxreg rgmii_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_2,
|
||||
.mask = PMX_RGMII_REG2_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_0,
|
||||
.mask = PMX_RGMII_REG0_MASK,
|
||||
.val = PMX_RGMII_REG0_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_RGMII_REG1_MASK,
|
||||
.val = PMX_RGMII_REG1_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_2,
|
||||
.mask = PMX_RGMII_REG2_MASK,
|
||||
.val = PMX_RGMII_REG2_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -649,6 +721,10 @@ static struct spear_muxreg smii_0_1_2_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_1,
|
||||
.mask = PMX_SMII_0_1_2_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_SMII_0_1_2_MASK,
|
||||
.val = PMX_SMII_0_1_2_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -681,6 +757,10 @@ static struct spear_muxreg ras_mii_txclk_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_1,
|
||||
.mask = PMX_NFCE2_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_NFCE2_MASK,
|
||||
.val = PMX_NFCE2_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -721,6 +801,14 @@ static struct spear_muxreg nand_8bit_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_1,
|
||||
.mask = PMX_NAND8BIT_1_MASK,
|
||||
.val = PMX_NAND8BIT_1_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_0,
|
||||
.mask = PMX_NAND8BIT_0_MASK,
|
||||
.val = PMX_NAND8BIT_0_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_NAND8BIT_1_MASK,
|
||||
.val = PMX_NAND8BIT_1_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -747,6 +835,10 @@ static struct spear_muxreg nand_16bit_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_1,
|
||||
.mask = PMX_NAND16BIT_1_MASK,
|
||||
.val = PMX_NAND16BIT_1_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_NAND16BIT_1_MASK,
|
||||
.val = PMX_NAND16BIT_1_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -772,6 +864,10 @@ static struct spear_muxreg nand_4_chips_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_1,
|
||||
.mask = PMX_NAND_4CHIPS_MASK,
|
||||
.val = PMX_NAND_4CHIPS_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_NAND_4CHIPS_MASK,
|
||||
.val = PMX_NAND_4CHIPS_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -833,6 +929,10 @@ static struct spear_muxreg keyboard_rowcol6_8_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_1,
|
||||
.mask = PMX_KBD_ROWCOL68_MASK,
|
||||
.val = PMX_KBD_ROWCOL68_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_KBD_ROWCOL68_MASK,
|
||||
.val = PMX_KBD_ROWCOL68_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -866,6 +966,10 @@ static struct spear_muxreg uart0_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_0,
|
||||
.mask = PMX_UART0_MASK,
|
||||
.val = PMX_UART0_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_0,
|
||||
.mask = PMX_UART0_MASK,
|
||||
.val = PMX_UART0_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -891,6 +995,10 @@ static struct spear_muxreg uart0_modem_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_1,
|
||||
.mask = PMX_UART0_MODEM_MASK,
|
||||
.val = PMX_UART0_MODEM_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_UART0_MODEM_MASK,
|
||||
.val = PMX_UART0_MODEM_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -923,6 +1031,10 @@ static struct spear_muxreg gpt0_tmr0_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_1,
|
||||
.mask = PMX_GPT0_TMR0_MASK,
|
||||
.val = PMX_GPT0_TMR0_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_GPT0_TMR0_MASK,
|
||||
.val = PMX_GPT0_TMR0_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -948,6 +1060,10 @@ static struct spear_muxreg gpt0_tmr1_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_1,
|
||||
.mask = PMX_GPT0_TMR1_MASK,
|
||||
.val = PMX_GPT0_TMR1_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_GPT0_TMR1_MASK,
|
||||
.val = PMX_GPT0_TMR1_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -980,6 +1096,10 @@ static struct spear_muxreg gpt1_tmr0_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_1,
|
||||
.mask = PMX_GPT1_TMR0_MASK,
|
||||
.val = PMX_GPT1_TMR0_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_GPT1_TMR0_MASK,
|
||||
.val = PMX_GPT1_TMR0_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1005,6 +1125,10 @@ static struct spear_muxreg gpt1_tmr1_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_1,
|
||||
.mask = PMX_GPT1_TMR1_MASK,
|
||||
.val = PMX_GPT1_TMR1_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_GPT1_TMR1_MASK,
|
||||
.val = PMX_GPT1_TMR1_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1049,6 +1173,20 @@ static const unsigned mcif_pins[] = { 86, 87, 88, 89, 90, 91, 92, 93, 213, 214,
|
||||
.reg = PAD_FUNCTION_EN_2, \
|
||||
.mask = PMX_MCIFALL_2_MASK, \
|
||||
.val = PMX_MCIFALL_2_MASK, \
|
||||
}, { \
|
||||
.reg = PAD_DIRECTION_SEL_0, \
|
||||
.mask = PMX_MCI_DATA8_15_MASK, \
|
||||
.val = PMX_MCI_DATA8_15_MASK, \
|
||||
}, { \
|
||||
.reg = PAD_DIRECTION_SEL_1, \
|
||||
.mask = PMX_MCIFALL_1_MASK | PMX_NFWPRT1_MASK | \
|
||||
PMX_NFWPRT2_MASK, \
|
||||
.val = PMX_MCIFALL_1_MASK | PMX_NFWPRT1_MASK | \
|
||||
PMX_NFWPRT2_MASK, \
|
||||
}, { \
|
||||
.reg = PAD_DIRECTION_SEL_2, \
|
||||
.mask = PMX_MCIFALL_2_MASK, \
|
||||
.val = PMX_MCIFALL_2_MASK, \
|
||||
}
|
||||
|
||||
/* sdhci device */
|
||||
@ -1154,6 +1292,10 @@ static struct spear_muxreg touch_xy_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_2,
|
||||
.mask = PMX_TOUCH_XY_MASK,
|
||||
.val = PMX_TOUCH_XY_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_2,
|
||||
.mask = PMX_TOUCH_XY_MASK,
|
||||
.val = PMX_TOUCH_XY_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1187,6 +1329,10 @@ static struct spear_muxreg uart1_dis_i2c_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_0,
|
||||
.mask = PMX_I2C0_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_0,
|
||||
.mask = PMX_I2C0_MASK,
|
||||
.val = PMX_I2C0_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1213,6 +1359,12 @@ static struct spear_muxreg uart1_dis_sd_muxreg[] = {
|
||||
.mask = PMX_MCIDATA1_MASK |
|
||||
PMX_MCIDATA2_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_MCIDATA1_MASK |
|
||||
PMX_MCIDATA2_MASK,
|
||||
.val = PMX_MCIDATA1_MASK |
|
||||
PMX_MCIDATA2_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1246,6 +1398,10 @@ static struct spear_muxreg uart2_3_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_0,
|
||||
.mask = PMX_I2S0_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_0,
|
||||
.mask = PMX_I2S0_MASK,
|
||||
.val = PMX_I2S0_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1278,6 +1434,10 @@ static struct spear_muxreg uart4_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_0,
|
||||
.mask = PMX_I2S0_MASK | PMX_CLCD1_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_0,
|
||||
.mask = PMX_I2S0_MASK | PMX_CLCD1_MASK,
|
||||
.val = PMX_I2S0_MASK | PMX_CLCD1_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1310,6 +1470,10 @@ static struct spear_muxreg uart5_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_0,
|
||||
.mask = PMX_CLCD1_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_0,
|
||||
.mask = PMX_CLCD1_MASK,
|
||||
.val = PMX_CLCD1_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1344,6 +1508,10 @@ static struct spear_muxreg rs485_0_1_tdm_0_1_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_0,
|
||||
.mask = PMX_CLCD1_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_0,
|
||||
.mask = PMX_CLCD1_MASK,
|
||||
.val = PMX_CLCD1_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1376,6 +1544,10 @@ static struct spear_muxreg i2c_1_2_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_0,
|
||||
.mask = PMX_CLCD1_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_0,
|
||||
.mask = PMX_CLCD1_MASK,
|
||||
.val = PMX_CLCD1_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1409,6 +1581,10 @@ static struct spear_muxreg i2c3_dis_smi_clcd_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_0,
|
||||
.mask = PMX_CLCD1_MASK | PMX_SMI_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_0,
|
||||
.mask = PMX_CLCD1_MASK | PMX_SMI_MASK,
|
||||
.val = PMX_CLCD1_MASK | PMX_SMI_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1435,6 +1611,10 @@ static struct spear_muxreg i2c3_dis_sd_i2s0_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_1,
|
||||
.mask = PMX_I2S1_MASK | PMX_MCIDATA3_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_I2S1_MASK | PMX_MCIDATA3_MASK,
|
||||
.val = PMX_I2S1_MASK | PMX_MCIDATA3_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1469,6 +1649,10 @@ static struct spear_muxreg i2c_4_5_dis_smi_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_0,
|
||||
.mask = PMX_SMI_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_0,
|
||||
.mask = PMX_SMI_MASK,
|
||||
.val = PMX_SMI_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1499,6 +1683,14 @@ static struct spear_muxreg i2c4_dis_sd_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_2,
|
||||
.mask = PMX_MCIDATA5_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_MCIDATA4_MASK,
|
||||
.val = PMX_MCIDATA4_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_2,
|
||||
.mask = PMX_MCIDATA5_MASK,
|
||||
.val = PMX_MCIDATA5_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1526,6 +1718,12 @@ static struct spear_muxreg i2c5_dis_sd_muxreg[] = {
|
||||
.mask = PMX_MCIDATA6_MASK |
|
||||
PMX_MCIDATA7_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_2,
|
||||
.mask = PMX_MCIDATA6_MASK |
|
||||
PMX_MCIDATA7_MASK,
|
||||
.val = PMX_MCIDATA6_MASK |
|
||||
PMX_MCIDATA7_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1560,6 +1758,10 @@ static struct spear_muxreg i2c_6_7_dis_kbd_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_1,
|
||||
.mask = PMX_KBD_ROWCOL25_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_KBD_ROWCOL25_MASK,
|
||||
.val = PMX_KBD_ROWCOL25_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1587,6 +1789,12 @@ static struct spear_muxreg i2c6_dis_sd_muxreg[] = {
|
||||
.mask = PMX_MCIIORDRE_MASK |
|
||||
PMX_MCIIOWRWE_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_2,
|
||||
.mask = PMX_MCIIORDRE_MASK |
|
||||
PMX_MCIIOWRWE_MASK,
|
||||
.val = PMX_MCIIORDRE_MASK |
|
||||
PMX_MCIIOWRWE_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1613,6 +1821,12 @@ static struct spear_muxreg i2c7_dis_sd_muxreg[] = {
|
||||
.mask = PMX_MCIRESETCF_MASK |
|
||||
PMX_MCICS0CE_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_2,
|
||||
.mask = PMX_MCIRESETCF_MASK |
|
||||
PMX_MCICS0CE_MASK,
|
||||
.val = PMX_MCIRESETCF_MASK |
|
||||
PMX_MCICS0CE_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1651,6 +1865,14 @@ static struct spear_muxreg can0_dis_nor_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_1,
|
||||
.mask = PMX_NFRSTPWDWN3_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_0,
|
||||
.mask = PMX_NFRSTPWDWN2_MASK,
|
||||
.val = PMX_NFRSTPWDWN2_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_NFRSTPWDWN3_MASK,
|
||||
.val = PMX_NFRSTPWDWN3_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1677,6 +1899,10 @@ static struct spear_muxreg can0_dis_sd_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_2,
|
||||
.mask = PMX_MCICFINTR_MASK | PMX_MCIIORDY_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_2,
|
||||
.mask = PMX_MCICFINTR_MASK | PMX_MCIIORDY_MASK,
|
||||
.val = PMX_MCICFINTR_MASK | PMX_MCIIORDY_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1711,6 +1937,10 @@ static struct spear_muxreg can1_dis_sd_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_2,
|
||||
.mask = PMX_MCICS1_MASK | PMX_MCIDMAACK_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_2,
|
||||
.mask = PMX_MCICS1_MASK | PMX_MCIDMAACK_MASK,
|
||||
.val = PMX_MCICS1_MASK | PMX_MCIDMAACK_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1737,6 +1967,10 @@ static struct spear_muxreg can1_dis_kbd_muxreg[] = {
|
||||
.reg = PAD_FUNCTION_EN_1,
|
||||
.mask = PMX_KBD_ROWCOL25_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_KBD_ROWCOL25_MASK,
|
||||
.val = PMX_KBD_ROWCOL25_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1763,29 +1997,64 @@ static struct spear_function can1_function = {
|
||||
.ngroups = ARRAY_SIZE(can1_grps),
|
||||
};
|
||||
|
||||
/* Pad multiplexing for pci device */
|
||||
static const unsigned pci_sata_pins[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 18,
|
||||
/* Pad multiplexing for (ras-ip) pci device */
|
||||
static const unsigned pci_pins[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 18,
|
||||
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
|
||||
37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
|
||||
55, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99 };
|
||||
#define PCI_SATA_MUXREG \
|
||||
{ \
|
||||
.reg = PAD_FUNCTION_EN_0, \
|
||||
.mask = PMX_MCI_DATA8_15_MASK, \
|
||||
.val = 0, \
|
||||
}, { \
|
||||
.reg = PAD_FUNCTION_EN_1, \
|
||||
.mask = PMX_PCI_REG1_MASK, \
|
||||
.val = 0, \
|
||||
}, { \
|
||||
.reg = PAD_FUNCTION_EN_2, \
|
||||
.mask = PMX_PCI_REG2_MASK, \
|
||||
.val = 0, \
|
||||
}
|
||||
|
||||
/* pad multiplexing for pcie0 device */
|
||||
static struct spear_muxreg pci_muxreg[] = {
|
||||
{
|
||||
.reg = PAD_FUNCTION_EN_0,
|
||||
.mask = PMX_MCI_DATA8_15_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_FUNCTION_EN_1,
|
||||
.mask = PMX_PCI_REG1_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_FUNCTION_EN_2,
|
||||
.mask = PMX_PCI_REG2_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_0,
|
||||
.mask = PMX_MCI_DATA8_15_MASK,
|
||||
.val = PMX_MCI_DATA8_15_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_PCI_REG1_MASK,
|
||||
.val = PMX_PCI_REG1_MASK,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_2,
|
||||
.mask = PMX_PCI_REG2_MASK,
|
||||
.val = PMX_PCI_REG2_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
static struct spear_modemux pci_modemux[] = {
|
||||
{
|
||||
.muxregs = pci_muxreg,
|
||||
.nmuxregs = ARRAY_SIZE(pci_muxreg),
|
||||
},
|
||||
};
|
||||
|
||||
static struct spear_pingroup pci_pingroup = {
|
||||
.name = "pci_grp",
|
||||
.pins = pci_pins,
|
||||
.npins = ARRAY_SIZE(pci_pins),
|
||||
.modemuxs = pci_modemux,
|
||||
.nmodemuxs = ARRAY_SIZE(pci_modemux),
|
||||
};
|
||||
|
||||
static const char *const pci_grps[] = { "pci_grp" };
|
||||
static struct spear_function pci_function = {
|
||||
.name = "pci",
|
||||
.groups = pci_grps,
|
||||
.ngroups = ARRAY_SIZE(pci_grps),
|
||||
};
|
||||
|
||||
/* pad multiplexing for (fix-part) pcie0 device */
|
||||
static struct spear_muxreg pcie0_muxreg[] = {
|
||||
PCI_SATA_MUXREG,
|
||||
{
|
||||
.reg = PCIE_SATA_CFG,
|
||||
.mask = PCIE_CFG_VAL(0),
|
||||
@ -1802,15 +2071,12 @@ static struct spear_modemux pcie0_modemux[] = {
|
||||
|
||||
static struct spear_pingroup pcie0_pingroup = {
|
||||
.name = "pcie0_grp",
|
||||
.pins = pci_sata_pins,
|
||||
.npins = ARRAY_SIZE(pci_sata_pins),
|
||||
.modemuxs = pcie0_modemux,
|
||||
.nmodemuxs = ARRAY_SIZE(pcie0_modemux),
|
||||
};
|
||||
|
||||
/* pad multiplexing for pcie1 device */
|
||||
/* pad multiplexing for (fix-part) pcie1 device */
|
||||
static struct spear_muxreg pcie1_muxreg[] = {
|
||||
PCI_SATA_MUXREG,
|
||||
{
|
||||
.reg = PCIE_SATA_CFG,
|
||||
.mask = PCIE_CFG_VAL(1),
|
||||
@ -1827,15 +2093,12 @@ static struct spear_modemux pcie1_modemux[] = {
|
||||
|
||||
static struct spear_pingroup pcie1_pingroup = {
|
||||
.name = "pcie1_grp",
|
||||
.pins = pci_sata_pins,
|
||||
.npins = ARRAY_SIZE(pci_sata_pins),
|
||||
.modemuxs = pcie1_modemux,
|
||||
.nmodemuxs = ARRAY_SIZE(pcie1_modemux),
|
||||
};
|
||||
|
||||
/* pad multiplexing for pcie2 device */
|
||||
/* pad multiplexing for (fix-part) pcie2 device */
|
||||
static struct spear_muxreg pcie2_muxreg[] = {
|
||||
PCI_SATA_MUXREG,
|
||||
{
|
||||
.reg = PCIE_SATA_CFG,
|
||||
.mask = PCIE_CFG_VAL(2),
|
||||
@ -1852,22 +2115,20 @@ static struct spear_modemux pcie2_modemux[] = {
|
||||
|
||||
static struct spear_pingroup pcie2_pingroup = {
|
||||
.name = "pcie2_grp",
|
||||
.pins = pci_sata_pins,
|
||||
.npins = ARRAY_SIZE(pci_sata_pins),
|
||||
.modemuxs = pcie2_modemux,
|
||||
.nmodemuxs = ARRAY_SIZE(pcie2_modemux),
|
||||
};
|
||||
|
||||
static const char *const pci_grps[] = { "pcie0_grp", "pcie1_grp", "pcie2_grp" };
|
||||
static struct spear_function pci_function = {
|
||||
.name = "pci",
|
||||
.groups = pci_grps,
|
||||
.ngroups = ARRAY_SIZE(pci_grps),
|
||||
static const char *const pcie_grps[] = { "pcie0_grp", "pcie1_grp", "pcie2_grp"
|
||||
};
|
||||
static struct spear_function pcie_function = {
|
||||
.name = "pci_express",
|
||||
.groups = pcie_grps,
|
||||
.ngroups = ARRAY_SIZE(pcie_grps),
|
||||
};
|
||||
|
||||
/* pad multiplexing for sata0 device */
|
||||
static struct spear_muxreg sata0_muxreg[] = {
|
||||
PCI_SATA_MUXREG,
|
||||
{
|
||||
.reg = PCIE_SATA_CFG,
|
||||
.mask = SATA_CFG_VAL(0),
|
||||
@ -1884,15 +2145,12 @@ static struct spear_modemux sata0_modemux[] = {
|
||||
|
||||
static struct spear_pingroup sata0_pingroup = {
|
||||
.name = "sata0_grp",
|
||||
.pins = pci_sata_pins,
|
||||
.npins = ARRAY_SIZE(pci_sata_pins),
|
||||
.modemuxs = sata0_modemux,
|
||||
.nmodemuxs = ARRAY_SIZE(sata0_modemux),
|
||||
};
|
||||
|
||||
/* pad multiplexing for sata1 device */
|
||||
static struct spear_muxreg sata1_muxreg[] = {
|
||||
PCI_SATA_MUXREG,
|
||||
{
|
||||
.reg = PCIE_SATA_CFG,
|
||||
.mask = SATA_CFG_VAL(1),
|
||||
@ -1909,15 +2167,12 @@ static struct spear_modemux sata1_modemux[] = {
|
||||
|
||||
static struct spear_pingroup sata1_pingroup = {
|
||||
.name = "sata1_grp",
|
||||
.pins = pci_sata_pins,
|
||||
.npins = ARRAY_SIZE(pci_sata_pins),
|
||||
.modemuxs = sata1_modemux,
|
||||
.nmodemuxs = ARRAY_SIZE(sata1_modemux),
|
||||
};
|
||||
|
||||
/* pad multiplexing for sata2 device */
|
||||
static struct spear_muxreg sata2_muxreg[] = {
|
||||
PCI_SATA_MUXREG,
|
||||
{
|
||||
.reg = PCIE_SATA_CFG,
|
||||
.mask = SATA_CFG_VAL(2),
|
||||
@ -1934,8 +2189,6 @@ static struct spear_modemux sata2_modemux[] = {
|
||||
|
||||
static struct spear_pingroup sata2_pingroup = {
|
||||
.name = "sata2_grp",
|
||||
.pins = pci_sata_pins,
|
||||
.npins = ARRAY_SIZE(pci_sata_pins),
|
||||
.modemuxs = sata2_modemux,
|
||||
.nmodemuxs = ARRAY_SIZE(sata2_modemux),
|
||||
};
|
||||
@ -1957,6 +2210,14 @@ static struct spear_muxreg ssp1_dis_kbd_muxreg[] = {
|
||||
PMX_KBD_COL0_MASK | PMX_NFIO8_15_MASK | PMX_NFCE1_MASK |
|
||||
PMX_NFCE2_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_1,
|
||||
.mask = PMX_KBD_ROWCOL25_MASK | PMX_KBD_COL1_MASK |
|
||||
PMX_KBD_COL0_MASK | PMX_NFIO8_15_MASK | PMX_NFCE1_MASK |
|
||||
PMX_NFCE2_MASK,
|
||||
.val = PMX_KBD_ROWCOL25_MASK | PMX_KBD_COL1_MASK |
|
||||
PMX_KBD_COL0_MASK | PMX_NFIO8_15_MASK | PMX_NFCE1_MASK |
|
||||
PMX_NFCE2_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -1983,6 +2244,12 @@ static struct spear_muxreg ssp1_dis_sd_muxreg[] = {
|
||||
.mask = PMX_MCIADDR0ALE_MASK | PMX_MCIADDR2_MASK |
|
||||
PMX_MCICECF_MASK | PMX_MCICEXD_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_2,
|
||||
.mask = PMX_MCIADDR0ALE_MASK | PMX_MCIADDR2_MASK |
|
||||
PMX_MCICECF_MASK | PMX_MCICEXD_MASK,
|
||||
.val = PMX_MCIADDR0ALE_MASK | PMX_MCIADDR2_MASK |
|
||||
PMX_MCICECF_MASK | PMX_MCICEXD_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -2017,6 +2284,12 @@ static struct spear_muxreg gpt64_muxreg[] = {
|
||||
.mask = PMX_MCICDCF1_MASK | PMX_MCICDCF2_MASK | PMX_MCICDXD_MASK
|
||||
| PMX_MCILEDS_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_DIRECTION_SEL_2,
|
||||
.mask = PMX_MCICDCF1_MASK | PMX_MCICDCF2_MASK | PMX_MCICDXD_MASK
|
||||
| PMX_MCILEDS_MASK,
|
||||
.val = PMX_MCICDCF1_MASK | PMX_MCICDCF2_MASK | PMX_MCICDXD_MASK
|
||||
| PMX_MCILEDS_MASK,
|
||||
},
|
||||
};
|
||||
|
||||
@ -2093,6 +2366,7 @@ static struct spear_pingroup *spear1310_pingroups[] = {
|
||||
&can0_dis_sd_pingroup,
|
||||
&can1_dis_sd_pingroup,
|
||||
&can1_dis_kbd_pingroup,
|
||||
&pci_pingroup,
|
||||
&pcie0_pingroup,
|
||||
&pcie1_pingroup,
|
||||
&pcie2_pingroup,
|
||||
@ -2138,6 +2412,7 @@ static struct spear_function *spear1310_functions[] = {
|
||||
&can0_function,
|
||||
&can1_function,
|
||||
&pci_function,
|
||||
&pcie_function,
|
||||
&sata_function,
|
||||
&ssp1_function,
|
||||
&gpt64_function,
|
||||
|
@ -213,7 +213,7 @@ static const struct pinctrl_pin_desc spear1340_pins[] = {
|
||||
* Pad multiplexing for making all pads as gpio's. This is done to override the
|
||||
* values passed from bootloader and start from scratch.
|
||||
*/
|
||||
static const unsigned pads_as_gpio_pins[] = { 251 };
|
||||
static const unsigned pads_as_gpio_pins[] = { 12, 88, 89, 251 };
|
||||
static struct spear_muxreg pads_as_gpio_muxreg[] = {
|
||||
{
|
||||
.reg = PAD_FUNCTION_EN_1,
|
||||
@ -1692,7 +1692,43 @@ static struct spear_pingroup clcd_pingroup = {
|
||||
.nmodemuxs = ARRAY_SIZE(clcd_modemux),
|
||||
};
|
||||
|
||||
static const char *const clcd_grps[] = { "clcd_grp" };
|
||||
/* Disable cld runtime to save panel damage */
|
||||
static struct spear_muxreg clcd_sleep_muxreg[] = {
|
||||
{
|
||||
.reg = PAD_SHARED_IP_EN_1,
|
||||
.mask = ARM_TRACE_MASK | MIPHY_DBG_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = PAD_FUNCTION_EN_5,
|
||||
.mask = CLCD_REG4_MASK | CLCD_AND_ARM_TRACE_REG4_MASK,
|
||||
.val = 0x0,
|
||||
}, {
|
||||
.reg = PAD_FUNCTION_EN_6,
|
||||
.mask = CLCD_AND_ARM_TRACE_REG5_MASK,
|
||||
.val = 0x0,
|
||||
}, {
|
||||
.reg = PAD_FUNCTION_EN_7,
|
||||
.mask = CLCD_AND_ARM_TRACE_REG6_MASK,
|
||||
.val = 0x0,
|
||||
},
|
||||
};
|
||||
|
||||
static struct spear_modemux clcd_sleep_modemux[] = {
|
||||
{
|
||||
.muxregs = clcd_sleep_muxreg,
|
||||
.nmuxregs = ARRAY_SIZE(clcd_sleep_muxreg),
|
||||
},
|
||||
};
|
||||
|
||||
static struct spear_pingroup clcd_sleep_pingroup = {
|
||||
.name = "clcd_sleep_grp",
|
||||
.pins = clcd_pins,
|
||||
.npins = ARRAY_SIZE(clcd_pins),
|
||||
.modemuxs = clcd_sleep_modemux,
|
||||
.nmodemuxs = ARRAY_SIZE(clcd_sleep_modemux),
|
||||
};
|
||||
|
||||
static const char *const clcd_grps[] = { "clcd_grp", "clcd_sleep_grp" };
|
||||
static struct spear_function clcd_function = {
|
||||
.name = "clcd",
|
||||
.groups = clcd_grps,
|
||||
@ -1893,6 +1929,7 @@ static struct spear_pingroup *spear1340_pingroups[] = {
|
||||
&sdhci_pingroup,
|
||||
&cf_pingroup,
|
||||
&xd_pingroup,
|
||||
&clcd_sleep_pingroup,
|
||||
&clcd_pingroup,
|
||||
&arm_trace_pingroup,
|
||||
&miphy_dbg_pingroup,
|
||||
|
@ -2239,6 +2239,10 @@ static struct spear_muxreg pwm2_pin_34_muxreg[] = {
|
||||
.reg = PMX_CONFIG_REG,
|
||||
.mask = PMX_SSP_CS_MASK,
|
||||
.val = 0,
|
||||
}, {
|
||||
.reg = MODE_CONFIG_REG,
|
||||
.mask = PMX_PWM_MASK,
|
||||
.val = PMX_PWM_MASK,
|
||||
}, {
|
||||
.reg = IP_SEL_PAD_30_39_REG,
|
||||
.mask = PMX_PL_34_MASK,
|
||||
@ -2956,9 +2960,9 @@ static struct spear_function mii2_function = {
|
||||
};
|
||||
|
||||
/* Pad multiplexing for cadence mii 1_2 as smii or rmii device */
|
||||
static const unsigned smii0_1_pins[] = { 10, 11, 13, 14, 15, 16, 17, 18, 19, 20,
|
||||
static const unsigned rmii0_1_pins[] = { 10, 11, 13, 14, 15, 16, 17, 18, 19, 20,
|
||||
21, 22, 23, 24, 25, 26, 27 };
|
||||
static const unsigned rmii0_1_pins[] = { 10, 11, 21, 22, 23, 24, 25, 26, 27 };
|
||||
static const unsigned smii0_1_pins[] = { 10, 11, 21, 22, 23, 24, 25, 26, 27 };
|
||||
static struct spear_muxreg mii0_1_muxreg[] = {
|
||||
{
|
||||
.reg = PMX_CONFIG_REG,
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include "pinctrl-spear.h"
|
||||
|
||||
/* pad mux declarations */
|
||||
#define PMX_PWM_MASK (1 << 16)
|
||||
#define PMX_FIRDA_MASK (1 << 14)
|
||||
#define PMX_I2C_MASK (1 << 13)
|
||||
#define PMX_SSP_CS_MASK (1 << 12)
|
||||
|
Loading…
Reference in New Issue
Block a user