mirror of
https://github.com/FUjr/gl-infra-builder.git
synced 2025-12-16 17:15:08 +00:00
58 lines
2.1 KiB
Diff
58 lines
2.1 KiB
Diff
From 00c8bf9c940bddb69ac88556f808842b02e6e425 Mon Sep 17 00:00:00 2001
|
|
From: "GL.iNet-Xinfa.Deng" <xinfa.deng@gl-inet.com>
|
|
Date: Sat, 19 Jun 2021 11:39:46 +0800
|
|
Subject: [PATCH] fix: i2c func select
|
|
|
|
Signed-off-by: GL.iNet-Xinfa.Deng <xinfa.deng@gl-inet.com>
|
|
---
|
|
.../linux-4.14.90/drivers/pinctrl/pinctrl-sfax8.c | 24 ++++++----------------
|
|
1 file changed, 6 insertions(+), 18 deletions(-)
|
|
|
|
diff --git a/linux-4.14.90-dev/linux-4.14.90/drivers/pinctrl/pinctrl-sfax8.c b/linux-4.14.90-dev/linux-4.14.90/drivers/pinctrl/pinctrl-sfax8.c
|
|
index 1a8ca99..ebbcd78 100644
|
|
--- a/linux-4.14.90-dev/linux-4.14.90/drivers/pinctrl/pinctrl-sfax8.c
|
|
+++ b/linux-4.14.90-dev/linux-4.14.90/drivers/pinctrl/pinctrl-sfax8.c
|
|
@@ -265,33 +265,21 @@ static int sfax8_pad_set_func(struct sfax8_pinctrl *info, u32 index, pad_func fu
|
|
{
|
|
// write 0,0,0 to fmux_sel_reg mode_bit1_reg mode_bit0_reg
|
|
case FUNC0:
|
|
+ case FUNC1:
|
|
+ case FUNC2:
|
|
+ case FUNC3:
|
|
regmap_read(info->regmap_base, PAD_INDEX_REG1(index), &tmp);
|
|
- tmp |=(0x1 << FUNC_SW_SEL_REG);
|
|
+ tmp &= ~(0x7 << 0);
|
|
+ tmp |= (func << 0) | (0x1 << FUNC_SW_SEL_REG);
|
|
regmap_write(info->regmap_base, PAD_INDEX_REG1(index), tmp);
|
|
|
|
regmap_read(info->regmap_base, PAD_INDEX_REG0(index), &tmp);
|
|
- tmp |=(0x1 << SW_IE_REG);
|
|
+ tmp &= ~(0x1 << SW_OEN_REG);
|
|
regmap_write(info->regmap_base, PAD_INDEX_REG0(index), tmp);
|
|
|
|
- regmap_read(info->regmap_base, PAD_INDEX_REG1(index), &tmp);
|
|
- tmp &= ~(0x7 << 0);
|
|
- regmap_write(info->regmap_base, PAD_INDEX_REG1(index), tmp);
|
|
- break;
|
|
-
|
|
- // write 0,0,1 to fmux_sel_reg mode_bit1_reg mode_bit0_reg
|
|
- case FUNC1:
|
|
- regmap_read(info->regmap_base, PAD_INDEX_REG1(index), &tmp);
|
|
- tmp |=(0x1 << FUNC_SW_SEL_REG);
|
|
- regmap_write(info->regmap_base, PAD_INDEX_REG1(index), tmp);
|
|
-
|
|
regmap_read(info->regmap_base, PAD_INDEX_REG0(index), &tmp);
|
|
tmp |=(0x1 << SW_IE_REG);
|
|
regmap_write(info->regmap_base, PAD_INDEX_REG0(index), tmp);
|
|
-
|
|
- regmap_read(info->regmap_base, PAD_INDEX_REG1(index), &tmp);
|
|
- tmp &= ~(0x3 << 1);
|
|
- tmp |=(0x1 << 0);
|
|
- regmap_write(info->regmap_base, PAD_INDEX_REG1(index), tmp);
|
|
break;
|
|
|
|
case GPIO_INPUT:
|
|
--
|
|
2.7.4
|
|
|