Pin control fixes for the v6.1 kernel:
- Fix a potential NULL dereference in the core! - Fix all pin mux routes in the Rockchop PX30 driver. - Fix the UFS pins in the Qualcomm SC8280XP driver. - Fix bias disabling in the Mediatek driver. - Fix debounce time settings in the Mediatek driver. -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEElDRnuGcz/wPCXQWMQRCzN7AZXXMFAmN093oACgkQQRCzN7AZ XXOheA/+PDWZ3iC1AllzYU67T6i5dgNKWSEy26m5rvi9/1MG5i7HFf2RMu3H1Ake CCYqy5UKzVCdX95dID/PKrJaC6bcRBjE5LTf5IqLGTSLQUeCbvmAaNb2BdB9DNFu 9TBxXpsrV3W1uZQU/31pZxuFVQWwsX2K9WMumzTz5y9mJZMffi0/2Dt2w8KGIT3J fIcZCLdEsBW7jbx5K6jqo8btnWWyJYr4DQrR1bf2DosHGKR2oTtm1wLm2lXdWrBr Ahg6fsFup4tH1L6cNAF2e+StlCu1C0Iq7/Im4uDkJBTrdpboxmXzDLcn4qEAOUVF sjH/mFMHCJDeRbpqH9spEpDJd5Q1Ho2ueWxiMNT5Gb17I8ZBpBfX7R9OckpnehVe lYJlHMXByB7mvWodZ9NrhfV+SeW+qqCePnpeB9IrkGaQ/3ac/nx46wa6NuYKlBlg sWBa+9wFjFTCu2ErB8zpXXs+cX9SzZ1AGIeUwIzM0S15eJy6Gw6k8iLhMyaUr9w4 o+GAfLPe/Aenc80SVvrCUF+PgDsG9UHbcWx7a5spkN7SiEH8fnIlVqZEV1oqpFeP P5uzNUFRj4XiSAelY41YLNH2uE2jyQBbEZUEZjnHuDWFiY3fHipOP+xBzkNqG02u Wvtz17IWRqmE7BSZ4okJqxHByABAx5UGl1twBiIUweiYO6qdK7Q= =6q+9 -----END PGP SIGNATURE----- Merge tag 'pinctrl-v6.1-4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl Pull pin control fixes from Linus Walleij: "Aere is a hopefully final round of pin control fixes. Nothing special, driver fixes and we caught a potential NULL pointer exception. - Fix a potential NULL dereference in the core! - Fix all pin mux routes in the Rockchop PX30 driver - Fix the UFS pins in the Qualcomm SC8280XP driver - Fix bias disabling in the Mediatek driver - Fix debounce time settings in the Mediatek driver" * tag 'pinctrl-v6.1-4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: pinctrl: mediatek: Export debounce time tables pinctrl: mediatek: Fix EINT pins input debounce time configuration pinctrl: devicetree: fix null pointer dereferencing in pinctrl_dt_to_map pinctrl: mediatek: common-v2: Fix bias-disable for PULL_PU_PD_RSEL_TYPE pinctrl: qcom: sc8280xp: Rectify UFS reset pins pinctrl: rockchip: list all pins in a possible mux route for PX30
This commit is contained in:
commit
31c9c4c54e
|
@ -220,6 +220,8 @@ int pinctrl_dt_to_map(struct pinctrl *p, struct pinctrl_dev *pctldev)
|
||||||
for (state = 0; ; state++) {
|
for (state = 0; ; state++) {
|
||||||
/* Retrieve the pinctrl-* property */
|
/* Retrieve the pinctrl-* property */
|
||||||
propname = kasprintf(GFP_KERNEL, "pinctrl-%d", state);
|
propname = kasprintf(GFP_KERNEL, "pinctrl-%d", state);
|
||||||
|
if (!propname)
|
||||||
|
return -ENOMEM;
|
||||||
prop = of_find_property(np, propname, &size);
|
prop = of_find_property(np, propname, &size);
|
||||||
kfree(propname);
|
kfree(propname);
|
||||||
if (!prop) {
|
if (!prop) {
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
#define MTK_EINT_EDGE_SENSITIVE 0
|
#define MTK_EINT_EDGE_SENSITIVE 0
|
||||||
#define MTK_EINT_LEVEL_SENSITIVE 1
|
#define MTK_EINT_LEVEL_SENSITIVE 1
|
||||||
#define MTK_EINT_DBNC_SET_DBNC_BITS 4
|
#define MTK_EINT_DBNC_SET_DBNC_BITS 4
|
||||||
|
#define MTK_EINT_DBNC_MAX 16
|
||||||
#define MTK_EINT_DBNC_RST_BIT (0x1 << 1)
|
#define MTK_EINT_DBNC_RST_BIT (0x1 << 1)
|
||||||
#define MTK_EINT_DBNC_SET_EN (0x1 << 0)
|
#define MTK_EINT_DBNC_SET_EN (0x1 << 0)
|
||||||
|
|
||||||
|
@ -48,6 +49,21 @@ static const struct mtk_eint_regs mtk_generic_eint_regs = {
|
||||||
.dbnc_clr = 0x700,
|
.dbnc_clr = 0x700,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const unsigned int debounce_time_mt2701[] = {
|
||||||
|
500, 1000, 16000, 32000, 64000, 128000, 256000, 0
|
||||||
|
};
|
||||||
|
EXPORT_SYMBOL_GPL(debounce_time_mt2701);
|
||||||
|
|
||||||
|
const unsigned int debounce_time_mt6765[] = {
|
||||||
|
125, 250, 500, 1000, 16000, 32000, 64000, 128000, 256000, 512000, 0
|
||||||
|
};
|
||||||
|
EXPORT_SYMBOL_GPL(debounce_time_mt6765);
|
||||||
|
|
||||||
|
const unsigned int debounce_time_mt6795[] = {
|
||||||
|
500, 1000, 16000, 32000, 64000, 128000, 256000, 512000, 0
|
||||||
|
};
|
||||||
|
EXPORT_SYMBOL_GPL(debounce_time_mt6795);
|
||||||
|
|
||||||
static void __iomem *mtk_eint_get_offset(struct mtk_eint *eint,
|
static void __iomem *mtk_eint_get_offset(struct mtk_eint *eint,
|
||||||
unsigned int eint_num,
|
unsigned int eint_num,
|
||||||
unsigned int offset)
|
unsigned int offset)
|
||||||
|
@ -404,10 +420,11 @@ int mtk_eint_set_debounce(struct mtk_eint *eint, unsigned long eint_num,
|
||||||
int virq, eint_offset;
|
int virq, eint_offset;
|
||||||
unsigned int set_offset, bit, clr_bit, clr_offset, rst, i, unmask,
|
unsigned int set_offset, bit, clr_bit, clr_offset, rst, i, unmask,
|
||||||
dbnc;
|
dbnc;
|
||||||
static const unsigned int debounce_time[] = {500, 1000, 16000, 32000,
|
|
||||||
64000, 128000, 256000};
|
|
||||||
struct irq_data *d;
|
struct irq_data *d;
|
||||||
|
|
||||||
|
if (!eint->hw->db_time)
|
||||||
|
return -EOPNOTSUPP;
|
||||||
|
|
||||||
virq = irq_find_mapping(eint->domain, eint_num);
|
virq = irq_find_mapping(eint->domain, eint_num);
|
||||||
eint_offset = (eint_num % 4) * 8;
|
eint_offset = (eint_num % 4) * 8;
|
||||||
d = irq_get_irq_data(virq);
|
d = irq_get_irq_data(virq);
|
||||||
|
@ -418,9 +435,9 @@ int mtk_eint_set_debounce(struct mtk_eint *eint, unsigned long eint_num,
|
||||||
if (!mtk_eint_can_en_debounce(eint, eint_num))
|
if (!mtk_eint_can_en_debounce(eint, eint_num))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
dbnc = ARRAY_SIZE(debounce_time);
|
dbnc = eint->num_db_time;
|
||||||
for (i = 0; i < ARRAY_SIZE(debounce_time); i++) {
|
for (i = 0; i < eint->num_db_time; i++) {
|
||||||
if (debounce <= debounce_time[i]) {
|
if (debounce <= eint->hw->db_time[i]) {
|
||||||
dbnc = i;
|
dbnc = i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -494,6 +511,13 @@ int mtk_eint_do_init(struct mtk_eint *eint)
|
||||||
if (!eint->domain)
|
if (!eint->domain)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
if (eint->hw->db_time) {
|
||||||
|
for (i = 0; i < MTK_EINT_DBNC_MAX; i++)
|
||||||
|
if (eint->hw->db_time[i] == 0)
|
||||||
|
break;
|
||||||
|
eint->num_db_time = i;
|
||||||
|
}
|
||||||
|
|
||||||
mtk_eint_hw_init(eint);
|
mtk_eint_hw_init(eint);
|
||||||
for (i = 0; i < eint->hw->ap_num; i++) {
|
for (i = 0; i < eint->hw->ap_num; i++) {
|
||||||
int virq = irq_create_mapping(eint->domain, i);
|
int virq = irq_create_mapping(eint->domain, i);
|
||||||
|
|
|
@ -37,8 +37,13 @@ struct mtk_eint_hw {
|
||||||
u8 ports;
|
u8 ports;
|
||||||
unsigned int ap_num;
|
unsigned int ap_num;
|
||||||
unsigned int db_cnt;
|
unsigned int db_cnt;
|
||||||
|
const unsigned int *db_time;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern const unsigned int debounce_time_mt2701[];
|
||||||
|
extern const unsigned int debounce_time_mt6765[];
|
||||||
|
extern const unsigned int debounce_time_mt6795[];
|
||||||
|
|
||||||
struct mtk_eint;
|
struct mtk_eint;
|
||||||
|
|
||||||
struct mtk_eint_xt {
|
struct mtk_eint_xt {
|
||||||
|
@ -62,6 +67,7 @@ struct mtk_eint {
|
||||||
/* Used to fit into various EINT device */
|
/* Used to fit into various EINT device */
|
||||||
const struct mtk_eint_hw *hw;
|
const struct mtk_eint_hw *hw;
|
||||||
const struct mtk_eint_regs *regs;
|
const struct mtk_eint_regs *regs;
|
||||||
|
u16 num_db_time;
|
||||||
|
|
||||||
/* Used to fit into various pinctrl device */
|
/* Used to fit into various pinctrl device */
|
||||||
void *pctl;
|
void *pctl;
|
||||||
|
|
|
@ -518,6 +518,7 @@ static const struct mtk_pinctrl_devdata mt2701_pinctrl_data = {
|
||||||
.ports = 6,
|
.ports = 6,
|
||||||
.ap_num = 169,
|
.ap_num = 169,
|
||||||
.db_cnt = 16,
|
.db_cnt = 16,
|
||||||
|
.db_time = debounce_time_mt2701,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -567,6 +567,7 @@ static const struct mtk_pinctrl_devdata mt2712_pinctrl_data = {
|
||||||
.ports = 8,
|
.ports = 8,
|
||||||
.ap_num = 229,
|
.ap_num = 229,
|
||||||
.db_cnt = 40,
|
.db_cnt = 40,
|
||||||
|
.db_time = debounce_time_mt2701,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1062,6 +1062,7 @@ static const struct mtk_eint_hw mt6765_eint_hw = {
|
||||||
.ports = 6,
|
.ports = 6,
|
||||||
.ap_num = 160,
|
.ap_num = 160,
|
||||||
.db_cnt = 13,
|
.db_cnt = 13,
|
||||||
|
.db_time = debounce_time_mt6765,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct mtk_pin_soc mt6765_data = {
|
static const struct mtk_pin_soc mt6765_data = {
|
||||||
|
|
|
@ -737,6 +737,7 @@ static const struct mtk_eint_hw mt6779_eint_hw = {
|
||||||
.ports = 6,
|
.ports = 6,
|
||||||
.ap_num = 195,
|
.ap_num = 195,
|
||||||
.db_cnt = 13,
|
.db_cnt = 13,
|
||||||
|
.db_time = debounce_time_mt2701,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct mtk_pin_soc mt6779_data = {
|
static const struct mtk_pin_soc mt6779_data = {
|
||||||
|
|
|
@ -475,6 +475,7 @@ static const struct mtk_eint_hw mt6795_eint_hw = {
|
||||||
.ports = 7,
|
.ports = 7,
|
||||||
.ap_num = 224,
|
.ap_num = 224,
|
||||||
.db_cnt = 32,
|
.db_cnt = 32,
|
||||||
|
.db_time = debounce_time_mt6795,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const unsigned int mt6795_pull_type[] = {
|
static const unsigned int mt6795_pull_type[] = {
|
||||||
|
|
|
@ -846,6 +846,7 @@ static const struct mtk_eint_hw mt7622_eint_hw = {
|
||||||
.ports = 7,
|
.ports = 7,
|
||||||
.ap_num = ARRAY_SIZE(mt7622_pins),
|
.ap_num = ARRAY_SIZE(mt7622_pins),
|
||||||
.db_cnt = 20,
|
.db_cnt = 20,
|
||||||
|
.db_time = debounce_time_mt6765,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct mtk_pin_soc mt7622_data = {
|
static const struct mtk_pin_soc mt7622_data = {
|
||||||
|
|
|
@ -1369,6 +1369,7 @@ static const struct mtk_eint_hw mt7623_eint_hw = {
|
||||||
.ports = 6,
|
.ports = 6,
|
||||||
.ap_num = 169,
|
.ap_num = 169,
|
||||||
.db_cnt = 20,
|
.db_cnt = 20,
|
||||||
|
.db_time = debounce_time_mt2701,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct mtk_pin_soc mt7623_data = {
|
static struct mtk_pin_soc mt7623_data = {
|
||||||
|
|
|
@ -402,6 +402,7 @@ static const struct mtk_eint_hw mt7629_eint_hw = {
|
||||||
.ports = 7,
|
.ports = 7,
|
||||||
.ap_num = ARRAY_SIZE(mt7629_pins),
|
.ap_num = ARRAY_SIZE(mt7629_pins),
|
||||||
.db_cnt = 16,
|
.db_cnt = 16,
|
||||||
|
.db_time = debounce_time_mt2701,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct mtk_pin_soc mt7629_data = {
|
static struct mtk_pin_soc mt7629_data = {
|
||||||
|
|
|
@ -826,6 +826,7 @@ static const struct mtk_eint_hw mt7986a_eint_hw = {
|
||||||
.ports = 7,
|
.ports = 7,
|
||||||
.ap_num = ARRAY_SIZE(mt7986a_pins),
|
.ap_num = ARRAY_SIZE(mt7986a_pins),
|
||||||
.db_cnt = 16,
|
.db_cnt = 16,
|
||||||
|
.db_time = debounce_time_mt6765,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct mtk_eint_hw mt7986b_eint_hw = {
|
static const struct mtk_eint_hw mt7986b_eint_hw = {
|
||||||
|
@ -833,6 +834,7 @@ static const struct mtk_eint_hw mt7986b_eint_hw = {
|
||||||
.ports = 7,
|
.ports = 7,
|
||||||
.ap_num = ARRAY_SIZE(mt7986b_pins),
|
.ap_num = ARRAY_SIZE(mt7986b_pins),
|
||||||
.db_cnt = 16,
|
.db_cnt = 16,
|
||||||
|
.db_time = debounce_time_mt6765,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct mtk_pin_soc mt7986a_data = {
|
static struct mtk_pin_soc mt7986a_data = {
|
||||||
|
|
|
@ -286,6 +286,7 @@ static const struct mtk_pinctrl_devdata mt8127_pinctrl_data = {
|
||||||
.ports = 6,
|
.ports = 6,
|
||||||
.ap_num = 143,
|
.ap_num = 143,
|
||||||
.db_cnt = 16,
|
.db_cnt = 16,
|
||||||
|
.db_time = debounce_time_mt2701,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -315,6 +315,7 @@ static const struct mtk_pinctrl_devdata mt8135_pinctrl_data = {
|
||||||
.ports = 6,
|
.ports = 6,
|
||||||
.ap_num = 192,
|
.ap_num = 192,
|
||||||
.db_cnt = 16,
|
.db_cnt = 16,
|
||||||
|
.db_time = debounce_time_mt2701,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -319,6 +319,7 @@ static const struct mtk_pinctrl_devdata mt8167_pinctrl_data = {
|
||||||
.ports = 6,
|
.ports = 6,
|
||||||
.ap_num = 169,
|
.ap_num = 169,
|
||||||
.db_cnt = 64,
|
.db_cnt = 64,
|
||||||
|
.db_time = debounce_time_mt6795,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -327,6 +327,7 @@ static const struct mtk_pinctrl_devdata mt8173_pinctrl_data = {
|
||||||
.ports = 6,
|
.ports = 6,
|
||||||
.ap_num = 224,
|
.ap_num = 224,
|
||||||
.db_cnt = 16,
|
.db_cnt = 16,
|
||||||
|
.db_time = debounce_time_mt2701,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -545,6 +545,7 @@ static const struct mtk_eint_hw mt8183_eint_hw = {
|
||||||
.ports = 6,
|
.ports = 6,
|
||||||
.ap_num = 212,
|
.ap_num = 212,
|
||||||
.db_cnt = 13,
|
.db_cnt = 13,
|
||||||
|
.db_time = debounce_time_mt6765,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct mtk_pin_soc mt8183_data = {
|
static const struct mtk_pin_soc mt8183_data = {
|
||||||
|
|
|
@ -1222,6 +1222,7 @@ static const struct mtk_eint_hw mt8186_eint_hw = {
|
||||||
.ports = 7,
|
.ports = 7,
|
||||||
.ap_num = 217,
|
.ap_num = 217,
|
||||||
.db_cnt = 32,
|
.db_cnt = 32,
|
||||||
|
.db_time = debounce_time_mt6765,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct mtk_pin_soc mt8186_data = {
|
static const struct mtk_pin_soc mt8186_data = {
|
||||||
|
|
|
@ -1625,6 +1625,7 @@ static const struct mtk_eint_hw mt8188_eint_hw = {
|
||||||
.ports = 7,
|
.ports = 7,
|
||||||
.ap_num = 225,
|
.ap_num = 225,
|
||||||
.db_cnt = 32,
|
.db_cnt = 32,
|
||||||
|
.db_time = debounce_time_mt6765,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct mtk_pin_soc mt8188_data = {
|
static const struct mtk_pin_soc mt8188_data = {
|
||||||
|
|
|
@ -1371,6 +1371,7 @@ static const struct mtk_eint_hw mt8192_eint_hw = {
|
||||||
.ports = 7,
|
.ports = 7,
|
||||||
.ap_num = 224,
|
.ap_num = 224,
|
||||||
.db_cnt = 32,
|
.db_cnt = 32,
|
||||||
|
.db_time = debounce_time_mt6765,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct mtk_pin_reg_calc mt8192_reg_cals[PINCTRL_PIN_REG_MAX] = {
|
static const struct mtk_pin_reg_calc mt8192_reg_cals[PINCTRL_PIN_REG_MAX] = {
|
||||||
|
|
|
@ -935,6 +935,7 @@ static const struct mtk_eint_hw mt8195_eint_hw = {
|
||||||
.ports = 7,
|
.ports = 7,
|
||||||
.ap_num = 225,
|
.ap_num = 225,
|
||||||
.db_cnt = 32,
|
.db_cnt = 32,
|
||||||
|
.db_time = debounce_time_mt6765,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct mtk_pin_soc mt8195_data = {
|
static const struct mtk_pin_soc mt8195_data = {
|
||||||
|
|
|
@ -453,6 +453,7 @@ static const struct mtk_pinctrl_devdata mt8365_pinctrl_data = {
|
||||||
.ports = 5,
|
.ports = 5,
|
||||||
.ap_num = 160,
|
.ap_num = 160,
|
||||||
.db_cnt = 160,
|
.db_cnt = 160,
|
||||||
|
.db_time = debounce_time_mt6765,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -319,6 +319,7 @@ static const struct mtk_pinctrl_devdata mt8516_pinctrl_data = {
|
||||||
.ports = 6,
|
.ports = 6,
|
||||||
.ap_num = 169,
|
.ap_num = 169,
|
||||||
.db_cnt = 64,
|
.db_cnt = 64,
|
||||||
|
.db_time = debounce_time_mt6795,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -709,6 +709,9 @@ static int mtk_pinconf_bias_set_rsel(struct mtk_pinctrl *hw,
|
||||||
{
|
{
|
||||||
int err, rsel_val;
|
int err, rsel_val;
|
||||||
|
|
||||||
|
if (!pullup && arg == MTK_DISABLE)
|
||||||
|
return 0;
|
||||||
|
|
||||||
if (hw->rsel_si_unit) {
|
if (hw->rsel_si_unit) {
|
||||||
/* find pin rsel_index from pin_rsel array*/
|
/* find pin rsel_index from pin_rsel array*/
|
||||||
err = mtk_hw_pin_rsel_lookup(hw, desc, pullup, arg, &rsel_val);
|
err = mtk_hw_pin_rsel_lookup(hw, desc, pullup, arg, &rsel_val);
|
||||||
|
|
|
@ -679,14 +679,54 @@ static void rockchip_get_recalced_mux(struct rockchip_pin_bank *bank, int pin,
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct rockchip_mux_route_data px30_mux_route_data[] = {
|
static struct rockchip_mux_route_data px30_mux_route_data[] = {
|
||||||
|
RK_MUXROUTE_SAME(2, RK_PB4, 1, 0x184, BIT(16 + 7)), /* cif-d0m0 */
|
||||||
|
RK_MUXROUTE_SAME(3, RK_PA1, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d0m1 */
|
||||||
|
RK_MUXROUTE_SAME(2, RK_PB6, 1, 0x184, BIT(16 + 7)), /* cif-d1m0 */
|
||||||
|
RK_MUXROUTE_SAME(3, RK_PA2, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d1m1 */
|
||||||
RK_MUXROUTE_SAME(2, RK_PA0, 1, 0x184, BIT(16 + 7)), /* cif-d2m0 */
|
RK_MUXROUTE_SAME(2, RK_PA0, 1, 0x184, BIT(16 + 7)), /* cif-d2m0 */
|
||||||
RK_MUXROUTE_SAME(3, RK_PA3, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d2m1 */
|
RK_MUXROUTE_SAME(3, RK_PA3, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d2m1 */
|
||||||
|
RK_MUXROUTE_SAME(2, RK_PA1, 1, 0x184, BIT(16 + 7)), /* cif-d3m0 */
|
||||||
|
RK_MUXROUTE_SAME(3, RK_PA5, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d3m1 */
|
||||||
|
RK_MUXROUTE_SAME(2, RK_PA2, 1, 0x184, BIT(16 + 7)), /* cif-d4m0 */
|
||||||
|
RK_MUXROUTE_SAME(3, RK_PA7, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d4m1 */
|
||||||
|
RK_MUXROUTE_SAME(2, RK_PA3, 1, 0x184, BIT(16 + 7)), /* cif-d5m0 */
|
||||||
|
RK_MUXROUTE_SAME(3, RK_PB0, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d5m1 */
|
||||||
|
RK_MUXROUTE_SAME(2, RK_PA4, 1, 0x184, BIT(16 + 7)), /* cif-d6m0 */
|
||||||
|
RK_MUXROUTE_SAME(3, RK_PB1, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d6m1 */
|
||||||
|
RK_MUXROUTE_SAME(2, RK_PA5, 1, 0x184, BIT(16 + 7)), /* cif-d7m0 */
|
||||||
|
RK_MUXROUTE_SAME(3, RK_PB4, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d7m1 */
|
||||||
|
RK_MUXROUTE_SAME(2, RK_PA6, 1, 0x184, BIT(16 + 7)), /* cif-d8m0 */
|
||||||
|
RK_MUXROUTE_SAME(3, RK_PB6, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d8m1 */
|
||||||
|
RK_MUXROUTE_SAME(2, RK_PA7, 1, 0x184, BIT(16 + 7)), /* cif-d9m0 */
|
||||||
|
RK_MUXROUTE_SAME(3, RK_PB7, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d9m1 */
|
||||||
|
RK_MUXROUTE_SAME(2, RK_PB7, 1, 0x184, BIT(16 + 7)), /* cif-d10m0 */
|
||||||
|
RK_MUXROUTE_SAME(3, RK_PC6, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d10m1 */
|
||||||
|
RK_MUXROUTE_SAME(2, RK_PC0, 1, 0x184, BIT(16 + 7)), /* cif-d11m0 */
|
||||||
|
RK_MUXROUTE_SAME(3, RK_PC7, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d11m1 */
|
||||||
|
RK_MUXROUTE_SAME(2, RK_PB0, 1, 0x184, BIT(16 + 7)), /* cif-vsyncm0 */
|
||||||
|
RK_MUXROUTE_SAME(3, RK_PD1, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-vsyncm1 */
|
||||||
|
RK_MUXROUTE_SAME(2, RK_PB1, 1, 0x184, BIT(16 + 7)), /* cif-hrefm0 */
|
||||||
|
RK_MUXROUTE_SAME(3, RK_PD2, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-hrefm1 */
|
||||||
|
RK_MUXROUTE_SAME(2, RK_PB2, 1, 0x184, BIT(16 + 7)), /* cif-clkinm0 */
|
||||||
|
RK_MUXROUTE_SAME(3, RK_PD3, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-clkinm1 */
|
||||||
|
RK_MUXROUTE_SAME(2, RK_PB3, 1, 0x184, BIT(16 + 7)), /* cif-clkoutm0 */
|
||||||
|
RK_MUXROUTE_SAME(3, RK_PD0, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-clkoutm1 */
|
||||||
RK_MUXROUTE_SAME(3, RK_PC6, 2, 0x184, BIT(16 + 8)), /* pdm-m0 */
|
RK_MUXROUTE_SAME(3, RK_PC6, 2, 0x184, BIT(16 + 8)), /* pdm-m0 */
|
||||||
RK_MUXROUTE_SAME(2, RK_PC6, 1, 0x184, BIT(16 + 8) | BIT(8)), /* pdm-m1 */
|
RK_MUXROUTE_SAME(2, RK_PC6, 1, 0x184, BIT(16 + 8) | BIT(8)), /* pdm-m1 */
|
||||||
|
RK_MUXROUTE_SAME(3, RK_PD3, 2, 0x184, BIT(16 + 8)), /* pdm-sdi0m0 */
|
||||||
|
RK_MUXROUTE_SAME(2, RK_PC5, 2, 0x184, BIT(16 + 8) | BIT(8)), /* pdm-sdi0m1 */
|
||||||
RK_MUXROUTE_SAME(1, RK_PD3, 2, 0x184, BIT(16 + 10)), /* uart2-rxm0 */
|
RK_MUXROUTE_SAME(1, RK_PD3, 2, 0x184, BIT(16 + 10)), /* uart2-rxm0 */
|
||||||
RK_MUXROUTE_SAME(2, RK_PB6, 2, 0x184, BIT(16 + 10) | BIT(10)), /* uart2-rxm1 */
|
RK_MUXROUTE_SAME(2, RK_PB6, 2, 0x184, BIT(16 + 10) | BIT(10)), /* uart2-rxm1 */
|
||||||
|
RK_MUXROUTE_SAME(1, RK_PD2, 2, 0x184, BIT(16 + 10)), /* uart2-txm0 */
|
||||||
|
RK_MUXROUTE_SAME(2, RK_PB4, 2, 0x184, BIT(16 + 10) | BIT(10)), /* uart2-txm1 */
|
||||||
RK_MUXROUTE_SAME(0, RK_PC1, 2, 0x184, BIT(16 + 9)), /* uart3-rxm0 */
|
RK_MUXROUTE_SAME(0, RK_PC1, 2, 0x184, BIT(16 + 9)), /* uart3-rxm0 */
|
||||||
RK_MUXROUTE_SAME(1, RK_PB7, 2, 0x184, BIT(16 + 9) | BIT(9)), /* uart3-rxm1 */
|
RK_MUXROUTE_SAME(1, RK_PB7, 2, 0x184, BIT(16 + 9) | BIT(9)), /* uart3-rxm1 */
|
||||||
|
RK_MUXROUTE_SAME(0, RK_PC0, 2, 0x184, BIT(16 + 9)), /* uart3-txm0 */
|
||||||
|
RK_MUXROUTE_SAME(1, RK_PB6, 2, 0x184, BIT(16 + 9) | BIT(9)), /* uart3-txm1 */
|
||||||
|
RK_MUXROUTE_SAME(0, RK_PC2, 2, 0x184, BIT(16 + 9)), /* uart3-ctsm0 */
|
||||||
|
RK_MUXROUTE_SAME(1, RK_PB4, 2, 0x184, BIT(16 + 9) | BIT(9)), /* uart3-ctsm1 */
|
||||||
|
RK_MUXROUTE_SAME(0, RK_PC3, 2, 0x184, BIT(16 + 9)), /* uart3-rtsm0 */
|
||||||
|
RK_MUXROUTE_SAME(1, RK_PB5, 2, 0x184, BIT(16 + 9) | BIT(9)), /* uart3-rtsm1 */
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct rockchip_mux_route_data rv1126_mux_route_data[] = {
|
static struct rockchip_mux_route_data rv1126_mux_route_data[] = {
|
||||||
|
|
|
@ -1873,8 +1873,8 @@ static const struct msm_pingroup sc8280xp_groups[] = {
|
||||||
[225] = PINGROUP(225, hs3_mi2s, phase_flag, _, _, _, _, egpio),
|
[225] = PINGROUP(225, hs3_mi2s, phase_flag, _, _, _, _, egpio),
|
||||||
[226] = PINGROUP(226, hs3_mi2s, phase_flag, _, _, _, _, egpio),
|
[226] = PINGROUP(226, hs3_mi2s, phase_flag, _, _, _, _, egpio),
|
||||||
[227] = PINGROUP(227, hs3_mi2s, phase_flag, _, _, _, _, egpio),
|
[227] = PINGROUP(227, hs3_mi2s, phase_flag, _, _, _, _, egpio),
|
||||||
[228] = UFS_RESET(ufs_reset, 0xf1004),
|
[228] = UFS_RESET(ufs_reset, 0xf1000),
|
||||||
[229] = UFS_RESET(ufs1_reset, 0xf3004),
|
[229] = UFS_RESET(ufs1_reset, 0xf3000),
|
||||||
[230] = SDC_QDSD_PINGROUP(sdc2_clk, 0xe8000, 14, 6),
|
[230] = SDC_QDSD_PINGROUP(sdc2_clk, 0xe8000, 14, 6),
|
||||||
[231] = SDC_QDSD_PINGROUP(sdc2_cmd, 0xe8000, 11, 3),
|
[231] = SDC_QDSD_PINGROUP(sdc2_cmd, 0xe8000, 11, 3),
|
||||||
[232] = SDC_QDSD_PINGROUP(sdc2_data, 0xe8000, 9, 0),
|
[232] = SDC_QDSD_PINGROUP(sdc2_data, 0xe8000, 9, 0),
|
||||||
|
|
Loading…
Reference in New Issue