Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'pinctrl-v6.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl

Pull pin control updates from Linus Walleij:
"An especially linear and sparse improvement and new drivers release.
Nothing exciting. The biggest change in Bartosz changes to make
gpiochip set/get calls return error codes (something we should have
fixed ages ago but is now finally getting fixed.)

Core changes:

- Add the devres devm_pinctrl_register_mappings() call that can
register some pin control machine mappings and have them go away
with the associated device

New drivers:

- Support for the Mediatek MT6893 and MT8196 SoCs

- Support for the Renesas RZ/V2N SoC

- Support for the NXP Freescale i.MX943 SoC

Improvements:

- Per-SoC suspend/resume callbacks in the Samsung drivers

- Set all pins as input (High-Z) at probe in the MCP23S08 driver

- Switch most GPIO chips to use the setters/getters with a return
value

- EGPIO support in the Qualcomm QCM2290 driver

- Fix up the number of available GPIO lines in Qualcomm QCS8300 and
QCS615"

* tag 'pinctrl-v6.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (82 commits)
pinctrl: freescale: Add support for imx943 pinctrl
pinctrl: core: add devm_pinctrl_register_mappings()
pinctrl: remove extern specifier for functions in machine.h
pinctrl: mediatek: eint: Fix invalid pointer dereference for v1 platforms
pinctrl: freescale: Enable driver if platform is enabled.
pinctrl: freescale: Depend imx-scu driver on OF
pinctrl: armada-37xx: propagate error from armada_37xx_pmx_set_by_name()
pinctrl: armada-37xx: propagate error from armada_37xx_gpio_get_direction()
pinctrl: armada-37xx: propagate error from armada_37xx_pmx_gpio_set_direction()
pinctrl: armada-37xx: propagate error from armada_37xx_gpio_get()
pinctrl: armada-37xx: propagate error from armada_37xx_gpio_direction_output()
pinctrl: armada-37xx: set GPIO output value before setting direction
pinctrl: armada-37xx: use correct OUTPUT_VAL register for GPIOs > 31
pinctrl: meson: Drop unused aml_pctl_find_group_by_name()
pinctrl: at91: Fix possible out-of-boundary access
pinctrl: add stubs for OF-specific pinconf functions
pinctrl: qcom: correct the ngpios entry for QCS8300
pinctrl: qcom: correct the ngpios entry for QCS615
dt-bindings: pinctrl: qcom: correct gpio-ranges in examples for qcs8300
dt-bindings: pinctrl: qcom: correct gpio-ranges in examples for qcs615
...

+9749 -853
+6 -1
Documentation/devicetree/bindings/pinctrl/amlogic,pinctrl-a4.yaml
··· 14 14 15 15 properties: 16 16 compatible: 17 - const: amlogic,pinctrl-a4 17 + oneOf: 18 + - const: amlogic,pinctrl-a4 19 + - items: 20 + - enum: 21 + - amlogic,pinctrl-a5 22 + - const: amlogic,pinctrl-a4 18 23 19 24 "#address-cells": 20 25 const: 2
+99
Documentation/devicetree/bindings/pinctrl/fsl,imx7ulp-iomuxc1.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/pinctrl/fsl,imx7ulp-iomuxc1.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Freescale i.MX7ULP IOMUX Controller 8 + 9 + description: | 10 + i.MX 7ULP has three IOMUXC instances: IOMUXC0 for M4 ports, IOMUXC1 for A7 11 + ports and IOMUXC DDR for DDR interface. 12 + 13 + Note: This binding doc is only for the IOMUXC1 support in A7 Domain and it 14 + only supports generic pin config. 15 + 16 + Please refer to fsl,imx-pinctrl.txt in this directory for common binding 17 + part and usage. 18 + 19 + maintainers: 20 + - Frank Li <Frank.Li@nxp.com> 21 + 22 + properties: 23 + compatible: 24 + const: fsl,imx7ulp-iomuxc1 25 + 26 + reg: 27 + maxItems: 1 28 + 29 + patternProperties: 30 + 'grp$': 31 + type: object 32 + description: 33 + Pinctrl node's client devices use subnodes for desired pin configuration. 34 + Client device subnodes use below standard properties. 35 + 36 + properties: 37 + fsl,pins: 38 + description: 39 + Each entry consists of 5 integers which represents the mux 40 + and config setting for one pin. The first 4 integers 41 + <mux_conf_reg input_reg mux_mode input_val> are specified 42 + using a PIN_FUNC_ID macro, which can be found in 43 + imx7ulp-pinfunc.h in the device tree source folder. 44 + The last integer CONFIG is the pad setting value like 45 + pull-up on this pin. 46 + 47 + Please refer to i.MX7ULP Reference Manual for detailed 48 + CONFIG settings. 49 + $ref: /schemas/types.yaml#/definitions/uint32-matrix 50 + items: 51 + items: 52 + - description: | 53 + "mux_conf_reg" indicates the offset of mux register. 54 + - description: | 55 + "input_reg" indicates the offset of select input register. 56 + - description: | 57 + "mux_mode" indicates the mux value to be applied. 58 + - description: | 59 + "input_val" indicates the select input value to be applied. 60 + - description: | 61 + CONFIG bits definition: 62 + PAD_CTL_OBE (1 << 17) 63 + PAD_CTL_IBE (1 << 16) 64 + PAD_CTL_LK (1 << 16) 65 + PAD_CTL_DSE_HI (1 << 6) 66 + PAD_CTL_DSE_STD (0 << 6) 67 + PAD_CTL_ODE (1 << 5) 68 + PAD_CTL_PUSH_PULL (0 << 5) 69 + PAD_CTL_SRE_SLOW (1 << 2) 70 + PAD_CTL_SRE_STD (0 << 2) 71 + PAD_CTL_PE (1 << 0) 72 + 73 + required: 74 + - fsl,pins 75 + 76 + additionalProperties: false 77 + 78 + required: 79 + - compatible 80 + - reg 81 + 82 + allOf: 83 + - $ref: pinctrl.yaml# 84 + 85 + unevaluatedProperties: false 86 + 87 + examples: 88 + - | 89 + pinctrl@40ac0000 { 90 + compatible = "fsl,imx7ulp-iomuxc1"; 91 + reg = <0x40ac0000 0x1000>; 92 + 93 + lpuart4grp { 94 + fsl,pins = < 95 + 0x000c 0x0248 0x4 0x1 0x1 96 + 0x0008 0x024c 0x4 0x1 0x1 97 + >; 98 + }; 99 + };
-53
Documentation/devicetree/bindings/pinctrl/fsl,imx7ulp-pinctrl.txt
··· 1 - * Freescale i.MX7ULP IOMUX Controller 2 - 3 - i.MX 7ULP has three IOMUXC instances: IOMUXC0 for M4 ports, IOMUXC1 for A7 4 - ports and IOMUXC DDR for DDR interface. 5 - 6 - Note: 7 - This binding doc is only for the IOMUXC1 support in A7 Domain and it only 8 - supports generic pin config. 9 - 10 - Please refer to fsl,imx-pinctrl.txt in this directory for common binding 11 - part and usage. 12 - 13 - Required properties: 14 - - compatible: "fsl,imx7ulp-iomuxc1". 15 - - fsl,pins: Each entry consists of 5 integers which represents the mux 16 - and config setting for one pin. The first 4 integers 17 - <mux_conf_reg input_reg mux_mode input_val> are specified 18 - using a PIN_FUNC_ID macro, which can be found in 19 - imx7ulp-pinfunc.h in the device tree source folder. 20 - The last integer CONFIG is the pad setting value like 21 - pull-up on this pin. 22 - 23 - Please refer to i.MX7ULP Reference Manual for detailed 24 - CONFIG settings. 25 - 26 - CONFIG bits definition: 27 - PAD_CTL_OBE (1 << 17) 28 - PAD_CTL_IBE (1 << 16) 29 - PAD_CTL_LK (1 << 16) 30 - PAD_CTL_DSE_HI (1 << 6) 31 - PAD_CTL_DSE_STD (0 << 6) 32 - PAD_CTL_ODE (1 << 5) 33 - PAD_CTL_PUSH_PULL (0 << 5) 34 - PAD_CTL_SRE_SLOW (1 << 2) 35 - PAD_CTL_SRE_STD (0 << 2) 36 - PAD_CTL_PE (1 << 0) 37 - 38 - Examples: 39 - #include "imx7ulp-pinfunc.h" 40 - 41 - /* Pin Controller Node */ 42 - iomuxc1: pinctrl@40ac0000 { 43 - compatible = "fsl,imx7ulp-iomuxc1"; 44 - reg = <0x40ac0000 0x1000>; 45 - 46 - /* Pin Configuration Node */ 47 - pinctrl_lpuart4: lpuart4grp { 48 - fsl,pins = < 49 - IMX7ULP_PAD_PTC3__LPUART4_RX 0x1 50 - IMX7ULP_PAD_PTC2__LPUART4_TX 0x1 51 - >; 52 - }; 53 - };
+83
Documentation/devicetree/bindings/pinctrl/fsl,vf610-iomuxc.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/pinctrl/fsl,vf610-iomuxc.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Freescale Vybrid VF610 IOMUX Controller 8 + 9 + description: 10 + Please refer to fsl,imx-pinctrl.txt in this directory for common binding part 11 + and usage. 12 + 13 + maintainers: 14 + - Frank Li <Frank.Li@nxp.com> 15 + 16 + properties: 17 + compatible: 18 + const: fsl,vf610-iomuxc 19 + 20 + reg: 21 + maxItems: 1 22 + 23 + patternProperties: 24 + 'grp$': 25 + type: object 26 + description: 27 + Pinctrl node's client devices use subnodes for desired pin configuration. 28 + Client device subnodes use below standard properties. 29 + 30 + properties: 31 + fsl,pins: 32 + description: 33 + two integers array, represents a group of pins mux and config setting. 34 + The format is fsl,pins = <PIN_FUNC_ID CONFIG>, PIN_FUNC_ID is a pin 35 + working on a specific function, CONFIG is the pad setting value such 36 + as pull-up, speed, ode for this pin. Please refer to Vybrid VF610 37 + datasheet for the valid pad config settings. 38 + $ref: /schemas/types.yaml#/definitions/uint32-matrix 39 + items: 40 + items: 41 + - description: 42 + PIN_FUN_ID refer to vf610-pinfunc.h in device tree source folder 43 + for all available PIN_FUNC_ID for Vybrid VF610. 44 + - description: | 45 + CONFIG bits definition is 46 + PAD_CTL_SPEED_LOW (1 << 12) 47 + PAD_CTL_SPEED_MED (2 << 12) 48 + PAD_CTL_SPEED_HIGH (3 << 12) 49 + PAD_CTL_SRE_FAST (1 << 11) 50 + PAD_CTL_SRE_SLOW (0 << 11) 51 + PAD_CTL_ODE (1 << 10) 52 + PAD_CTL_HYS (1 << 9) 53 + PAD_CTL_DSE_DISABLE (0 << 6) 54 + PAD_CTL_DSE_150ohm (1 << 6) 55 + PAD_CTL_DSE_75ohm (2 << 6) 56 + PAD_CTL_DSE_50ohm (3 << 6) 57 + PAD_CTL_DSE_37ohm (4 << 6) 58 + PAD_CTL_DSE_30ohm (5 << 6) 59 + PAD_CTL_DSE_25ohm (6 << 6) 60 + PAD_CTL_DSE_20ohm (7 << 6) 61 + PAD_CTL_PUS_100K_DOWN (0 << 4) 62 + PAD_CTL_PUS_47K_UP (1 << 4) 63 + PAD_CTL_PUS_100K_UP (2 << 4) 64 + PAD_CTL_PUS_22K_UP (3 << 4) 65 + PAD_CTL_PKE (1 << 3) 66 + PAD_CTL_PUE (1 << 2) 67 + PAD_CTL_OBE_ENABLE (1 << 1) 68 + PAD_CTL_IBE_ENABLE (1 << 0) 69 + PAD_CTL_OBE_IBE_ENABLE (3 << 0) 70 + 71 + required: 72 + - fsl,pins 73 + 74 + additionalProperties: false 75 + 76 + required: 77 + - compatible 78 + - reg 79 + 80 + allOf: 81 + - $ref: pinctrl.yaml# 82 + 83 + unevaluatedProperties: false
-41
Documentation/devicetree/bindings/pinctrl/fsl,vf610-pinctrl.txt
··· 1 - Freescale Vybrid VF610 IOMUX Controller 2 - 3 - Please refer to fsl,imx-pinctrl.txt in this directory for common binding part 4 - and usage. 5 - 6 - Required properties: 7 - - compatible: "fsl,vf610-iomuxc" 8 - - fsl,pins: two integers array, represents a group of pins mux and config 9 - setting. The format is fsl,pins = <PIN_FUNC_ID CONFIG>, PIN_FUNC_ID is 10 - a pin working on a specific function, CONFIG is the pad setting value 11 - such as pull-up, speed, ode for this pin. Please refer to Vybrid VF610 12 - datasheet for the valid pad config settings. 13 - 14 - CONFIG bits definition: 15 - PAD_CTL_SPEED_LOW (1 << 12) 16 - PAD_CTL_SPEED_MED (2 << 12) 17 - PAD_CTL_SPEED_HIGH (3 << 12) 18 - PAD_CTL_SRE_FAST (1 << 11) 19 - PAD_CTL_SRE_SLOW (0 << 11) 20 - PAD_CTL_ODE (1 << 10) 21 - PAD_CTL_HYS (1 << 9) 22 - PAD_CTL_DSE_DISABLE (0 << 6) 23 - PAD_CTL_DSE_150ohm (1 << 6) 24 - PAD_CTL_DSE_75ohm (2 << 6) 25 - PAD_CTL_DSE_50ohm (3 << 6) 26 - PAD_CTL_DSE_37ohm (4 << 6) 27 - PAD_CTL_DSE_30ohm (5 << 6) 28 - PAD_CTL_DSE_25ohm (6 << 6) 29 - PAD_CTL_DSE_20ohm (7 << 6) 30 - PAD_CTL_PUS_100K_DOWN (0 << 4) 31 - PAD_CTL_PUS_47K_UP (1 << 4) 32 - PAD_CTL_PUS_100K_UP (2 << 4) 33 - PAD_CTL_PUS_22K_UP (3 << 4) 34 - PAD_CTL_PKE (1 << 3) 35 - PAD_CTL_PUE (1 << 2) 36 - PAD_CTL_OBE_ENABLE (1 << 1) 37 - PAD_CTL_IBE_ENABLE (1 << 0) 38 - PAD_CTL_OBE_IBE_ENABLE (3 << 0) 39 - 40 - Please refer to vf610-pinfunc.h in device tree source folder 41 - for all available PIN_FUNC_ID for Vybrid VF610.
+31 -62
Documentation/devicetree/bindings/pinctrl/mediatek,mt65xx-pinctrl.yaml
··· 136 136 #address-cells = <2>; 137 137 #size-cells = <2>; 138 138 139 - syscfg_pctl_a: syscfg-pctl-a@10005000 { 140 - compatible = "mediatek,mt8135-pctl-a-syscfg", "syscon"; 141 - reg = <0 0x10005000 0 0x1000>; 142 - }; 143 - 144 - syscfg_pctl_b: syscfg-pctl-b@1020c020 { 145 - compatible = "mediatek,mt8135-pctl-b-syscfg", "syscon"; 146 - reg = <0 0x1020C020 0 0x1000>; 147 - }; 148 - 149 139 pinctrl@1c20800 { 150 - compatible = "mediatek,mt8135-pinctrl"; 151 - reg = <0 0x1000B000 0 0x1000>; 152 - mediatek,pctl-regmap = <&syscfg_pctl_a>, <&syscfg_pctl_b>; 153 - gpio-controller; 154 - #gpio-cells = <2>; 155 - interrupt-controller; 156 - #interrupt-cells = <2>; 157 - interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>, 158 - <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>, 159 - <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; 140 + compatible = "mediatek,mt8135-pinctrl"; 141 + reg = <0 0x1000B000 0 0x1000>; 142 + mediatek,pctl-regmap = <&syscfg_pctl_a>, <&syscfg_pctl_b>; 143 + gpio-controller; 144 + #gpio-cells = <2>; 145 + interrupt-controller; 146 + #interrupt-cells = <2>; 147 + interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>, 148 + <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>, 149 + <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; 160 150 161 - i2c0_pins_a: i2c0-pins { 162 - pins1 { 163 - pinmux = <MT8135_PIN_100_SDA0__FUNC_SDA0>, 164 - <MT8135_PIN_101_SCL0__FUNC_SCL0>; 165 - bias-disable; 166 - }; 167 - }; 168 - 169 - i2c1_pins_a: i2c1-pins { 170 - pins { 171 - pinmux = <MT8135_PIN_195_SDA1__FUNC_SDA1>, 172 - <MT8135_PIN_196_SCL1__FUNC_SCL1>; 173 - bias-pull-up = <MTK_PUPD_SET_R1R0_01>; 174 - }; 175 - }; 176 - 177 - i2c2_pins_a: i2c2-pins { 178 - pins1 { 179 - pinmux = <MT8135_PIN_193_SDA2__FUNC_SDA2>; 180 - bias-pull-down; 151 + i2c0_pins_a: i2c0-pins { 152 + pins1 { 153 + pinmux = <MT8135_PIN_100_SDA0__FUNC_SDA0>, 154 + <MT8135_PIN_101_SCL0__FUNC_SCL0>; 155 + bias-disable; 156 + }; 181 157 }; 182 158 183 - pins2 { 184 - pinmux = <MT8135_PIN_49_WATCHDOG__FUNC_GPIO49>; 185 - bias-pull-up; 186 - }; 187 - }; 188 - 189 - i2c3_pins_a: i2c3-pins { 190 - pins1 { 191 - pinmux = <MT8135_PIN_40_DAC_CLK__FUNC_GPIO40>, 192 - <MT8135_PIN_41_DAC_WS__FUNC_GPIO41>; 193 - bias-pull-up = <MTK_PUPD_SET_R1R0_01>; 159 + i2c1_pins_a: i2c1-pins { 160 + pins { 161 + pinmux = <MT8135_PIN_195_SDA1__FUNC_SDA1>, 162 + <MT8135_PIN_196_SCL1__FUNC_SCL1>; 163 + bias-pull-up = <MTK_PUPD_SET_R1R0_01>; 164 + }; 194 165 }; 195 166 196 - pins2 { 197 - pinmux = <MT8135_PIN_35_SCL3__FUNC_SCL3>, 198 - <MT8135_PIN_36_SDA3__FUNC_SDA3>; 199 - output-low; 200 - bias-pull-up = <MTK_PUPD_SET_R1R0_01>; 201 - }; 167 + i2c2_pins_a: i2c2-pins { 168 + pins1 { 169 + pinmux = <MT8135_PIN_193_SDA2__FUNC_SDA2>; 170 + bias-pull-down; 171 + }; 202 172 203 - pins3 { 204 - pinmux = <MT8135_PIN_57_JTCK__FUNC_GPIO57>, 205 - <MT8135_PIN_60_JTDI__FUNC_JTDI>; 206 - drive-strength = <32>; 173 + pins2 { 174 + pinmux = <MT8135_PIN_49_WATCHDOG__FUNC_GPIO49>; 175 + bias-pull-up; 176 + }; 207 177 }; 208 - }; 209 178 }; 210 179 };
-5
Documentation/devicetree/bindings/pinctrl/mediatek,mt6779-pinctrl.yaml
··· 245 245 }; 246 246 }; 247 247 }; 248 - 249 - mmc0 { 250 - pinctrl-0 = <&mmc0_pins_default>; 251 - pinctrl-names = "default"; 252 - }; 253 248 };
+193
Documentation/devicetree/bindings/pinctrl/mediatek,mt6893-pinctrl.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/pinctrl/mediatek,mt6893-pinctrl.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: MediaTek MT6893 Pin Controller 8 + 9 + maintainers: 10 + - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> 11 + 12 + description: 13 + The MediaTek's MT6893 Pin controller is used to control SoC pins. 14 + 15 + properties: 16 + compatible: 17 + const: mediatek,mt6893-pinctrl 18 + 19 + reg: 20 + items: 21 + - description: pin controller base 22 + - description: rm group IO 23 + - description: bm group IO 24 + - description: lm group IO 25 + - description: lb group IO 26 + - description: rt group IO 27 + - description: lt group IO 28 + - description: tm group IO 29 + - description: External Interrupt (EINT) controller base 30 + 31 + reg-names: 32 + items: 33 + - const: base 34 + - const: rm 35 + - const: bm 36 + - const: lm 37 + - const: lb 38 + - const: rt 39 + - const: lt 40 + - const: tm 41 + - const: eint 42 + 43 + gpio-controller: true 44 + 45 + '#gpio-cells': 46 + description: 47 + Number of cells in GPIO specifier. Since the generic GPIO binding is used, 48 + the amount of cells must be specified as 2. See the below mentioned gpio 49 + binding representation for description of particular cells. 50 + const: 2 51 + 52 + gpio-ranges: 53 + maxItems: 1 54 + 55 + gpio-line-names: true 56 + 57 + interrupts: 58 + description: The interrupt outputs to sysirq 59 + maxItems: 1 60 + 61 + interrupt-controller: true 62 + 63 + '#interrupt-cells': 64 + const: 2 65 + 66 + # PIN CONFIGURATION NODES 67 + patternProperties: 68 + '-pins$': 69 + type: object 70 + additionalProperties: false 71 + 72 + patternProperties: 73 + '^pins': 74 + type: object 75 + allOf: 76 + - $ref: /schemas/pinctrl/pincfg-node.yaml 77 + - $ref: /schemas/pinctrl/pinmux-node.yaml 78 + description: 79 + A pinctrl node should contain at least one subnodes representing the 80 + pinctrl groups available on the machine. Each subnode will list the 81 + pins it needs, and how they should be configured, with regard to muxer 82 + configuration, pullups, drive strength, input enable/disable and input 83 + schmitt. 84 + 85 + properties: 86 + pinmux: 87 + description: 88 + Integer array, represents gpio pin number and mux setting. 89 + Supported pin number and mux are defined as macros in 90 + arch/arm64/boot/dts/mediatek/mt8196-pinfunc.h for this SoC. 91 + 92 + drive-strength: 93 + enum: [2, 4, 6, 8, 10, 12, 14, 16] 94 + 95 + drive-strength-microamp: 96 + enum: [125, 250, 500, 1000] 97 + 98 + bias-pull-down: 99 + oneOf: 100 + - type: boolean 101 + - enum: [75000, 5000] 102 + description: Pull down RSEL type resistance values (in ohms) 103 + description: 104 + For normal pull down type there is no need to specify a resistance 105 + value, hence this can be specified as a boolean property. 106 + For RSEL pull down type a resistance value (in ohms) can be added. 107 + 108 + bias-pull-up: 109 + oneOf: 110 + - type: boolean 111 + - enum: [10000, 5000, 4000, 3000] 112 + description: Pull up RSEL type resistance values (in ohms) 113 + description: 114 + For normal pull up type there is no need to specify a resistance 115 + value, hence this can be specified as a boolean property. 116 + For RSEL pull up type a resistance value (in ohms) can be added. 117 + 118 + bias-disable: true 119 + 120 + output-high: true 121 + 122 + output-low: true 123 + 124 + input-enable: true 125 + 126 + input-disable: true 127 + 128 + input-schmitt-enable: true 129 + 130 + input-schmitt-disable: true 131 + 132 + required: 133 + - pinmux 134 + 135 + additionalProperties: false 136 + 137 + required: 138 + - compatible 139 + - reg 140 + - interrupts 141 + - interrupt-controller 142 + - '#interrupt-cells' 143 + - gpio-controller 144 + - '#gpio-cells' 145 + - gpio-ranges 146 + 147 + additionalProperties: false 148 + 149 + examples: 150 + - | 151 + #include <dt-bindings/interrupt-controller/arm-gic.h> 152 + #include <dt-bindings/pinctrl/mt65xx.h> 153 + #define PINMUX_GPIO0__FUNC_GPIO0 (MTK_PIN_NO(0) | 0) 154 + #define PINMUX_GPIO99__FUNC_SCL0 (MTK_PIN_NO(99) | 1) 155 + #define PINMUX_GPIO100__FUNC_SDA0 (MTK_PIN_NO(100) | 1) 156 + 157 + pio: pinctrl@10005000 { 158 + compatible = "mediatek,mt6893-pinctrl"; 159 + reg = <0x10005000 0x1000>, 160 + <0x11c20000 0x0200>, 161 + <0x11d10000 0x0200>, 162 + <0x11e20000 0x0200>, 163 + <0x11e70000 0x0200>, 164 + <0x11ea0000 0x0200>, 165 + <0x11f20000 0x0200>, 166 + <0x11f30000 0x0200>, 167 + <0x1100b000 0x1000>; 168 + reg-names = "base", "rm", "bm", "lm", "lb", "rt", 169 + "lt", "tm", "eint"; 170 + gpio-controller; 171 + #gpio-cells = <2>; 172 + gpio-ranges = <&pio 0 0 220>; 173 + interrupt-controller; 174 + interrupts = <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH 0>; 175 + #interrupt-cells = <2>; 176 + 177 + gpio-pins { 178 + pins { 179 + pinmux = <PINMUX_GPIO0__FUNC_GPIO0>; 180 + bias-pull-up = <4000>; 181 + drive-strength = <6>; 182 + }; 183 + }; 184 + 185 + i2c0-pins { 186 + pins-bus { 187 + pinmux = <PINMUX_GPIO99__FUNC_SCL0>, 188 + <PINMUX_GPIO100__FUNC_SDA0>; 189 + bias-pull-down = <75000>; 190 + drive-strength-microamp = <1000>; 191 + }; 192 + }; 193 + };
+24 -24
Documentation/devicetree/bindings/pinctrl/mediatek,mt7622-pinctrl.yaml
··· 366 366 #size-cells = <2>; 367 367 368 368 pio: pinctrl@10211000 { 369 - compatible = "mediatek,mt7622-pinctrl"; 370 - reg = <0 0x10211000 0 0x1000>; 371 - gpio-controller; 372 - #gpio-cells = <2>; 369 + compatible = "mediatek,mt7622-pinctrl"; 370 + reg = <0 0x10211000 0 0x1000>; 371 + gpio-controller; 372 + #gpio-cells = <2>; 373 373 374 - pinctrl_eth_default: eth-pins { 375 - mux-mdio { 376 - groups = "mdc_mdio"; 377 - function = "eth"; 378 - drive-strength = <12>; 379 - }; 374 + pinctrl_eth_default: eth-pins { 375 + mux-mdio { 376 + groups = "mdc_mdio"; 377 + function = "eth"; 378 + drive-strength = <12>; 379 + }; 380 380 381 - mux-gmac2 { 382 - groups = "rgmii_via_gmac2"; 383 - function = "eth"; 384 - drive-strength = <12>; 385 - }; 381 + mux-gmac2 { 382 + groups = "rgmii_via_gmac2"; 383 + function = "eth"; 384 + drive-strength = <12>; 385 + }; 386 386 387 - mux-esw { 388 - groups = "esw"; 389 - function = "eth"; 390 - drive-strength = <8>; 391 - }; 387 + mux-esw { 388 + groups = "esw"; 389 + function = "eth"; 390 + drive-strength = <8>; 391 + }; 392 392 393 - conf-mdio { 394 - pins = "MDC"; 395 - bias-pull-up; 393 + conf-mdio { 394 + pins = "MDC"; 395 + bias-pull-up; 396 + }; 396 397 }; 397 - }; 398 398 }; 399 399 };
+34 -34
Documentation/devicetree/bindings/pinctrl/mediatek,mt8183-pinctrl.yaml
··· 195 195 #size-cells = <2>; 196 196 197 197 pio: pinctrl@10005000 { 198 - compatible = "mediatek,mt8183-pinctrl"; 199 - reg = <0 0x10005000 0 0x1000>, 200 - <0 0x11f20000 0 0x1000>, 201 - <0 0x11e80000 0 0x1000>, 202 - <0 0x11e70000 0 0x1000>, 203 - <0 0x11e90000 0 0x1000>, 204 - <0 0x11d30000 0 0x1000>, 205 - <0 0x11d20000 0 0x1000>, 206 - <0 0x11c50000 0 0x1000>, 207 - <0 0x11f30000 0 0x1000>, 208 - <0 0x1000b000 0 0x1000>; 209 - reg-names = "iocfg0", "iocfg1", "iocfg2", 210 - "iocfg3", "iocfg4", "iocfg5", 211 - "iocfg6", "iocfg7", "iocfg8", 212 - "eint"; 213 - gpio-controller; 214 - #gpio-cells = <2>; 215 - gpio-ranges = <&pio 0 0 192>; 216 - interrupt-controller; 217 - interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>; 218 - #interrupt-cells = <2>; 198 + compatible = "mediatek,mt8183-pinctrl"; 199 + reg = <0 0x10005000 0 0x1000>, 200 + <0 0x11f20000 0 0x1000>, 201 + <0 0x11e80000 0 0x1000>, 202 + <0 0x11e70000 0 0x1000>, 203 + <0 0x11e90000 0 0x1000>, 204 + <0 0x11d30000 0 0x1000>, 205 + <0 0x11d20000 0 0x1000>, 206 + <0 0x11c50000 0 0x1000>, 207 + <0 0x11f30000 0 0x1000>, 208 + <0 0x1000b000 0 0x1000>; 209 + reg-names = "iocfg0", "iocfg1", "iocfg2", 210 + "iocfg3", "iocfg4", "iocfg5", 211 + "iocfg6", "iocfg7", "iocfg8", 212 + "eint"; 213 + gpio-controller; 214 + #gpio-cells = <2>; 215 + gpio-ranges = <&pio 0 0 192>; 216 + interrupt-controller; 217 + interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>; 218 + #interrupt-cells = <2>; 219 219 220 - i2c0_pins_a: i2c0-pins { 221 - pins1 { 222 - pinmux = <PINMUX_GPIO48__FUNC_SCL5>, 223 - <PINMUX_GPIO49__FUNC_SDA5>; 224 - mediatek,pull-up-adv = <3>; 225 - drive-strength-microamp = <1000>; 220 + i2c0_pins_a: i2c0-pins { 221 + pins1 { 222 + pinmux = <PINMUX_GPIO48__FUNC_SCL5>, 223 + <PINMUX_GPIO49__FUNC_SDA5>; 224 + mediatek,pull-up-adv = <3>; 225 + drive-strength-microamp = <1000>; 226 + }; 226 227 }; 227 - }; 228 228 229 - i2c1_pins_a: i2c1-pins { 230 - pins { 231 - pinmux = <PINMUX_GPIO50__FUNC_SCL3>, 232 - <PINMUX_GPIO51__FUNC_SDA3>; 233 - mediatek,pull-down-adv = <2>; 229 + i2c1_pins_a: i2c1-pins { 230 + pins { 231 + pinmux = <PINMUX_GPIO50__FUNC_SCL3>, 232 + <PINMUX_GPIO51__FUNC_SDA3>; 233 + mediatek,pull-down-adv = <2>; 234 + }; 234 235 }; 235 - }; 236 236 }; 237 237 };
+38 -38
Documentation/devicetree/bindings/pinctrl/mediatek,mt8192-pinctrl.yaml
··· 142 142 143 143 examples: 144 144 - | 145 - #include <dt-bindings/pinctrl/mt8192-pinfunc.h> 146 - #include <dt-bindings/interrupt-controller/arm-gic.h> 147 - pio: pinctrl@10005000 { 148 - compatible = "mediatek,mt8192-pinctrl"; 149 - reg = <0x10005000 0x1000>, 150 - <0x11c20000 0x1000>, 151 - <0x11d10000 0x1000>, 152 - <0x11d30000 0x1000>, 153 - <0x11d40000 0x1000>, 154 - <0x11e20000 0x1000>, 155 - <0x11e70000 0x1000>, 156 - <0x11ea0000 0x1000>, 157 - <0x11f20000 0x1000>, 158 - <0x11f30000 0x1000>, 159 - <0x1000b000 0x1000>; 160 - reg-names = "iocfg0", "iocfg_rm", "iocfg_bm", 161 - "iocfg_bl", "iocfg_br", "iocfg_lm", 162 - "iocfg_lb", "iocfg_rt", "iocfg_lt", 163 - "iocfg_tl", "eint"; 164 - gpio-controller; 165 - #gpio-cells = <2>; 166 - gpio-ranges = <&pio 0 0 220>; 167 - interrupt-controller; 168 - interrupts = <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH 0>; 169 - #interrupt-cells = <2>; 145 + #include <dt-bindings/pinctrl/mt8192-pinfunc.h> 146 + #include <dt-bindings/interrupt-controller/arm-gic.h> 147 + pio: pinctrl@10005000 { 148 + compatible = "mediatek,mt8192-pinctrl"; 149 + reg = <0x10005000 0x1000>, 150 + <0x11c20000 0x1000>, 151 + <0x11d10000 0x1000>, 152 + <0x11d30000 0x1000>, 153 + <0x11d40000 0x1000>, 154 + <0x11e20000 0x1000>, 155 + <0x11e70000 0x1000>, 156 + <0x11ea0000 0x1000>, 157 + <0x11f20000 0x1000>, 158 + <0x11f30000 0x1000>, 159 + <0x1000b000 0x1000>; 160 + reg-names = "iocfg0", "iocfg_rm", "iocfg_bm", 161 + "iocfg_bl", "iocfg_br", "iocfg_lm", 162 + "iocfg_lb", "iocfg_rt", "iocfg_lt", 163 + "iocfg_tl", "eint"; 164 + gpio-controller; 165 + #gpio-cells = <2>; 166 + gpio-ranges = <&pio 0 0 220>; 167 + interrupt-controller; 168 + interrupts = <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH 0>; 169 + #interrupt-cells = <2>; 170 170 171 - spi1-default-pins { 172 - pins-cs-mosi-clk { 173 - pinmux = <PINMUX_GPIO157__FUNC_SPI1_A_CSB>, 174 - <PINMUX_GPIO159__FUNC_SPI1_A_MO>, 175 - <PINMUX_GPIO156__FUNC_SPI1_A_CLK>; 176 - bias-disable; 177 - }; 178 - 179 - pins-miso { 180 - pinmux = <PINMUX_GPIO158__FUNC_SPI1_A_MI>; 181 - bias-pull-down; 182 - }; 183 - }; 171 + spi1-default-pins { 172 + pins-cs-mosi-clk { 173 + pinmux = <PINMUX_GPIO157__FUNC_SPI1_A_CSB>, 174 + <PINMUX_GPIO159__FUNC_SPI1_A_MO>, 175 + <PINMUX_GPIO156__FUNC_SPI1_A_CLK>; 176 + bias-disable; 184 177 }; 178 + 179 + pins-miso { 180 + pinmux = <PINMUX_GPIO158__FUNC_SPI1_A_MI>; 181 + bias-pull-down; 182 + }; 183 + }; 184 + };
+236
Documentation/devicetree/bindings/pinctrl/mediatek,mt8196-pinctrl.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/pinctrl/mediatek,mt8196-pinctrl.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: MediaTek MT8196 Pin Controller 8 + 9 + maintainers: 10 + - Lei Xue <lei.xue@mediatek.com> 11 + - Cathy Xu <ot_cathy.xu@mediatek.com> 12 + 13 + description: 14 + The MediaTek's MT8196 Pin controller is used to control SoC pins. 15 + 16 + properties: 17 + compatible: 18 + const: mediatek,mt8196-pinctrl 19 + 20 + reg: 21 + items: 22 + - description: gpio base 23 + - description: rt group IO 24 + - description: rm1 group IO 25 + - description: rm2 group IO 26 + - description: rb group IO 27 + - description: bm1 group IO 28 + - description: bm2 group IO 29 + - description: bm3 group IO 30 + - description: lt group IO 31 + - description: lm1 group IO 32 + - description: lm2 group IO 33 + - description: lb1 group IO 34 + - description: lb2 group IO 35 + - description: tm1 group IO 36 + - description: tm2 group IO 37 + - description: tm3 group IO 38 + - description: eint0 group IO 39 + - description: eint1 group IO 40 + - description: eint2 group IO 41 + - description: eint3 group IO 42 + - description: eint4 group IO 43 + 44 + reg-names: 45 + items: 46 + - const: base 47 + - const: rt 48 + - const: rm1 49 + - const: rm2 50 + - const: rb 51 + - const: bm1 52 + - const: bm2 53 + - const: bm3 54 + - const: lt 55 + - const: lm1 56 + - const: lm2 57 + - const: lb1 58 + - const: lb2 59 + - const: tm1 60 + - const: tm2 61 + - const: tm3 62 + - const: eint0 63 + - const: eint1 64 + - const: eint2 65 + - const: eint3 66 + - const: eint4 67 + 68 + interrupts: 69 + description: The interrupt outputs to sysirq. 70 + maxItems: 1 71 + 72 + interrupt-controller: true 73 + 74 + '#interrupt-cells': 75 + const: 2 76 + 77 + gpio-controller: true 78 + 79 + '#gpio-cells': 80 + description: 81 + Number of cells in GPIO specifier, should be two. The first cell is the 82 + pin number, the second cell is used to specify optional parameters which 83 + are defined in <dt-bindings/gpio/gpio.h>. 84 + const: 2 85 + 86 + gpio-ranges: 87 + maxItems: 1 88 + 89 + gpio-line-names: true 90 + 91 + # PIN CONFIGURATION NODES 92 + patternProperties: 93 + '-pins$': 94 + type: object 95 + additionalProperties: false 96 + 97 + patternProperties: 98 + '^pins': 99 + type: object 100 + $ref: /schemas/pinctrl/pincfg-node.yaml 101 + additionalProperties: false 102 + description: 103 + A pinctrl node should contain at least one subnode representing the 104 + pinctrl groups available on the machine. Each subnode will list the 105 + pins it needs, and how they should be configured, with regard to muxer 106 + configuration, pullups, drive strength, input enable/disable and input 107 + schmitt. 108 + 109 + properties: 110 + pinmux: 111 + description: 112 + Integer array, represents gpio pin number and mux setting. 113 + Supported pin number and mux varies for different SoCs, and are 114 + defined as macros in arch/arm64/boot/dts/mediatek/mt8196-pinfunc.h 115 + directly, for this SoC. 116 + 117 + drive-strength: 118 + enum: [2, 4, 6, 8, 10, 12, 14, 16] 119 + 120 + bias-pull-down: 121 + oneOf: 122 + - type: boolean 123 + - enum: [100, 101, 102, 103] 124 + description: mt8196 pull down PUPD/R0/R1 type define value. 125 + - enum: [75000, 5000] 126 + description: mt8196 pull down RSEL type si unit value(ohm). 127 + description: | 128 + For pull down type is normal, it doesn't need add R1R0 define 129 + and resistance value. 130 + For pull down type is PUPD/R0/R1 type, it can add R1R0 define to 131 + set different resistance. It can support "MTK_PUPD_SET_R1R0_00" & 132 + "MTK_PUPD_SET_R1R0_01" & "MTK_PUPD_SET_R1R0_10" & 133 + "MTK_PUPD_SET_R1R0_11" define in mt8196. 134 + For pull down type is PD/RSEL, it can add resistance value(ohm) 135 + to set different resistance by identifying property 136 + "mediatek,rsel-resistance-in-si-unit". It can support resistance 137 + value(ohm) "75000" & "5000" in mt8196. 138 + 139 + bias-pull-up: 140 + oneOf: 141 + - type: boolean 142 + - enum: [100, 101, 102, 103] 143 + description: mt8196 pull up PUPD/R0/R1 type define value. 144 + - enum: [1000, 1500, 2000, 3000, 4000, 5000, 75000] 145 + description: mt8196 pull up RSEL type si unit value(ohm). 146 + description: | 147 + For pull up type is normal, it don't need add R1R0 define 148 + and resistance value. 149 + For pull up type is PUPD/R0/R1 type, it can add R1R0 define to 150 + set different resistance. It can support "MTK_PUPD_SET_R1R0_00" & 151 + "MTK_PUPD_SET_R1R0_01" & "MTK_PUPD_SET_R1R0_10" & 152 + "MTK_PUPD_SET_R1R0_11" define in mt8196. 153 + For pull up type is PU/RSEL, it can add resistance value(ohm) 154 + to set different resistance by identifying property 155 + "mediatek,rsel-resistance-in-si-unit". It can support resistance 156 + value(ohm) "1000" & "1500" & "2000" & "3000" & "4000" & "5000" & 157 + "75000" in mt8196. 158 + 159 + bias-disable: true 160 + 161 + output-high: true 162 + 163 + output-low: true 164 + 165 + input-enable: true 166 + 167 + input-disable: true 168 + 169 + input-schmitt-enable: true 170 + 171 + input-schmitt-disable: true 172 + 173 + required: 174 + - pinmux 175 + 176 + required: 177 + - compatible 178 + - reg 179 + - interrupts 180 + - interrupt-controller 181 + - '#interrupt-cells' 182 + - gpio-controller 183 + - '#gpio-cells' 184 + - gpio-ranges 185 + 186 + additionalProperties: false 187 + 188 + examples: 189 + - | 190 + #include <dt-bindings/pinctrl/mt65xx.h> 191 + #include <dt-bindings/interrupt-controller/arm-gic.h> 192 + #define PINMUX_GPIO99__FUNC_SCL0 (MTK_PIN_NO(99) | 1) 193 + #define PINMUX_GPIO100__FUNC_SDA0 (MTK_PIN_NO(100) | 1) 194 + 195 + pio: pinctrl@1002d000 { 196 + compatible = "mediatek,mt8196-pinctrl"; 197 + reg = <0x1002d000 0x1000>, 198 + <0x12000000 0x1000>, 199 + <0x12020000 0x1000>, 200 + <0x12040000 0x1000>, 201 + <0x12060000 0x1000>, 202 + <0x12820000 0x1000>, 203 + <0x12840000 0x1000>, 204 + <0x12860000 0x1000>, 205 + <0x13000000 0x1000>, 206 + <0x13020000 0x1000>, 207 + <0x13040000 0x1000>, 208 + <0x130f0000 0x1000>, 209 + <0x13110000 0x1000>, 210 + <0x13800000 0x1000>, 211 + <0x13820000 0x1000>, 212 + <0x13860000 0x1000>, 213 + <0x12080000 0x1000>, 214 + <0x12880000 0x1000>, 215 + <0x13080000 0x1000>, 216 + <0x13880000 0x1000>, 217 + <0x1c54a000 0x1000>; 218 + reg-names = "base", "rt", "rm1", "rm2", "rb" , "bm1", 219 + "bm2", "bm3", "lt", "lm1", "lm2", "lb1", 220 + "lb2", "tm1", "tm2", "tm3", "eint0", "eint1", 221 + "eint2", "eint3", "eint4"; 222 + gpio-controller; 223 + #gpio-cells = <2>; 224 + gpio-ranges = <&pio 0 0 271>; 225 + interrupt-controller; 226 + interrupts = <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH 0>; 227 + #interrupt-cells = <2>; 228 + 229 + i2c0-pins { 230 + pins { 231 + pinmux = <PINMUX_GPIO99__FUNC_SCL0>, 232 + <PINMUX_GPIO100__FUNC_SDA0>; 233 + bias-disable; 234 + }; 235 + }; 236 + };
+1 -1
Documentation/devicetree/bindings/pinctrl/qcom,qcs615-tlmm.yaml
··· 110 110 <0x03c00000 0x300000>; 111 111 reg-names = "east", "west", "south"; 112 112 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; 113 - gpio-ranges = <&tlmm 0 0 123>; 113 + gpio-ranges = <&tlmm 0 0 124>; 114 114 gpio-controller; 115 115 #gpio-cells = <2>; 116 116 interrupt-controller;
+1 -1
Documentation/devicetree/bindings/pinctrl/qcom,qcs8300-tlmm.yaml
··· 106 106 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; 107 107 gpio-controller; 108 108 #gpio-cells = <2>; 109 - gpio-ranges = <&tlmm 0 0 133>; 109 + gpio-ranges = <&tlmm 0 0 134>; 110 110 interrupt-controller; 111 111 #interrupt-cells = <2>; 112 112
+18
Documentation/devicetree/bindings/pinctrl/spacemit,k1-pinctrl.yaml
··· 17 17 items: 18 18 - description: pinctrl io memory base 19 19 20 + clocks: 21 + items: 22 + - description: Functional Clock 23 + - description: Bus Clock 24 + 25 + clock-names: 26 + items: 27 + - const: func 28 + - const: bus 29 + 30 + resets: 31 + maxItems: 1 32 + 20 33 patternProperties: 21 34 '-cfg$': 22 35 type: object ··· 107 94 required: 108 95 - compatible 109 96 - reg 97 + - clocks 98 + - clock-names 110 99 111 100 additionalProperties: false 112 101 ··· 123 108 pinctrl@d401e000 { 124 109 compatible = "spacemit,k1-pinctrl"; 125 110 reg = <0x0 0xd401e000 0x0 0x400>; 111 + clocks = <&syscon_apbc 42>, 112 + <&syscon_apbc 94>; 113 + clock-names = "func", "bus"; 126 114 127 115 uart0_2_cfg: uart0-2-cfg { 128 116 uart0-2-pins {
+1 -3
drivers/pinctrl/Kconfig
··· 103 103 104 104 config PINCTRL_AT91 105 105 bool "AT91 pinctrl driver" 106 - depends on OF 107 - depends on ARCH_AT91 106 + depends on (OF && ARCH_AT91) || COMPILE_TEST 108 107 select PINMUX 109 108 select PINCONF 110 109 select GPIOLIB 111 - select OF_GPIO 112 110 select GPIOLIB_IRQCHIP 113 111 help 114 112 Say Y here to enable the at91 pinctrl driver
+5 -3
drivers/pinctrl/actions/pinctrl-owl.c
··· 598 598 return !!(val & BIT(offset)); 599 599 } 600 600 601 - static void owl_gpio_set(struct gpio_chip *chip, unsigned int offset, int value) 601 + static int owl_gpio_set(struct gpio_chip *chip, unsigned int offset, int value) 602 602 { 603 603 struct owl_pinctrl *pctrl = gpiochip_get_data(chip); 604 604 const struct owl_gpio_port *port; ··· 607 607 608 608 port = owl_gpio_get_port(pctrl, &offset); 609 609 if (WARN_ON(port == NULL)) 610 - return; 610 + return -ENODEV; 611 611 612 612 gpio_base = pctrl->base + port->offset; 613 613 614 614 raw_spin_lock_irqsave(&pctrl->lock, flags); 615 615 owl_gpio_update_reg(gpio_base + port->dat, offset, value); 616 616 raw_spin_unlock_irqrestore(&pctrl->lock, flags); 617 + 618 + return 0; 617 619 } 618 620 619 621 static int owl_gpio_direction_input(struct gpio_chip *chip, unsigned int offset) ··· 962 960 pctrl->chip.direction_input = owl_gpio_direction_input; 963 961 pctrl->chip.direction_output = owl_gpio_direction_output; 964 962 pctrl->chip.get = owl_gpio_get; 965 - pctrl->chip.set = owl_gpio_set; 963 + pctrl->chip.set_rv = owl_gpio_set; 966 964 pctrl->chip.request = owl_gpio_request; 967 965 pctrl->chip.free = owl_gpio_free; 968 966
+6 -3
drivers/pinctrl/bcm/pinctrl-bcm2835.c
··· 356 356 return GPIO_LINE_DIRECTION_IN; 357 357 } 358 358 359 - static void bcm2835_gpio_set(struct gpio_chip *chip, unsigned offset, int value) 359 + static int bcm2835_gpio_set(struct gpio_chip *chip, unsigned int offset, 360 + int value) 360 361 { 361 362 struct bcm2835_pinctrl *pc = gpiochip_get_data(chip); 362 363 363 364 bcm2835_gpio_set_bit(pc, value ? GPSET0 : GPCLR0, offset); 365 + 366 + return 0; 364 367 } 365 368 366 369 static int bcm2835_gpio_direction_output(struct gpio_chip *chip, ··· 397 394 .direction_output = bcm2835_gpio_direction_output, 398 395 .get_direction = bcm2835_gpio_get_direction, 399 396 .get = bcm2835_gpio_get, 400 - .set = bcm2835_gpio_set, 397 + .set_rv = bcm2835_gpio_set, 401 398 .set_config = gpiochip_generic_config, 402 399 .base = -1, 403 400 .ngpio = BCM2835_NUM_GPIOS, ··· 414 411 .direction_output = bcm2835_gpio_direction_output, 415 412 .get_direction = bcm2835_gpio_get_direction, 416 413 .get = bcm2835_gpio_get, 417 - .set = bcm2835_gpio_set, 414 + .set_rv = bcm2835_gpio_set, 418 415 .set_config = gpiochip_generic_config, 419 416 .base = -1, 420 417 .ngpio = BCM2711_NUM_GPIOS,
+4 -2
drivers/pinctrl/bcm/pinctrl-iproc-gpio.c
··· 390 390 return GPIO_LINE_DIRECTION_IN; 391 391 } 392 392 393 - static void iproc_gpio_set(struct gpio_chip *gc, unsigned gpio, int val) 393 + static int iproc_gpio_set(struct gpio_chip *gc, unsigned int gpio, int val) 394 394 { 395 395 struct iproc_gpio *chip = gpiochip_get_data(gc); 396 396 unsigned long flags; ··· 400 400 raw_spin_unlock_irqrestore(&chip->lock, flags); 401 401 402 402 dev_dbg(chip->dev, "gpio:%u set, value:%d\n", gpio, val); 403 + 404 + return 0; 403 405 } 404 406 405 407 static int iproc_gpio_get(struct gpio_chip *gc, unsigned gpio) ··· 865 863 gc->direction_input = iproc_gpio_direction_input; 866 864 gc->direction_output = iproc_gpio_direction_output; 867 865 gc->get_direction = iproc_gpio_get_direction; 868 - gc->set = iproc_gpio_set; 866 + gc->set_rv = iproc_gpio_set; 869 867 gc->get = iproc_gpio_get; 870 868 871 869 chip->pinmux_is_supported = of_property_read_bool(dev->of_node,
+4 -2
drivers/pinctrl/bcm/pinctrl-nsp-gpio.c
··· 310 310 return !val; 311 311 } 312 312 313 - static void nsp_gpio_set(struct gpio_chip *gc, unsigned gpio, int val) 313 + static int nsp_gpio_set(struct gpio_chip *gc, unsigned int gpio, int val) 314 314 { 315 315 struct nsp_gpio *chip = gpiochip_get_data(gc); 316 316 unsigned long flags; ··· 320 320 raw_spin_unlock_irqrestore(&chip->lock, flags); 321 321 322 322 dev_dbg(chip->dev, "gpio:%u set, value:%d\n", gpio, val); 323 + 324 + return 0; 323 325 } 324 326 325 327 static int nsp_gpio_get(struct gpio_chip *gc, unsigned gpio) ··· 656 654 gc->direction_input = nsp_gpio_direction_input; 657 655 gc->direction_output = nsp_gpio_direction_output; 658 656 gc->get_direction = nsp_gpio_get_direction; 659 - gc->set = nsp_gpio_set; 657 + gc->set_rv = nsp_gpio_set; 660 658 gc->get = nsp_gpio_get; 661 659 662 660 /* optional GPIO interrupt support */
+29
drivers/pinctrl/core.c
··· 1530 1530 } 1531 1531 EXPORT_SYMBOL_GPL(pinctrl_unregister_mappings); 1532 1532 1533 + static void devm_pinctrl_unregister_mappings(void *maps) 1534 + { 1535 + pinctrl_unregister_mappings(maps); 1536 + } 1537 + 1538 + /** 1539 + * devm_pinctrl_register_mappings() - Resource managed pinctrl_register_mappings() 1540 + * @dev: device for which mappings are registered 1541 + * @maps: the pincontrol mappings table to register. Note the pinctrl-core 1542 + * keeps a reference to the passed in maps, so they should _not_ be 1543 + * marked with __initdata. 1544 + * @num_maps: the number of maps in the mapping table 1545 + * 1546 + * Returns: 0 on success, or negative errno on failure. 1547 + */ 1548 + int devm_pinctrl_register_mappings(struct device *dev, 1549 + const struct pinctrl_map *maps, 1550 + unsigned int num_maps) 1551 + { 1552 + int ret; 1553 + 1554 + ret = pinctrl_register_mappings(maps, num_maps); 1555 + if (ret) 1556 + return ret; 1557 + 1558 + return devm_add_action_or_reset(dev, devm_pinctrl_unregister_mappings, (void *)maps); 1559 + } 1560 + EXPORT_SYMBOL_GPL(devm_pinctrl_register_mappings); 1561 + 1533 1562 /** 1534 1563 * pinctrl_force_sleep() - turn a given controller device into sleep state 1535 1564 * @pctldev: pin controller device
+11
drivers/pinctrl/freescale/Kconfig
··· 20 20 21 21 config PINCTRL_IMX_SCU 22 22 tristate 23 + depends on OF 23 24 depends on IMX_SCU || COMPILE_TEST 25 + default IMX_SCU 24 26 select PINCTRL_IMX 25 27 26 28 config PINCTRL_IMX1_CORE ··· 161 159 tristate "IMX8MM pinctrl driver" 162 160 depends on OF 163 161 depends on SOC_IMX8M || COMPILE_TEST 162 + default SOC_IMX8M 164 163 select PINCTRL_IMX 165 164 help 166 165 Say Y here to enable the imx8mm pinctrl driver ··· 170 167 tristate "IMX8MN pinctrl driver" 171 168 depends on OF 172 169 depends on SOC_IMX8M || COMPILE_TEST 170 + default SOC_IMX8M 173 171 select PINCTRL_IMX 174 172 help 175 173 Say Y here to enable the imx8mn pinctrl driver ··· 179 175 tristate "IMX8MP pinctrl driver" 180 176 depends on OF 181 177 depends on SOC_IMX8M || COMPILE_TEST 178 + default SOC_IMX8M 182 179 select PINCTRL_IMX 183 180 help 184 181 Say Y here to enable the imx8mp pinctrl driver ··· 188 183 tristate "IMX8MQ pinctrl driver" 189 184 depends on OF 190 185 depends on SOC_IMX8M || COMPILE_TEST 186 + default SOC_IMX8M 191 187 select PINCTRL_IMX 192 188 help 193 189 Say Y here to enable the imx8mq pinctrl driver ··· 197 191 tristate "IMX8QM pinctrl driver" 198 192 depends on OF 199 193 depends on (IMX_SCU && ARCH_MXC && ARM64) || COMPILE_TEST 194 + default ARCH_MXC 200 195 select PINCTRL_IMX_SCU 201 196 help 202 197 Say Y here to enable the imx8qm pinctrl driver ··· 206 199 tristate "IMX8QXP pinctrl driver" 207 200 depends on OF 208 201 depends on (IMX_SCU && ARCH_MXC && ARM64) || COMPILE_TEST 202 + default ARCH_MXC 209 203 select PINCTRL_IMX_SCU 210 204 help 211 205 Say Y here to enable the imx8qxp pinctrl driver ··· 215 207 tristate "IMX8DXL pinctrl driver" 216 208 depends on OF 217 209 depends on (IMX_SCU && ARCH_MXC && ARM64) || COMPILE_TEST 210 + default ARCH_MXC 218 211 select PINCTRL_IMX_SCU 219 212 help 220 213 Say Y here to enable the imx8dxl pinctrl driver ··· 224 215 tristate "IMX8ULP pinctrl driver" 225 216 depends on OF 226 217 depends on ARCH_MXC || COMPILE_TEST 218 + default ARCH_MXC 227 219 select PINCTRL_IMX 228 220 help 229 221 Say Y here to enable the imx8ulp pinctrl driver ··· 249 239 tristate "IMX93 pinctrl driver" 250 240 depends on OF 251 241 depends on ARCH_MXC || COMPILE_TEST 242 + default SOC_IMX9 252 243 select PINCTRL_IMX 253 244 help 254 245 Say Y here to enable the imx93 pinctrl driver
+4
drivers/pinctrl/freescale/pinctrl-imx-scmi.c
··· 51 51 #define IMX_SCMI_PIN_SIZE 24 52 52 53 53 #define IMX95_DAISY_OFF 0x408 54 + #define IMX94_DAISY_OFF 0x608 54 55 55 56 static int pinctrl_scmi_imx_dt_node_to_map(struct pinctrl_dev *pctldev, 56 57 struct device_node *np, ··· 71 70 if (!daisy_off) { 72 71 if (of_machine_is_compatible("fsl,imx95")) { 73 72 daisy_off = IMX95_DAISY_OFF; 73 + } else if (of_machine_is_compatible("fsl,imx94")) { 74 + daisy_off = IMX94_DAISY_OFF; 74 75 } else { 75 76 dev_err(pctldev->dev, "platform not support scmi pinctrl\n"); 76 77 return -EINVAL; ··· 292 289 293 290 static const char * const scmi_pinctrl_imx_allowlist[] = { 294 291 "fsl,imx95", 292 + "fsl,imx94", 295 293 NULL 296 294 }; 297 295
+22
drivers/pinctrl/mediatek/Kconfig
··· 181 181 default ARM64 && ARCH_MEDIATEK 182 182 select PINCTRL_MTK_PARIS 183 183 184 + config PINCTRL_MT6893 185 + bool "MediaTek Dimensity MT6893 pin control" 186 + depends on OF 187 + depends on ARM64 || COMPILE_TEST 188 + default ARM64 && ARCH_MEDIATEK 189 + select PINCTRL_MTK_PARIS 190 + help 191 + Say yes here to support pin controller and gpio driver 192 + on the MediaTek Dimensity 1200 MT6893 Smartphone SoC. 193 + 184 194 config PINCTRL_MT7622 185 195 bool "MediaTek MT7622 pin control" 186 196 depends on OF ··· 272 262 depends on ARM64 || COMPILE_TEST 273 263 default ARM64 && ARCH_MEDIATEK 274 264 select PINCTRL_MTK_PARIS 265 + 266 + config PINCTRL_MT8196 267 + bool "MediaTek MT8196 pin control" 268 + depends on OF 269 + depends on ARM64 || COMPILE_TEST 270 + default ARM64 && ARCH_MEDIATEK 271 + select PINCTRL_MTK_PARIS 272 + help 273 + Say yes here to support pin controller and gpio driver 274 + on MediaTek MT8196 SoC. 275 + In MTK platform, we support virtual gpio and use it to 276 + map specific eint which doesn't have real gpio pin. 275 277 276 278 config PINCTRL_MT8365 277 279 bool "MediaTek MT8365 pin control"
+2
drivers/pinctrl/mediatek/Makefile
··· 23 23 obj-$(CONFIG_PINCTRL_MT6779) += pinctrl-mt6779.o 24 24 obj-$(CONFIG_PINCTRL_MT6795) += pinctrl-mt6795.o 25 25 obj-$(CONFIG_PINCTRL_MT6797) += pinctrl-mt6797.o 26 + obj-$(CONFIG_PINCTRL_MT6893) += pinctrl-mt6893.o 26 27 obj-$(CONFIG_PINCTRL_MT7622) += pinctrl-mt7622.o 27 28 obj-$(CONFIG_PINCTRL_MT7623) += pinctrl-mt7623.o 28 29 obj-$(CONFIG_PINCTRL_MT7629) += pinctrl-mt7629.o ··· 37 36 obj-$(CONFIG_PINCTRL_MT8188) += pinctrl-mt8188.o 38 37 obj-$(CONFIG_PINCTRL_MT8192) += pinctrl-mt8192.o 39 38 obj-$(CONFIG_PINCTRL_MT8195) += pinctrl-mt8195.o 39 + obj-$(CONFIG_PINCTRL_MT8196) += pinctrl-mt8196.o 40 40 obj-$(CONFIG_PINCTRL_MT8365) += pinctrl-mt8365.o 41 41 obj-$(CONFIG_PINCTRL_MT8516) += pinctrl-mt8516.o 42 42 obj-$(CONFIG_PINCTRL_MT6397) += pinctrl-mt6397.o
+13 -17
drivers/pinctrl/mediatek/mtk-eint.c
··· 22 22 #include <linux/platform_device.h> 23 23 24 24 #include "mtk-eint.h" 25 - #include "pinctrl-mtk-common-v2.h" 26 25 27 26 #define MTK_EINT_EDGE_SENSITIVE 0 28 27 #define MTK_EINT_LEVEL_SENSITIVE 1 ··· 504 505 } 505 506 EXPORT_SYMBOL_GPL(mtk_eint_find_irq); 506 507 507 - int mtk_eint_do_init(struct mtk_eint *eint) 508 + int mtk_eint_do_init(struct mtk_eint *eint, struct mtk_eint_pin *eint_pin) 508 509 { 509 - unsigned int size, i, port, inst = 0; 510 - struct mtk_pinctrl *hw = (struct mtk_pinctrl *)eint->pctl; 510 + unsigned int size, i, port, virq, inst = 0; 511 511 512 512 /* If clients don't assign a specific regs, let's use generic one */ 513 513 if (!eint->regs) ··· 517 519 if (!eint->base_pin_num) 518 520 return -ENOMEM; 519 521 520 - if (eint->nbase == 1) { 522 + if (eint_pin) { 523 + eint->pins = eint_pin; 524 + for (i = 0; i < eint->hw->ap_num; i++) { 525 + inst = eint->pins[i].instance; 526 + if (inst >= eint->nbase) 527 + continue; 528 + eint->base_pin_num[inst]++; 529 + } 530 + } else { 521 531 size = eint->hw->ap_num * sizeof(struct mtk_eint_pin); 522 532 eint->pins = devm_kmalloc(eint->dev, size, GFP_KERNEL); 523 533 if (!eint->pins) ··· 536 530 eint->pins[i].instance = inst; 537 531 eint->pins[i].index = i; 538 532 eint->pins[i].debounce = (i < eint->hw->db_cnt) ? 1 : 0; 539 - } 540 - } 541 - 542 - if (hw && hw->soc && hw->soc->eint_pin) { 543 - eint->pins = hw->soc->eint_pin; 544 - for (i = 0; i < eint->hw->ap_num; i++) { 545 - inst = eint->pins[i].instance; 546 - if (inst >= eint->nbase) 547 - continue; 548 - eint->base_pin_num[inst]++; 549 533 } 550 534 } 551 535 ··· 579 583 if (inst >= eint->nbase) 580 584 continue; 581 585 eint->pin_list[inst][eint->pins[i].index] = i; 582 - int virq = irq_create_mapping(eint->domain, i); 586 + virq = irq_create_mapping(eint->domain, i); 583 587 irq_set_chip_and_handler(virq, &mtk_eint_irq_chip, 584 588 handle_level_irq); 585 589 irq_set_chip_data(virq, eint); ··· 605 609 err_wake_mask: 606 610 devm_kfree(eint->dev, eint->pin_list); 607 611 err_pin_list: 608 - if (eint->nbase == 1) 612 + if (!eint_pin) 609 613 devm_kfree(eint->dev, eint->pins); 610 614 err_pins: 611 615 devm_kfree(eint->dev, eint->base_pin_num);
+4 -3
drivers/pinctrl/mediatek/mtk-eint.h
··· 66 66 struct mtk_eint { 67 67 struct device *dev; 68 68 void __iomem **base; 69 - u8 nbase; 69 + int nbase; 70 70 u16 *base_pin_num; 71 71 struct irq_domain *domain; 72 72 int irq; ··· 88 88 }; 89 89 90 90 #if IS_ENABLED(CONFIG_EINT_MTK) 91 - int mtk_eint_do_init(struct mtk_eint *eint); 91 + int mtk_eint_do_init(struct mtk_eint *eint, struct mtk_eint_pin *eint_pin); 92 92 int mtk_eint_do_suspend(struct mtk_eint *eint); 93 93 int mtk_eint_do_resume(struct mtk_eint *eint); 94 94 int mtk_eint_set_debounce(struct mtk_eint *eint, unsigned long eint_n, ··· 96 96 int mtk_eint_find_irq(struct mtk_eint *eint, unsigned long eint_n); 97 97 98 98 #else 99 - static inline int mtk_eint_do_init(struct mtk_eint *eint) 99 + static inline int mtk_eint_do_init(struct mtk_eint *eint, 100 + struct mtk_eint_pin *eint_pin) 100 101 { 101 102 return -EOPNOTSUPP; 102 103 }
+8 -11
drivers/pinctrl/mediatek/pinctrl-airoha.c
··· 2247 2247 } 2248 2248 2249 2249 /* gpio callbacks */ 2250 - static void airoha_gpio_set(struct gpio_chip *chip, unsigned int gpio, 2251 - int value) 2250 + static int airoha_gpio_set(struct gpio_chip *chip, unsigned int gpio, 2251 + int value) 2252 2252 { 2253 2253 struct airoha_pinctrl *pinctrl = gpiochip_get_data(chip); 2254 2254 u32 offset = gpio % AIROHA_PIN_BANK_SIZE; 2255 2255 u8 index = gpio / AIROHA_PIN_BANK_SIZE; 2256 2256 2257 - regmap_update_bits(pinctrl->regmap, pinctrl->gpiochip.data[index], 2258 - BIT(offset), value ? BIT(offset) : 0); 2257 + return regmap_update_bits(pinctrl->regmap, 2258 + pinctrl->gpiochip.data[index], 2259 + BIT(offset), value ? BIT(offset) : 0); 2259 2260 } 2260 2261 2261 2262 static int airoha_gpio_get(struct gpio_chip *chip, unsigned int gpio) ··· 2281 2280 if (err) 2282 2281 return err; 2283 2282 2284 - airoha_gpio_set(chip, gpio, value); 2285 - 2286 - return 0; 2283 + return airoha_gpio_set(chip, gpio, value); 2287 2284 } 2288 2285 2289 2286 /* irq callbacks */ ··· 2418 2419 gc->free = gpiochip_generic_free; 2419 2420 gc->direction_input = pinctrl_gpio_direction_input; 2420 2421 gc->direction_output = airoha_gpio_direction_output; 2421 - gc->set = airoha_gpio_set; 2422 + gc->set_rv = airoha_gpio_set; 2422 2423 gc->get = airoha_gpio_get; 2423 2424 gc->base = -1; 2424 2425 gc->ngpio = AIROHA_NUM_PINS; ··· 2714 2715 if (pin < 0) 2715 2716 return pin; 2716 2717 2717 - airoha_gpio_set(&pinctrl->gpiochip.chip, pin, value); 2718 - 2719 - return 0; 2718 + return airoha_gpio_set(&pinctrl->gpiochip.chip, pin, value); 2720 2719 } 2721 2720 2722 2721 static int airoha_pinconf_set(struct pinctrl_dev *pctrl_dev,
+10 -8
drivers/pinctrl/mediatek/pinctrl-moore.c
··· 496 496 return !!value; 497 497 } 498 498 499 - static void mtk_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value) 499 + static int mtk_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value) 500 500 { 501 501 struct mtk_pinctrl *hw = gpiochip_get_data(chip); 502 502 const struct mtk_pin_desc *desc; 503 503 504 504 desc = (const struct mtk_pin_desc *)&hw->soc->pins[gpio]; 505 - if (!desc->name) { 506 - dev_err(hw->dev, "Failed to set gpio %d\n", gpio); 507 - return; 508 - } 505 + if (!desc->name) 506 + return -ENOTSUPP; 509 507 510 - mtk_hw_set_value(hw, desc, PINCTRL_PIN_REG_DO, !!value); 508 + return mtk_hw_set_value(hw, desc, PINCTRL_PIN_REG_DO, !!value); 511 509 } 512 510 513 511 static int mtk_gpio_direction_output(struct gpio_chip *chip, unsigned int gpio, 514 512 int value) 515 513 { 516 - mtk_gpio_set(chip, gpio, value); 514 + int ret; 515 + 516 + ret = mtk_gpio_set(chip, gpio, value); 517 + if (ret) 518 + return ret; 517 519 518 520 return pinctrl_gpio_direction_output(chip, gpio); 519 521 } ··· 569 567 chip->direction_input = pinctrl_gpio_direction_input; 570 568 chip->direction_output = mtk_gpio_direction_output; 571 569 chip->get = mtk_gpio_get; 572 - chip->set = mtk_gpio_set; 570 + chip->set_rv = mtk_gpio_set; 573 571 chip->to_irq = mtk_gpio_to_irq; 574 572 chip->set_config = mtk_gpio_set_config; 575 573 chip->base = -1;
+879
drivers/pinctrl/mediatek/pinctrl-mt6893.c
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + /* 3 + * Copyright (C) 2019 MediaTek Inc. 4 + * Copyright (C) 2024 Collabora Ltd. 5 + * AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> 6 + */ 7 + 8 + #include <linux/module.h> 9 + #include "pinctrl-mtk-mt6893.h" 10 + #include "pinctrl-paris.h" 11 + 12 + #define PIN_FIELD_BASE(s_pin, e_pin, i_base, s_addr, x_addrs, s_bit, x_bits) \ 13 + PIN_FIELD_CALC(s_pin, e_pin, i_base, s_addr, x_addrs, s_bit, x_bits, \ 14 + 32, 0) 15 + 16 + #define PINS_FIELD_BASE(s_pin, e_pin, i_base, s_addr, x_addrs, s_bit, x_bits) \ 17 + PIN_FIELD_CALC(s_pin, e_pin, i_base, s_addr, x_addrs, s_bit, x_bits, \ 18 + 32, 1) 19 + 20 + static const struct mtk_pin_field_calc mt6893_pin_mode_range[] = { 21 + PIN_FIELD(0, 219, 0x0300, 0x10, 0, 4), 22 + }; 23 + 24 + static const struct mtk_pin_field_calc mt6893_pin_dir_range[] = { 25 + PIN_FIELD(0, 219, 0x0000, 0x10, 0, 1), 26 + }; 27 + 28 + static const struct mtk_pin_field_calc mt6893_pin_di_range[] = { 29 + PIN_FIELD(0, 219, 0x0200, 0x10, 0, 1), 30 + }; 31 + 32 + static const struct mtk_pin_field_calc mt6893_pin_do_range[] = { 33 + PIN_FIELD(0, 219, 0x0100, 0x10, 0, 1), 34 + }; 35 + 36 + static const struct mtk_pin_field_calc mt6893_pin_smt_range[] = { 37 + PINS_FIELD_BASE(0, 9, 2, 0x00f0, 0x10, 7, 1), 38 + PINS_FIELD_BASE(10, 15, 1, 0x0090, 0x10, 4, 1), 39 + PIN_FIELD_BASE(16, 17, 5, 0x00c0, 0x10, 8, 1), 40 + PINS_FIELD_BASE(18, 25, 7, 0x00f0, 0x10, 1, 1), 41 + PINS_FIELD_BASE(26, 30, 6, 0x00e0, 0x10, 6, 1), 42 + PINS_FIELD_BASE(31, 35, 6, 0x00e0, 0x10, 2, 1), 43 + PIN_FIELD_BASE(36, 36, 6, 0x00e0, 0x10, 16, 1), 44 + PINS_FIELD_BASE(37, 39, 6, 0x00e0, 0x10, 15, 1), 45 + PIN_FIELD_BASE(40, 41, 6, 0x00e0, 0x10, 0, 1), 46 + PIN_FIELD_BASE(42, 42, 6, 0x00e0, 0x10, 5, 1), 47 + PIN_FIELD_BASE(43, 44, 6, 0x00e0, 0x10, 3, 1), 48 + PIN_FIELD_BASE(45, 45, 6, 0x00e0, 0x10, 12, 1), 49 + PIN_FIELD_BASE(46, 46, 6, 0x00e0, 0x10, 14, 1), 50 + PIN_FIELD_BASE(47, 47, 6, 0x00e0, 0x10, 13, 1), 51 + PIN_FIELD_BASE(48, 49, 6, 0x00e0, 0x10, 10, 1), 52 + PIN_FIELD_BASE(50, 50, 6, 0x00e0, 0x10, 9, 1), 53 + PIN_FIELD_BASE(51, 52, 3, 0x0090, 0x10, 6, 1), 54 + PINS_FIELD_BASE(53, 56, 3, 0x0090, 0x10, 8, 1), 55 + PIN_FIELD_BASE(57, 60, 3, 0x0090, 0x10, 2, 1), 56 + PIN_FIELD_BASE(61, 61, 3, 0x0090, 0x10, 1, 1), 57 + PIN_FIELD_BASE(62, 62, 4, 0x0050, 0x10, 1, 1), 58 + PINS_FIELD_BASE(63, 73, 3, 0x0090, 0x10, 0, 1), 59 + PINS_FIELD_BASE(74, 84, 4, 0x0050, 0x10, 0, 1), 60 + PIN_FIELD_BASE(85, 86, 4, 0x0050, 0x10, 4, 1), 61 + PIN_FIELD_BASE(87, 88, 4, 0x0050, 0x10, 2, 1), 62 + PIN_FIELD_BASE(89, 90, 2, 0x00f0, 0x10, 26, 1), 63 + PIN_FIELD_BASE(91, 91, 2, 0x00f0, 0x10, 0, 1), 64 + PINS_FIELD_BASE(92, 95, 2, 0x0100, 0x10, 0, 1), 65 + PIN_FIELD_BASE(96, 96, 2, 0x00f0, 0x10, 30, 1), 66 + PIN_FIELD_BASE(97, 97, 2, 0x00f0, 0x10, 28, 1), 67 + PIN_FIELD_BASE(98, 98, 2, 0x00f0, 0x10, 31, 1), 68 + PINS_FIELD_BASE(99, 102, 2, 0x00f0, 0x10, 29, 1), 69 + PINS_FIELD_BASE(103, 105, 2, 0x00f0, 0x10, 24, 1), 70 + PIN_FIELD_BASE(106, 106, 2, 0x00f0, 0x10, 25, 1), 71 + PIN_FIELD_BASE(107, 108, 2, 0x00f0, 0x10, 5, 1), 72 + PINS_FIELD_BASE(109, 113, 2, 0x00f0, 0x10, 8, 1), 73 + PINS_FIELD_BASE(114, 116, 2, 0x00f0, 0x10, 16, 1), 74 + PIN_FIELD_BASE(117, 117, 2, 0x00f0, 0x10, 17, 1), 75 + PIN_FIELD_BASE(118, 118, 2, 0x00f0, 0x10, 10, 1), 76 + PIN_FIELD_BASE(119, 119, 2, 0x00f0, 0x10, 18, 1), 77 + PIN_FIELD_BASE(120, 120, 2, 0x00f0, 0x10, 15, 1), 78 + PIN_FIELD_BASE(121, 121, 2, 0x00f0, 0x10, 23, 1), 79 + PIN_FIELD_BASE(122, 122, 2, 0x00f0, 0x10, 14, 1), 80 + PIN_FIELD_BASE(123, 123, 2, 0x00f0, 0x10, 22, 1), 81 + PIN_FIELD_BASE(124, 124, 2, 0x00f0, 0x10, 13, 1), 82 + PIN_FIELD_BASE(125, 125, 2, 0x00f0, 0x10, 21, 1), 83 + PINS_FIELD_BASE(126, 129, 2, 0x00f0, 0x10, 9, 1), 84 + PINS_FIELD_BASE(130, 135, 2, 0x00f0, 0x10, 4, 1), 85 + PIN_FIELD_BASE(136, 138, 2, 0x00f0, 0x10, 1, 1), 86 + PIN_FIELD_BASE(139, 139, 2, 0x00f0, 0x10, 12, 1), 87 + PIN_FIELD_BASE(140, 140, 2, 0x00f0, 0x10, 20, 1), 88 + PIN_FIELD_BASE(141, 141, 2, 0x00f0, 0x10, 11, 1), 89 + PIN_FIELD_BASE(142, 142, 2, 0x00f0, 0x10, 19, 1), 90 + PINS_FIELD_BASE(143, 148, 1, 0x0090, 0x10, 3, 1), 91 + PIN_FIELD_BASE(149, 151, 1, 0x0090, 0x10, 0, 1), 92 + PINS_FIELD_BASE(152, 155, 5, 0x00c0, 0x10, 10, 1), 93 + PIN_FIELD_BASE(156, 156, 5, 0x00c0, 0x10, 14, 1), 94 + PINS_FIELD_BASE(157, 159, 5, 0x00c0, 0x10, 13, 1), 95 + PIN_FIELD_BASE(160, 161, 5, 0x00c0, 0x10, 11, 1), 96 + PINS_FIELD_BASE(162, 171, 5, 0x00c0, 0x10, 0, 1), 97 + PIN_FIELD_BASE(172, 173, 5, 0x00c0, 0x10, 4, 1), 98 + PIN_FIELD_BASE(174, 174, 5, 0x00c0, 0x10, 3, 1), 99 + PIN_FIELD_BASE(175, 175, 5, 0x00c0, 0x10, 6, 1), 100 + PIN_FIELD_BASE(176, 177, 5, 0x00c0, 0x10, 1, 1), 101 + PINS_FIELD_BASE(178, 182, 5, 0x00c0, 0x10, 7, 1), 102 + PIN_FIELD_BASE(183, 183, 7, 0x00f0, 0x10, 3, 1), 103 + PINS_FIELD_BASE(184, 190, 7, 0x00f0, 0x10, 4, 1), 104 + PIN_FIELD_BASE(191, 191, 7, 0x00f0, 0x10, 5, 1), 105 + PIN_FIELD_BASE(192, 192, 7, 0x00f0, 0x10, 2, 1), 106 + PIN_FIELD_BASE(193, 193, 7, 0x00f0, 0x10, 4, 1), 107 + PIN_FIELD_BASE(194, 194, 7, 0x00f0, 0x10, 6, 1), 108 + PIN_FIELD_BASE(195, 195, 7, 0x00f0, 0x10, 12, 1), 109 + PINS_FIELD_BASE(196, 199, 7, 0x00f0, 0x10, 0, 1), 110 + PIN_FIELD_BASE(200, 200, 7, 0x00f0, 0x10, 11, 1), 111 + PIN_FIELD_BASE(201, 201, 7, 0x00f0, 0x10, 14, 1), 112 + PIN_FIELD_BASE(202, 202, 7, 0x00f0, 0x10, 10, 1), 113 + PIN_FIELD_BASE(203, 203, 7, 0x00f0, 0x10, 13, 1), 114 + PIN_FIELD_BASE(204, 205, 6, 0x00e0, 0x10, 7, 1), 115 + PIN_FIELD_BASE(206, 208, 7, 0x00f0, 0x10, 15, 1), 116 + PINS_FIELD_BASE(209, 211, 7, 0x00f0, 0x10, 7, 1), 117 + PIN_FIELD_BASE(212, 213, 7, 0x00f0, 0x10, 8, 1), 118 + PINS_FIELD_BASE(214, 219, 7, 0x00f0, 0x10, 0, 1), 119 + }; 120 + 121 + static const struct mtk_pin_field_calc mt6893_pin_ies_range[] = { 122 + PIN_FIELD_BASE(0, 9, 2, 0x0060, 0x10, 12, 1), 123 + PIN_FIELD_BASE(10, 15, 1, 0x0020, 0x10, 9, 1), 124 + PIN_FIELD_BASE(16, 17, 5, 0x0030, 0x10, 21, 1), 125 + PIN_FIELD_BASE(18, 25, 7, 0x0050, 0x10, 10, 1), 126 + PIN_FIELD_BASE(26, 30, 6, 0x0040, 0x10, 10, 1), 127 + PIN_FIELD_BASE(31, 31, 6, 0x0040, 0x10, 6, 1), 128 + PIN_FIELD_BASE(32, 32, 6, 0x0040, 0x10, 3, 1), 129 + PIN_FIELD_BASE(33, 33, 6, 0x0040, 0x10, 5, 1), 130 + PIN_FIELD_BASE(34, 34, 6, 0x0040, 0x10, 2, 1), 131 + PIN_FIELD_BASE(35, 35, 6, 0x0040, 0x10, 4, 1), 132 + PIN_FIELD_BASE(36, 39, 6, 0x0040, 0x10, 23, 1), 133 + PIN_FIELD_BASE(40, 41, 6, 0x0040, 0x10, 0, 1), 134 + PIN_FIELD_BASE(42, 42, 6, 0x0040, 0x10, 9, 1), 135 + PIN_FIELD_BASE(43, 44, 6, 0x0040, 0x10, 7, 1), 136 + PIN_FIELD_BASE(45, 45, 6, 0x0040, 0x10, 20, 1), 137 + PIN_FIELD_BASE(46, 46, 6, 0x0040, 0x10, 22, 1), 138 + PIN_FIELD_BASE(47, 47, 6, 0x0040, 0x10, 21, 1), 139 + PIN_FIELD_BASE(48, 49, 6, 0x0040, 0x10, 18, 1), 140 + PIN_FIELD_BASE(50, 50, 6, 0x0040, 0x10, 17, 1), 141 + PIN_FIELD_BASE(51, 52, 3, 0x0020, 0x10, 16, 1), 142 + PIN_FIELD_BASE(53, 53, 3, 0x0020, 0x10, 21, 1), 143 + PIN_FIELD_BASE(54, 54, 3, 0x0020, 0x10, 18, 1), 144 + PIN_FIELD_BASE(55, 55, 3, 0x0020, 0x10, 20, 1), 145 + PIN_FIELD_BASE(56, 56, 3, 0x0020, 0x10, 19, 1), 146 + PIN_FIELD_BASE(57, 60, 3, 0x0020, 0x10, 12, 1), 147 + PIN_FIELD_BASE(61, 61, 3, 0x0020, 0x10, 11, 1), 148 + PIN_FIELD_BASE(62, 62, 4, 0x0010, 0x10, 11, 1), 149 + PIN_FIELD_BASE(63, 64, 3, 0x0020, 0x10, 0, 1), 150 + PIN_FIELD_BASE(65, 72, 3, 0x0020, 0x10, 3, 1), 151 + PIN_FIELD_BASE(73, 73, 3, 0x0020, 0x10, 2, 1), 152 + PIN_FIELD_BASE(74, 84, 4, 0x0010, 0x10, 0, 1), 153 + PIN_FIELD_BASE(85, 86, 4, 0x0010, 0x10, 14, 1), 154 + PIN_FIELD_BASE(87, 88, 4, 0x0010, 0x10, 12, 1), 155 + PIN_FIELD_BASE(89, 90, 2, 0x0070, 0x10, 19, 1), 156 + PIN_FIELD_BASE(91, 91, 2, 0x0060, 0x10, 0, 1), 157 + PIN_FIELD_BASE(92, 92, 2, 0x0070, 0x10, 28, 1), 158 + PIN_FIELD_BASE(93, 93, 2, 0x0070, 0x10, 30, 1), 159 + PIN_FIELD_BASE(94, 94, 2, 0x0070, 0x10, 29, 1), 160 + PIN_FIELD_BASE(95, 95, 2, 0x0070, 0x10, 31, 1), 161 + PIN_FIELD_BASE(96, 96, 2, 0x0070, 0x10, 26, 1), 162 + PIN_FIELD_BASE(97, 97, 2, 0x0070, 0x10, 21, 1), 163 + PIN_FIELD_BASE(98, 98, 2, 0x0070, 0x10, 27, 1), 164 + PIN_FIELD_BASE(99, 102, 2, 0x0070, 0x10, 22, 1), 165 + PIN_FIELD_BASE(103, 103, 2, 0x0070, 0x10, 17, 1), 166 + PIN_FIELD_BASE(104, 104, 2, 0x0070, 0x10, 16, 1), 167 + PIN_FIELD_BASE(105, 105, 2, 0x0070, 0x10, 18, 1), 168 + PIN_FIELD_BASE(106, 106, 2, 0x0070, 0x10, 15, 1), 169 + PIN_FIELD_BASE(107, 108, 2, 0x0060, 0x10, 10, 1), 170 + PIN_FIELD_BASE(109, 109, 2, 0x0060, 0x10, 25, 1), 171 + PIN_FIELD_BASE(110, 110, 2, 0x0060, 0x10, 22, 1), 172 + PIN_FIELD_BASE(111, 111, 2, 0x0060, 0x10, 24, 1), 173 + PIN_FIELD_BASE(112, 112, 2, 0x0060, 0x10, 26, 1), 174 + PIN_FIELD_BASE(113, 113, 2, 0x0060, 0x10, 23, 1), 175 + PIN_FIELD_BASE(114, 114, 2, 0x0070, 0x10, 7, 1), 176 + PIN_FIELD_BASE(115, 115, 2, 0x0070, 0x10, 6, 1), 177 + PIN_FIELD_BASE(116, 116, 2, 0x0070, 0x10, 8, 1), 178 + PIN_FIELD_BASE(117, 117, 2, 0x0070, 0x10, 5, 1), 179 + PIN_FIELD_BASE(118, 118, 2, 0x0060, 0x10, 31, 1), 180 + PIN_FIELD_BASE(119, 119, 2, 0x0070, 0x10, 9, 1), 181 + PIN_FIELD_BASE(120, 120, 2, 0x0070, 0x10, 4, 1), 182 + PIN_FIELD_BASE(121, 121, 2, 0x0070, 0x10, 14, 1), 183 + PIN_FIELD_BASE(122, 122, 2, 0x0070, 0x10, 3, 1), 184 + PIN_FIELD_BASE(123, 123, 2, 0x0070, 0x10, 13, 1), 185 + PIN_FIELD_BASE(124, 124, 2, 0x0070, 0x10, 2, 1), 186 + PIN_FIELD_BASE(125, 125, 2, 0x0070, 0x10, 12, 1), 187 + PIN_FIELD_BASE(126, 129, 2, 0x0060, 0x10, 27, 1), 188 + PIN_FIELD_BASE(130, 132, 2, 0x0060, 0x10, 7, 1), 189 + PIN_FIELD_BASE(133, 135, 2, 0x0060, 0x10, 4, 1), 190 + PIN_FIELD_BASE(136, 138, 2, 0x0060, 0x10, 1, 1), 191 + PIN_FIELD_BASE(139, 139, 2, 0x0070, 0x10, 1, 1), 192 + PIN_FIELD_BASE(140, 140, 2, 0x0070, 0x10, 11, 1), 193 + PIN_FIELD_BASE(141, 141, 2, 0x0070, 0x10, 0, 1), 194 + PIN_FIELD_BASE(142, 142, 2, 0x0070, 0x10, 10, 1), 195 + PIN_FIELD_BASE(143, 145, 1, 0x0020, 0x10, 6, 1), 196 + PIN_FIELD_BASE(146, 148, 1, 0x0020, 0x10, 3, 1), 197 + PIN_FIELD_BASE(149, 151, 1, 0x0020, 0x10, 0, 1), 198 + PIN_FIELD_BASE(152, 152, 5, 0x0030, 0x10, 26, 1), 199 + PIN_FIELD_BASE(153, 153, 5, 0x0030, 0x10, 25, 1), 200 + PIN_FIELD_BASE(154, 155, 5, 0x0030, 0x10, 23, 1), 201 + PIN_FIELD_BASE(156, 158, 5, 0x0030, 0x10, 29, 1), 202 + PIN_FIELD_BASE(159, 159, 5, 0x0040, 0x10, 0, 1), 203 + PIN_FIELD_BASE(160, 161, 5, 0x0030, 0x10, 27, 1), 204 + PIN_FIELD_BASE(162, 171, 5, 0x0030, 0x10, 0, 1), 205 + PIN_FIELD_BASE(172, 173, 5, 0x0030, 0x10, 13, 1), 206 + PIN_FIELD_BASE(174, 174, 5, 0x0030, 0x10, 12, 1), 207 + PIN_FIELD_BASE(175, 175, 5, 0x0030, 0x10, 15, 1), 208 + PIN_FIELD_BASE(176, 177, 5, 0x0030, 0x10, 10, 1), 209 + PIN_FIELD_BASE(178, 182, 5, 0x0030, 0x10, 16, 1), 210 + PIN_FIELD_BASE(183, 184, 7, 0x0050, 0x10, 19, 1), 211 + PIN_FIELD_BASE(185, 185, 7, 0x0050, 0x10, 22, 1), 212 + PIN_FIELD_BASE(186, 186, 7, 0x0050, 0x10, 24, 1), 213 + PIN_FIELD_BASE(187, 187, 7, 0x0050, 0x10, 26, 1), 214 + PIN_FIELD_BASE(188, 188, 7, 0x0050, 0x10, 21, 1), 215 + PIN_FIELD_BASE(189, 189, 7, 0x0050, 0x10, 25, 1), 216 + PIN_FIELD_BASE(190, 191, 7, 0x0050, 0x10, 27, 1), 217 + PIN_FIELD_BASE(192, 192, 7, 0x0050, 0x10, 18, 1), 218 + PIN_FIELD_BASE(193, 193, 7, 0x0050, 0x10, 23, 1), 219 + PIN_FIELD_BASE(194, 194, 7, 0x0050, 0x10, 29, 1), 220 + PIN_FIELD_BASE(195, 195, 7, 0x0060, 0x10, 5, 1), 221 + PIN_FIELD_BASE(196, 196, 7, 0x0050, 0x10, 6, 1), 222 + PIN_FIELD_BASE(197, 197, 7, 0x0050, 0x10, 8, 1), 223 + PIN_FIELD_BASE(198, 198, 7, 0x0050, 0x10, 7, 1), 224 + PIN_FIELD_BASE(199, 199, 7, 0x0050, 0x10, 3, 1), 225 + PIN_FIELD_BASE(200, 200, 7, 0x0060, 0x10, 4, 1), 226 + PIN_FIELD_BASE(201, 201, 7, 0x0060, 0x10, 7, 1), 227 + PIN_FIELD_BASE(202, 202, 7, 0x0060, 0x10, 3, 1), 228 + PIN_FIELD_BASE(203, 203, 7, 0x0060, 0x10, 6, 1), 229 + PIN_FIELD_BASE(204, 205, 6, 0x0040, 0x10, 15, 1), 230 + PIN_FIELD_BASE(206, 208, 7, 0x0060, 0x10, 8, 1), 231 + PIN_FIELD_BASE(209, 209, 7, 0x0060, 0x10, 0, 1), 232 + PIN_FIELD_BASE(210, 210, 7, 0x0050, 0x10, 31, 1), 233 + PIN_FIELD_BASE(211, 211, 7, 0x0060, 0x10, 1, 1), 234 + PIN_FIELD_BASE(212, 212, 7, 0x0050, 0x10, 30, 1), 235 + PIN_FIELD_BASE(213, 213, 7, 0x0060, 0x10, 2, 1), 236 + PIN_FIELD_BASE(214, 214, 7, 0x0050, 0x10, 0, 1), 237 + PIN_FIELD_BASE(215, 215, 7, 0x0050, 0x10, 9, 1), 238 + PIN_FIELD_BASE(216, 217, 7, 0x0050, 0x10, 4, 1), 239 + PIN_FIELD_BASE(218, 219, 7, 0x0050, 0x10, 1, 1), 240 + }; 241 + 242 + static const struct mtk_pin_field_calc mt6893_pin_pu_range[] = { 243 + PIN_FIELD_BASE(0, 9, 2, 0x00a0, 0x10, 12, 1), 244 + PIN_FIELD_BASE(16, 17, 5, 0x0070, 0x10, 21, 1), 245 + PIN_FIELD_BASE(18, 25, 7, 0x0090, 0x10, 10, 1), 246 + PIN_FIELD_BASE(26, 30, 6, 0x0080, 0x10, 10, 1), 247 + PIN_FIELD_BASE(31, 31, 6, 0x0080, 0x10, 6, 1), 248 + PIN_FIELD_BASE(32, 32, 6, 0x0080, 0x10, 3, 1), 249 + PIN_FIELD_BASE(33, 33, 6, 0x0080, 0x10, 5, 1), 250 + PIN_FIELD_BASE(34, 34, 6, 0x0080, 0x10, 2, 1), 251 + PIN_FIELD_BASE(35, 35, 6, 0x0080, 0x10, 4, 1), 252 + PIN_FIELD_BASE(36, 39, 6, 0x0080, 0x10, 17, 1), 253 + PIN_FIELD_BASE(40, 41, 6, 0x0080, 0x10, 0, 1), 254 + PIN_FIELD_BASE(42, 42, 6, 0x0080, 0x10, 9, 1), 255 + PIN_FIELD_BASE(43, 44, 6, 0x0080, 0x10, 7, 1), 256 + PIN_FIELD_BASE(57, 60, 3, 0x0050, 0x10, 12, 1), 257 + PIN_FIELD_BASE(61, 61, 3, 0x0050, 0x10, 11, 1), 258 + PIN_FIELD_BASE(62, 62, 4, 0x0030, 0x10, 11, 1), 259 + PIN_FIELD_BASE(63, 64, 3, 0x0050, 0x10, 0, 1), 260 + PIN_FIELD_BASE(65, 72, 3, 0x0050, 0x10, 3, 1), 261 + PIN_FIELD_BASE(73, 73, 3, 0x0050, 0x10, 2, 1), 262 + PIN_FIELD_BASE(74, 84, 4, 0x0030, 0x10, 0, 1), 263 + PIN_FIELD_BASE(85, 86, 4, 0x0030, 0x10, 14, 1), 264 + PIN_FIELD_BASE(87, 88, 4, 0x0030, 0x10, 12, 1), 265 + PIN_FIELD_BASE(89, 90, 2, 0x00b0, 0x10, 19, 1), 266 + PIN_FIELD_BASE(91, 91, 2, 0x00a0, 0x10, 0, 1), 267 + PIN_FIELD_BASE(92, 92, 2, 0x00b0, 0x10, 28, 1), 268 + PIN_FIELD_BASE(93, 93, 2, 0x00b0, 0x10, 30, 1), 269 + PIN_FIELD_BASE(94, 94, 2, 0x00b0, 0x10, 29, 1), 270 + PIN_FIELD_BASE(95, 95, 2, 0x00b0, 0x10, 31, 1), 271 + PIN_FIELD_BASE(96, 96, 2, 0x00b0, 0x10, 26, 1), 272 + PIN_FIELD_BASE(97, 97, 2, 0x00b0, 0x10, 21, 1), 273 + PIN_FIELD_BASE(98, 98, 2, 0x00b0, 0x10, 27, 1), 274 + PIN_FIELD_BASE(99, 102, 2, 0x00b0, 0x10, 22, 1), 275 + PIN_FIELD_BASE(103, 103, 2, 0x00b0, 0x10, 17, 1), 276 + PIN_FIELD_BASE(104, 104, 2, 0x00b0, 0x10, 16, 1), 277 + PIN_FIELD_BASE(105, 105, 2, 0x00b0, 0x10, 18, 1), 278 + PIN_FIELD_BASE(106, 106, 2, 0x00b0, 0x10, 15, 1), 279 + PIN_FIELD_BASE(107, 108, 2, 0x00a0, 0x10, 10, 1), 280 + PIN_FIELD_BASE(109, 109, 2, 0x00a0, 0x10, 25, 1), 281 + PIN_FIELD_BASE(110, 110, 2, 0x00a0, 0x10, 22, 1), 282 + PIN_FIELD_BASE(111, 111, 2, 0x00a0, 0x10, 24, 1), 283 + PIN_FIELD_BASE(112, 112, 2, 0x00a0, 0x10, 26, 1), 284 + PIN_FIELD_BASE(113, 113, 2, 0x00a0, 0x10, 23, 1), 285 + PIN_FIELD_BASE(114, 114, 2, 0x00b0, 0x10, 7, 1), 286 + PIN_FIELD_BASE(115, 115, 2, 0x00b0, 0x10, 6, 1), 287 + PIN_FIELD_BASE(116, 116, 2, 0x00b0, 0x10, 8, 1), 288 + PIN_FIELD_BASE(117, 117, 2, 0x00b0, 0x10, 5, 1), 289 + PIN_FIELD_BASE(118, 118, 2, 0x00a0, 0x10, 31, 1), 290 + PIN_FIELD_BASE(119, 119, 2, 0x00b0, 0x10, 9, 1), 291 + PIN_FIELD_BASE(120, 120, 2, 0x00b0, 0x10, 4, 1), 292 + PIN_FIELD_BASE(121, 121, 2, 0x00b0, 0x10, 14, 1), 293 + PIN_FIELD_BASE(122, 122, 2, 0x00b0, 0x10, 3, 1), 294 + PIN_FIELD_BASE(123, 123, 2, 0x00b0, 0x10, 13, 1), 295 + PIN_FIELD_BASE(124, 124, 2, 0x00b0, 0x10, 2, 1), 296 + PIN_FIELD_BASE(125, 125, 2, 0x00b0, 0x10, 12, 1), 297 + PIN_FIELD_BASE(126, 129, 2, 0x00a0, 0x10, 27, 1), 298 + PIN_FIELD_BASE(130, 132, 2, 0x00a0, 0x10, 7, 1), 299 + PIN_FIELD_BASE(133, 135, 2, 0x00a0, 0x10, 4, 1), 300 + PIN_FIELD_BASE(136, 138, 2, 0x00a0, 0x10, 1, 1), 301 + PIN_FIELD_BASE(139, 139, 2, 0x00b0, 0x10, 1, 1), 302 + PIN_FIELD_BASE(140, 140, 2, 0x00b0, 0x10, 11, 1), 303 + PIN_FIELD_BASE(141, 141, 2, 0x00b0, 0x10, 0, 1), 304 + PIN_FIELD_BASE(142, 142, 2, 0x00b0, 0x10, 10, 1), 305 + PIN_FIELD_BASE(143, 145, 1, 0x0050, 0x10, 6, 1), 306 + PIN_FIELD_BASE(146, 148, 1, 0x0050, 0x10, 3, 1), 307 + PIN_FIELD_BASE(149, 151, 1, 0x0050, 0x10, 0, 1), 308 + PIN_FIELD_BASE(156, 159, 5, 0x0070, 0x10, 25, 1), 309 + PIN_FIELD_BASE(160, 161, 5, 0x0070, 0x10, 23, 1), 310 + PIN_FIELD_BASE(162, 171, 5, 0x0070, 0x10, 0, 1), 311 + PIN_FIELD_BASE(172, 173, 5, 0x0070, 0x10, 13, 1), 312 + PIN_FIELD_BASE(174, 174, 5, 0x0070, 0x10, 12, 1), 313 + PIN_FIELD_BASE(175, 175, 5, 0x0070, 0x10, 15, 1), 314 + PIN_FIELD_BASE(176, 177, 5, 0x0070, 0x10, 10, 1), 315 + PIN_FIELD_BASE(178, 182, 5, 0x0070, 0x10, 16, 1), 316 + PIN_FIELD_BASE(195, 195, 7, 0x0090, 0x10, 25, 1), 317 + PIN_FIELD_BASE(196, 196, 7, 0x0090, 0x10, 6, 1), 318 + PIN_FIELD_BASE(197, 197, 7, 0x0090, 0x10, 8, 1), 319 + PIN_FIELD_BASE(198, 198, 7, 0x0090, 0x10, 7, 1), 320 + PIN_FIELD_BASE(199, 199, 7, 0x0090, 0x10, 3, 1), 321 + PIN_FIELD_BASE(200, 200, 7, 0x0090, 0x10, 24, 1), 322 + PIN_FIELD_BASE(201, 201, 7, 0x0090, 0x10, 27, 1), 323 + PIN_FIELD_BASE(202, 202, 7, 0x0090, 0x10, 23, 1), 324 + PIN_FIELD_BASE(203, 203, 7, 0x0090, 0x10, 26, 1), 325 + PIN_FIELD_BASE(204, 205, 6, 0x0080, 0x10, 15, 1), 326 + PIN_FIELD_BASE(206, 208, 7, 0x0090, 0x10, 28, 1), 327 + PIN_FIELD_BASE(209, 209, 7, 0x0090, 0x10, 20, 1), 328 + PIN_FIELD_BASE(210, 210, 7, 0x0090, 0x10, 19, 1), 329 + PIN_FIELD_BASE(211, 211, 7, 0x0090, 0x10, 21, 1), 330 + PIN_FIELD_BASE(212, 212, 7, 0x0090, 0x10, 18, 1), 331 + PIN_FIELD_BASE(213, 213, 7, 0x0090, 0x10, 22, 1), 332 + PIN_FIELD_BASE(214, 214, 7, 0x0090, 0x10, 0, 1), 333 + PIN_FIELD_BASE(215, 215, 7, 0x0090, 0x10, 9, 1), 334 + PIN_FIELD_BASE(216, 217, 7, 0x0090, 0x10, 4, 1), 335 + PIN_FIELD_BASE(218, 219, 7, 0x0090, 0x10, 1, 1), 336 + }; 337 + 338 + static const struct mtk_pin_field_calc mt6893_pin_pd_range[] = { 339 + PIN_FIELD_BASE(0, 9, 2, 0x0080, 0x10, 12, 1), 340 + PIN_FIELD_BASE(16, 17, 5, 0x0050, 0x10, 21, 1), 341 + PIN_FIELD_BASE(18, 25, 7, 0x0070, 0x10, 10, 1), 342 + PIN_FIELD_BASE(26, 30, 6, 0x0060, 0x10, 10, 1), 343 + PIN_FIELD_BASE(31, 31, 6, 0x0060, 0x10, 6, 1), 344 + PIN_FIELD_BASE(32, 32, 6, 0x0060, 0x10, 3, 1), 345 + PIN_FIELD_BASE(33, 33, 6, 0x0060, 0x10, 5, 1), 346 + PIN_FIELD_BASE(34, 34, 6, 0x0060, 0x10, 2, 1), 347 + PIN_FIELD_BASE(35, 35, 6, 0x0060, 0x10, 4, 1), 348 + PIN_FIELD_BASE(36, 39, 6, 0x0060, 0x10, 17, 1), 349 + PIN_FIELD_BASE(40, 41, 6, 0x0060, 0x10, 0, 1), 350 + PIN_FIELD_BASE(42, 42, 6, 0x0060, 0x10, 9, 1), 351 + PIN_FIELD_BASE(43, 44, 6, 0x0060, 0x10, 7, 1), 352 + PIN_FIELD_BASE(57, 60, 3, 0x0030, 0x10, 12, 1), 353 + PIN_FIELD_BASE(61, 61, 3, 0x0030, 0x10, 11, 1), 354 + PIN_FIELD_BASE(62, 62, 4, 0x0020, 0x10, 11, 1), 355 + PIN_FIELD_BASE(63, 64, 3, 0x0030, 0x10, 0, 1), 356 + PIN_FIELD_BASE(65, 72, 3, 0x0030, 0x10, 3, 1), 357 + PIN_FIELD_BASE(73, 73, 3, 0x0030, 0x10, 2, 1), 358 + PIN_FIELD_BASE(74, 84, 4, 0x0020, 0x10, 0, 1), 359 + PIN_FIELD_BASE(85, 86, 4, 0x0020, 0x10, 14, 1), 360 + PIN_FIELD_BASE(87, 88, 4, 0x0020, 0x10, 12, 1), 361 + PIN_FIELD_BASE(89, 90, 2, 0x0090, 0x10, 19, 1), 362 + PIN_FIELD_BASE(91, 91, 2, 0x0080, 0x10, 0, 1), 363 + PIN_FIELD_BASE(92, 92, 2, 0x0090, 0x10, 28, 1), 364 + PIN_FIELD_BASE(93, 93, 2, 0x0090, 0x10, 30, 1), 365 + PIN_FIELD_BASE(94, 94, 2, 0x0090, 0x10, 29, 1), 366 + PIN_FIELD_BASE(95, 95, 2, 0x0090, 0x10, 31, 1), 367 + PIN_FIELD_BASE(96, 96, 2, 0x0090, 0x10, 26, 1), 368 + PIN_FIELD_BASE(97, 97, 2, 0x0090, 0x10, 21, 1), 369 + PIN_FIELD_BASE(98, 98, 2, 0x0090, 0x10, 27, 1), 370 + PIN_FIELD_BASE(99, 102, 2, 0x0090, 0x10, 22, 1), 371 + PIN_FIELD_BASE(103, 103, 2, 0x0090, 0x10, 17, 1), 372 + PIN_FIELD_BASE(104, 104, 2, 0x0090, 0x10, 16, 1), 373 + PIN_FIELD_BASE(105, 105, 2, 0x0090, 0x10, 18, 1), 374 + PIN_FIELD_BASE(106, 106, 2, 0x0090, 0x10, 15, 1), 375 + PIN_FIELD_BASE(107, 108, 2, 0x0080, 0x10, 10, 1), 376 + PIN_FIELD_BASE(109, 109, 2, 0x0080, 0x10, 25, 1), 377 + PIN_FIELD_BASE(110, 110, 2, 0x0080, 0x10, 22, 1), 378 + PIN_FIELD_BASE(111, 111, 2, 0x0080, 0x10, 24, 1), 379 + PIN_FIELD_BASE(112, 112, 2, 0x0080, 0x10, 26, 1), 380 + PIN_FIELD_BASE(113, 113, 2, 0x0080, 0x10, 23, 1), 381 + PIN_FIELD_BASE(114, 114, 2, 0x0090, 0x10, 7, 1), 382 + PIN_FIELD_BASE(115, 115, 2, 0x0090, 0x10, 6, 1), 383 + PIN_FIELD_BASE(116, 116, 2, 0x0090, 0x10, 8, 1), 384 + PIN_FIELD_BASE(117, 117, 2, 0x0090, 0x10, 5, 1), 385 + PIN_FIELD_BASE(118, 118, 2, 0x0080, 0x10, 31, 1), 386 + PIN_FIELD_BASE(119, 119, 2, 0x0090, 0x10, 9, 1), 387 + PIN_FIELD_BASE(120, 120, 2, 0x0090, 0x10, 4, 1), 388 + PIN_FIELD_BASE(121, 121, 2, 0x0090, 0x10, 14, 1), 389 + PIN_FIELD_BASE(122, 122, 2, 0x0090, 0x10, 3, 1), 390 + PIN_FIELD_BASE(123, 123, 2, 0x0090, 0x10, 13, 1), 391 + PIN_FIELD_BASE(124, 124, 2, 0x0090, 0x10, 2, 1), 392 + PIN_FIELD_BASE(125, 125, 2, 0x0090, 0x10, 12, 1), 393 + PIN_FIELD_BASE(126, 129, 2, 0x0080, 0x10, 27, 1), 394 + PIN_FIELD_BASE(130, 132, 2, 0x0080, 0x10, 7, 1), 395 + PIN_FIELD_BASE(133, 135, 2, 0x0080, 0x10, 4, 1), 396 + PIN_FIELD_BASE(136, 138, 2, 0x0080, 0x10, 1, 1), 397 + PIN_FIELD_BASE(139, 139, 2, 0x0090, 0x10, 1, 1), 398 + PIN_FIELD_BASE(140, 140, 2, 0x0090, 0x10, 11, 1), 399 + PIN_FIELD_BASE(141, 141, 2, 0x0090, 0x10, 0, 1), 400 + PIN_FIELD_BASE(142, 142, 2, 0x0090, 0x10, 10, 1), 401 + PIN_FIELD_BASE(143, 145, 1, 0x0030, 0x10, 6, 1), 402 + PIN_FIELD_BASE(146, 148, 1, 0x0030, 0x10, 3, 1), 403 + PIN_FIELD_BASE(149, 151, 1, 0x0030, 0x10, 0, 1), 404 + PIN_FIELD_BASE(156, 159, 5, 0x0050, 0x10, 25, 1), 405 + PIN_FIELD_BASE(160, 161, 5, 0x0050, 0x10, 23, 1), 406 + PIN_FIELD_BASE(162, 171, 5, 0x0050, 0x10, 0, 1), 407 + PIN_FIELD_BASE(172, 173, 5, 0x0050, 0x10, 13, 1), 408 + PIN_FIELD_BASE(174, 174, 5, 0x0050, 0x10, 12, 1), 409 + PIN_FIELD_BASE(175, 175, 5, 0x0050, 0x10, 15, 1), 410 + PIN_FIELD_BASE(176, 177, 5, 0x0050, 0x10, 10, 1), 411 + PIN_FIELD_BASE(178, 182, 5, 0x0050, 0x10, 16, 1), 412 + PIN_FIELD_BASE(195, 195, 7, 0x0070, 0x10, 25, 1), 413 + PIN_FIELD_BASE(196, 196, 7, 0x0070, 0x10, 6, 1), 414 + PIN_FIELD_BASE(197, 197, 7, 0x0070, 0x10, 8, 1), 415 + PIN_FIELD_BASE(198, 198, 7, 0x0070, 0x10, 7, 1), 416 + PIN_FIELD_BASE(199, 199, 7, 0x0070, 0x10, 3, 1), 417 + PIN_FIELD_BASE(200, 200, 7, 0x0070, 0x10, 24, 1), 418 + PIN_FIELD_BASE(201, 201, 7, 0x0070, 0x10, 27, 1), 419 + PIN_FIELD_BASE(202, 202, 7, 0x0070, 0x10, 23, 1), 420 + PIN_FIELD_BASE(203, 203, 7, 0x0070, 0x10, 26, 1), 421 + PIN_FIELD_BASE(204, 205, 6, 0x0060, 0x10, 15, 1), 422 + PIN_FIELD_BASE(206, 208, 7, 0x0070, 0x10, 28, 1), 423 + PIN_FIELD_BASE(209, 209, 7, 0x0070, 0x10, 20, 1), 424 + PIN_FIELD_BASE(210, 210, 7, 0x0070, 0x10, 19, 1), 425 + PIN_FIELD_BASE(211, 211, 7, 0x0070, 0x10, 21, 1), 426 + PIN_FIELD_BASE(212, 212, 7, 0x0070, 0x10, 18, 1), 427 + PIN_FIELD_BASE(213, 213, 7, 0x0070, 0x10, 22, 1), 428 + PIN_FIELD_BASE(214, 214, 7, 0x0070, 0x10, 0, 1), 429 + PIN_FIELD_BASE(215, 215, 7, 0x0070, 0x10, 9, 1), 430 + PIN_FIELD_BASE(216, 217, 7, 0x0070, 0x10, 4, 1), 431 + PIN_FIELD_BASE(218, 219, 7, 0x0070, 0x10, 1, 1), 432 + }; 433 + 434 + static const struct mtk_pin_field_calc mt6893_pin_drv_range[] = { 435 + PINS_FIELD_BASE(0, 9, 2, 0x0000, 0x10, 21, 3), 436 + PINS_FIELD_BASE(10, 15, 1, 0x0000, 0x10, 12, 3), 437 + PIN_FIELD_BASE(16, 17, 5, 0x0000, 0x10, 18, 3), 438 + PINS_FIELD_BASE(18, 25, 7, 0x0000, 0x10, 3, 3), 439 + PINS_FIELD_BASE(26, 30, 6, 0x0000, 0x10, 15, 3), 440 + PINS_FIELD_BASE(31, 35, 6, 0x0000, 0x10, 6, 3), 441 + PIN_FIELD_BASE(36, 36, 6, 0x0010, 0x10, 7, 3), 442 + PINS_FIELD_BASE(37, 39, 6, 0x0010, 0x10, 4, 3), 443 + PIN_FIELD_BASE(40, 41, 6, 0x0000, 0x10, 0, 3), 444 + PIN_FIELD_BASE(42, 42, 6, 0x0000, 0x10, 12, 3), 445 + PINS_FIELD_BASE(43, 44, 6, 0x0000, 0x10, 9, 3), 446 + PIN_FIELD_BASE(45, 45, 6, 0x0000, 0x10, 30, 2), 447 + PIN_FIELD_BASE(46, 46, 6, 0x0010, 0x10, 2, 2), 448 + PIN_FIELD_BASE(47, 47, 6, 0x0010, 0x10, 0, 2), 449 + PIN_FIELD_BASE(48, 49, 6, 0x0000, 0x10, 26, 2), 450 + PIN_FIELD_BASE(50, 50, 6, 0x0000, 0x10, 24, 2), 451 + PIN_FIELD_BASE(51, 52, 3, 0x0000, 0x10, 18, 3), 452 + PINS_FIELD_BASE(53, 56, 3, 0x0000, 0x10, 24, 3), 453 + PIN_FIELD_BASE(57, 60, 3, 0x0000, 0x10, 6, 3), 454 + PIN_FIELD_BASE(61, 61, 3, 0x0000, 0x10, 3, 3), 455 + PIN_FIELD_BASE(62, 62, 4, 0x0000, 0x10, 3, 3), 456 + PINS_FIELD_BASE(63, 73, 3, 0x0000, 0x10, 0, 3), 457 + PINS_FIELD_BASE(74, 84, 4, 0x0000, 0x10, 0, 3), 458 + PIN_FIELD_BASE(85, 86, 4, 0x0000, 0x10, 12, 3), 459 + PIN_FIELD_BASE(87, 88, 4, 0x0000, 0x10, 6, 3), 460 + PIN_FIELD_BASE(89, 90, 2, 0x0020, 0x10, 15, 3), 461 + PIN_FIELD_BASE(91, 91, 2, 0x0000, 0x10, 0, 3), 462 + PINS_FIELD_BASE(92, 95, 2, 0x0030, 0x10, 3, 3), 463 + PIN_FIELD_BASE(96, 96, 2, 0x0020, 0x10, 27, 3), 464 + PIN_FIELD_BASE(97, 97, 2, 0x0020, 0x10, 21, 3), 465 + PIN_FIELD_BASE(98, 98, 2, 0x0030, 0x10, 0, 3), 466 + PINS_FIELD_BASE(99, 102, 2, 0x0020, 0x10, 24, 3), 467 + PINS_FIELD_BASE(103, 105, 2, 0x0020, 0x10, 9, 3), 468 + PIN_FIELD_BASE(106, 106, 2, 0x0020, 0x10, 12, 3), 469 + PIN_FIELD_BASE(107, 108, 2, 0x0000, 0x10, 15, 3), 470 + PINS_FIELD_BASE(109, 113, 2, 0x0000, 0x10, 24, 3), 471 + PINS_FIELD_BASE(114, 117, 2, 0x0010, 0x10, 18, 3), 472 + PIN_FIELD_BASE(118, 118, 2, 0x0010, 0x10, 0, 3), 473 + PIN_FIELD_BASE(119, 119, 2, 0x0010, 0x10, 21, 3), 474 + PIN_FIELD_BASE(120, 120, 2, 0x0010, 0x10, 15, 3), 475 + PIN_FIELD_BASE(121, 121, 2, 0x0020, 0x10, 6, 3), 476 + PIN_FIELD_BASE(122, 122, 2, 0x0010, 0x10, 12, 3), 477 + PIN_FIELD_BASE(123, 123, 2, 0x0020, 0x10, 3, 3), 478 + PIN_FIELD_BASE(124, 124, 2, 0x0010, 0x10, 9, 3), 479 + PIN_FIELD_BASE(125, 125, 2, 0x0020, 0x10, 0, 3), 480 + PINS_FIELD_BASE(126, 129, 2, 0x0000, 0x10, 27, 3), 481 + PINS_FIELD_BASE(130, 135, 2, 0x0000, 0x10, 12, 3), 482 + PIN_FIELD_BASE(136, 138, 2, 0x0000, 0x10, 3, 3), 483 + PIN_FIELD_BASE(139, 139, 2, 0x0010, 0x10, 6, 3), 484 + PIN_FIELD_BASE(140, 140, 2, 0x0010, 0x10, 27, 3), 485 + PIN_FIELD_BASE(141, 141, 2, 0x0010, 0x10, 3, 3), 486 + PIN_FIELD_BASE(142, 142, 2, 0x0010, 0x10, 24, 3), 487 + PINS_FIELD_BASE(143, 148, 1, 0x0000, 0x10, 9, 3), 488 + PIN_FIELD_BASE(149, 151, 1, 0x0000, 0x10, 0, 3), 489 + PINS_FIELD_BASE(152, 155, 5, 0x0000, 0x10, 24, 3), 490 + PIN_FIELD_BASE(156, 156, 5, 0x0010, 0x10, 6, 3), 491 + PINS_FIELD_BASE(157, 159, 5, 0x0010, 0x10, 3, 3), 492 + PIN_FIELD_BASE(160, 160, 5, 0x0000, 0x10, 27, 3), 493 + PIN_FIELD_BASE(161, 161, 5, 0x0010, 0x10, 0, 3), 494 + PINS_FIELD_BASE(162, 171, 5, 0x0000, 0x10, 0, 3), 495 + PIN_FIELD_BASE(172, 172, 5, 0x0000, 0x10, 15, 3), 496 + PIN_FIELD_BASE(173, 173, 5, 0x0000, 0x10, 3, 3), 497 + PIN_FIELD_BASE(174, 174, 5, 0x0000, 0x10, 12, 3), 498 + PIN_FIELD_BASE(175, 177, 5, 0x0000, 0x10, 3, 3), 499 + PINS_FIELD_BASE(178, 182, 5, 0x0000, 0x10, 3, 3), 500 + PIN_FIELD_BASE(183, 183, 7, 0x0000, 0x10, 9, 3), 501 + PINS_FIELD_BASE(184, 190, 7, 0x0000, 0x10, 12, 3), 502 + PIN_FIELD_BASE(191, 191, 7, 0x0000, 0x10, 15, 3), 503 + PIN_FIELD_BASE(192, 192, 7, 0x0000, 0x10, 6, 3), 504 + PIN_FIELD_BASE(193, 193, 7, 0x0000, 0x10, 12, 3), 505 + PIN_FIELD_BASE(194, 194, 7, 0x0000, 0x10, 18, 3), 506 + PIN_FIELD_BASE(195, 195, 7, 0x0010, 0x10, 3, 3), 507 + PINS_FIELD_BASE(196, 199, 7, 0x0000, 0x10, 0, 3), 508 + PIN_FIELD_BASE(200, 200, 7, 0x0010, 0x10, 0, 3), 509 + PIN_FIELD_BASE(201, 201, 7, 0x0010, 0x10, 9, 3), 510 + PIN_FIELD_BASE(202, 202, 7, 0x0000, 0x10, 27, 3), 511 + PIN_FIELD_BASE(203, 203, 7, 0x0010, 0x10, 6, 3), 512 + PIN_FIELD_BASE(204, 205, 6, 0x0000, 0x10, 18, 3), 513 + PIN_FIELD_BASE(206, 208, 7, 0x0010, 0x10, 12, 3), 514 + PINS_FIELD_BASE(209, 212, 7, 0x0000, 0x10, 21, 3), 515 + PIN_FIELD_BASE(213, 213, 7, 0x0000, 0x10, 24, 3), 516 + PINS_FIELD_BASE(214, 219, 7, 0x0000, 0x10, 0, 3), 517 + }; 518 + 519 + static const struct mtk_pin_field_calc mt6893_pin_pupd_range[] = { 520 + PIN_FIELD_BASE(10, 15, 1, 0x0040, 0x10, 0, 1), 521 + PIN_FIELD_BASE(45, 45, 6, 0x0070, 0x10, 3, 1), 522 + PIN_FIELD_BASE(46, 46, 6, 0x0070, 0x10, 5, 1), 523 + PIN_FIELD_BASE(47, 47, 6, 0x0070, 0x10, 4, 1), 524 + PIN_FIELD_BASE(48, 49, 6, 0x0070, 0x10, 1, 1), 525 + PIN_FIELD_BASE(50, 50, 6, 0x0070, 0x10, 0, 1), 526 + PIN_FIELD_BASE(51, 52, 3, 0x0040, 0x10, 0, 1), 527 + PIN_FIELD_BASE(53, 53, 3, 0x0040, 0x10, 5, 1), 528 + PIN_FIELD_BASE(54, 54, 3, 0x0040, 0x10, 2, 1), 529 + PIN_FIELD_BASE(55, 55, 3, 0x0040, 0x10, 4, 1), 530 + PIN_FIELD_BASE(56, 56, 3, 0x0040, 0x10, 3, 1), 531 + PIN_FIELD_BASE(152, 152, 5, 0x0060, 0x10, 3, 1), 532 + PIN_FIELD_BASE(153, 153, 5, 0x0060, 0x10, 2, 1), 533 + PIN_FIELD_BASE(154, 155, 5, 0x0060, 0x10, 0, 1), 534 + PIN_FIELD_BASE(183, 184, 7, 0x0080, 0x10, 1, 1), 535 + PIN_FIELD_BASE(185, 185, 7, 0x0080, 0x10, 4, 1), 536 + PIN_FIELD_BASE(186, 186, 7, 0x0080, 0x10, 6, 1), 537 + PIN_FIELD_BASE(187, 187, 7, 0x0080, 0x10, 8, 1), 538 + PIN_FIELD_BASE(188, 188, 7, 0x0080, 0x10, 3, 1), 539 + PIN_FIELD_BASE(189, 189, 7, 0x0080, 0x10, 7, 1), 540 + PIN_FIELD_BASE(190, 191, 7, 0x0080, 0x10, 9, 1), 541 + PIN_FIELD_BASE(192, 192, 7, 0x0080, 0x10, 0, 1), 542 + PIN_FIELD_BASE(193, 193, 7, 0x0080, 0x10, 5, 1), 543 + PIN_FIELD_BASE(194, 194, 7, 0x0080, 0x10, 11, 1), 544 + }; 545 + 546 + static const struct mtk_pin_field_calc mt6893_pin_r0_range[] = { 547 + PIN_FIELD_BASE(10, 15, 1, 0x0060, 0x10, 0, 1), 548 + PIN_FIELD_BASE(24, 24, 7, 0x00e0, 0x10, 0, 1), 549 + PIN_FIELD_BASE(25, 25, 7, 0x00e0, 0x10, 2, 1), 550 + PIN_FIELD_BASE(45, 45, 6, 0x0090, 0x10, 3, 1), 551 + PIN_FIELD_BASE(46, 46, 6, 0x0090, 0x10, 5, 1), 552 + PIN_FIELD_BASE(47, 47, 6, 0x0090, 0x10, 4, 1), 553 + PIN_FIELD_BASE(48, 49, 6, 0x0090, 0x10, 1, 1), 554 + PIN_FIELD_BASE(50, 50, 6, 0x0090, 0x10, 0, 1), 555 + PIN_FIELD_BASE(51, 52, 3, 0x0060, 0x10, 0, 1), 556 + PIN_FIELD_BASE(53, 53, 3, 0x0060, 0x10, 5, 1), 557 + PIN_FIELD_BASE(54, 54, 3, 0x0060, 0x10, 2, 1), 558 + PIN_FIELD_BASE(55, 55, 3, 0x0060, 0x10, 4, 1), 559 + PIN_FIELD_BASE(56, 56, 3, 0x0060, 0x10, 3, 1), 560 + PIN_FIELD_BASE(118, 118, 2, 0x00e0, 0x10, 0, 1), 561 + PIN_FIELD_BASE(119, 119, 2, 0x00e0, 0x10, 12, 1), 562 + PIN_FIELD_BASE(120, 120, 2, 0x00e0, 0x10, 10, 1), 563 + PIN_FIELD_BASE(121, 121, 2, 0x00e0, 0x10, 22, 1), 564 + PIN_FIELD_BASE(122, 122, 2, 0x00e0, 0x10, 8, 1), 565 + PIN_FIELD_BASE(123, 123, 2, 0x00e0, 0x10, 20, 1), 566 + PIN_FIELD_BASE(124, 124, 2, 0x00e0, 0x10, 6, 1), 567 + PIN_FIELD_BASE(125, 125, 2, 0x00e0, 0x10, 18, 1), 568 + PIN_FIELD_BASE(139, 139, 2, 0x00e0, 0x10, 4, 1), 569 + PIN_FIELD_BASE(140, 140, 2, 0x00e0, 0x10, 16, 1), 570 + PIN_FIELD_BASE(141, 141, 2, 0x00e0, 0x10, 2, 1), 571 + PIN_FIELD_BASE(142, 142, 2, 0x00e0, 0x10, 14, 1), 572 + PIN_FIELD_BASE(152, 152, 5, 0x0080, 0x10, 3, 1), 573 + PIN_FIELD_BASE(153, 153, 5, 0x0080, 0x10, 2, 1), 574 + PIN_FIELD_BASE(154, 155, 5, 0x0080, 0x10, 0, 1), 575 + PIN_FIELD_BASE(160, 160, 5, 0x00b0, 0x10, 0, 1), 576 + PIN_FIELD_BASE(161, 161, 5, 0x00b0, 0x10, 2, 1), 577 + PIN_FIELD_BASE(183, 184, 7, 0x00a0, 0x10, 1, 1), 578 + PIN_FIELD_BASE(185, 185, 7, 0x00a0, 0x10, 4, 1), 579 + PIN_FIELD_BASE(186, 186, 7, 0x00a0, 0x10, 6, 1), 580 + PIN_FIELD_BASE(187, 187, 7, 0x00a0, 0x10, 8, 1), 581 + PIN_FIELD_BASE(188, 188, 7, 0x00a0, 0x10, 3, 1), 582 + PIN_FIELD_BASE(189, 189, 7, 0x00a0, 0x10, 7, 1), 583 + PIN_FIELD_BASE(190, 191, 7, 0x00a0, 0x10, 9, 1), 584 + PIN_FIELD_BASE(192, 192, 7, 0x00a0, 0x10, 0, 1), 585 + PIN_FIELD_BASE(193, 193, 7, 0x00a0, 0x10, 5, 1), 586 + PIN_FIELD_BASE(194, 194, 7, 0x00a0, 0x10, 11, 1), 587 + PIN_FIELD_BASE(200, 200, 7, 0x00e0, 0x10, 6, 1), 588 + PIN_FIELD_BASE(201, 201, 7, 0x00e0, 0x10, 10, 1), 589 + PIN_FIELD_BASE(202, 202, 7, 0x00e0, 0x10, 4, 1), 590 + PIN_FIELD_BASE(203, 203, 7, 0x00e0, 0x10, 8, 1), 591 + PIN_FIELD_BASE(204, 204, 6, 0x00d0, 0x10, 0, 1), 592 + PIN_FIELD_BASE(205, 205, 6, 0x00d0, 0x10, 2, 1), 593 + }; 594 + 595 + static const struct mtk_pin_field_calc mt6893_pin_r1_range[] = { 596 + PIN_FIELD_BASE(10, 15, 1, 0x0070, 0x10, 0, 1), 597 + PIN_FIELD_BASE(24, 24, 7, 0x00e0, 0x10, 1, 1), 598 + PIN_FIELD_BASE(25, 25, 7, 0x00e0, 0x10, 3, 1), 599 + PIN_FIELD_BASE(45, 45, 6, 0x00a0, 0x10, 3, 1), 600 + PIN_FIELD_BASE(46, 46, 6, 0x00a0, 0x10, 5, 1), 601 + PIN_FIELD_BASE(47, 47, 6, 0x00a0, 0x10, 4, 1), 602 + PIN_FIELD_BASE(48, 49, 6, 0x00a0, 0x10, 1, 1), 603 + PIN_FIELD_BASE(50, 50, 6, 0x00a0, 0x10, 0, 1), 604 + PIN_FIELD_BASE(51, 52, 3, 0x0070, 0x10, 0, 1), 605 + PIN_FIELD_BASE(53, 53, 3, 0x0070, 0x10, 5, 1), 606 + PIN_FIELD_BASE(54, 54, 3, 0x0070, 0x10, 2, 1), 607 + PIN_FIELD_BASE(55, 55, 3, 0x0070, 0x10, 4, 1), 608 + PIN_FIELD_BASE(56, 56, 3, 0x0070, 0x10, 3, 1), 609 + PIN_FIELD_BASE(118, 118, 2, 0x00e0, 0x10, 1, 1), 610 + PIN_FIELD_BASE(119, 119, 2, 0x00e0, 0x10, 13, 1), 611 + PIN_FIELD_BASE(120, 120, 2, 0x00e0, 0x10, 11, 1), 612 + PIN_FIELD_BASE(121, 121, 2, 0x00e0, 0x10, 23, 1), 613 + PIN_FIELD_BASE(122, 122, 2, 0x00e0, 0x10, 9, 1), 614 + PIN_FIELD_BASE(123, 123, 2, 0x00e0, 0x10, 21, 1), 615 + PIN_FIELD_BASE(124, 124, 2, 0x00e0, 0x10, 7, 1), 616 + PIN_FIELD_BASE(125, 125, 2, 0x00e0, 0x10, 19, 1), 617 + PIN_FIELD_BASE(139, 139, 2, 0x00e0, 0x10, 5, 1), 618 + PIN_FIELD_BASE(140, 140, 2, 0x00e0, 0x10, 17, 1), 619 + PIN_FIELD_BASE(141, 141, 2, 0x00e0, 0x10, 3, 1), 620 + PIN_FIELD_BASE(142, 142, 2, 0x00e0, 0x10, 15, 1), 621 + PIN_FIELD_BASE(152, 152, 5, 0x0090, 0x10, 3, 1), 622 + PIN_FIELD_BASE(153, 153, 5, 0x0090, 0x10, 2, 1), 623 + PIN_FIELD_BASE(154, 155, 5, 0x0090, 0x10, 0, 1), 624 + PIN_FIELD_BASE(160, 160, 5, 0x00b0, 0x10, 1, 1), 625 + PIN_FIELD_BASE(161, 161, 5, 0x00b0, 0x10, 3, 1), 626 + PIN_FIELD_BASE(183, 184, 7, 0x00b0, 0x10, 1, 1), 627 + PIN_FIELD_BASE(185, 185, 7, 0x00b0, 0x10, 4, 1), 628 + PIN_FIELD_BASE(186, 186, 7, 0x00b0, 0x10, 6, 1), 629 + PIN_FIELD_BASE(187, 187, 7, 0x00b0, 0x10, 8, 1), 630 + PIN_FIELD_BASE(188, 188, 7, 0x00b0, 0x10, 3, 1), 631 + PIN_FIELD_BASE(189, 189, 7, 0x00b0, 0x10, 7, 1), 632 + PIN_FIELD_BASE(190, 191, 7, 0x00b0, 0x10, 9, 1), 633 + PIN_FIELD_BASE(192, 192, 7, 0x00b0, 0x10, 0, 1), 634 + PIN_FIELD_BASE(193, 193, 7, 0x00b0, 0x10, 5, 1), 635 + PIN_FIELD_BASE(194, 194, 7, 0x00b0, 0x10, 11, 1), 636 + PIN_FIELD_BASE(200, 200, 7, 0x00e0, 0x10, 7, 1), 637 + PIN_FIELD_BASE(201, 201, 7, 0x00e0, 0x10, 11, 1), 638 + PIN_FIELD_BASE(202, 202, 7, 0x00e0, 0x10, 5, 1), 639 + PIN_FIELD_BASE(203, 203, 7, 0x00e0, 0x10, 9, 1), 640 + PIN_FIELD_BASE(204, 204, 6, 0x00d0, 0x10, 1, 1), 641 + PIN_FIELD_BASE(205, 205, 6, 0x00d0, 0x10, 3, 1), 642 + }; 643 + 644 + static const struct mtk_pin_field_calc mt6893_pin_drv_adv_range[] = { 645 + PIN_FIELD_BASE(24, 24, 7, 0x0030, 0x10, 0, 3), 646 + PIN_FIELD_BASE(25, 25, 7, 0x0030, 0x10, 3, 3), 647 + PIN_FIELD_BASE(89, 89, 2, 0x0050, 0x10, 6, 5), 648 + PIN_FIELD_BASE(90, 90, 2, 0x0050, 0x10, 11, 5), 649 + PIN_FIELD_BASE(118, 118, 2, 0x0040, 0x10, 0, 3), 650 + PIN_FIELD_BASE(119, 119, 2, 0x0040, 0x10, 18, 3), 651 + PIN_FIELD_BASE(120, 120, 2, 0x0040, 0x10, 15, 3), 652 + PIN_FIELD_BASE(121, 121, 2, 0x0050, 0x10, 3, 3), 653 + PIN_FIELD_BASE(122, 122, 2, 0x0040, 0x10, 12, 3), 654 + PIN_FIELD_BASE(123, 123, 2, 0x0050, 0x10, 0, 3), 655 + PIN_FIELD_BASE(124, 124, 2, 0x0040, 0x10, 9, 3), 656 + PIN_FIELD_BASE(125, 125, 2, 0x0040, 0x10, 27, 3), 657 + PIN_FIELD_BASE(139, 139, 2, 0x0040, 0x10, 6, 3), 658 + PIN_FIELD_BASE(140, 140, 2, 0x0040, 0x10, 24, 3), 659 + PIN_FIELD_BASE(141, 141, 2, 0x0040, 0x10, 3, 3), 660 + PIN_FIELD_BASE(142, 142, 2, 0x0040, 0x10, 21, 3), 661 + PIN_FIELD_BASE(160, 160, 5, 0x0020, 0x10, 0, 3), 662 + PIN_FIELD_BASE(161, 161, 5, 0x0020, 0x10, 3, 3), 663 + PIN_FIELD_BASE(200, 200, 7, 0x0030, 0x10, 9, 3), 664 + PIN_FIELD_BASE(201, 201, 7, 0x0030, 0x10, 15, 3), 665 + PIN_FIELD_BASE(202, 202, 7, 0x0030, 0x10, 6, 3), 666 + PIN_FIELD_BASE(203, 203, 7, 0x0030, 0x10, 12, 3), 667 + PIN_FIELD_BASE(204, 204, 6, 0x0020, 0x10, 0, 3), 668 + PIN_FIELD_BASE(205, 205, 6, 0x0020, 0x10, 3, 3), 669 + }; 670 + 671 + static const struct mtk_pin_field_calc mt6893_pin_rsel_range[] = { 672 + PIN_FIELD_BASE(24, 24, 7, 0x00e0, 0x10, 0, 2), 673 + PIN_FIELD_BASE(25, 25, 7, 0x00e0, 0x10, 2, 2), 674 + PIN_FIELD_BASE(118, 118, 2, 0x00e0, 0x10, 0, 2), 675 + PIN_FIELD_BASE(119, 119, 2, 0x00e0, 0x10, 12, 2), 676 + PIN_FIELD_BASE(120, 120, 2, 0x00e0, 0x10, 10, 2), 677 + PIN_FIELD_BASE(121, 121, 2, 0x00e0, 0x10, 22, 2), 678 + PIN_FIELD_BASE(122, 122, 2, 0x00e0, 0x10, 8, 2), 679 + PIN_FIELD_BASE(123, 123, 2, 0x00e0, 0x10, 20, 2), 680 + PIN_FIELD_BASE(124, 124, 2, 0x00e0, 0x10, 6, 2), 681 + PIN_FIELD_BASE(125, 125, 2, 0x00e0, 0x10, 18, 2), 682 + PIN_FIELD_BASE(139, 139, 2, 0x00e0, 0x10, 4, 2), 683 + PIN_FIELD_BASE(140, 140, 2, 0x00e0, 0x10, 16, 2), 684 + PIN_FIELD_BASE(141, 141, 2, 0x00e0, 0x10, 2, 2), 685 + PIN_FIELD_BASE(142, 142, 2, 0x00e0, 0x10, 14, 2), 686 + PIN_FIELD_BASE(160, 160, 5, 0x00b0, 0x10, 0, 2), 687 + PIN_FIELD_BASE(161, 161, 5, 0x00b0, 0x10, 2, 2), 688 + PIN_FIELD_BASE(200, 200, 7, 0x00e0, 0x10, 6, 2), 689 + PIN_FIELD_BASE(201, 201, 7, 0x00e0, 0x10, 10, 2), 690 + PIN_FIELD_BASE(202, 202, 7, 0x00e0, 0x10, 4, 2), 691 + PIN_FIELD_BASE(203, 203, 7, 0x00e0, 0x10, 8, 2), 692 + PIN_FIELD_BASE(204, 204, 6, 0x00d0, 0x10, 0, 2), 693 + PIN_FIELD_BASE(205, 205, 6, 0x00d0, 0x10, 2, 2), 694 + }; 695 + 696 + static const unsigned int mt6893_pull_type[] = { 697 + MTK_PULL_PU_PD_TYPE, /* 0 */ MTK_PULL_PU_PD_TYPE, /* 1 */ 698 + MTK_PULL_PU_PD_TYPE, /* 2 */ MTK_PULL_PU_PD_TYPE, /* 3 */ 699 + MTK_PULL_PU_PD_TYPE, /* 4 */ MTK_PULL_PU_PD_TYPE, /* 5 */ 700 + MTK_PULL_PU_PD_TYPE, /* 6 */ MTK_PULL_PU_PD_TYPE, /* 7 */ 701 + MTK_PULL_PU_PD_TYPE, /* 8 */ MTK_PULL_PU_PD_TYPE, /* 9 */ 702 + MTK_PULL_PUPD_R1R0_TYPE, /* 10 */ MTK_PULL_PUPD_R1R0_TYPE, /* 11 */ 703 + MTK_PULL_PUPD_R1R0_TYPE, /* 12 */ MTK_PULL_PUPD_R1R0_TYPE, /* 13 */ 704 + MTK_PULL_PUPD_R1R0_TYPE, /* 14 */ MTK_PULL_PUPD_R1R0_TYPE, /* 15 */ 705 + MTK_PULL_PU_PD_TYPE, /* 16 */ MTK_PULL_PU_PD_TYPE, /* 17 */ 706 + MTK_PULL_PU_PD_TYPE, /* 18 */ MTK_PULL_PU_PD_TYPE, /* 19 */ 707 + MTK_PULL_PU_PD_TYPE, /* 20 */ MTK_PULL_PU_PD_TYPE, /* 21 */ 708 + MTK_PULL_PU_PD_TYPE, /* 22 */ MTK_PULL_PU_PD_TYPE, /* 23 */ 709 + MTK_PULL_PU_PD_RSEL_TYPE, /* 24 */ MTK_PULL_PU_PD_RSEL_TYPE, /* 25 */ 710 + MTK_PULL_PU_PD_TYPE, /* 26 */ MTK_PULL_PU_PD_TYPE, /* 27 */ 711 + MTK_PULL_PU_PD_TYPE, /* 28 */ MTK_PULL_PU_PD_TYPE, /* 29 */ 712 + MTK_PULL_PU_PD_TYPE, /* 30 */ MTK_PULL_PU_PD_TYPE, /* 31 */ 713 + MTK_PULL_PU_PD_TYPE, /* 32 */ MTK_PULL_PU_PD_TYPE, /* 33 */ 714 + MTK_PULL_PU_PD_TYPE, /* 34 */ MTK_PULL_PU_PD_TYPE, /* 35 */ 715 + MTK_PULL_PU_PD_TYPE, /* 36 */ MTK_PULL_PU_PD_TYPE, /* 37 */ 716 + MTK_PULL_PU_PD_TYPE, /* 38 */ MTK_PULL_PU_PD_TYPE, /* 39 */ 717 + MTK_PULL_PU_PD_TYPE, /* 40 */ MTK_PULL_PU_PD_TYPE, /* 41 */ 718 + MTK_PULL_PU_PD_TYPE, /* 42 */ MTK_PULL_PU_PD_TYPE, /* 43 */ 719 + MTK_PULL_PU_PD_TYPE, /* 44 */ MTK_PULL_PUPD_R1R0_TYPE, /* 45 */ 720 + MTK_PULL_PUPD_R1R0_TYPE, /* 46 */ MTK_PULL_PUPD_R1R0_TYPE, /* 47 */ 721 + MTK_PULL_PUPD_R1R0_TYPE, /* 48 */ MTK_PULL_PUPD_R1R0_TYPE, /* 49 */ 722 + MTK_PULL_PUPD_R1R0_TYPE, /* 50 */ MTK_PULL_PUPD_R1R0_TYPE, /* 51 */ 723 + MTK_PULL_PUPD_R1R0_TYPE, /* 52 */ MTK_PULL_PUPD_R1R0_TYPE, /* 53 */ 724 + MTK_PULL_PUPD_R1R0_TYPE, /* 54 */ MTK_PULL_PUPD_R1R0_TYPE, /* 55 */ 725 + MTK_PULL_PUPD_R1R0_TYPE, /* 56 */ MTK_PULL_PU_PD_TYPE, /* 57 */ 726 + MTK_PULL_PU_PD_TYPE, /* 58 */ MTK_PULL_PU_PD_TYPE, /* 59 */ 727 + MTK_PULL_PU_PD_TYPE, /* 60 */ MTK_PULL_PU_PD_TYPE, /* 61 */ 728 + MTK_PULL_PU_PD_TYPE, /* 62 */ MTK_PULL_PU_PD_TYPE, /* 63 */ 729 + MTK_PULL_PU_PD_TYPE, /* 64 */ MTK_PULL_PU_PD_TYPE, /* 65 */ 730 + MTK_PULL_PU_PD_TYPE, /* 66 */ MTK_PULL_PU_PD_TYPE, /* 67 */ 731 + MTK_PULL_PU_PD_TYPE, /* 68 */ MTK_PULL_PU_PD_TYPE, /* 69 */ 732 + MTK_PULL_PU_PD_TYPE, /* 70 */ MTK_PULL_PU_PD_TYPE, /* 71 */ 733 + MTK_PULL_PU_PD_TYPE, /* 72 */ MTK_PULL_PU_PD_TYPE, /* 73 */ 734 + MTK_PULL_PU_PD_TYPE, /* 74 */ MTK_PULL_PU_PD_TYPE, /* 75 */ 735 + MTK_PULL_PU_PD_TYPE, /* 76 */ MTK_PULL_PU_PD_TYPE, /* 77 */ 736 + MTK_PULL_PU_PD_TYPE, /* 78 */ MTK_PULL_PU_PD_TYPE, /* 79 */ 737 + MTK_PULL_PU_PD_TYPE, /* 80 */ MTK_PULL_PU_PD_TYPE, /* 81 */ 738 + MTK_PULL_PU_PD_TYPE, /* 82 */ MTK_PULL_PU_PD_TYPE, /* 83 */ 739 + MTK_PULL_PU_PD_TYPE, /* 84 */ MTK_PULL_PU_PD_TYPE, /* 85 */ 740 + MTK_PULL_PU_PD_TYPE, /* 86 */ MTK_PULL_PU_PD_TYPE, /* 87 */ 741 + MTK_PULL_PU_PD_TYPE, /* 88 */ MTK_PULL_PU_PD_TYPE, /* 89 */ 742 + MTK_PULL_PU_PD_TYPE, /* 90 */ MTK_PULL_PU_PD_TYPE, /* 91 */ 743 + MTK_PULL_PU_PD_TYPE, /* 92 */ MTK_PULL_PU_PD_TYPE, /* 93 */ 744 + MTK_PULL_PU_PD_TYPE, /* 94 */ MTK_PULL_PU_PD_TYPE, /* 95 */ 745 + MTK_PULL_PU_PD_TYPE, /* 96 */ MTK_PULL_PU_PD_TYPE, /* 97 */ 746 + MTK_PULL_PU_PD_TYPE, /* 98 */ MTK_PULL_PU_PD_TYPE, /* 99 */ 747 + MTK_PULL_PU_PD_TYPE, /* 100 */ MTK_PULL_PU_PD_TYPE, /* 101 */ 748 + MTK_PULL_PU_PD_TYPE, /* 102 */ MTK_PULL_PU_PD_TYPE, /* 103 */ 749 + MTK_PULL_PU_PD_TYPE, /* 104 */ MTK_PULL_PU_PD_TYPE, /* 105 */ 750 + MTK_PULL_PU_PD_TYPE, /* 106 */ MTK_PULL_PU_PD_TYPE, /* 107 */ 751 + MTK_PULL_PU_PD_TYPE, /* 108 */ MTK_PULL_PU_PD_TYPE, /* 109 */ 752 + MTK_PULL_PU_PD_TYPE, /* 110 */ MTK_PULL_PU_PD_TYPE, /* 111 */ 753 + MTK_PULL_PU_PD_TYPE, /* 112 */ MTK_PULL_PU_PD_TYPE, /* 113 */ 754 + MTK_PULL_PU_PD_TYPE, /* 114 */ MTK_PULL_PU_PD_TYPE, /* 115 */ 755 + MTK_PULL_PU_PD_TYPE, /* 116 */ MTK_PULL_PU_PD_TYPE, /* 117 */ 756 + MTK_PULL_PU_PD_RSEL_TYPE, /* 118 */ MTK_PULL_PU_PD_RSEL_TYPE, /* 119 */ 757 + MTK_PULL_PU_PD_RSEL_TYPE, /* 120 */ MTK_PULL_PU_PD_RSEL_TYPE, /* 121 */ 758 + MTK_PULL_PU_PD_RSEL_TYPE, /* 122 */ MTK_PULL_PU_PD_RSEL_TYPE, /* 123 */ 759 + MTK_PULL_PU_PD_RSEL_TYPE, /* 124 */ MTK_PULL_PU_PD_RSEL_TYPE, /* 125 */ 760 + MTK_PULL_PU_PD_TYPE, /* 126 */ MTK_PULL_PU_PD_TYPE, /* 127 */ 761 + MTK_PULL_PU_PD_TYPE, /* 128 */ MTK_PULL_PU_PD_TYPE, /* 129 */ 762 + MTK_PULL_PU_PD_TYPE, /* 130 */ MTK_PULL_PU_PD_TYPE, /* 131 */ 763 + MTK_PULL_PU_PD_TYPE, /* 132 */ MTK_PULL_PU_PD_TYPE, /* 133 */ 764 + MTK_PULL_PU_PD_TYPE, /* 134 */ MTK_PULL_PU_PD_TYPE, /* 135 */ 765 + MTK_PULL_PU_PD_TYPE, /* 136 */ MTK_PULL_PU_PD_TYPE, /* 137 */ 766 + MTK_PULL_PU_PD_TYPE, /* 138 */ MTK_PULL_PU_PD_TYPE, /* 139 */ 767 + MTK_PULL_PU_PD_RSEL_TYPE, /* 140 */ MTK_PULL_PU_PD_RSEL_TYPE, /* 141 */ 768 + MTK_PULL_PU_PD_RSEL_TYPE, /* 142 */ MTK_PULL_PU_PD_TYPE, /* 143 */ 769 + MTK_PULL_PU_PD_TYPE, /* 144 */ MTK_PULL_PU_PD_TYPE, /* 145 */ 770 + MTK_PULL_PU_PD_TYPE, /* 146 */ MTK_PULL_PU_PD_TYPE, /* 147 */ 771 + MTK_PULL_PU_PD_TYPE, /* 148 */ MTK_PULL_PU_PD_TYPE, /* 149 */ 772 + MTK_PULL_PU_PD_TYPE, /* 150 */ MTK_PULL_PU_PD_TYPE, /* 151 */ 773 + MTK_PULL_PUPD_R1R0_TYPE, /* 152 */ MTK_PULL_PUPD_R1R0_TYPE, /* 153 */ 774 + MTK_PULL_PUPD_R1R0_TYPE, /* 154 */ MTK_PULL_PUPD_R1R0_TYPE, /* 155 */ 775 + MTK_PULL_PU_PD_TYPE, /* 156 */ MTK_PULL_PU_PD_TYPE, /* 157 */ 776 + MTK_PULL_PU_PD_TYPE, /* 158 */ MTK_PULL_PU_PD_TYPE, /* 159 */ 777 + MTK_PULL_PU_PD_RSEL_TYPE, /* 160 */ MTK_PULL_PU_PD_RSEL_TYPE, /* 161 */ 778 + MTK_PULL_PU_PD_TYPE, /* 162 */ MTK_PULL_PU_PD_TYPE, /* 163 */ 779 + MTK_PULL_PU_PD_TYPE, /* 164 */ MTK_PULL_PU_PD_TYPE, /* 165 */ 780 + MTK_PULL_PU_PD_TYPE, /* 166 */ MTK_PULL_PU_PD_TYPE, /* 167 */ 781 + MTK_PULL_PU_PD_TYPE, /* 168 */ MTK_PULL_PU_PD_TYPE, /* 169 */ 782 + MTK_PULL_PU_PD_TYPE, /* 170 */ MTK_PULL_PU_PD_TYPE, /* 171 */ 783 + MTK_PULL_PU_PD_TYPE, /* 172 */ MTK_PULL_PU_PD_TYPE, /* 173 */ 784 + MTK_PULL_PU_PD_TYPE, /* 174 */ MTK_PULL_PU_PD_TYPE, /* 175 */ 785 + MTK_PULL_PU_PD_TYPE, /* 176 */ MTK_PULL_PU_PD_TYPE, /* 177 */ 786 + MTK_PULL_PU_PD_TYPE, /* 178 */ MTK_PULL_PU_PD_TYPE, /* 179 */ 787 + MTK_PULL_PU_PD_TYPE, /* 180 */ MTK_PULL_PU_PD_TYPE, /* 181 */ 788 + MTK_PULL_PU_PD_TYPE, /* 182 */ MTK_PULL_PUPD_R1R0_TYPE, /* 183 */ 789 + MTK_PULL_PUPD_R1R0_TYPE, /* 184 */ MTK_PULL_PUPD_R1R0_TYPE, /* 185 */ 790 + MTK_PULL_PUPD_R1R0_TYPE, /* 186 */ MTK_PULL_PUPD_R1R0_TYPE, /* 187 */ 791 + MTK_PULL_PUPD_R1R0_TYPE, /* 188 */ MTK_PULL_PUPD_R1R0_TYPE, /* 189 */ 792 + MTK_PULL_PUPD_R1R0_TYPE, /* 190 */ MTK_PULL_PUPD_R1R0_TYPE, /* 191 */ 793 + MTK_PULL_PUPD_R1R0_TYPE, /* 192 */ MTK_PULL_PUPD_R1R0_TYPE, /* 193 */ 794 + MTK_PULL_PUPD_R1R0_TYPE, /* 194 */ MTK_PULL_PU_PD_TYPE, /* 195 */ 795 + MTK_PULL_PU_PD_TYPE, /* 196 */ MTK_PULL_PU_PD_TYPE, /* 197 */ 796 + MTK_PULL_PU_PD_TYPE, /* 198 */ MTK_PULL_PU_PD_TYPE, /* 199 */ 797 + MTK_PULL_PU_PD_RSEL_TYPE, /* 200 */ MTK_PULL_PU_PD_RSEL_TYPE, /* 201 */ 798 + MTK_PULL_PU_PD_RSEL_TYPE, /* 202 */ MTK_PULL_PU_PD_RSEL_TYPE, /* 203 */ 799 + MTK_PULL_PU_PD_RSEL_TYPE, /* 204 */ MTK_PULL_PU_PD_RSEL_TYPE, /* 205 */ 800 + MTK_PULL_PU_PD_TYPE, /* 206 */ MTK_PULL_PU_PD_TYPE, /* 207 */ 801 + MTK_PULL_PU_PD_TYPE, /* 208 */ MTK_PULL_PU_PD_TYPE, /* 209 */ 802 + MTK_PULL_PU_PD_TYPE, /* 210 */ MTK_PULL_PU_PD_TYPE, /* 211 */ 803 + MTK_PULL_PU_PD_TYPE, /* 212 */ MTK_PULL_PU_PD_TYPE, /* 213 */ 804 + MTK_PULL_PU_PD_TYPE, /* 214 */ MTK_PULL_PU_PD_TYPE, /* 215 */ 805 + MTK_PULL_PU_PD_TYPE, /* 216 */ MTK_PULL_PU_PD_TYPE, /* 217 */ 806 + MTK_PULL_PU_PD_TYPE, /* 218 */ MTK_PULL_PU_PD_TYPE, /* 219 */ 807 + }; 808 + 809 + static const char * const mt6893_pinctrl_register_base_name[] = { 810 + "base", "rm", "bm", "bl", "br", "lm", "lb", "rt", "lt", "tl", 811 + }; 812 + 813 + static const struct mtk_pin_reg_calc mt6893_reg_cals[PINCTRL_PIN_REG_MAX] = { 814 + [PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt6893_pin_mode_range), 815 + [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt6893_pin_dir_range), 816 + [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt6893_pin_di_range), 817 + [PINCTRL_PIN_REG_DO] = MTK_RANGE(mt6893_pin_do_range), 818 + [PINCTRL_PIN_REG_SR] = MTK_RANGE(mt6893_pin_dir_range), 819 + [PINCTRL_PIN_REG_SMT] = MTK_RANGE(mt6893_pin_smt_range), 820 + [PINCTRL_PIN_REG_IES] = MTK_RANGE(mt6893_pin_ies_range), 821 + [PINCTRL_PIN_REG_PU] = MTK_RANGE(mt6893_pin_pu_range), 822 + [PINCTRL_PIN_REG_PD] = MTK_RANGE(mt6893_pin_pd_range), 823 + [PINCTRL_PIN_REG_DRV] = MTK_RANGE(mt6893_pin_drv_range), 824 + [PINCTRL_PIN_REG_PUPD] = MTK_RANGE(mt6893_pin_pupd_range), 825 + [PINCTRL_PIN_REG_R0] = MTK_RANGE(mt6893_pin_r0_range), 826 + [PINCTRL_PIN_REG_R1] = MTK_RANGE(mt6893_pin_r1_range), 827 + [PINCTRL_PIN_REG_DRV_ADV] = MTK_RANGE(mt6893_pin_drv_adv_range), 828 + [PINCTRL_PIN_REG_RSEL] = MTK_RANGE(mt6893_pin_rsel_range), 829 + }; 830 + 831 + static const struct mtk_eint_hw mt6893_eint_hw = { 832 + .port_mask = 7, 833 + .ports = 7, 834 + .ap_num = 224, 835 + .db_cnt = 32, 836 + .db_time = debounce_time_mt6765, 837 + }; 838 + 839 + static const struct mtk_pin_soc mt6893_data = { 840 + .reg_cal = mt6893_reg_cals, 841 + .pins = mtk_pins_mt6893, 842 + .npins = ARRAY_SIZE(mtk_pins_mt6893), 843 + .ngrps = ARRAY_SIZE(mtk_pins_mt6893), 844 + .eint_hw = &mt6893_eint_hw, 845 + .nfuncs = 8, 846 + .gpio_m = 0, 847 + .base_names = mt6893_pinctrl_register_base_name, 848 + .nbase_names = ARRAY_SIZE(mt6893_pinctrl_register_base_name), 849 + .pull_type = mt6893_pull_type, 850 + .bias_set_combo = mtk_pinconf_bias_set_combo, 851 + .bias_get_combo = mtk_pinconf_bias_get_combo, 852 + .drive_set = mtk_pinconf_drive_set_rev1, 853 + .drive_get = mtk_pinconf_drive_get_rev1, 854 + .adv_drive_set = mtk_pinconf_adv_drive_set_raw, 855 + .adv_drive_get = mtk_pinconf_adv_drive_get_raw, 856 + }; 857 + 858 + static const struct of_device_id mt6893_pinctrl_of_match[] = { 859 + { .compatible = "mediatek,mt6893-pinctrl", .data = &mt6893_data }, 860 + { /* sentinel */ } 861 + }; 862 + 863 + static struct platform_driver mt6893_pinctrl_driver = { 864 + .driver = { 865 + .name = "mt6893-pinctrl", 866 + .of_match_table = mt6893_pinctrl_of_match, 867 + .pm = pm_sleep_ptr(&mtk_paris_pinctrl_pm_ops) 868 + }, 869 + .probe = mtk_paris_pinctrl_probe, 870 + }; 871 + 872 + static int __init mt6893_pinctrl_init(void) 873 + { 874 + return platform_driver_register(&mt6893_pinctrl_driver); 875 + } 876 + 877 + arch_initcall(mt6893_pinctrl_init); 878 + 879 + MODULE_DESCRIPTION("MediaTek MT6893 Pinctrl Driver");
+1860
drivers/pinctrl/mediatek/pinctrl-mt8196.c
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + /* 3 + * Copyright (C) 2025 MediaTek Inc. 4 + * Author: Guodong Liu <Guodong.Liu@mediatek.com> 5 + * Lei Xue <lei.xue@mediatek.com> 6 + * Cathy Xu <ot_cathy.xu@mediatek.com> 7 + */ 8 + 9 + #include <linux/module.h> 10 + #include "pinctrl-mtk-mt8196.h" 11 + #include "pinctrl-paris.h" 12 + 13 + #define PIN_FIELD_BASE(s_pin, e_pin, i_base, s_addr, x_addrs, s_bit, x_bits) \ 14 + PIN_FIELD_CALC(s_pin, e_pin, i_base, s_addr, x_addrs, s_bit, x_bits, \ 15 + 32, 0) 16 + 17 + #define PINS_FIELD_BASE(s_pin, e_pin, i_base, s_addr, x_addrs, s_bit, x_bits) \ 18 + PIN_FIELD_CALC(s_pin, e_pin, i_base, s_addr, x_addrs, s_bit, x_bits, \ 19 + 32, 1) 20 + 21 + static const struct mtk_pin_field_calc mt8196_pin_mode_range[] = { 22 + PIN_FIELD(0, 270, 0x0300, 0x10, 0, 4), 23 + }; 24 + 25 + static const struct mtk_pin_field_calc mt8196_pin_dir_range[] = { 26 + PIN_FIELD(0, 270, 0x0000, 0x10, 0, 1), 27 + }; 28 + 29 + static const struct mtk_pin_field_calc mt8196_pin_di_range[] = { 30 + PIN_FIELD(0, 270, 0x0200, 0x10, 0, 1), 31 + }; 32 + 33 + static const struct mtk_pin_field_calc mt8196_pin_do_range[] = { 34 + PIN_FIELD(0, 270, 0x0100, 0x10, 0, 1), 35 + }; 36 + 37 + static const struct mtk_pin_field_calc mt8196_pin_smt_range[] = { 38 + PIN_FIELD_BASE(0, 0, 8, 0x00d0, 0x10, 0, 1), 39 + PIN_FIELD_BASE(1, 1, 8, 0x00d0, 0x10, 1, 1), 40 + PIN_FIELD_BASE(2, 2, 11, 0x00a0, 0x10, 1, 1), 41 + PIN_FIELD_BASE(3, 3, 11, 0x00a0, 0x10, 1, 1), 42 + PIN_FIELD_BASE(4, 4, 11, 0x00a0, 0x10, 2, 1), 43 + PIN_FIELD_BASE(5, 5, 11, 0x00a0, 0x10, 2, 1), 44 + PIN_FIELD_BASE(6, 6, 11, 0x00a0, 0x10, 2, 1), 45 + PIN_FIELD_BASE(7, 7, 11, 0x00a0, 0x10, 2, 1), 46 + PIN_FIELD_BASE(8, 8, 11, 0x00a0, 0x10, 3, 1), 47 + PIN_FIELD_BASE(9, 9, 9, 0x0120, 0x10, 13, 1), 48 + PIN_FIELD_BASE(10, 10, 9, 0x0120, 0x10, 12, 1), 49 + PIN_FIELD_BASE(11, 11, 8, 0x00d0, 0x10, 2, 1), 50 + PIN_FIELD_BASE(12, 12, 9, 0x0120, 0x10, 15, 1), 51 + PIN_FIELD_BASE(13, 13, 6, 0x0120, 0x10, 3, 1), 52 + PIN_FIELD_BASE(14, 14, 3, 0x00c0, 0x10, 0, 1), 53 + PIN_FIELD_BASE(15, 15, 6, 0x0120, 0x10, 0, 1), 54 + PIN_FIELD_BASE(16, 16, 6, 0x0120, 0x10, 3, 1), 55 + PIN_FIELD_BASE(17, 17, 6, 0x0120, 0x10, 3, 1), 56 + PIN_FIELD_BASE(18, 18, 6, 0x0120, 0x10, 1, 1), 57 + PIN_FIELD_BASE(19, 19, 6, 0x0120, 0x10, 2, 1), 58 + PIN_FIELD_BASE(20, 20, 3, 0x00c0, 0x10, 4, 1), 59 + PIN_FIELD_BASE(21, 21, 2, 0x00b0, 0x10, 0, 1), 60 + PIN_FIELD_BASE(22, 22, 2, 0x00b0, 0x10, 1, 1), 61 + PIN_FIELD_BASE(23, 23, 2, 0x00b0, 0x10, 2, 1), 62 + PIN_FIELD_BASE(24, 24, 2, 0x00b0, 0x10, 3, 1), 63 + PIN_FIELD_BASE(25, 25, 2, 0x00b0, 0x10, 4, 1), 64 + PIN_FIELD_BASE(26, 26, 2, 0x00b0, 0x10, 5, 1), 65 + PIN_FIELD_BASE(27, 27, 2, 0x00b0, 0x10, 7, 1), 66 + PIN_FIELD_BASE(28, 28, 2, 0x00b0, 0x10, 7, 1), 67 + PIN_FIELD_BASE(29, 29, 2, 0x00b0, 0x10, 7, 1), 68 + PIN_FIELD_BASE(30, 30, 2, 0x00b0, 0x10, 8, 1), 69 + PIN_FIELD_BASE(31, 31, 2, 0x00b0, 0x10, 8, 1), 70 + PIN_FIELD_BASE(32, 32, 1, 0x00c0, 0x10, 8, 1), 71 + PIN_FIELD_BASE(33, 33, 1, 0x00c0, 0x10, 8, 1), 72 + PIN_FIELD_BASE(34, 34, 1, 0x00c0, 0x10, 8, 1), 73 + PIN_FIELD_BASE(35, 35, 1, 0x00c0, 0x10, 8, 1), 74 + PIN_FIELD_BASE(36, 36, 1, 0x00c0, 0x10, 9, 1), 75 + PIN_FIELD_BASE(37, 37, 1, 0x00c0, 0x10, 9, 1), 76 + PIN_FIELD_BASE(38, 38, 1, 0x00c0, 0x10, 6, 1), 77 + PIN_FIELD_BASE(39, 39, 8, 0x00d0, 0x10, 4, 1), 78 + PIN_FIELD_BASE(40, 40, 8, 0x00d0, 0x10, 3, 1), 79 + PIN_FIELD_BASE(41, 41, 8, 0x00d0, 0x10, 3, 1), 80 + PIN_FIELD_BASE(42, 42, 8, 0x00d0, 0x10, 3, 1), 81 + PIN_FIELD_BASE(43, 43, 8, 0x00d0, 0x10, 3, 1), 82 + PIN_FIELD_BASE(44, 44, 8, 0x00d0, 0x10, 5, 1), 83 + PIN_FIELD_BASE(45, 45, 8, 0x00d0, 0x10, 5, 1), 84 + PIN_FIELD_BASE(46, 46, 8, 0x00d0, 0x10, 6, 1), 85 + PIN_FIELD_BASE(47, 47, 8, 0x00d0, 0x10, 9, 1), 86 + PIN_FIELD_BASE(48, 48, 8, 0x00d0, 0x10, 7, 1), 87 + PIN_FIELD_BASE(49, 49, 8, 0x00d0, 0x10, 10, 1), 88 + PIN_FIELD_BASE(50, 50, 8, 0x00d0, 0x10, 8, 1), 89 + PIN_FIELD_BASE(51, 51, 8, 0x00d0, 0x10, 11, 1), 90 + PIN_FIELD_BASE(52, 52, 9, 0x0120, 0x10, 7, 1), 91 + PIN_FIELD_BASE(53, 53, 9, 0x0120, 0x10, 8, 1), 92 + PIN_FIELD_BASE(54, 54, 9, 0x0120, 0x10, 2, 1), 93 + PIN_FIELD_BASE(55, 55, 9, 0x0120, 0x10, 1, 1), 94 + PIN_FIELD_BASE(56, 56, 9, 0x0120, 0x10, 5, 1), 95 + PIN_FIELD_BASE(57, 57, 9, 0x0120, 0x10, 6, 1), 96 + PIN_FIELD_BASE(58, 58, 9, 0x0120, 0x10, 3, 1), 97 + PIN_FIELD_BASE(59, 59, 9, 0x0120, 0x10, 4, 1), 98 + PIN_FIELD_BASE(60, 60, 9, 0x0120, 0x10, 19, 1), 99 + PIN_FIELD_BASE(61, 61, 9, 0x0120, 0x10, 10, 1), 100 + PIN_FIELD_BASE(62, 62, 9, 0x0120, 0x10, 9, 1), 101 + PIN_FIELD_BASE(63, 63, 9, 0x0120, 0x10, 14, 1), 102 + PIN_FIELD_BASE(64, 64, 9, 0x0120, 0x10, 0, 1), 103 + PIN_FIELD_BASE(65, 65, 9, 0x0120, 0x10, 11, 1), 104 + PIN_FIELD_BASE(66, 66, 9, 0x0120, 0x10, 16, 1), 105 + PIN_FIELD_BASE(67, 67, 9, 0x0120, 0x10, 18, 1), 106 + PIN_FIELD_BASE(68, 68, 9, 0x0120, 0x10, 18, 1), 107 + PIN_FIELD_BASE(69, 69, 9, 0x0120, 0x10, 18, 1), 108 + PIN_FIELD_BASE(70, 70, 9, 0x0120, 0x10, 17, 1), 109 + PIN_FIELD_BASE(71, 71, 9, 0x0120, 0x10, 17, 1), 110 + PIN_FIELD_BASE(72, 72, 9, 0x0120, 0x10, 18, 1), 111 + PIN_FIELD_BASE(73, 73, 9, 0x0120, 0x10, 17, 1), 112 + PIN_FIELD_BASE(74, 74, 9, 0x0120, 0x10, 17, 1), 113 + PIN_FIELD_BASE(75, 75, 10, 0x00b0, 0x10, 2, 1), 114 + PIN_FIELD_BASE(76, 76, 10, 0x00b0, 0x10, 3, 1), 115 + PIN_FIELD_BASE(77, 77, 10, 0x00b0, 0x10, 4, 1), 116 + PIN_FIELD_BASE(78, 78, 10, 0x00b0, 0x10, 5, 1), 117 + PIN_FIELD_BASE(79, 79, 10, 0x00b0, 0x10, 0, 1), 118 + PIN_FIELD_BASE(80, 80, 10, 0x00b0, 0x10, 1, 1), 119 + PIN_FIELD_BASE(81, 81, 11, 0x00a0, 0x10, 0, 1), 120 + PIN_FIELD_BASE(82, 82, 11, 0x00a0, 0x10, 0, 1), 121 + PIN_FIELD_BASE(83, 83, 11, 0x00a0, 0x10, 0, 1), 122 + PIN_FIELD_BASE(84, 84, 11, 0x00a0, 0x10, 0, 1), 123 + PIN_FIELD_BASE(85, 85, 11, 0x00a0, 0x10, 0, 1), 124 + PIN_FIELD_BASE(86, 86, 11, 0x00a0, 0x10, 0, 1), 125 + PIN_FIELD_BASE(87, 87, 11, 0x00a0, 0x10, 0, 1), 126 + PIN_FIELD_BASE(88, 88, 11, 0x00a0, 0x10, 0, 1), 127 + PIN_FIELD_BASE(89, 89, 11, 0x00a0, 0x10, 1, 1), 128 + PIN_FIELD_BASE(90, 90, 11, 0x00a0, 0x10, 1, 1), 129 + PIN_FIELD_BASE(91, 91, 12, 0x00c0, 0x10, 5, 1), 130 + PIN_FIELD_BASE(92, 92, 12, 0x00c0, 0x10, 5, 1), 131 + PIN_FIELD_BASE(93, 93, 12, 0x00c0, 0x10, 5, 1), 132 + PIN_FIELD_BASE(94, 94, 12, 0x00c0, 0x10, 4, 1), 133 + PIN_FIELD_BASE(95, 95, 12, 0x00c0, 0x10, 0, 1), 134 + PIN_FIELD_BASE(96, 96, 12, 0x00c0, 0x10, 2, 1), 135 + PIN_FIELD_BASE(97, 97, 12, 0x00c0, 0x10, 1, 1), 136 + PIN_FIELD_BASE(98, 98, 12, 0x00c0, 0x10, 3, 1), 137 + PIN_FIELD_BASE(99, 99, 12, 0x00c0, 0x10, 6, 1), 138 + PIN_FIELD_BASE(100, 100, 12, 0x00c0, 0x10, 9, 1), 139 + PIN_FIELD_BASE(101, 101, 12, 0x00c0, 0x10, 7, 1), 140 + PIN_FIELD_BASE(102, 102, 12, 0x00c0, 0x10, 10, 1), 141 + PIN_FIELD_BASE(103, 103, 12, 0x00c0, 0x10, 4, 1), 142 + PIN_FIELD_BASE(104, 104, 12, 0x00c0, 0x10, 8, 1), 143 + PIN_FIELD_BASE(105, 105, 12, 0x00c0, 0x10, 11, 1), 144 + PIN_FIELD_BASE(106, 106, 5, 0x00b0, 0x10, 0, 1), 145 + PIN_FIELD_BASE(107, 107, 5, 0x00b0, 0x10, 0, 1), 146 + PIN_FIELD_BASE(108, 108, 5, 0x00b0, 0x10, 0, 1), 147 + PIN_FIELD_BASE(109, 109, 5, 0x00b0, 0x10, 0, 1), 148 + PIN_FIELD_BASE(110, 110, 5, 0x00b0, 0x10, 1, 1), 149 + PIN_FIELD_BASE(111, 111, 5, 0x00b0, 0x10, 1, 1), 150 + PIN_FIELD_BASE(112, 112, 5, 0x00b0, 0x10, 1, 1), 151 + PIN_FIELD_BASE(113, 113, 5, 0x00b0, 0x10, 1, 1), 152 + PIN_FIELD_BASE(114, 114, 5, 0x00b0, 0x10, 0, 1), 153 + PIN_FIELD_BASE(115, 115, 5, 0x00b0, 0x10, 2, 1), 154 + PIN_FIELD_BASE(116, 116, 5, 0x00b0, 0x10, 2, 1), 155 + PIN_FIELD_BASE(117, 117, 5, 0x00b0, 0x10, 2, 1), 156 + PIN_FIELD_BASE(118, 118, 6, 0x0120, 0x10, 6, 1), 157 + PIN_FIELD_BASE(119, 119, 6, 0x0120, 0x10, 7, 1), 158 + PIN_FIELD_BASE(120, 120, 6, 0x0120, 0x10, 9, 1), 159 + PIN_FIELD_BASE(121, 121, 6, 0x0120, 0x10, 8, 1), 160 + PIN_FIELD_BASE(122, 122, 6, 0x0120, 0x10, 3, 1), 161 + PIN_FIELD_BASE(123, 123, 6, 0x0120, 0x10, 4, 1), 162 + PIN_FIELD_BASE(124, 124, 6, 0x0120, 0x10, 5, 1), 163 + PIN_FIELD_BASE(125, 125, 7, 0x00f0, 0x10, 0, 1), 164 + PIN_FIELD_BASE(126, 126, 7, 0x00f0, 0x10, 1, 1), 165 + PIN_FIELD_BASE(127, 127, 7, 0x00f0, 0x10, 2, 1), 166 + PIN_FIELD_BASE(128, 128, 7, 0x00f0, 0x10, 3, 1), 167 + PIN_FIELD_BASE(129, 129, 7, 0x00f0, 0x10, 4, 1), 168 + PIN_FIELD_BASE(130, 130, 7, 0x00f0, 0x10, 5, 1), 169 + PIN_FIELD_BASE(131, 131, 7, 0x00f0, 0x10, 9, 1), 170 + PIN_FIELD_BASE(132, 132, 7, 0x00f0, 0x10, 11, 1), 171 + PIN_FIELD_BASE(133, 133, 7, 0x00f0, 0x10, 10, 1), 172 + PIN_FIELD_BASE(134, 134, 7, 0x00f0, 0x10, 6, 1), 173 + PIN_FIELD_BASE(135, 135, 7, 0x00f0, 0x10, 8, 1), 174 + PIN_FIELD_BASE(136, 136, 7, 0x00f0, 0x10, 7, 1), 175 + PIN_FIELD_BASE(137, 137, 4, 0x00d0, 0x10, 2, 1), 176 + PIN_FIELD_BASE(138, 138, 4, 0x00d0, 0x10, 3, 1), 177 + PIN_FIELD_BASE(139, 139, 4, 0x00d0, 0x10, 4, 1), 178 + PIN_FIELD_BASE(140, 140, 4, 0x00d0, 0x10, 5, 1), 179 + PIN_FIELD_BASE(141, 141, 4, 0x00d0, 0x10, 6, 1), 180 + PIN_FIELD_BASE(142, 142, 4, 0x00d0, 0x10, 7, 1), 181 + PIN_FIELD_BASE(143, 143, 4, 0x00d0, 0x10, 8, 1), 182 + PIN_FIELD_BASE(144, 144, 4, 0x00d0, 0x10, 9, 1), 183 + PIN_FIELD_BASE(145, 145, 4, 0x00d0, 0x10, 10, 1), 184 + PIN_FIELD_BASE(146, 146, 4, 0x00d0, 0x10, 10, 1), 185 + PIN_FIELD_BASE(147, 147, 4, 0x00d0, 0x10, 0, 1), 186 + PIN_FIELD_BASE(148, 148, 4, 0x00d0, 0x10, 1, 1), 187 + PIN_FIELD_BASE(149, 149, 4, 0x00d0, 0x10, 11, 1), 188 + PIN_FIELD_BASE(150, 150, 4, 0x00d0, 0x10, 11, 1), 189 + PIN_FIELD_BASE(151, 151, 4, 0x00d0, 0x10, 11, 1), 190 + PIN_FIELD_BASE(152, 152, 4, 0x00d0, 0x10, 11, 1), 191 + PIN_FIELD_BASE(153, 153, 4, 0x00d0, 0x10, 13, 1), 192 + PIN_FIELD_BASE(154, 154, 4, 0x00d0, 0x10, 13, 1), 193 + PIN_FIELD_BASE(155, 155, 4, 0x00d0, 0x10, 12, 1), 194 + PIN_FIELD_BASE(156, 156, 4, 0x00d0, 0x10, 12, 1), 195 + PIN_FIELD_BASE(157, 157, 2, 0x00b0, 0x10, 6, 1), 196 + PIN_FIELD_BASE(158, 158, 2, 0x00b0, 0x10, 6, 1), 197 + PIN_FIELD_BASE(159, 159, 2, 0x00b0, 0x10, 6, 1), 198 + PIN_FIELD_BASE(160, 160, 3, 0x00c0, 0x10, 1, 1), 199 + PIN_FIELD_BASE(161, 161, 3, 0x00c0, 0x10, 2, 1), 200 + PIN_FIELD_BASE(162, 162, 3, 0x00c0, 0x10, 2, 1), 201 + PIN_FIELD_BASE(163, 163, 3, 0x00c0, 0x10, 2, 1), 202 + PIN_FIELD_BASE(164, 164, 3, 0x00c0, 0x10, 7, 1), 203 + PIN_FIELD_BASE(165, 165, 3, 0x00c0, 0x10, 9, 1), 204 + PIN_FIELD_BASE(166, 166, 3, 0x00c0, 0x10, 8, 1), 205 + PIN_FIELD_BASE(167, 167, 3, 0x00c0, 0x10, 10, 1), 206 + PIN_FIELD_BASE(168, 168, 3, 0x00c0, 0x10, 11, 1), 207 + PIN_FIELD_BASE(169, 169, 3, 0x00c0, 0x10, 3, 1), 208 + PIN_FIELD_BASE(170, 170, 3, 0x00c0, 0x10, 12, 1), 209 + PIN_FIELD_BASE(171, 171, 3, 0x00c0, 0x10, 3, 1), 210 + PIN_FIELD_BASE(172, 172, 3, 0x00c0, 0x10, 3, 1), 211 + PIN_FIELD_BASE(173, 173, 3, 0x00c0, 0x10, 3, 1), 212 + PIN_FIELD_BASE(174, 174, 1, 0x00c0, 0x10, 9, 1), 213 + PIN_FIELD_BASE(175, 175, 1, 0x00c0, 0x10, 9, 1), 214 + PIN_FIELD_BASE(176, 176, 1, 0x00c0, 0x10, 10, 1), 215 + PIN_FIELD_BASE(177, 177, 1, 0x00c0, 0x10, 11, 1), 216 + PIN_FIELD_BASE(178, 178, 1, 0x00c0, 0x10, 7, 1), 217 + PIN_FIELD_BASE(179, 179, 1, 0x00c0, 0x10, 7, 1), 218 + PIN_FIELD_BASE(180, 180, 1, 0x00c0, 0x10, 0, 1), 219 + PIN_FIELD_BASE(181, 181, 1, 0x00c0, 0x10, 1, 1), 220 + PIN_FIELD_BASE(182, 182, 1, 0x00c0, 0x10, 2, 1), 221 + PIN_FIELD_BASE(183, 183, 1, 0x00c0, 0x10, 3, 1), 222 + PIN_FIELD_BASE(184, 184, 1, 0x00c0, 0x10, 4, 1), 223 + PIN_FIELD_BASE(185, 185, 1, 0x00c0, 0x10, 5, 1), 224 + PIN_FIELD_BASE(186, 186, 13, 0x0110, 0x10, 14, 1), 225 + PIN_FIELD_BASE(187, 187, 13, 0x0110, 0x10, 14, 1), 226 + PIN_FIELD_BASE(188, 188, 13, 0x0110, 0x10, 4, 1), 227 + PIN_FIELD_BASE(189, 189, 13, 0x0110, 0x10, 9, 1), 228 + PIN_FIELD_BASE(190, 190, 13, 0x0110, 0x10, 5, 1), 229 + PIN_FIELD_BASE(191, 191, 13, 0x0110, 0x10, 10, 1), 230 + PIN_FIELD_BASE(192, 192, 13, 0x0110, 0x10, 0, 1), 231 + PIN_FIELD_BASE(193, 193, 13, 0x0110, 0x10, 15, 1), 232 + PIN_FIELD_BASE(194, 194, 13, 0x0110, 0x10, 6, 1), 233 + PIN_FIELD_BASE(195, 195, 13, 0x0110, 0x10, 11, 1), 234 + PIN_FIELD_BASE(196, 196, 13, 0x0110, 0x10, 1, 1), 235 + PIN_FIELD_BASE(197, 197, 13, 0x0110, 0x10, 16, 1), 236 + PIN_FIELD_BASE(198, 198, 13, 0x0110, 0x10, 7, 1), 237 + PIN_FIELD_BASE(199, 199, 13, 0x0110, 0x10, 12, 1), 238 + PIN_FIELD_BASE(200, 200, 13, 0x0110, 0x10, 19, 1), 239 + PIN_FIELD_BASE(201, 201, 13, 0x0110, 0x10, 22, 1), 240 + PIN_FIELD_BASE(202, 202, 13, 0x0110, 0x10, 8, 1), 241 + PIN_FIELD_BASE(203, 203, 13, 0x0110, 0x10, 13, 1), 242 + PIN_FIELD_BASE(204, 204, 13, 0x0110, 0x10, 2, 1), 243 + PIN_FIELD_BASE(205, 205, 13, 0x0110, 0x10, 3, 1), 244 + PIN_FIELD_BASE(206, 206, 13, 0x0110, 0x10, 18, 1), 245 + PIN_FIELD_BASE(207, 207, 13, 0x0110, 0x10, 17, 1), 246 + PIN_FIELD_BASE(208, 208, 13, 0x0110, 0x10, 17, 1), 247 + PIN_FIELD_BASE(209, 209, 13, 0x0110, 0x10, 17, 1), 248 + PIN_FIELD_BASE(210, 210, 14, 0x0130, 0x10, 0, 1), 249 + PIN_FIELD_BASE(211, 211, 14, 0x0130, 0x10, 1, 1), 250 + PIN_FIELD_BASE(212, 212, 14, 0x0130, 0x10, 2, 1), 251 + PIN_FIELD_BASE(213, 213, 14, 0x0130, 0x10, 3, 1), 252 + PIN_FIELD_BASE(214, 214, 13, 0x0110, 0x10, 20, 1), 253 + PIN_FIELD_BASE(215, 215, 13, 0x0110, 0x10, 21, 1), 254 + PIN_FIELD_BASE(216, 216, 14, 0x0130, 0x10, 11, 1), 255 + PIN_FIELD_BASE(217, 217, 14, 0x0130, 0x10, 11, 1), 256 + PIN_FIELD_BASE(218, 218, 14, 0x0130, 0x10, 11, 1), 257 + PIN_FIELD_BASE(219, 219, 14, 0x0130, 0x10, 4, 1), 258 + PIN_FIELD_BASE(220, 220, 14, 0x0130, 0x10, 11, 1), 259 + PIN_FIELD_BASE(221, 221, 14, 0x0130, 0x10, 12, 1), 260 + PIN_FIELD_BASE(222, 222, 14, 0x0130, 0x10, 22, 1), 261 + PIN_FIELD_BASE(223, 223, 14, 0x0130, 0x10, 21, 1), 262 + PIN_FIELD_BASE(224, 224, 14, 0x0130, 0x10, 5, 1), 263 + PIN_FIELD_BASE(225, 225, 14, 0x0130, 0x10, 6, 1), 264 + PIN_FIELD_BASE(226, 226, 14, 0x0130, 0x10, 7, 1), 265 + PIN_FIELD_BASE(227, 227, 14, 0x0130, 0x10, 8, 1), 266 + PIN_FIELD_BASE(228, 228, 14, 0x0130, 0x10, 9, 1), 267 + PIN_FIELD_BASE(229, 229, 14, 0x0130, 0x10, 10, 1), 268 + PIN_FIELD_BASE(230, 230, 15, 0x00e0, 0x10, 0, 1), 269 + PIN_FIELD_BASE(231, 231, 15, 0x00e0, 0x10, 0, 1), 270 + PIN_FIELD_BASE(232, 232, 15, 0x00e0, 0x10, 0, 1), 271 + PIN_FIELD_BASE(233, 233, 15, 0x00e0, 0x10, 1, 1), 272 + PIN_FIELD_BASE(234, 234, 15, 0x00e0, 0x10, 1, 1), 273 + PIN_FIELD_BASE(235, 235, 15, 0x00e0, 0x10, 1, 1), 274 + PIN_FIELD_BASE(236, 236, 15, 0x00e0, 0x10, 1, 1), 275 + PIN_FIELD_BASE(237, 237, 15, 0x00e0, 0x10, 2, 1), 276 + PIN_FIELD_BASE(238, 238, 15, 0x00e0, 0x10, 2, 1), 277 + PIN_FIELD_BASE(239, 239, 15, 0x00e0, 0x10, 2, 1), 278 + PIN_FIELD_BASE(240, 240, 15, 0x00e0, 0x10, 2, 1), 279 + PIN_FIELD_BASE(241, 241, 15, 0x00e0, 0x10, 3, 1), 280 + PIN_FIELD_BASE(242, 242, 15, 0x00e0, 0x10, 3, 1), 281 + PIN_FIELD_BASE(243, 243, 15, 0x00e0, 0x10, 3, 1), 282 + PIN_FIELD_BASE(244, 244, 15, 0x00e0, 0x10, 3, 1), 283 + PIN_FIELD_BASE(245, 245, 15, 0x00e0, 0x10, 4, 1), 284 + PIN_FIELD_BASE(246, 246, 15, 0x00e0, 0x10, 5, 1), 285 + PIN_FIELD_BASE(247, 247, 15, 0x00e0, 0x10, 5, 1), 286 + PIN_FIELD_BASE(248, 248, 15, 0x00e0, 0x10, 4, 1), 287 + PIN_FIELD_BASE(249, 249, 15, 0x00e0, 0x10, 4, 1), 288 + PIN_FIELD_BASE(250, 250, 15, 0x00e0, 0x10, 4, 1), 289 + PIN_FIELD_BASE(251, 251, 3, 0x00c0, 0x10, 4, 1), 290 + PIN_FIELD_BASE(252, 252, 3, 0x00c0, 0x10, 4, 1), 291 + PIN_FIELD_BASE(253, 253, 3, 0x00c0, 0x10, 4, 1), 292 + PIN_FIELD_BASE(254, 254, 3, 0x00c0, 0x10, 5, 1), 293 + PIN_FIELD_BASE(255, 255, 3, 0x00c0, 0x10, 5, 1), 294 + PIN_FIELD_BASE(256, 256, 3, 0x00c0, 0x10, 5, 1), 295 + PIN_FIELD_BASE(257, 257, 3, 0x00c0, 0x10, 5, 1), 296 + PIN_FIELD_BASE(258, 258, 3, 0x00c0, 0x10, 6, 1), 297 + PIN_FIELD_BASE(259, 259, 14, 0x0130, 0x10, 13, 1), 298 + PIN_FIELD_BASE(260, 260, 14, 0x0130, 0x10, 14, 1), 299 + PIN_FIELD_BASE(261, 261, 14, 0x0130, 0x10, 15, 1), 300 + PIN_FIELD_BASE(262, 262, 14, 0x0130, 0x10, 16, 1), 301 + PIN_FIELD_BASE(263, 263, 14, 0x0130, 0x10, 17, 1), 302 + PIN_FIELD_BASE(264, 264, 14, 0x0130, 0x10, 18, 1), 303 + PIN_FIELD_BASE(265, 265, 14, 0x0130, 0x10, 19, 1), 304 + PIN_FIELD_BASE(266, 266, 14, 0x0130, 0x10, 20, 1), 305 + PIN_FIELD_BASE(267, 267, 15, 0x00e0, 0x10, 8, 1), 306 + PIN_FIELD_BASE(268, 268, 15, 0x00e0, 0x10, 9, 1), 307 + PIN_FIELD_BASE(269, 269, 15, 0x00e0, 0x10, 6, 1), 308 + PIN_FIELD_BASE(270, 270, 15, 0x00e0, 0x10, 7, 1), 309 + }; 310 + 311 + static const struct mtk_pin_field_calc mt8196_pin_ies_range[] = { 312 + PIN_FIELD_BASE(0, 0, 8, 0x0060, 0x10, 0, 1), 313 + PIN_FIELD_BASE(1, 1, 8, 0x0060, 0x10, 1, 1), 314 + PIN_FIELD_BASE(2, 2, 11, 0x0040, 0x10, 1, 1), 315 + PIN_FIELD_BASE(3, 3, 11, 0x0040, 0x10, 2, 1), 316 + PIN_FIELD_BASE(4, 4, 11, 0x0040, 0x10, 3, 1), 317 + PIN_FIELD_BASE(5, 5, 11, 0x0040, 0x10, 4, 1), 318 + PIN_FIELD_BASE(6, 6, 11, 0x0040, 0x10, 5, 1), 319 + PIN_FIELD_BASE(7, 7, 11, 0x0040, 0x10, 6, 1), 320 + PIN_FIELD_BASE(8, 8, 11, 0x0040, 0x10, 7, 1), 321 + PIN_FIELD_BASE(9, 9, 9, 0x0070, 0x10, 14, 1), 322 + PIN_FIELD_BASE(10, 10, 9, 0x0070, 0x10, 12, 1), 323 + PIN_FIELD_BASE(11, 11, 8, 0x0060, 0x10, 2, 1), 324 + PIN_FIELD_BASE(12, 12, 9, 0x0070, 0x10, 13, 1), 325 + PIN_FIELD_BASE(13, 13, 6, 0x0060, 0x10, 1, 1), 326 + PIN_FIELD_BASE(14, 14, 3, 0x0050, 0x10, 0, 1), 327 + PIN_FIELD_BASE(15, 15, 6, 0x0060, 0x10, 2, 1), 328 + PIN_FIELD_BASE(16, 16, 6, 0x0060, 0x10, 3, 1), 329 + PIN_FIELD_BASE(17, 17, 6, 0x0060, 0x10, 4, 1), 330 + PIN_FIELD_BASE(18, 18, 6, 0x0060, 0x10, 5, 1), 331 + PIN_FIELD_BASE(19, 19, 6, 0x0060, 0x10, 6, 1), 332 + PIN_FIELD_BASE(20, 20, 3, 0x0050, 0x10, 1, 1), 333 + PIN_FIELD_BASE(21, 21, 2, 0x0050, 0x10, 3, 1), 334 + PIN_FIELD_BASE(22, 22, 2, 0x0050, 0x10, 4, 1), 335 + PIN_FIELD_BASE(23, 23, 2, 0x0050, 0x10, 5, 1), 336 + PIN_FIELD_BASE(24, 24, 2, 0x0050, 0x10, 6, 1), 337 + PIN_FIELD_BASE(25, 25, 2, 0x0050, 0x10, 7, 1), 338 + PIN_FIELD_BASE(26, 26, 2, 0x0050, 0x10, 8, 1), 339 + PIN_FIELD_BASE(27, 27, 2, 0x0050, 0x10, 9, 1), 340 + PIN_FIELD_BASE(28, 28, 2, 0x0050, 0x10, 10, 1), 341 + PIN_FIELD_BASE(29, 29, 2, 0x0050, 0x10, 11, 1), 342 + PIN_FIELD_BASE(30, 30, 2, 0x0050, 0x10, 12, 1), 343 + PIN_FIELD_BASE(31, 31, 2, 0x0050, 0x10, 13, 1), 344 + PIN_FIELD_BASE(32, 32, 1, 0x0050, 0x10, 8, 1), 345 + PIN_FIELD_BASE(33, 33, 1, 0x0050, 0x10, 9, 1), 346 + PIN_FIELD_BASE(34, 34, 1, 0x0050, 0x10, 10, 1), 347 + PIN_FIELD_BASE(35, 35, 1, 0x0050, 0x10, 11, 1), 348 + PIN_FIELD_BASE(36, 36, 1, 0x0050, 0x10, 12, 1), 349 + PIN_FIELD_BASE(37, 37, 1, 0x0050, 0x10, 13, 1), 350 + PIN_FIELD_BASE(38, 38, 1, 0x0050, 0x10, 14, 1), 351 + PIN_FIELD_BASE(39, 39, 8, 0x0060, 0x10, 6, 1), 352 + PIN_FIELD_BASE(40, 40, 8, 0x0060, 0x10, 3, 1), 353 + PIN_FIELD_BASE(41, 41, 8, 0x0060, 0x10, 5, 1), 354 + PIN_FIELD_BASE(42, 42, 8, 0x0060, 0x10, 4, 1), 355 + PIN_FIELD_BASE(43, 43, 8, 0x0060, 0x10, 7, 1), 356 + PIN_FIELD_BASE(44, 44, 8, 0x0060, 0x10, 8, 1), 357 + PIN_FIELD_BASE(45, 45, 8, 0x0060, 0x10, 9, 1), 358 + PIN_FIELD_BASE(46, 46, 8, 0x0060, 0x10, 10, 1), 359 + PIN_FIELD_BASE(47, 47, 8, 0x0060, 0x10, 13, 1), 360 + PIN_FIELD_BASE(48, 48, 8, 0x0060, 0x10, 11, 1), 361 + PIN_FIELD_BASE(49, 49, 8, 0x0060, 0x10, 14, 1), 362 + PIN_FIELD_BASE(50, 50, 8, 0x0060, 0x10, 12, 1), 363 + PIN_FIELD_BASE(51, 51, 8, 0x0060, 0x10, 15, 1), 364 + PIN_FIELD_BASE(52, 52, 9, 0x0070, 0x10, 7, 1), 365 + PIN_FIELD_BASE(53, 53, 9, 0x0070, 0x10, 8, 1), 366 + PIN_FIELD_BASE(54, 54, 9, 0x0070, 0x10, 2, 1), 367 + PIN_FIELD_BASE(55, 55, 9, 0x0070, 0x10, 1, 1), 368 + PIN_FIELD_BASE(56, 56, 9, 0x0070, 0x10, 5, 1), 369 + PIN_FIELD_BASE(57, 57, 9, 0x0070, 0x10, 6, 1), 370 + PIN_FIELD_BASE(58, 58, 9, 0x0070, 0x10, 3, 1), 371 + PIN_FIELD_BASE(59, 59, 9, 0x0070, 0x10, 4, 1), 372 + PIN_FIELD_BASE(60, 60, 9, 0x0070, 0x10, 19, 1), 373 + PIN_FIELD_BASE(61, 61, 9, 0x0070, 0x10, 10, 1), 374 + PIN_FIELD_BASE(62, 62, 9, 0x0070, 0x10, 9, 1), 375 + PIN_FIELD_BASE(63, 63, 9, 0x0070, 0x10, 18, 1), 376 + PIN_FIELD_BASE(64, 64, 9, 0x0070, 0x10, 0, 1), 377 + PIN_FIELD_BASE(65, 65, 9, 0x0070, 0x10, 11, 1), 378 + PIN_FIELD_BASE(66, 66, 9, 0x0070, 0x10, 24, 1), 379 + PIN_FIELD_BASE(67, 67, 9, 0x0070, 0x10, 22, 1), 380 + PIN_FIELD_BASE(68, 68, 9, 0x0070, 0x10, 21, 1), 381 + PIN_FIELD_BASE(69, 69, 9, 0x0070, 0x10, 25, 1), 382 + PIN_FIELD_BASE(70, 70, 9, 0x0070, 0x10, 16, 1), 383 + PIN_FIELD_BASE(71, 71, 9, 0x0070, 0x10, 15, 1), 384 + PIN_FIELD_BASE(72, 72, 9, 0x0070, 0x10, 23, 1), 385 + PIN_FIELD_BASE(73, 73, 9, 0x0070, 0x10, 20, 1), 386 + PIN_FIELD_BASE(74, 74, 9, 0x0070, 0x10, 17, 1), 387 + PIN_FIELD_BASE(75, 75, 10, 0x0050, 0x10, 2, 1), 388 + PIN_FIELD_BASE(76, 76, 10, 0x0050, 0x10, 3, 1), 389 + PIN_FIELD_BASE(77, 77, 10, 0x0050, 0x10, 4, 1), 390 + PIN_FIELD_BASE(78, 78, 10, 0x0050, 0x10, 5, 1), 391 + PIN_FIELD_BASE(79, 79, 10, 0x0050, 0x10, 0, 1), 392 + PIN_FIELD_BASE(80, 80, 10, 0x0050, 0x10, 1, 1), 393 + PIN_FIELD_BASE(81, 81, 11, 0x0040, 0x10, 9, 1), 394 + PIN_FIELD_BASE(82, 82, 11, 0x0040, 0x10, 10, 1), 395 + PIN_FIELD_BASE(83, 83, 11, 0x0040, 0x10, 12, 1), 396 + PIN_FIELD_BASE(84, 84, 11, 0x0040, 0x10, 11, 1), 397 + PIN_FIELD_BASE(85, 85, 11, 0x0040, 0x10, 13, 1), 398 + PIN_FIELD_BASE(86, 86, 11, 0x0040, 0x10, 14, 1), 399 + PIN_FIELD_BASE(87, 87, 11, 0x0040, 0x10, 16, 1), 400 + PIN_FIELD_BASE(88, 88, 11, 0x0040, 0x10, 15, 1), 401 + PIN_FIELD_BASE(89, 89, 11, 0x0040, 0x10, 0, 1), 402 + PIN_FIELD_BASE(90, 90, 11, 0x0040, 0x10, 8, 1), 403 + PIN_FIELD_BASE(91, 91, 12, 0x0050, 0x10, 6, 1), 404 + PIN_FIELD_BASE(92, 92, 12, 0x0050, 0x10, 7, 1), 405 + PIN_FIELD_BASE(93, 93, 12, 0x0050, 0x10, 8, 1), 406 + PIN_FIELD_BASE(94, 94, 12, 0x0050, 0x10, 4, 1), 407 + PIN_FIELD_BASE(95, 95, 12, 0x0050, 0x10, 1, 1), 408 + PIN_FIELD_BASE(96, 96, 12, 0x0050, 0x10, 3, 1), 409 + PIN_FIELD_BASE(97, 97, 12, 0x0050, 0x10, 2, 1), 410 + PIN_FIELD_BASE(98, 98, 12, 0x0050, 0x10, 5, 1), 411 + PIN_FIELD_BASE(99, 99, 12, 0x0050, 0x10, 9, 1), 412 + PIN_FIELD_BASE(100, 100, 12, 0x0050, 0x10, 12, 1), 413 + PIN_FIELD_BASE(101, 101, 12, 0x0050, 0x10, 10, 1), 414 + PIN_FIELD_BASE(102, 102, 12, 0x0050, 0x10, 13, 1), 415 + PIN_FIELD_BASE(103, 103, 12, 0x0050, 0x10, 0, 1), 416 + PIN_FIELD_BASE(104, 104, 12, 0x0050, 0x10, 11, 1), 417 + PIN_FIELD_BASE(105, 105, 12, 0x0050, 0x10, 14, 1), 418 + PIN_FIELD_BASE(106, 106, 5, 0x0050, 0x10, 0, 1), 419 + PIN_FIELD_BASE(107, 107, 5, 0x0050, 0x10, 1, 1), 420 + PIN_FIELD_BASE(108, 108, 5, 0x0050, 0x10, 3, 1), 421 + PIN_FIELD_BASE(109, 109, 5, 0x0050, 0x10, 2, 1), 422 + PIN_FIELD_BASE(110, 110, 5, 0x0050, 0x10, 4, 1), 423 + PIN_FIELD_BASE(111, 111, 5, 0x0050, 0x10, 5, 1), 424 + PIN_FIELD_BASE(112, 112, 5, 0x0050, 0x10, 7, 1), 425 + PIN_FIELD_BASE(113, 113, 5, 0x0050, 0x10, 6, 1), 426 + PIN_FIELD_BASE(114, 114, 5, 0x0050, 0x10, 8, 1), 427 + PIN_FIELD_BASE(115, 115, 5, 0x0050, 0x10, 9, 1), 428 + PIN_FIELD_BASE(116, 116, 5, 0x0050, 0x10, 11, 1), 429 + PIN_FIELD_BASE(117, 117, 5, 0x0050, 0x10, 10, 1), 430 + PIN_FIELD_BASE(118, 118, 6, 0x0060, 0x10, 9, 1), 431 + PIN_FIELD_BASE(119, 119, 6, 0x0060, 0x10, 10, 1), 432 + PIN_FIELD_BASE(120, 120, 6, 0x0060, 0x10, 12, 1), 433 + PIN_FIELD_BASE(121, 121, 6, 0x0060, 0x10, 11, 1), 434 + PIN_FIELD_BASE(122, 122, 6, 0x0060, 0x10, 0, 1), 435 + PIN_FIELD_BASE(123, 123, 6, 0x0060, 0x10, 7, 1), 436 + PIN_FIELD_BASE(124, 124, 6, 0x0060, 0x10, 8, 1), 437 + PIN_FIELD_BASE(125, 125, 7, 0x0050, 0x10, 0, 1), 438 + PIN_FIELD_BASE(126, 126, 7, 0x0050, 0x10, 1, 1), 439 + PIN_FIELD_BASE(127, 127, 7, 0x0050, 0x10, 2, 1), 440 + PIN_FIELD_BASE(128, 128, 7, 0x0050, 0x10, 3, 1), 441 + PIN_FIELD_BASE(129, 129, 7, 0x0050, 0x10, 4, 1), 442 + PIN_FIELD_BASE(130, 130, 7, 0x0050, 0x10, 5, 1), 443 + PIN_FIELD_BASE(131, 131, 7, 0x0050, 0x10, 9, 1), 444 + PIN_FIELD_BASE(132, 132, 7, 0x0050, 0x10, 11, 1), 445 + PIN_FIELD_BASE(133, 133, 7, 0x0050, 0x10, 10, 1), 446 + PIN_FIELD_BASE(134, 134, 7, 0x0050, 0x10, 6, 1), 447 + PIN_FIELD_BASE(135, 135, 7, 0x0050, 0x10, 8, 1), 448 + PIN_FIELD_BASE(136, 136, 7, 0x0050, 0x10, 7, 1), 449 + PIN_FIELD_BASE(137, 137, 4, 0x0040, 0x10, 10, 1), 450 + PIN_FIELD_BASE(138, 138, 4, 0x0040, 0x10, 11, 1), 451 + PIN_FIELD_BASE(139, 139, 4, 0x0040, 0x10, 12, 1), 452 + PIN_FIELD_BASE(140, 140, 4, 0x0040, 0x10, 13, 1), 453 + PIN_FIELD_BASE(141, 141, 4, 0x0040, 0x10, 14, 1), 454 + PIN_FIELD_BASE(142, 142, 4, 0x0040, 0x10, 15, 1), 455 + PIN_FIELD_BASE(143, 143, 4, 0x0040, 0x10, 16, 1), 456 + PIN_FIELD_BASE(144, 144, 4, 0x0040, 0x10, 17, 1), 457 + PIN_FIELD_BASE(145, 145, 4, 0x0040, 0x10, 0, 1), 458 + PIN_FIELD_BASE(146, 146, 4, 0x0040, 0x10, 1, 1), 459 + PIN_FIELD_BASE(147, 147, 4, 0x0040, 0x10, 2, 1), 460 + PIN_FIELD_BASE(148, 148, 4, 0x0040, 0x10, 3, 1), 461 + PIN_FIELD_BASE(149, 149, 4, 0x0040, 0x10, 4, 1), 462 + PIN_FIELD_BASE(150, 150, 4, 0x0040, 0x10, 5, 1), 463 + PIN_FIELD_BASE(151, 151, 4, 0x0040, 0x10, 6, 1), 464 + PIN_FIELD_BASE(152, 152, 4, 0x0040, 0x10, 7, 1), 465 + PIN_FIELD_BASE(153, 153, 4, 0x0040, 0x10, 9, 1), 466 + PIN_FIELD_BASE(154, 154, 4, 0x0040, 0x10, 8, 1), 467 + PIN_FIELD_BASE(155, 155, 4, 0x0040, 0x10, 18, 1), 468 + PIN_FIELD_BASE(156, 156, 4, 0x0040, 0x10, 19, 1), 469 + PIN_FIELD_BASE(157, 157, 2, 0x0050, 0x10, 1, 1), 470 + PIN_FIELD_BASE(158, 158, 2, 0x0050, 0x10, 2, 1), 471 + PIN_FIELD_BASE(159, 159, 2, 0x0050, 0x10, 0, 1), 472 + PIN_FIELD_BASE(160, 160, 3, 0x0050, 0x10, 22, 1), 473 + PIN_FIELD_BASE(161, 161, 3, 0x0050, 0x10, 20, 1), 474 + PIN_FIELD_BASE(162, 162, 3, 0x0050, 0x10, 23, 1), 475 + PIN_FIELD_BASE(163, 163, 3, 0x0050, 0x10, 21, 1), 476 + PIN_FIELD_BASE(164, 164, 3, 0x0050, 0x10, 12, 1), 477 + PIN_FIELD_BASE(165, 165, 3, 0x0050, 0x10, 14, 1), 478 + PIN_FIELD_BASE(166, 166, 3, 0x0050, 0x10, 13, 1), 479 + PIN_FIELD_BASE(167, 167, 3, 0x0050, 0x10, 15, 1), 480 + PIN_FIELD_BASE(168, 168, 3, 0x0050, 0x10, 16, 1), 481 + PIN_FIELD_BASE(169, 169, 3, 0x0050, 0x10, 17, 1), 482 + PIN_FIELD_BASE(170, 170, 3, 0x0050, 0x10, 19, 1), 483 + PIN_FIELD_BASE(171, 171, 3, 0x0050, 0x10, 18, 1), 484 + PIN_FIELD_BASE(172, 172, 3, 0x0050, 0x10, 10, 1), 485 + PIN_FIELD_BASE(173, 173, 3, 0x0050, 0x10, 11, 1), 486 + PIN_FIELD_BASE(174, 174, 1, 0x0050, 0x10, 15, 1), 487 + PIN_FIELD_BASE(175, 175, 1, 0x0050, 0x10, 16, 1), 488 + PIN_FIELD_BASE(176, 176, 1, 0x0050, 0x10, 17, 1), 489 + PIN_FIELD_BASE(177, 177, 1, 0x0050, 0x10, 18, 1), 490 + PIN_FIELD_BASE(178, 178, 1, 0x0050, 0x10, 6, 1), 491 + PIN_FIELD_BASE(179, 179, 1, 0x0050, 0x10, 7, 1), 492 + PIN_FIELD_BASE(180, 180, 1, 0x0050, 0x10, 0, 1), 493 + PIN_FIELD_BASE(181, 181, 1, 0x0050, 0x10, 1, 1), 494 + PIN_FIELD_BASE(182, 182, 1, 0x0050, 0x10, 2, 1), 495 + PIN_FIELD_BASE(183, 183, 1, 0x0050, 0x10, 3, 1), 496 + PIN_FIELD_BASE(184, 184, 1, 0x0050, 0x10, 4, 1), 497 + PIN_FIELD_BASE(185, 185, 1, 0x0050, 0x10, 5, 1), 498 + PIN_FIELD_BASE(186, 186, 13, 0x0090, 0x10, 4, 1), 499 + PIN_FIELD_BASE(187, 187, 13, 0x0090, 0x10, 5, 1), 500 + PIN_FIELD_BASE(188, 188, 13, 0x0090, 0x10, 12, 1), 501 + PIN_FIELD_BASE(189, 189, 13, 0x0090, 0x10, 17, 1), 502 + PIN_FIELD_BASE(190, 190, 13, 0x0090, 0x10, 13, 1), 503 + PIN_FIELD_BASE(191, 191, 13, 0x0090, 0x10, 18, 1), 504 + PIN_FIELD_BASE(192, 192, 13, 0x0090, 0x10, 0, 1), 505 + PIN_FIELD_BASE(193, 193, 13, 0x0090, 0x10, 6, 1), 506 + PIN_FIELD_BASE(194, 194, 13, 0x0090, 0x10, 14, 1), 507 + PIN_FIELD_BASE(195, 195, 13, 0x0090, 0x10, 19, 1), 508 + PIN_FIELD_BASE(196, 196, 13, 0x0090, 0x10, 1, 1), 509 + PIN_FIELD_BASE(197, 197, 13, 0x0090, 0x10, 7, 1), 510 + PIN_FIELD_BASE(198, 198, 13, 0x0090, 0x10, 15, 1), 511 + PIN_FIELD_BASE(199, 199, 13, 0x0090, 0x10, 20, 1), 512 + PIN_FIELD_BASE(200, 200, 13, 0x0090, 0x10, 22, 1), 513 + PIN_FIELD_BASE(201, 201, 13, 0x0090, 0x10, 25, 1), 514 + PIN_FIELD_BASE(202, 202, 13, 0x0090, 0x10, 16, 1), 515 + PIN_FIELD_BASE(203, 203, 13, 0x0090, 0x10, 21, 1), 516 + PIN_FIELD_BASE(204, 204, 13, 0x0090, 0x10, 2, 1), 517 + PIN_FIELD_BASE(205, 205, 13, 0x0090, 0x10, 3, 1), 518 + PIN_FIELD_BASE(206, 206, 13, 0x0090, 0x10, 8, 1), 519 + PIN_FIELD_BASE(207, 207, 13, 0x0090, 0x10, 9, 1), 520 + PIN_FIELD_BASE(208, 208, 13, 0x0090, 0x10, 10, 1), 521 + PIN_FIELD_BASE(209, 209, 13, 0x0090, 0x10, 11, 1), 522 + PIN_FIELD_BASE(210, 210, 14, 0x0060, 0x10, 0, 1), 523 + PIN_FIELD_BASE(211, 211, 14, 0x0060, 0x10, 1, 1), 524 + PIN_FIELD_BASE(212, 212, 14, 0x0060, 0x10, 2, 1), 525 + PIN_FIELD_BASE(213, 213, 14, 0x0060, 0x10, 3, 1), 526 + PIN_FIELD_BASE(214, 214, 13, 0x0090, 0x10, 23, 1), 527 + PIN_FIELD_BASE(215, 215, 13, 0x0090, 0x10, 24, 1), 528 + PIN_FIELD_BASE(216, 216, 14, 0x0060, 0x10, 13, 1), 529 + PIN_FIELD_BASE(217, 217, 14, 0x0060, 0x10, 5, 1), 530 + PIN_FIELD_BASE(218, 218, 14, 0x0060, 0x10, 6, 1), 531 + PIN_FIELD_BASE(219, 219, 14, 0x0060, 0x10, 4, 1), 532 + PIN_FIELD_BASE(220, 220, 14, 0x0060, 0x10, 22, 1), 533 + PIN_FIELD_BASE(221, 221, 14, 0x0060, 0x10, 23, 1), 534 + PIN_FIELD_BASE(222, 222, 14, 0x0060, 0x10, 25, 1), 535 + PIN_FIELD_BASE(223, 223, 14, 0x0060, 0x10, 24, 1), 536 + PIN_FIELD_BASE(224, 224, 14, 0x0060, 0x10, 7, 1), 537 + PIN_FIELD_BASE(225, 225, 14, 0x0060, 0x10, 8, 1), 538 + PIN_FIELD_BASE(226, 226, 14, 0x0060, 0x10, 9, 1), 539 + PIN_FIELD_BASE(227, 227, 14, 0x0060, 0x10, 10, 1), 540 + PIN_FIELD_BASE(228, 228, 14, 0x0060, 0x10, 11, 1), 541 + PIN_FIELD_BASE(229, 229, 14, 0x0060, 0x10, 12, 1), 542 + PIN_FIELD_BASE(230, 230, 15, 0x0040, 0x10, 13, 1), 543 + PIN_FIELD_BASE(231, 231, 15, 0x0040, 0x10, 14, 1), 544 + PIN_FIELD_BASE(232, 232, 15, 0x0040, 0x10, 10, 1), 545 + PIN_FIELD_BASE(233, 233, 15, 0x0040, 0x10, 0, 1), 546 + PIN_FIELD_BASE(234, 234, 15, 0x0040, 0x10, 3, 1), 547 + PIN_FIELD_BASE(235, 235, 15, 0x0040, 0x10, 1, 1), 548 + PIN_FIELD_BASE(236, 236, 15, 0x0040, 0x10, 2, 1), 549 + PIN_FIELD_BASE(237, 237, 15, 0x0040, 0x10, 6, 1), 550 + PIN_FIELD_BASE(238, 238, 15, 0x0040, 0x10, 5, 1), 551 + PIN_FIELD_BASE(239, 239, 15, 0x0040, 0x10, 23, 1), 552 + PIN_FIELD_BASE(240, 240, 15, 0x0040, 0x10, 22, 1), 553 + PIN_FIELD_BASE(241, 241, 15, 0x0040, 0x10, 16, 1), 554 + PIN_FIELD_BASE(242, 242, 15, 0x0040, 0x10, 17, 1), 555 + PIN_FIELD_BASE(243, 243, 15, 0x0040, 0x10, 15, 1), 556 + PIN_FIELD_BASE(244, 244, 15, 0x0040, 0x10, 12, 1), 557 + PIN_FIELD_BASE(245, 245, 15, 0x0040, 0x10, 9, 1), 558 + PIN_FIELD_BASE(246, 246, 15, 0x0040, 0x10, 8, 1), 559 + PIN_FIELD_BASE(247, 247, 15, 0x0040, 0x10, 7, 1), 560 + PIN_FIELD_BASE(248, 248, 15, 0x0040, 0x10, 4, 1), 561 + PIN_FIELD_BASE(249, 249, 15, 0x0040, 0x10, 24, 1), 562 + PIN_FIELD_BASE(250, 250, 15, 0x0040, 0x10, 11, 1), 563 + PIN_FIELD_BASE(251, 251, 3, 0x0050, 0x10, 2, 1), 564 + PIN_FIELD_BASE(252, 252, 3, 0x0050, 0x10, 3, 1), 565 + PIN_FIELD_BASE(253, 253, 3, 0x0050, 0x10, 4, 1), 566 + PIN_FIELD_BASE(254, 254, 3, 0x0050, 0x10, 5, 1), 567 + PIN_FIELD_BASE(255, 255, 3, 0x0050, 0x10, 6, 1), 568 + PIN_FIELD_BASE(256, 256, 3, 0x0050, 0x10, 7, 1), 569 + PIN_FIELD_BASE(257, 257, 3, 0x0050, 0x10, 8, 1), 570 + PIN_FIELD_BASE(258, 258, 3, 0x0050, 0x10, 9, 1), 571 + PIN_FIELD_BASE(259, 259, 14, 0x0060, 0x10, 14, 1), 572 + PIN_FIELD_BASE(260, 260, 14, 0x0060, 0x10, 15, 1), 573 + PIN_FIELD_BASE(261, 261, 14, 0x0060, 0x10, 16, 1), 574 + PIN_FIELD_BASE(262, 262, 14, 0x0060, 0x10, 17, 1), 575 + PIN_FIELD_BASE(263, 263, 14, 0x0060, 0x10, 18, 1), 576 + PIN_FIELD_BASE(264, 264, 14, 0x0060, 0x10, 19, 1), 577 + PIN_FIELD_BASE(265, 265, 14, 0x0060, 0x10, 20, 1), 578 + PIN_FIELD_BASE(266, 266, 14, 0x0060, 0x10, 21, 1), 579 + PIN_FIELD_BASE(267, 267, 15, 0x0040, 0x10, 20, 1), 580 + PIN_FIELD_BASE(268, 268, 15, 0x0040, 0x10, 21, 1), 581 + PIN_FIELD_BASE(269, 269, 15, 0x0040, 0x10, 18, 1), 582 + PIN_FIELD_BASE(270, 270, 15, 0x0040, 0x10, 19, 1), 583 + }; 584 + 585 + static const struct mtk_pin_field_calc mt8196_pin_pupd_range[] = { 586 + PIN_FIELD_BASE(60, 60, 9, 0x00b0, 0x10, 0, 1), 587 + PIN_FIELD_BASE(125, 125, 7, 0x0080, 0x10, 0, 1), 588 + PIN_FIELD_BASE(126, 126, 7, 0x0080, 0x10, 1, 1), 589 + PIN_FIELD_BASE(127, 127, 7, 0x0080, 0x10, 2, 1), 590 + PIN_FIELD_BASE(128, 128, 7, 0x0080, 0x10, 3, 1), 591 + PIN_FIELD_BASE(129, 129, 7, 0x0080, 0x10, 4, 1), 592 + PIN_FIELD_BASE(130, 130, 7, 0x0080, 0x10, 5, 1), 593 + PIN_FIELD_BASE(131, 131, 7, 0x0080, 0x10, 9, 1), 594 + PIN_FIELD_BASE(132, 132, 7, 0x0080, 0x10, 11, 1), 595 + PIN_FIELD_BASE(133, 133, 7, 0x0080, 0x10, 10, 1), 596 + PIN_FIELD_BASE(134, 134, 7, 0x0080, 0x10, 6, 1), 597 + PIN_FIELD_BASE(135, 135, 7, 0x0080, 0x10, 8, 1), 598 + PIN_FIELD_BASE(136, 136, 7, 0x0080, 0x10, 7, 1), 599 + PIN_FIELD_BASE(137, 137, 4, 0x0070, 0x10, 10, 1), 600 + PIN_FIELD_BASE(138, 138, 4, 0x0070, 0x10, 11, 1), 601 + PIN_FIELD_BASE(139, 139, 4, 0x0070, 0x10, 12, 1), 602 + PIN_FIELD_BASE(140, 140, 4, 0x0070, 0x10, 13, 1), 603 + PIN_FIELD_BASE(141, 141, 4, 0x0070, 0x10, 14, 1), 604 + PIN_FIELD_BASE(142, 142, 4, 0x0070, 0x10, 15, 1), 605 + PIN_FIELD_BASE(143, 143, 4, 0x0070, 0x10, 16, 1), 606 + PIN_FIELD_BASE(144, 144, 4, 0x0070, 0x10, 17, 1), 607 + PIN_FIELD_BASE(145, 145, 4, 0x0070, 0x10, 0, 1), 608 + PIN_FIELD_BASE(146, 146, 4, 0x0070, 0x10, 1, 1), 609 + PIN_FIELD_BASE(147, 147, 4, 0x0070, 0x10, 2, 1), 610 + PIN_FIELD_BASE(148, 148, 4, 0x0070, 0x10, 3, 1), 611 + PIN_FIELD_BASE(149, 149, 4, 0x0070, 0x10, 4, 1), 612 + PIN_FIELD_BASE(150, 150, 4, 0x0070, 0x10, 5, 1), 613 + PIN_FIELD_BASE(151, 151, 4, 0x0070, 0x10, 6, 1), 614 + PIN_FIELD_BASE(152, 152, 4, 0x0070, 0x10, 7, 1), 615 + PIN_FIELD_BASE(153, 153, 4, 0x0070, 0x10, 9, 1), 616 + PIN_FIELD_BASE(154, 154, 4, 0x0070, 0x10, 8, 1), 617 + PIN_FIELD_BASE(155, 155, 4, 0x0070, 0x10, 18, 1), 618 + PIN_FIELD_BASE(156, 156, 4, 0x0070, 0x10, 19, 1), 619 + PIN_FIELD_BASE(217, 217, 14, 0x00a0, 0x10, 1, 1), 620 + PIN_FIELD_BASE(218, 218, 14, 0x00a0, 0x10, 2, 1), 621 + PIN_FIELD_BASE(219, 219, 14, 0x00a0, 0x10, 0, 1), 622 + PIN_FIELD_BASE(224, 224, 14, 0x00a0, 0x10, 3, 1), 623 + PIN_FIELD_BASE(225, 225, 14, 0x00a0, 0x10, 4, 1), 624 + PIN_FIELD_BASE(226, 226, 14, 0x00a0, 0x10, 5, 1), 625 + PIN_FIELD_BASE(227, 227, 14, 0x00a0, 0x10, 6, 1), 626 + PIN_FIELD_BASE(228, 228, 14, 0x00a0, 0x10, 7, 1), 627 + PIN_FIELD_BASE(229, 229, 14, 0x00a0, 0x10, 8, 1), 628 + PIN_FIELD_BASE(259, 259, 14, 0x00a0, 0x10, 9, 1), 629 + PIN_FIELD_BASE(260, 260, 14, 0x00a0, 0x10, 10, 1), 630 + PIN_FIELD_BASE(261, 261, 14, 0x00a0, 0x10, 11, 1), 631 + PIN_FIELD_BASE(262, 262, 14, 0x00a0, 0x10, 12, 1), 632 + PIN_FIELD_BASE(263, 263, 14, 0x00a0, 0x10, 13, 1), 633 + PIN_FIELD_BASE(264, 264, 14, 0x00a0, 0x10, 14, 1), 634 + PIN_FIELD_BASE(265, 265, 14, 0x00a0, 0x10, 15, 1), 635 + PIN_FIELD_BASE(266, 266, 14, 0x00a0, 0x10, 16, 1), 636 + PIN_FIELD_BASE(267, 267, 15, 0x0080, 0x10, 2, 1), 637 + PIN_FIELD_BASE(268, 268, 15, 0x0080, 0x10, 3, 1), 638 + PIN_FIELD_BASE(269, 269, 15, 0x0080, 0x10, 0, 1), 639 + PIN_FIELD_BASE(270, 270, 15, 0x0080, 0x10, 1, 1), 640 + }; 641 + 642 + static const struct mtk_pin_field_calc mt8196_pin_r0_range[] = { 643 + PIN_FIELD_BASE(60, 60, 9, 0x00d0, 0x10, 0, 1), 644 + PIN_FIELD_BASE(125, 125, 7, 0x0090, 0x10, 0, 1), 645 + PIN_FIELD_BASE(126, 126, 7, 0x0090, 0x10, 1, 1), 646 + PIN_FIELD_BASE(127, 127, 7, 0x0090, 0x10, 2, 1), 647 + PIN_FIELD_BASE(128, 128, 7, 0x0090, 0x10, 3, 1), 648 + PIN_FIELD_BASE(129, 129, 7, 0x0090, 0x10, 4, 1), 649 + PIN_FIELD_BASE(130, 130, 7, 0x0090, 0x10, 5, 1), 650 + PIN_FIELD_BASE(131, 131, 7, 0x0090, 0x10, 9, 1), 651 + PIN_FIELD_BASE(132, 132, 7, 0x0090, 0x10, 11, 1), 652 + PIN_FIELD_BASE(133, 133, 7, 0x0090, 0x10, 10, 1), 653 + PIN_FIELD_BASE(134, 134, 7, 0x0090, 0x10, 6, 1), 654 + PIN_FIELD_BASE(135, 135, 7, 0x0090, 0x10, 8, 1), 655 + PIN_FIELD_BASE(136, 136, 7, 0x0090, 0x10, 7, 1), 656 + PIN_FIELD_BASE(137, 137, 4, 0x0080, 0x10, 10, 1), 657 + PIN_FIELD_BASE(138, 138, 4, 0x0080, 0x10, 11, 1), 658 + PIN_FIELD_BASE(139, 139, 4, 0x0080, 0x10, 12, 1), 659 + PIN_FIELD_BASE(140, 140, 4, 0x0080, 0x10, 13, 1), 660 + PIN_FIELD_BASE(141, 141, 4, 0x0080, 0x10, 14, 1), 661 + PIN_FIELD_BASE(142, 142, 4, 0x0080, 0x10, 15, 1), 662 + PIN_FIELD_BASE(143, 143, 4, 0x0080, 0x10, 16, 1), 663 + PIN_FIELD_BASE(144, 144, 4, 0x0080, 0x10, 17, 1), 664 + PIN_FIELD_BASE(145, 145, 4, 0x0080, 0x10, 0, 1), 665 + PIN_FIELD_BASE(146, 146, 4, 0x0080, 0x10, 1, 1), 666 + PIN_FIELD_BASE(147, 147, 4, 0x0080, 0x10, 2, 1), 667 + PIN_FIELD_BASE(148, 148, 4, 0x0080, 0x10, 3, 1), 668 + PIN_FIELD_BASE(149, 149, 4, 0x0080, 0x10, 4, 1), 669 + PIN_FIELD_BASE(150, 150, 4, 0x0080, 0x10, 5, 1), 670 + PIN_FIELD_BASE(151, 151, 4, 0x0080, 0x10, 6, 1), 671 + PIN_FIELD_BASE(152, 152, 4, 0x0080, 0x10, 7, 1), 672 + PIN_FIELD_BASE(153, 153, 4, 0x0080, 0x10, 9, 1), 673 + PIN_FIELD_BASE(154, 154, 4, 0x0080, 0x10, 8, 1), 674 + PIN_FIELD_BASE(155, 155, 4, 0x0080, 0x10, 18, 1), 675 + PIN_FIELD_BASE(156, 156, 4, 0x0080, 0x10, 19, 1), 676 + PIN_FIELD_BASE(217, 217, 14, 0x00c0, 0x10, 1, 1), 677 + PIN_FIELD_BASE(218, 218, 14, 0x00c0, 0x10, 2, 1), 678 + PIN_FIELD_BASE(219, 219, 14, 0x00c0, 0x10, 0, 1), 679 + PIN_FIELD_BASE(224, 224, 14, 0x00c0, 0x10, 3, 1), 680 + PIN_FIELD_BASE(225, 225, 14, 0x00c0, 0x10, 4, 1), 681 + PIN_FIELD_BASE(226, 226, 14, 0x00c0, 0x10, 5, 1), 682 + PIN_FIELD_BASE(227, 227, 14, 0x00c0, 0x10, 6, 1), 683 + PIN_FIELD_BASE(228, 228, 14, 0x00c0, 0x10, 7, 1), 684 + PIN_FIELD_BASE(229, 229, 14, 0x00c0, 0x10, 8, 1), 685 + PIN_FIELD_BASE(259, 259, 14, 0x00c0, 0x10, 9, 1), 686 + PIN_FIELD_BASE(260, 260, 14, 0x00c0, 0x10, 10, 1), 687 + PIN_FIELD_BASE(261, 261, 14, 0x00c0, 0x10, 11, 1), 688 + PIN_FIELD_BASE(262, 262, 14, 0x00c0, 0x10, 12, 1), 689 + PIN_FIELD_BASE(263, 263, 14, 0x00c0, 0x10, 13, 1), 690 + PIN_FIELD_BASE(264, 264, 14, 0x00c0, 0x10, 14, 1), 691 + PIN_FIELD_BASE(265, 265, 14, 0x00c0, 0x10, 15, 1), 692 + PIN_FIELD_BASE(266, 266, 14, 0x00c0, 0x10, 16, 1), 693 + PIN_FIELD_BASE(267, 267, 15, 0x00a0, 0x10, 2, 1), 694 + PIN_FIELD_BASE(268, 268, 15, 0x00a0, 0x10, 3, 1), 695 + PIN_FIELD_BASE(269, 269, 15, 0x00a0, 0x10, 0, 1), 696 + PIN_FIELD_BASE(270, 270, 15, 0x00a0, 0x10, 1, 1), 697 + }; 698 + 699 + static const struct mtk_pin_field_calc mt8196_pin_r1_range[] = { 700 + PIN_FIELD_BASE(60, 60, 9, 0x00e0, 0x10, 0, 1), 701 + PIN_FIELD_BASE(125, 125, 7, 0x00a0, 0x10, 0, 1), 702 + PIN_FIELD_BASE(126, 126, 7, 0x00a0, 0x10, 1, 1), 703 + PIN_FIELD_BASE(127, 127, 7, 0x00a0, 0x10, 2, 1), 704 + PIN_FIELD_BASE(128, 128, 7, 0x00a0, 0x10, 3, 1), 705 + PIN_FIELD_BASE(129, 129, 7, 0x00a0, 0x10, 4, 1), 706 + PIN_FIELD_BASE(130, 130, 7, 0x00a0, 0x10, 5, 1), 707 + PIN_FIELD_BASE(131, 131, 7, 0x00a0, 0x10, 9, 1), 708 + PIN_FIELD_BASE(132, 132, 7, 0x00a0, 0x10, 11, 1), 709 + PIN_FIELD_BASE(133, 133, 7, 0x00a0, 0x10, 10, 1), 710 + PIN_FIELD_BASE(134, 134, 7, 0x00a0, 0x10, 6, 1), 711 + PIN_FIELD_BASE(135, 135, 7, 0x00a0, 0x10, 8, 1), 712 + PIN_FIELD_BASE(136, 136, 7, 0x00a0, 0x10, 7, 1), 713 + PIN_FIELD_BASE(137, 137, 4, 0x0090, 0x10, 10, 1), 714 + PIN_FIELD_BASE(138, 138, 4, 0x0090, 0x10, 11, 1), 715 + PIN_FIELD_BASE(139, 139, 4, 0x0090, 0x10, 12, 1), 716 + PIN_FIELD_BASE(140, 140, 4, 0x0090, 0x10, 13, 1), 717 + PIN_FIELD_BASE(141, 141, 4, 0x0090, 0x10, 14, 1), 718 + PIN_FIELD_BASE(142, 142, 4, 0x0090, 0x10, 15, 1), 719 + PIN_FIELD_BASE(143, 143, 4, 0x0090, 0x10, 16, 1), 720 + PIN_FIELD_BASE(144, 144, 4, 0x0090, 0x10, 17, 1), 721 + PIN_FIELD_BASE(145, 145, 4, 0x0090, 0x10, 0, 1), 722 + PIN_FIELD_BASE(146, 146, 4, 0x0090, 0x10, 1, 1), 723 + PIN_FIELD_BASE(147, 147, 4, 0x0090, 0x10, 2, 1), 724 + PIN_FIELD_BASE(148, 148, 4, 0x0090, 0x10, 3, 1), 725 + PIN_FIELD_BASE(149, 149, 4, 0x0090, 0x10, 4, 1), 726 + PIN_FIELD_BASE(150, 150, 4, 0x0090, 0x10, 5, 1), 727 + PIN_FIELD_BASE(151, 151, 4, 0x0090, 0x10, 6, 1), 728 + PIN_FIELD_BASE(152, 152, 4, 0x0090, 0x10, 7, 1), 729 + PIN_FIELD_BASE(153, 153, 4, 0x0090, 0x10, 9, 1), 730 + PIN_FIELD_BASE(154, 154, 4, 0x0090, 0x10, 8, 1), 731 + PIN_FIELD_BASE(155, 155, 4, 0x0090, 0x10, 18, 1), 732 + PIN_FIELD_BASE(156, 156, 4, 0x0090, 0x10, 19, 1), 733 + PIN_FIELD_BASE(217, 217, 14, 0x00d0, 0x10, 1, 1), 734 + PIN_FIELD_BASE(218, 218, 14, 0x00d0, 0x10, 2, 1), 735 + PIN_FIELD_BASE(219, 219, 14, 0x00d0, 0x10, 0, 1), 736 + PIN_FIELD_BASE(224, 224, 14, 0x00d0, 0x10, 3, 1), 737 + PIN_FIELD_BASE(225, 225, 14, 0x00d0, 0x10, 4, 1), 738 + PIN_FIELD_BASE(226, 226, 14, 0x00d0, 0x10, 5, 1), 739 + PIN_FIELD_BASE(227, 227, 14, 0x00d0, 0x10, 6, 1), 740 + PIN_FIELD_BASE(228, 228, 14, 0x00d0, 0x10, 7, 1), 741 + PIN_FIELD_BASE(229, 229, 14, 0x00d0, 0x10, 8, 1), 742 + PIN_FIELD_BASE(259, 259, 14, 0x00d0, 0x10, 9, 1), 743 + PIN_FIELD_BASE(260, 260, 14, 0x00d0, 0x10, 10, 1), 744 + PIN_FIELD_BASE(261, 261, 14, 0x00d0, 0x10, 11, 1), 745 + PIN_FIELD_BASE(262, 262, 14, 0x00d0, 0x10, 12, 1), 746 + PIN_FIELD_BASE(263, 263, 14, 0x00d0, 0x10, 13, 1), 747 + PIN_FIELD_BASE(264, 264, 14, 0x00d0, 0x10, 14, 1), 748 + PIN_FIELD_BASE(265, 265, 14, 0x00d0, 0x10, 15, 1), 749 + PIN_FIELD_BASE(266, 266, 14, 0x00d0, 0x10, 16, 1), 750 + PIN_FIELD_BASE(267, 267, 15, 0x00b0, 0x10, 2, 1), 751 + PIN_FIELD_BASE(268, 268, 15, 0x00b0, 0x10, 3, 1), 752 + PIN_FIELD_BASE(269, 269, 15, 0x00b0, 0x10, 0, 1), 753 + PIN_FIELD_BASE(270, 270, 15, 0x00b0, 0x10, 1, 1), 754 + }; 755 + 756 + static const struct mtk_pin_field_calc mt8196_pin_pu_range[] = { 757 + PIN_FIELD_BASE(0, 0, 8, 0x00a0, 0x10, 0, 1), 758 + PIN_FIELD_BASE(1, 1, 8, 0x00a0, 0x10, 1, 1), 759 + PIN_FIELD_BASE(2, 2, 11, 0x0080, 0x10, 1, 1), 760 + PIN_FIELD_BASE(3, 3, 11, 0x0080, 0x10, 2, 1), 761 + PIN_FIELD_BASE(4, 4, 11, 0x0080, 0x10, 3, 1), 762 + PIN_FIELD_BASE(5, 5, 11, 0x0080, 0x10, 4, 1), 763 + PIN_FIELD_BASE(6, 6, 11, 0x0080, 0x10, 5, 1), 764 + PIN_FIELD_BASE(7, 7, 11, 0x0080, 0x10, 6, 1), 765 + PIN_FIELD_BASE(8, 8, 11, 0x0080, 0x10, 7, 1), 766 + PIN_FIELD_BASE(9, 9, 9, 0x00c0, 0x10, 14, 1), 767 + PIN_FIELD_BASE(10, 10, 9, 0x00c0, 0x10, 12, 1), 768 + PIN_FIELD_BASE(11, 11, 8, 0x00a0, 0x10, 2, 1), 769 + PIN_FIELD_BASE(12, 12, 9, 0x00c0, 0x10, 13, 1), 770 + PIN_FIELD_BASE(13, 13, 6, 0x00b0, 0x10, 1, 1), 771 + PIN_FIELD_BASE(14, 14, 3, 0x0090, 0x10, 0, 1), 772 + PIN_FIELD_BASE(15, 15, 6, 0x00b0, 0x10, 2, 1), 773 + PIN_FIELD_BASE(16, 16, 6, 0x00b0, 0x10, 3, 1), 774 + PIN_FIELD_BASE(17, 17, 6, 0x00b0, 0x10, 4, 1), 775 + PIN_FIELD_BASE(18, 18, 6, 0x00b0, 0x10, 5, 1), 776 + PIN_FIELD_BASE(19, 19, 6, 0x00b0, 0x10, 6, 1), 777 + PIN_FIELD_BASE(20, 20, 3, 0x0090, 0x10, 1, 1), 778 + PIN_FIELD_BASE(21, 21, 2, 0x0090, 0x10, 3, 1), 779 + PIN_FIELD_BASE(22, 22, 2, 0x0090, 0x10, 4, 1), 780 + PIN_FIELD_BASE(23, 23, 2, 0x0090, 0x10, 5, 1), 781 + PIN_FIELD_BASE(24, 24, 2, 0x0090, 0x10, 6, 1), 782 + PIN_FIELD_BASE(25, 25, 2, 0x0090, 0x10, 7, 1), 783 + PIN_FIELD_BASE(26, 26, 2, 0x0090, 0x10, 8, 1), 784 + PIN_FIELD_BASE(27, 27, 2, 0x0090, 0x10, 9, 1), 785 + PIN_FIELD_BASE(28, 28, 2, 0x0090, 0x10, 10, 1), 786 + PIN_FIELD_BASE(29, 29, 2, 0x0090, 0x10, 11, 1), 787 + PIN_FIELD_BASE(30, 30, 2, 0x0090, 0x10, 12, 1), 788 + PIN_FIELD_BASE(31, 31, 2, 0x0090, 0x10, 13, 1), 789 + PIN_FIELD_BASE(32, 32, 1, 0x0090, 0x10, 8, 1), 790 + PIN_FIELD_BASE(33, 33, 1, 0x0090, 0x10, 9, 1), 791 + PIN_FIELD_BASE(34, 34, 1, 0x0090, 0x10, 10, 1), 792 + PIN_FIELD_BASE(35, 35, 1, 0x0090, 0x10, 11, 1), 793 + PIN_FIELD_BASE(36, 36, 1, 0x0090, 0x10, 12, 1), 794 + PIN_FIELD_BASE(37, 37, 1, 0x0090, 0x10, 13, 1), 795 + PIN_FIELD_BASE(38, 38, 1, 0x0090, 0x10, 14, 1), 796 + PIN_FIELD_BASE(39, 39, 8, 0x00a0, 0x10, 6, 1), 797 + PIN_FIELD_BASE(40, 40, 8, 0x00a0, 0x10, 3, 1), 798 + PIN_FIELD_BASE(41, 41, 8, 0x00a0, 0x10, 5, 1), 799 + PIN_FIELD_BASE(42, 42, 8, 0x00a0, 0x10, 4, 1), 800 + PIN_FIELD_BASE(43, 43, 8, 0x00a0, 0x10, 7, 1), 801 + PIN_FIELD_BASE(44, 44, 8, 0x00a0, 0x10, 8, 1), 802 + PIN_FIELD_BASE(45, 45, 8, 0x00a0, 0x10, 9, 1), 803 + PIN_FIELD_BASE(46, 46, 8, 0x00a0, 0x10, 10, 1), 804 + PIN_FIELD_BASE(47, 47, 8, 0x00a0, 0x10, 13, 1), 805 + PIN_FIELD_BASE(48, 48, 8, 0x00a0, 0x10, 11, 1), 806 + PIN_FIELD_BASE(49, 49, 8, 0x00a0, 0x10, 14, 1), 807 + PIN_FIELD_BASE(50, 50, 8, 0x00a0, 0x10, 12, 1), 808 + PIN_FIELD_BASE(51, 51, 8, 0x00a0, 0x10, 15, 1), 809 + PIN_FIELD_BASE(52, 52, 9, 0x00c0, 0x10, 7, 1), 810 + PIN_FIELD_BASE(53, 53, 9, 0x00c0, 0x10, 8, 1), 811 + PIN_FIELD_BASE(54, 54, 9, 0x00c0, 0x10, 2, 1), 812 + PIN_FIELD_BASE(55, 55, 9, 0x00c0, 0x10, 1, 1), 813 + PIN_FIELD_BASE(56, 56, 9, 0x00c0, 0x10, 5, 1), 814 + PIN_FIELD_BASE(57, 57, 9, 0x00c0, 0x10, 6, 1), 815 + PIN_FIELD_BASE(58, 58, 9, 0x00c0, 0x10, 3, 1), 816 + PIN_FIELD_BASE(59, 59, 9, 0x00c0, 0x10, 4, 1), 817 + PIN_FIELD_BASE(61, 61, 9, 0x00c0, 0x10, 10, 1), 818 + PIN_FIELD_BASE(62, 62, 9, 0x00c0, 0x10, 9, 1), 819 + PIN_FIELD_BASE(63, 63, 9, 0x00c0, 0x10, 18, 1), 820 + PIN_FIELD_BASE(64, 64, 9, 0x00c0, 0x10, 0, 1), 821 + PIN_FIELD_BASE(65, 65, 9, 0x00c0, 0x10, 11, 1), 822 + PIN_FIELD_BASE(66, 66, 9, 0x00c0, 0x10, 24, 1), 823 + PIN_FIELD_BASE(67, 67, 9, 0x00c0, 0x10, 21, 1), 824 + PIN_FIELD_BASE(68, 68, 9, 0x00c0, 0x10, 20, 1), 825 + PIN_FIELD_BASE(69, 69, 9, 0x00c0, 0x10, 25, 1), 826 + PIN_FIELD_BASE(70, 70, 9, 0x00c0, 0x10, 16, 1), 827 + PIN_FIELD_BASE(71, 71, 9, 0x00c0, 0x10, 15, 1), 828 + PIN_FIELD_BASE(72, 72, 9, 0x00c0, 0x10, 23, 1), 829 + PIN_FIELD_BASE(73, 73, 9, 0x00c0, 0x10, 19, 1), 830 + PIN_FIELD_BASE(74, 74, 9, 0x00c0, 0x10, 17, 1), 831 + PIN_FIELD_BASE(75, 75, 10, 0x0090, 0x10, 2, 1), 832 + PIN_FIELD_BASE(76, 76, 10, 0x0090, 0x10, 3, 1), 833 + PIN_FIELD_BASE(77, 77, 10, 0x0090, 0x10, 4, 1), 834 + PIN_FIELD_BASE(78, 78, 10, 0x0090, 0x10, 5, 1), 835 + PIN_FIELD_BASE(79, 79, 10, 0x0090, 0x10, 0, 1), 836 + PIN_FIELD_BASE(80, 80, 10, 0x0090, 0x10, 1, 1), 837 + PIN_FIELD_BASE(81, 81, 11, 0x0080, 0x10, 9, 1), 838 + PIN_FIELD_BASE(82, 82, 11, 0x0080, 0x10, 10, 1), 839 + PIN_FIELD_BASE(83, 83, 11, 0x0080, 0x10, 12, 1), 840 + PIN_FIELD_BASE(84, 84, 11, 0x0080, 0x10, 11, 1), 841 + PIN_FIELD_BASE(85, 85, 11, 0x0080, 0x10, 13, 1), 842 + PIN_FIELD_BASE(86, 86, 11, 0x0080, 0x10, 14, 1), 843 + PIN_FIELD_BASE(87, 87, 11, 0x0080, 0x10, 16, 1), 844 + PIN_FIELD_BASE(88, 88, 11, 0x0080, 0x10, 15, 1), 845 + PIN_FIELD_BASE(89, 89, 11, 0x0080, 0x10, 0, 1), 846 + PIN_FIELD_BASE(90, 90, 11, 0x0080, 0x10, 8, 1), 847 + PIN_FIELD_BASE(91, 91, 12, 0x0090, 0x10, 6, 1), 848 + PIN_FIELD_BASE(92, 92, 12, 0x0090, 0x10, 7, 1), 849 + PIN_FIELD_BASE(93, 93, 12, 0x0090, 0x10, 8, 1), 850 + PIN_FIELD_BASE(94, 94, 12, 0x0090, 0x10, 4, 1), 851 + PIN_FIELD_BASE(95, 95, 12, 0x0090, 0x10, 1, 1), 852 + PIN_FIELD_BASE(96, 96, 12, 0x0090, 0x10, 3, 1), 853 + PIN_FIELD_BASE(97, 97, 12, 0x0090, 0x10, 2, 1), 854 + PIN_FIELD_BASE(98, 98, 12, 0x0090, 0x10, 5, 1), 855 + PIN_FIELD_BASE(99, 99, 12, 0x0090, 0x10, 9, 1), 856 + PIN_FIELD_BASE(100, 100, 12, 0x0090, 0x10, 12, 1), 857 + PIN_FIELD_BASE(101, 101, 12, 0x0090, 0x10, 10, 1), 858 + PIN_FIELD_BASE(102, 102, 12, 0x0090, 0x10, 13, 1), 859 + PIN_FIELD_BASE(103, 103, 12, 0x0090, 0x10, 0, 1), 860 + PIN_FIELD_BASE(104, 104, 12, 0x0090, 0x10, 11, 1), 861 + PIN_FIELD_BASE(105, 105, 12, 0x0090, 0x10, 14, 1), 862 + PIN_FIELD_BASE(106, 106, 5, 0x0090, 0x10, 0, 1), 863 + PIN_FIELD_BASE(107, 107, 5, 0x0090, 0x10, 1, 1), 864 + PIN_FIELD_BASE(108, 108, 5, 0x0090, 0x10, 3, 1), 865 + PIN_FIELD_BASE(109, 109, 5, 0x0090, 0x10, 2, 1), 866 + PIN_FIELD_BASE(110, 110, 5, 0x0090, 0x10, 4, 1), 867 + PIN_FIELD_BASE(111, 111, 5, 0x0090, 0x10, 5, 1), 868 + PIN_FIELD_BASE(112, 112, 5, 0x0090, 0x10, 7, 1), 869 + PIN_FIELD_BASE(113, 113, 5, 0x0090, 0x10, 6, 1), 870 + PIN_FIELD_BASE(114, 114, 5, 0x0090, 0x10, 8, 1), 871 + PIN_FIELD_BASE(115, 115, 5, 0x0090, 0x10, 9, 1), 872 + PIN_FIELD_BASE(116, 116, 5, 0x0090, 0x10, 11, 1), 873 + PIN_FIELD_BASE(117, 117, 5, 0x0090, 0x10, 10, 1), 874 + PIN_FIELD_BASE(118, 118, 6, 0x00b0, 0x10, 9, 1), 875 + PIN_FIELD_BASE(119, 119, 6, 0x00b0, 0x10, 10, 1), 876 + PIN_FIELD_BASE(120, 120, 6, 0x00b0, 0x10, 12, 1), 877 + PIN_FIELD_BASE(121, 121, 6, 0x00b0, 0x10, 11, 1), 878 + PIN_FIELD_BASE(122, 122, 6, 0x00b0, 0x10, 0, 1), 879 + PIN_FIELD_BASE(123, 123, 6, 0x00b0, 0x10, 7, 1), 880 + PIN_FIELD_BASE(124, 124, 6, 0x00b0, 0x10, 8, 1), 881 + PIN_FIELD_BASE(157, 157, 2, 0x0090, 0x10, 1, 1), 882 + PIN_FIELD_BASE(158, 158, 2, 0x0090, 0x10, 2, 1), 883 + PIN_FIELD_BASE(159, 159, 2, 0x0090, 0x10, 0, 1), 884 + PIN_FIELD_BASE(160, 160, 3, 0x0090, 0x10, 22, 1), 885 + PIN_FIELD_BASE(161, 161, 3, 0x0090, 0x10, 20, 1), 886 + PIN_FIELD_BASE(162, 162, 3, 0x0090, 0x10, 23, 1), 887 + PIN_FIELD_BASE(163, 163, 3, 0x0090, 0x10, 21, 1), 888 + PIN_FIELD_BASE(164, 164, 3, 0x0090, 0x10, 12, 1), 889 + PIN_FIELD_BASE(165, 165, 3, 0x0090, 0x10, 14, 1), 890 + PIN_FIELD_BASE(166, 166, 3, 0x0090, 0x10, 13, 1), 891 + PIN_FIELD_BASE(167, 167, 3, 0x0090, 0x10, 15, 1), 892 + PIN_FIELD_BASE(168, 168, 3, 0x0090, 0x10, 16, 1), 893 + PIN_FIELD_BASE(169, 169, 3, 0x0090, 0x10, 17, 1), 894 + PIN_FIELD_BASE(170, 170, 3, 0x0090, 0x10, 19, 1), 895 + PIN_FIELD_BASE(171, 171, 3, 0x0090, 0x10, 18, 1), 896 + PIN_FIELD_BASE(172, 172, 3, 0x0090, 0x10, 10, 1), 897 + PIN_FIELD_BASE(173, 173, 3, 0x0090, 0x10, 11, 1), 898 + PIN_FIELD_BASE(174, 174, 1, 0x0090, 0x10, 15, 1), 899 + PIN_FIELD_BASE(175, 175, 1, 0x0090, 0x10, 16, 1), 900 + PIN_FIELD_BASE(176, 176, 1, 0x0090, 0x10, 17, 1), 901 + PIN_FIELD_BASE(177, 177, 1, 0x0090, 0x10, 18, 1), 902 + PIN_FIELD_BASE(178, 178, 1, 0x0090, 0x10, 6, 1), 903 + PIN_FIELD_BASE(179, 179, 1, 0x0090, 0x10, 7, 1), 904 + PIN_FIELD_BASE(180, 180, 1, 0x0090, 0x10, 0, 1), 905 + PIN_FIELD_BASE(181, 181, 1, 0x0090, 0x10, 1, 1), 906 + PIN_FIELD_BASE(182, 182, 1, 0x0090, 0x10, 2, 1), 907 + PIN_FIELD_BASE(183, 183, 1, 0x0090, 0x10, 3, 1), 908 + PIN_FIELD_BASE(184, 184, 1, 0x0090, 0x10, 4, 1), 909 + PIN_FIELD_BASE(185, 185, 1, 0x0090, 0x10, 5, 1), 910 + PIN_FIELD_BASE(186, 186, 13, 0x00d0, 0x10, 4, 1), 911 + PIN_FIELD_BASE(187, 187, 13, 0x00d0, 0x10, 5, 1), 912 + PIN_FIELD_BASE(188, 188, 13, 0x00d0, 0x10, 12, 1), 913 + PIN_FIELD_BASE(189, 189, 13, 0x00d0, 0x10, 17, 1), 914 + PIN_FIELD_BASE(190, 190, 13, 0x00d0, 0x10, 13, 1), 915 + PIN_FIELD_BASE(191, 191, 13, 0x00d0, 0x10, 18, 1), 916 + PIN_FIELD_BASE(192, 192, 13, 0x00d0, 0x10, 0, 1), 917 + PIN_FIELD_BASE(193, 193, 13, 0x00d0, 0x10, 6, 1), 918 + PIN_FIELD_BASE(194, 194, 13, 0x00d0, 0x10, 14, 1), 919 + PIN_FIELD_BASE(195, 195, 13, 0x00d0, 0x10, 19, 1), 920 + PIN_FIELD_BASE(196, 196, 13, 0x00d0, 0x10, 1, 1), 921 + PIN_FIELD_BASE(197, 197, 13, 0x00d0, 0x10, 7, 1), 922 + PIN_FIELD_BASE(198, 198, 13, 0x00d0, 0x10, 15, 1), 923 + PIN_FIELD_BASE(199, 199, 13, 0x00d0, 0x10, 20, 1), 924 + PIN_FIELD_BASE(200, 200, 13, 0x00d0, 0x10, 22, 1), 925 + PIN_FIELD_BASE(201, 201, 13, 0x00d0, 0x10, 25, 1), 926 + PIN_FIELD_BASE(202, 202, 13, 0x00d0, 0x10, 16, 1), 927 + PIN_FIELD_BASE(203, 203, 13, 0x00d0, 0x10, 21, 1), 928 + PIN_FIELD_BASE(204, 204, 13, 0x00d0, 0x10, 2, 1), 929 + PIN_FIELD_BASE(205, 205, 13, 0x00d0, 0x10, 3, 1), 930 + PIN_FIELD_BASE(206, 206, 13, 0x00d0, 0x10, 8, 1), 931 + PIN_FIELD_BASE(207, 207, 13, 0x00d0, 0x10, 9, 1), 932 + PIN_FIELD_BASE(208, 208, 13, 0x00d0, 0x10, 10, 1), 933 + PIN_FIELD_BASE(209, 209, 13, 0x00d0, 0x10, 11, 1), 934 + PIN_FIELD_BASE(210, 210, 14, 0x00b0, 0x10, 0, 1), 935 + PIN_FIELD_BASE(211, 211, 14, 0x00b0, 0x10, 1, 1), 936 + PIN_FIELD_BASE(212, 212, 14, 0x00b0, 0x10, 2, 1), 937 + PIN_FIELD_BASE(213, 213, 14, 0x00b0, 0x10, 3, 1), 938 + PIN_FIELD_BASE(214, 214, 13, 0x00d0, 0x10, 23, 1), 939 + PIN_FIELD_BASE(215, 215, 13, 0x00d0, 0x10, 24, 1), 940 + PIN_FIELD_BASE(216, 216, 14, 0x00b0, 0x10, 4, 1), 941 + PIN_FIELD_BASE(220, 220, 14, 0x00b0, 0x10, 5, 1), 942 + PIN_FIELD_BASE(221, 221, 14, 0x00b0, 0x10, 6, 1), 943 + PIN_FIELD_BASE(222, 222, 14, 0x00b0, 0x10, 8, 1), 944 + PIN_FIELD_BASE(223, 223, 14, 0x00b0, 0x10, 7, 1), 945 + PIN_FIELD_BASE(230, 230, 15, 0x0090, 0x10, 13, 1), 946 + PIN_FIELD_BASE(231, 231, 15, 0x0090, 0x10, 14, 1), 947 + PIN_FIELD_BASE(232, 232, 15, 0x0090, 0x10, 10, 1), 948 + PIN_FIELD_BASE(233, 233, 15, 0x0090, 0x10, 0, 1), 949 + PIN_FIELD_BASE(234, 234, 15, 0x0090, 0x10, 3, 1), 950 + PIN_FIELD_BASE(235, 235, 15, 0x0090, 0x10, 1, 1), 951 + PIN_FIELD_BASE(236, 236, 15, 0x0090, 0x10, 2, 1), 952 + PIN_FIELD_BASE(237, 237, 15, 0x0090, 0x10, 6, 1), 953 + PIN_FIELD_BASE(238, 238, 15, 0x0090, 0x10, 5, 1), 954 + PIN_FIELD_BASE(239, 239, 15, 0x0090, 0x10, 19, 1), 955 + PIN_FIELD_BASE(240, 240, 15, 0x0090, 0x10, 18, 1), 956 + PIN_FIELD_BASE(241, 241, 15, 0x0090, 0x10, 16, 1), 957 + PIN_FIELD_BASE(242, 242, 15, 0x0090, 0x10, 17, 1), 958 + PIN_FIELD_BASE(243, 243, 15, 0x0090, 0x10, 15, 1), 959 + PIN_FIELD_BASE(244, 244, 15, 0x0090, 0x10, 12, 1), 960 + PIN_FIELD_BASE(245, 245, 15, 0x0090, 0x10, 9, 1), 961 + PIN_FIELD_BASE(246, 246, 15, 0x0090, 0x10, 8, 1), 962 + PIN_FIELD_BASE(247, 247, 15, 0x0090, 0x10, 7, 1), 963 + PIN_FIELD_BASE(248, 248, 15, 0x0090, 0x10, 4, 1), 964 + PIN_FIELD_BASE(249, 249, 15, 0x0090, 0x10, 20, 1), 965 + PIN_FIELD_BASE(250, 250, 15, 0x0090, 0x10, 11, 1), 966 + PIN_FIELD_BASE(251, 251, 3, 0x0090, 0x10, 2, 1), 967 + PIN_FIELD_BASE(252, 252, 3, 0x0090, 0x10, 3, 1), 968 + PIN_FIELD_BASE(253, 253, 3, 0x0090, 0x10, 4, 1), 969 + PIN_FIELD_BASE(254, 254, 3, 0x0090, 0x10, 5, 1), 970 + PIN_FIELD_BASE(255, 255, 3, 0x0090, 0x10, 6, 1), 971 + PIN_FIELD_BASE(256, 256, 3, 0x0090, 0x10, 7, 1), 972 + PIN_FIELD_BASE(257, 257, 3, 0x0090, 0x10, 8, 1), 973 + PIN_FIELD_BASE(258, 258, 3, 0x0090, 0x10, 9, 1), 974 + }; 975 + 976 + static const struct mtk_pin_field_calc mt8196_pin_pd_range[] = { 977 + PIN_FIELD_BASE(0, 0, 8, 0x0090, 0x10, 0, 1), 978 + PIN_FIELD_BASE(1, 1, 8, 0x0090, 0x10, 1, 1), 979 + PIN_FIELD_BASE(2, 2, 11, 0x0070, 0x10, 1, 1), 980 + PIN_FIELD_BASE(3, 3, 11, 0x0070, 0x10, 2, 1), 981 + PIN_FIELD_BASE(4, 4, 11, 0x0070, 0x10, 3, 1), 982 + PIN_FIELD_BASE(5, 5, 11, 0x0070, 0x10, 4, 1), 983 + PIN_FIELD_BASE(6, 6, 11, 0x0070, 0x10, 5, 1), 984 + PIN_FIELD_BASE(7, 7, 11, 0x0070, 0x10, 6, 1), 985 + PIN_FIELD_BASE(8, 8, 11, 0x0070, 0x10, 7, 1), 986 + PIN_FIELD_BASE(9, 9, 9, 0x00a0, 0x10, 14, 1), 987 + PIN_FIELD_BASE(10, 10, 9, 0x00a0, 0x10, 12, 1), 988 + PIN_FIELD_BASE(11, 11, 8, 0x0090, 0x10, 2, 1), 989 + PIN_FIELD_BASE(12, 12, 9, 0x00a0, 0x10, 13, 1), 990 + PIN_FIELD_BASE(13, 13, 6, 0x0090, 0x10, 1, 1), 991 + PIN_FIELD_BASE(14, 14, 3, 0x0080, 0x10, 0, 1), 992 + PIN_FIELD_BASE(15, 15, 6, 0x0090, 0x10, 2, 1), 993 + PIN_FIELD_BASE(16, 16, 6, 0x0090, 0x10, 3, 1), 994 + PIN_FIELD_BASE(17, 17, 6, 0x0090, 0x10, 4, 1), 995 + PIN_FIELD_BASE(18, 18, 6, 0x0090, 0x10, 5, 1), 996 + PIN_FIELD_BASE(19, 19, 6, 0x0090, 0x10, 6, 1), 997 + PIN_FIELD_BASE(20, 20, 3, 0x0080, 0x10, 1, 1), 998 + PIN_FIELD_BASE(21, 21, 2, 0x0080, 0x10, 3, 1), 999 + PIN_FIELD_BASE(22, 22, 2, 0x0080, 0x10, 4, 1), 1000 + PIN_FIELD_BASE(23, 23, 2, 0x0080, 0x10, 5, 1), 1001 + PIN_FIELD_BASE(24, 24, 2, 0x0080, 0x10, 6, 1), 1002 + PIN_FIELD_BASE(25, 25, 2, 0x0080, 0x10, 7, 1), 1003 + PIN_FIELD_BASE(26, 26, 2, 0x0080, 0x10, 8, 1), 1004 + PIN_FIELD_BASE(27, 27, 2, 0x0080, 0x10, 9, 1), 1005 + PIN_FIELD_BASE(28, 28, 2, 0x0080, 0x10, 10, 1), 1006 + PIN_FIELD_BASE(29, 29, 2, 0x0080, 0x10, 11, 1), 1007 + PIN_FIELD_BASE(30, 30, 2, 0x0080, 0x10, 12, 1), 1008 + PIN_FIELD_BASE(31, 31, 2, 0x0080, 0x10, 13, 1), 1009 + PIN_FIELD_BASE(32, 32, 1, 0x0080, 0x10, 8, 1), 1010 + PIN_FIELD_BASE(33, 33, 1, 0x0080, 0x10, 9, 1), 1011 + PIN_FIELD_BASE(34, 34, 1, 0x0080, 0x10, 10, 1), 1012 + PIN_FIELD_BASE(35, 35, 1, 0x0080, 0x10, 11, 1), 1013 + PIN_FIELD_BASE(36, 36, 1, 0x0080, 0x10, 12, 1), 1014 + PIN_FIELD_BASE(37, 37, 1, 0x0080, 0x10, 13, 1), 1015 + PIN_FIELD_BASE(38, 38, 1, 0x0080, 0x10, 14, 1), 1016 + PIN_FIELD_BASE(39, 39, 8, 0x0090, 0x10, 6, 1), 1017 + PIN_FIELD_BASE(40, 40, 8, 0x0090, 0x10, 3, 1), 1018 + PIN_FIELD_BASE(41, 41, 8, 0x0090, 0x10, 5, 1), 1019 + PIN_FIELD_BASE(42, 42, 8, 0x0090, 0x10, 4, 1), 1020 + PIN_FIELD_BASE(43, 43, 8, 0x0090, 0x10, 7, 1), 1021 + PIN_FIELD_BASE(44, 44, 8, 0x0090, 0x10, 8, 1), 1022 + PIN_FIELD_BASE(45, 45, 8, 0x0090, 0x10, 9, 1), 1023 + PIN_FIELD_BASE(46, 46, 8, 0x0090, 0x10, 10, 1), 1024 + PIN_FIELD_BASE(47, 47, 8, 0x0090, 0x10, 13, 1), 1025 + PIN_FIELD_BASE(48, 48, 8, 0x0090, 0x10, 11, 1), 1026 + PIN_FIELD_BASE(49, 49, 8, 0x0090, 0x10, 14, 1), 1027 + PIN_FIELD_BASE(50, 50, 8, 0x0090, 0x10, 12, 1), 1028 + PIN_FIELD_BASE(51, 51, 8, 0x0090, 0x10, 15, 1), 1029 + PIN_FIELD_BASE(52, 52, 9, 0x00a0, 0x10, 7, 1), 1030 + PIN_FIELD_BASE(53, 53, 9, 0x00a0, 0x10, 8, 1), 1031 + PIN_FIELD_BASE(54, 54, 9, 0x00a0, 0x10, 2, 1), 1032 + PIN_FIELD_BASE(55, 55, 9, 0x00a0, 0x10, 1, 1), 1033 + PIN_FIELD_BASE(56, 56, 9, 0x00a0, 0x10, 5, 1), 1034 + PIN_FIELD_BASE(57, 57, 9, 0x00a0, 0x10, 6, 1), 1035 + PIN_FIELD_BASE(58, 58, 9, 0x00a0, 0x10, 3, 1), 1036 + PIN_FIELD_BASE(59, 59, 9, 0x00a0, 0x10, 4, 1), 1037 + PIN_FIELD_BASE(61, 61, 9, 0x00a0, 0x10, 10, 1), 1038 + PIN_FIELD_BASE(62, 62, 9, 0x00a0, 0x10, 9, 1), 1039 + PIN_FIELD_BASE(63, 63, 9, 0x00a0, 0x10, 18, 1), 1040 + PIN_FIELD_BASE(64, 64, 9, 0x00a0, 0x10, 0, 1), 1041 + PIN_FIELD_BASE(65, 65, 9, 0x00a0, 0x10, 11, 1), 1042 + PIN_FIELD_BASE(66, 66, 9, 0x00a0, 0x10, 24, 1), 1043 + PIN_FIELD_BASE(67, 67, 9, 0x00a0, 0x10, 21, 1), 1044 + PIN_FIELD_BASE(68, 68, 9, 0x00a0, 0x10, 20, 1), 1045 + PIN_FIELD_BASE(69, 69, 9, 0x00a0, 0x10, 25, 1), 1046 + PIN_FIELD_BASE(70, 70, 9, 0x00a0, 0x10, 16, 1), 1047 + PIN_FIELD_BASE(71, 71, 9, 0x00a0, 0x10, 15, 1), 1048 + PIN_FIELD_BASE(72, 72, 9, 0x00a0, 0x10, 23, 1), 1049 + PIN_FIELD_BASE(73, 73, 9, 0x00a0, 0x10, 19, 1), 1050 + PIN_FIELD_BASE(74, 74, 9, 0x00a0, 0x10, 17, 1), 1051 + PIN_FIELD_BASE(75, 75, 10, 0x0080, 0x10, 2, 1), 1052 + PIN_FIELD_BASE(76, 76, 10, 0x0080, 0x10, 3, 1), 1053 + PIN_FIELD_BASE(77, 77, 10, 0x0080, 0x10, 4, 1), 1054 + PIN_FIELD_BASE(78, 78, 10, 0x0080, 0x10, 5, 1), 1055 + PIN_FIELD_BASE(79, 79, 10, 0x0080, 0x10, 0, 1), 1056 + PIN_FIELD_BASE(80, 80, 10, 0x0080, 0x10, 1, 1), 1057 + PIN_FIELD_BASE(81, 81, 11, 0x0070, 0x10, 9, 1), 1058 + PIN_FIELD_BASE(82, 82, 11, 0x0070, 0x10, 10, 1), 1059 + PIN_FIELD_BASE(83, 83, 11, 0x0070, 0x10, 12, 1), 1060 + PIN_FIELD_BASE(84, 84, 11, 0x0070, 0x10, 11, 1), 1061 + PIN_FIELD_BASE(85, 85, 11, 0x0070, 0x10, 13, 1), 1062 + PIN_FIELD_BASE(86, 86, 11, 0x0070, 0x10, 14, 1), 1063 + PIN_FIELD_BASE(87, 87, 11, 0x0070, 0x10, 16, 1), 1064 + PIN_FIELD_BASE(88, 88, 11, 0x0070, 0x10, 15, 1), 1065 + PIN_FIELD_BASE(89, 89, 11, 0x0070, 0x10, 0, 1), 1066 + PIN_FIELD_BASE(90, 90, 11, 0x0070, 0x10, 8, 1), 1067 + PIN_FIELD_BASE(91, 91, 12, 0x0080, 0x10, 6, 1), 1068 + PIN_FIELD_BASE(92, 92, 12, 0x0080, 0x10, 7, 1), 1069 + PIN_FIELD_BASE(93, 93, 12, 0x0080, 0x10, 8, 1), 1070 + PIN_FIELD_BASE(94, 94, 12, 0x0080, 0x10, 4, 1), 1071 + PIN_FIELD_BASE(95, 95, 12, 0x0080, 0x10, 1, 1), 1072 + PIN_FIELD_BASE(96, 96, 12, 0x0080, 0x10, 3, 1), 1073 + PIN_FIELD_BASE(97, 97, 12, 0x0080, 0x10, 2, 1), 1074 + PIN_FIELD_BASE(98, 98, 12, 0x0080, 0x10, 5, 1), 1075 + PIN_FIELD_BASE(99, 99, 12, 0x0080, 0x10, 9, 1), 1076 + PIN_FIELD_BASE(100, 100, 12, 0x0080, 0x10, 12, 1), 1077 + PIN_FIELD_BASE(101, 101, 12, 0x0080, 0x10, 10, 1), 1078 + PIN_FIELD_BASE(102, 102, 12, 0x0080, 0x10, 13, 1), 1079 + PIN_FIELD_BASE(103, 103, 12, 0x0080, 0x10, 0, 1), 1080 + PIN_FIELD_BASE(104, 104, 12, 0x0080, 0x10, 11, 1), 1081 + PIN_FIELD_BASE(105, 105, 12, 0x0080, 0x10, 14, 1), 1082 + PIN_FIELD_BASE(106, 106, 5, 0x0080, 0x10, 0, 1), 1083 + PIN_FIELD_BASE(107, 107, 5, 0x0080, 0x10, 1, 1), 1084 + PIN_FIELD_BASE(108, 108, 5, 0x0080, 0x10, 3, 1), 1085 + PIN_FIELD_BASE(109, 109, 5, 0x0080, 0x10, 2, 1), 1086 + PIN_FIELD_BASE(110, 110, 5, 0x0080, 0x10, 4, 1), 1087 + PIN_FIELD_BASE(111, 111, 5, 0x0080, 0x10, 5, 1), 1088 + PIN_FIELD_BASE(112, 112, 5, 0x0080, 0x10, 7, 1), 1089 + PIN_FIELD_BASE(113, 113, 5, 0x0080, 0x10, 6, 1), 1090 + PIN_FIELD_BASE(114, 114, 5, 0x0080, 0x10, 8, 1), 1091 + PIN_FIELD_BASE(115, 115, 5, 0x0080, 0x10, 9, 1), 1092 + PIN_FIELD_BASE(116, 116, 5, 0x0080, 0x10, 11, 1), 1093 + PIN_FIELD_BASE(117, 117, 5, 0x0080, 0x10, 10, 1), 1094 + PIN_FIELD_BASE(118, 118, 6, 0x0090, 0x10, 9, 1), 1095 + PIN_FIELD_BASE(119, 119, 6, 0x0090, 0x10, 10, 1), 1096 + PIN_FIELD_BASE(120, 120, 6, 0x0090, 0x10, 12, 1), 1097 + PIN_FIELD_BASE(121, 121, 6, 0x0090, 0x10, 11, 1), 1098 + PIN_FIELD_BASE(122, 122, 6, 0x0090, 0x10, 0, 1), 1099 + PIN_FIELD_BASE(123, 123, 6, 0x0090, 0x10, 7, 1), 1100 + PIN_FIELD_BASE(124, 124, 6, 0x0090, 0x10, 8, 1), 1101 + PIN_FIELD_BASE(157, 157, 2, 0x0080, 0x10, 1, 1), 1102 + PIN_FIELD_BASE(158, 158, 2, 0x0080, 0x10, 2, 1), 1103 + PIN_FIELD_BASE(159, 159, 2, 0x0080, 0x10, 0, 1), 1104 + PIN_FIELD_BASE(160, 160, 3, 0x0080, 0x10, 22, 1), 1105 + PIN_FIELD_BASE(161, 161, 3, 0x0080, 0x10, 20, 1), 1106 + PIN_FIELD_BASE(162, 162, 3, 0x0080, 0x10, 23, 1), 1107 + PIN_FIELD_BASE(163, 163, 3, 0x0080, 0x10, 21, 1), 1108 + PIN_FIELD_BASE(164, 164, 3, 0x0080, 0x10, 12, 1), 1109 + PIN_FIELD_BASE(165, 165, 3, 0x0080, 0x10, 14, 1), 1110 + PIN_FIELD_BASE(166, 166, 3, 0x0080, 0x10, 13, 1), 1111 + PIN_FIELD_BASE(167, 167, 3, 0x0080, 0x10, 15, 1), 1112 + PIN_FIELD_BASE(168, 168, 3, 0x0080, 0x10, 16, 1), 1113 + PIN_FIELD_BASE(169, 169, 3, 0x0080, 0x10, 17, 1), 1114 + PIN_FIELD_BASE(170, 170, 3, 0x0080, 0x10, 19, 1), 1115 + PIN_FIELD_BASE(171, 171, 3, 0x0080, 0x10, 18, 1), 1116 + PIN_FIELD_BASE(172, 172, 3, 0x0080, 0x10, 10, 1), 1117 + PIN_FIELD_BASE(173, 173, 3, 0x0080, 0x10, 11, 1), 1118 + PIN_FIELD_BASE(174, 174, 1, 0x0080, 0x10, 15, 1), 1119 + PIN_FIELD_BASE(175, 175, 1, 0x0080, 0x10, 16, 1), 1120 + PIN_FIELD_BASE(176, 176, 1, 0x0080, 0x10, 17, 1), 1121 + PIN_FIELD_BASE(177, 177, 1, 0x0080, 0x10, 18, 1), 1122 + PIN_FIELD_BASE(178, 178, 1, 0x0080, 0x10, 6, 1), 1123 + PIN_FIELD_BASE(179, 179, 1, 0x0080, 0x10, 7, 1), 1124 + PIN_FIELD_BASE(180, 180, 1, 0x0080, 0x10, 0, 1), 1125 + PIN_FIELD_BASE(181, 181, 1, 0x0080, 0x10, 1, 1), 1126 + PIN_FIELD_BASE(182, 182, 1, 0x0080, 0x10, 2, 1), 1127 + PIN_FIELD_BASE(183, 183, 1, 0x0080, 0x10, 3, 1), 1128 + PIN_FIELD_BASE(184, 184, 1, 0x0080, 0x10, 4, 1), 1129 + PIN_FIELD_BASE(185, 185, 1, 0x0080, 0x10, 5, 1), 1130 + PIN_FIELD_BASE(186, 186, 13, 0x00c0, 0x10, 4, 1), 1131 + PIN_FIELD_BASE(187, 187, 13, 0x00c0, 0x10, 5, 1), 1132 + PIN_FIELD_BASE(188, 188, 13, 0x00c0, 0x10, 12, 1), 1133 + PIN_FIELD_BASE(189, 189, 13, 0x00c0, 0x10, 17, 1), 1134 + PIN_FIELD_BASE(190, 190, 13, 0x00c0, 0x10, 13, 1), 1135 + PIN_FIELD_BASE(191, 191, 13, 0x00c0, 0x10, 18, 1), 1136 + PIN_FIELD_BASE(192, 192, 13, 0x00c0, 0x10, 0, 1), 1137 + PIN_FIELD_BASE(193, 193, 13, 0x00c0, 0x10, 6, 1), 1138 + PIN_FIELD_BASE(194, 194, 13, 0x00c0, 0x10, 14, 1), 1139 + PIN_FIELD_BASE(195, 195, 13, 0x00c0, 0x10, 19, 1), 1140 + PIN_FIELD_BASE(196, 196, 13, 0x00c0, 0x10, 1, 1), 1141 + PIN_FIELD_BASE(197, 197, 13, 0x00c0, 0x10, 7, 1), 1142 + PIN_FIELD_BASE(198, 198, 13, 0x00c0, 0x10, 15, 1), 1143 + PIN_FIELD_BASE(199, 199, 13, 0x00c0, 0x10, 20, 1), 1144 + PIN_FIELD_BASE(200, 200, 13, 0x00c0, 0x10, 22, 1), 1145 + PIN_FIELD_BASE(201, 201, 13, 0x00c0, 0x10, 25, 1), 1146 + PIN_FIELD_BASE(202, 202, 13, 0x00c0, 0x10, 16, 1), 1147 + PIN_FIELD_BASE(203, 203, 13, 0x00c0, 0x10, 21, 1), 1148 + PIN_FIELD_BASE(204, 204, 13, 0x00c0, 0x10, 2, 1), 1149 + PIN_FIELD_BASE(205, 205, 13, 0x00c0, 0x10, 3, 1), 1150 + PIN_FIELD_BASE(206, 206, 13, 0x00c0, 0x10, 8, 1), 1151 + PIN_FIELD_BASE(207, 207, 13, 0x00c0, 0x10, 9, 1), 1152 + PIN_FIELD_BASE(208, 208, 13, 0x00c0, 0x10, 10, 1), 1153 + PIN_FIELD_BASE(209, 209, 13, 0x00c0, 0x10, 11, 1), 1154 + PIN_FIELD_BASE(210, 210, 14, 0x0090, 0x10, 0, 1), 1155 + PIN_FIELD_BASE(211, 211, 14, 0x0090, 0x10, 1, 1), 1156 + PIN_FIELD_BASE(212, 212, 14, 0x0090, 0x10, 2, 1), 1157 + PIN_FIELD_BASE(213, 213, 14, 0x0090, 0x10, 3, 1), 1158 + PIN_FIELD_BASE(214, 214, 13, 0x00c0, 0x10, 23, 1), 1159 + PIN_FIELD_BASE(215, 215, 13, 0x00c0, 0x10, 24, 1), 1160 + PIN_FIELD_BASE(216, 216, 14, 0x0090, 0x10, 4, 1), 1161 + PIN_FIELD_BASE(220, 220, 14, 0x0090, 0x10, 5, 1), 1162 + PIN_FIELD_BASE(221, 221, 14, 0x0090, 0x10, 6, 1), 1163 + PIN_FIELD_BASE(222, 222, 14, 0x0090, 0x10, 8, 1), 1164 + PIN_FIELD_BASE(223, 223, 14, 0x0090, 0x10, 7, 1), 1165 + PIN_FIELD_BASE(230, 230, 15, 0x0070, 0x10, 13, 1), 1166 + PIN_FIELD_BASE(231, 231, 15, 0x0070, 0x10, 14, 1), 1167 + PIN_FIELD_BASE(232, 232, 15, 0x0070, 0x10, 10, 1), 1168 + PIN_FIELD_BASE(233, 233, 15, 0x0070, 0x10, 0, 1), 1169 + PIN_FIELD_BASE(234, 234, 15, 0x0070, 0x10, 3, 1), 1170 + PIN_FIELD_BASE(235, 235, 15, 0x0070, 0x10, 1, 1), 1171 + PIN_FIELD_BASE(236, 236, 15, 0x0070, 0x10, 2, 1), 1172 + PIN_FIELD_BASE(237, 237, 15, 0x0070, 0x10, 6, 1), 1173 + PIN_FIELD_BASE(238, 238, 15, 0x0070, 0x10, 5, 1), 1174 + PIN_FIELD_BASE(239, 239, 15, 0x0070, 0x10, 19, 1), 1175 + PIN_FIELD_BASE(240, 240, 15, 0x0070, 0x10, 18, 1), 1176 + PIN_FIELD_BASE(241, 241, 15, 0x0070, 0x10, 16, 1), 1177 + PIN_FIELD_BASE(242, 242, 15, 0x0070, 0x10, 17, 1), 1178 + PIN_FIELD_BASE(243, 243, 15, 0x0070, 0x10, 15, 1), 1179 + PIN_FIELD_BASE(244, 244, 15, 0x0070, 0x10, 12, 1), 1180 + PIN_FIELD_BASE(245, 245, 15, 0x0070, 0x10, 9, 1), 1181 + PIN_FIELD_BASE(246, 246, 15, 0x0070, 0x10, 8, 1), 1182 + PIN_FIELD_BASE(247, 247, 15, 0x0070, 0x10, 7, 1), 1183 + PIN_FIELD_BASE(248, 248, 15, 0x0070, 0x10, 4, 1), 1184 + PIN_FIELD_BASE(249, 249, 15, 0x0070, 0x10, 20, 1), 1185 + PIN_FIELD_BASE(250, 250, 15, 0x0070, 0x10, 11, 1), 1186 + PIN_FIELD_BASE(251, 251, 3, 0x0080, 0x10, 2, 1), 1187 + PIN_FIELD_BASE(252, 252, 3, 0x0080, 0x10, 3, 1), 1188 + PIN_FIELD_BASE(253, 253, 3, 0x0080, 0x10, 4, 1), 1189 + PIN_FIELD_BASE(254, 254, 3, 0x0080, 0x10, 5, 1), 1190 + PIN_FIELD_BASE(255, 255, 3, 0x0080, 0x10, 6, 1), 1191 + PIN_FIELD_BASE(256, 256, 3, 0x0080, 0x10, 7, 1), 1192 + PIN_FIELD_BASE(257, 257, 3, 0x0080, 0x10, 8, 1), 1193 + PIN_FIELD_BASE(258, 258, 3, 0x0080, 0x10, 9, 1), 1194 + }; 1195 + 1196 + static const struct mtk_pin_field_calc mt8196_pin_drv_range[] = { 1197 + PIN_FIELD_BASE(0, 0, 8, 0x0000, 0x10, 0, 3), 1198 + PIN_FIELD_BASE(1, 1, 8, 0x0000, 0x10, 3, 3), 1199 + PIN_FIELD_BASE(2, 2, 11, 0x0000, 0x10, 12, 3), 1200 + PIN_FIELD_BASE(3, 3, 11, 0x0000, 0x10, 12, 3), 1201 + PIN_FIELD_BASE(4, 4, 11, 0x0000, 0x10, 15, 3), 1202 + PIN_FIELD_BASE(5, 5, 11, 0x0000, 0x10, 0, 3), 1203 + PIN_FIELD_BASE(6, 6, 11, 0x0000, 0x10, 3, 3), 1204 + PIN_FIELD_BASE(7, 7, 11, 0x0000, 0x10, 6, 3), 1205 + PIN_FIELD_BASE(8, 8, 11, 0x0000, 0x10, 9, 3), 1206 + PIN_FIELD_BASE(9, 9, 9, 0x0010, 0x10, 9, 3), 1207 + PIN_FIELD_BASE(10, 10, 9, 0x0010, 0x10, 6, 3), 1208 + PIN_FIELD_BASE(11, 11, 8, 0x0000, 0x10, 24, 3), 1209 + PIN_FIELD_BASE(12, 12, 9, 0x0010, 0x10, 15, 3), 1210 + PIN_FIELD_BASE(13, 13, 6, 0x0000, 0x10, 9, 3), 1211 + PIN_FIELD_BASE(14, 14, 3, 0x0000, 0x10, 0, 3), 1212 + PIN_FIELD_BASE(15, 15, 6, 0x0000, 0x10, 0, 3), 1213 + PIN_FIELD_BASE(16, 16, 6, 0x0000, 0x10, 9, 3), 1214 + PIN_FIELD_BASE(17, 17, 6, 0x0000, 0x10, 9, 3), 1215 + PIN_FIELD_BASE(18, 18, 6, 0x0000, 0x10, 3, 3), 1216 + PIN_FIELD_BASE(19, 19, 6, 0x0000, 0x10, 6, 3), 1217 + PIN_FIELD_BASE(20, 20, 3, 0x0000, 0x10, 9, 3), 1218 + PIN_FIELD_BASE(21, 21, 2, 0x0000, 0x10, 0, 3), 1219 + PIN_FIELD_BASE(22, 22, 2, 0x0000, 0x10, 3, 3), 1220 + PIN_FIELD_BASE(23, 23, 2, 0x0000, 0x10, 6, 3), 1221 + PIN_FIELD_BASE(24, 24, 2, 0x0000, 0x10, 9, 3), 1222 + PIN_FIELD_BASE(25, 25, 2, 0x0000, 0x10, 12, 3), 1223 + PIN_FIELD_BASE(26, 26, 2, 0x0000, 0x10, 15, 3), 1224 + PIN_FIELD_BASE(27, 27, 2, 0x0010, 0x10, 3, 3), 1225 + PIN_FIELD_BASE(28, 28, 2, 0x0000, 0x10, 18, 3), 1226 + PIN_FIELD_BASE(29, 29, 2, 0x0000, 0x10, 21, 3), 1227 + PIN_FIELD_BASE(30, 30, 2, 0x0000, 0x10, 24, 3), 1228 + PIN_FIELD_BASE(31, 31, 2, 0x0000, 0x10, 27, 3), 1229 + PIN_FIELD_BASE(32, 32, 1, 0x0000, 0x10, 21, 3), 1230 + PIN_FIELD_BASE(33, 33, 1, 0x0000, 0x10, 21, 3), 1231 + PIN_FIELD_BASE(34, 34, 1, 0x0000, 0x10, 21, 3), 1232 + PIN_FIELD_BASE(35, 35, 1, 0x0000, 0x10, 21, 3), 1233 + PIN_FIELD_BASE(36, 36, 1, 0x0000, 0x10, 21, 3), 1234 + PIN_FIELD_BASE(37, 37, 1, 0x0000, 0x10, 27, 3), 1235 + PIN_FIELD_BASE(38, 38, 1, 0x0000, 0x10, 18, 3), 1236 + PIN_FIELD_BASE(39, 39, 8, 0x0000, 0x10, 27, 3), 1237 + PIN_FIELD_BASE(40, 40, 8, 0x0000, 0x10, 6, 3), 1238 + PIN_FIELD_BASE(41, 41, 8, 0x0000, 0x10, 12, 3), 1239 + PIN_FIELD_BASE(42, 42, 8, 0x0000, 0x10, 9, 3), 1240 + PIN_FIELD_BASE(43, 43, 8, 0x0000, 0x10, 15, 3), 1241 + PIN_FIELD_BASE(44, 44, 8, 0x0000, 0x10, 18, 3), 1242 + PIN_FIELD_BASE(45, 45, 8, 0x0000, 0x10, 21, 3), 1243 + PIN_FIELD_BASE(46, 46, 8, 0x0010, 0x10, 0, 3), 1244 + PIN_FIELD_BASE(47, 47, 8, 0x0010, 0x10, 9, 3), 1245 + PIN_FIELD_BASE(48, 48, 8, 0x0010, 0x10, 3, 3), 1246 + PIN_FIELD_BASE(49, 49, 8, 0x0010, 0x10, 12, 3), 1247 + PIN_FIELD_BASE(50, 50, 8, 0x0010, 0x10, 6, 3), 1248 + PIN_FIELD_BASE(51, 51, 8, 0x0010, 0x10, 15, 3), 1249 + PIN_FIELD_BASE(52, 52, 9, 0x0000, 0x10, 21, 3), 1250 + PIN_FIELD_BASE(53, 53, 9, 0x0000, 0x10, 24, 3), 1251 + PIN_FIELD_BASE(54, 54, 9, 0x0000, 0x10, 6, 3), 1252 + PIN_FIELD_BASE(55, 55, 9, 0x0000, 0x10, 3, 3), 1253 + PIN_FIELD_BASE(56, 56, 9, 0x0000, 0x10, 15, 3), 1254 + PIN_FIELD_BASE(57, 57, 9, 0x0000, 0x10, 18, 3), 1255 + PIN_FIELD_BASE(58, 58, 9, 0x0000, 0x10, 9, 3), 1256 + PIN_FIELD_BASE(59, 59, 9, 0x0000, 0x10, 12, 3), 1257 + PIN_FIELD_BASE(60, 60, 9, 0x0010, 0x10, 24, 3), 1258 + PIN_FIELD_BASE(61, 61, 9, 0x0010, 0x10, 0, 3), 1259 + PIN_FIELD_BASE(62, 62, 9, 0x0000, 0x10, 27, 3), 1260 + PIN_FIELD_BASE(63, 63, 9, 0x0010, 0x10, 12, 3), 1261 + PIN_FIELD_BASE(64, 64, 9, 0x0000, 0x10, 0, 3), 1262 + PIN_FIELD_BASE(65, 65, 9, 0x0010, 0x10, 3, 3), 1263 + PIN_FIELD_BASE(66, 66, 9, 0x0010, 0x10, 27, 3), 1264 + PIN_FIELD_BASE(67, 67, 9, 0x0010, 0x10, 21, 3), 1265 + PIN_FIELD_BASE(68, 68, 9, 0x0010, 0x10, 21, 3), 1266 + PIN_FIELD_BASE(69, 69, 9, 0x0010, 0x10, 21, 3), 1267 + PIN_FIELD_BASE(70, 70, 9, 0x0010, 0x10, 18, 3), 1268 + PIN_FIELD_BASE(71, 71, 9, 0x0010, 0x10, 18, 3), 1269 + PIN_FIELD_BASE(72, 72, 9, 0x0010, 0x10, 21, 3), 1270 + PIN_FIELD_BASE(73, 73, 9, 0x0010, 0x10, 18, 3), 1271 + PIN_FIELD_BASE(74, 74, 9, 0x0010, 0x10, 18, 3), 1272 + PIN_FIELD_BASE(75, 75, 10, 0x0000, 0x10, 6, 3), 1273 + PIN_FIELD_BASE(76, 76, 10, 0x0000, 0x10, 9, 3), 1274 + PIN_FIELD_BASE(77, 77, 10, 0x0000, 0x10, 12, 3), 1275 + PIN_FIELD_BASE(78, 78, 10, 0x0000, 0x10, 15, 3), 1276 + PIN_FIELD_BASE(79, 79, 10, 0x0000, 0x10, 0, 3), 1277 + PIN_FIELD_BASE(80, 80, 10, 0x0000, 0x10, 3, 3), 1278 + PIN_FIELD_BASE(81, 81, 11, 0x0000, 0x10, 18, 3), 1279 + PIN_FIELD_BASE(82, 82, 11, 0x0000, 0x10, 21, 3), 1280 + PIN_FIELD_BASE(83, 83, 11, 0x0000, 0x10, 27, 3), 1281 + PIN_FIELD_BASE(84, 84, 11, 0x0000, 0x10, 24, 3), 1282 + PIN_FIELD_BASE(85, 85, 11, 0x0010, 0x10, 0, 3), 1283 + PIN_FIELD_BASE(86, 86, 11, 0x0010, 0x10, 3, 3), 1284 + PIN_FIELD_BASE(87, 87, 11, 0x0010, 0x10, 9, 3), 1285 + PIN_FIELD_BASE(88, 88, 11, 0x0010, 0x10, 6, 3), 1286 + PIN_FIELD_BASE(89, 89, 11, 0x0000, 0x10, 12, 3), 1287 + PIN_FIELD_BASE(90, 90, 11, 0x0000, 0x10, 12, 3), 1288 + PIN_FIELD_BASE(91, 91, 12, 0x0000, 0x10, 15, 3), 1289 + PIN_FIELD_BASE(92, 92, 12, 0x0000, 0x10, 15, 3), 1290 + PIN_FIELD_BASE(93, 93, 12, 0x0000, 0x10, 15, 3), 1291 + PIN_FIELD_BASE(94, 94, 12, 0x0000, 0x10, 12, 3), 1292 + PIN_FIELD_BASE(95, 95, 12, 0x0000, 0x10, 0, 3), 1293 + PIN_FIELD_BASE(96, 96, 12, 0x0000, 0x10, 6, 3), 1294 + PIN_FIELD_BASE(97, 97, 12, 0x0000, 0x10, 3, 3), 1295 + PIN_FIELD_BASE(98, 98, 12, 0x0000, 0x10, 9, 3), 1296 + PIN_FIELD_BASE(99, 99, 12, 0x0000, 0x10, 18, 3), 1297 + PIN_FIELD_BASE(100, 100, 12, 0x0000, 0x10, 27, 3), 1298 + PIN_FIELD_BASE(101, 101, 12, 0x0000, 0x10, 21, 3), 1299 + PIN_FIELD_BASE(102, 102, 12, 0x0010, 0x10, 0, 3), 1300 + PIN_FIELD_BASE(103, 103, 12, 0x0000, 0x10, 12, 3), 1301 + PIN_FIELD_BASE(104, 104, 12, 0x0000, 0x10, 24, 3), 1302 + PIN_FIELD_BASE(105, 105, 12, 0x0010, 0x10, 3, 3), 1303 + PIN_FIELD_BASE(106, 106, 5, 0x0000, 0x10, 0, 3), 1304 + PIN_FIELD_BASE(107, 107, 5, 0x0000, 0x10, 3, 3), 1305 + PIN_FIELD_BASE(108, 108, 5, 0x0000, 0x10, 9, 3), 1306 + PIN_FIELD_BASE(109, 109, 5, 0x0000, 0x10, 6, 3), 1307 + PIN_FIELD_BASE(110, 110, 5, 0x0000, 0x10, 12, 3), 1308 + PIN_FIELD_BASE(111, 111, 5, 0x0000, 0x10, 15, 3), 1309 + PIN_FIELD_BASE(112, 112, 5, 0x0000, 0x10, 21, 3), 1310 + PIN_FIELD_BASE(113, 113, 5, 0x0000, 0x10, 18, 3), 1311 + PIN_FIELD_BASE(114, 114, 5, 0x0000, 0x10, 24, 3), 1312 + PIN_FIELD_BASE(115, 115, 5, 0x0000, 0x10, 27, 3), 1313 + PIN_FIELD_BASE(116, 116, 5, 0x0010, 0x10, 3, 3), 1314 + PIN_FIELD_BASE(117, 117, 5, 0x0010, 0x10, 0, 3), 1315 + PIN_FIELD_BASE(118, 118, 6, 0x0000, 0x10, 18, 3), 1316 + PIN_FIELD_BASE(119, 119, 6, 0x0000, 0x10, 21, 3), 1317 + PIN_FIELD_BASE(120, 120, 6, 0x0000, 0x10, 27, 3), 1318 + PIN_FIELD_BASE(121, 121, 6, 0x0000, 0x10, 24, 3), 1319 + PIN_FIELD_BASE(122, 122, 6, 0x0000, 0x10, 9, 3), 1320 + PIN_FIELD_BASE(123, 123, 6, 0x0000, 0x10, 12, 3), 1321 + PIN_FIELD_BASE(124, 124, 6, 0x0000, 0x10, 15, 3), 1322 + PIN_FIELD_BASE(125, 125, 7, 0x0000, 0x10, 0, 3), 1323 + PIN_FIELD_BASE(126, 126, 7, 0x0000, 0x10, 3, 3), 1324 + PIN_FIELD_BASE(127, 127, 7, 0x0000, 0x10, 6, 3), 1325 + PIN_FIELD_BASE(128, 128, 7, 0x0000, 0x10, 9, 3), 1326 + PIN_FIELD_BASE(129, 129, 7, 0x0000, 0x10, 12, 3), 1327 + PIN_FIELD_BASE(130, 130, 7, 0x0000, 0x10, 15, 3), 1328 + PIN_FIELD_BASE(131, 131, 7, 0x0000, 0x10, 27, 3), 1329 + PIN_FIELD_BASE(132, 132, 7, 0x0010, 0x10, 3, 3), 1330 + PIN_FIELD_BASE(133, 133, 7, 0x0010, 0x10, 0, 3), 1331 + PIN_FIELD_BASE(134, 134, 7, 0x0000, 0x10, 18, 3), 1332 + PIN_FIELD_BASE(135, 135, 7, 0x0000, 0x10, 24, 3), 1333 + PIN_FIELD_BASE(136, 136, 7, 0x0000, 0x10, 21, 3), 1334 + PIN_FIELD_BASE(137, 137, 4, 0x0000, 0x10, 6, 3), 1335 + PIN_FIELD_BASE(138, 138, 4, 0x0000, 0x10, 9, 3), 1336 + PIN_FIELD_BASE(139, 139, 4, 0x0000, 0x10, 12, 3), 1337 + PIN_FIELD_BASE(140, 140, 4, 0x0000, 0x10, 15, 3), 1338 + PIN_FIELD_BASE(141, 141, 4, 0x0000, 0x10, 18, 3), 1339 + PIN_FIELD_BASE(142, 142, 4, 0x0000, 0x10, 21, 3), 1340 + PIN_FIELD_BASE(143, 143, 4, 0x0000, 0x10, 24, 3), 1341 + PIN_FIELD_BASE(144, 144, 4, 0x0000, 0x10, 27, 3), 1342 + PIN_FIELD_BASE(145, 145, 4, 0x0010, 0x10, 0, 3), 1343 + PIN_FIELD_BASE(146, 146, 4, 0x0010, 0x10, 0, 3), 1344 + PIN_FIELD_BASE(147, 147, 4, 0x0000, 0x10, 0, 3), 1345 + PIN_FIELD_BASE(148, 148, 4, 0x0000, 0x10, 3, 3), 1346 + PIN_FIELD_BASE(149, 149, 4, 0x0010, 0x10, 3, 3), 1347 + PIN_FIELD_BASE(150, 150, 4, 0x0010, 0x10, 3, 3), 1348 + PIN_FIELD_BASE(151, 151, 4, 0x0010, 0x10, 3, 3), 1349 + PIN_FIELD_BASE(152, 152, 4, 0x0010, 0x10, 3, 3), 1350 + PIN_FIELD_BASE(153, 153, 4, 0x0010, 0x10, 12, 3), 1351 + PIN_FIELD_BASE(154, 154, 4, 0x0010, 0x10, 9, 3), 1352 + PIN_FIELD_BASE(155, 155, 4, 0x0010, 0x10, 6, 3), 1353 + PIN_FIELD_BASE(156, 156, 4, 0x0010, 0x10, 6, 3), 1354 + PIN_FIELD_BASE(157, 157, 2, 0x0010, 0x10, 0, 3), 1355 + PIN_FIELD_BASE(158, 158, 2, 0x0010, 0x10, 0, 3), 1356 + PIN_FIELD_BASE(159, 159, 2, 0x0010, 0x10, 0, 3), 1357 + PIN_FIELD_BASE(160, 160, 3, 0x0000, 0x10, 3, 3), 1358 + PIN_FIELD_BASE(161, 161, 3, 0x0000, 0x10, 6, 3), 1359 + PIN_FIELD_BASE(162, 162, 3, 0x0000, 0x10, 6, 3), 1360 + PIN_FIELD_BASE(163, 163, 3, 0x0000, 0x10, 6, 3), 1361 + PIN_FIELD_BASE(164, 164, 3, 0x0000, 0x10, 18, 3), 1362 + PIN_FIELD_BASE(165, 165, 3, 0x0000, 0x10, 24, 3), 1363 + PIN_FIELD_BASE(166, 166, 3, 0x0000, 0x10, 21, 3), 1364 + PIN_FIELD_BASE(167, 167, 3, 0x0000, 0x10, 27, 3), 1365 + PIN_FIELD_BASE(168, 168, 3, 0x0010, 0x10, 0, 3), 1366 + PIN_FIELD_BASE(169, 169, 3, 0x0010, 0x10, 3, 3), 1367 + PIN_FIELD_BASE(170, 170, 3, 0x0010, 0x10, 9, 3), 1368 + PIN_FIELD_BASE(171, 171, 3, 0x0010, 0x10, 6, 3), 1369 + PIN_FIELD_BASE(172, 172, 3, 0x0000, 0x10, 9, 3), 1370 + PIN_FIELD_BASE(173, 173, 3, 0x0000, 0x10, 9, 3), 1371 + PIN_FIELD_BASE(174, 174, 1, 0x0000, 0x10, 27, 3), 1372 + PIN_FIELD_BASE(175, 175, 1, 0x0000, 0x10, 27, 3), 1373 + PIN_FIELD_BASE(176, 176, 1, 0x0010, 0x10, 0, 3), 1374 + PIN_FIELD_BASE(177, 177, 1, 0x0010, 0x10, 3, 3), 1375 + PIN_FIELD_BASE(178, 178, 1, 0x0000, 0x10, 24, 3), 1376 + PIN_FIELD_BASE(179, 179, 1, 0x0000, 0x10, 24, 3), 1377 + PIN_FIELD_BASE(180, 180, 1, 0x0000, 0x10, 0, 3), 1378 + PIN_FIELD_BASE(181, 181, 1, 0x0000, 0x10, 3, 3), 1379 + PIN_FIELD_BASE(182, 182, 1, 0x0000, 0x10, 6, 3), 1380 + PIN_FIELD_BASE(183, 183, 1, 0x0000, 0x10, 9, 3), 1381 + PIN_FIELD_BASE(184, 184, 1, 0x0000, 0x10, 12, 3), 1382 + PIN_FIELD_BASE(185, 185, 1, 0x0000, 0x10, 15, 3), 1383 + PIN_FIELD_BASE(186, 186, 13, 0x0010, 0x10, 12, 3), 1384 + PIN_FIELD_BASE(187, 187, 13, 0x0010, 0x10, 12, 3), 1385 + PIN_FIELD_BASE(188, 188, 13, 0x0000, 0x10, 12, 3), 1386 + PIN_FIELD_BASE(189, 189, 13, 0x0000, 0x10, 27, 3), 1387 + PIN_FIELD_BASE(190, 190, 13, 0x0000, 0x10, 15, 3), 1388 + PIN_FIELD_BASE(191, 191, 13, 0x0010, 0x10, 0, 3), 1389 + PIN_FIELD_BASE(192, 192, 13, 0x0000, 0x10, 0, 3), 1390 + PIN_FIELD_BASE(193, 193, 13, 0x0010, 0x10, 15, 3), 1391 + PIN_FIELD_BASE(194, 194, 13, 0x0000, 0x10, 18, 3), 1392 + PIN_FIELD_BASE(195, 195, 13, 0x0010, 0x10, 3, 3), 1393 + PIN_FIELD_BASE(196, 196, 13, 0x0000, 0x10, 3, 3), 1394 + PIN_FIELD_BASE(197, 197, 13, 0x0010, 0x10, 18, 3), 1395 + PIN_FIELD_BASE(198, 198, 13, 0x0000, 0x10, 21, 3), 1396 + PIN_FIELD_BASE(199, 199, 13, 0x0010, 0x10, 6, 3), 1397 + PIN_FIELD_BASE(200, 200, 13, 0x0010, 0x10, 27, 3), 1398 + PIN_FIELD_BASE(201, 201, 13, 0x0020, 0x10, 6, 3), 1399 + PIN_FIELD_BASE(202, 202, 13, 0x0000, 0x10, 24, 3), 1400 + PIN_FIELD_BASE(203, 203, 13, 0x0010, 0x10, 9, 3), 1401 + PIN_FIELD_BASE(204, 204, 13, 0x0000, 0x10, 6, 3), 1402 + PIN_FIELD_BASE(205, 205, 13, 0x0000, 0x10, 9, 3), 1403 + PIN_FIELD_BASE(206, 206, 13, 0x0010, 0x10, 24, 3), 1404 + PIN_FIELD_BASE(207, 207, 13, 0x0010, 0x10, 21, 3), 1405 + PIN_FIELD_BASE(208, 208, 13, 0x0010, 0x10, 21, 3), 1406 + PIN_FIELD_BASE(209, 209, 13, 0x0010, 0x10, 21, 3), 1407 + PIN_FIELD_BASE(210, 210, 14, 0x0000, 0x10, 0, 3), 1408 + PIN_FIELD_BASE(211, 211, 14, 0x0000, 0x10, 3, 3), 1409 + PIN_FIELD_BASE(212, 212, 14, 0x0000, 0x10, 6, 3), 1410 + PIN_FIELD_BASE(213, 213, 14, 0x0000, 0x10, 9, 3), 1411 + PIN_FIELD_BASE(214, 214, 13, 0x0020, 0x10, 0, 3), 1412 + PIN_FIELD_BASE(215, 215, 13, 0x0020, 0x10, 3, 3), 1413 + PIN_FIELD_BASE(216, 216, 14, 0x0010, 0x10, 6, 3), 1414 + PIN_FIELD_BASE(217, 217, 14, 0x0010, 0x10, 6, 3), 1415 + PIN_FIELD_BASE(218, 218, 14, 0x0000, 0x10, 15, 3), 1416 + PIN_FIELD_BASE(219, 219, 14, 0x0000, 0x10, 12, 3), 1417 + PIN_FIELD_BASE(220, 220, 14, 0x0020, 0x10, 3, 3), 1418 + PIN_FIELD_BASE(221, 221, 14, 0x0020, 0x10, 6, 3), 1419 + PIN_FIELD_BASE(222, 222, 14, 0x0020, 0x10, 12, 3), 1420 + PIN_FIELD_BASE(223, 223, 14, 0x0020, 0x10, 9, 3), 1421 + PIN_FIELD_BASE(224, 224, 14, 0x0000, 0x10, 18, 3), 1422 + PIN_FIELD_BASE(225, 225, 14, 0x0000, 0x10, 21, 3), 1423 + PIN_FIELD_BASE(226, 226, 14, 0x0000, 0x10, 24, 3), 1424 + PIN_FIELD_BASE(227, 227, 14, 0x0000, 0x10, 27, 3), 1425 + PIN_FIELD_BASE(228, 228, 14, 0x0010, 0x10, 0, 3), 1426 + PIN_FIELD_BASE(229, 229, 14, 0x0010, 0x10, 3, 3), 1427 + PIN_FIELD_BASE(230, 230, 15, 0x0000, 0x10, 0, 3), 1428 + PIN_FIELD_BASE(231, 231, 15, 0x0000, 0x10, 0, 3), 1429 + PIN_FIELD_BASE(232, 232, 15, 0x0000, 0x10, 0, 3), 1430 + PIN_FIELD_BASE(233, 233, 15, 0x0000, 0x10, 3, 3), 1431 + PIN_FIELD_BASE(234, 234, 15, 0x0000, 0x10, 3, 3), 1432 + PIN_FIELD_BASE(235, 235, 15, 0x0000, 0x10, 3, 3), 1433 + PIN_FIELD_BASE(236, 236, 15, 0x0000, 0x10, 3, 3), 1434 + PIN_FIELD_BASE(237, 237, 15, 0x0000, 0x10, 6, 3), 1435 + PIN_FIELD_BASE(238, 238, 15, 0x0000, 0x10, 6, 3), 1436 + PIN_FIELD_BASE(239, 239, 15, 0x0000, 0x10, 6, 3), 1437 + PIN_FIELD_BASE(240, 240, 15, 0x0000, 0x10, 6, 3), 1438 + PIN_FIELD_BASE(241, 241, 15, 0x0000, 0x10, 9, 3), 1439 + PIN_FIELD_BASE(242, 242, 15, 0x0000, 0x10, 9, 3), 1440 + PIN_FIELD_BASE(243, 243, 15, 0x0000, 0x10, 9, 3), 1441 + PIN_FIELD_BASE(244, 244, 15, 0x0000, 0x10, 9, 3), 1442 + PIN_FIELD_BASE(245, 245, 15, 0x0000, 0x10, 12, 3), 1443 + PIN_FIELD_BASE(246, 246, 15, 0x0000, 0x10, 15, 3), 1444 + PIN_FIELD_BASE(247, 247, 15, 0x0000, 0x10, 15, 3), 1445 + PIN_FIELD_BASE(248, 248, 15, 0x0000, 0x10, 12, 3), 1446 + PIN_FIELD_BASE(249, 249, 15, 0x0000, 0x10, 12, 3), 1447 + PIN_FIELD_BASE(250, 250, 15, 0x0000, 0x10, 12, 3), 1448 + PIN_FIELD_BASE(251, 251, 3, 0x0000, 0x10, 9, 3), 1449 + PIN_FIELD_BASE(252, 252, 3, 0x0000, 0x10, 12, 3), 1450 + PIN_FIELD_BASE(253, 253, 3, 0x0000, 0x10, 12, 3), 1451 + PIN_FIELD_BASE(254, 254, 3, 0x0000, 0x10, 12, 3), 1452 + PIN_FIELD_BASE(255, 255, 3, 0x0000, 0x10, 12, 3), 1453 + PIN_FIELD_BASE(256, 256, 3, 0x0000, 0x10, 15, 3), 1454 + PIN_FIELD_BASE(257, 257, 3, 0x0000, 0x10, 15, 3), 1455 + PIN_FIELD_BASE(258, 258, 3, 0x0000, 0x10, 15, 3), 1456 + PIN_FIELD_BASE(259, 259, 14, 0x0010, 0x10, 9, 3), 1457 + PIN_FIELD_BASE(260, 260, 14, 0x0010, 0x10, 12, 3), 1458 + PIN_FIELD_BASE(261, 261, 14, 0x0010, 0x10, 15, 3), 1459 + PIN_FIELD_BASE(262, 262, 14, 0x0010, 0x10, 18, 3), 1460 + PIN_FIELD_BASE(263, 263, 14, 0x0010, 0x10, 21, 3), 1461 + PIN_FIELD_BASE(264, 264, 14, 0x0010, 0x10, 24, 3), 1462 + PIN_FIELD_BASE(265, 265, 14, 0x0010, 0x10, 27, 3), 1463 + PIN_FIELD_BASE(266, 266, 14, 0x0020, 0x10, 0, 3), 1464 + PIN_FIELD_BASE(267, 267, 15, 0x0000, 0x10, 24, 3), 1465 + PIN_FIELD_BASE(268, 268, 15, 0x0000, 0x10, 27, 3), 1466 + PIN_FIELD_BASE(269, 269, 15, 0x0000, 0x10, 18, 3), 1467 + PIN_FIELD_BASE(270, 270, 15, 0x0000, 0x10, 21, 3), 1468 + }; 1469 + 1470 + static const struct mtk_pin_field_calc mt8196_pin_drv_adv_range[] = { 1471 + PIN_FIELD_BASE(46, 46, 8, 0x0030, 0x10, 0, 3), 1472 + PIN_FIELD_BASE(47, 47, 8, 0x0030, 0x10, 9, 3), 1473 + PIN_FIELD_BASE(48, 48, 8, 0x0030, 0x10, 3, 3), 1474 + PIN_FIELD_BASE(49, 49, 8, 0x0030, 0x10, 12, 3), 1475 + PIN_FIELD_BASE(50, 50, 8, 0x0030, 0x10, 6, 3), 1476 + PIN_FIELD_BASE(51, 51, 8, 0x0030, 0x10, 15, 3), 1477 + PIN_FIELD_BASE(52, 52, 9, 0x0030, 0x10, 0, 3), 1478 + PIN_FIELD_BASE(53, 53, 9, 0x0030, 0x10, 3, 3), 1479 + PIN_FIELD_BASE(75, 75, 10, 0x0020, 0x10, 0, 5), 1480 + PIN_FIELD_BASE(76, 76, 10, 0x0020, 0x10, 5, 5), 1481 + PIN_FIELD_BASE(77, 77, 10, 0x0020, 0x10, 10, 5), 1482 + PIN_FIELD_BASE(78, 78, 10, 0x0020, 0x10, 15, 5), 1483 + PIN_FIELD_BASE(99, 99, 12, 0x0020, 0x10, 0, 3), 1484 + PIN_FIELD_BASE(100, 100, 12, 0x0020, 0x10, 9, 3), 1485 + PIN_FIELD_BASE(101, 101, 12, 0x0020, 0x10, 3, 3), 1486 + PIN_FIELD_BASE(102, 102, 12, 0x0020, 0x10, 12, 3), 1487 + PIN_FIELD_BASE(104, 104, 12, 0x0020, 0x10, 6, 3), 1488 + PIN_FIELD_BASE(105, 105, 12, 0x0020, 0x10, 15, 3), 1489 + PIN_FIELD_BASE(123, 123, 6, 0x0020, 0x10, 0, 3), 1490 + PIN_FIELD_BASE(124, 124, 6, 0x0020, 0x10, 3, 3), 1491 + PIN_FIELD_BASE(164, 164, 3, 0x0020, 0x10, 0, 3), 1492 + PIN_FIELD_BASE(165, 165, 3, 0x0020, 0x10, 6, 3), 1493 + PIN_FIELD_BASE(166, 166, 3, 0x0020, 0x10, 3, 3), 1494 + PIN_FIELD_BASE(167, 167, 3, 0x0020, 0x10, 9, 3), 1495 + PIN_FIELD_BASE(168, 168, 3, 0x0020, 0x10, 12, 3), 1496 + PIN_FIELD_BASE(170, 170, 3, 0x0020, 0x10, 15, 3), 1497 + PIN_FIELD_BASE(176, 176, 1, 0x0020, 0x10, 0, 3), 1498 + PIN_FIELD_BASE(177, 177, 1, 0x0020, 0x10, 3, 3), 1499 + PIN_FIELD_BASE(188, 188, 13, 0x0040, 0x10, 0, 3), 1500 + PIN_FIELD_BASE(189, 189, 13, 0x0040, 0x10, 15, 3), 1501 + PIN_FIELD_BASE(190, 190, 13, 0x0040, 0x10, 3, 3), 1502 + PIN_FIELD_BASE(191, 191, 13, 0x0040, 0x10, 18, 3), 1503 + PIN_FIELD_BASE(194, 194, 13, 0x0040, 0x10, 6, 3), 1504 + PIN_FIELD_BASE(195, 195, 13, 0x0040, 0x10, 21, 3), 1505 + PIN_FIELD_BASE(198, 198, 13, 0x0040, 0x10, 9, 3), 1506 + PIN_FIELD_BASE(199, 199, 13, 0x0040, 0x10, 24, 3), 1507 + PIN_FIELD_BASE(200, 200, 13, 0x0050, 0x10, 0, 3), 1508 + PIN_FIELD_BASE(201, 201, 13, 0x0050, 0x10, 9, 3), 1509 + PIN_FIELD_BASE(202, 202, 13, 0x0040, 0x10, 12, 3), 1510 + PIN_FIELD_BASE(203, 203, 13, 0x0040, 0x10, 27, 3), 1511 + PIN_FIELD_BASE(214, 214, 13, 0x0050, 0x10, 3, 3), 1512 + PIN_FIELD_BASE(215, 215, 13, 0x0050, 0x10, 6, 3), 1513 + }; 1514 + 1515 + static const struct mtk_pin_field_calc mt8196_pin_rsel_range[] = { 1516 + PIN_FIELD_BASE(46, 46, 8, 0x00c0, 0x10, 0, 3), 1517 + PIN_FIELD_BASE(47, 47, 8, 0x00c0, 0x10, 9, 3), 1518 + PIN_FIELD_BASE(48, 48, 8, 0x00c0, 0x10, 3, 3), 1519 + PIN_FIELD_BASE(49, 49, 8, 0x00c0, 0x10, 12, 3), 1520 + PIN_FIELD_BASE(50, 50, 8, 0x00c0, 0x10, 6, 3), 1521 + PIN_FIELD_BASE(51, 51, 8, 0x00c0, 0x10, 15, 3), 1522 + PIN_FIELD_BASE(52, 52, 9, 0x0110, 0x10, 0, 3), 1523 + PIN_FIELD_BASE(53, 53, 9, 0x0110, 0x10, 3, 3), 1524 + PIN_FIELD_BASE(99, 99, 12, 0x00b0, 0x10, 0, 3), 1525 + PIN_FIELD_BASE(100, 100, 12, 0x00b0, 0x10, 9, 3), 1526 + PIN_FIELD_BASE(101, 101, 12, 0x00b0, 0x10, 3, 3), 1527 + PIN_FIELD_BASE(102, 102, 12, 0x00b0, 0x10, 12, 3), 1528 + PIN_FIELD_BASE(104, 104, 12, 0x00b0, 0x10, 6, 3), 1529 + PIN_FIELD_BASE(105, 105, 12, 0x00b0, 0x10, 15, 3), 1530 + PIN_FIELD_BASE(123, 123, 6, 0x0100, 0x10, 0, 3), 1531 + PIN_FIELD_BASE(124, 124, 6, 0x0100, 0x10, 3, 3), 1532 + PIN_FIELD_BASE(164, 164, 3, 0x00b0, 0x10, 0, 3), 1533 + PIN_FIELD_BASE(165, 165, 3, 0x00b0, 0x10, 6, 3), 1534 + PIN_FIELD_BASE(166, 166, 3, 0x00b0, 0x10, 3, 3), 1535 + PIN_FIELD_BASE(167, 167, 3, 0x00b0, 0x10, 9, 3), 1536 + PIN_FIELD_BASE(168, 168, 3, 0x00b0, 0x10, 12, 3), 1537 + PIN_FIELD_BASE(170, 170, 3, 0x00b0, 0x10, 15, 3), 1538 + PIN_FIELD_BASE(176, 176, 1, 0x00b0, 0x10, 0, 3), 1539 + PIN_FIELD_BASE(177, 177, 1, 0x00b0, 0x10, 3, 3), 1540 + PIN_FIELD_BASE(188, 188, 13, 0x00f0, 0x10, 0, 3), 1541 + PIN_FIELD_BASE(189, 189, 13, 0x00f0, 0x10, 15, 3), 1542 + PIN_FIELD_BASE(190, 190, 13, 0x00f0, 0x10, 3, 3), 1543 + PIN_FIELD_BASE(191, 191, 13, 0x00f0, 0x10, 18, 3), 1544 + PIN_FIELD_BASE(194, 194, 13, 0x00f0, 0x10, 6, 3), 1545 + PIN_FIELD_BASE(195, 195, 13, 0x00f0, 0x10, 21, 3), 1546 + PIN_FIELD_BASE(198, 198, 13, 0x00f0, 0x10, 9, 3), 1547 + PIN_FIELD_BASE(199, 199, 13, 0x00f0, 0x10, 24, 3), 1548 + PIN_FIELD_BASE(200, 200, 13, 0x0100, 0x10, 0, 3), 1549 + PIN_FIELD_BASE(201, 201, 13, 0x0100, 0x10, 9, 3), 1550 + PIN_FIELD_BASE(202, 202, 13, 0x00f0, 0x10, 12, 3), 1551 + PIN_FIELD_BASE(203, 203, 13, 0x00f0, 0x10, 27, 3), 1552 + PIN_FIELD_BASE(214, 214, 13, 0x0100, 0x10, 3, 3), 1553 + PIN_FIELD_BASE(215, 215, 13, 0x0100, 0x10, 6, 3), 1554 + }; 1555 + 1556 + static const struct mtk_pin_rsel mt8196_pin_rsel_val_range[] = { 1557 + PIN_RSEL(46, 53, 0x0, 75000, 75000), 1558 + PIN_RSEL(46, 53, 0x1, 10000, 5000), 1559 + PIN_RSEL(46, 53, 0x2, 5000, 75000), 1560 + PIN_RSEL(46, 53, 0x3, 4000, 5000), 1561 + PIN_RSEL(46, 53, 0x4, 3000, 75000), 1562 + PIN_RSEL(46, 53, 0x5, 2000, 5000), 1563 + PIN_RSEL(46, 53, 0x6, 1500, 75000), 1564 + PIN_RSEL(46, 53, 0x7, 1000, 5000), 1565 + PIN_RSEL(99, 102, 0x0, 75000, 75000), 1566 + PIN_RSEL(99, 102, 0x1, 10000, 5000), 1567 + PIN_RSEL(99, 102, 0x2, 5000, 75000), 1568 + PIN_RSEL(99, 102, 0x3, 4000, 5000), 1569 + PIN_RSEL(99, 102, 0x4, 3000, 75000), 1570 + PIN_RSEL(99, 102, 0x5, 2000, 5000), 1571 + PIN_RSEL(99, 102, 0x6, 1500, 75000), 1572 + PIN_RSEL(99, 102, 0x7, 1000, 5000), 1573 + PIN_RSEL(104, 105, 0x0, 75000, 75000), 1574 + PIN_RSEL(104, 105, 0x1, 10000, 5000), 1575 + PIN_RSEL(104, 105, 0x2, 5000, 75000), 1576 + PIN_RSEL(104, 105, 0x3, 4000, 5000), 1577 + PIN_RSEL(104, 105, 0x4, 3000, 75000), 1578 + PIN_RSEL(104, 105, 0x5, 2000, 5000), 1579 + PIN_RSEL(104, 105, 0x6, 1500, 75000), 1580 + PIN_RSEL(104, 105, 0x7, 1000, 5000), 1581 + PIN_RSEL(123, 124, 0x0, 75000, 75000), 1582 + PIN_RSEL(123, 124, 0x1, 10000, 5000), 1583 + PIN_RSEL(123, 124, 0x2, 5000, 75000), 1584 + PIN_RSEL(123, 124, 0x3, 4000, 5000), 1585 + PIN_RSEL(123, 124, 0x4, 3000, 75000), 1586 + PIN_RSEL(123, 124, 0x5, 2000, 5000), 1587 + PIN_RSEL(123, 124, 0x6, 1500, 75000), 1588 + PIN_RSEL(123, 124, 0x7, 1000, 5000), 1589 + PIN_RSEL(164, 168, 0x0, 75000, 75000), 1590 + PIN_RSEL(164, 168, 0x1, 10000, 5000), 1591 + PIN_RSEL(164, 168, 0x2, 5000, 75000), 1592 + PIN_RSEL(164, 168, 0x3, 4000, 5000), 1593 + PIN_RSEL(164, 168, 0x4, 3000, 75000), 1594 + PIN_RSEL(164, 168, 0x5, 2000, 5000), 1595 + PIN_RSEL(164, 168, 0x6, 1500, 75000), 1596 + PIN_RSEL(164, 168, 0x7, 1000, 5000), 1597 + PIN_RSEL(170, 170, 0x0, 75000, 75000), 1598 + PIN_RSEL(170, 170, 0x1, 10000, 5000), 1599 + PIN_RSEL(170, 170, 0x2, 5000, 75000), 1600 + PIN_RSEL(170, 170, 0x3, 4000, 5000), 1601 + PIN_RSEL(170, 170, 0x4, 3000, 75000), 1602 + PIN_RSEL(170, 170, 0x5, 2000, 5000), 1603 + PIN_RSEL(170, 170, 0x6, 1500, 75000), 1604 + PIN_RSEL(170, 170, 0x7, 1000, 5000), 1605 + PIN_RSEL(176, 177, 0x0, 75000, 75000), 1606 + PIN_RSEL(176, 177, 0x1, 10000, 5000), 1607 + PIN_RSEL(176, 177, 0x2, 5000, 75000), 1608 + PIN_RSEL(176, 177, 0x3, 4000, 5000), 1609 + PIN_RSEL(176, 177, 0x4, 3000, 75000), 1610 + PIN_RSEL(176, 177, 0x5, 2000, 5000), 1611 + PIN_RSEL(176, 177, 0x6, 1500, 75000), 1612 + PIN_RSEL(176, 177, 0x7, 1000, 5000), 1613 + PIN_RSEL(188, 191, 0x0, 75000, 75000), 1614 + PIN_RSEL(188, 191, 0x1, 10000, 5000), 1615 + PIN_RSEL(188, 191, 0x2, 5000, 75000), 1616 + PIN_RSEL(188, 191, 0x3, 4000, 5000), 1617 + PIN_RSEL(188, 191, 0x4, 3000, 75000), 1618 + PIN_RSEL(188, 191, 0x5, 2000, 5000), 1619 + PIN_RSEL(188, 191, 0x6, 1500, 75000), 1620 + PIN_RSEL(188, 191, 0x7, 1000, 5000), 1621 + PIN_RSEL(194, 195, 0x0, 75000, 75000), 1622 + PIN_RSEL(194, 195, 0x1, 10000, 5000), 1623 + PIN_RSEL(194, 195, 0x2, 5000, 75000), 1624 + PIN_RSEL(194, 195, 0x3, 4000, 5000), 1625 + PIN_RSEL(194, 195, 0x4, 3000, 75000), 1626 + PIN_RSEL(194, 195, 0x5, 2000, 5000), 1627 + PIN_RSEL(194, 195, 0x6, 1500, 75000), 1628 + PIN_RSEL(194, 195, 0x7, 1000, 5000), 1629 + PIN_RSEL(198, 203, 0x0, 75000, 75000), 1630 + PIN_RSEL(198, 203, 0x1, 10000, 5000), 1631 + PIN_RSEL(198, 203, 0x2, 5000, 75000), 1632 + PIN_RSEL(198, 203, 0x3, 4000, 5000), 1633 + PIN_RSEL(198, 203, 0x4, 3000, 75000), 1634 + PIN_RSEL(198, 203, 0x5, 2000, 5000), 1635 + PIN_RSEL(198, 203, 0x6, 1500, 75000), 1636 + PIN_RSEL(198, 203, 0x7, 1000, 5000), 1637 + PIN_RSEL(214, 215, 0x0, 75000, 75000), 1638 + PIN_RSEL(214, 215, 0x1, 10000, 5000), 1639 + PIN_RSEL(214, 215, 0x2, 5000, 75000), 1640 + PIN_RSEL(214, 215, 0x3, 4000, 5000), 1641 + PIN_RSEL(214, 215, 0x4, 3000, 75000), 1642 + PIN_RSEL(214, 215, 0x5, 2000, 5000), 1643 + PIN_RSEL(214, 215, 0x6, 1500, 75000), 1644 + PIN_RSEL(214, 215, 0x7, 1000, 5000), 1645 + }; 1646 + 1647 + static const unsigned int mt8196_pull_type[] = { 1648 + MTK_PULL_PU_PD_TYPE,/*0*/ MTK_PULL_PU_PD_TYPE,/*1*/ 1649 + MTK_PULL_PU_PD_TYPE,/*2*/ MTK_PULL_PU_PD_TYPE,/*3*/ 1650 + MTK_PULL_PU_PD_TYPE,/*4*/ MTK_PULL_PU_PD_TYPE,/*5*/ 1651 + MTK_PULL_PU_PD_TYPE,/*6*/ MTK_PULL_PU_PD_TYPE,/*7*/ 1652 + MTK_PULL_PU_PD_TYPE,/*8*/ MTK_PULL_PU_PD_TYPE,/*9*/ 1653 + MTK_PULL_PU_PD_TYPE,/*10*/ MTK_PULL_PU_PD_TYPE,/*11*/ 1654 + MTK_PULL_PU_PD_TYPE,/*12*/ MTK_PULL_PU_PD_TYPE,/*13*/ 1655 + MTK_PULL_PU_PD_TYPE,/*14*/ MTK_PULL_PU_PD_TYPE,/*15*/ 1656 + MTK_PULL_PU_PD_TYPE,/*16*/ MTK_PULL_PU_PD_TYPE,/*17*/ 1657 + MTK_PULL_PU_PD_TYPE,/*18*/ MTK_PULL_PU_PD_TYPE,/*19*/ 1658 + MTK_PULL_PU_PD_TYPE,/*20*/ MTK_PULL_PU_PD_TYPE,/*21*/ 1659 + MTK_PULL_PU_PD_TYPE,/*22*/ MTK_PULL_PU_PD_TYPE,/*23*/ 1660 + MTK_PULL_PU_PD_TYPE,/*24*/ MTK_PULL_PU_PD_TYPE,/*25*/ 1661 + MTK_PULL_PU_PD_TYPE,/*26*/ MTK_PULL_PU_PD_TYPE,/*27*/ 1662 + MTK_PULL_PU_PD_TYPE,/*28*/ MTK_PULL_PU_PD_TYPE,/*29*/ 1663 + MTK_PULL_PU_PD_TYPE,/*30*/ MTK_PULL_PU_PD_TYPE,/*31*/ 1664 + MTK_PULL_PU_PD_TYPE,/*32*/ MTK_PULL_PU_PD_TYPE,/*33*/ 1665 + MTK_PULL_PU_PD_TYPE,/*34*/ MTK_PULL_PU_PD_TYPE,/*35*/ 1666 + MTK_PULL_PU_PD_TYPE,/*36*/ MTK_PULL_PU_PD_TYPE,/*37*/ 1667 + MTK_PULL_PU_PD_TYPE,/*38*/ MTK_PULL_PU_PD_TYPE,/*39*/ 1668 + MTK_PULL_PU_PD_TYPE,/*40*/ MTK_PULL_PU_PD_TYPE,/*41*/ 1669 + MTK_PULL_PU_PD_TYPE,/*42*/ MTK_PULL_PU_PD_TYPE,/*43*/ 1670 + MTK_PULL_PU_PD_TYPE,/*44*/ MTK_PULL_PU_PD_TYPE,/*45*/ 1671 + MTK_PULL_PU_PD_RSEL_TYPE,/*46*/ MTK_PULL_PU_PD_RSEL_TYPE,/*47*/ 1672 + MTK_PULL_PU_PD_RSEL_TYPE,/*48*/ MTK_PULL_PU_PD_RSEL_TYPE,/*49*/ 1673 + MTK_PULL_PU_PD_RSEL_TYPE,/*50*/ MTK_PULL_PU_PD_RSEL_TYPE,/*51*/ 1674 + MTK_PULL_PU_PD_RSEL_TYPE,/*52*/ MTK_PULL_PU_PD_RSEL_TYPE,/*53*/ 1675 + MTK_PULL_PU_PD_TYPE,/*54*/ MTK_PULL_PU_PD_TYPE,/*55*/ 1676 + MTK_PULL_PU_PD_TYPE,/*56*/ MTK_PULL_PU_PD_TYPE,/*57*/ 1677 + MTK_PULL_PU_PD_TYPE,/*58*/ MTK_PULL_PU_PD_TYPE,/*59*/ 1678 + MTK_PULL_PUPD_R1R0_TYPE,/*60*/ MTK_PULL_PU_PD_TYPE,/*61*/ 1679 + MTK_PULL_PU_PD_TYPE,/*62*/ MTK_PULL_PU_PD_TYPE,/*63*/ 1680 + MTK_PULL_PU_PD_TYPE,/*64*/ MTK_PULL_PU_PD_TYPE,/*65*/ 1681 + MTK_PULL_PU_PD_TYPE,/*66*/ MTK_PULL_PU_PD_TYPE,/*67*/ 1682 + MTK_PULL_PU_PD_TYPE,/*68*/ MTK_PULL_PU_PD_TYPE,/*69*/ 1683 + MTK_PULL_PU_PD_TYPE,/*70*/ MTK_PULL_PU_PD_TYPE,/*71*/ 1684 + MTK_PULL_PU_PD_TYPE,/*72*/ MTK_PULL_PU_PD_TYPE,/*73*/ 1685 + MTK_PULL_PU_PD_TYPE,/*74*/ MTK_PULL_PU_PD_TYPE,/*75*/ 1686 + MTK_PULL_PU_PD_TYPE,/*76*/ MTK_PULL_PU_PD_TYPE,/*77*/ 1687 + MTK_PULL_PU_PD_TYPE,/*78*/ MTK_PULL_PU_PD_TYPE,/*79*/ 1688 + MTK_PULL_PU_PD_TYPE,/*80*/ MTK_PULL_PU_PD_TYPE,/*81*/ 1689 + MTK_PULL_PU_PD_TYPE,/*82*/ MTK_PULL_PU_PD_TYPE,/*83*/ 1690 + MTK_PULL_PU_PD_TYPE,/*84*/ MTK_PULL_PU_PD_TYPE,/*85*/ 1691 + MTK_PULL_PU_PD_TYPE,/*86*/ MTK_PULL_PU_PD_TYPE,/*87*/ 1692 + MTK_PULL_PU_PD_TYPE,/*88*/ MTK_PULL_PU_PD_TYPE,/*89*/ 1693 + MTK_PULL_PU_PD_TYPE,/*90*/ MTK_PULL_PU_PD_TYPE,/*91*/ 1694 + MTK_PULL_PU_PD_TYPE,/*92*/ MTK_PULL_PU_PD_TYPE,/*93*/ 1695 + MTK_PULL_PU_PD_TYPE,/*94*/ MTK_PULL_PU_PD_TYPE,/*95*/ 1696 + MTK_PULL_PU_PD_TYPE,/*96*/ MTK_PULL_PU_PD_TYPE,/*97*/ 1697 + MTK_PULL_PU_PD_TYPE,/*98*/ MTK_PULL_PU_PD_RSEL_TYPE,/*99*/ 1698 + MTK_PULL_PU_PD_RSEL_TYPE,/*100*/ MTK_PULL_PU_PD_RSEL_TYPE,/*101*/ 1699 + MTK_PULL_PU_PD_RSEL_TYPE,/*102*/ MTK_PULL_PU_PD_TYPE,/*103*/ 1700 + MTK_PULL_PU_PD_RSEL_TYPE,/*104*/ MTK_PULL_PU_PD_RSEL_TYPE,/*105*/ 1701 + MTK_PULL_PU_PD_TYPE,/*106*/ MTK_PULL_PU_PD_TYPE,/*107*/ 1702 + MTK_PULL_PU_PD_TYPE,/*108*/ MTK_PULL_PU_PD_TYPE,/*109*/ 1703 + MTK_PULL_PU_PD_TYPE,/*110*/ MTK_PULL_PU_PD_TYPE,/*111*/ 1704 + MTK_PULL_PU_PD_TYPE,/*112*/ MTK_PULL_PU_PD_TYPE,/*113*/ 1705 + MTK_PULL_PU_PD_TYPE,/*114*/ MTK_PULL_PU_PD_TYPE,/*115*/ 1706 + MTK_PULL_PU_PD_TYPE,/*116*/ MTK_PULL_PU_PD_TYPE,/*117*/ 1707 + MTK_PULL_PU_PD_TYPE,/*118*/ MTK_PULL_PU_PD_TYPE,/*119*/ 1708 + MTK_PULL_PU_PD_TYPE,/*120*/ MTK_PULL_PU_PD_TYPE,/*121*/ 1709 + MTK_PULL_PU_PD_TYPE,/*122*/ MTK_PULL_PU_PD_RSEL_TYPE,/*123*/ 1710 + MTK_PULL_PU_PD_RSEL_TYPE,/*124*/ MTK_PULL_PUPD_R1R0_TYPE,/*125*/ 1711 + MTK_PULL_PUPD_R1R0_TYPE,/*126*/ MTK_PULL_PUPD_R1R0_TYPE,/*127*/ 1712 + MTK_PULL_PUPD_R1R0_TYPE,/*128*/ MTK_PULL_PUPD_R1R0_TYPE,/*129*/ 1713 + MTK_PULL_PUPD_R1R0_TYPE,/*130*/ MTK_PULL_PUPD_R1R0_TYPE,/*131*/ 1714 + MTK_PULL_PUPD_R1R0_TYPE,/*132*/ MTK_PULL_PUPD_R1R0_TYPE,/*133*/ 1715 + MTK_PULL_PUPD_R1R0_TYPE,/*134*/ MTK_PULL_PUPD_R1R0_TYPE,/*135*/ 1716 + MTK_PULL_PUPD_R1R0_TYPE,/*136*/ MTK_PULL_PUPD_R1R0_TYPE,/*137*/ 1717 + MTK_PULL_PUPD_R1R0_TYPE,/*138*/ MTK_PULL_PUPD_R1R0_TYPE,/*139*/ 1718 + MTK_PULL_PUPD_R1R0_TYPE,/*140*/ MTK_PULL_PUPD_R1R0_TYPE,/*141*/ 1719 + MTK_PULL_PUPD_R1R0_TYPE,/*142*/ MTK_PULL_PUPD_R1R0_TYPE,/*143*/ 1720 + MTK_PULL_PUPD_R1R0_TYPE,/*144*/ MTK_PULL_PUPD_R1R0_TYPE,/*145*/ 1721 + MTK_PULL_PUPD_R1R0_TYPE,/*146*/ MTK_PULL_PUPD_R1R0_TYPE,/*147*/ 1722 + MTK_PULL_PUPD_R1R0_TYPE,/*148*/ MTK_PULL_PUPD_R1R0_TYPE,/*149*/ 1723 + MTK_PULL_PUPD_R1R0_TYPE,/*150*/ MTK_PULL_PUPD_R1R0_TYPE,/*151*/ 1724 + MTK_PULL_PUPD_R1R0_TYPE,/*152*/ MTK_PULL_PUPD_R1R0_TYPE,/*153*/ 1725 + MTK_PULL_PUPD_R1R0_TYPE,/*154*/ MTK_PULL_PUPD_R1R0_TYPE,/*155*/ 1726 + MTK_PULL_PUPD_R1R0_TYPE,/*156*/ MTK_PULL_PU_PD_TYPE,/*157*/ 1727 + MTK_PULL_PU_PD_TYPE,/*158*/ MTK_PULL_PU_PD_TYPE,/*159*/ 1728 + MTK_PULL_PU_PD_TYPE,/*160*/ MTK_PULL_PU_PD_TYPE,/*161*/ 1729 + MTK_PULL_PU_PD_TYPE,/*162*/ MTK_PULL_PU_PD_TYPE,/*163*/ 1730 + MTK_PULL_PU_PD_RSEL_TYPE,/*164*/ MTK_PULL_PU_PD_RSEL_TYPE,/*165*/ 1731 + MTK_PULL_PU_PD_RSEL_TYPE,/*166*/ MTK_PULL_PU_PD_RSEL_TYPE,/*167*/ 1732 + MTK_PULL_PU_PD_RSEL_TYPE,/*168*/ MTK_PULL_PU_PD_TYPE,/*169*/ 1733 + MTK_PULL_PU_PD_RSEL_TYPE,/*170*/ MTK_PULL_PU_PD_TYPE,/*171*/ 1734 + MTK_PULL_PU_PD_TYPE,/*172*/ MTK_PULL_PU_PD_TYPE,/*173*/ 1735 + MTK_PULL_PU_PD_TYPE,/*174*/ MTK_PULL_PU_PD_TYPE,/*175*/ 1736 + MTK_PULL_PU_PD_RSEL_TYPE,/*176*/ MTK_PULL_PU_PD_RSEL_TYPE,/*177*/ 1737 + MTK_PULL_PU_PD_TYPE,/*178*/ MTK_PULL_PU_PD_TYPE,/*179*/ 1738 + MTK_PULL_PU_PD_TYPE,/*180*/ MTK_PULL_PU_PD_TYPE,/*181*/ 1739 + MTK_PULL_PU_PD_TYPE,/*182*/ MTK_PULL_PU_PD_TYPE,/*183*/ 1740 + MTK_PULL_PU_PD_TYPE,/*184*/ MTK_PULL_PU_PD_TYPE,/*185*/ 1741 + MTK_PULL_PU_PD_TYPE,/*186*/ MTK_PULL_PU_PD_TYPE,/*187*/ 1742 + MTK_PULL_PU_PD_RSEL_TYPE,/*188*/ MTK_PULL_PU_PD_RSEL_TYPE,/*189*/ 1743 + MTK_PULL_PU_PD_RSEL_TYPE,/*190*/ MTK_PULL_PU_PD_RSEL_TYPE,/*191*/ 1744 + MTK_PULL_PU_PD_TYPE,/*192*/ MTK_PULL_PU_PD_TYPE,/*193*/ 1745 + MTK_PULL_PU_PD_RSEL_TYPE,/*194*/ MTK_PULL_PU_PD_RSEL_TYPE,/*195*/ 1746 + MTK_PULL_PU_PD_TYPE,/*196*/ MTK_PULL_PU_PD_TYPE,/*197*/ 1747 + MTK_PULL_PU_PD_RSEL_TYPE,/*198*/ MTK_PULL_PU_PD_RSEL_TYPE,/*199*/ 1748 + MTK_PULL_PU_PD_RSEL_TYPE,/*200*/ MTK_PULL_PU_PD_RSEL_TYPE,/*201*/ 1749 + MTK_PULL_PU_PD_RSEL_TYPE,/*202*/ MTK_PULL_PU_PD_RSEL_TYPE,/*203*/ 1750 + MTK_PULL_PU_PD_TYPE,/*204*/ MTK_PULL_PU_PD_TYPE,/*205*/ 1751 + MTK_PULL_PU_PD_TYPE,/*206*/ MTK_PULL_PU_PD_TYPE,/*207*/ 1752 + MTK_PULL_PU_PD_TYPE,/*208*/ MTK_PULL_PU_PD_TYPE,/*209*/ 1753 + MTK_PULL_PU_PD_TYPE,/*210*/ MTK_PULL_PU_PD_TYPE,/*211*/ 1754 + MTK_PULL_PU_PD_TYPE,/*212*/ MTK_PULL_PU_PD_TYPE,/*213*/ 1755 + MTK_PULL_PU_PD_RSEL_TYPE,/*214*/ MTK_PULL_PU_PD_RSEL_TYPE,/*215*/ 1756 + MTK_PULL_PU_PD_TYPE,/*216*/ MTK_PULL_PUPD_R1R0_TYPE,/*217*/ 1757 + MTK_PULL_PUPD_R1R0_TYPE,/*218*/ MTK_PULL_PUPD_R1R0_TYPE,/*219*/ 1758 + MTK_PULL_PU_PD_TYPE,/*220*/ MTK_PULL_PU_PD_TYPE,/*221*/ 1759 + MTK_PULL_PU_PD_TYPE,/*222*/ MTK_PULL_PU_PD_TYPE,/*223*/ 1760 + MTK_PULL_PUPD_R1R0_TYPE,/*224*/ MTK_PULL_PUPD_R1R0_TYPE,/*225*/ 1761 + MTK_PULL_PUPD_R1R0_TYPE,/*226*/ MTK_PULL_PUPD_R1R0_TYPE,/*227*/ 1762 + MTK_PULL_PUPD_R1R0_TYPE,/*228*/ MTK_PULL_PUPD_R1R0_TYPE,/*229*/ 1763 + MTK_PULL_PU_PD_TYPE,/*230*/ MTK_PULL_PU_PD_TYPE,/*231*/ 1764 + MTK_PULL_PU_PD_TYPE,/*232*/ MTK_PULL_PU_PD_TYPE,/*233*/ 1765 + MTK_PULL_PU_PD_TYPE,/*234*/ MTK_PULL_PU_PD_TYPE,/*235*/ 1766 + MTK_PULL_PU_PD_TYPE,/*236*/ MTK_PULL_PU_PD_TYPE,/*237*/ 1767 + MTK_PULL_PU_PD_TYPE,/*238*/ MTK_PULL_PU_PD_TYPE,/*239*/ 1768 + MTK_PULL_PU_PD_TYPE,/*240*/ MTK_PULL_PU_PD_TYPE,/*241*/ 1769 + MTK_PULL_PU_PD_TYPE,/*242*/ MTK_PULL_PU_PD_TYPE,/*243*/ 1770 + MTK_PULL_PU_PD_TYPE,/*244*/ MTK_PULL_PU_PD_TYPE,/*245*/ 1771 + MTK_PULL_PU_PD_TYPE,/*246*/ MTK_PULL_PU_PD_TYPE,/*247*/ 1772 + MTK_PULL_PU_PD_TYPE,/*248*/ MTK_PULL_PU_PD_TYPE,/*249*/ 1773 + MTK_PULL_PU_PD_TYPE,/*250*/ MTK_PULL_PU_PD_TYPE,/*251*/ 1774 + MTK_PULL_PU_PD_TYPE,/*252*/ MTK_PULL_PU_PD_TYPE,/*253*/ 1775 + MTK_PULL_PU_PD_TYPE,/*254*/ MTK_PULL_PU_PD_TYPE,/*255*/ 1776 + MTK_PULL_PU_PD_TYPE,/*256*/ MTK_PULL_PU_PD_TYPE,/*257*/ 1777 + MTK_PULL_PU_PD_TYPE,/*258*/ MTK_PULL_PUPD_R1R0_TYPE,/*259*/ 1778 + MTK_PULL_PUPD_R1R0_TYPE,/*260*/ MTK_PULL_PUPD_R1R0_TYPE,/*261*/ 1779 + MTK_PULL_PUPD_R1R0_TYPE,/*262*/ MTK_PULL_PUPD_R1R0_TYPE,/*263*/ 1780 + MTK_PULL_PUPD_R1R0_TYPE,/*264*/ MTK_PULL_PUPD_R1R0_TYPE,/*265*/ 1781 + MTK_PULL_PUPD_R1R0_TYPE,/*266*/ MTK_PULL_PUPD_R1R0_TYPE,/*267*/ 1782 + MTK_PULL_PUPD_R1R0_TYPE,/*268*/ MTK_PULL_PUPD_R1R0_TYPE,/*269*/ 1783 + MTK_PULL_PUPD_R1R0_TYPE,/*270*/ 1784 + }; 1785 + 1786 + static const struct mtk_pin_reg_calc mt8196_reg_cals[PINCTRL_PIN_REG_MAX] = { 1787 + [PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt8196_pin_mode_range), 1788 + [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt8196_pin_dir_range), 1789 + [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt8196_pin_di_range), 1790 + [PINCTRL_PIN_REG_DO] = MTK_RANGE(mt8196_pin_do_range), 1791 + [PINCTRL_PIN_REG_SMT] = MTK_RANGE(mt8196_pin_smt_range), 1792 + [PINCTRL_PIN_REG_IES] = MTK_RANGE(mt8196_pin_ies_range), 1793 + [PINCTRL_PIN_REG_PUPD] = MTK_RANGE(mt8196_pin_pupd_range), 1794 + [PINCTRL_PIN_REG_R0] = MTK_RANGE(mt8196_pin_r0_range), 1795 + [PINCTRL_PIN_REG_R1] = MTK_RANGE(mt8196_pin_r1_range), 1796 + [PINCTRL_PIN_REG_PU] = MTK_RANGE(mt8196_pin_pu_range), 1797 + [PINCTRL_PIN_REG_PD] = MTK_RANGE(mt8196_pin_pd_range), 1798 + [PINCTRL_PIN_REG_DRV] = MTK_RANGE(mt8196_pin_drv_range), 1799 + [PINCTRL_PIN_REG_DRV_ADV] = MTK_RANGE(mt8196_pin_drv_adv_range), 1800 + [PINCTRL_PIN_REG_RSEL] = MTK_RANGE(mt8196_pin_rsel_range), 1801 + }; 1802 + 1803 + static const char * const mt8196_pinctrl_register_base_names[] = { 1804 + "iocfg0", "iocfg_rt", "iocfg_rm1", "iocfg_rm2", 1805 + "iocfg_rb", "iocfg_bm1", "iocfg_bm2", "iocfg_bm3", 1806 + "iocfg_lt", "iocfg_lm1", "iocfg_lm2", "iocfg_lb1", 1807 + "iocfg_lb2", "iocfg_tm1", "iocfg_tm2", "iocfg_tm3", 1808 + }; 1809 + 1810 + static const struct mtk_eint_hw mt8196_eint_hw = { 1811 + .port_mask = 0xf, 1812 + .ports = 3, 1813 + .ap_num = 293, 1814 + .db_cnt = 32, 1815 + .db_time = debounce_time_mt6765, 1816 + }; 1817 + 1818 + static const struct mtk_pin_soc mt8196_data = { 1819 + .reg_cal = mt8196_reg_cals, 1820 + .pins = mtk_pins_mt8196, 1821 + .npins = ARRAY_SIZE(mtk_pins_mt8196), 1822 + .ngrps = ARRAY_SIZE(mtk_pins_mt8196), 1823 + .eint_hw = &mt8196_eint_hw, 1824 + .eint_pin = eint_pins_mt8196, 1825 + .nfuncs = 8, 1826 + .gpio_m = 0, 1827 + .base_names = mt8196_pinctrl_register_base_names, 1828 + .nbase_names = ARRAY_SIZE(mt8196_pinctrl_register_base_names), 1829 + .pull_type = mt8196_pull_type, 1830 + .pin_rsel = mt8196_pin_rsel_val_range, 1831 + .npin_rsel = ARRAY_SIZE(mt8196_pin_rsel_val_range), 1832 + .bias_set_combo = mtk_pinconf_bias_set_combo, 1833 + .bias_get_combo = mtk_pinconf_bias_get_combo, 1834 + .drive_set = mtk_pinconf_drive_set_rev1, 1835 + .drive_get = mtk_pinconf_drive_get_rev1, 1836 + .adv_drive_get = mtk_pinconf_adv_drive_get_raw, 1837 + .adv_drive_set = mtk_pinconf_adv_drive_set_raw, 1838 + }; 1839 + 1840 + static const struct of_device_id mt8196_pinctrl_of_match[] = { 1841 + { .compatible = "mediatek,mt8196-pinctrl", .data = &mt8196_data }, 1842 + { /* sentinel */ } 1843 + }; 1844 + 1845 + static struct platform_driver mt8196_pinctrl_driver = { 1846 + .driver = { 1847 + .name = "mt8196-pinctrl", 1848 + .of_match_table = mt8196_pinctrl_of_match, 1849 + .pm = pm_sleep_ptr(&mtk_paris_pinctrl_pm_ops), 1850 + }, 1851 + .probe = mtk_paris_pinctrl_probe, 1852 + }; 1853 + 1854 + static int __init mt8196_pinctrl_init(void) 1855 + { 1856 + return platform_driver_register(&mt8196_pinctrl_driver); 1857 + } 1858 + arch_initcall(mt8196_pinctrl_init); 1859 + 1860 + MODULE_DESCRIPTION("MediaTek MT8196 Pinctrl Driver");
+6 -3
drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c
··· 381 381 return -ENOMEM; 382 382 383 383 count_reg_names = of_property_count_strings(np, "reg-names"); 384 - if (count_reg_names < hw->soc->nbase_names) 384 + if (count_reg_names < 0) 385 385 return -EINVAL; 386 386 387 - hw->eint->nbase = count_reg_names - hw->soc->nbase_names; 387 + hw->eint->nbase = count_reg_names - (int)hw->soc->nbase_names; 388 + if (hw->eint->nbase <= 0) 389 + return -EINVAL; 390 + 388 391 hw->eint->base = devm_kmalloc_array(&pdev->dev, hw->eint->nbase, 389 392 sizeof(*hw->eint->base), GFP_KERNEL | __GFP_ZERO); 390 393 if (!hw->eint->base) { ··· 419 416 hw->eint->pctl = hw; 420 417 hw->eint->gpio_xlate = &mtk_eint_xt; 421 418 422 - ret = mtk_eint_do_init(hw->eint); 419 + ret = mtk_eint_do_init(hw->eint, hw->soc->eint_pin); 423 420 if (ret) 424 421 goto err_free_eint; 425 422
+10 -5
drivers/pinctrl/mediatek/pinctrl-mtk-common.c
··· 86 86 return 0; 87 87 } 88 88 89 - static void mtk_gpio_set(struct gpio_chip *chip, unsigned offset, int value) 89 + static int mtk_gpio_set(struct gpio_chip *chip, unsigned int offset, int value) 90 90 { 91 91 unsigned int reg_addr; 92 92 unsigned int bit; ··· 100 100 else 101 101 reg_addr = CLR_ADDR(reg_addr, pctl); 102 102 103 - regmap_write(mtk_get_regmap(pctl, offset), reg_addr, bit); 103 + return regmap_write(mtk_get_regmap(pctl, offset), reg_addr, bit); 104 104 } 105 105 106 106 static int mtk_pconf_set_ies_smt(struct mtk_pinctrl *pctl, unsigned pin, ··· 809 809 static int mtk_gpio_direction_output(struct gpio_chip *chip, 810 810 unsigned offset, int value) 811 811 { 812 - mtk_gpio_set(chip, offset, value); 812 + int ret; 813 + 814 + ret = mtk_gpio_set(chip, offset, value); 815 + if (ret) 816 + return ret; 817 + 813 818 return pinctrl_gpio_direction_output(chip, offset); 814 819 } 815 820 ··· 898 893 .direction_input = pinctrl_gpio_direction_input, 899 894 .direction_output = mtk_gpio_direction_output, 900 895 .get = mtk_gpio_get, 901 - .set = mtk_gpio_set, 896 + .set_rv = mtk_gpio_set, 902 897 .to_irq = mtk_gpio_to_irq, 903 898 .set_config = mtk_gpio_set_config, 904 899 }; ··· 1044 1039 pctl->eint->pctl = pctl; 1045 1040 pctl->eint->gpio_xlate = &mtk_eint_xt; 1046 1041 1047 - return mtk_eint_do_init(pctl->eint); 1042 + return mtk_eint_do_init(pctl->eint, NULL); 1048 1043 } 1049 1044 1050 1045 /* This is used as a common probe function */
+2283
drivers/pinctrl/mediatek/pinctrl-mtk-mt6893.h
··· 1 + /* SPDX-License-Identifier: GPL-2.0 */ 2 + /* 3 + * Copyright (C) 2019 MediaTek Inc. 4 + * Copyright (C) 2024 Collabora Ltd. 5 + * 6 + * Author: Andy Teng <andy.teng@mediatek.com> 7 + */ 8 + 9 + #ifndef __PINCTRL_MTK_MT6893_H 10 + #define __PINCTRL_MTK_MT6893_H 11 + 12 + #include "pinctrl-paris.h" 13 + 14 + static const struct mtk_pin_desc mtk_pins_mt6893[] = { 15 + MTK_PIN( 16 + 0, "GPIO0", 17 + MTK_EINT_FUNCTION(0, 0), 18 + DRV_GRP4, 19 + MTK_FUNCTION(0, "GPIO0"), 20 + MTK_FUNCTION(1, "SPI6_CLK"), 21 + MTK_FUNCTION(2, "I2S5_MCK"), 22 + MTK_FUNCTION(3, "PWM_0"), 23 + MTK_FUNCTION(4, "MD_INT0"), 24 + MTK_FUNCTION(5, "TP_GPIO0_AO") 25 + ), 26 + MTK_PIN( 27 + 1, "GPIO1", 28 + MTK_EINT_FUNCTION(0, 1), 29 + DRV_GRP4, 30 + MTK_FUNCTION(0, "GPIO1"), 31 + MTK_FUNCTION(1, "SPI6_CSB"), 32 + MTK_FUNCTION(2, "I2S5_BCK"), 33 + MTK_FUNCTION(3, "PWM_1"), 34 + MTK_FUNCTION(4, "MD_INT1_C2K_UIM0_HOT_PLUG"), 35 + MTK_FUNCTION(5, "TP_GPIO1_AO") 36 + ), 37 + MTK_PIN( 38 + 2, "GPIO2", 39 + MTK_EINT_FUNCTION(0, 2), 40 + DRV_GRP4, 41 + MTK_FUNCTION(0, "GPIO2"), 42 + MTK_FUNCTION(1, "SPI6_MI"), 43 + MTK_FUNCTION(2, "I2S5_LRCK"), 44 + MTK_FUNCTION(3, "PWM_2"), 45 + MTK_FUNCTION(4, "MD_INT2_C2K_UIM1_HOT_PLUG"), 46 + MTK_FUNCTION(5, "TP_GPIO2_AO") 47 + ), 48 + MTK_PIN( 49 + 3, "GPIO3", 50 + MTK_EINT_FUNCTION(0, 3), 51 + DRV_GRP4, 52 + MTK_FUNCTION(0, "GPIO3"), 53 + MTK_FUNCTION(1, "SPI6_MO"), 54 + MTK_FUNCTION(2, "I2S5_DO"), 55 + MTK_FUNCTION(3, "PWM_3"), 56 + MTK_FUNCTION(4, "CLKM0"), 57 + MTK_FUNCTION(5, "TP_GPIO3_AO") 58 + ), 59 + MTK_PIN( 60 + 4, "GPIO4", 61 + MTK_EINT_FUNCTION(0, 4), 62 + DRV_GRP4, 63 + MTK_FUNCTION(0, "GPIO4"), 64 + MTK_FUNCTION(1, "SPI7_A_CLK"), 65 + MTK_FUNCTION(2, "I2S2_MCK"), 66 + MTK_FUNCTION(3, "DMIC1_CLK"), 67 + MTK_FUNCTION(4, "PCM1_DI"), 68 + MTK_FUNCTION(5, "TP_GPIO4_AO") 69 + ), 70 + MTK_PIN( 71 + 5, "GPIO5", 72 + MTK_EINT_FUNCTION(0, 5), 73 + DRV_GRP4, 74 + MTK_FUNCTION(0, "GPIO5"), 75 + MTK_FUNCTION(1, "SPI7_A_CSB"), 76 + MTK_FUNCTION(2, "I2S2_BCK"), 77 + MTK_FUNCTION(3, "DMIC1_DAT"), 78 + MTK_FUNCTION(4, "PCM1_CLK"), 79 + MTK_FUNCTION(5, "TP_GPIO5_AO") 80 + ), 81 + MTK_PIN( 82 + 6, "GPIO6", 83 + MTK_EINT_FUNCTION(0, 6), 84 + DRV_GRP4, 85 + MTK_FUNCTION(0, "GPIO6"), 86 + MTK_FUNCTION(1, "SPI7_A_MI"), 87 + MTK_FUNCTION(2, "I2S2_LRCK"), 88 + MTK_FUNCTION(3, "DMIC_CLK"), 89 + MTK_FUNCTION(4, "PCM1_SYNC"), 90 + MTK_FUNCTION(5, "TP_GPIO6_AO"), 91 + MTK_FUNCTION(6, "CONN_TCXOENA_REQ") 92 + ), 93 + MTK_PIN( 94 + 7, "GPIO7", 95 + MTK_EINT_FUNCTION(0, 7), 96 + DRV_GRP4, 97 + MTK_FUNCTION(0, "GPIO7"), 98 + MTK_FUNCTION(1, "SPI7_A_MO"), 99 + MTK_FUNCTION(2, "I2S2_DI"), 100 + MTK_FUNCTION(3, "DMIC_DAT"), 101 + MTK_FUNCTION(4, "PCM1_DO0"), 102 + MTK_FUNCTION(5, "TP_GPIO7_AO"), 103 + MTK_FUNCTION(6, "WIFI_TXD") 104 + ), 105 + MTK_PIN( 106 + 8, "GPIO8", 107 + MTK_EINT_FUNCTION(0, 8), 108 + DRV_GRP4, 109 + MTK_FUNCTION(0, "GPIO8"), 110 + MTK_FUNCTION(1, "SRCLKENAI1"), 111 + MTK_FUNCTION(2, "I2S2_DI2"), 112 + MTK_FUNCTION(3, "KPCOL2"), 113 + MTK_FUNCTION(4, "PCM1_DO1"), 114 + MTK_FUNCTION(5, "CLKM1"), 115 + MTK_FUNCTION(6, "CONN_BT_TXD") 116 + ), 117 + MTK_PIN( 118 + 9, "GPIO9", 119 + MTK_EINT_FUNCTION(0, 9), 120 + DRV_GRP4, 121 + MTK_FUNCTION(0, "GPIO9"), 122 + MTK_FUNCTION(1, "SRCLKENAI0"), 123 + MTK_FUNCTION(2, "DVFSRC_EXT_REQ"), 124 + MTK_FUNCTION(3, "KPROW2"), 125 + MTK_FUNCTION(4, "PCM1_DO2"), 126 + MTK_FUNCTION(5, "CLKM3"), 127 + MTK_FUNCTION(6, "CMMCLK4") 128 + ), 129 + MTK_PIN( 130 + 10, "GPIO10", 131 + MTK_EINT_FUNCTION(0, 10), 132 + DRV_GRP4, 133 + MTK_FUNCTION(0, "GPIO10"), 134 + MTK_FUNCTION(1, "MSDC1_CLK_A"), 135 + MTK_FUNCTION(2, "SPI4_B_CLK"), 136 + MTK_FUNCTION(3, "I2S8_MCK"), 137 + MTK_FUNCTION(4, "DSI1_TE"), 138 + MTK_FUNCTION(5, "MD_INT0"), 139 + MTK_FUNCTION(6, "TP_GPIO0_AO") 140 + ), 141 + MTK_PIN( 142 + 11, "GPIO11", 143 + MTK_EINT_FUNCTION(0, 11), 144 + DRV_GRP4, 145 + MTK_FUNCTION(0, "GPIO11"), 146 + MTK_FUNCTION(1, "MSDC1_CMD_A"), 147 + MTK_FUNCTION(2, "SPI4_B_CSB"), 148 + MTK_FUNCTION(3, "I2S8_BCK"), 149 + MTK_FUNCTION(4, "LCM1_RST"), 150 + MTK_FUNCTION(5, "MD_INT1_C2K_UIM0_HOT_PLUG"), 151 + MTK_FUNCTION(6, "TP_GPIO1_AO") 152 + ), 153 + MTK_PIN( 154 + 12, "GPIO12", 155 + MTK_EINT_FUNCTION(0, 12), 156 + DRV_GRP4, 157 + MTK_FUNCTION(0, "GPIO12"), 158 + MTK_FUNCTION(1, "MSDC1_DAT3_A"), 159 + MTK_FUNCTION(2, "SPI4_B_MI"), 160 + MTK_FUNCTION(3, "I2S8_LRCK"), 161 + MTK_FUNCTION(4, "DMIC1_CLK"), 162 + MTK_FUNCTION(5, "MD_INT2_C2K_UIM1_HOT_PLUG"), 163 + MTK_FUNCTION(6, "TP_GPIO2_AO") 164 + ), 165 + MTK_PIN( 166 + 13, "GPIO13", 167 + MTK_EINT_FUNCTION(0, 13), 168 + DRV_GRP4, 169 + MTK_FUNCTION(0, "GPIO13"), 170 + MTK_FUNCTION(1, "MSDC1_DAT0_A"), 171 + MTK_FUNCTION(2, "SPI4_B_MO"), 172 + MTK_FUNCTION(3, "I2S8_DI"), 173 + MTK_FUNCTION(4, "DMIC1_DAT"), 174 + MTK_FUNCTION(5, "ANT_SEL10"), 175 + MTK_FUNCTION(6, "TP_GPIO3_AO") 176 + ), 177 + MTK_PIN( 178 + 14, "GPIO14", 179 + MTK_EINT_FUNCTION(0, 14), 180 + DRV_GRP4, 181 + MTK_FUNCTION(0, "GPIO14"), 182 + MTK_FUNCTION(1, "MSDC1_DAT2_A"), 183 + MTK_FUNCTION(2, "SPI5_C_CLK"), 184 + MTK_FUNCTION(3, "I2S9_MCK"), 185 + MTK_FUNCTION(4, "IDDIG"), 186 + MTK_FUNCTION(5, "ANT_SEL11"), 187 + MTK_FUNCTION(6, "TP_GPIO4_AO") 188 + ), 189 + MTK_PIN( 190 + 15, "GPIO15", 191 + MTK_EINT_FUNCTION(0, 15), 192 + DRV_GRP4, 193 + MTK_FUNCTION(0, "GPIO15"), 194 + MTK_FUNCTION(1, "MSDC1_DAT1_A"), 195 + MTK_FUNCTION(2, "SPI5_C_CSB"), 196 + MTK_FUNCTION(3, "I2S9_BCK"), 197 + MTK_FUNCTION(4, "USB_DRVVBUS"), 198 + MTK_FUNCTION(5, "ANT_SEL12"), 199 + MTK_FUNCTION(6, "TP_GPIO5_AO") 200 + ), 201 + MTK_PIN( 202 + 16, "GPIO16", 203 + MTK_EINT_FUNCTION(0, 16), 204 + DRV_GRP4, 205 + MTK_FUNCTION(0, "GPIO16"), 206 + MTK_FUNCTION(1, "SRCLKENAI1"), 207 + MTK_FUNCTION(2, "SPI5_C_MI"), 208 + MTK_FUNCTION(3, "I2S9_LRCK"), 209 + MTK_FUNCTION(4, "KPCOL2"), 210 + MTK_FUNCTION(5, "GPS_L1_ELNA_EN"), 211 + MTK_FUNCTION(6, "TP_GPIO6_AO"), 212 + MTK_FUNCTION(7, "DBG_MON_A30") 213 + ), 214 + MTK_PIN( 215 + 17, "GPIO17", 216 + MTK_EINT_FUNCTION(0, 17), 217 + DRV_GRP4, 218 + MTK_FUNCTION(0, "GPIO17"), 219 + MTK_FUNCTION(1, "SRCLKENAI0"), 220 + MTK_FUNCTION(2, "SPI5_C_MO"), 221 + MTK_FUNCTION(3, "I2S9_DO"), 222 + MTK_FUNCTION(4, "KPROW2"), 223 + MTK_FUNCTION(5, "GPS_L5_ELNA_EN"), 224 + MTK_FUNCTION(6, "TP_GPIO7_AO"), 225 + MTK_FUNCTION(7, "DBG_MON_A31") 226 + ), 227 + MTK_PIN( 228 + 18, "GPIO18", 229 + MTK_EINT_FUNCTION(0, 18), 230 + DRV_GRP4, 231 + MTK_FUNCTION(0, "GPIO18"), 232 + MTK_FUNCTION(1, "DP_TX_HPD"), 233 + MTK_FUNCTION(2, "SPI4_C_MI"), 234 + MTK_FUNCTION(3, "SPI1_B_MI"), 235 + MTK_FUNCTION(4, "GPS_L1_ELNA_EN"), 236 + MTK_FUNCTION(5, "ANT_SEL10"), 237 + MTK_FUNCTION(6, "MD_INT0") 238 + ), 239 + MTK_PIN( 240 + 19, "GPIO19", 241 + MTK_EINT_FUNCTION(0, 19), 242 + DRV_GRP4, 243 + MTK_FUNCTION(0, "GPIO19"), 244 + MTK_FUNCTION(1, "SRCLKENAI1"), 245 + MTK_FUNCTION(2, "SPI4_C_MO"), 246 + MTK_FUNCTION(3, "SPI1_B_MO"), 247 + MTK_FUNCTION(4, "GPS_L5_ELNA_EN"), 248 + MTK_FUNCTION(5, "ANT_SEL11"), 249 + MTK_FUNCTION(6, "MD_INT1_C2K_UIM0_HOT_PLUG") 250 + ), 251 + MTK_PIN( 252 + 20, "GPIO20", 253 + MTK_EINT_FUNCTION(0, 20), 254 + DRV_GRP4, 255 + MTK_FUNCTION(0, "GPIO20"), 256 + MTK_FUNCTION(1, "SRCLKENAI0"), 257 + MTK_FUNCTION(2, "SPI4_C_CLK"), 258 + MTK_FUNCTION(3, "SPI1_B_CLK"), 259 + MTK_FUNCTION(4, "PWM_3"), 260 + MTK_FUNCTION(5, "ANT_SEL12"), 261 + MTK_FUNCTION(6, "MD_INT2_C2K_UIM1_HOT_PLUG") 262 + ), 263 + MTK_PIN( 264 + 21, "GPIO21", 265 + MTK_EINT_FUNCTION(0, 21), 266 + DRV_GRP4, 267 + MTK_FUNCTION(0, "GPIO21"), 268 + MTK_FUNCTION(1, "DP_TX_HPD"), 269 + MTK_FUNCTION(2, "SPI4_C_CSB"), 270 + MTK_FUNCTION(3, "SPI1_B_CSB"), 271 + MTK_FUNCTION(4, "I2S7_MCK"), 272 + MTK_FUNCTION(5, "I2S9_MCK"), 273 + MTK_FUNCTION(6, "IDDIG") 274 + ), 275 + MTK_PIN( 276 + 22, "GPIO22", 277 + MTK_EINT_FUNCTION(0, 22), 278 + DRV_GRP4, 279 + MTK_FUNCTION(0, "GPIO22"), 280 + MTK_FUNCTION(1, "LCM1_RST"), 281 + MTK_FUNCTION(2, "SPI0_C_CLK"), 282 + MTK_FUNCTION(3, "SPI7_B_CLK"), 283 + MTK_FUNCTION(4, "I2S7_BCK"), 284 + MTK_FUNCTION(5, "I2S9_BCK"), 285 + MTK_FUNCTION(6, "SCL13") 286 + ), 287 + MTK_PIN( 288 + 23, "GPIO23", 289 + MTK_EINT_FUNCTION(0, 23), 290 + DRV_GRP4, 291 + MTK_FUNCTION(0, "GPIO23"), 292 + MTK_FUNCTION(1, "DSI1_TE"), 293 + MTK_FUNCTION(2, "SPI0_C_CSB"), 294 + MTK_FUNCTION(3, "SPI7_B_CSB"), 295 + MTK_FUNCTION(4, "I2S7_LRCK"), 296 + MTK_FUNCTION(5, "I2S9_LRCK"), 297 + MTK_FUNCTION(6, "SDA13") 298 + ), 299 + MTK_PIN( 300 + 24, "GPIO24", 301 + MTK_EINT_FUNCTION(0, 24), 302 + DRV_GRP4, 303 + MTK_FUNCTION(0, "GPIO24"), 304 + MTK_FUNCTION(1, "SRCLKENAI1"), 305 + MTK_FUNCTION(2, "SPI0_C_MI"), 306 + MTK_FUNCTION(3, "SPI7_B_MI"), 307 + MTK_FUNCTION(4, "I2S6_DI"), 308 + MTK_FUNCTION(5, "I2S8_DI"), 309 + MTK_FUNCTION(6, "SCL_6306") 310 + ), 311 + MTK_PIN( 312 + 25, "GPIO25", 313 + MTK_EINT_FUNCTION(0, 25), 314 + DRV_GRP4, 315 + MTK_FUNCTION(0, "GPIO25"), 316 + MTK_FUNCTION(1, "SRCLKENAI0"), 317 + MTK_FUNCTION(2, "SPI0_C_MO"), 318 + MTK_FUNCTION(3, "SPI7_B_MO"), 319 + MTK_FUNCTION(4, "I2S7_DO"), 320 + MTK_FUNCTION(5, "I2S9_DO"), 321 + MTK_FUNCTION(6, "SDA_6306") 322 + ), 323 + MTK_PIN( 324 + 26, "GPIO26", 325 + MTK_EINT_FUNCTION(0, 26), 326 + DRV_GRP4, 327 + MTK_FUNCTION(0, "GPIO26"), 328 + MTK_FUNCTION(1, "PWM_2"), 329 + MTK_FUNCTION(2, "CLKM0"), 330 + MTK_FUNCTION(3, "USB_DRVVBUS") 331 + ), 332 + MTK_PIN( 333 + 27, "GPIO27", 334 + MTK_EINT_FUNCTION(0, 27), 335 + DRV_GRP4, 336 + MTK_FUNCTION(0, "GPIO27"), 337 + MTK_FUNCTION(1, "PWM_3"), 338 + MTK_FUNCTION(2, "CLKM1") 339 + ), 340 + MTK_PIN( 341 + 28, "GPIO28", 342 + MTK_EINT_FUNCTION(0, 28), 343 + DRV_GRP4, 344 + MTK_FUNCTION(0, "GPIO28"), 345 + MTK_FUNCTION(1, "PWM_0"), 346 + MTK_FUNCTION(2, "CLKM2") 347 + ), 348 + MTK_PIN( 349 + 29, "GPIO29", 350 + MTK_EINT_FUNCTION(0, 29), 351 + DRV_GRP4, 352 + MTK_FUNCTION(0, "GPIO29"), 353 + MTK_FUNCTION(1, "PWM_1"), 354 + MTK_FUNCTION(2, "CLKM3"), 355 + MTK_FUNCTION(3, "DSI1_TE") 356 + ), 357 + MTK_PIN( 358 + 30, "GPIO30", 359 + MTK_EINT_FUNCTION(0, 30), 360 + DRV_GRP4, 361 + MTK_FUNCTION(0, "GPIO30"), 362 + MTK_FUNCTION(1, "PWM_2"), 363 + MTK_FUNCTION(2, "CLKM0"), 364 + MTK_FUNCTION(3, "LCM1_RST") 365 + ), 366 + MTK_PIN( 367 + 31, "GPIO31", 368 + MTK_EINT_FUNCTION(0, 31), 369 + DRV_GRP4, 370 + MTK_FUNCTION(0, "GPIO31"), 371 + MTK_FUNCTION(1, "I2S3_MCK"), 372 + MTK_FUNCTION(2, "I2S1_MCK"), 373 + MTK_FUNCTION(3, "I2S5_MCK"), 374 + MTK_FUNCTION(4, "SRCLKENAI0"), 375 + MTK_FUNCTION(5, "I2S0_MCK") 376 + ), 377 + MTK_PIN( 378 + 32, "GPIO32", 379 + MTK_EINT_FUNCTION(0, 32), 380 + DRV_GRP4, 381 + MTK_FUNCTION(0, "GPIO32"), 382 + MTK_FUNCTION(1, "I2S3_BCK"), 383 + MTK_FUNCTION(2, "I2S1_BCK"), 384 + MTK_FUNCTION(3, "I2S5_BCK"), 385 + MTK_FUNCTION(4, "PCM0_CLK"), 386 + MTK_FUNCTION(5, "I2S0_BCK") 387 + ), 388 + MTK_PIN( 389 + 33, "GPIO33", 390 + MTK_EINT_FUNCTION(0, 33), 391 + DRV_GRP4, 392 + MTK_FUNCTION(0, "GPIO33"), 393 + MTK_FUNCTION(1, "I2S3_LRCK"), 394 + MTK_FUNCTION(2, "I2S1_LRCK"), 395 + MTK_FUNCTION(3, "I2S5_LRCK"), 396 + MTK_FUNCTION(4, "PCM0_SYNC"), 397 + MTK_FUNCTION(5, "I2S0_LRCK") 398 + ), 399 + MTK_PIN( 400 + 34, "GPIO34", 401 + MTK_EINT_FUNCTION(0, 34), 402 + DRV_GRP4, 403 + MTK_FUNCTION(0, "GPIO34"), 404 + MTK_FUNCTION(1, "I2S0_DI"), 405 + MTK_FUNCTION(2, "I2S2_DI"), 406 + MTK_FUNCTION(3, "I2S2_DI2"), 407 + MTK_FUNCTION(4, "PCM0_DI"), 408 + MTK_FUNCTION(5, "I2S0_DI") 409 + ), 410 + MTK_PIN( 411 + 35, "GPIO35", 412 + MTK_EINT_FUNCTION(0, 35), 413 + DRV_GRP4, 414 + MTK_FUNCTION(0, "GPIO35"), 415 + MTK_FUNCTION(1, "I2S3_DO"), 416 + MTK_FUNCTION(2, "I2S1_DO"), 417 + MTK_FUNCTION(3, "I2S5_DO"), 418 + MTK_FUNCTION(4, "PCM0_DO") 419 + ), 420 + MTK_PIN( 421 + 36, "GPIO36", 422 + MTK_EINT_FUNCTION(0, 36), 423 + DRV_GRP4, 424 + MTK_FUNCTION(0, "GPIO36"), 425 + MTK_FUNCTION(1, "SPI5_A_CLK"), 426 + MTK_FUNCTION(2, "DMIC1_CLK"), 427 + MTK_FUNCTION(3, "IDDIG"), 428 + MTK_FUNCTION(4, "MD_URXD0"), 429 + MTK_FUNCTION(5, "UCTS0"), 430 + MTK_FUNCTION(6, "URXD1"), 431 + MTK_FUNCTION(7, "DBG_MON_A0") 432 + ), 433 + MTK_PIN( 434 + 37, "GPIO37", 435 + MTK_EINT_FUNCTION(0, 37), 436 + DRV_GRP4, 437 + MTK_FUNCTION(0, "GPIO37"), 438 + MTK_FUNCTION(1, "SPI5_A_CSB"), 439 + MTK_FUNCTION(2, "DMIC1_DAT"), 440 + MTK_FUNCTION(3, "USB_DRVVBUS"), 441 + MTK_FUNCTION(4, "MD_UTXD0"), 442 + MTK_FUNCTION(5, "URTS0"), 443 + MTK_FUNCTION(6, "UTXD1"), 444 + MTK_FUNCTION(7, "DBG_MON_A1") 445 + ), 446 + MTK_PIN( 447 + 38, "GPIO38", 448 + MTK_EINT_FUNCTION(0, 38), 449 + DRV_GRP4, 450 + MTK_FUNCTION(0, "GPIO38"), 451 + MTK_FUNCTION(1, "SPI5_A_MI"), 452 + MTK_FUNCTION(2, "DMIC_CLK"), 453 + MTK_FUNCTION(3, "DSI1_TE"), 454 + MTK_FUNCTION(4, "MD_URXD1"), 455 + MTK_FUNCTION(5, "URXD0"), 456 + MTK_FUNCTION(6, "UCTS1"), 457 + MTK_FUNCTION(7, "DBG_MON_A2") 458 + ), 459 + MTK_PIN( 460 + 39, "GPIO39", 461 + MTK_EINT_FUNCTION(0, 39), 462 + DRV_GRP4, 463 + MTK_FUNCTION(0, "GPIO39"), 464 + MTK_FUNCTION(1, "SPI5_A_MO"), 465 + MTK_FUNCTION(2, "DMIC_DAT"), 466 + MTK_FUNCTION(3, "LCM1_RST"), 467 + MTK_FUNCTION(4, "MD_UTXD1"), 468 + MTK_FUNCTION(5, "UTXD0"), 469 + MTK_FUNCTION(6, "URTS1"), 470 + MTK_FUNCTION(7, "DBG_MON_A3") 471 + ), 472 + MTK_PIN( 473 + 40, "GPIO40", 474 + MTK_EINT_FUNCTION(0, 40), 475 + DRV_GRP4, 476 + MTK_FUNCTION(0, "GPIO40"), 477 + MTK_FUNCTION(1, "DISP_PWM"), 478 + MTK_FUNCTION(7, "DBG_MON_A6") 479 + ), 480 + MTK_PIN( 481 + 41, "GPIO41", 482 + MTK_EINT_FUNCTION(0, 41), 483 + DRV_GRP4, 484 + MTK_FUNCTION(0, "GPIO41"), 485 + MTK_FUNCTION(1, "DSI_TE") 486 + ), 487 + MTK_PIN( 488 + 42, "GPIO42", 489 + MTK_EINT_FUNCTION(0, 42), 490 + DRV_GRP4, 491 + MTK_FUNCTION(0, "GPIO42"), 492 + MTK_FUNCTION(1, "LCM_RST") 493 + ), 494 + MTK_PIN( 495 + 43, "GPIO43", 496 + MTK_EINT_FUNCTION(0, 43), 497 + DRV_GRP4, 498 + MTK_FUNCTION(0, "GPIO43"), 499 + MTK_FUNCTION(1, "MD_INT1_C2K_UIM0_HOT_PLUG"), 500 + MTK_FUNCTION(2, "MD_INT2_C2K_UIM1_HOT_PLUG"), 501 + MTK_FUNCTION(3, "SCL_6306"), 502 + MTK_FUNCTION(4, "ADSP_URXD0"), 503 + MTK_FUNCTION(5, "PTA_RXD"), 504 + MTK_FUNCTION(6, "SSPM_URXD_AO"), 505 + MTK_FUNCTION(7, "DBG_MON_A4") 506 + ), 507 + MTK_PIN( 508 + 44, "GPIO44", 509 + MTK_EINT_FUNCTION(0, 44), 510 + DRV_GRP4, 511 + MTK_FUNCTION(0, "GPIO44"), 512 + MTK_FUNCTION(1, "MD_INT2_C2K_UIM1_HOT_PLUG"), 513 + MTK_FUNCTION(2, "MD_INT1_C2K_UIM0_HOT_PLUG"), 514 + MTK_FUNCTION(3, "SDA_6306"), 515 + MTK_FUNCTION(4, "ADSP_UTXD0"), 516 + MTK_FUNCTION(5, "PTA_TXD"), 517 + MTK_FUNCTION(6, "SSPM_UTXD_AO"), 518 + MTK_FUNCTION(7, "DBG_MON_A5") 519 + ), 520 + MTK_PIN( 521 + 45, "GPIO45", 522 + MTK_EINT_FUNCTION(0, 45), 523 + DRV_GRP2, 524 + MTK_FUNCTION(0, "GPIO45"), 525 + MTK_FUNCTION(1, "MD1_SIM2_SCLK"), 526 + MTK_FUNCTION(2, "MD1_SIM1_SCLK"), 527 + MTK_FUNCTION(3, "MCUPM_JTAG_TDI"), 528 + MTK_FUNCTION(4, "APU_JTAG_TDI"), 529 + MTK_FUNCTION(5, "CCU_JTAG_TDI"), 530 + MTK_FUNCTION(6, "LVTS_SCK") 531 + ), 532 + MTK_PIN( 533 + 46, "GPIO46", 534 + MTK_EINT_FUNCTION(0, 46), 535 + DRV_GRP2, 536 + MTK_FUNCTION(0, "GPIO46"), 537 + MTK_FUNCTION(1, "MD1_SIM2_SRST"), 538 + MTK_FUNCTION(2, "MD1_SIM1_SRST"), 539 + MTK_FUNCTION(3, "MCUPM_JTAG_TMS"), 540 + MTK_FUNCTION(4, "APU_JTAG_TMS"), 541 + MTK_FUNCTION(5, "CCU_JTAG_TMS"), 542 + MTK_FUNCTION(6, "LVTS_SDI") 543 + ), 544 + MTK_PIN( 545 + 47, "GPIO47", 546 + MTK_EINT_FUNCTION(0, 47), 547 + DRV_GRP2, 548 + MTK_FUNCTION(0, "GPIO47"), 549 + MTK_FUNCTION(1, "MD1_SIM2_SIO"), 550 + MTK_FUNCTION(2, "MD1_SIM1_SIO"), 551 + MTK_FUNCTION(3, "MCUPM_JTAG_TDO"), 552 + MTK_FUNCTION(4, "APU_JTAG_TDO"), 553 + MTK_FUNCTION(5, "CCU_JTAG_TDO"), 554 + MTK_FUNCTION(6, "LVTS_SCF") 555 + ), 556 + MTK_PIN( 557 + 48, "GPIO48", 558 + MTK_EINT_FUNCTION(0, 48), 559 + DRV_GRP2, 560 + MTK_FUNCTION(0, "GPIO48"), 561 + MTK_FUNCTION(1, "MD1_SIM1_SIO"), 562 + MTK_FUNCTION(2, "MD1_SIM2_SIO"), 563 + MTK_FUNCTION(3, "MCUPM_JTAG_TRSTN"), 564 + MTK_FUNCTION(4, "APU_JTAG_TRST"), 565 + MTK_FUNCTION(5, "CCU_JTAG_TRST"), 566 + MTK_FUNCTION(6, "LVTS_FOUT") 567 + ), 568 + MTK_PIN( 569 + 49, "GPIO49", 570 + MTK_EINT_FUNCTION(0, 49), 571 + DRV_GRP2, 572 + MTK_FUNCTION(0, "GPIO49"), 573 + MTK_FUNCTION(1, "MD1_SIM1_SRST"), 574 + MTK_FUNCTION(2, "MD1_SIM2_SRST"), 575 + MTK_FUNCTION(3, "MCUPM_JTAG_TCK"), 576 + MTK_FUNCTION(4, "APU_JTAG_TCK"), 577 + MTK_FUNCTION(5, "CCU_JTAG_TCK"), 578 + MTK_FUNCTION(6, "LVTS_SDO") 579 + ), 580 + MTK_PIN( 581 + 50, "GPIO50", 582 + MTK_EINT_FUNCTION(0, 50), 583 + DRV_GRP2, 584 + MTK_FUNCTION(0, "GPIO50"), 585 + MTK_FUNCTION(1, "MD1_SIM1_SCLK"), 586 + MTK_FUNCTION(2, "MD1_SIM2_SCLK"), 587 + MTK_FUNCTION(6, "LVTS_26M") 588 + ), 589 + MTK_PIN( 590 + 51, "GPIO51", 591 + MTK_EINT_FUNCTION(0, 51), 592 + DRV_GRP4, 593 + MTK_FUNCTION(0, "GPIO51"), 594 + MTK_FUNCTION(1, "MSDC1_CLK"), 595 + MTK_FUNCTION(2, "PCM1_CLK"), 596 + MTK_FUNCTION(3, "VPU_UDI_TCK"), 597 + MTK_FUNCTION(4, "UDI_TCK"), 598 + MTK_FUNCTION(5, "IPU_JTAG_TCK"), 599 + MTK_FUNCTION(6, "SSPM_JTAG_TCK"), 600 + MTK_FUNCTION(7, "JTCK_SEL3") 601 + ), 602 + MTK_PIN( 603 + 52, "GPIO52", 604 + MTK_EINT_FUNCTION(0, 52), 605 + DRV_GRP4, 606 + MTK_FUNCTION(0, "GPIO52"), 607 + MTK_FUNCTION(1, "MSDC1_CMD"), 608 + MTK_FUNCTION(2, "PCM1_SYNC"), 609 + MTK_FUNCTION(3, "VPU_UDI_TMS"), 610 + MTK_FUNCTION(4, "UDI_TMS"), 611 + MTK_FUNCTION(5, "IPU_JTAG_TMS"), 612 + MTK_FUNCTION(6, "SSPM_JTAG_TMS"), 613 + MTK_FUNCTION(7, "JTMS_SEL3") 614 + ), 615 + MTK_PIN( 616 + 53, "GPIO53", 617 + MTK_EINT_FUNCTION(0, 53), 618 + DRV_GRP4, 619 + MTK_FUNCTION(0, "GPIO53"), 620 + MTK_FUNCTION(1, "MSDC1_DAT3"), 621 + MTK_FUNCTION(2, "PCM1_DI") 622 + ), 623 + MTK_PIN( 624 + 54, "GPIO54", 625 + MTK_EINT_FUNCTION(0, 54), 626 + DRV_GRP4, 627 + MTK_FUNCTION(0, "GPIO54"), 628 + MTK_FUNCTION(1, "MSDC1_DAT0"), 629 + MTK_FUNCTION(2, "PCM1_DO0"), 630 + MTK_FUNCTION(3, "VPU_UDI_TDI"), 631 + MTK_FUNCTION(4, "UDI_TDI"), 632 + MTK_FUNCTION(5, "IPU_JTAG_TDI"), 633 + MTK_FUNCTION(6, "SSPM_JTAG_TDI"), 634 + MTK_FUNCTION(7, "JTDI_SEL3") 635 + ), 636 + MTK_PIN( 637 + 55, "GPIO55", 638 + MTK_EINT_FUNCTION(0, 55), 639 + DRV_GRP4, 640 + MTK_FUNCTION(0, "GPIO55"), 641 + MTK_FUNCTION(1, "MSDC1_DAT2"), 642 + MTK_FUNCTION(2, "PCM1_DO2"), 643 + MTK_FUNCTION(3, "VPU_UDI_NTRST"), 644 + MTK_FUNCTION(4, "UDI_NTRST"), 645 + MTK_FUNCTION(5, "IPU_JTAG_TRST"), 646 + MTK_FUNCTION(6, "SSPM_JTAG_TRSTN"), 647 + MTK_FUNCTION(7, "JTRSTN_SEL3") 648 + ), 649 + MTK_PIN( 650 + 56, "GPIO56", 651 + MTK_EINT_FUNCTION(0, 56), 652 + DRV_GRP4, 653 + MTK_FUNCTION(0, "GPIO56"), 654 + MTK_FUNCTION(1, "MSDC1_DAT1"), 655 + MTK_FUNCTION(2, "PCM1_DO1"), 656 + MTK_FUNCTION(3, "VPU_UDI_TDO"), 657 + MTK_FUNCTION(4, "UDI_TDO"), 658 + MTK_FUNCTION(5, "IPU_JTAG_TDO"), 659 + MTK_FUNCTION(6, "SSPM_JTAG_TDO"), 660 + MTK_FUNCTION(7, "JTDO_SEL3") 661 + ), 662 + MTK_PIN( 663 + 57, "GPIO57", 664 + MTK_EINT_FUNCTION(0, 57), 665 + DRV_GRP4, 666 + MTK_FUNCTION(0, "GPIO57"), 667 + MTK_FUNCTION(1, "MIPI2_D_SCLK"), 668 + MTK_FUNCTION(7, "DBG_MON_A14") 669 + ), 670 + MTK_PIN( 671 + 58, "GPIO58", 672 + MTK_EINT_FUNCTION(0, 58), 673 + DRV_GRP4, 674 + MTK_FUNCTION(0, "GPIO58"), 675 + MTK_FUNCTION(1, "MIPI2_D_SDATA"), 676 + MTK_FUNCTION(7, "DBG_MON_A15") 677 + ), 678 + MTK_PIN( 679 + 59, "GPIO59", 680 + MTK_EINT_FUNCTION(0, 59), 681 + DRV_GRP4, 682 + MTK_FUNCTION(0, "GPIO59"), 683 + MTK_FUNCTION(1, "MIPI_M_SCLK"), 684 + MTK_FUNCTION(7, "DBG_MON_A17") 685 + ), 686 + MTK_PIN( 687 + 60, "GPIO60", 688 + MTK_EINT_FUNCTION(0, 60), 689 + DRV_GRP4, 690 + MTK_FUNCTION(0, "GPIO60"), 691 + MTK_FUNCTION(1, "MIPI_M_SDATA"), 692 + MTK_FUNCTION(7, "DBG_MON_A18") 693 + ), 694 + MTK_PIN( 695 + 61, "GPIO61", 696 + MTK_EINT_FUNCTION(0, 61), 697 + DRV_GRP4, 698 + MTK_FUNCTION(0, "GPIO61"), 699 + MTK_FUNCTION(1, "MD_UCNT_A_TGL"), 700 + MTK_FUNCTION(7, "DBG_MON_A16") 701 + ), 702 + MTK_PIN( 703 + 62, "GPIO62", 704 + MTK_EINT_FUNCTION(0, 62), 705 + DRV_GRP4, 706 + MTK_FUNCTION(0, "GPIO62"), 707 + MTK_FUNCTION(1, "DIGRF_IRQ") 708 + ), 709 + MTK_PIN( 710 + 63, "GPIO63", 711 + MTK_EINT_FUNCTION(0, 63), 712 + DRV_GRP4, 713 + MTK_FUNCTION(0, "GPIO63"), 714 + MTK_FUNCTION(1, "BPI_BUS0"), 715 + MTK_FUNCTION(7, "DBG_MON_A19") 716 + ), 717 + MTK_PIN( 718 + 64, "GPIO64", 719 + MTK_EINT_FUNCTION(0, 64), 720 + DRV_GRP4, 721 + MTK_FUNCTION(0, "GPIO64"), 722 + MTK_FUNCTION(1, "BPI_BUS1"), 723 + MTK_FUNCTION(7, "DBG_MON_A20") 724 + ), 725 + MTK_PIN( 726 + 65, "GPIO65", 727 + MTK_EINT_FUNCTION(0, 65), 728 + DRV_GRP4, 729 + MTK_FUNCTION(0, "GPIO65"), 730 + MTK_FUNCTION(1, "BPI_BUS2"), 731 + MTK_FUNCTION(7, "DBG_MON_A21") 732 + ), 733 + MTK_PIN( 734 + 66, "GPIO66", 735 + MTK_EINT_FUNCTION(0, 66), 736 + DRV_GRP4, 737 + MTK_FUNCTION(0, "GPIO66"), 738 + MTK_FUNCTION(1, "BPI_BUS3"), 739 + MTK_FUNCTION(7, "DBG_MON_A22") 740 + ), 741 + MTK_PIN( 742 + 67, "GPIO67", 743 + MTK_EINT_FUNCTION(0, 67), 744 + DRV_GRP4, 745 + MTK_FUNCTION(0, "GPIO67"), 746 + MTK_FUNCTION(1, "BPI_BUS4") 747 + ), 748 + MTK_PIN( 749 + 68, "GPIO68", 750 + MTK_EINT_FUNCTION(0, 68), 751 + DRV_GRP4, 752 + MTK_FUNCTION(0, "GPIO68"), 753 + MTK_FUNCTION(1, "BPI_BUS5") 754 + ), 755 + MTK_PIN( 756 + 69, "GPIO69", 757 + MTK_EINT_FUNCTION(0, 69), 758 + DRV_GRP4, 759 + MTK_FUNCTION(0, "GPIO69"), 760 + MTK_FUNCTION(1, "BPI_BUS6"), 761 + MTK_FUNCTION(2, "CONN_BPI_BUS6") 762 + ), 763 + MTK_PIN( 764 + 70, "GPIO70", 765 + MTK_EINT_FUNCTION(0, 70), 766 + DRV_GRP4, 767 + MTK_FUNCTION(0, "GPIO70"), 768 + MTK_FUNCTION(1, "BPI_BUS7"), 769 + MTK_FUNCTION(2, "CONN_BPI_BUS7") 770 + ), 771 + MTK_PIN( 772 + 71, "GPIO71", 773 + MTK_EINT_FUNCTION(0, 71), 774 + DRV_GRP4, 775 + MTK_FUNCTION(0, "GPIO71"), 776 + MTK_FUNCTION(1, "BPI_BUS8"), 777 + MTK_FUNCTION(2, "CONN_BPI_BUS8") 778 + ), 779 + MTK_PIN( 780 + 72, "GPIO72", 781 + MTK_EINT_FUNCTION(0, 72), 782 + DRV_GRP4, 783 + MTK_FUNCTION(0, "GPIO72"), 784 + MTK_FUNCTION(1, "BPI_BUS9"), 785 + MTK_FUNCTION(2, "CONN_BPI_BUS9") 786 + ), 787 + MTK_PIN( 788 + 73, "GPIO73", 789 + MTK_EINT_FUNCTION(0, 73), 790 + DRV_GRP4, 791 + MTK_FUNCTION(0, "GPIO73"), 792 + MTK_FUNCTION(1, "BPI_BUS10"), 793 + MTK_FUNCTION(2, "CONN_BPI_BUS10") 794 + ), 795 + MTK_PIN( 796 + 74, "GPIO74", 797 + MTK_EINT_FUNCTION(0, 74), 798 + DRV_GRP4, 799 + MTK_FUNCTION(0, "GPIO74"), 800 + MTK_FUNCTION(1, "BPI_BUS11_OLAT0"), 801 + MTK_FUNCTION(2, "CONN_BPI_BUS11_OLAT0") 802 + ), 803 + MTK_PIN( 804 + 75, "GPIO75", 805 + MTK_EINT_FUNCTION(0, 75), 806 + DRV_GRP4, 807 + MTK_FUNCTION(0, "GPIO75"), 808 + MTK_FUNCTION(1, "BPI_BUS12_OLAT1"), 809 + MTK_FUNCTION(2, "CONN_BPI_BUS12_OLAT1") 810 + ), 811 + MTK_PIN( 812 + 76, "GPIO76", 813 + MTK_EINT_FUNCTION(0, 76), 814 + DRV_GRP4, 815 + MTK_FUNCTION(0, "GPIO76"), 816 + MTK_FUNCTION(1, "BPI_BUS13_OLAT2"), 817 + MTK_FUNCTION(2, "CONN_BPI_BUS13_OLAT2") 818 + ), 819 + MTK_PIN( 820 + 77, "GPIO77", 821 + MTK_EINT_FUNCTION(0, 77), 822 + DRV_GRP4, 823 + MTK_FUNCTION(0, "GPIO77"), 824 + MTK_FUNCTION(1, "BPI_BUS14_OLAT3"), 825 + MTK_FUNCTION(2, "CONN_BPI_BUS14_OLAT3") 826 + ), 827 + MTK_PIN( 828 + 78, "GPIO78", 829 + MTK_EINT_FUNCTION(0, 78), 830 + DRV_GRP4, 831 + MTK_FUNCTION(0, "GPIO78"), 832 + MTK_FUNCTION(1, "BPI_BUS15_OLAT4"), 833 + MTK_FUNCTION(2, "CONN_BPI_BUS15_OLAT4"), 834 + MTK_FUNCTION(7, "DBG_MON_A7") 835 + ), 836 + MTK_PIN( 837 + 79, "GPIO79", 838 + MTK_EINT_FUNCTION(0, 79), 839 + DRV_GRP4, 840 + MTK_FUNCTION(0, "GPIO79"), 841 + MTK_FUNCTION(1, "BPI_BUS16_OLAT5"), 842 + MTK_FUNCTION(2, "CONN_BPI_BUS16_OLAT5"), 843 + MTK_FUNCTION(7, "DBG_MON_A8") 844 + ), 845 + MTK_PIN( 846 + 80, "GPIO80", 847 + MTK_EINT_FUNCTION(0, 80), 848 + DRV_GRP4, 849 + MTK_FUNCTION(0, "GPIO80"), 850 + MTK_FUNCTION(1, "BPI_BUS17_ANT0"), 851 + MTK_FUNCTION(2, "CONN_BPI_BUS17_ANT0"), 852 + MTK_FUNCTION(7, "DBG_MON_A9") 853 + ), 854 + MTK_PIN( 855 + 81, "GPIO81", 856 + MTK_EINT_FUNCTION(0, 81), 857 + DRV_GRP4, 858 + MTK_FUNCTION(0, "GPIO81"), 859 + MTK_FUNCTION(1, "BPI_BUS18_ANT1"), 860 + MTK_FUNCTION(2, "CONN_BPI_BUS18_ANT1"), 861 + MTK_FUNCTION(7, "DBG_MON_A10") 862 + ), 863 + MTK_PIN( 864 + 82, "GPIO82", 865 + MTK_EINT_FUNCTION(0, 82), 866 + DRV_GRP4, 867 + MTK_FUNCTION(0, "GPIO82"), 868 + MTK_FUNCTION(1, "BPI_BUS19_ANT2"), 869 + MTK_FUNCTION(2, "CONN_BPI_BUS19_ANT2"), 870 + MTK_FUNCTION(7, "DBG_MON_A11") 871 + ), 872 + MTK_PIN( 873 + 83, "GPIO83", 874 + MTK_EINT_FUNCTION(0, 83), 875 + DRV_GRP4, 876 + MTK_FUNCTION(0, "GPIO83"), 877 + MTK_FUNCTION(1, "BPI_BUS20_ANT3"), 878 + MTK_FUNCTION(2, "CONN_BPI_BUS20_ANT3"), 879 + MTK_FUNCTION(7, "DBG_MON_A12") 880 + ), 881 + MTK_PIN( 882 + 84, "GPIO84", 883 + MTK_EINT_FUNCTION(0, 84), 884 + DRV_GRP4, 885 + MTK_FUNCTION(0, "GPIO84"), 886 + MTK_FUNCTION(1, "BPI_BUS21_ANT4"), 887 + MTK_FUNCTION(2, "CONN_BPI_BUS21_ANT4"), 888 + MTK_FUNCTION(7, "DBG_MON_A13") 889 + ), 890 + MTK_PIN( 891 + 85, "GPIO85", 892 + MTK_EINT_FUNCTION(0, 85), 893 + DRV_GRP4, 894 + MTK_FUNCTION(0, "GPIO85"), 895 + MTK_FUNCTION(1, "MIPI1_D_SCLK"), 896 + MTK_FUNCTION(2, "CONN_MIPI1_SCLK") 897 + ), 898 + MTK_PIN( 899 + 86, "GPIO86", 900 + MTK_EINT_FUNCTION(0, 86), 901 + DRV_GRP4, 902 + MTK_FUNCTION(0, "GPIO86"), 903 + MTK_FUNCTION(1, "MIPI1_D_SDATA"), 904 + MTK_FUNCTION(2, "CONN_MIPI1_SDATA") 905 + ), 906 + MTK_PIN( 907 + 87, "GPIO87", 908 + MTK_EINT_FUNCTION(0, 87), 909 + DRV_GRP4, 910 + MTK_FUNCTION(0, "GPIO87"), 911 + MTK_FUNCTION(1, "MIPI0_D_SCLK"), 912 + MTK_FUNCTION(2, "CONN_MIPI0_SCLK") 913 + ), 914 + MTK_PIN( 915 + 88, "GPIO88", 916 + MTK_EINT_FUNCTION(0, 88), 917 + DRV_GRP4, 918 + MTK_FUNCTION(0, "GPIO88"), 919 + MTK_FUNCTION(1, "MIPI0_D_SDATA"), 920 + MTK_FUNCTION(2, "CONN_MIPI0_SDATA") 921 + ), 922 + MTK_PIN( 923 + 89, "GPIO89", 924 + MTK_EINT_FUNCTION(0, 89), 925 + DRV_GRP4, 926 + MTK_FUNCTION(0, "GPIO89"), 927 + MTK_FUNCTION(1, "SPMI_SCL"), 928 + MTK_FUNCTION(2, "SCL10") 929 + ), 930 + MTK_PIN( 931 + 90, "GPIO90", 932 + MTK_EINT_FUNCTION(0, 90), 933 + DRV_GRP4, 934 + MTK_FUNCTION(0, "GPIO90"), 935 + MTK_FUNCTION(1, "SPMI_SDA"), 936 + MTK_FUNCTION(2, "SDA10") 937 + ), 938 + MTK_PIN( 939 + 91, "GPIO91", 940 + MTK_EINT_FUNCTION(0, 91), 941 + DRV_GRP4, 942 + MTK_FUNCTION(0, "GPIO91"), 943 + MTK_FUNCTION(1, "AP_GOOD") 944 + ), 945 + MTK_PIN( 946 + 92, "GPIO92", 947 + MTK_EINT_FUNCTION(0, 92), 948 + DRV_GRP4, 949 + MTK_FUNCTION(0, "GPIO92"), 950 + MTK_FUNCTION(1, "URXD0"), 951 + MTK_FUNCTION(2, "MD_URXD0"), 952 + MTK_FUNCTION(3, "MD_URXD1"), 953 + MTK_FUNCTION(4, "SSPM_URXD_AO"), 954 + MTK_FUNCTION(5, "CONN_BGF_UART0_RXD") 955 + ), 956 + MTK_PIN( 957 + 93, "GPIO93", 958 + MTK_EINT_FUNCTION(0, 93), 959 + DRV_GRP4, 960 + MTK_FUNCTION(0, "GPIO93"), 961 + MTK_FUNCTION(1, "UTXD0"), 962 + MTK_FUNCTION(2, "MD_UTXD0"), 963 + MTK_FUNCTION(3, "MD_UTXD1"), 964 + MTK_FUNCTION(4, "SSPM_UTXD_AO"), 965 + MTK_FUNCTION(5, "CONN_BGF_UART0_TXD"), 966 + MTK_FUNCTION(6, "WIFI_TXD") 967 + ), 968 + MTK_PIN( 969 + 94, "GPIO94", 970 + MTK_EINT_FUNCTION(0, 94), 971 + DRV_GRP4, 972 + MTK_FUNCTION(0, "GPIO94"), 973 + MTK_FUNCTION(1, "URXD1"), 974 + MTK_FUNCTION(2, "ADSP_URXD0"), 975 + MTK_FUNCTION(3, "MD32_0_RXD"), 976 + MTK_FUNCTION(4, "SSPM_URXD_AO"), 977 + MTK_FUNCTION(5, "TP_URXD1_AO"), 978 + MTK_FUNCTION(6, "TP_URXD2_AO"), 979 + MTK_FUNCTION(7, "MBISTREADEN_TRIGGER") 980 + ), 981 + MTK_PIN( 982 + 95, "GPIO95", 983 + MTK_EINT_FUNCTION(0, 95), 984 + DRV_GRP4, 985 + MTK_FUNCTION(0, "GPIO95"), 986 + MTK_FUNCTION(1, "UTXD1"), 987 + MTK_FUNCTION(2, "ADSP_UTXD0"), 988 + MTK_FUNCTION(3, "MD32_0_TXD"), 989 + MTK_FUNCTION(4, "SSPM_UTXD_AO"), 990 + MTK_FUNCTION(5, "TP_UTXD1_AO"), 991 + MTK_FUNCTION(6, "TP_UTXD2_AO"), 992 + MTK_FUNCTION(7, "MBISTWRITEEN_TRIGGER") 993 + ), 994 + MTK_PIN( 995 + 96, "GPIO96", 996 + MTK_EINT_FUNCTION(0, 96), 997 + DRV_GRP4, 998 + MTK_FUNCTION(0, "GPIO96"), 999 + MTK_FUNCTION(1, "TDM_LRCK"), 1000 + MTK_FUNCTION(2, "I2S7_LRCK"), 1001 + MTK_FUNCTION(3, "I2S9_LRCK"), 1002 + MTK_FUNCTION(4, "SPI4_A_CLK"), 1003 + MTK_FUNCTION(5, "ADSP_JTAG0_TDI"), 1004 + MTK_FUNCTION(6, "CONN_BGF_DSP_L1_JDI"), 1005 + MTK_FUNCTION(7, "IO_JTAG_TDI") 1006 + ), 1007 + MTK_PIN( 1008 + 97, "GPIO97", 1009 + MTK_EINT_FUNCTION(0, 97), 1010 + DRV_GRP4, 1011 + MTK_FUNCTION(0, "GPIO97"), 1012 + MTK_FUNCTION(1, "TDM_BCK"), 1013 + MTK_FUNCTION(2, "I2S7_BCK"), 1014 + MTK_FUNCTION(3, "I2S9_BCK"), 1015 + MTK_FUNCTION(4, "SPI4_A_CSB"), 1016 + MTK_FUNCTION(5, "ADSP_JTAG0_TRSTN"), 1017 + MTK_FUNCTION(6, "CONN_BGF_DSP_L1_JINTP"), 1018 + MTK_FUNCTION(7, "IO_JTAG_TRSTN") 1019 + ), 1020 + MTK_PIN( 1021 + 98, "GPIO98", 1022 + MTK_EINT_FUNCTION(0, 98), 1023 + DRV_GRP4, 1024 + MTK_FUNCTION(0, "GPIO98"), 1025 + MTK_FUNCTION(1, "TDM_MCK"), 1026 + MTK_FUNCTION(2, "I2S7_MCK"), 1027 + MTK_FUNCTION(3, "I2S9_MCK"), 1028 + MTK_FUNCTION(4, "SPI4_A_MI"), 1029 + MTK_FUNCTION(5, "ADSP_JTAG0_TCK"), 1030 + MTK_FUNCTION(6, "CONN_BGF_DSP_L1_JCK"), 1031 + MTK_FUNCTION(7, "IO_JTAG_TCK") 1032 + ), 1033 + MTK_PIN( 1034 + 99, "GPIO99", 1035 + MTK_EINT_FUNCTION(0, 99), 1036 + DRV_GRP4, 1037 + MTK_FUNCTION(0, "GPIO99"), 1038 + MTK_FUNCTION(1, "TDM_DATA0"), 1039 + MTK_FUNCTION(2, "I2S6_DI"), 1040 + MTK_FUNCTION(3, "I2S8_DI"), 1041 + MTK_FUNCTION(4, "SPI4_A_MO"), 1042 + MTK_FUNCTION(5, "ADSP_JTAG0_TDO"), 1043 + MTK_FUNCTION(6, "CONN_BGF_DSP_L1_JDO"), 1044 + MTK_FUNCTION(7, "IO_JTAG_TDO") 1045 + ), 1046 + MTK_PIN( 1047 + 100, "GPIO100", 1048 + MTK_EINT_FUNCTION(0, 100), 1049 + DRV_GRP4, 1050 + MTK_FUNCTION(0, "GPIO100"), 1051 + MTK_FUNCTION(1, "TDM_DATA1"), 1052 + MTK_FUNCTION(2, "I2S7_DO"), 1053 + MTK_FUNCTION(3, "I2S9_DO"), 1054 + MTK_FUNCTION(4, "DP_TX_HPD"), 1055 + MTK_FUNCTION(5, "ADSP_JTAG0_TMS"), 1056 + MTK_FUNCTION(6, "CONN_BGF_DSP_L1_JMS"), 1057 + MTK_FUNCTION(7, "IO_JTAG_TMS") 1058 + ), 1059 + MTK_PIN( 1060 + 101, "GPIO101", 1061 + MTK_EINT_FUNCTION(0, 101), 1062 + DRV_GRP4, 1063 + MTK_FUNCTION(0, "GPIO101"), 1064 + MTK_FUNCTION(1, "TDM_DATA2"), 1065 + MTK_FUNCTION(2, "DMIC1_CLK"), 1066 + MTK_FUNCTION(3, "SRCLKENAI0"), 1067 + MTK_FUNCTION(4, "SPI5_B_CLK"), 1068 + MTK_FUNCTION(5, "CLKM0"), 1069 + MTK_FUNCTION(7, "DAP_MD32_SWD") 1070 + ), 1071 + MTK_PIN( 1072 + 102, "GPIO102", 1073 + MTK_EINT_FUNCTION(0, 102), 1074 + DRV_GRP4, 1075 + MTK_FUNCTION(0, "GPIO102"), 1076 + MTK_FUNCTION(1, "TDM_DATA3"), 1077 + MTK_FUNCTION(2, "DMIC1_DAT"), 1078 + MTK_FUNCTION(3, "SRCLKENAI1"), 1079 + MTK_FUNCTION(4, "SPI5_B_CSB"), 1080 + MTK_FUNCTION(5, "DP_TX_HPD"), 1081 + MTK_FUNCTION(6, "DVFSRC_EXT_REQ"), 1082 + MTK_FUNCTION(7, "DAP_MD32_SWCK") 1083 + ), 1084 + MTK_PIN( 1085 + 103, "GPIO103", 1086 + MTK_EINT_FUNCTION(0, 103), 1087 + DRV_GRP4, 1088 + MTK_FUNCTION(0, "GPIO103"), 1089 + MTK_FUNCTION(1, "SPI0_A_MI"), 1090 + MTK_FUNCTION(2, "SCP_SPI0_MI"), 1091 + MTK_FUNCTION(5, "DFD_TDO"), 1092 + MTK_FUNCTION(6, "SPM_JTAG_TDO"), 1093 + MTK_FUNCTION(7, "JTDO_SEL1") 1094 + ), 1095 + MTK_PIN( 1096 + 104, "GPIO104", 1097 + MTK_EINT_FUNCTION(0, 104), 1098 + DRV_GRP4, 1099 + MTK_FUNCTION(0, "GPIO104"), 1100 + MTK_FUNCTION(1, "SPI0_A_CSB"), 1101 + MTK_FUNCTION(2, "SCP_SPI0_CS"), 1102 + MTK_FUNCTION(5, "DFD_TMS"), 1103 + MTK_FUNCTION(6, "SPM_JTAG_TMS"), 1104 + MTK_FUNCTION(7, "JTMS_SEL1") 1105 + ), 1106 + MTK_PIN( 1107 + 105, "GPIO105", 1108 + MTK_EINT_FUNCTION(0, 105), 1109 + DRV_GRP4, 1110 + MTK_FUNCTION(0, "GPIO105"), 1111 + MTK_FUNCTION(1, "SPI0_A_MO"), 1112 + MTK_FUNCTION(2, "SCP_SPI0_MO"), 1113 + MTK_FUNCTION(3, "SCP_SDA0"), 1114 + MTK_FUNCTION(5, "DFD_TDI"), 1115 + MTK_FUNCTION(6, "SPM_JTAG_TDI"), 1116 + MTK_FUNCTION(7, "JTDI_SEL1") 1117 + ), 1118 + MTK_PIN( 1119 + 106, "GPIO106", 1120 + MTK_EINT_FUNCTION(0, 106), 1121 + DRV_GRP4, 1122 + MTK_FUNCTION(0, "GPIO106"), 1123 + MTK_FUNCTION(1, "SPI0_A_CLK"), 1124 + MTK_FUNCTION(2, "SCP_SPI0_CK"), 1125 + MTK_FUNCTION(3, "SCP_SCL0"), 1126 + MTK_FUNCTION(5, "DFD_TCK_XI"), 1127 + MTK_FUNCTION(6, "SPM_JTAG_TCK"), 1128 + MTK_FUNCTION(7, "JTCK_SEL1") 1129 + ), 1130 + MTK_PIN( 1131 + 107, "GPIO107", 1132 + MTK_EINT_FUNCTION(0, 107), 1133 + DRV_GRP4, 1134 + MTK_FUNCTION(0, "GPIO107"), 1135 + MTK_FUNCTION(1, "DMIC_CLK"), 1136 + MTK_FUNCTION(2, "PWM_0"), 1137 + MTK_FUNCTION(3, "CLKM2"), 1138 + MTK_FUNCTION(4, "SPI5_B_MI"), 1139 + MTK_FUNCTION(6, "SPM_JTAG_TRSTN"), 1140 + MTK_FUNCTION(7, "JTRSTN_SEL1") 1141 + ), 1142 + MTK_PIN( 1143 + 108, "GPIO108", 1144 + MTK_EINT_FUNCTION(0, 108), 1145 + DRV_GRP4, 1146 + MTK_FUNCTION(0, "GPIO108"), 1147 + MTK_FUNCTION(1, "DMIC_DAT"), 1148 + MTK_FUNCTION(2, "PWM_1"), 1149 + MTK_FUNCTION(3, "CLKM3"), 1150 + MTK_FUNCTION(4, "SPI5_B_MO"), 1151 + MTK_FUNCTION(7, "DAP_SONIC_SWD") 1152 + ), 1153 + MTK_PIN( 1154 + 109, "GPIO109", 1155 + MTK_EINT_FUNCTION(0, 109), 1156 + DRV_GRP4, 1157 + MTK_FUNCTION(0, "GPIO109"), 1158 + MTK_FUNCTION(1, "I2S1_MCK"), 1159 + MTK_FUNCTION(2, "I2S3_MCK"), 1160 + MTK_FUNCTION(3, "I2S2_MCK"), 1161 + MTK_FUNCTION(4, "DP_TX_HPD"), 1162 + MTK_FUNCTION(5, "I2S2_MCK"), 1163 + MTK_FUNCTION(6, "SRCLKENAI0"), 1164 + MTK_FUNCTION(7, "DAP_SONIC_SWCK") 1165 + ), 1166 + MTK_PIN( 1167 + 110, "GPIO110", 1168 + MTK_EINT_FUNCTION(0, 110), 1169 + DRV_GRP4, 1170 + MTK_FUNCTION(0, "GPIO110"), 1171 + MTK_FUNCTION(1, "I2S1_BCK"), 1172 + MTK_FUNCTION(2, "I2S3_BCK"), 1173 + MTK_FUNCTION(3, "I2S2_BCK"), 1174 + MTK_FUNCTION(4, "PCM0_CLK"), 1175 + MTK_FUNCTION(5, "I2S2_BCK"), 1176 + MTK_FUNCTION(6, "CONN_BGF_MCU_TDO") 1177 + ), 1178 + MTK_PIN( 1179 + 111, "GPIO111", 1180 + MTK_EINT_FUNCTION(0, 111), 1181 + DRV_GRP4, 1182 + MTK_FUNCTION(0, "GPIO111"), 1183 + MTK_FUNCTION(1, "I2S1_LRCK"), 1184 + MTK_FUNCTION(2, "I2S3_LRCK"), 1185 + MTK_FUNCTION(3, "I2S2_LRCK"), 1186 + MTK_FUNCTION(4, "PCM0_SYNC"), 1187 + MTK_FUNCTION(5, "I2S2_LRCK"), 1188 + MTK_FUNCTION(6, "CONN_BGF_MCU_TDI") 1189 + ), 1190 + MTK_PIN( 1191 + 112, "GPIO112", 1192 + MTK_EINT_FUNCTION(0, 112), 1193 + DRV_GRP4, 1194 + MTK_FUNCTION(0, "GPIO112"), 1195 + MTK_FUNCTION(1, "I2S2_DI"), 1196 + MTK_FUNCTION(2, "I2S0_DI"), 1197 + MTK_FUNCTION(3, "I2S2_DI2"), 1198 + MTK_FUNCTION(4, "PCM0_DI"), 1199 + MTK_FUNCTION(5, "I2S2_DI"), 1200 + MTK_FUNCTION(6, "CONN_BGF_MCU_TMS") 1201 + ), 1202 + MTK_PIN( 1203 + 113, "GPIO113", 1204 + MTK_EINT_FUNCTION(0, 113), 1205 + DRV_GRP4, 1206 + MTK_FUNCTION(0, "GPIO113"), 1207 + MTK_FUNCTION(1, "I2S1_DO"), 1208 + MTK_FUNCTION(2, "I2S3_DO"), 1209 + MTK_FUNCTION(3, "I2S5_DO"), 1210 + MTK_FUNCTION(4, "PCM0_DO"), 1211 + MTK_FUNCTION(5, "I2S2_DI2"), 1212 + MTK_FUNCTION(6, "CONN_BGF_MCU_TCK") 1213 + ), 1214 + MTK_PIN( 1215 + 114, "GPIO114", 1216 + MTK_EINT_FUNCTION(0, 114), 1217 + DRV_GRP4, 1218 + MTK_FUNCTION(0, "GPIO114"), 1219 + MTK_FUNCTION(1, "SPI2_MI"), 1220 + MTK_FUNCTION(2, "SCP_SPI2_MI"), 1221 + MTK_FUNCTION(6, "CONN_BGF_MCU_TRST_B") 1222 + ), 1223 + MTK_PIN( 1224 + 115, "GPIO115", 1225 + MTK_EINT_FUNCTION(0, 115), 1226 + DRV_GRP4, 1227 + MTK_FUNCTION(0, "GPIO115"), 1228 + MTK_FUNCTION(1, "SPI2_CSB"), 1229 + MTK_FUNCTION(2, "SCP_SPI2_CS"), 1230 + MTK_FUNCTION(6, "CONN_BGF_MCU_DBGI_N") 1231 + ), 1232 + MTK_PIN( 1233 + 116, "GPIO116", 1234 + MTK_EINT_FUNCTION(0, 116), 1235 + DRV_GRP4, 1236 + MTK_FUNCTION(0, "GPIO116"), 1237 + MTK_FUNCTION(1, "SPI2_MO"), 1238 + MTK_FUNCTION(2, "SCP_SPI2_MO"), 1239 + MTK_FUNCTION(3, "SCP_SDA1"), 1240 + MTK_FUNCTION(6, "CONN_BGF_MCU_DBGACK_N") 1241 + ), 1242 + MTK_PIN( 1243 + 117, "GPIO117", 1244 + MTK_EINT_FUNCTION(0, 117), 1245 + DRV_GRP4, 1246 + MTK_FUNCTION(0, "GPIO117"), 1247 + MTK_FUNCTION(1, "SPI2_CLK"), 1248 + MTK_FUNCTION(2, "SCP_SPI2_CK"), 1249 + MTK_FUNCTION(3, "SCP_SCL1") 1250 + ), 1251 + MTK_PIN( 1252 + 118, "GPIO118", 1253 + MTK_EINT_FUNCTION(0, 118), 1254 + DRV_GRP4, 1255 + MTK_FUNCTION(0, "GPIO118"), 1256 + MTK_FUNCTION(1, "SCL1"), 1257 + MTK_FUNCTION(2, "SCP_SCL0"), 1258 + MTK_FUNCTION(3, "SCP_SCL1") 1259 + ), 1260 + MTK_PIN( 1261 + 119, "GPIO119", 1262 + MTK_EINT_FUNCTION(0, 119), 1263 + DRV_GRP4, 1264 + MTK_FUNCTION(0, "GPIO119"), 1265 + MTK_FUNCTION(1, "SDA1"), 1266 + MTK_FUNCTION(2, "SCP_SDA0"), 1267 + MTK_FUNCTION(3, "SCP_SDA1") 1268 + ), 1269 + MTK_PIN( 1270 + 120, "GPIO120", 1271 + MTK_EINT_FUNCTION(0, 120), 1272 + DRV_GRP4, 1273 + MTK_FUNCTION(0, "GPIO120"), 1274 + MTK_FUNCTION(1, "SCL9") 1275 + ), 1276 + MTK_PIN( 1277 + 121, "GPIO121", 1278 + MTK_EINT_FUNCTION(0, 121), 1279 + DRV_GRP4, 1280 + MTK_FUNCTION(0, "GPIO121"), 1281 + MTK_FUNCTION(1, "SDA9") 1282 + ), 1283 + MTK_PIN( 1284 + 122, "GPIO122", 1285 + MTK_EINT_FUNCTION(0, 122), 1286 + DRV_GRP4, 1287 + MTK_FUNCTION(0, "GPIO122"), 1288 + MTK_FUNCTION(1, "SCL8") 1289 + ), 1290 + MTK_PIN( 1291 + 123, "GPIO123", 1292 + MTK_EINT_FUNCTION(0, 123), 1293 + DRV_GRP4, 1294 + MTK_FUNCTION(0, "GPIO123"), 1295 + MTK_FUNCTION(1, "SDA8") 1296 + ), 1297 + MTK_PIN( 1298 + 124, "GPIO124", 1299 + MTK_EINT_FUNCTION(0, 124), 1300 + DRV_GRP4, 1301 + MTK_FUNCTION(0, "GPIO124"), 1302 + MTK_FUNCTION(1, "SCL7"), 1303 + MTK_FUNCTION(2, "DMIC1_CLK") 1304 + ), 1305 + MTK_PIN( 1306 + 125, "GPIO125", 1307 + MTK_EINT_FUNCTION(0, 125), 1308 + DRV_GRP4, 1309 + MTK_FUNCTION(0, "GPIO125"), 1310 + MTK_FUNCTION(1, "SDA7"), 1311 + MTK_FUNCTION(2, "DMIC1_DAT") 1312 + ), 1313 + MTK_PIN( 1314 + 126, "GPIO126", 1315 + MTK_EINT_FUNCTION(0, 126), 1316 + DRV_GRP4, 1317 + MTK_FUNCTION(0, "GPIO126"), 1318 + MTK_FUNCTION(1, "CMFLASH0"), 1319 + MTK_FUNCTION(2, "PWM_2"), 1320 + MTK_FUNCTION(3, "TP_UCTS1_AO"), 1321 + MTK_FUNCTION(4, "UCTS0"), 1322 + MTK_FUNCTION(5, "SCL11"), 1323 + MTK_FUNCTION(6, "MD32_1_GPIO0") 1324 + ), 1325 + MTK_PIN( 1326 + 127, "GPIO127", 1327 + MTK_EINT_FUNCTION(0, 127), 1328 + DRV_GRP4, 1329 + MTK_FUNCTION(0, "GPIO127"), 1330 + MTK_FUNCTION(1, "CMFLASH1"), 1331 + MTK_FUNCTION(2, "PWM_3"), 1332 + MTK_FUNCTION(3, "TP_URTS1_AO"), 1333 + MTK_FUNCTION(4, "URTS0"), 1334 + MTK_FUNCTION(5, "SDA11"), 1335 + MTK_FUNCTION(6, "MD32_1_GPIO1") 1336 + ), 1337 + MTK_PIN( 1338 + 128, "GPIO128", 1339 + MTK_EINT_FUNCTION(0, 128), 1340 + DRV_GRP4, 1341 + MTK_FUNCTION(0, "GPIO128"), 1342 + MTK_FUNCTION(1, "CMFLASH2"), 1343 + MTK_FUNCTION(2, "PWM_0"), 1344 + MTK_FUNCTION(3, "TP_UCTS2_AO"), 1345 + MTK_FUNCTION(4, "UCTS1"), 1346 + MTK_FUNCTION(5, "SCL12"), 1347 + MTK_FUNCTION(6, "MD32_1_GPIO2") 1348 + ), 1349 + MTK_PIN( 1350 + 129, "GPIO129", 1351 + MTK_EINT_FUNCTION(0, 129), 1352 + DRV_GRP4, 1353 + MTK_FUNCTION(0, "GPIO129"), 1354 + MTK_FUNCTION(1, "CMFLASH3"), 1355 + MTK_FUNCTION(2, "PWM_1"), 1356 + MTK_FUNCTION(3, "TP_URTS2_AO"), 1357 + MTK_FUNCTION(4, "URTS1"), 1358 + MTK_FUNCTION(5, "SDA12") 1359 + ), 1360 + MTK_PIN( 1361 + 130, "GPIO130", 1362 + MTK_EINT_FUNCTION(0, 130), 1363 + DRV_GRP4, 1364 + MTK_FUNCTION(0, "GPIO130"), 1365 + MTK_FUNCTION(1, "CMVREF0"), 1366 + MTK_FUNCTION(2, "ANT_SEL10"), 1367 + MTK_FUNCTION(3, "SCP_JTAG0_TDO"), 1368 + MTK_FUNCTION(4, "MD32_0_JTAG_TDO"), 1369 + MTK_FUNCTION(5, "SCL11"), 1370 + MTK_FUNCTION(6, "CONN_WF_MCU_TDO"), 1371 + MTK_FUNCTION(7, "DBG_MON_A23") 1372 + ), 1373 + MTK_PIN( 1374 + 131, "GPIO131", 1375 + MTK_EINT_FUNCTION(0, 131), 1376 + DRV_GRP4, 1377 + MTK_FUNCTION(0, "GPIO131"), 1378 + MTK_FUNCTION(1, "CMVREF1"), 1379 + MTK_FUNCTION(2, "ANT_SEL11"), 1380 + MTK_FUNCTION(3, "SCP_JTAG0_TDI"), 1381 + MTK_FUNCTION(4, "MD32_0_JTAG_TDI"), 1382 + MTK_FUNCTION(5, "SDA11"), 1383 + MTK_FUNCTION(6, "CONN_WF_MCU_TDI"), 1384 + MTK_FUNCTION(7, "DBG_MON_A26") 1385 + ), 1386 + MTK_PIN( 1387 + 132, "GPIO132", 1388 + MTK_EINT_FUNCTION(0, 132), 1389 + DRV_GRP4, 1390 + MTK_FUNCTION(0, "GPIO132"), 1391 + MTK_FUNCTION(1, "CMVREF2"), 1392 + MTK_FUNCTION(2, "ANT_SEL12"), 1393 + MTK_FUNCTION(3, "SCP_JTAG0_TMS"), 1394 + MTK_FUNCTION(4, "MD32_0_JTAG_TMS"), 1395 + MTK_FUNCTION(6, "CONN_WF_MCU_TMS"), 1396 + MTK_FUNCTION(7, "DBG_MON_A28") 1397 + ), 1398 + MTK_PIN( 1399 + 133, "GPIO133", 1400 + MTK_EINT_FUNCTION(0, 133), 1401 + DRV_GRP4, 1402 + MTK_FUNCTION(0, "GPIO133"), 1403 + MTK_FUNCTION(1, "CMVREF3"), 1404 + MTK_FUNCTION(2, "GPS_L1_ELNA_EN"), 1405 + MTK_FUNCTION(3, "SCP_JTAG0_TCK"), 1406 + MTK_FUNCTION(4, "MD32_0_JTAG_TCK"), 1407 + MTK_FUNCTION(6, "CONN_WF_MCU_TCK"), 1408 + MTK_FUNCTION(7, "DBG_MON_A24") 1409 + ), 1410 + MTK_PIN( 1411 + 134, "GPIO134", 1412 + MTK_EINT_FUNCTION(0, 134), 1413 + DRV_GRP4, 1414 + MTK_FUNCTION(0, "GPIO134"), 1415 + MTK_FUNCTION(1, "CMVREF4"), 1416 + MTK_FUNCTION(2, "GPS_L5_ELNA_EN"), 1417 + MTK_FUNCTION(3, "SCP_JTAG0_TRSTN"), 1418 + MTK_FUNCTION(4, "MD32_0_JTAG_TRST"), 1419 + MTK_FUNCTION(6, "CONN_WF_MCU_TRST_B"), 1420 + MTK_FUNCTION(7, "DBG_MON_A27") 1421 + ), 1422 + MTK_PIN( 1423 + 135, "GPIO135", 1424 + MTK_EINT_FUNCTION(0, 135), 1425 + DRV_GRP4, 1426 + MTK_FUNCTION(0, "GPIO135"), 1427 + MTK_FUNCTION(1, "PWM_0"), 1428 + MTK_FUNCTION(2, "SRCLKENAI1"), 1429 + MTK_FUNCTION(3, "MD_URXD0"), 1430 + MTK_FUNCTION(4, "MD32_0_RXD"), 1431 + MTK_FUNCTION(5, "CONN_TCXOENA_REQ"), 1432 + MTK_FUNCTION(6, "CONN_WF_MCU_DBGI_N"), 1433 + MTK_FUNCTION(7, "DBG_MON_A29") 1434 + ), 1435 + MTK_PIN( 1436 + 136, "GPIO136", 1437 + MTK_EINT_FUNCTION(0, 136), 1438 + DRV_GRP4, 1439 + MTK_FUNCTION(0, "GPIO136"), 1440 + MTK_FUNCTION(1, "CMMCLK3"), 1441 + MTK_FUNCTION(2, "CLKM1"), 1442 + MTK_FUNCTION(3, "MD_UTXD0"), 1443 + MTK_FUNCTION(4, "MD32_0_TXD"), 1444 + MTK_FUNCTION(5, "CONN_BT_TXD"), 1445 + MTK_FUNCTION(6, "CONN_WF_MCU_DBGACK_N"), 1446 + MTK_FUNCTION(7, "DBG_MON_A25") 1447 + ), 1448 + MTK_PIN( 1449 + 137, "GPIO137", 1450 + MTK_EINT_FUNCTION(0, 137), 1451 + DRV_GRP4, 1452 + MTK_FUNCTION(0, "GPIO137"), 1453 + MTK_FUNCTION(1, "CMMCLK4"), 1454 + MTK_FUNCTION(2, "CLKM2"), 1455 + MTK_FUNCTION(3, "MD_URXD1"), 1456 + MTK_FUNCTION(4, "MD32_1_RXD"), 1457 + MTK_FUNCTION(5, "ILDO_DOUT0"), 1458 + MTK_FUNCTION(6, "CONN_BGF_UART0_RXD") 1459 + ), 1460 + MTK_PIN( 1461 + 138, "GPIO138", 1462 + MTK_EINT_FUNCTION(0, 138), 1463 + DRV_GRP4, 1464 + MTK_FUNCTION(0, "GPIO138"), 1465 + MTK_FUNCTION(1, "CMMCLK5"), 1466 + MTK_FUNCTION(2, "CLKM3"), 1467 + MTK_FUNCTION(3, "MD_UTXD1"), 1468 + MTK_FUNCTION(4, "MD32_1_TXD"), 1469 + MTK_FUNCTION(5, "ILDO_DOUT1"), 1470 + MTK_FUNCTION(6, "CONN_BGF_UART0_TXD") 1471 + ), 1472 + MTK_PIN( 1473 + 139, "GPIO139", 1474 + MTK_EINT_FUNCTION(0, 139), 1475 + DRV_GRP4, 1476 + MTK_FUNCTION(0, "GPIO139"), 1477 + MTK_FUNCTION(1, "SCL4") 1478 + ), 1479 + MTK_PIN( 1480 + 140, "GPIO140", 1481 + MTK_EINT_FUNCTION(0, 140), 1482 + DRV_GRP4, 1483 + MTK_FUNCTION(0, "GPIO140"), 1484 + MTK_FUNCTION(1, "SDA4") 1485 + ), 1486 + MTK_PIN( 1487 + 141, "GPIO141", 1488 + MTK_EINT_FUNCTION(0, 141), 1489 + DRV_GRP4, 1490 + MTK_FUNCTION(0, "GPIO141"), 1491 + MTK_FUNCTION(1, "SCL2") 1492 + ), 1493 + MTK_PIN( 1494 + 142, "GPIO142", 1495 + MTK_EINT_FUNCTION(0, 142), 1496 + DRV_GRP4, 1497 + MTK_FUNCTION(0, "GPIO142"), 1498 + MTK_FUNCTION(1, "SDA2") 1499 + ), 1500 + MTK_PIN( 1501 + 143, "GPIO143", 1502 + MTK_EINT_FUNCTION(0, 143), 1503 + DRV_GRP4, 1504 + MTK_FUNCTION(0, "GPIO143"), 1505 + MTK_FUNCTION(1, "CMVREF0"), 1506 + MTK_FUNCTION(2, "SPI3_CLK"), 1507 + MTK_FUNCTION(3, "ADSP_JTAG1_TDO"), 1508 + MTK_FUNCTION(4, "SCP_JTAG1_TDO"), 1509 + MTK_FUNCTION(5, "MD32_1_JTAG_TDO"), 1510 + MTK_FUNCTION(6, "CONN_BGF_DSP_L5_JDO") 1511 + ), 1512 + MTK_PIN( 1513 + 144, "GPIO144", 1514 + MTK_EINT_FUNCTION(0, 144), 1515 + DRV_GRP4, 1516 + MTK_FUNCTION(0, "GPIO144"), 1517 + MTK_FUNCTION(1, "CMVREF1"), 1518 + MTK_FUNCTION(2, "SPI3_CSB"), 1519 + MTK_FUNCTION(3, "ADSP_JTAG1_TDI"), 1520 + MTK_FUNCTION(4, "SCP_JTAG1_TDI"), 1521 + MTK_FUNCTION(5, "MD32_1_JTAG_TDI"), 1522 + MTK_FUNCTION(6, "CONN_BGF_DSP_L5_JDI") 1523 + ), 1524 + MTK_PIN( 1525 + 145, "GPIO145", 1526 + MTK_EINT_FUNCTION(0, 145), 1527 + DRV_GRP4, 1528 + MTK_FUNCTION(0, "GPIO145"), 1529 + MTK_FUNCTION(1, "CMVREF2"), 1530 + MTK_FUNCTION(2, "SPI3_MI"), 1531 + MTK_FUNCTION(3, "ADSP_JTAG1_TMS"), 1532 + MTK_FUNCTION(4, "SCP_JTAG1_TMS"), 1533 + MTK_FUNCTION(5, "MD32_1_JTAG_TMS"), 1534 + MTK_FUNCTION(6, "CONN_BGF_DSP_L5_JMS") 1535 + ), 1536 + MTK_PIN( 1537 + 146, "GPIO146", 1538 + MTK_EINT_FUNCTION(0, 146), 1539 + DRV_GRP4, 1540 + MTK_FUNCTION(0, "GPIO146"), 1541 + MTK_FUNCTION(1, "CMVREF3"), 1542 + MTK_FUNCTION(2, "SPI3_MO"), 1543 + MTK_FUNCTION(3, "ADSP_JTAG1_TCK"), 1544 + MTK_FUNCTION(4, "SCP_JTAG1_TCK"), 1545 + MTK_FUNCTION(5, "MD32_1_JTAG_TCK"), 1546 + MTK_FUNCTION(6, "CONN_BGF_DSP_L5_JCK") 1547 + ), 1548 + MTK_PIN( 1549 + 147, "GPIO147", 1550 + MTK_EINT_FUNCTION(0, 147), 1551 + DRV_GRP4, 1552 + MTK_FUNCTION(0, "GPIO147"), 1553 + MTK_FUNCTION(1, "CMVREF4"), 1554 + MTK_FUNCTION(2, "EXT_FRAME_SYNC"), 1555 + MTK_FUNCTION(3, "ADSP_JTAG1_TRSTN"), 1556 + MTK_FUNCTION(4, "SCP_JTAG1_TRSTN"), 1557 + MTK_FUNCTION(5, "MD32_1_JTAG_TRST"), 1558 + MTK_FUNCTION(6, "CONN_BGF_DSP_L5_JINTP") 1559 + ), 1560 + MTK_PIN( 1561 + 148, "GPIO148", 1562 + MTK_EINT_FUNCTION(0, 148), 1563 + DRV_GRP4, 1564 + MTK_FUNCTION(0, "GPIO148"), 1565 + MTK_FUNCTION(1, "PWM_1"), 1566 + MTK_FUNCTION(2, "AGPS_SYNC"), 1567 + MTK_FUNCTION(3, "CMMCLK5"), 1568 + MTK_FUNCTION(6, "CONN_WF_MCU_AICE_TMSC") 1569 + ), 1570 + MTK_PIN( 1571 + 149, "GPIO149", 1572 + MTK_EINT_FUNCTION(0, 149), 1573 + DRV_GRP4, 1574 + MTK_FUNCTION(0, "GPIO149"), 1575 + MTK_FUNCTION(1, "CMMCLK0"), 1576 + MTK_FUNCTION(2, "CLKM0"), 1577 + MTK_FUNCTION(3, "MD32_0_GPIO0"), 1578 + MTK_FUNCTION(6, "CONN_WF_MCU_AICE_TCKC") 1579 + ), 1580 + MTK_PIN( 1581 + 150, "GPIO150", 1582 + MTK_EINT_FUNCTION(0, 150), 1583 + DRV_GRP4, 1584 + MTK_FUNCTION(0, "GPIO150"), 1585 + MTK_FUNCTION(1, "CMMCLK1"), 1586 + MTK_FUNCTION(2, "CLKM1"), 1587 + MTK_FUNCTION(3, "MD32_0_GPIO1"), 1588 + MTK_FUNCTION(6, "CONN_BGF_MCU_AICE_TMSC") 1589 + ), 1590 + MTK_PIN( 1591 + 151, "GPIO151", 1592 + MTK_EINT_FUNCTION(0, 151), 1593 + DRV_GRP4, 1594 + MTK_FUNCTION(0, "GPIO151"), 1595 + MTK_FUNCTION(1, "CMMCLK2"), 1596 + MTK_FUNCTION(2, "CLKM2"), 1597 + MTK_FUNCTION(3, "MD32_0_GPIO2"), 1598 + MTK_FUNCTION(6, "CONN_BGF_MCU_AICE_TCKC") 1599 + ), 1600 + MTK_PIN( 1601 + 152, "GPIO152", 1602 + MTK_EINT_FUNCTION(0, 152), 1603 + DRV_GRP4, 1604 + MTK_FUNCTION(0, "GPIO152"), 1605 + MTK_FUNCTION(1, "KPROW1"), 1606 + MTK_FUNCTION(2, "PWM_2"), 1607 + MTK_FUNCTION(3, "IDDIG"), 1608 + MTK_FUNCTION(4, "DP_TX_HPD"), 1609 + MTK_FUNCTION(5, "DSI1_TE"), 1610 + MTK_FUNCTION(6, "MBISTREADEN_TRIGGER"), 1611 + MTK_FUNCTION(7, "DBG_MON_B2") 1612 + ), 1613 + MTK_PIN( 1614 + 153, "GPIO153", 1615 + MTK_EINT_FUNCTION(0, 153), 1616 + DRV_GRP4, 1617 + MTK_FUNCTION(0, "GPIO153"), 1618 + MTK_FUNCTION(1, "KPROW0"), 1619 + MTK_FUNCTION(7, "DBG_MON_B1") 1620 + ), 1621 + MTK_PIN( 1622 + 154, "GPIO154", 1623 + MTK_EINT_FUNCTION(0, 154), 1624 + DRV_GRP4, 1625 + MTK_FUNCTION(0, "GPIO154"), 1626 + MTK_FUNCTION(1, "KPCOL0"), 1627 + MTK_FUNCTION(7, "DBG_MON_A32") 1628 + ), 1629 + MTK_PIN( 1630 + 155, "GPIO155", 1631 + MTK_EINT_FUNCTION(0, 155), 1632 + DRV_GRP4, 1633 + MTK_FUNCTION(0, "GPIO155"), 1634 + MTK_FUNCTION(1, "KPCOL1"), 1635 + MTK_FUNCTION(2, "PWM_3"), 1636 + MTK_FUNCTION(3, "USB_DRVVBUS"), 1637 + MTK_FUNCTION(4, "CONN_TCXOENA_REQ"), 1638 + MTK_FUNCTION(5, "LCM1_RST"), 1639 + MTK_FUNCTION(6, "MBISTWRITEEN_TRIGGER"), 1640 + MTK_FUNCTION(7, "DBG_MON_B0") 1641 + ), 1642 + MTK_PIN( 1643 + 156, "GPIO156", 1644 + MTK_EINT_FUNCTION(0, 156), 1645 + DRV_GRP4, 1646 + MTK_FUNCTION(0, "GPIO156"), 1647 + MTK_FUNCTION(1, "SPI1_A_CLK"), 1648 + MTK_FUNCTION(2, "SCP_SPI1_A_CK"), 1649 + MTK_FUNCTION(3, "MRG_CLK"), 1650 + MTK_FUNCTION(4, "AGPS_SYNC"), 1651 + MTK_FUNCTION(5, "SCL12"), 1652 + MTK_FUNCTION(7, "DBG_MON_B3") 1653 + ), 1654 + MTK_PIN( 1655 + 157, "GPIO157", 1656 + MTK_EINT_FUNCTION(0, 157), 1657 + DRV_GRP4, 1658 + MTK_FUNCTION(0, "GPIO157"), 1659 + MTK_FUNCTION(1, "SPI1_A_CSB"), 1660 + MTK_FUNCTION(2, "SCP_SPI1_A_CS"), 1661 + MTK_FUNCTION(3, "MRG_SYNC"), 1662 + MTK_FUNCTION(4, "EXT_FRAME_SYNC"), 1663 + MTK_FUNCTION(5, "SDA12"), 1664 + MTK_FUNCTION(7, "DBG_MON_B4") 1665 + ), 1666 + MTK_PIN( 1667 + 158, "GPIO158", 1668 + MTK_EINT_FUNCTION(0, 158), 1669 + DRV_GRP4, 1670 + MTK_FUNCTION(0, "GPIO158"), 1671 + MTK_FUNCTION(1, "SPI1_A_MI"), 1672 + MTK_FUNCTION(2, "SCP_SPI1_A_MI"), 1673 + MTK_FUNCTION(3, "MRG_DI"), 1674 + MTK_FUNCTION(4, "PTA_RXD"), 1675 + MTK_FUNCTION(5, "SCL13"), 1676 + MTK_FUNCTION(7, "DBG_MON_B5") 1677 + ), 1678 + MTK_PIN( 1679 + 159, "GPIO159", 1680 + MTK_EINT_FUNCTION(0, 159), 1681 + DRV_GRP4, 1682 + MTK_FUNCTION(0, "GPIO159"), 1683 + MTK_FUNCTION(1, "SPI1_A_MO"), 1684 + MTK_FUNCTION(2, "SCP_SPI1_A_MO"), 1685 + MTK_FUNCTION(3, "MRG_DO"), 1686 + MTK_FUNCTION(4, "PTA_TXD"), 1687 + MTK_FUNCTION(5, "SDA13"), 1688 + MTK_FUNCTION(7, "DBG_MON_B6") 1689 + ), 1690 + MTK_PIN( 1691 + 160, "GPIO160", 1692 + MTK_EINT_FUNCTION(0, 160), 1693 + DRV_GRP4, 1694 + MTK_FUNCTION(0, "GPIO160"), 1695 + MTK_FUNCTION(1, "SCL3"), 1696 + MTK_FUNCTION(2, "SCP_SCL0"), 1697 + MTK_FUNCTION(3, "SCP_SCL1") 1698 + ), 1699 + MTK_PIN( 1700 + 161, "GPIO161", 1701 + MTK_EINT_FUNCTION(0, 161), 1702 + DRV_GRP4, 1703 + MTK_FUNCTION(0, "GPIO161"), 1704 + MTK_FUNCTION(1, "SDA3"), 1705 + MTK_FUNCTION(2, "SCP_SDA0"), 1706 + MTK_FUNCTION(3, "SCP_SDA1") 1707 + ), 1708 + MTK_PIN( 1709 + 162, "GPIO162", 1710 + MTK_EINT_FUNCTION(0, 162), 1711 + DRV_GRP4, 1712 + MTK_FUNCTION(0, "GPIO162"), 1713 + MTK_FUNCTION(1, "ANT_SEL0"), 1714 + MTK_FUNCTION(2, "GPS_L1_ELNA_EN"), 1715 + MTK_FUNCTION(7, "DBG_MON_B7") 1716 + ), 1717 + MTK_PIN( 1718 + 163, "GPIO163", 1719 + MTK_EINT_FUNCTION(0, 163), 1720 + DRV_GRP4, 1721 + MTK_FUNCTION(0, "GPIO163"), 1722 + MTK_FUNCTION(1, "ANT_SEL1"), 1723 + MTK_FUNCTION(2, "GPS_L5_ELNA_EN"), 1724 + MTK_FUNCTION(7, "DBG_MON_B8") 1725 + ), 1726 + MTK_PIN( 1727 + 164, "GPIO164", 1728 + MTK_EINT_FUNCTION(0, 164), 1729 + DRV_GRP4, 1730 + MTK_FUNCTION(0, "GPIO164"), 1731 + MTK_FUNCTION(1, "ANT_SEL2"), 1732 + MTK_FUNCTION(2, "SCP_SPI1_B_CK"), 1733 + MTK_FUNCTION(3, "TP_URXD1_AO"), 1734 + MTK_FUNCTION(5, "UCTS0"), 1735 + MTK_FUNCTION(7, "DBG_MON_B9") 1736 + ), 1737 + MTK_PIN( 1738 + 165, "GPIO165", 1739 + MTK_EINT_FUNCTION(0, 165), 1740 + DRV_GRP4, 1741 + MTK_FUNCTION(0, "GPIO165"), 1742 + MTK_FUNCTION(1, "ANT_SEL3"), 1743 + MTK_FUNCTION(2, "SCP_SPI1_B_CS"), 1744 + MTK_FUNCTION(3, "TP_UTXD1_AO"), 1745 + MTK_FUNCTION(4, "CONN_TCXOENA_REQ"), 1746 + MTK_FUNCTION(5, "URTS0"), 1747 + MTK_FUNCTION(7, "DBG_MON_B10") 1748 + ), 1749 + MTK_PIN( 1750 + 166, "GPIO166", 1751 + MTK_EINT_FUNCTION(0, 166), 1752 + DRV_GRP4, 1753 + MTK_FUNCTION(0, "GPIO166"), 1754 + MTK_FUNCTION(1, "ANT_SEL4"), 1755 + MTK_FUNCTION(2, "SCP_SPI1_B_MI"), 1756 + MTK_FUNCTION(3, "TP_URXD2_AO"), 1757 + MTK_FUNCTION(4, "SRCLKENAI1"), 1758 + MTK_FUNCTION(5, "UCTS1"), 1759 + MTK_FUNCTION(7, "DBG_MON_B11") 1760 + ), 1761 + MTK_PIN( 1762 + 167, "GPIO167", 1763 + MTK_EINT_FUNCTION(0, 167), 1764 + DRV_GRP4, 1765 + MTK_FUNCTION(0, "GPIO167"), 1766 + MTK_FUNCTION(1, "ANT_SEL5"), 1767 + MTK_FUNCTION(2, "SCP_SPI1_B_MO"), 1768 + MTK_FUNCTION(3, "TP_UTXD2_AO"), 1769 + MTK_FUNCTION(4, "SRCLKENAI0"), 1770 + MTK_FUNCTION(5, "URTS1"), 1771 + MTK_FUNCTION(7, "DBG_MON_B12") 1772 + ), 1773 + MTK_PIN( 1774 + 168, "GPIO168", 1775 + MTK_EINT_FUNCTION(0, 168), 1776 + DRV_GRP4, 1777 + MTK_FUNCTION(0, "GPIO168"), 1778 + MTK_FUNCTION(1, "ANT_SEL6"), 1779 + MTK_FUNCTION(2, "SPI0_B_CLK"), 1780 + MTK_FUNCTION(3, "TP_UCTS1_AO"), 1781 + MTK_FUNCTION(4, "KPCOL2"), 1782 + MTK_FUNCTION(5, "MD_UCTS0"), 1783 + MTK_FUNCTION(6, "SCL12"), 1784 + MTK_FUNCTION(7, "DBG_MON_B13") 1785 + ), 1786 + MTK_PIN( 1787 + 169, "GPIO169", 1788 + MTK_EINT_FUNCTION(0, 169), 1789 + DRV_GRP4, 1790 + MTK_FUNCTION(0, "GPIO169"), 1791 + MTK_FUNCTION(1, "ANT_SEL7"), 1792 + MTK_FUNCTION(2, "SPI0_B_CSB"), 1793 + MTK_FUNCTION(3, "TP_URTS1_AO"), 1794 + MTK_FUNCTION(4, "KPROW2"), 1795 + MTK_FUNCTION(5, "MD_URTS0"), 1796 + MTK_FUNCTION(6, "SDA12"), 1797 + MTK_FUNCTION(7, "DBG_MON_B14") 1798 + ), 1799 + MTK_PIN( 1800 + 170, "GPIO170", 1801 + MTK_EINT_FUNCTION(0, 170), 1802 + DRV_GRP4, 1803 + MTK_FUNCTION(0, "GPIO170"), 1804 + MTK_FUNCTION(1, "ANT_SEL8"), 1805 + MTK_FUNCTION(2, "SPI0_B_MI"), 1806 + MTK_FUNCTION(3, "TP_UCTS2_AO"), 1807 + MTK_FUNCTION(4, "SRCLKENAI1"), 1808 + MTK_FUNCTION(5, "MD_UCTS1"), 1809 + MTK_FUNCTION(6, "SCL13") 1810 + ), 1811 + MTK_PIN( 1812 + 171, "GPIO171", 1813 + MTK_EINT_FUNCTION(0, 171), 1814 + DRV_GRP4, 1815 + MTK_FUNCTION(0, "GPIO171"), 1816 + MTK_FUNCTION(1, "ANT_SEL9"), 1817 + MTK_FUNCTION(2, "SPI0_B_MO"), 1818 + MTK_FUNCTION(3, "TP_URTS2_AO"), 1819 + MTK_FUNCTION(4, "SRCLKENAI0"), 1820 + MTK_FUNCTION(5, "MD_URTS1"), 1821 + MTK_FUNCTION(6, "SDA13") 1822 + ), 1823 + MTK_PIN( 1824 + 172, "GPIO172", 1825 + MTK_EINT_FUNCTION(0, 172), 1826 + DRV_GRP4, 1827 + MTK_FUNCTION(0, "GPIO172"), 1828 + MTK_FUNCTION(1, "CONN_TOP_CLK"), 1829 + MTK_FUNCTION(2, "AUXIF_CLK0"), 1830 + MTK_FUNCTION(7, "DBG_MON_B18") 1831 + ), 1832 + MTK_PIN( 1833 + 173, "GPIO173", 1834 + MTK_EINT_FUNCTION(0, 173), 1835 + DRV_GRP4, 1836 + MTK_FUNCTION(0, "GPIO173"), 1837 + MTK_FUNCTION(1, "CONN_TOP_DATA"), 1838 + MTK_FUNCTION(2, "AUXIF_ST0"), 1839 + MTK_FUNCTION(7, "DBG_MON_B19") 1840 + ), 1841 + MTK_PIN( 1842 + 174, "GPIO174", 1843 + MTK_EINT_FUNCTION(0, 174), 1844 + DRV_GRP4, 1845 + MTK_FUNCTION(0, "GPIO174"), 1846 + MTK_FUNCTION(1, "CONN_HRST_B"), 1847 + MTK_FUNCTION(7, "DBG_MON_B17") 1848 + ), 1849 + MTK_PIN( 1850 + 175, "GPIO175", 1851 + MTK_EINT_FUNCTION(0, 175), 1852 + DRV_GRP4, 1853 + MTK_FUNCTION(0, "GPIO175"), 1854 + MTK_FUNCTION(1, "CONN_WB_PTA"), 1855 + MTK_FUNCTION(7, "DBG_MON_B20") 1856 + ), 1857 + MTK_PIN( 1858 + 176, "GPIO176", 1859 + MTK_EINT_FUNCTION(0, 176), 1860 + DRV_GRP4, 1861 + MTK_FUNCTION(0, "GPIO176"), 1862 + MTK_FUNCTION(1, "CONN_BT_CLK"), 1863 + MTK_FUNCTION(2, "AUXIF_CLK1"), 1864 + MTK_FUNCTION(7, "DBG_MON_B15") 1865 + ), 1866 + MTK_PIN( 1867 + 177, "GPIO177", 1868 + MTK_EINT_FUNCTION(0, 177), 1869 + DRV_GRP4, 1870 + MTK_FUNCTION(0, "GPIO177"), 1871 + MTK_FUNCTION(1, "CONN_BT_DATA"), 1872 + MTK_FUNCTION(2, "AUXIF_ST1"), 1873 + MTK_FUNCTION(7, "DBG_MON_B16") 1874 + ), 1875 + MTK_PIN( 1876 + 178, "GPIO178", 1877 + MTK_EINT_FUNCTION(0, 178), 1878 + DRV_GRP4, 1879 + MTK_FUNCTION(0, "GPIO178"), 1880 + MTK_FUNCTION(1, "CONN_WF_CTRL0"), 1881 + MTK_FUNCTION(7, "DBG_MON_B21") 1882 + ), 1883 + MTK_PIN( 1884 + 179, "GPIO179", 1885 + MTK_EINT_FUNCTION(0, 179), 1886 + DRV_GRP4, 1887 + MTK_FUNCTION(0, "GPIO179"), 1888 + MTK_FUNCTION(1, "CONN_WF_CTRL1"), 1889 + MTK_FUNCTION(2, "UFS_MPHY_SCL"), 1890 + MTK_FUNCTION(7, "DBG_MON_B22") 1891 + ), 1892 + MTK_PIN( 1893 + 180, "GPIO180", 1894 + MTK_EINT_FUNCTION(0, 180), 1895 + DRV_GRP4, 1896 + MTK_FUNCTION(0, "GPIO180"), 1897 + MTK_FUNCTION(1, "CONN_WF_CTRL2"), 1898 + MTK_FUNCTION(2, "UFS_MPHY_SDA"), 1899 + MTK_FUNCTION(7, "DBG_MON_B23") 1900 + ), 1901 + MTK_PIN( 1902 + 181, "GPIO181", 1903 + MTK_EINT_FUNCTION(0, 181), 1904 + DRV_GRP4, 1905 + MTK_FUNCTION(0, "GPIO181"), 1906 + MTK_FUNCTION(1, "CONN_WF_CTRL3"), 1907 + MTK_FUNCTION(2, "UFS_UNIPRO_SDA") 1908 + ), 1909 + MTK_PIN( 1910 + 182, "GPIO182", 1911 + MTK_EINT_FUNCTION(0, 182), 1912 + DRV_GRP4, 1913 + MTK_FUNCTION(0, "GPIO182"), 1914 + MTK_FUNCTION(1, "CONN_WF_CTRL4"), 1915 + MTK_FUNCTION(2, "UFS_UNIPRO_SCL") 1916 + ), 1917 + MTK_PIN( 1918 + 183, "GPIO183", 1919 + MTK_EINT_FUNCTION(0, 183), 1920 + DRV_GRP4, 1921 + MTK_FUNCTION(0, "GPIO183"), 1922 + MTK_FUNCTION(1, "MSDC0_CMD") 1923 + ), 1924 + MTK_PIN( 1925 + 184, "GPIO184", 1926 + MTK_EINT_FUNCTION(0, 184), 1927 + DRV_GRP4, 1928 + MTK_FUNCTION(0, "GPIO184"), 1929 + MTK_FUNCTION(1, "MSDC0_DAT0") 1930 + ), 1931 + MTK_PIN( 1932 + 185, "GPIO185", 1933 + MTK_EINT_FUNCTION(0, 185), 1934 + DRV_GRP4, 1935 + MTK_FUNCTION(0, "GPIO185"), 1936 + MTK_FUNCTION(1, "MSDC0_DAT2") 1937 + ), 1938 + MTK_PIN( 1939 + 186, "GPIO186", 1940 + MTK_EINT_FUNCTION(0, 186), 1941 + DRV_GRP4, 1942 + MTK_FUNCTION(0, "GPIO186"), 1943 + MTK_FUNCTION(1, "MSDC0_DAT4") 1944 + ), 1945 + MTK_PIN( 1946 + 187, "GPIO187", 1947 + MTK_EINT_FUNCTION(0, 187), 1948 + DRV_GRP4, 1949 + MTK_FUNCTION(0, "GPIO187"), 1950 + MTK_FUNCTION(1, "MSDC0_DAT6") 1951 + ), 1952 + MTK_PIN( 1953 + 188, "GPIO188", 1954 + MTK_EINT_FUNCTION(0, 188), 1955 + DRV_GRP4, 1956 + MTK_FUNCTION(0, "GPIO188"), 1957 + MTK_FUNCTION(1, "MSDC0_DAT1") 1958 + ), 1959 + MTK_PIN( 1960 + 189, "GPIO189", 1961 + MTK_EINT_FUNCTION(0, 189), 1962 + DRV_GRP4, 1963 + MTK_FUNCTION(0, "GPIO189"), 1964 + MTK_FUNCTION(1, "MSDC0_DAT5") 1965 + ), 1966 + MTK_PIN( 1967 + 190, "GPIO190", 1968 + MTK_EINT_FUNCTION(0, 190), 1969 + DRV_GRP4, 1970 + MTK_FUNCTION(0, "GPIO190"), 1971 + MTK_FUNCTION(1, "MSDC0_DAT7") 1972 + ), 1973 + MTK_PIN( 1974 + 191, "GPIO191", 1975 + MTK_EINT_FUNCTION(0, 191), 1976 + DRV_GRP4, 1977 + MTK_FUNCTION(0, "GPIO191"), 1978 + MTK_FUNCTION(1, "MSDC0_DSL"), 1979 + MTK_FUNCTION(2, "GPS_L1_ELNA_EN"), 1980 + MTK_FUNCTION(3, "IDDIG"), 1981 + MTK_FUNCTION(4, "DMIC_CLK"), 1982 + MTK_FUNCTION(5, "DSI1_TE") 1983 + ), 1984 + MTK_PIN( 1985 + 192, "GPIO192", 1986 + MTK_EINT_FUNCTION(0, 192), 1987 + DRV_GRP4, 1988 + MTK_FUNCTION(0, "GPIO192"), 1989 + MTK_FUNCTION(1, "MSDC0_CLK"), 1990 + MTK_FUNCTION(2, "GPS_L5_ELNA_EN"), 1991 + MTK_FUNCTION(3, "USB_DRVVBUS"), 1992 + MTK_FUNCTION(4, "DMIC_DAT"), 1993 + MTK_FUNCTION(5, "LCM1_RST") 1994 + ), 1995 + MTK_PIN( 1996 + 193, "GPIO193", 1997 + MTK_EINT_FUNCTION(0, 193), 1998 + DRV_GRP4, 1999 + MTK_FUNCTION(0, "GPIO193"), 2000 + MTK_FUNCTION(1, "MSDC0_DAT3") 2001 + ), 2002 + MTK_PIN( 2003 + 194, "GPIO194", 2004 + MTK_EINT_FUNCTION(0, 194), 2005 + DRV_GRP4, 2006 + MTK_FUNCTION(0, "GPIO194"), 2007 + MTK_FUNCTION(1, "MSDC0_RSTB") 2008 + ), 2009 + MTK_PIN( 2010 + 195, "GPIO195", 2011 + MTK_EINT_FUNCTION(0, 195), 2012 + DRV_GRP4, 2013 + MTK_FUNCTION(0, "GPIO195"), 2014 + MTK_FUNCTION(1, "SCP_VREQ_VAO"), 2015 + MTK_FUNCTION(2, "DVFSRC_EXT_REQ") 2016 + ), 2017 + MTK_PIN( 2018 + 196, "GPIO196", 2019 + MTK_EINT_FUNCTION(0, 196), 2020 + DRV_GRP4, 2021 + MTK_FUNCTION(0, "GPIO196"), 2022 + MTK_FUNCTION(1, "AUD_DAT_MOSI2"), 2023 + MTK_FUNCTION(7, "DBG_MON_B27") 2024 + ), 2025 + MTK_PIN( 2026 + 197, "GPIO197", 2027 + MTK_EINT_FUNCTION(0, 197), 2028 + DRV_GRP4, 2029 + MTK_FUNCTION(0, "GPIO197"), 2030 + MTK_FUNCTION(1, "AUD_NLE_MOSI1"), 2031 + MTK_FUNCTION(2, "AUD_CLK_MISO"), 2032 + MTK_FUNCTION(3, "I2S2_MCK"), 2033 + MTK_FUNCTION(4, "I2S6_MCK"), 2034 + MTK_FUNCTION(5, "I2S8_MCK"), 2035 + MTK_FUNCTION(6, "UFS_UNIPRO_SDA"), 2036 + MTK_FUNCTION(7, "DBG_MON_B28") 2037 + ), 2038 + MTK_PIN( 2039 + 198, "GPIO198", 2040 + MTK_EINT_FUNCTION(0, 198), 2041 + DRV_GRP4, 2042 + MTK_FUNCTION(0, "GPIO198"), 2043 + MTK_FUNCTION(1, "AUD_NLE_MOSI0"), 2044 + MTK_FUNCTION(2, "AUD_SYNC_MISO"), 2045 + MTK_FUNCTION(3, "I2S2_BCK"), 2046 + MTK_FUNCTION(4, "I2S6_BCK"), 2047 + MTK_FUNCTION(5, "I2S8_BCK"), 2048 + MTK_FUNCTION(7, "DBG_MON_B29") 2049 + ), 2050 + MTK_PIN( 2051 + 199, "GPIO199", 2052 + MTK_EINT_FUNCTION(0, 199), 2053 + DRV_GRP4, 2054 + MTK_FUNCTION(0, "GPIO199"), 2055 + MTK_FUNCTION(1, "AUD_DAT_MISO2"), 2056 + MTK_FUNCTION(3, "I2S2_DI2"), 2057 + MTK_FUNCTION(7, "DBG_MON_B32") 2058 + ), 2059 + MTK_PIN( 2060 + 200, "GPIO200", 2061 + MTK_EINT_FUNCTION(0, 200), 2062 + DRV_GRP4, 2063 + MTK_FUNCTION(0, "GPIO200"), 2064 + MTK_FUNCTION(1, "SCL6"), 2065 + MTK_FUNCTION(2, "SCP_SCL0"), 2066 + MTK_FUNCTION(3, "SCP_SCL1"), 2067 + MTK_FUNCTION(4, "SCL_6306") 2068 + ), 2069 + MTK_PIN( 2070 + 201, "GPIO201", 2071 + MTK_EINT_FUNCTION(0, 201), 2072 + DRV_GRP4, 2073 + MTK_FUNCTION(0, "GPIO201"), 2074 + MTK_FUNCTION(1, "SDA6"), 2075 + MTK_FUNCTION(2, "SCP_SDA0"), 2076 + MTK_FUNCTION(3, "SCP_SDA1"), 2077 + MTK_FUNCTION(4, "SDA_6306") 2078 + ), 2079 + MTK_PIN( 2080 + 202, "GPIO202", 2081 + MTK_EINT_FUNCTION(0, 202), 2082 + DRV_GRP4, 2083 + MTK_FUNCTION(0, "GPIO202"), 2084 + MTK_FUNCTION(1, "SCL5") 2085 + ), 2086 + MTK_PIN( 2087 + 203, "GPIO203", 2088 + MTK_EINT_FUNCTION(0, 203), 2089 + DRV_GRP4, 2090 + MTK_FUNCTION(0, "GPIO203"), 2091 + MTK_FUNCTION(1, "SDA5") 2092 + ), 2093 + MTK_PIN( 2094 + 204, "GPIO204", 2095 + MTK_EINT_FUNCTION(0, 204), 2096 + DRV_GRP4, 2097 + MTK_FUNCTION(0, "GPIO204"), 2098 + MTK_FUNCTION(1, "SCL0"), 2099 + MTK_FUNCTION(2, "SPI4_C_CLK"), 2100 + MTK_FUNCTION(3, "SPI7_B_CLK") 2101 + ), 2102 + MTK_PIN( 2103 + 205, "GPIO205", 2104 + MTK_EINT_FUNCTION(0, 205), 2105 + DRV_GRP4, 2106 + MTK_FUNCTION(0, "GPIO205"), 2107 + MTK_FUNCTION(1, "SDA0"), 2108 + MTK_FUNCTION(2, "SPI4_C_CSB"), 2109 + MTK_FUNCTION(3, "SPI7_B_CSB") 2110 + ), 2111 + MTK_PIN( 2112 + 206, "GPIO206", 2113 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2114 + DRV_GRP4, 2115 + MTK_FUNCTION(0, "GPIO206"), 2116 + MTK_FUNCTION(1, "SRCLKENA0") 2117 + ), 2118 + MTK_PIN( 2119 + 207, "GPIO207", 2120 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2121 + DRV_GRP4, 2122 + MTK_FUNCTION(0, "GPIO207"), 2123 + MTK_FUNCTION(1, "SRCLKENA1") 2124 + ), 2125 + MTK_PIN( 2126 + 208, "GPIO208", 2127 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2128 + DRV_GRP4, 2129 + MTK_FUNCTION(0, "GPIO208"), 2130 + MTK_FUNCTION(1, "WATCHDOG") 2131 + ), 2132 + MTK_PIN( 2133 + 209, "GPIO209", 2134 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2135 + DRV_GRP4, 2136 + MTK_FUNCTION(0, "GPIO209"), 2137 + MTK_FUNCTION(1, "PWRAP_SPI0_MI"), 2138 + MTK_FUNCTION(2, "PWRAP_SPI0_MO") 2139 + ), 2140 + MTK_PIN( 2141 + 210, "GPIO210", 2142 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2143 + DRV_GRP4, 2144 + MTK_FUNCTION(0, "GPIO210"), 2145 + MTK_FUNCTION(1, "PWRAP_SPI0_CSN") 2146 + ), 2147 + MTK_PIN( 2148 + 211, "GPIO211", 2149 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2150 + DRV_GRP4, 2151 + MTK_FUNCTION(0, "GPIO211"), 2152 + MTK_FUNCTION(1, "PWRAP_SPI0_MO"), 2153 + MTK_FUNCTION(2, "PWRAP_SPI0_MI") 2154 + ), 2155 + MTK_PIN( 2156 + 212, "GPIO212", 2157 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2158 + DRV_GRP4, 2159 + MTK_FUNCTION(0, "GPIO212"), 2160 + MTK_FUNCTION(1, "PWRAP_SPI0_CK") 2161 + ), 2162 + MTK_PIN( 2163 + 213, "GPIO213", 2164 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2165 + DRV_GRP4, 2166 + MTK_FUNCTION(0, "GPIO213"), 2167 + MTK_FUNCTION(1, "RTC32K_CK") 2168 + ), 2169 + MTK_PIN( 2170 + 214, "GPIO214", 2171 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2172 + DRV_GRP4, 2173 + MTK_FUNCTION(0, "GPIO214"), 2174 + MTK_FUNCTION(1, "AUD_CLK_MOSI"), 2175 + MTK_FUNCTION(3, "I2S1_MCK"), 2176 + MTK_FUNCTION(4, "I2S7_MCK"), 2177 + MTK_FUNCTION(5, "I2S9_MCK"), 2178 + MTK_FUNCTION(6, "UFS_UNIPRO_SCL") 2179 + ), 2180 + MTK_PIN( 2181 + 215, "GPIO215", 2182 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2183 + DRV_GRP4, 2184 + MTK_FUNCTION(0, "GPIO215"), 2185 + MTK_FUNCTION(1, "AUD_SYNC_MOSI"), 2186 + MTK_FUNCTION(3, "I2S1_BCK"), 2187 + MTK_FUNCTION(4, "I2S7_BCK"), 2188 + MTK_FUNCTION(5, "I2S9_BCK"), 2189 + MTK_FUNCTION(7, "DBG_MON_B24") 2190 + ), 2191 + MTK_PIN( 2192 + 216, "GPIO216", 2193 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2194 + DRV_GRP4, 2195 + MTK_FUNCTION(0, "GPIO216"), 2196 + MTK_FUNCTION(1, "AUD_DAT_MOSI0"), 2197 + MTK_FUNCTION(3, "I2S1_LRCK"), 2198 + MTK_FUNCTION(4, "I2S7_LRCK"), 2199 + MTK_FUNCTION(5, "I2S9_LRCK"), 2200 + MTK_FUNCTION(7, "DBG_MON_B25") 2201 + ), 2202 + MTK_PIN( 2203 + 217, "GPIO217", 2204 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2205 + DRV_GRP4, 2206 + MTK_FUNCTION(0, "GPIO217"), 2207 + MTK_FUNCTION(1, "AUD_DAT_MOSI1"), 2208 + MTK_FUNCTION(3, "I2S1_DO"), 2209 + MTK_FUNCTION(4, "I2S7_DO"), 2210 + MTK_FUNCTION(5, "I2S9_DO"), 2211 + MTK_FUNCTION(6, "UFS_MPHY_SDA"), 2212 + MTK_FUNCTION(7, "DBG_MON_B26") 2213 + ), 2214 + MTK_PIN( 2215 + 218, "GPIO218", 2216 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2217 + DRV_GRP4, 2218 + MTK_FUNCTION(0, "GPIO218"), 2219 + MTK_FUNCTION(1, "AUD_DAT_MISO0"), 2220 + MTK_FUNCTION(2, "VOW_DAT_MISO"), 2221 + MTK_FUNCTION(3, "I2S2_LRCK"), 2222 + MTK_FUNCTION(4, "I2S6_LRCK"), 2223 + MTK_FUNCTION(5, "I2S8_LRCK"), 2224 + MTK_FUNCTION(7, "DBG_MON_B30") 2225 + ), 2226 + MTK_PIN( 2227 + 219, "GPIO219", 2228 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2229 + DRV_GRP4, 2230 + MTK_FUNCTION(0, "GPIO219"), 2231 + MTK_FUNCTION(1, "AUD_DAT_MISO1"), 2232 + MTK_FUNCTION(2, "VOW_CLK_MISO"), 2233 + MTK_FUNCTION(3, "I2S2_DI"), 2234 + MTK_FUNCTION(4, "I2S6_DI"), 2235 + MTK_FUNCTION(5, "I2S8_DI"), 2236 + MTK_FUNCTION(6, "UFS_MPHY_SCL"), 2237 + MTK_FUNCTION(7, "DBG_MON_B31") 2238 + ), 2239 + MTK_PIN( 2240 + 220, "GPIO220", 2241 + MTK_EINT_FUNCTION(0, 216), 2242 + DRV_GRP4, 2243 + MTK_FUNCTION(0, NULL) 2244 + ), 2245 + MTK_PIN( 2246 + 221, "GPIO221", 2247 + MTK_EINT_FUNCTION(0, 217), 2248 + DRV_GRP4, 2249 + MTK_FUNCTION(0, NULL) 2250 + ), 2251 + MTK_PIN( 2252 + 222, "GPIO222", 2253 + MTK_EINT_FUNCTION(0, 218), 2254 + DRV_GRP4, 2255 + MTK_FUNCTION(0, NULL) 2256 + ), 2257 + MTK_PIN( 2258 + 223, "GPIO223", 2259 + MTK_EINT_FUNCTION(0, 219), 2260 + DRV_GRP4, 2261 + MTK_FUNCTION(0, NULL) 2262 + ), 2263 + MTK_PIN( 2264 + 224, "GPIO224", 2265 + MTK_EINT_FUNCTION(0, 220), 2266 + DRV_GRP4, 2267 + MTK_FUNCTION(0, NULL) 2268 + ), 2269 + MTK_PIN( 2270 + 225, "GPIO225", 2271 + MTK_EINT_FUNCTION(0, 222), 2272 + DRV_GRP4, 2273 + MTK_FUNCTION(0, NULL) 2274 + ), 2275 + MTK_PIN( 2276 + 226, "GPIO226", 2277 + MTK_EINT_FUNCTION(0, 223), 2278 + DRV_GRP4, 2279 + MTK_FUNCTION(0, NULL) 2280 + ), 2281 + }; 2282 + 2283 + #endif /* __PINCTRL_MTK_MT6893_H */
+3085
drivers/pinctrl/mediatek/pinctrl-mtk-mt8196.h
··· 1 + /* SPDX-License-Identifier: GPL-2.0 */ 2 + /* 3 + * Copyright (C) 2025 MediaTek Inc. 4 + * Author: Guodong Liu <Guodong.Liu@mediatek.com> 5 + */ 6 + 7 + #ifndef __PINCTRL_MTK_MT8196_H 8 + #define __PINCTRL_MTK_MT8196_H 9 + 10 + #include "pinctrl-paris.h" 11 + #define EINT_INVALID_BASE 0xff 12 + 13 + static const struct mtk_pin_desc mtk_pins_mt8196[] = { 14 + MTK_PIN( 15 + 0, "GPIO0", 16 + MTK_EINT_FUNCTION(0, 0), 17 + DRV_GRP4, 18 + MTK_FUNCTION(0, "GPIO0"), 19 + MTK_FUNCTION(1, "DMIC1_CLK"), 20 + MTK_FUNCTION(3, "SPI3_A_MO"), 21 + MTK_FUNCTION(4, "FMI2S_B_LRCK"), 22 + MTK_FUNCTION(5, "SCP_DMIC1_CLK"), 23 + MTK_FUNCTION(6, "TP_GPIO14_AO") 24 + ), 25 + MTK_PIN( 26 + 1, "GPIO1", 27 + MTK_EINT_FUNCTION(0, 1), 28 + DRV_GRP4, 29 + MTK_FUNCTION(0, "GPIO1"), 30 + MTK_FUNCTION(1, "DMIC1_DAT"), 31 + MTK_FUNCTION(2, "SRCLKENAI1"), 32 + MTK_FUNCTION(3, "SPI3_A_MI"), 33 + MTK_FUNCTION(4, "FMI2S_B_DI"), 34 + MTK_FUNCTION(5, "SCP_DMIC1_DAT"), 35 + MTK_FUNCTION(6, "TP_GPIO15_AO") 36 + ), 37 + MTK_PIN( 38 + 2, "GPIO2", 39 + MTK_EINT_FUNCTION(0, 2), 40 + DRV_GRP4, 41 + MTK_FUNCTION(0, "GPIO2"), 42 + MTK_FUNCTION(1, "PWM_VLP"), 43 + MTK_FUNCTION(2, "DSI_HSYNC"), 44 + MTK_FUNCTION(5, "RG_TSFDC_LDO_EN"), 45 + MTK_FUNCTION(6, "TP_GPIO8_AO") 46 + ), 47 + MTK_PIN( 48 + 3, "GPIO3", 49 + MTK_EINT_FUNCTION(0, 3), 50 + DRV_GRP4, 51 + MTK_FUNCTION(0, "GPIO3"), 52 + MTK_FUNCTION(1, "MD_INT0"), 53 + MTK_FUNCTION(2, "DSI1_HSYNC"), 54 + MTK_FUNCTION(5, "DA_TSFDC_LDO_MODE"), 55 + MTK_FUNCTION(6, "TP_GPIO9_AO") 56 + ), 57 + MTK_PIN( 58 + 4, "GPIO4", 59 + MTK_EINT_FUNCTION(0, 4), 60 + DRV_GRP4, 61 + MTK_FUNCTION(0, "GPIO4"), 62 + MTK_FUNCTION(1, "DISP_PWM1"), 63 + MTK_FUNCTION(2, "MD32_0_GPIO0") 64 + ), 65 + MTK_PIN( 66 + 5, "GPIO5", 67 + MTK_EINT_FUNCTION(0, 5), 68 + DRV_GRP4, 69 + MTK_FUNCTION(0, "GPIO5"), 70 + MTK_FUNCTION(1, "LCM1_RST"), 71 + MTK_FUNCTION(2, "SPI7_A_CLK") 72 + ), 73 + MTK_PIN( 74 + 6, "GPIO6", 75 + MTK_EINT_FUNCTION(0, 6), 76 + DRV_GRP4, 77 + MTK_FUNCTION(0, "GPIO6"), 78 + MTK_FUNCTION(1, "DSI1_TE"), 79 + MTK_FUNCTION(2, "SPI7_A_CSB") 80 + ), 81 + MTK_PIN( 82 + 7, "GPIO7", 83 + MTK_EINT_FUNCTION(0, 7), 84 + DRV_GRP4, 85 + MTK_FUNCTION(0, "GPIO7"), 86 + MTK_FUNCTION(2, "SPI7_A_MO"), 87 + MTK_FUNCTION(3, "GPS_PPS0") 88 + ), 89 + MTK_PIN( 90 + 8, "GPIO8", 91 + MTK_EINT_FUNCTION(0, 8), 92 + DRV_GRP4, 93 + MTK_FUNCTION(0, "GPIO8"), 94 + MTK_FUNCTION(2, "SPI7_A_MI"), 95 + MTK_FUNCTION(3, "EDP_TX_HPD") 96 + ), 97 + MTK_PIN( 98 + 9, "GPIO9", 99 + MTK_EINT_FUNCTION(0, 9), 100 + DRV_GRP4, 101 + MTK_FUNCTION(0, "GPIO9"), 102 + MTK_FUNCTION(3, "I2SIN1_LRCK"), 103 + MTK_FUNCTION(7, "RG_TSFDC_LDO_REFSEL0") 104 + ), 105 + MTK_PIN( 106 + 10, "GPIO10", 107 + MTK_EINT_FUNCTION(0, 10), 108 + DRV_GRP4, 109 + MTK_FUNCTION(0, "GPIO10"), 110 + MTK_FUNCTION(3, "I2SOUT1_DO"), 111 + MTK_FUNCTION(7, "RG_TSFDC_LDO_REFSEL1") 112 + ), 113 + MTK_PIN( 114 + 11, "GPIO11", 115 + MTK_EINT_FUNCTION(0, 11), 116 + DRV_GRP4, 117 + MTK_FUNCTION(0, "GPIO11"), 118 + MTK_FUNCTION(4, "FMI2S_B_BCK"), 119 + MTK_FUNCTION(7, "DBG_MON_A30") 120 + ), 121 + MTK_PIN( 122 + 12, "GPIO12", 123 + MTK_EINT_FUNCTION(0, 12), 124 + DRV_GRP4, 125 + MTK_FUNCTION(0, "GPIO12"), 126 + MTK_FUNCTION(3, "I2SIN1_DI_B") 127 + ), 128 + MTK_PIN( 129 + 13, "GPIO13", 130 + MTK_EINT_FUNCTION(0, 13), 131 + DRV_GRP4, 132 + MTK_FUNCTION(0, "GPIO13"), 133 + MTK_FUNCTION(1, "EDP_TX_HPD"), 134 + MTK_FUNCTION(2, "GPS_PPS1") 135 + ), 136 + MTK_PIN( 137 + 14, "GPIO14", 138 + MTK_EINT_FUNCTION(0, 14), 139 + DRV_GRP4, 140 + MTK_FUNCTION(0, "GPIO14"), 141 + MTK_FUNCTION(1, "SRCLKENA2"), 142 + MTK_FUNCTION(2, "DSI2_TE"), 143 + MTK_FUNCTION(3, "SPMI_P_TRIG_FLAG"), 144 + MTK_FUNCTION(5, "MD_INT3"), 145 + MTK_FUNCTION(6, "TP_GPIO8_AO") 146 + ), 147 + MTK_PIN( 148 + 15, "GPIO15", 149 + MTK_EINT_FUNCTION(0, 15), 150 + DRV_GRP4, 151 + MTK_FUNCTION(0, "GPIO15"), 152 + MTK_FUNCTION(1, "SRCLKENAI0"), 153 + MTK_FUNCTION(2, "SPMI_M_TRIG_FLAG"), 154 + MTK_FUNCTION(3, "UCTS0"), 155 + MTK_FUNCTION(4, "MD_INT4"), 156 + MTK_FUNCTION(5, "I2SOUT2_DO"), 157 + MTK_FUNCTION(6, "TP_GPIO9_AO") 158 + ), 159 + MTK_PIN( 160 + 16, "GPIO16", 161 + MTK_EINT_FUNCTION(0, 16), 162 + DRV_GRP4, 163 + MTK_FUNCTION(0, "GPIO16"), 164 + MTK_FUNCTION(1, "SRCLKENAI1"), 165 + MTK_FUNCTION(2, "DP_TX_HPD"), 166 + MTK_FUNCTION(3, "URTS0"), 167 + MTK_FUNCTION(4, "GPS_L5_ELNA_EN"), 168 + MTK_FUNCTION(5, "KPROW2"), 169 + MTK_FUNCTION(6, "TP_GPIO10_AO") 170 + ), 171 + MTK_PIN( 172 + 17, "GPIO17", 173 + MTK_EINT_FUNCTION(0, 17), 174 + DRV_GRP4, 175 + MTK_FUNCTION(0, "GPIO17"), 176 + MTK_FUNCTION(1, "MD_INT0"), 177 + MTK_FUNCTION(2, "DP_OC_EN"), 178 + MTK_FUNCTION(3, "UCTS1"), 179 + MTK_FUNCTION(4, "MD_NTN_URXD1"), 180 + MTK_FUNCTION(5, "KPCOL2"), 181 + MTK_FUNCTION(6, "TP_GPIO11_AO") 182 + ), 183 + MTK_PIN( 184 + 18, "GPIO18", 185 + MTK_EINT_FUNCTION(0, 18), 186 + DRV_GRP4, 187 + MTK_FUNCTION(0, "GPIO18"), 188 + MTK_FUNCTION(1, "DMIC1_CLK"), 189 + MTK_FUNCTION(2, "DP_RAUX_SBU1"), 190 + MTK_FUNCTION(3, "URTS1"), 191 + MTK_FUNCTION(4, "MD_NTN_UTXD1"), 192 + MTK_FUNCTION(5, "I2SIN2_DI"), 193 + MTK_FUNCTION(6, "TP_UTXD_GNSS_VLP") 194 + ), 195 + MTK_PIN( 196 + 19, "GPIO19", 197 + MTK_EINT_FUNCTION(0, 19), 198 + DRV_GRP4, 199 + MTK_FUNCTION(0, "GPIO19"), 200 + MTK_FUNCTION(1, "DMIC1_DAT"), 201 + MTK_FUNCTION(2, "DP_RAUX_SBU2"), 202 + MTK_FUNCTION(3, "CONN_TCXOENA_REQ"), 203 + MTK_FUNCTION(4, "CLKM3_A"), 204 + MTK_FUNCTION(5, "I2SIN2_BCK"), 205 + MTK_FUNCTION(6, "TP_URXD_GNSS_VLP") 206 + ), 207 + MTK_PIN( 208 + 20, "GPIO20", 209 + MTK_EINT_FUNCTION(0, 20), 210 + DRV_GRP4, 211 + MTK_FUNCTION(0, "GPIO20"), 212 + MTK_FUNCTION(1, "IDDIG"), 213 + MTK_FUNCTION(2, "LCM2_RST"), 214 + MTK_FUNCTION(3, "GPS_PPS1"), 215 + MTK_FUNCTION(4, "CLKM2_A") 216 + ), 217 + MTK_PIN( 218 + 21, "GPIO21", 219 + MTK_EINT_FUNCTION(0, 21), 220 + DRV_GRP4, 221 + MTK_FUNCTION(0, "GPIO21"), 222 + MTK_FUNCTION(1, "BPI_BUS11"), 223 + MTK_FUNCTION(2, "PCIE_PERSTN_1P"), 224 + MTK_FUNCTION(3, "DSI1_TE"), 225 + MTK_FUNCTION(4, "DMIC_CLK"), 226 + MTK_FUNCTION(5, "SCP_DMIC_CLK") 227 + ), 228 + MTK_PIN( 229 + 22, "GPIO22", 230 + MTK_EINT_FUNCTION(0, 22), 231 + DRV_GRP4, 232 + MTK_FUNCTION(0, "GPIO22"), 233 + MTK_FUNCTION(1, "BPI_BUS12"), 234 + MTK_FUNCTION(2, "PCIE_CLKREQN_1P"), 235 + MTK_FUNCTION(3, "DSI2_TE"), 236 + MTK_FUNCTION(4, "DMIC_DAT"), 237 + MTK_FUNCTION(5, "SCP_DMIC_DAT") 238 + ), 239 + MTK_PIN( 240 + 23, "GPIO23", 241 + MTK_EINT_FUNCTION(0, 23), 242 + DRV_GRP4, 243 + MTK_FUNCTION(0, "GPIO23"), 244 + MTK_FUNCTION(1, "BPI_BUS13"), 245 + MTK_FUNCTION(2, "PCIE_WAKEN_1P"), 246 + MTK_FUNCTION(3, "DSI3_TE"), 247 + MTK_FUNCTION(4, "DMIC1_CLK"), 248 + MTK_FUNCTION(5, "SCP_DMIC1_CLK") 249 + ), 250 + MTK_PIN( 251 + 24, "GPIO24", 252 + MTK_EINT_FUNCTION(0, 24), 253 + DRV_GRP4, 254 + MTK_FUNCTION(0, "GPIO24"), 255 + MTK_FUNCTION(1, "BPI_BUS14"), 256 + MTK_FUNCTION(2, "LCM1_RST"), 257 + MTK_FUNCTION(3, "AGPS_SYNC"), 258 + MTK_FUNCTION(4, "DMIC1_DAT"), 259 + MTK_FUNCTION(5, "SCP_DMIC1_DAT"), 260 + MTK_FUNCTION(6, "DISP_PWM1") 261 + ), 262 + MTK_PIN( 263 + 25, "GPIO25", 264 + MTK_EINT_FUNCTION(0, 25), 265 + DRV_GRP4, 266 + MTK_FUNCTION(0, "GPIO25"), 267 + MTK_FUNCTION(1, "BPI_BUS15"), 268 + MTK_FUNCTION(2, "LCM2_RST"), 269 + MTK_FUNCTION(3, "SRCLKENAI1"), 270 + MTK_FUNCTION(4, "DMIC2_CLK"), 271 + MTK_FUNCTION(6, "DISP_PWM2") 272 + ), 273 + MTK_PIN( 274 + 26, "GPIO26", 275 + MTK_EINT_FUNCTION(0, 26), 276 + DRV_GRP4, 277 + MTK_FUNCTION(0, "GPIO26"), 278 + MTK_FUNCTION(1, "BPI_BUS16"), 279 + MTK_FUNCTION(2, "LCM3_RST"), 280 + MTK_FUNCTION(4, "DMIC2_DAT"), 281 + MTK_FUNCTION(6, "DISP_PWM3") 282 + ), 283 + MTK_PIN( 284 + 27, "GPIO27", 285 + MTK_EINT_FUNCTION(0, 27), 286 + DRV_GRP4, 287 + MTK_FUNCTION(0, "GPIO27"), 288 + MTK_FUNCTION(1, "BPI_BUS17"), 289 + MTK_FUNCTION(2, "UTXD4"), 290 + MTK_FUNCTION(6, "DISP_PWM4"), 291 + MTK_FUNCTION(7, "DBG_MON_A20") 292 + ), 293 + MTK_PIN( 294 + 28, "GPIO28", 295 + MTK_EINT_FUNCTION(0, 28), 296 + DRV_GRP4, 297 + MTK_FUNCTION(0, "GPIO28"), 298 + MTK_FUNCTION(1, "BPI_BUS18"), 299 + MTK_FUNCTION(2, "URXD4"), 300 + MTK_FUNCTION(3, "SPI2_A_MI"), 301 + MTK_FUNCTION(4, "CLKM0_A"), 302 + MTK_FUNCTION(7, "DBG_MON_A21") 303 + ), 304 + MTK_PIN( 305 + 29, "GPIO29", 306 + MTK_EINT_FUNCTION(0, 29), 307 + DRV_GRP4, 308 + MTK_FUNCTION(0, "GPIO29"), 309 + MTK_FUNCTION(1, "BPI_BUS19"), 310 + MTK_FUNCTION(2, "MD_NTN_UTXD1"), 311 + MTK_FUNCTION(3, "SPI2_A_MO"), 312 + MTK_FUNCTION(4, "CLKM1_A"), 313 + MTK_FUNCTION(6, "UCTS4"), 314 + MTK_FUNCTION(7, "DBG_MON_A17") 315 + ), 316 + MTK_PIN( 317 + 30, "GPIO30", 318 + MTK_EINT_FUNCTION(0, 30), 319 + DRV_GRP4, 320 + MTK_FUNCTION(0, "GPIO30"), 321 + MTK_FUNCTION(1, "BPI_BUS20"), 322 + MTK_FUNCTION(2, "MD_NTN_URXD1"), 323 + MTK_FUNCTION(3, "SPI2_A_CLK"), 324 + MTK_FUNCTION(4, "CLKM2_A"), 325 + MTK_FUNCTION(5, "DSI3_HSYNC"), 326 + MTK_FUNCTION(6, "URTS4"), 327 + MTK_FUNCTION(7, "DBG_MON_A18") 328 + ), 329 + MTK_PIN( 330 + 31, "GPIO31", 331 + MTK_EINT_FUNCTION(0, 31), 332 + DRV_GRP4, 333 + MTK_FUNCTION(0, "GPIO31"), 334 + MTK_FUNCTION(1, "BPI_BUS21"), 335 + MTK_FUNCTION(3, "SPI2_A_CSB"), 336 + MTK_FUNCTION(4, "CLKM3_A"), 337 + MTK_FUNCTION(6, "EDP_TX_HPD"), 338 + MTK_FUNCTION(7, "DBG_MON_A19") 339 + ), 340 + MTK_PIN( 341 + 32, "GPIO32", 342 + MTK_EINT_FUNCTION(0, 32), 343 + DRV_GRP4, 344 + MTK_FUNCTION(0, "GPIO32"), 345 + MTK_FUNCTION(1, "LCM4_RST"), 346 + MTK_FUNCTION(2, "DP_TX_HPD"), 347 + MTK_FUNCTION(3, "SSPM_JTAG_TCK_VLP"), 348 + MTK_FUNCTION(4, "ADSP_JTAG0_TCK"), 349 + MTK_FUNCTION(5, "SCP_JTAG0_TCK_VLP"), 350 + MTK_FUNCTION(6, "SPU0_TCK"), 351 + MTK_FUNCTION(7, "IO_JTAG_TCK") 352 + ), 353 + MTK_PIN( 354 + 33, "GPIO33", 355 + MTK_EINT_FUNCTION(0, 33), 356 + DRV_GRP4, 357 + MTK_FUNCTION(0, "GPIO33"), 358 + MTK_FUNCTION(1, "DSI4_TE"), 359 + MTK_FUNCTION(2, "DP_OC_EN"), 360 + MTK_FUNCTION(3, "SSPM_JTAG_TRSTN_VLP"), 361 + MTK_FUNCTION(4, "ADSP_JTAG0_TRSTN"), 362 + MTK_FUNCTION(5, "SCP_JTAG0_TRSTN_VLP"), 363 + MTK_FUNCTION(6, "SPU0_NTRST"), 364 + MTK_FUNCTION(7, "IO_JTAG_TRSTN") 365 + ), 366 + MTK_PIN( 367 + 34, "GPIO34", 368 + MTK_EINT_FUNCTION(0, 34), 369 + DRV_GRP4, 370 + MTK_FUNCTION(0, "GPIO34"), 371 + MTK_FUNCTION(1, "UCTS5"), 372 + MTK_FUNCTION(2, "DP_RAUX_SBU1"), 373 + MTK_FUNCTION(3, "SSPM_JTAG_TDI_VLP"), 374 + MTK_FUNCTION(4, "ADSP_JTAG0_TDI"), 375 + MTK_FUNCTION(5, "SCP_JTAG0_TDI_VLP"), 376 + MTK_FUNCTION(6, "SPU0_TDI"), 377 + MTK_FUNCTION(7, "IO_JTAG_TDI") 378 + ), 379 + MTK_PIN( 380 + 35, "GPIO35", 381 + MTK_EINT_FUNCTION(0, 35), 382 + DRV_GRP4, 383 + MTK_FUNCTION(0, "GPIO35"), 384 + MTK_FUNCTION(1, "URTS5"), 385 + MTK_FUNCTION(2, "DP_RAUX_SBU2"), 386 + MTK_FUNCTION(3, "SSPM_JTAG_TDO_VLP"), 387 + MTK_FUNCTION(4, "ADSP_JTAG0_TDO"), 388 + MTK_FUNCTION(5, "SCP_JTAG0_TDO_VLP"), 389 + MTK_FUNCTION(6, "SPU0_TDO"), 390 + MTK_FUNCTION(7, "IO_JTAG_TDO") 391 + ), 392 + MTK_PIN( 393 + 36, "GPIO36", 394 + MTK_EINT_FUNCTION(0, 36), 395 + DRV_GRP4, 396 + MTK_FUNCTION(0, "GPIO36"), 397 + MTK_FUNCTION(1, "UTXD5"), 398 + MTK_FUNCTION(3, "SSPM_JTAG_TMS_VLP"), 399 + MTK_FUNCTION(4, "ADSP_JTAG0_TMS"), 400 + MTK_FUNCTION(5, "SCP_JTAG0_TMS_VLP"), 401 + MTK_FUNCTION(6, "SPU0_TMS"), 402 + MTK_FUNCTION(7, "IO_JTAG_TMS") 403 + ), 404 + MTK_PIN( 405 + 37, "GPIO37", 406 + MTK_EINT_FUNCTION(0, 37), 407 + DRV_GRP4, 408 + MTK_FUNCTION(0, "GPIO37"), 409 + MTK_FUNCTION(1, "URXD5"), 410 + MTK_FUNCTION(3, "MD_INT3"), 411 + MTK_FUNCTION(4, "CLKM0_B"), 412 + MTK_FUNCTION(5, "TP_GPIO5_AO"), 413 + MTK_FUNCTION(6, "SPU0_UTX"), 414 + MTK_FUNCTION(7, "DAP_MD32_SWCK") 415 + ), 416 + MTK_PIN( 417 + 38, "GPIO38", 418 + MTK_EINT_FUNCTION(0, 38), 419 + DRV_GRP4, 420 + MTK_FUNCTION(0, "GPIO38"), 421 + MTK_FUNCTION(2, "SPMI_P_TRIG_FLAG"), 422 + MTK_FUNCTION(3, "MD_INT4"), 423 + MTK_FUNCTION(4, "CLKM1_B"), 424 + MTK_FUNCTION(5, "TP_GPIO6_AO"), 425 + MTK_FUNCTION(6, "SPU0_URX"), 426 + MTK_FUNCTION(7, "DAP_MD32_SWD") 427 + ), 428 + MTK_PIN( 429 + 39, "GPIO39", 430 + MTK_EINT_FUNCTION(0, 39), 431 + DRV_GRP4, 432 + MTK_FUNCTION(0, "GPIO39"), 433 + MTK_FUNCTION(1, "I2S_MCK0"), 434 + MTK_FUNCTION(3, "GPS_PPS0"), 435 + MTK_FUNCTION(4, "CONN_TCXOENA_REQ"), 436 + MTK_FUNCTION(7, "DBG_MON_B12") 437 + ), 438 + MTK_PIN( 439 + 40, "GPIO40", 440 + MTK_EINT_FUNCTION(0, 40), 441 + DRV_GRP4, 442 + MTK_FUNCTION(0, "GPIO40"), 443 + MTK_FUNCTION(1, "I2SIN6_0_BCK"), 444 + MTK_FUNCTION(3, "SPI4_B_CLK"), 445 + MTK_FUNCTION(4, "UCTS2"), 446 + MTK_FUNCTION(5, "CCU1_UTXD"), 447 + MTK_FUNCTION(7, "DBG_MON_B13") 448 + ), 449 + MTK_PIN( 450 + 41, "GPIO41", 451 + MTK_EINT_FUNCTION(0, 41), 452 + DRV_GRP4, 453 + MTK_FUNCTION(0, "GPIO41"), 454 + MTK_FUNCTION(1, "I2SIN6_0_LRCK"), 455 + MTK_FUNCTION(3, "SPI4_B_CSB"), 456 + MTK_FUNCTION(4, "URTS2"), 457 + MTK_FUNCTION(5, "CCU1_URXD"), 458 + MTK_FUNCTION(7, "DBG_MON_B14") 459 + ), 460 + MTK_PIN( 461 + 42, "GPIO42", 462 + MTK_EINT_FUNCTION(0, 42), 463 + DRV_GRP4, 464 + MTK_FUNCTION(0, "GPIO42"), 465 + MTK_FUNCTION(1, "I2SIN6_0_DI"), 466 + MTK_FUNCTION(3, "SPI4_B_MI"), 467 + MTK_FUNCTION(4, "URXD2"), 468 + MTK_FUNCTION(5, "CCU1_URTS"), 469 + MTK_FUNCTION(6, "MD32_0_RXD"), 470 + MTK_FUNCTION(7, "DBG_MON_B15") 471 + ), 472 + MTK_PIN( 473 + 43, "GPIO43", 474 + MTK_EINT_FUNCTION(0, 43), 475 + DRV_GRP4, 476 + MTK_FUNCTION(0, "GPIO43"), 477 + MTK_FUNCTION(1, "I2SOUT6_0_DO"), 478 + MTK_FUNCTION(3, "SPI4_B_MO"), 479 + MTK_FUNCTION(4, "UTXD2"), 480 + MTK_FUNCTION(5, "CCU1_UCTS"), 481 + MTK_FUNCTION(6, "MD32_0_TXD"), 482 + MTK_FUNCTION(7, "DBG_MON_B16") 483 + ), 484 + MTK_PIN( 485 + 44, "GPIO44", 486 + MTK_EINT_FUNCTION(0, 44), 487 + DRV_GRP4, 488 + MTK_FUNCTION(0, "GPIO44"), 489 + MTK_FUNCTION(1, "MD_INT1_C2K_UIM0_HOT_PLUG"), 490 + MTK_FUNCTION(3, "SPI3_A_CLK"), 491 + MTK_FUNCTION(6, "TP_GPIO10_AO") 492 + ), 493 + MTK_PIN( 494 + 45, "GPIO45", 495 + MTK_EINT_FUNCTION(0, 45), 496 + DRV_GRP4, 497 + MTK_FUNCTION(0, "GPIO45"), 498 + MTK_FUNCTION(1, "MD_INT2_C2K_UIM1_HOT_PLUG"), 499 + MTK_FUNCTION(2, "DSI2_HSYNC"), 500 + MTK_FUNCTION(3, "SPI3_A_CSB"), 501 + MTK_FUNCTION(4, "PWM_VLP"), 502 + MTK_FUNCTION(6, "TP_GPIO11_AO") 503 + ), 504 + MTK_PIN( 505 + 46, "GPIO46", 506 + MTK_EINT_FUNCTION(0, 46), 507 + DRV_GRP4, 508 + MTK_FUNCTION(0, "GPIO46"), 509 + MTK_FUNCTION(1, "SCP_SCL4"), 510 + MTK_FUNCTION(2, "PWM_VLP"), 511 + MTK_FUNCTION(4, "SCP_ILDO_DTEST1_VLP"), 512 + MTK_FUNCTION(5, "UFS_MPHY_SCL"), 513 + MTK_FUNCTION(6, "TP_GPIO0_AO") 514 + ), 515 + MTK_PIN( 516 + 47, "GPIO47", 517 + MTK_EINT_FUNCTION(0, 47), 518 + DRV_GRP4, 519 + MTK_FUNCTION(0, "GPIO47"), 520 + MTK_FUNCTION(1, "SCP_SDA4"), 521 + MTK_FUNCTION(4, "SCP_ILDO_DTEST2_VLP"), 522 + MTK_FUNCTION(5, "UFS_MPHY_SDA"), 523 + MTK_FUNCTION(6, "TP_GPIO1_AO") 524 + ), 525 + MTK_PIN( 526 + 48, "GPIO48", 527 + MTK_EINT_FUNCTION(0, 48), 528 + DRV_GRP4, 529 + MTK_FUNCTION(0, "GPIO48"), 530 + MTK_FUNCTION(1, "SCP_SCL5"), 531 + MTK_FUNCTION(2, "PWM_VLP"), 532 + MTK_FUNCTION(3, "CCU0_UTXD"), 533 + MTK_FUNCTION(4, "SCP_ILDO_DTEST3_VLP"), 534 + MTK_FUNCTION(6, "TP_GPIO2_AO") 535 + ), 536 + MTK_PIN( 537 + 49, "GPIO49", 538 + MTK_EINT_FUNCTION(0, 49), 539 + DRV_GRP4, 540 + MTK_FUNCTION(0, "GPIO49"), 541 + MTK_FUNCTION(1, "SCP_SDA5"), 542 + MTK_FUNCTION(3, "CCU0_URXD"), 543 + MTK_FUNCTION(4, "SCP_ILDO_DTEST4_VLP"), 544 + MTK_FUNCTION(6, "TP_GPIO3_AO") 545 + ), 546 + MTK_PIN( 547 + 50, "GPIO50", 548 + MTK_EINT_FUNCTION(0, 50), 549 + DRV_GRP4, 550 + MTK_FUNCTION(0, "GPIO50"), 551 + MTK_FUNCTION(1, "SCP_SCL6"), 552 + MTK_FUNCTION(2, "PWM_VLP"), 553 + MTK_FUNCTION(3, "CCU0_URTS"), 554 + MTK_FUNCTION(4, "DSI_HSYNC"), 555 + MTK_FUNCTION(6, "TP_GPIO4_AO") 556 + ), 557 + MTK_PIN( 558 + 51, "GPIO51", 559 + MTK_EINT_FUNCTION(0, 51), 560 + DRV_GRP4, 561 + MTK_FUNCTION(0, "GPIO51"), 562 + MTK_FUNCTION(1, "SCP_SDA6"), 563 + MTK_FUNCTION(3, "CCU0_UCTS"), 564 + MTK_FUNCTION(4, "DSI1_HSYNC"), 565 + MTK_FUNCTION(6, "TP_GPIO5_AO") 566 + ), 567 + MTK_PIN( 568 + 52, "GPIO52", 569 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 570 + DRV_GRP4, 571 + MTK_FUNCTION(0, "GPIO52"), 572 + MTK_FUNCTION(1, "SCP_SCL1"), 573 + MTK_FUNCTION(3, "TDM_DATA2") 574 + ), 575 + MTK_PIN( 576 + 53, "GPIO53", 577 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 578 + DRV_GRP4, 579 + MTK_FUNCTION(0, "GPIO53"), 580 + MTK_FUNCTION(1, "SCP_SDA1"), 581 + MTK_FUNCTION(3, "TDM_DATA3") 582 + ), 583 + MTK_PIN( 584 + 54, "GPIO54", 585 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 586 + DRV_GRP4, 587 + MTK_FUNCTION(0, "GPIO54"), 588 + MTK_FUNCTION(1, "AUD_CLK_MOSI"), 589 + MTK_FUNCTION(3, "TDM_MCK") 590 + ), 591 + MTK_PIN( 592 + 55, "GPIO55", 593 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 594 + DRV_GRP4, 595 + MTK_FUNCTION(0, "GPIO55"), 596 + MTK_FUNCTION(1, "AUD_CLK_MISO"), 597 + MTK_FUNCTION(2, "I2SOUT2_BCK"), 598 + MTK_FUNCTION(3, "TDM_BCK") 599 + ), 600 + MTK_PIN( 601 + 56, "GPIO56", 602 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 603 + DRV_GRP4, 604 + MTK_FUNCTION(0, "GPIO56"), 605 + MTK_FUNCTION(1, "AUD_DAT_MOSI0"), 606 + MTK_FUNCTION(2, "I2SOUT2_LRCK"), 607 + MTK_FUNCTION(3, "TDM_LRCK") 608 + ), 609 + MTK_PIN( 610 + 57, "GPIO57", 611 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 612 + DRV_GRP4, 613 + MTK_FUNCTION(0, "GPIO57"), 614 + MTK_FUNCTION(1, "AUD_DAT_MOSI1"), 615 + MTK_FUNCTION(2, "I2SOUT2_DO"), 616 + MTK_FUNCTION(3, "TDM_DATA0") 617 + ), 618 + MTK_PIN( 619 + 58, "GPIO58", 620 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 621 + DRV_GRP4, 622 + MTK_FUNCTION(0, "GPIO58"), 623 + MTK_FUNCTION(1, "AUD_DAT_MISO0"), 624 + MTK_FUNCTION(3, "TDM_DATA1") 625 + ), 626 + MTK_PIN( 627 + 59, "GPIO59", 628 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 629 + DRV_GRP4, 630 + MTK_FUNCTION(0, "GPIO59"), 631 + MTK_FUNCTION(1, "AUD_DAT_MISO1"), 632 + MTK_FUNCTION(3, "I2SIN1_BCK") 633 + ), 634 + MTK_PIN( 635 + 60, "GPIO60", 636 + MTK_EINT_FUNCTION(0, 60), 637 + DRV_GRP4, 638 + MTK_FUNCTION(0, "GPIO60"), 639 + MTK_FUNCTION(1, "KPCOL0"), 640 + MTK_FUNCTION(6, "TP_GPIO13_AO") 641 + ), 642 + MTK_PIN( 643 + 61, "GPIO61", 644 + MTK_EINT_FUNCTION(0, 61), 645 + DRV_GRP4, 646 + MTK_FUNCTION(0, "GPIO61"), 647 + MTK_FUNCTION(1, "MCU_M_PMIC_POC_I") 648 + ), 649 + MTK_PIN( 650 + 62, "GPIO62", 651 + MTK_EINT_FUNCTION(0, 62), 652 + DRV_GRP4, 653 + MTK_FUNCTION(0, "GPIO62"), 654 + MTK_FUNCTION(1, "MCU_B_PMIC_POC_I") 655 + ), 656 + MTK_PIN( 657 + 63, "GPIO63", 658 + MTK_EINT_FUNCTION(0, 63), 659 + DRV_GRP4, 660 + MTK_FUNCTION(0, "GPIO63"), 661 + MTK_FUNCTION(1, "MFG_PMIC_POC_I") 662 + ), 663 + MTK_PIN( 664 + 64, "GPIO64", 665 + MTK_EINT_FUNCTION(0, 64), 666 + DRV_GRP4, 667 + MTK_FUNCTION(0, "GPIO64"), 668 + MTK_FUNCTION(1, "PRE_UVLO") 669 + ), 670 + MTK_PIN( 671 + 65, "GPIO65", 672 + MTK_EINT_FUNCTION(0, 65), 673 + DRV_GRP4, 674 + MTK_FUNCTION(0, "GPIO65"), 675 + MTK_FUNCTION(1, "DPM2PMIC"), 676 + MTK_FUNCTION(2, "SRCLKENA1") 677 + ), 678 + MTK_PIN( 679 + 66, "GPIO66", 680 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 681 + DRV_GRP4, 682 + MTK_FUNCTION(0, "GPIO66"), 683 + MTK_FUNCTION(1, "WATCHDOG") 684 + ), 685 + MTK_PIN( 686 + 67, "GPIO67", 687 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 688 + DRV_GRP4, 689 + MTK_FUNCTION(0, "GPIO67"), 690 + MTK_FUNCTION(1, "SRCLKENA0") 691 + ), 692 + MTK_PIN( 693 + 68, "GPIO68", 694 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 695 + DRV_GRP4, 696 + MTK_FUNCTION(0, "GPIO68"), 697 + MTK_FUNCTION(1, "SCP_VREQ_VAO") 698 + ), 699 + MTK_PIN( 700 + 69, "GPIO69", 701 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 702 + DRV_GRP4, 703 + MTK_FUNCTION(0, "GPIO69"), 704 + MTK_FUNCTION(1, "RTC32K_CK") 705 + ), 706 + MTK_PIN( 707 + 70, "GPIO70", 708 + MTK_EINT_FUNCTION(0, 70), 709 + DRV_GRP4, 710 + MTK_FUNCTION(0, "GPIO70"), 711 + MTK_FUNCTION(1, "CMFLASH0") 712 + ), 713 + MTK_PIN( 714 + 71, "GPIO71", 715 + MTK_EINT_FUNCTION(0, 71), 716 + DRV_GRP4, 717 + MTK_FUNCTION(0, "GPIO71") 718 + ), 719 + MTK_PIN( 720 + 72, "GPIO72", 721 + MTK_EINT_FUNCTION(0, 72), 722 + DRV_GRP4, 723 + MTK_FUNCTION(0, "GPIO72") 724 + ), 725 + MTK_PIN( 726 + 73, "GPIO73", 727 + MTK_EINT_FUNCTION(0, 73), 728 + DRV_GRP4, 729 + MTK_FUNCTION(0, "GPIO73") 730 + ), 731 + MTK_PIN( 732 + 74, "GPIO74", 733 + MTK_EINT_FUNCTION(0, 74), 734 + DRV_GRP4, 735 + MTK_FUNCTION(0, "GPIO74"), 736 + MTK_FUNCTION(1, "DCXO_FPM_LPM") 737 + ), 738 + MTK_PIN( 739 + 75, "GPIO75", 740 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 741 + DRV_GRP4, 742 + MTK_FUNCTION(0, "GPIO75"), 743 + MTK_FUNCTION(1, "SPMI_M_SCL") 744 + ), 745 + MTK_PIN( 746 + 76, "GPIO76", 747 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 748 + DRV_GRP4, 749 + MTK_FUNCTION(0, "GPIO76"), 750 + MTK_FUNCTION(1, "SPMI_M_SDA") 751 + ), 752 + MTK_PIN( 753 + 77, "GPIO77", 754 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 755 + DRV_GRP4, 756 + MTK_FUNCTION(0, "GPIO77"), 757 + MTK_FUNCTION(1, "SPMI_P_SCL") 758 + ), 759 + MTK_PIN( 760 + 78, "GPIO78", 761 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 762 + DRV_GRP4, 763 + MTK_FUNCTION(0, "GPIO78"), 764 + MTK_FUNCTION(1, "SPMI_P_SDA") 765 + ), 766 + MTK_PIN( 767 + 79, "GPIO79", 768 + MTK_EINT_FUNCTION(0, 79), 769 + DRV_GRP4, 770 + MTK_FUNCTION(0, "GPIO79"), 771 + MTK_FUNCTION(1, "CMMCLK0"), 772 + MTK_FUNCTION(2, "MD_INT4") 773 + ), 774 + MTK_PIN( 775 + 80, "GPIO80", 776 + MTK_EINT_FUNCTION(0, 80), 777 + DRV_GRP4, 778 + MTK_FUNCTION(0, "GPIO80"), 779 + MTK_FUNCTION(1, "CMMCLK1") 780 + ), 781 + MTK_PIN( 782 + 81, "GPIO81", 783 + MTK_EINT_FUNCTION(0, 81), 784 + DRV_GRP4, 785 + MTK_FUNCTION(0, "GPIO81"), 786 + MTK_FUNCTION(1, "SCP_SPI0_CK"), 787 + MTK_FUNCTION(2, "SPI6_B_CLK"), 788 + MTK_FUNCTION(3, "PWM_VLP"), 789 + MTK_FUNCTION(4, "I2SOUT5_BCK"), 790 + MTK_FUNCTION(6, "TP_GPIO0_AO") 791 + ), 792 + MTK_PIN( 793 + 82, "GPIO82", 794 + MTK_EINT_FUNCTION(0, 82), 795 + DRV_GRP4, 796 + MTK_FUNCTION(0, "GPIO82"), 797 + MTK_FUNCTION(1, "SCP_SPI0_CS"), 798 + MTK_FUNCTION(2, "SPI6_B_CSB"), 799 + MTK_FUNCTION(4, "I2SOUT5_LRCK"), 800 + MTK_FUNCTION(6, "TP_GPIO1_AO") 801 + ), 802 + MTK_PIN( 803 + 83, "GPIO83", 804 + MTK_EINT_FUNCTION(0, 83), 805 + DRV_GRP4, 806 + MTK_FUNCTION(0, "GPIO83"), 807 + MTK_FUNCTION(1, "SCP_SPI0_MO"), 808 + MTK_FUNCTION(2, "SPI6_B_MO"), 809 + MTK_FUNCTION(4, "I2SOUT5_DATA0"), 810 + MTK_FUNCTION(6, "TP_GPIO2_AO") 811 + ), 812 + MTK_PIN( 813 + 84, "GPIO84", 814 + MTK_EINT_FUNCTION(0, 84), 815 + DRV_GRP4, 816 + MTK_FUNCTION(0, "GPIO84"), 817 + MTK_FUNCTION(1, "SCP_SPI0_MI"), 818 + MTK_FUNCTION(2, "SPI6_B_MI"), 819 + MTK_FUNCTION(4, "I2SOUT5_DATA1"), 820 + MTK_FUNCTION(6, "TP_GPIO3_AO") 821 + ), 822 + MTK_PIN( 823 + 85, "GPIO85", 824 + MTK_EINT_FUNCTION(0, 85), 825 + DRV_GRP4, 826 + MTK_FUNCTION(0, "GPIO85"), 827 + MTK_FUNCTION(1, "SCP_SPI1_CK"), 828 + MTK_FUNCTION(2, "SPI7_B_CLK"), 829 + MTK_FUNCTION(4, "I2SIN5_DATA0"), 830 + MTK_FUNCTION(5, "PWM_VLP"), 831 + MTK_FUNCTION(6, "TP_GPIO4_AO") 832 + ), 833 + MTK_PIN( 834 + 86, "GPIO86", 835 + MTK_EINT_FUNCTION(0, 86), 836 + DRV_GRP4, 837 + MTK_FUNCTION(0, "GPIO86"), 838 + MTK_FUNCTION(1, "SCP_SPI1_CS"), 839 + MTK_FUNCTION(2, "SPI7_B_CSB"), 840 + MTK_FUNCTION(4, "I2SIN5_DATA1"), 841 + MTK_FUNCTION(6, "TP_GPIO5_AO") 842 + ), 843 + MTK_PIN( 844 + 87, "GPIO87", 845 + MTK_EINT_FUNCTION(0, 87), 846 + DRV_GRP4, 847 + MTK_FUNCTION(0, "GPIO87"), 848 + MTK_FUNCTION(1, "SCP_SPI1_MO"), 849 + MTK_FUNCTION(2, "SPI7_B_MO"), 850 + MTK_FUNCTION(4, "I2SIN5_BCK"), 851 + MTK_FUNCTION(6, "TP_GPIO6_AO") 852 + ), 853 + MTK_PIN( 854 + 88, "GPIO88", 855 + MTK_EINT_FUNCTION(0, 88), 856 + DRV_GRP4, 857 + MTK_FUNCTION(0, "GPIO88"), 858 + MTK_FUNCTION(1, "SCP_SPI1_MI"), 859 + MTK_FUNCTION(2, "SPI7_B_MI"), 860 + MTK_FUNCTION(4, "I2SIN5_LRCK"), 861 + MTK_FUNCTION(6, "TP_GPIO7_AO") 862 + ), 863 + MTK_PIN( 864 + 89, "GPIO89", 865 + MTK_EINT_FUNCTION(0, 89), 866 + DRV_GRP4, 867 + MTK_FUNCTION(0, "GPIO89"), 868 + MTK_FUNCTION(1, "DSI_TE"), 869 + MTK_FUNCTION(2, "DSI1_TE"), 870 + MTK_FUNCTION(7, "DBG_MON_B30") 871 + ), 872 + MTK_PIN( 873 + 90, "GPIO90", 874 + MTK_EINT_FUNCTION(0, 90), 875 + DRV_GRP4, 876 + MTK_FUNCTION(0, "GPIO90"), 877 + MTK_FUNCTION(1, "LCM_RST"), 878 + MTK_FUNCTION(2, "LCM1_RST"), 879 + MTK_FUNCTION(7, "DBG_MON_B31") 880 + ), 881 + MTK_PIN( 882 + 91, "GPIO91", 883 + MTK_EINT_FUNCTION(0, 91), 884 + DRV_GRP4, 885 + MTK_FUNCTION(0, "GPIO91"), 886 + MTK_FUNCTION(1, "CMFLASH2"), 887 + MTK_FUNCTION(2, "SF_D0"), 888 + MTK_FUNCTION(3, "SRCLKENAI1"), 889 + MTK_FUNCTION(5, "KPCOL2"), 890 + MTK_FUNCTION(6, "TP_GPIO11_AO") 891 + ), 892 + MTK_PIN( 893 + 92, "GPIO92", 894 + MTK_EINT_FUNCTION(0, 92), 895 + DRV_GRP4, 896 + MTK_FUNCTION(0, "GPIO92"), 897 + MTK_FUNCTION(1, "CMFLASH3"), 898 + MTK_FUNCTION(2, "SF_D1"), 899 + MTK_FUNCTION(4, "DISP_PWM1"), 900 + MTK_FUNCTION(6, "TP_GPIO12_AO") 901 + ), 902 + MTK_PIN( 903 + 93, "GPIO93", 904 + MTK_EINT_FUNCTION(0, 93), 905 + DRV_GRP4, 906 + MTK_FUNCTION(0, "GPIO93"), 907 + MTK_FUNCTION(1, "CMFLASH1"), 908 + MTK_FUNCTION(2, "SF_D2"), 909 + MTK_FUNCTION(3, "SRCLKENAI0"), 910 + MTK_FUNCTION(5, "KPROW2"), 911 + MTK_FUNCTION(6, "TP_GPIO13_AO") 912 + ), 913 + MTK_PIN( 914 + 94, "GPIO94", 915 + MTK_EINT_FUNCTION(0, 94), 916 + DRV_GRP4, 917 + MTK_FUNCTION(0, "GPIO94"), 918 + MTK_FUNCTION(1, "I2S_MCK1"), 919 + MTK_FUNCTION(2, "SF_D3"), 920 + MTK_FUNCTION(4, "MD32_0_GPIO0"), 921 + MTK_FUNCTION(5, "CLKM0_A"), 922 + MTK_FUNCTION(6, "TP_GPIO14_AO"), 923 + MTK_FUNCTION(7, "DBG_MON_B18") 924 + ), 925 + MTK_PIN( 926 + 95, "GPIO95", 927 + MTK_EINT_FUNCTION(0, 95), 928 + DRV_GRP4, 929 + MTK_FUNCTION(0, "GPIO95"), 930 + MTK_FUNCTION(1, "I2SIN1_BCK"), 931 + MTK_FUNCTION(2, "I2SIN4_BCK"), 932 + MTK_FUNCTION(3, "SPI6_A_CLK"), 933 + MTK_FUNCTION(4, "MD32_1_GPIO0"), 934 + MTK_FUNCTION(5, "CLKM1_A"), 935 + MTK_FUNCTION(6, "TP_GPIO15_AO"), 936 + MTK_FUNCTION(7, "DBG_MON_B19") 937 + ), 938 + MTK_PIN( 939 + 96, "GPIO96", 940 + MTK_EINT_FUNCTION(0, 96), 941 + DRV_GRP4, 942 + MTK_FUNCTION(0, "GPIO96"), 943 + MTK_FUNCTION(1, "I2SIN1_LRCK"), 944 + MTK_FUNCTION(2, "I2SIN4_LRCK"), 945 + MTK_FUNCTION(3, "SPI6_A_CSB"), 946 + MTK_FUNCTION(4, "MD32_2_GPIO0"), 947 + MTK_FUNCTION(5, "CLKM2_A"), 948 + MTK_FUNCTION(7, "DBG_MON_B20") 949 + ), 950 + MTK_PIN( 951 + 97, "GPIO97", 952 + MTK_EINT_FUNCTION(0, 97), 953 + DRV_GRP4, 954 + MTK_FUNCTION(0, "GPIO97"), 955 + MTK_FUNCTION(1, "I2SIN1_DI_A"), 956 + MTK_FUNCTION(2, "I2SIN4_DATA0"), 957 + MTK_FUNCTION(3, "SPI6_A_MO"), 958 + MTK_FUNCTION(4, "MD32_3_GPIO0"), 959 + MTK_FUNCTION(5, "CLKM3_A"), 960 + MTK_FUNCTION(7, "DBG_MON_B21") 961 + ), 962 + MTK_PIN( 963 + 98, "GPIO98", 964 + MTK_EINT_FUNCTION(0, 98), 965 + DRV_GRP4, 966 + MTK_FUNCTION(0, "GPIO98"), 967 + MTK_FUNCTION(1, "I2SOUT1_DO"), 968 + MTK_FUNCTION(2, "I2SOUT4_DATA0"), 969 + MTK_FUNCTION(3, "SPI6_A_MI"), 970 + MTK_FUNCTION(7, "DBG_MON_B22") 971 + ), 972 + MTK_PIN( 973 + 99, "GPIO99", 974 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 975 + DRV_GRP4, 976 + MTK_FUNCTION(0, "GPIO99"), 977 + MTK_FUNCTION(1, "SCL0"), 978 + MTK_FUNCTION(2, "LCM2_RST"), 979 + MTK_FUNCTION(3, "AUD_DAC_26M_CLK"), 980 + MTK_FUNCTION(4, "SPU0_SCL"), 981 + MTK_FUNCTION(7, "DBG_MON_B24") 982 + ), 983 + MTK_PIN( 984 + 100, "GPIO100", 985 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 986 + DRV_GRP4, 987 + MTK_FUNCTION(0, "GPIO100"), 988 + MTK_FUNCTION(1, "SDA0"), 989 + MTK_FUNCTION(2, "DSI2_TE"), 990 + MTK_FUNCTION(4, "SPU0_SDA"), 991 + MTK_FUNCTION(7, "DBG_MON_B25") 992 + ), 993 + MTK_PIN( 994 + 101, "GPIO101", 995 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 996 + DRV_GRP4, 997 + MTK_FUNCTION(0, "GPIO101"), 998 + MTK_FUNCTION(1, "SCL10"), 999 + MTK_FUNCTION(2, "SF_CS"), 1000 + MTK_FUNCTION(3, "SCP_DMIC1_CLK"), 1001 + MTK_FUNCTION(4, "I2SIN5_DATA2"), 1002 + MTK_FUNCTION(5, "SCP_SCL_OIS"), 1003 + MTK_FUNCTION(6, "TP_GPIO10_AO"), 1004 + MTK_FUNCTION(7, "DBG_MON_B28") 1005 + ), 1006 + MTK_PIN( 1007 + 102, "GPIO102", 1008 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 1009 + DRV_GRP4, 1010 + MTK_FUNCTION(0, "GPIO102"), 1011 + MTK_FUNCTION(1, "SDA10"), 1012 + MTK_FUNCTION(2, "SF_CK"), 1013 + MTK_FUNCTION(3, "SCP_DMIC1_DAT"), 1014 + MTK_FUNCTION(4, "I2SIN5_DATA3"), 1015 + MTK_FUNCTION(5, "SCP_SDA_OIS"), 1016 + MTK_FUNCTION(6, "TP_GPIO11_AO"), 1017 + MTK_FUNCTION(7, "DBG_MON_B29") 1018 + ), 1019 + MTK_PIN( 1020 + 103, "GPIO103", 1021 + MTK_EINT_FUNCTION(0, 103), 1022 + DRV_GRP4, 1023 + MTK_FUNCTION(0, "GPIO103"), 1024 + MTK_FUNCTION(1, "DISP_PWM"), 1025 + MTK_FUNCTION(2, "DSI1_TE"), 1026 + MTK_FUNCTION(5, "I2S_MCK0"), 1027 + MTK_FUNCTION(7, "DBG_MON_B23") 1028 + ), 1029 + MTK_PIN( 1030 + 104, "GPIO104", 1031 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 1032 + DRV_GRP4, 1033 + MTK_FUNCTION(0, "GPIO104"), 1034 + MTK_FUNCTION(1, "SCL6"), 1035 + MTK_FUNCTION(2, "SPU1_SCL"), 1036 + MTK_FUNCTION(3, "AUD_DAC_26M_CLK"), 1037 + MTK_FUNCTION(4, "USB_DRVVBUS_2P"), 1038 + MTK_FUNCTION(5, "I2S_MCK1"), 1039 + MTK_FUNCTION(6, "IDDIG_2P"), 1040 + MTK_FUNCTION(7, "DBG_MON_B26") 1041 + ), 1042 + MTK_PIN( 1043 + 105, "GPIO105", 1044 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 1045 + DRV_GRP4, 1046 + MTK_FUNCTION(0, "GPIO105"), 1047 + MTK_FUNCTION(1, "SDA6"), 1048 + MTK_FUNCTION(2, "SPU1_SDA"), 1049 + MTK_FUNCTION(3, "DISP_PWM2"), 1050 + MTK_FUNCTION(4, "VBUSVALID_2P"), 1051 + MTK_FUNCTION(5, "I2S_MCK2"), 1052 + MTK_FUNCTION(6, "VBUSVALID_3P"), 1053 + MTK_FUNCTION(7, "DBG_MON_B27") 1054 + ), 1055 + MTK_PIN( 1056 + 106, "GPIO106", 1057 + MTK_EINT_FUNCTION(0, 106), 1058 + DRV_GRP4, 1059 + MTK_FUNCTION(0, "GPIO106"), 1060 + MTK_FUNCTION(1, "SCP_SPI3_CK"), 1061 + MTK_FUNCTION(2, "SPI3_B_CLK"), 1062 + MTK_FUNCTION(3, "MD_UTXD0"), 1063 + MTK_FUNCTION(4, "TP_UTXD1_VLP"), 1064 + MTK_FUNCTION(5, "CONN_BG_GPS_MCU_UART0_TXD"), 1065 + MTK_FUNCTION(6, "TP_GPIO6_AO"), 1066 + MTK_FUNCTION(7, "DBG_MON_B0") 1067 + ), 1068 + MTK_PIN( 1069 + 107, "GPIO107", 1070 + MTK_EINT_FUNCTION(0, 107), 1071 + DRV_GRP4, 1072 + MTK_FUNCTION(0, "GPIO107"), 1073 + MTK_FUNCTION(1, "SCP_SPI3_CS"), 1074 + MTK_FUNCTION(2, "SPI3_B_CSB"), 1075 + MTK_FUNCTION(3, "MD_URXD0"), 1076 + MTK_FUNCTION(4, "TP_URXD1_VLP"), 1077 + MTK_FUNCTION(5, "CONN_BG_GPS_MCU_UART0_RXD"), 1078 + MTK_FUNCTION(6, "TP_GPIO7_AO"), 1079 + MTK_FUNCTION(7, "DBG_MON_B1") 1080 + ), 1081 + MTK_PIN( 1082 + 108, "GPIO108", 1083 + MTK_EINT_FUNCTION(0, 108), 1084 + DRV_GRP4, 1085 + MTK_FUNCTION(0, "GPIO108"), 1086 + MTK_FUNCTION(1, "SCP_SPI3_MO"), 1087 + MTK_FUNCTION(2, "SPI3_B_MO"), 1088 + MTK_FUNCTION(3, "MD_UTXD1"), 1089 + MTK_FUNCTION(4, "MD32PCM_UTXD_AO_VLP"), 1090 + MTK_FUNCTION(5, "CONN_BG_GPS_MCU_UART1_TXD"), 1091 + MTK_FUNCTION(6, "TP_GPIO8_AO"), 1092 + MTK_FUNCTION(7, "DBG_MON_B2") 1093 + ), 1094 + MTK_PIN( 1095 + 109, "GPIO109", 1096 + MTK_EINT_FUNCTION(0, 109), 1097 + DRV_GRP4, 1098 + MTK_FUNCTION(0, "GPIO109"), 1099 + MTK_FUNCTION(1, "SCP_SPI3_MI"), 1100 + MTK_FUNCTION(2, "SPI3_B_MI"), 1101 + MTK_FUNCTION(3, "MD_URXD1"), 1102 + MTK_FUNCTION(4, "MD32PCM_URXD_AO_VLP"), 1103 + MTK_FUNCTION(5, "CONN_BG_GPS_MCU_UART1_RXD"), 1104 + MTK_FUNCTION(6, "TP_GPIO9_AO"), 1105 + MTK_FUNCTION(7, "DBG_MON_B3") 1106 + ), 1107 + MTK_PIN( 1108 + 110, "GPIO110", 1109 + MTK_EINT_FUNCTION(0, 110), 1110 + DRV_GRP4, 1111 + MTK_FUNCTION(0, "GPIO110"), 1112 + MTK_FUNCTION(1, "SPI1_CLK"), 1113 + MTK_FUNCTION(2, "PWM_0"), 1114 + MTK_FUNCTION(3, "MD_UCTS0"), 1115 + MTK_FUNCTION(4, "TP_UCTS1_VLP"), 1116 + MTK_FUNCTION(6, "SPU0_GPIO_O"), 1117 + MTK_FUNCTION(7, "DBG_MON_B4") 1118 + ), 1119 + MTK_PIN( 1120 + 111, "GPIO111", 1121 + MTK_EINT_FUNCTION(0, 111), 1122 + DRV_GRP4, 1123 + MTK_FUNCTION(0, "GPIO111"), 1124 + MTK_FUNCTION(1, "SPI1_CSB"), 1125 + MTK_FUNCTION(2, "PWM_1"), 1126 + MTK_FUNCTION(3, "MD_URTS0"), 1127 + MTK_FUNCTION(4, "TP_URTS1_VLP"), 1128 + MTK_FUNCTION(6, "SPU0_GPIO_I"), 1129 + MTK_FUNCTION(7, "DBG_MON_B5") 1130 + ), 1131 + MTK_PIN( 1132 + 112, "GPIO112", 1133 + MTK_EINT_FUNCTION(0, 112), 1134 + DRV_GRP4, 1135 + MTK_FUNCTION(0, "GPIO112"), 1136 + MTK_FUNCTION(1, "SPI1_MO"), 1137 + MTK_FUNCTION(2, "PWM_2"), 1138 + MTK_FUNCTION(3, "MD_UCTS1"), 1139 + MTK_FUNCTION(6, "SPU1_GPIO_O"), 1140 + MTK_FUNCTION(7, "DBG_MON_B6") 1141 + ), 1142 + MTK_PIN( 1143 + 113, "GPIO113", 1144 + MTK_EINT_FUNCTION(0, 113), 1145 + DRV_GRP4, 1146 + MTK_FUNCTION(0, "GPIO113"), 1147 + MTK_FUNCTION(1, "SPI1_MI"), 1148 + MTK_FUNCTION(2, "PWM_3"), 1149 + MTK_FUNCTION(3, "MD_URTS1"), 1150 + MTK_FUNCTION(6, "SPU1_GPIO_I"), 1151 + MTK_FUNCTION(7, "DBG_MON_B7") 1152 + ), 1153 + MTK_PIN( 1154 + 114, "GPIO114", 1155 + MTK_EINT_FUNCTION(0, 114), 1156 + DRV_GRP4, 1157 + MTK_FUNCTION(0, "GPIO114"), 1158 + MTK_FUNCTION(1, "SPI0_SPU_CLK"), 1159 + MTK_FUNCTION(2, "SPI4_A_CLK"), 1160 + MTK_FUNCTION(5, "CONN_BG_GPS_MCU_DBG_UART_TX"), 1161 + MTK_FUNCTION(7, "DBG_MON_B8") 1162 + ), 1163 + MTK_PIN( 1164 + 115, "GPIO115", 1165 + MTK_EINT_FUNCTION(0, 115), 1166 + DRV_GRP4, 1167 + MTK_FUNCTION(0, "GPIO115"), 1168 + MTK_FUNCTION(1, "SPI0_SPU_CSB"), 1169 + MTK_FUNCTION(2, "SPI4_A_CSB"), 1170 + MTK_FUNCTION(7, "DBG_MON_B9") 1171 + ), 1172 + MTK_PIN( 1173 + 116, "GPIO116", 1174 + MTK_EINT_FUNCTION(0, 116), 1175 + DRV_GRP4, 1176 + MTK_FUNCTION(0, "GPIO116"), 1177 + MTK_FUNCTION(1, "SPI0_SPU_MO"), 1178 + MTK_FUNCTION(2, "SPI4_A_MO"), 1179 + MTK_FUNCTION(3, "LCM1_RST"), 1180 + MTK_FUNCTION(7, "DBG_MON_B10") 1181 + ), 1182 + MTK_PIN( 1183 + 117, "GPIO117", 1184 + MTK_EINT_FUNCTION(0, 117), 1185 + DRV_GRP4, 1186 + MTK_FUNCTION(0, "GPIO117"), 1187 + MTK_FUNCTION(1, "SPI0_SPU_MI"), 1188 + MTK_FUNCTION(2, "SPI4_A_MI"), 1189 + MTK_FUNCTION(3, "DSI1_TE"), 1190 + MTK_FUNCTION(7, "DBG_MON_B11") 1191 + ), 1192 + MTK_PIN( 1193 + 118, "GPIO118", 1194 + MTK_EINT_FUNCTION(0, 118), 1195 + DRV_GRP4, 1196 + MTK_FUNCTION(0, "GPIO118"), 1197 + MTK_FUNCTION(1, "SPI5_CLK"), 1198 + MTK_FUNCTION(2, "USB_DRVVBUS"), 1199 + MTK_FUNCTION(3, "DP_TX_HPD"), 1200 + MTK_FUNCTION(4, "AD_ILDO_DTEST0") 1201 + ), 1202 + MTK_PIN( 1203 + 119, "GPIO119", 1204 + MTK_EINT_FUNCTION(0, 119), 1205 + DRV_GRP4, 1206 + MTK_FUNCTION(0, "GPIO119"), 1207 + MTK_FUNCTION(1, "SPI5_CSB"), 1208 + MTK_FUNCTION(2, "VBUSVALID"), 1209 + MTK_FUNCTION(3, "DP_OC_EN"), 1210 + MTK_FUNCTION(4, "AD_ILDO_DTEST1") 1211 + ), 1212 + MTK_PIN( 1213 + 120, "GPIO120", 1214 + MTK_EINT_FUNCTION(0, 120), 1215 + DRV_GRP4, 1216 + MTK_FUNCTION(0, "GPIO120"), 1217 + MTK_FUNCTION(1, "SPI5_MO"), 1218 + MTK_FUNCTION(2, "LCM2_RST"), 1219 + MTK_FUNCTION(3, "DP_RAUX_SBU1"), 1220 + MTK_FUNCTION(4, "AD_ILDO_DTEST2"), 1221 + MTK_FUNCTION(6, "IDDIG_3P") 1222 + ), 1223 + MTK_PIN( 1224 + 121, "GPIO121", 1225 + MTK_EINT_FUNCTION(0, 121), 1226 + DRV_GRP4, 1227 + MTK_FUNCTION(0, "GPIO121"), 1228 + MTK_FUNCTION(1, "SPI5_MI"), 1229 + MTK_FUNCTION(2, "DSI2_TE"), 1230 + MTK_FUNCTION(3, "DP_RAUX_SBU2"), 1231 + MTK_FUNCTION(4, "AD_ILDO_DTEST3"), 1232 + MTK_FUNCTION(6, "USB_DRVVBUS_3P"), 1233 + MTK_FUNCTION(7, "DBG_MON_B17") 1234 + ), 1235 + MTK_PIN( 1236 + 122, "GPIO122", 1237 + MTK_EINT_FUNCTION(0, 122), 1238 + DRV_GRP4, 1239 + MTK_FUNCTION(0, "GPIO122"), 1240 + MTK_FUNCTION(1, "AP_GOOD"), 1241 + MTK_FUNCTION(2, "CONN_TCXOENA_REQ") 1242 + ), 1243 + MTK_PIN( 1244 + 123, "GPIO123", 1245 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 1246 + DRV_GRP4, 1247 + MTK_FUNCTION(0, "GPIO123"), 1248 + MTK_FUNCTION(1, "SCL3"), 1249 + MTK_FUNCTION(5, "I2SIN2_LRCK"), 1250 + MTK_FUNCTION(6, "TP_UTXD_MD_VCORE") 1251 + ), 1252 + MTK_PIN( 1253 + 124, "GPIO124", 1254 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 1255 + DRV_GRP4, 1256 + MTK_FUNCTION(0, "GPIO124"), 1257 + MTK_FUNCTION(1, "SDA3"), 1258 + MTK_FUNCTION(6, "TP_URXD_MD_VCORE") 1259 + ), 1260 + MTK_PIN( 1261 + 125, "GPIO125", 1262 + MTK_EINT_FUNCTION(0, 125), 1263 + DRV_GRP4, 1264 + MTK_FUNCTION(0, "GPIO125"), 1265 + MTK_FUNCTION(1, "MSDC1_CLK"), 1266 + MTK_FUNCTION(2, "MD1_SIM2_SCLK"), 1267 + MTK_FUNCTION(3, "HFRP_JTAG0_TCK"), 1268 + MTK_FUNCTION(4, "UDI_TCK"), 1269 + MTK_FUNCTION(5, "CONN_BGF_DSP_L1_JCK"), 1270 + MTK_FUNCTION(6, "SCP_JTAG_LITTLE_TCK_VLP"), 1271 + MTK_FUNCTION(7, "JTCK2_SEL1") 1272 + ), 1273 + MTK_PIN( 1274 + 126, "GPIO126", 1275 + MTK_EINT_FUNCTION(0, 126), 1276 + DRV_GRP4, 1277 + MTK_FUNCTION(0, "GPIO126"), 1278 + MTK_FUNCTION(1, "MSDC1_CMD"), 1279 + MTK_FUNCTION(3, "HFRP_JTAG0_TMS"), 1280 + MTK_FUNCTION(4, "UDI_TMS"), 1281 + MTK_FUNCTION(5, "CONN_BGF_DSP_L1_JMS"), 1282 + MTK_FUNCTION(6, "SCP_JTAG_LITTLE_TMS_VLP"), 1283 + MTK_FUNCTION(7, "JTMS2_SEL1") 1284 + ), 1285 + MTK_PIN( 1286 + 127, "GPIO127", 1287 + MTK_EINT_FUNCTION(0, 127), 1288 + DRV_GRP4, 1289 + MTK_FUNCTION(0, "GPIO127"), 1290 + MTK_FUNCTION(1, "MSDC1_DAT0"), 1291 + MTK_FUNCTION(2, "MD1_SIM2_SRST"), 1292 + MTK_FUNCTION(3, "HFRP_JTAG0_TDI"), 1293 + MTK_FUNCTION(4, "UDI_TDI_0"), 1294 + MTK_FUNCTION(5, "CONN_BGF_DSP_L1_JDI"), 1295 + MTK_FUNCTION(6, "SCP_JTAG_LITTLE_TDI_VLP"), 1296 + MTK_FUNCTION(7, "JTDI2_SEL1") 1297 + ), 1298 + MTK_PIN( 1299 + 128, "GPIO128", 1300 + MTK_EINT_FUNCTION(0, 128), 1301 + DRV_GRP4, 1302 + MTK_FUNCTION(0, "GPIO128"), 1303 + MTK_FUNCTION(1, "MSDC1_DAT1"), 1304 + MTK_FUNCTION(2, "MD1_SIM2_SIO"), 1305 + MTK_FUNCTION(3, "HFRP_JTAG0_TDO"), 1306 + MTK_FUNCTION(4, "UDI_TDO_0"), 1307 + MTK_FUNCTION(5, "CONN_BGF_DSP_L1_JDO"), 1308 + MTK_FUNCTION(6, "SCP_JTAG_LITTLE_TDO_VLP"), 1309 + MTK_FUNCTION(7, "JTDO2_SEL1") 1310 + ), 1311 + MTK_PIN( 1312 + 129, "GPIO129", 1313 + MTK_EINT_FUNCTION(0, 129), 1314 + DRV_GRP4, 1315 + MTK_FUNCTION(0, "GPIO129"), 1316 + MTK_FUNCTION(1, "MSDC1_DAT2"), 1317 + MTK_FUNCTION(2, "DSI2_HSYNC"), 1318 + MTK_FUNCTION(3, "HFRP_JTAG0_TRSTN"), 1319 + MTK_FUNCTION(4, "UDI_NTRST"), 1320 + MTK_FUNCTION(6, "SCP_JTAG_LITTLE_TRSTN_VLP"), 1321 + MTK_FUNCTION(7, "JTRSTN2_SEL1") 1322 + ), 1323 + MTK_PIN( 1324 + 130, "GPIO130", 1325 + MTK_EINT_FUNCTION(0, 130), 1326 + DRV_GRP4, 1327 + MTK_FUNCTION(0, "GPIO130"), 1328 + MTK_FUNCTION(1, "MSDC1_DAT3"), 1329 + MTK_FUNCTION(2, "DSI3_HSYNC"), 1330 + MTK_FUNCTION(5, "CONN_BGF_DSP_L1_JINTP") 1331 + ), 1332 + MTK_PIN( 1333 + 131, "GPIO131", 1334 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 1335 + DRV_GRP4, 1336 + MTK_FUNCTION(0, "GPIO131"), 1337 + MTK_FUNCTION(1, "MD1_SIM2_SCLK"), 1338 + MTK_FUNCTION(2, "MD1_SIM1_SCLK"), 1339 + MTK_FUNCTION(3, "MCUPM_JTAG_TDI"), 1340 + MTK_FUNCTION(4, "CLKM0_A"), 1341 + MTK_FUNCTION(5, "CONN_BGF_DSP_L5_JDI"), 1342 + MTK_FUNCTION(6, "TSFDC_SCK"), 1343 + MTK_FUNCTION(7, "SCP_JTAG0_TDI_VCORE") 1344 + ), 1345 + MTK_PIN( 1346 + 132, "GPIO132", 1347 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 1348 + DRV_GRP4, 1349 + MTK_FUNCTION(0, "GPIO132"), 1350 + MTK_FUNCTION(1, "MD1_SIM2_SRST"), 1351 + MTK_FUNCTION(2, "MD1_SIM1_SRST"), 1352 + MTK_FUNCTION(3, "MCUPM_JTAG_TMS"), 1353 + MTK_FUNCTION(4, "CLKM1_B"), 1354 + MTK_FUNCTION(5, "CONN_BGF_DSP_L5_JMS"), 1355 + MTK_FUNCTION(6, "TSFDC_SDI"), 1356 + MTK_FUNCTION(7, "SCP_JTAG0_TMS_VCORE") 1357 + ), 1358 + MTK_PIN( 1359 + 133, "GPIO133", 1360 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 1361 + DRV_GRP4, 1362 + MTK_FUNCTION(0, "GPIO133"), 1363 + MTK_FUNCTION(1, "MD1_SIM2_SIO"), 1364 + MTK_FUNCTION(2, "MD1_SIM1_SIO"), 1365 + MTK_FUNCTION(3, "MCUPM_JTAG_TDO"), 1366 + MTK_FUNCTION(5, "CONN_BGF_DSP_L5_JDO"), 1367 + MTK_FUNCTION(6, "TSFDC_SCF"), 1368 + MTK_FUNCTION(7, "SCP_JTAG0_TDO_VCORE") 1369 + ), 1370 + MTK_PIN( 1371 + 134, "GPIO134", 1372 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 1373 + DRV_GRP4, 1374 + MTK_FUNCTION(0, "GPIO134"), 1375 + MTK_FUNCTION(1, "MD1_SIM1_SCLK"), 1376 + MTK_FUNCTION(2, "MD1_SIM2_SCLK"), 1377 + MTK_FUNCTION(6, "TSFDC_26M") 1378 + ), 1379 + MTK_PIN( 1380 + 135, "GPIO135", 1381 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 1382 + DRV_GRP4, 1383 + MTK_FUNCTION(0, "GPIO135"), 1384 + MTK_FUNCTION(1, "MD1_SIM1_SRST"), 1385 + MTK_FUNCTION(2, "MD1_SIM2_SRST"), 1386 + MTK_FUNCTION(3, "MCUPM_JTAG_TCK"), 1387 + MTK_FUNCTION(5, "CONN_BGF_DSP_L5_JCK"), 1388 + MTK_FUNCTION(6, "TSFDC_SDO"), 1389 + MTK_FUNCTION(7, "SCP_JTAG0_TCK_VCORE") 1390 + ), 1391 + MTK_PIN( 1392 + 136, "GPIO136", 1393 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 1394 + DRV_GRP4, 1395 + MTK_FUNCTION(0, "GPIO136"), 1396 + MTK_FUNCTION(1, "MD1_SIM1_SIO"), 1397 + MTK_FUNCTION(2, "MD1_SIM2_SIO"), 1398 + MTK_FUNCTION(3, "MCUPM_JTAG_TRSTN"), 1399 + MTK_FUNCTION(5, "CONN_BGF_DSP_L5_JINTP"), 1400 + MTK_FUNCTION(6, "TSFDC_FOUT"), 1401 + MTK_FUNCTION(7, "SCP_JTAG0_TRSTN_VCORE") 1402 + ), 1403 + MTK_PIN( 1404 + 137, "GPIO137", 1405 + MTK_EINT_FUNCTION(0, 137), 1406 + DRV_GRP4, 1407 + MTK_FUNCTION(0, "GPIO137"), 1408 + MTK_FUNCTION(1, "MIPI0_D_SCLK"), 1409 + MTK_FUNCTION(2, "BPI_BUS16"), 1410 + MTK_FUNCTION(4, "EXT_FRAME_SYNC"), 1411 + MTK_FUNCTION(6, "SPM_JTAG_TRSTN_VCORE"), 1412 + MTK_FUNCTION(7, "DBG_MON_A0") 1413 + ), 1414 + MTK_PIN( 1415 + 138, "GPIO138", 1416 + MTK_EINT_FUNCTION(0, 138), 1417 + DRV_GRP4, 1418 + MTK_FUNCTION(0, "GPIO138"), 1419 + MTK_FUNCTION(1, "MIPI0_D_SDATA"), 1420 + MTK_FUNCTION(2, "BPI_BUS17"), 1421 + MTK_FUNCTION(4, "PCM0_LRCK"), 1422 + MTK_FUNCTION(6, "SPM_JTAG_TCK_VCORE"), 1423 + MTK_FUNCTION(7, "DBG_MON_A1") 1424 + ), 1425 + MTK_PIN( 1426 + 139, "GPIO139", 1427 + MTK_EINT_FUNCTION(0, 139), 1428 + DRV_GRP4, 1429 + MTK_FUNCTION(0, "GPIO139"), 1430 + MTK_FUNCTION(1, "MIPI1_D_SCLK"), 1431 + MTK_FUNCTION(2, "BPI_BUS18"), 1432 + MTK_FUNCTION(4, "MD_GPS_BLANK"), 1433 + MTK_FUNCTION(6, "SPM_JTAG_TMS_VCORE"), 1434 + MTK_FUNCTION(7, "DBG_MON_A2") 1435 + ), 1436 + MTK_PIN( 1437 + 140, "GPIO140", 1438 + MTK_EINT_FUNCTION(0, 140), 1439 + DRV_GRP4, 1440 + MTK_FUNCTION(0, "GPIO140"), 1441 + MTK_FUNCTION(1, "MIPI1_D_SDATA"), 1442 + MTK_FUNCTION(2, "BPI_BUS19"), 1443 + MTK_FUNCTION(4, "MD_URXD1_CONN"), 1444 + MTK_FUNCTION(6, "SPM_JTAG_TDO_VCORE"), 1445 + MTK_FUNCTION(7, "DBG_MON_A3") 1446 + ), 1447 + MTK_PIN( 1448 + 141, "GPIO141", 1449 + MTK_EINT_FUNCTION(0, 141), 1450 + DRV_GRP4, 1451 + MTK_FUNCTION(0, "GPIO141"), 1452 + MTK_FUNCTION(1, "MIPI2_D_SCLK"), 1453 + MTK_FUNCTION(2, "BPI_BUS20"), 1454 + MTK_FUNCTION(4, "MD_UTXD1_CONN"), 1455 + MTK_FUNCTION(6, "SPM_JTAG_TDI_VCORE"), 1456 + MTK_FUNCTION(7, "DBG_MON_A4") 1457 + ), 1458 + MTK_PIN( 1459 + 142, "GPIO142", 1460 + MTK_EINT_FUNCTION(0, 142), 1461 + DRV_GRP4, 1462 + MTK_FUNCTION(0, "GPIO142"), 1463 + MTK_FUNCTION(1, "MIPI2_D_SDATA"), 1464 + MTK_FUNCTION(2, "BPI_BUS21"), 1465 + MTK_FUNCTION(6, "SSPM_JTAG_TRSTN_VCORE"), 1466 + MTK_FUNCTION(7, "DBG_MON_A5") 1467 + ), 1468 + MTK_PIN( 1469 + 143, "GPIO143", 1470 + MTK_EINT_FUNCTION(0, 143), 1471 + DRV_GRP4, 1472 + MTK_FUNCTION(0, "GPIO143"), 1473 + MTK_FUNCTION(1, "MIPI3_D_SCLK"), 1474 + MTK_FUNCTION(2, "BPI_BUS22"), 1475 + MTK_FUNCTION(4, "TP_UTXD_GNSS_VLP"), 1476 + MTK_FUNCTION(5, "MD_UTXD1_CONN"), 1477 + MTK_FUNCTION(6, "SSPM_JTAG_TCK_VCORE") 1478 + ), 1479 + MTK_PIN( 1480 + 144, "GPIO144", 1481 + MTK_EINT_FUNCTION(0, 144), 1482 + DRV_GRP4, 1483 + MTK_FUNCTION(0, "GPIO144"), 1484 + MTK_FUNCTION(1, "MIPI3_D_SDATA"), 1485 + MTK_FUNCTION(2, "BPI_BUS23"), 1486 + MTK_FUNCTION(4, "TP_URXD_GNSS_VLP"), 1487 + MTK_FUNCTION(5, "MD_URXD1_CONN"), 1488 + MTK_FUNCTION(6, "SSPM_JTAG_TMS_VCORE") 1489 + ), 1490 + MTK_PIN( 1491 + 145, "GPIO145", 1492 + MTK_EINT_FUNCTION(0, 145), 1493 + DRV_GRP4, 1494 + MTK_FUNCTION(0, "GPIO145"), 1495 + MTK_FUNCTION(1, "BPI_BUS0"), 1496 + MTK_FUNCTION(4, "PCIE_WAKEN_1P"), 1497 + MTK_FUNCTION(6, "SSPM_JTAG_TDO_VCORE"), 1498 + MTK_FUNCTION(7, "DBG_MON_A10") 1499 + ), 1500 + MTK_PIN( 1501 + 146, "GPIO146", 1502 + MTK_EINT_FUNCTION(0, 146), 1503 + DRV_GRP4, 1504 + MTK_FUNCTION(0, "GPIO146"), 1505 + MTK_FUNCTION(1, "BPI_BUS1"), 1506 + MTK_FUNCTION(4, "PCIE_PERSTN_1P"), 1507 + MTK_FUNCTION(6, "SSPM_JTAG_TDI_VCORE"), 1508 + MTK_FUNCTION(7, "DBG_MON_A11") 1509 + ), 1510 + MTK_PIN( 1511 + 147, "GPIO147", 1512 + MTK_EINT_FUNCTION(0, 147), 1513 + DRV_GRP4, 1514 + MTK_FUNCTION(0, "GPIO147"), 1515 + MTK_FUNCTION(1, "BPI_BUS2"), 1516 + MTK_FUNCTION(2, "AUD_DAC_26M_CLK"), 1517 + MTK_FUNCTION(4, "PCIE_CLKREQN_1P"), 1518 + MTK_FUNCTION(6, "SCP_JTAG_LITTLE_TRSTN_VCORE"), 1519 + MTK_FUNCTION(7, "DBG_MON_A12") 1520 + ), 1521 + MTK_PIN( 1522 + 148, "GPIO148", 1523 + MTK_EINT_FUNCTION(0, 148), 1524 + DRV_GRP4, 1525 + MTK_FUNCTION(0, "GPIO148"), 1526 + MTK_FUNCTION(1, "BPI_BUS3"), 1527 + MTK_FUNCTION(2, "AUD_DAC_26M_CLK"), 1528 + MTK_FUNCTION(4, "TP_UTXD_MD_VLP"), 1529 + MTK_FUNCTION(5, "TP_GPIO0_AO"), 1530 + MTK_FUNCTION(6, "SCP_JTAG_LITTLE_TCK_VCORE"), 1531 + MTK_FUNCTION(7, "DBG_MON_A13") 1532 + ), 1533 + MTK_PIN( 1534 + 149, "GPIO149", 1535 + MTK_EINT_FUNCTION(0, 149), 1536 + DRV_GRP4, 1537 + MTK_FUNCTION(0, "GPIO149"), 1538 + MTK_FUNCTION(1, "BPI_BUS4"), 1539 + MTK_FUNCTION(2, "EXT_FRAME_SYNC"), 1540 + MTK_FUNCTION(4, "TP_URXD_MD_VLP"), 1541 + MTK_FUNCTION(5, "TP_GPIO1_AO"), 1542 + MTK_FUNCTION(6, "SCP_JTAG_LITTLE_TMS_VCORE"), 1543 + MTK_FUNCTION(7, "DBG_MON_A14") 1544 + ), 1545 + MTK_PIN( 1546 + 150, "GPIO150", 1547 + MTK_EINT_FUNCTION(0, 150), 1548 + DRV_GRP4, 1549 + MTK_FUNCTION(0, "GPIO150"), 1550 + MTK_FUNCTION(1, "BPI_BUS5"), 1551 + MTK_FUNCTION(2, "GPS_PPS0"), 1552 + MTK_FUNCTION(5, "TP_GPIO2_AO"), 1553 + MTK_FUNCTION(6, "SCP_JTAG_LITTLE_TDO_VCORE"), 1554 + MTK_FUNCTION(7, "DBG_MON_A15") 1555 + ), 1556 + MTK_PIN( 1557 + 151, "GPIO151", 1558 + MTK_EINT_FUNCTION(0, 151), 1559 + DRV_GRP4, 1560 + MTK_FUNCTION(0, "GPIO151"), 1561 + MTK_FUNCTION(1, "BPI_BUS6"), 1562 + MTK_FUNCTION(2, "GPS_PPS1"), 1563 + MTK_FUNCTION(5, "TP_GPIO3_AO"), 1564 + MTK_FUNCTION(6, "SCP_JTAG_LITTLE_TDI_VCORE") 1565 + ), 1566 + MTK_PIN( 1567 + 152, "GPIO152", 1568 + MTK_EINT_FUNCTION(0, 152), 1569 + DRV_GRP4, 1570 + MTK_FUNCTION(0, "GPIO152"), 1571 + MTK_FUNCTION(1, "BPI_BUS7"), 1572 + MTK_FUNCTION(2, "EDP_TX_HPD"), 1573 + MTK_FUNCTION(5, "AGPS_SYNC"), 1574 + MTK_FUNCTION(6, "SSPM_UTXD_AO_VCORE") 1575 + ), 1576 + MTK_PIN( 1577 + 153, "GPIO153", 1578 + MTK_EINT_FUNCTION(0, 153), 1579 + DRV_GRP4, 1580 + MTK_FUNCTION(0, "GPIO153"), 1581 + MTK_FUNCTION(1, "MD_UCNT_A_TGL"), 1582 + MTK_FUNCTION(6, "TP_URTS1_VCORE"), 1583 + MTK_FUNCTION(7, "DBG_MON_A8") 1584 + ), 1585 + MTK_PIN( 1586 + 154, "GPIO154", 1587 + MTK_EINT_FUNCTION(0, 154), 1588 + DRV_GRP4, 1589 + MTK_FUNCTION(0, "GPIO154"), 1590 + MTK_FUNCTION(1, "DIGRF_IRQ"), 1591 + MTK_FUNCTION(6, "TP_UCTS1_VCORE"), 1592 + MTK_FUNCTION(7, "DBG_MON_A9") 1593 + ), 1594 + MTK_PIN( 1595 + 155, "GPIO155", 1596 + MTK_EINT_FUNCTION(0, 155), 1597 + DRV_GRP4, 1598 + MTK_FUNCTION(0, "GPIO155"), 1599 + MTK_FUNCTION(1, "MIPI_M_SCLK"), 1600 + MTK_FUNCTION(4, "UCTS2"), 1601 + MTK_FUNCTION(6, "TP_UTXD_CONSYS_VCORE"), 1602 + MTK_FUNCTION(7, "DBG_MON_A6") 1603 + ), 1604 + MTK_PIN( 1605 + 156, "GPIO156", 1606 + MTK_EINT_FUNCTION(0, 156), 1607 + DRV_GRP4, 1608 + MTK_FUNCTION(0, "GPIO156"), 1609 + MTK_FUNCTION(1, "MIPI_M_SDATA"), 1610 + MTK_FUNCTION(4, "URTS2"), 1611 + MTK_FUNCTION(6, "TP_URXD_CONSYS_VCORE"), 1612 + MTK_FUNCTION(7, "DBG_MON_A7") 1613 + ), 1614 + MTK_PIN( 1615 + 157, "GPIO157", 1616 + MTK_EINT_FUNCTION(0, 157), 1617 + DRV_GRP4, 1618 + MTK_FUNCTION(0, "GPIO157"), 1619 + MTK_FUNCTION(1, "BPI_BUS8"), 1620 + MTK_FUNCTION(4, "UTXD2"), 1621 + MTK_FUNCTION(5, "CLKM0_A"), 1622 + MTK_FUNCTION(6, "SSPM_URXD_AO_VCORE"), 1623 + MTK_FUNCTION(7, "DBG_MON_A16") 1624 + ), 1625 + MTK_PIN( 1626 + 158, "GPIO158", 1627 + MTK_EINT_FUNCTION(0, 158), 1628 + DRV_GRP4, 1629 + MTK_FUNCTION(0, "GPIO158"), 1630 + MTK_FUNCTION(1, "BPI_BUS9"), 1631 + MTK_FUNCTION(4, "URXD2"), 1632 + MTK_FUNCTION(5, "CLKM1_A"), 1633 + MTK_FUNCTION(6, "TP_UTXD1_VCORE") 1634 + ), 1635 + MTK_PIN( 1636 + 159, "GPIO159", 1637 + MTK_EINT_FUNCTION(0, 159), 1638 + DRV_GRP4, 1639 + MTK_FUNCTION(0, "GPIO159"), 1640 + MTK_FUNCTION(1, "BPI_BUS10"), 1641 + MTK_FUNCTION(2, "MD_INT0"), 1642 + MTK_FUNCTION(3, "SRCLKENAI1"), 1643 + MTK_FUNCTION(5, "CLKM2_A"), 1644 + MTK_FUNCTION(6, "TP_URXD1_VCORE") 1645 + ), 1646 + MTK_PIN( 1647 + 160, "GPIO160", 1648 + MTK_EINT_FUNCTION(0, 160), 1649 + DRV_GRP4, 1650 + MTK_FUNCTION(0, "GPIO160"), 1651 + MTK_FUNCTION(1, "UTXD0"), 1652 + MTK_FUNCTION(2, "MD_UTXD1"), 1653 + MTK_FUNCTION(5, "MBISTREADEN_TRIGGER"), 1654 + MTK_FUNCTION(6, "CONN_BG_GPS_MCU_DBG_UART_TX") 1655 + ), 1656 + MTK_PIN( 1657 + 161, "GPIO161", 1658 + MTK_EINT_FUNCTION(0, 161), 1659 + DRV_GRP4, 1660 + MTK_FUNCTION(0, "GPIO161"), 1661 + MTK_FUNCTION(1, "URXD0"), 1662 + MTK_FUNCTION(2, "MD_URXD1"), 1663 + MTK_FUNCTION(5, "MBISTWRITEEN_TRIGGER") 1664 + ), 1665 + MTK_PIN( 1666 + 162, "GPIO162", 1667 + MTK_EINT_FUNCTION(0, 162), 1668 + DRV_GRP4, 1669 + MTK_FUNCTION(0, "GPIO162"), 1670 + MTK_FUNCTION(1, "UTXD1"), 1671 + MTK_FUNCTION(2, "MD_UTXD0"), 1672 + MTK_FUNCTION(3, "TP_UTXD1_VLP"), 1673 + MTK_FUNCTION(4, "ADSP_UTXD0"), 1674 + MTK_FUNCTION(5, "SSPM_UTXD_AO_VLP"), 1675 + MTK_FUNCTION(6, "HFRP_UTXD1") 1676 + ), 1677 + MTK_PIN( 1678 + 163, "GPIO163", 1679 + MTK_EINT_FUNCTION(0, 163), 1680 + DRV_GRP4, 1681 + MTK_FUNCTION(0, "GPIO163"), 1682 + MTK_FUNCTION(1, "URXD1"), 1683 + MTK_FUNCTION(2, "MD_URXD0"), 1684 + MTK_FUNCTION(3, "TP_URXD1_VLP"), 1685 + MTK_FUNCTION(4, "ADSP_URXD0"), 1686 + MTK_FUNCTION(5, "SSPM_URXD_AO_VLP"), 1687 + MTK_FUNCTION(6, "HFRP_URXD1") 1688 + ), 1689 + MTK_PIN( 1690 + 164, "GPIO164", 1691 + MTK_EINT_FUNCTION(0, 164), 1692 + DRV_GRP4, 1693 + MTK_FUNCTION(0, "GPIO164"), 1694 + MTK_FUNCTION(1, "SCP_SCL0"), 1695 + MTK_FUNCTION(6, "TP_GPIO0_AO"), 1696 + MTK_FUNCTION(7, "DBG_MON_A22") 1697 + ), 1698 + MTK_PIN( 1699 + 165, "GPIO165", 1700 + MTK_EINT_FUNCTION(0, 165), 1701 + DRV_GRP4, 1702 + MTK_FUNCTION(0, "GPIO165"), 1703 + MTK_FUNCTION(1, "SCP_SDA0"), 1704 + MTK_FUNCTION(6, "TP_GPIO1_AO"), 1705 + MTK_FUNCTION(7, "DBG_MON_A23") 1706 + ), 1707 + MTK_PIN( 1708 + 166, "GPIO166", 1709 + MTK_EINT_FUNCTION(0, 166), 1710 + DRV_GRP4, 1711 + MTK_FUNCTION(0, "GPIO166"), 1712 + MTK_FUNCTION(1, "SCP_SCL2"), 1713 + MTK_FUNCTION(6, "TP_GPIO2_AO"), 1714 + MTK_FUNCTION(7, "DBG_MON_A24") 1715 + ), 1716 + MTK_PIN( 1717 + 167, "GPIO167", 1718 + MTK_EINT_FUNCTION(0, 167), 1719 + DRV_GRP4, 1720 + MTK_FUNCTION(0, "GPIO167"), 1721 + MTK_FUNCTION(1, "SCP_SDA2"), 1722 + MTK_FUNCTION(6, "TP_GPIO3_AO"), 1723 + MTK_FUNCTION(7, "DBG_MON_A25") 1724 + ), 1725 + MTK_PIN( 1726 + 168, "GPIO168", 1727 + MTK_EINT_FUNCTION(0, 168), 1728 + DRV_GRP4, 1729 + MTK_FUNCTION(0, "GPIO168"), 1730 + MTK_FUNCTION(1, "SCP_SPI2_CK"), 1731 + MTK_FUNCTION(2, "SPI2_B_CLK"), 1732 + MTK_FUNCTION(3, "PWM_VLP"), 1733 + MTK_FUNCTION(4, "SCP_SCL2"), 1734 + MTK_FUNCTION(7, "DBG_MON_A26") 1735 + ), 1736 + MTK_PIN( 1737 + 169, "GPIO169", 1738 + MTK_EINT_FUNCTION(0, 169), 1739 + DRV_GRP4, 1740 + MTK_FUNCTION(0, "GPIO169"), 1741 + MTK_FUNCTION(1, "SCP_SPI2_CS"), 1742 + MTK_FUNCTION(2, "SPI2_B_CSB"), 1743 + MTK_FUNCTION(7, "DBG_MON_A27") 1744 + ), 1745 + MTK_PIN( 1746 + 170, "GPIO170", 1747 + MTK_EINT_FUNCTION(0, 170), 1748 + DRV_GRP4, 1749 + MTK_FUNCTION(0, "GPIO170"), 1750 + MTK_FUNCTION(1, "SCP_SPI2_MO"), 1751 + MTK_FUNCTION(2, "SPI2_B_MO"), 1752 + MTK_FUNCTION(4, "SCP_SDA2"), 1753 + MTK_FUNCTION(7, "DBG_MON_A28") 1754 + ), 1755 + MTK_PIN( 1756 + 171, "GPIO171", 1757 + MTK_EINT_FUNCTION(0, 171), 1758 + DRV_GRP4, 1759 + MTK_FUNCTION(0, "GPIO171"), 1760 + MTK_FUNCTION(1, "SCP_SPI2_MI"), 1761 + MTK_FUNCTION(2, "SPI2_B_MI"), 1762 + MTK_FUNCTION(7, "DBG_MON_A29") 1763 + ), 1764 + MTK_PIN( 1765 + 172, "GPIO172", 1766 + MTK_EINT_FUNCTION(0, 172), 1767 + DRV_GRP4, 1768 + MTK_FUNCTION(0, "GPIO172"), 1769 + MTK_FUNCTION(1, "CONN_TCXOENA_REQ") 1770 + ), 1771 + MTK_PIN( 1772 + 173, "GPIO173", 1773 + MTK_EINT_FUNCTION(0, 173), 1774 + DRV_GRP4, 1775 + MTK_FUNCTION(0, "GPIO173"), 1776 + MTK_FUNCTION(1, "CMFLASH3"), 1777 + MTK_FUNCTION(2, "PWM_3"), 1778 + MTK_FUNCTION(3, "MD_GPS_L5_BLANK"), 1779 + MTK_FUNCTION(4, "CLKM1_A"), 1780 + MTK_FUNCTION(7, "DBG_MON_A31") 1781 + ), 1782 + MTK_PIN( 1783 + 174, "GPIO174", 1784 + MTK_EINT_FUNCTION(0, 174), 1785 + DRV_GRP4, 1786 + MTK_FUNCTION(0, "GPIO174"), 1787 + MTK_FUNCTION(1, "CMFLASH0"), 1788 + MTK_FUNCTION(2, "PWM_0"), 1789 + MTK_FUNCTION(3, "VBUSVALID_1P"), 1790 + MTK_FUNCTION(4, "MD32_2_RXD"), 1791 + MTK_FUNCTION(5, "DISP_PWM3") 1792 + ), 1793 + MTK_PIN( 1794 + 175, "GPIO175", 1795 + MTK_EINT_FUNCTION(0, 175), 1796 + DRV_GRP4, 1797 + MTK_FUNCTION(0, "GPIO175"), 1798 + MTK_FUNCTION(1, "CMFLASH1"), 1799 + MTK_FUNCTION(2, "PWM_1"), 1800 + MTK_FUNCTION(3, "EDP_TX_HPD"), 1801 + MTK_FUNCTION(4, "MD32_2_TXD"), 1802 + MTK_FUNCTION(5, "DISP_PWM4") 1803 + ), 1804 + MTK_PIN( 1805 + 176, "GPIO176", 1806 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 1807 + DRV_GRP4, 1808 + MTK_FUNCTION(0, "GPIO176"), 1809 + MTK_FUNCTION(1, "SCL5"), 1810 + MTK_FUNCTION(2, "LCM3_RST"), 1811 + MTK_FUNCTION(4, "MD_URXD1_CONN"), 1812 + MTK_FUNCTION(6, "TP_UTXD_GNSS_VCORE") 1813 + ), 1814 + MTK_PIN( 1815 + 177, "GPIO177", 1816 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 1817 + DRV_GRP4, 1818 + MTK_FUNCTION(0, "GPIO177"), 1819 + MTK_FUNCTION(1, "SDA5"), 1820 + MTK_FUNCTION(2, "DSI3_TE"), 1821 + MTK_FUNCTION(4, "MD_UTXD1_CONN"), 1822 + MTK_FUNCTION(6, "TP_URXD_GNSS_VCORE") 1823 + ), 1824 + MTK_PIN( 1825 + 178, "GPIO178", 1826 + MTK_EINT_FUNCTION(0, 178), 1827 + DRV_GRP4, 1828 + MTK_FUNCTION(0, "GPIO178"), 1829 + MTK_FUNCTION(1, "DMIC_CLK"), 1830 + MTK_FUNCTION(2, "SCP_DMIC_CLK"), 1831 + MTK_FUNCTION(3, "SRCLKENAI0"), 1832 + MTK_FUNCTION(4, "CLKM2_B"), 1833 + MTK_FUNCTION(5, "TP_GPIO7_AO"), 1834 + MTK_FUNCTION(6, "SPU1_UTX"), 1835 + MTK_FUNCTION(7, "DAP_SONIC_SWCK") 1836 + ), 1837 + MTK_PIN( 1838 + 179, "GPIO179", 1839 + MTK_EINT_FUNCTION(0, 179), 1840 + DRV_GRP4, 1841 + MTK_FUNCTION(0, "GPIO179"), 1842 + MTK_FUNCTION(1, "DMIC_DAT"), 1843 + MTK_FUNCTION(2, "SCP_DMIC_DAT"), 1844 + MTK_FUNCTION(3, "SRCLKENAI1"), 1845 + MTK_FUNCTION(4, "CLKM3_B"), 1846 + MTK_FUNCTION(5, "TP_GPIO8_AO"), 1847 + MTK_FUNCTION(6, "SPU1_URX"), 1848 + MTK_FUNCTION(7, "DAP_SONIC_SWD") 1849 + ), 1850 + MTK_PIN( 1851 + 180, "GPIO180", 1852 + MTK_EINT_FUNCTION(0, 180), 1853 + DRV_GRP4, 1854 + MTK_FUNCTION(0, "GPIO180"), 1855 + MTK_FUNCTION(1, "IDDIG_1P"), 1856 + MTK_FUNCTION(2, "CMVREF0"), 1857 + MTK_FUNCTION(3, "GPS_PPS1"), 1858 + MTK_FUNCTION(4, "GPS_L5_ELNA_EN"), 1859 + MTK_FUNCTION(5, "DISP_PWM1") 1860 + ), 1861 + MTK_PIN( 1862 + 181, "GPIO181", 1863 + MTK_EINT_FUNCTION(0, 181), 1864 + DRV_GRP4, 1865 + MTK_FUNCTION(0, "GPIO181"), 1866 + MTK_FUNCTION(1, "USB_DRVVBUS_1P"), 1867 + MTK_FUNCTION(2, "CMVREF1"), 1868 + MTK_FUNCTION(3, "MFG_EB_JTAG_TRSTN"), 1869 + MTK_FUNCTION(4, "ADSP_JTAG1_TRSTN"), 1870 + MTK_FUNCTION(5, "HFRP_JTAG1_TRSTN"), 1871 + MTK_FUNCTION(6, "SPU1_NTRST"), 1872 + MTK_FUNCTION(7, "CONN_BG_GPS_MCU_TRST_B") 1873 + ), 1874 + MTK_PIN( 1875 + 182, "GPIO182", 1876 + MTK_EINT_FUNCTION(0, 182), 1877 + DRV_GRP4, 1878 + MTK_FUNCTION(0, "GPIO182"), 1879 + MTK_FUNCTION(1, "SCL11"), 1880 + MTK_FUNCTION(2, "CMVREF2"), 1881 + MTK_FUNCTION(3, "MFG_EB_JTAG_TCK"), 1882 + MTK_FUNCTION(4, "ADSP_JTAG1_TCK"), 1883 + MTK_FUNCTION(5, "HFRP_JTAG1_TCK"), 1884 + MTK_FUNCTION(6, "SPU1_TCK"), 1885 + MTK_FUNCTION(7, "CONN_BG_GPS_MCU_TCK") 1886 + ), 1887 + MTK_PIN( 1888 + 183, "GPIO183", 1889 + MTK_EINT_FUNCTION(0, 183), 1890 + DRV_GRP4, 1891 + MTK_FUNCTION(0, "GPIO183"), 1892 + MTK_FUNCTION(1, "SDA11"), 1893 + MTK_FUNCTION(2, "CMVREF3"), 1894 + MTK_FUNCTION(3, "MFG_EB_JTAG_TMS"), 1895 + MTK_FUNCTION(4, "ADSP_JTAG1_TMS"), 1896 + MTK_FUNCTION(5, "HFRP_JTAG1_TMS"), 1897 + MTK_FUNCTION(6, "SPU1_TMS"), 1898 + MTK_FUNCTION(7, "CONN_BG_GPS_MCU_TMS") 1899 + ), 1900 + MTK_PIN( 1901 + 184, "GPIO184", 1902 + MTK_EINT_FUNCTION(0, 184), 1903 + DRV_GRP4, 1904 + MTK_FUNCTION(0, "GPIO184"), 1905 + MTK_FUNCTION(1, "SCL12"), 1906 + MTK_FUNCTION(2, "CMVREF4"), 1907 + MTK_FUNCTION(3, "MFG_EB_JTAG_TDO"), 1908 + MTK_FUNCTION(4, "ADSP_JTAG1_TDO"), 1909 + MTK_FUNCTION(5, "HFRP_JTAG1_TDO"), 1910 + MTK_FUNCTION(6, "SPU1_TDO"), 1911 + MTK_FUNCTION(7, "CONN_BG_GPS_MCU_TDO") 1912 + ), 1913 + MTK_PIN( 1914 + 185, "GPIO185", 1915 + MTK_EINT_FUNCTION(0, 185), 1916 + DRV_GRP4, 1917 + MTK_FUNCTION(0, "GPIO185"), 1918 + MTK_FUNCTION(1, "SDA12"), 1919 + MTK_FUNCTION(2, "CMVREF5"), 1920 + MTK_FUNCTION(3, "MFG_EB_JTAG_TDI"), 1921 + MTK_FUNCTION(4, "ADSP_JTAG1_TDI"), 1922 + MTK_FUNCTION(5, "HFRP_JTAG1_TDI"), 1923 + MTK_FUNCTION(6, "SPU1_TDI"), 1924 + MTK_FUNCTION(7, "CONN_BG_GPS_MCU_TDI") 1925 + ), 1926 + MTK_PIN( 1927 + 186, "GPIO186", 1928 + MTK_EINT_FUNCTION(0, 186), 1929 + DRV_GRP4, 1930 + MTK_FUNCTION(0, "GPIO186"), 1931 + MTK_FUNCTION(1, "MD_GPS_L1_BLANK"), 1932 + MTK_FUNCTION(2, "PMSR_SMAP"), 1933 + MTK_FUNCTION(3, "TP_GPIO2_AO") 1934 + ), 1935 + MTK_PIN( 1936 + 187, "GPIO187", 1937 + MTK_EINT_FUNCTION(0, 187), 1938 + DRV_GRP4, 1939 + MTK_FUNCTION(0, "GPIO187"), 1940 + MTK_FUNCTION(1, "MD_GPS_L5_BLANK"), 1941 + MTK_FUNCTION(3, "TP_GPIO4_AO") 1942 + ), 1943 + MTK_PIN( 1944 + 188, "GPIO188", 1945 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 1946 + DRV_GRP4, 1947 + MTK_FUNCTION(0, "GPIO188"), 1948 + MTK_FUNCTION(1, "SCL2"), 1949 + MTK_FUNCTION(2, "SCP_SCL8") 1950 + ), 1951 + MTK_PIN( 1952 + 189, "GPIO189", 1953 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 1954 + DRV_GRP4, 1955 + MTK_FUNCTION(0, "GPIO189"), 1956 + MTK_FUNCTION(1, "SDA2"), 1957 + MTK_FUNCTION(2, "SCP_SDA8") 1958 + ), 1959 + MTK_PIN( 1960 + 190, "GPIO190", 1961 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 1962 + DRV_GRP4, 1963 + MTK_FUNCTION(0, "GPIO190"), 1964 + MTK_FUNCTION(1, "SCL4"), 1965 + MTK_FUNCTION(2, "SCP_SCL9"), 1966 + MTK_FUNCTION(6, "UDI_TDI_6") 1967 + ), 1968 + MTK_PIN( 1969 + 191, "GPIO191", 1970 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 1971 + DRV_GRP4, 1972 + MTK_FUNCTION(0, "GPIO191"), 1973 + MTK_FUNCTION(1, "SDA4"), 1974 + MTK_FUNCTION(2, "SCP_SDA9"), 1975 + MTK_FUNCTION(6, "UDI_TDI_7") 1976 + ), 1977 + MTK_PIN( 1978 + 192, "GPIO192", 1979 + MTK_EINT_FUNCTION(0, 192), 1980 + DRV_GRP4, 1981 + MTK_FUNCTION(0, "GPIO192"), 1982 + MTK_FUNCTION(1, "CMMCLK2"), 1983 + MTK_FUNCTION(4, "MD32_3_RXD") 1984 + ), 1985 + MTK_PIN( 1986 + 193, "GPIO193", 1987 + MTK_EINT_FUNCTION(0, 193), 1988 + DRV_GRP4, 1989 + MTK_FUNCTION(0, "GPIO193"), 1990 + MTK_FUNCTION(3, "CLKM0_B"), 1991 + MTK_FUNCTION(4, "MD32_3_TXD"), 1992 + MTK_FUNCTION(6, "UDI_TDO_7") 1993 + ), 1994 + MTK_PIN( 1995 + 194, "GPIO194", 1996 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 1997 + DRV_GRP4, 1998 + MTK_FUNCTION(0, "GPIO194"), 1999 + MTK_FUNCTION(1, "SCL7"), 2000 + MTK_FUNCTION(2, "MD32_3_GPIO0"), 2001 + MTK_FUNCTION(3, "CLKM2_B"), 2002 + MTK_FUNCTION(6, "UDI_TDI_2") 2003 + ), 2004 + MTK_PIN( 2005 + 195, "GPIO195", 2006 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2007 + DRV_GRP4, 2008 + MTK_FUNCTION(0, "GPIO195"), 2009 + MTK_FUNCTION(1, "SDA7"), 2010 + MTK_FUNCTION(3, "CLKM3_B"), 2011 + MTK_FUNCTION(6, "UDI_TDI_3") 2012 + ), 2013 + MTK_PIN( 2014 + 196, "GPIO196", 2015 + MTK_EINT_FUNCTION(0, 196), 2016 + DRV_GRP4, 2017 + MTK_FUNCTION(0, "GPIO196"), 2018 + MTK_FUNCTION(1, "CMMCLK3") 2019 + ), 2020 + MTK_PIN( 2021 + 197, "GPIO197", 2022 + MTK_EINT_FUNCTION(0, 197), 2023 + DRV_GRP4, 2024 + MTK_FUNCTION(0, "GPIO197"), 2025 + MTK_FUNCTION(3, "CLKM1_B"), 2026 + MTK_FUNCTION(6, "UDI_TDI_1") 2027 + ), 2028 + MTK_PIN( 2029 + 198, "GPIO198", 2030 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2031 + DRV_GRP4, 2032 + MTK_FUNCTION(0, "GPIO198"), 2033 + MTK_FUNCTION(1, "SCL8"), 2034 + MTK_FUNCTION(6, "UDI_TDI_4") 2035 + ), 2036 + MTK_PIN( 2037 + 199, "GPIO199", 2038 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2039 + DRV_GRP4, 2040 + MTK_FUNCTION(0, "GPIO199"), 2041 + MTK_FUNCTION(1, "SDA8"), 2042 + MTK_FUNCTION(6, "UDI_TDI_5") 2043 + ), 2044 + MTK_PIN( 2045 + 200, "GPIO200", 2046 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2047 + DRV_GRP4, 2048 + MTK_FUNCTION(0, "GPIO200"), 2049 + MTK_FUNCTION(1, "SCL1") 2050 + ), 2051 + MTK_PIN( 2052 + 201, "GPIO201", 2053 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2054 + DRV_GRP4, 2055 + MTK_FUNCTION(0, "GPIO201"), 2056 + MTK_FUNCTION(1, "SDA1"), 2057 + MTK_FUNCTION(7, "TSFDC_BG_COMP") 2058 + ), 2059 + MTK_PIN( 2060 + 202, "GPIO202", 2061 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2062 + DRV_GRP4, 2063 + MTK_FUNCTION(0, "GPIO202"), 2064 + MTK_FUNCTION(1, "SCL9"), 2065 + MTK_FUNCTION(2, "SCP_SCL7"), 2066 + MTK_FUNCTION(6, "TP_GPIO15_AO") 2067 + ), 2068 + MTK_PIN( 2069 + 203, "GPIO203", 2070 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2071 + DRV_GRP4, 2072 + MTK_FUNCTION(0, "GPIO203"), 2073 + MTK_FUNCTION(1, "SDA9"), 2074 + MTK_FUNCTION(2, "SCP_SDA7"), 2075 + MTK_FUNCTION(6, "TP_GPIO9_AO") 2076 + ), 2077 + MTK_PIN( 2078 + 204, "GPIO204", 2079 + MTK_EINT_FUNCTION(0, 204), 2080 + DRV_GRP4, 2081 + MTK_FUNCTION(0, "GPIO204"), 2082 + MTK_FUNCTION(1, "SCL13"), 2083 + MTK_FUNCTION(2, "CMVREF6"), 2084 + MTK_FUNCTION(3, "GPS_L1_ELNA_EN"), 2085 + MTK_FUNCTION(5, "CLKM2_B"), 2086 + MTK_FUNCTION(6, "TP_GPIO12_AO") 2087 + ), 2088 + MTK_PIN( 2089 + 205, "GPIO205", 2090 + MTK_EINT_FUNCTION(0, 205), 2091 + DRV_GRP4, 2092 + MTK_FUNCTION(0, "GPIO205"), 2093 + MTK_FUNCTION(1, "SDA13"), 2094 + MTK_FUNCTION(2, "CMVREF7"), 2095 + MTK_FUNCTION(3, "GPS_L5_ELNA_EN"), 2096 + MTK_FUNCTION(5, "CLKM3_B"), 2097 + MTK_FUNCTION(6, "TP_GPIO13_AO") 2098 + ), 2099 + MTK_PIN( 2100 + 206, "GPIO206", 2101 + MTK_EINT_FUNCTION(0, 206), 2102 + DRV_GRP4, 2103 + MTK_FUNCTION(0, "GPIO206"), 2104 + MTK_FUNCTION(2, "MD32_2_GPIO0"), 2105 + MTK_FUNCTION(5, "VBUSVALID"), 2106 + MTK_FUNCTION(6, "UDI_TDO_3") 2107 + ), 2108 + MTK_PIN( 2109 + 207, "GPIO207", 2110 + MTK_EINT_FUNCTION(0, 207), 2111 + DRV_GRP4, 2112 + MTK_FUNCTION(0, "GPIO207"), 2113 + MTK_FUNCTION(1, "PCIE_WAKEN_2P"), 2114 + MTK_FUNCTION(2, "PMSR_SMAP_MAX"), 2115 + MTK_FUNCTION(4, "FMI2S_A_BCK"), 2116 + MTK_FUNCTION(6, "UDI_TDO_4") 2117 + ), 2118 + MTK_PIN( 2119 + 208, "GPIO208", 2120 + MTK_EINT_FUNCTION(0, 208), 2121 + DRV_GRP4, 2122 + MTK_FUNCTION(0, "GPIO208"), 2123 + MTK_FUNCTION(1, "PCIE_CLKREQN_2P"), 2124 + MTK_FUNCTION(2, "PMSR_SMAP_MAX_W"), 2125 + MTK_FUNCTION(4, "FMI2S_A_LRCK"), 2126 + MTK_FUNCTION(5, "CLKM0_B"), 2127 + MTK_FUNCTION(6, "UDI_TDO_5") 2128 + ), 2129 + MTK_PIN( 2130 + 209, "GPIO209", 2131 + MTK_EINT_FUNCTION(0, 209), 2132 + DRV_GRP4, 2133 + MTK_FUNCTION(0, "GPIO209"), 2134 + MTK_FUNCTION(1, "PCIE_PERSTN_2P"), 2135 + MTK_FUNCTION(2, "PMSR_SMAP"), 2136 + MTK_FUNCTION(4, "FMI2S_A_DI"), 2137 + MTK_FUNCTION(5, "CLKM1_B"), 2138 + MTK_FUNCTION(6, "UDI_TDO_6") 2139 + ), 2140 + MTK_PIN( 2141 + 210, "GPIO210", 2142 + MTK_EINT_FUNCTION(0, 210), 2143 + DRV_GRP4, 2144 + MTK_FUNCTION(0, "GPIO210"), 2145 + MTK_FUNCTION(1, "CMMCLK4") 2146 + ), 2147 + MTK_PIN( 2148 + 211, "GPIO211", 2149 + MTK_EINT_FUNCTION(0, 211), 2150 + DRV_GRP4, 2151 + MTK_FUNCTION(0, "GPIO211"), 2152 + MTK_FUNCTION(1, "CMMCLK5"), 2153 + MTK_FUNCTION(2, "CONN_TCXOENA_REQ") 2154 + ), 2155 + MTK_PIN( 2156 + 212, "GPIO212", 2157 + MTK_EINT_FUNCTION(0, 212), 2158 + DRV_GRP4, 2159 + MTK_FUNCTION(0, "GPIO212"), 2160 + MTK_FUNCTION(1, "CMMCLK6"), 2161 + MTK_FUNCTION(2, "TP_GPIO10_AO"), 2162 + MTK_FUNCTION(5, "IDDIG"), 2163 + MTK_FUNCTION(6, "UDI_TDO_1") 2164 + ), 2165 + MTK_PIN( 2166 + 213, "GPIO213", 2167 + MTK_EINT_FUNCTION(0, 213), 2168 + DRV_GRP4, 2169 + MTK_FUNCTION(0, "GPIO213"), 2170 + MTK_FUNCTION(1, "CMMCLK7"), 2171 + MTK_FUNCTION(2, "TP_GPIO11_AO"), 2172 + MTK_FUNCTION(5, "USB_DRVVBUS"), 2173 + MTK_FUNCTION(6, "UDI_TDO_2") 2174 + ), 2175 + MTK_PIN( 2176 + 214, "GPIO214", 2177 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2178 + DRV_GRP4, 2179 + MTK_FUNCTION(0, "GPIO214"), 2180 + MTK_FUNCTION(1, "SCP_SCL3"), 2181 + MTK_FUNCTION(2, "SDA14_E1_SCL14_E2"), 2182 + MTK_FUNCTION(6, "GBE1_MDC"), 2183 + MTK_FUNCTION(7, "GBE0_MDC") 2184 + ), 2185 + MTK_PIN( 2186 + 215, "GPIO215", 2187 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2188 + DRV_GRP4, 2189 + MTK_FUNCTION(0, "GPIO215"), 2190 + MTK_FUNCTION(1, "SCP_SDA3"), 2191 + MTK_FUNCTION(2, "SCL14_E1_SDA14_E2"), 2192 + MTK_FUNCTION(6, "GBE1_MDIO"), 2193 + MTK_FUNCTION(7, "GBE0_MDIO") 2194 + ), 2195 + MTK_PIN( 2196 + 216, "GPIO216", 2197 + MTK_EINT_FUNCTION(0, 216), 2198 + DRV_GRP4, 2199 + MTK_FUNCTION(0, "GPIO216"), 2200 + MTK_FUNCTION(1, "GPS_PPS0") 2201 + ), 2202 + MTK_PIN( 2203 + 217, "GPIO217", 2204 + MTK_EINT_FUNCTION(0, 217), 2205 + DRV_GRP4, 2206 + MTK_FUNCTION(0, "GPIO217"), 2207 + MTK_FUNCTION(1, "KPROW0"), 2208 + MTK_FUNCTION(6, "TP_GPIO12_AO") 2209 + ), 2210 + MTK_PIN( 2211 + 218, "GPIO218", 2212 + MTK_EINT_FUNCTION(0, 218), 2213 + DRV_GRP4, 2214 + MTK_FUNCTION(0, "GPIO218"), 2215 + MTK_FUNCTION(1, "KPROW1"), 2216 + MTK_FUNCTION(2, "SPI0_WP"), 2217 + MTK_FUNCTION(3, "MBISTREADEN_TRIGGER"), 2218 + MTK_FUNCTION(5, "GPS_L5_ELNA_EN"), 2219 + MTK_FUNCTION(6, "TP_GPIO14_AO") 2220 + ), 2221 + MTK_PIN( 2222 + 219, "GPIO219", 2223 + MTK_EINT_FUNCTION(0, 219), 2224 + DRV_GRP4, 2225 + MTK_FUNCTION(0, "GPIO219"), 2226 + MTK_FUNCTION(1, "KPCOL1"), 2227 + MTK_FUNCTION(2, "SPI0_HOLD"), 2228 + MTK_FUNCTION(3, "MBISTWRITEEN_TRIGGER"), 2229 + MTK_FUNCTION(4, "SPMI_M_TRIG_FLAG"), 2230 + MTK_FUNCTION(5, "GPS_L1_ELNA_EN"), 2231 + MTK_FUNCTION(6, "SPM_JTAG_TRSTN_VLP"), 2232 + MTK_FUNCTION(7, "JTRSTN_SEL1") 2233 + ), 2234 + MTK_PIN( 2235 + 220, "GPIO220", 2236 + MTK_EINT_FUNCTION(0, 220), 2237 + DRV_GRP4, 2238 + MTK_FUNCTION(0, "GPIO220"), 2239 + MTK_FUNCTION(1, "SPI0_CLK"), 2240 + MTK_FUNCTION(6, "SPM_JTAG_TCK_VLP"), 2241 + MTK_FUNCTION(7, "JTCK_SEL1") 2242 + ), 2243 + MTK_PIN( 2244 + 221, "GPIO221", 2245 + MTK_EINT_FUNCTION(0, 221), 2246 + DRV_GRP4, 2247 + MTK_FUNCTION(0, "GPIO221"), 2248 + MTK_FUNCTION(1, "SPI0_CSB"), 2249 + MTK_FUNCTION(6, "SPM_JTAG_TMS_VLP"), 2250 + MTK_FUNCTION(7, "JTMS_SEL1") 2251 + ), 2252 + MTK_PIN( 2253 + 222, "GPIO222", 2254 + MTK_EINT_FUNCTION(0, 222), 2255 + DRV_GRP4, 2256 + MTK_FUNCTION(0, "GPIO222"), 2257 + MTK_FUNCTION(1, "SPI0_MO"), 2258 + MTK_FUNCTION(2, "SCP_SCL7"), 2259 + MTK_FUNCTION(6, "SPM_JTAG_TDO_VLP"), 2260 + MTK_FUNCTION(7, "JTDO_SEL1") 2261 + ), 2262 + MTK_PIN( 2263 + 223, "GPIO223", 2264 + MTK_EINT_FUNCTION(0, 223), 2265 + DRV_GRP4, 2266 + MTK_FUNCTION(0, "GPIO223"), 2267 + MTK_FUNCTION(1, "SPI0_MI"), 2268 + MTK_FUNCTION(2, "SCP_SDA7"), 2269 + MTK_FUNCTION(6, "SPM_JTAG_TDI_VLP"), 2270 + MTK_FUNCTION(7, "JTDI_SEL1") 2271 + ), 2272 + MTK_PIN( 2273 + 224, "GPIO224", 2274 + MTK_EINT_FUNCTION(0, 224), 2275 + DRV_GRP4, 2276 + MTK_FUNCTION(0, "GPIO224"), 2277 + MTK_FUNCTION(1, "MSDC2_CLK"), 2278 + MTK_FUNCTION(2, "DMIC2_CLK"), 2279 + MTK_FUNCTION(3, "GBE0_AUX_PPS0"), 2280 + MTK_FUNCTION(4, "GBE0_TXER"), 2281 + MTK_FUNCTION(5, "GBE1_TXER"), 2282 + MTK_FUNCTION(6, "GBE1_AUX_PPS0"), 2283 + MTK_FUNCTION(7, "MD32_1_TXD") 2284 + ), 2285 + MTK_PIN( 2286 + 225, "GPIO225", 2287 + MTK_EINT_FUNCTION(0, 225), 2288 + DRV_GRP4, 2289 + MTK_FUNCTION(0, "GPIO225"), 2290 + MTK_FUNCTION(1, "MSDC2_CMD"), 2291 + MTK_FUNCTION(2, "DMIC2_DAT"), 2292 + MTK_FUNCTION(3, "GBE0_AUX_PPS1"), 2293 + MTK_FUNCTION(4, "GBE0_RXER"), 2294 + MTK_FUNCTION(5, "GBE1_RXER"), 2295 + MTK_FUNCTION(6, "GBE1_AUX_PPS1"), 2296 + MTK_FUNCTION(7, "MD32_1_RXD") 2297 + ), 2298 + MTK_PIN( 2299 + 226, "GPIO226", 2300 + MTK_EINT_FUNCTION(0, 226), 2301 + DRV_GRP4, 2302 + MTK_FUNCTION(0, "GPIO226"), 2303 + MTK_FUNCTION(1, "MSDC2_DAT0"), 2304 + MTK_FUNCTION(2, "I2SIN3_BCK"), 2305 + MTK_FUNCTION(3, "GBE0_AUX_PPS2"), 2306 + MTK_FUNCTION(4, "GBE0_COL"), 2307 + MTK_FUNCTION(5, "GBE1_COL"), 2308 + MTK_FUNCTION(6, "GBE1_AUX_PPS2"), 2309 + MTK_FUNCTION(7, "GBE1_MDC") 2310 + ), 2311 + MTK_PIN( 2312 + 227, "GPIO227", 2313 + MTK_EINT_FUNCTION(0, 227), 2314 + DRV_GRP4, 2315 + MTK_FUNCTION(0, "GPIO227"), 2316 + MTK_FUNCTION(1, "MSDC2_DAT1"), 2317 + MTK_FUNCTION(2, "I2SIN3_LRCK"), 2318 + MTK_FUNCTION(3, "GBE0_AUX_PPS3"), 2319 + MTK_FUNCTION(4, "GBE0_INTR"), 2320 + MTK_FUNCTION(5, "GBE1_INTR"), 2321 + MTK_FUNCTION(6, "GBE1_AUX_PPS3"), 2322 + MTK_FUNCTION(7, "GBE1_MDIO") 2323 + ), 2324 + MTK_PIN( 2325 + 228, "GPIO228", 2326 + MTK_EINT_FUNCTION(0, 228), 2327 + DRV_GRP4, 2328 + MTK_FUNCTION(0, "GPIO228"), 2329 + MTK_FUNCTION(1, "MSDC2_DAT2"), 2330 + MTK_FUNCTION(2, "I2SIN3_DI"), 2331 + MTK_FUNCTION(3, "GBE0_MDC"), 2332 + MTK_FUNCTION(4, "GBE1_MDC"), 2333 + MTK_FUNCTION(5, "CONN_BG_GPS_MCU_AICE_TCKC") 2334 + ), 2335 + MTK_PIN( 2336 + 229, "GPIO229", 2337 + MTK_EINT_FUNCTION(0, 229), 2338 + DRV_GRP4, 2339 + MTK_FUNCTION(0, "GPIO229"), 2340 + MTK_FUNCTION(1, "MSDC2_DAT3"), 2341 + MTK_FUNCTION(2, "I2SOUT3_DO"), 2342 + MTK_FUNCTION(3, "GBE0_MDIO"), 2343 + MTK_FUNCTION(4, "GBE1_MDIO"), 2344 + MTK_FUNCTION(5, "CONN_BG_GPS_MCU_AICE_TMSC"), 2345 + MTK_FUNCTION(7, "AVB_CLK2") 2346 + ), 2347 + MTK_PIN( 2348 + 230, "GPIO230", 2349 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2350 + DRV_GRP4, 2351 + MTK_FUNCTION(0, "GPIO230"), 2352 + MTK_FUNCTION(1, "CONN_TOP_CLK") 2353 + ), 2354 + MTK_PIN( 2355 + 231, "GPIO231", 2356 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2357 + DRV_GRP4, 2358 + MTK_FUNCTION(0, "GPIO231"), 2359 + MTK_FUNCTION(1, "CONN_TOP_DATA") 2360 + ), 2361 + MTK_PIN( 2362 + 232, "GPIO232", 2363 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2364 + DRV_GRP4, 2365 + MTK_FUNCTION(0, "GPIO232"), 2366 + MTK_FUNCTION(1, "CONN_HRST_B") 2367 + ), 2368 + MTK_PIN( 2369 + 233, "GPIO233", 2370 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2371 + DRV_GRP4, 2372 + MTK_FUNCTION(0, "GPIO233"), 2373 + MTK_FUNCTION(1, "I2SIN0_BCK") 2374 + ), 2375 + MTK_PIN( 2376 + 234, "GPIO234", 2377 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2378 + DRV_GRP4, 2379 + MTK_FUNCTION(0, "GPIO234"), 2380 + MTK_FUNCTION(1, "I2SIN0_LRCK") 2381 + ), 2382 + MTK_PIN( 2383 + 235, "GPIO235", 2384 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2385 + DRV_GRP4, 2386 + MTK_FUNCTION(0, "GPIO235"), 2387 + MTK_FUNCTION(1, "I2SIN0_DI") 2388 + ), 2389 + MTK_PIN( 2390 + 236, "GPIO236", 2391 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2392 + DRV_GRP4, 2393 + MTK_FUNCTION(0, "GPIO236"), 2394 + MTK_FUNCTION(1, "I2SOUT0_DO") 2395 + ), 2396 + MTK_PIN( 2397 + 237, "GPIO237", 2398 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2399 + DRV_GRP4, 2400 + MTK_FUNCTION(0, "GPIO237"), 2401 + MTK_FUNCTION(1, "CONN_UARTHUB_UART_TX"), 2402 + MTK_FUNCTION(3, "UTXD3") 2403 + ), 2404 + MTK_PIN( 2405 + 238, "GPIO238", 2406 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2407 + DRV_GRP4, 2408 + MTK_FUNCTION(0, "GPIO238"), 2409 + MTK_FUNCTION(1, "CONN_UARTHUB_UART_RX"), 2410 + MTK_FUNCTION(3, "URXD3") 2411 + ), 2412 + MTK_PIN( 2413 + 239, "GPIO239", 2414 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2415 + DRV_GRP4, 2416 + MTK_FUNCTION(0, "GPIO239"), 2417 + MTK_FUNCTION(1, "TP_UTXD_CONSYS_VLP"), 2418 + MTK_FUNCTION(2, "TP_URXD_CONSYS_VLP") 2419 + ), 2420 + MTK_PIN( 2421 + 240, "GPIO240", 2422 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2423 + DRV_GRP4, 2424 + MTK_FUNCTION(0, "GPIO240"), 2425 + MTK_FUNCTION(1, "TP_URXD_CONSYS_VLP"), 2426 + MTK_FUNCTION(2, "TP_UTXD_CONSYS_VLP") 2427 + ), 2428 + MTK_PIN( 2429 + 241, "GPIO241", 2430 + MTK_EINT_FUNCTION(0, 241), 2431 + DRV_GRP4, 2432 + MTK_FUNCTION(0, "GPIO241"), 2433 + MTK_FUNCTION(1, "PCIE_PERSTN") 2434 + ), 2435 + MTK_PIN( 2436 + 242, "GPIO242", 2437 + MTK_EINT_FUNCTION(0, 242), 2438 + DRV_GRP4, 2439 + MTK_FUNCTION(0, "GPIO242"), 2440 + MTK_FUNCTION(1, "PCIE_WAKEN") 2441 + ), 2442 + MTK_PIN( 2443 + 243, "GPIO243", 2444 + MTK_EINT_FUNCTION(0, 243), 2445 + DRV_GRP4, 2446 + MTK_FUNCTION(0, "GPIO243"), 2447 + MTK_FUNCTION(1, "PCIE_CLKREQN") 2448 + ), 2449 + MTK_PIN( 2450 + 244, "GPIO244", 2451 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2452 + DRV_GRP4, 2453 + MTK_FUNCTION(0, "GPIO244"), 2454 + MTK_FUNCTION(1, "CONN_RST") 2455 + ), 2456 + MTK_PIN( 2457 + 245, "GPIO245", 2458 + MTK_EINT_FUNCTION(0, 245), 2459 + DRV_GRP4, 2460 + MTK_FUNCTION(0, "GPIO245") 2461 + ), 2462 + MTK_PIN( 2463 + 246, "GPIO246", 2464 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2465 + DRV_GRP4, 2466 + MTK_FUNCTION(0, "GPIO246"), 2467 + MTK_FUNCTION(1, "CONN_PTA_TXD0") 2468 + ), 2469 + MTK_PIN( 2470 + 247, "GPIO247", 2471 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2472 + DRV_GRP4, 2473 + MTK_FUNCTION(0, "GPIO247"), 2474 + MTK_FUNCTION(1, "CONN_PTA_RXD0") 2475 + ), 2476 + MTK_PIN( 2477 + 248, "GPIO248", 2478 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2479 + DRV_GRP4, 2480 + MTK_FUNCTION(0, "GPIO248"), 2481 + MTK_FUNCTION(3, "UCTS3") 2482 + ), 2483 + MTK_PIN( 2484 + 249, "GPIO249", 2485 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2486 + DRV_GRP4, 2487 + MTK_FUNCTION(0, "GPIO249"), 2488 + MTK_FUNCTION(3, "URTS3") 2489 + ), 2490 + MTK_PIN( 2491 + 250, "GPIO250", 2492 + MTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT), 2493 + DRV_GRP4, 2494 + MTK_FUNCTION(0, "GPIO250") 2495 + ), 2496 + MTK_PIN( 2497 + 251, "GPIO251", 2498 + MTK_EINT_FUNCTION(0, 251), 2499 + DRV_GRP4, 2500 + MTK_FUNCTION(0, "GPIO251"), 2501 + MTK_FUNCTION(1, "IDDIG_1P") 2502 + ), 2503 + MTK_PIN( 2504 + 252, "GPIO252", 2505 + MTK_EINT_FUNCTION(0, 252), 2506 + DRV_GRP4, 2507 + MTK_FUNCTION(0, "GPIO252"), 2508 + MTK_FUNCTION(1, "USB_DRVVBUS_1P") 2509 + ), 2510 + MTK_PIN( 2511 + 253, "GPIO253", 2512 + MTK_EINT_FUNCTION(0, 253), 2513 + DRV_GRP4, 2514 + MTK_FUNCTION(0, "GPIO253"), 2515 + MTK_FUNCTION(1, "VBUSVALID_1P") 2516 + ), 2517 + MTK_PIN( 2518 + 254, "GPIO254", 2519 + MTK_EINT_FUNCTION(0, 254), 2520 + DRV_GRP4, 2521 + MTK_FUNCTION(0, "GPIO254"), 2522 + MTK_FUNCTION(1, "IDDIG_2P") 2523 + ), 2524 + MTK_PIN( 2525 + 255, "GPIO255", 2526 + MTK_EINT_FUNCTION(0, 255), 2527 + DRV_GRP4, 2528 + MTK_FUNCTION(0, "GPIO255"), 2529 + MTK_FUNCTION(1, "USB_DRVVBUS_2P") 2530 + ), 2531 + MTK_PIN( 2532 + 256, "GPIO256", 2533 + MTK_EINT_FUNCTION(0, 256), 2534 + DRV_GRP4, 2535 + MTK_FUNCTION(0, "GPIO256"), 2536 + MTK_FUNCTION(1, "VBUSVALID_2P") 2537 + ), 2538 + MTK_PIN( 2539 + 257, "GPIO257", 2540 + MTK_EINT_FUNCTION(0, 257), 2541 + DRV_GRP4, 2542 + MTK_FUNCTION(0, "GPIO257"), 2543 + MTK_FUNCTION(1, "VBUSVALID_3P") 2544 + ), 2545 + MTK_PIN( 2546 + 258, "GPIO258", 2547 + MTK_EINT_FUNCTION(0, 258), 2548 + DRV_GRP4, 2549 + MTK_FUNCTION(0, "GPIO258"), 2550 + MTK_FUNCTION(7, "AVB_CLK1") 2551 + ), 2552 + MTK_PIN( 2553 + 259, "GPIO259", 2554 + MTK_EINT_FUNCTION(0, 259), 2555 + DRV_GRP4, 2556 + MTK_FUNCTION(0, "GPIO259"), 2557 + MTK_FUNCTION(1, "GBE0_TXD0"), 2558 + MTK_FUNCTION(2, "GBE1_TXD0") 2559 + ), 2560 + MTK_PIN( 2561 + 260, "GPIO260", 2562 + MTK_EINT_FUNCTION(0, 260), 2563 + DRV_GRP4, 2564 + MTK_FUNCTION(0, "GPIO260"), 2565 + MTK_FUNCTION(1, "GBE0_TXD1"), 2566 + MTK_FUNCTION(2, "GBE1_TXD1") 2567 + ), 2568 + MTK_PIN( 2569 + 261, "GPIO261", 2570 + MTK_EINT_FUNCTION(0, 261), 2571 + DRV_GRP4, 2572 + MTK_FUNCTION(0, "GPIO261"), 2573 + MTK_FUNCTION(1, "GBE0_TXC"), 2574 + MTK_FUNCTION(2, "GBE1_TXC") 2575 + ), 2576 + MTK_PIN( 2577 + 262, "GPIO262", 2578 + MTK_EINT_FUNCTION(0, 262), 2579 + DRV_GRP4, 2580 + MTK_FUNCTION(0, "GPIO262"), 2581 + MTK_FUNCTION(1, "GBE0_TXEN"), 2582 + MTK_FUNCTION(2, "GBE1_TXEN") 2583 + ), 2584 + MTK_PIN( 2585 + 263, "GPIO263", 2586 + MTK_EINT_FUNCTION(0, 263), 2587 + DRV_GRP4, 2588 + MTK_FUNCTION(0, "GPIO263"), 2589 + MTK_FUNCTION(1, "GBE0_RXD0"), 2590 + MTK_FUNCTION(2, "GBE1_RXD0"), 2591 + MTK_FUNCTION(3, "GBE0_AUX_PPS0") 2592 + ), 2593 + MTK_PIN( 2594 + 264, "GPIO264", 2595 + MTK_EINT_FUNCTION(0, 264), 2596 + DRV_GRP4, 2597 + MTK_FUNCTION(0, "GPIO264"), 2598 + MTK_FUNCTION(1, "GBE0_RXD1"), 2599 + MTK_FUNCTION(2, "GBE1_RXD1"), 2600 + MTK_FUNCTION(3, "GBE0_AUX_PPS1") 2601 + ), 2602 + MTK_PIN( 2603 + 265, "GPIO265", 2604 + MTK_EINT_FUNCTION(0, 265), 2605 + DRV_GRP4, 2606 + MTK_FUNCTION(0, "GPIO265"), 2607 + MTK_FUNCTION(1, "GBE0_RXC"), 2608 + MTK_FUNCTION(2, "GBE1_RXC"), 2609 + MTK_FUNCTION(3, "GBE0_AUX_PPS2") 2610 + ), 2611 + MTK_PIN( 2612 + 266, "GPIO266", 2613 + MTK_EINT_FUNCTION(0, 266), 2614 + DRV_GRP4, 2615 + MTK_FUNCTION(0, "GPIO266"), 2616 + MTK_FUNCTION(1, "GBE0_RXDV"), 2617 + MTK_FUNCTION(2, "GBE1_RXDV"), 2618 + MTK_FUNCTION(3, "GBE0_AUX_PPS3") 2619 + ), 2620 + MTK_PIN( 2621 + 267, "GPIO267", 2622 + MTK_EINT_FUNCTION(0, 267), 2623 + DRV_GRP4, 2624 + MTK_FUNCTION(0, "GPIO267"), 2625 + MTK_FUNCTION(1, "GBE0_TXD2"), 2626 + MTK_FUNCTION(2, "GBE1_TXD2"), 2627 + MTK_FUNCTION(3, "GBE0_RXER"), 2628 + MTK_FUNCTION(4, "GBE1_RXER") 2629 + ), 2630 + MTK_PIN( 2631 + 268, "GPIO268", 2632 + MTK_EINT_FUNCTION(0, 268), 2633 + DRV_GRP4, 2634 + MTK_FUNCTION(0, "GPIO268"), 2635 + MTK_FUNCTION(1, "GBE0_TXD3"), 2636 + MTK_FUNCTION(2, "GBE1_TXD3") 2637 + ), 2638 + MTK_PIN( 2639 + 269, "GPIO269", 2640 + MTK_EINT_FUNCTION(0, 269), 2641 + DRV_GRP4, 2642 + MTK_FUNCTION(0, "GPIO269"), 2643 + MTK_FUNCTION(1, "GBE0_RXD2"), 2644 + MTK_FUNCTION(2, "GBE1_RXD2"), 2645 + MTK_FUNCTION(3, "GBE0_MDC") 2646 + ), 2647 + MTK_PIN( 2648 + 270, "GPIO270", 2649 + MTK_EINT_FUNCTION(0, 270), 2650 + DRV_GRP4, 2651 + MTK_FUNCTION(0, "GPIO270"), 2652 + MTK_FUNCTION(1, "GBE0_RXD3"), 2653 + MTK_FUNCTION(2, "GBE1_RXD3"), 2654 + MTK_FUNCTION(3, "GBE0_MDIO") 2655 + ), 2656 + MTK_PIN( 2657 + 271, "veint271", 2658 + MTK_EINT_FUNCTION(0, 271), 2659 + DRV_GRP4, 2660 + MTK_FUNCTION(0, NULL) 2661 + ), 2662 + MTK_PIN( 2663 + 272, "veint272", 2664 + MTK_EINT_FUNCTION(0, 272), 2665 + DRV_GRP4, 2666 + MTK_FUNCTION(0, NULL) 2667 + ), 2668 + MTK_PIN( 2669 + 273, "veint273", 2670 + MTK_EINT_FUNCTION(0, 273), 2671 + DRV_GRP4, 2672 + MTK_FUNCTION(0, NULL) 2673 + ), 2674 + MTK_PIN( 2675 + 274, "veint274", 2676 + MTK_EINT_FUNCTION(0, 274), 2677 + DRV_GRP4, 2678 + MTK_FUNCTION(0, NULL) 2679 + ), 2680 + MTK_PIN( 2681 + 275, "veint275", 2682 + MTK_EINT_FUNCTION(0, 275), 2683 + DRV_GRP4, 2684 + MTK_FUNCTION(0, NULL) 2685 + ), 2686 + MTK_PIN( 2687 + 276, "veint276", 2688 + MTK_EINT_FUNCTION(0, 276), 2689 + DRV_GRP4, 2690 + MTK_FUNCTION(0, NULL) 2691 + ), 2692 + MTK_PIN( 2693 + 277, "veint277", 2694 + MTK_EINT_FUNCTION(0, 277), 2695 + DRV_GRP4, 2696 + MTK_FUNCTION(0, NULL) 2697 + ), 2698 + MTK_PIN( 2699 + 278, "veint278", 2700 + MTK_EINT_FUNCTION(0, 278), 2701 + DRV_GRP4, 2702 + MTK_FUNCTION(0, NULL) 2703 + ), 2704 + MTK_PIN( 2705 + 279, "veint279", 2706 + MTK_EINT_FUNCTION(0, 279), 2707 + DRV_GRP4, 2708 + MTK_FUNCTION(0, NULL) 2709 + ), 2710 + MTK_PIN( 2711 + 280, "veint280", 2712 + MTK_EINT_FUNCTION(0, 280), 2713 + DRV_GRP4, 2714 + MTK_FUNCTION(0, NULL) 2715 + ), 2716 + MTK_PIN( 2717 + 281, "veint281", 2718 + MTK_EINT_FUNCTION(0, 281), 2719 + DRV_GRP4, 2720 + MTK_FUNCTION(0, NULL) 2721 + ), 2722 + MTK_PIN( 2723 + 282, "veint282", 2724 + MTK_EINT_FUNCTION(0, 282), 2725 + DRV_GRP4, 2726 + MTK_FUNCTION(0, NULL) 2727 + ), 2728 + MTK_PIN( 2729 + 283, "veint283", 2730 + MTK_EINT_FUNCTION(0, 283), 2731 + DRV_GRP4, 2732 + MTK_FUNCTION(0, NULL) 2733 + ), 2734 + MTK_PIN( 2735 + 284, "veint284", 2736 + MTK_EINT_FUNCTION(0, 284), 2737 + DRV_GRP4, 2738 + MTK_FUNCTION(0, NULL) 2739 + ), 2740 + MTK_PIN( 2741 + 285, "veint285", 2742 + MTK_EINT_FUNCTION(0, 285), 2743 + DRV_GRP4, 2744 + MTK_FUNCTION(0, NULL) 2745 + ), 2746 + MTK_PIN( 2747 + 286, "veint286", 2748 + MTK_EINT_FUNCTION(0, 286), 2749 + DRV_GRP4, 2750 + MTK_FUNCTION(0, NULL) 2751 + ), 2752 + MTK_PIN( 2753 + 287, "veint287", 2754 + MTK_EINT_FUNCTION(0, 287), 2755 + DRV_GRP4, 2756 + MTK_FUNCTION(0, NULL) 2757 + ), 2758 + MTK_PIN( 2759 + 288, "veint288", 2760 + MTK_EINT_FUNCTION(0, 288), 2761 + DRV_GRP4, 2762 + MTK_FUNCTION(0, NULL) 2763 + ), 2764 + MTK_PIN( 2765 + 289, "veint289", 2766 + MTK_EINT_FUNCTION(0, 289), 2767 + DRV_GRP4, 2768 + MTK_FUNCTION(0, NULL) 2769 + ), 2770 + MTK_PIN( 2771 + 290, "veint290", 2772 + MTK_EINT_FUNCTION(0, 290), 2773 + DRV_GRP4, 2774 + MTK_FUNCTION(0, NULL) 2775 + ), 2776 + MTK_PIN( 2777 + 291, "veint291", 2778 + MTK_EINT_FUNCTION(0, 291), 2779 + DRV_GRP4, 2780 + MTK_FUNCTION(0, NULL) 2781 + ), 2782 + MTK_PIN( 2783 + 292, "veint292", 2784 + MTK_EINT_FUNCTION(0, 292), 2785 + DRV_GRP4, 2786 + MTK_FUNCTION(0, NULL) 2787 + ) 2788 + }; 2789 + 2790 + static struct mtk_eint_pin eint_pins_mt8196[] = { 2791 + MTK_EINT_PIN(0, 2, 0, 1), 2792 + MTK_EINT_PIN(1, 2, 1, 1), 2793 + MTK_EINT_PIN(2, 2, 16, 0), 2794 + MTK_EINT_PIN(3, 2, 17, 0), 2795 + MTK_EINT_PIN(4, 2, 2, 1), 2796 + MTK_EINT_PIN(5, 2, 3, 1), 2797 + MTK_EINT_PIN(6, 2, 4, 1), 2798 + MTK_EINT_PIN(7, 2, 5, 1), 2799 + MTK_EINT_PIN(8, 2, 6, 1), 2800 + MTK_EINT_PIN(9, 2, 18, 0), 2801 + MTK_EINT_PIN(10, 2, 7, 1), 2802 + MTK_EINT_PIN(11, 2, 8, 1), 2803 + MTK_EINT_PIN(12, 2, 9, 1), 2804 + MTK_EINT_PIN(13, 1, 4, 0), 2805 + MTK_EINT_PIN(14, 0, 0, 1), 2806 + MTK_EINT_PIN(15, 1, 5, 0), 2807 + MTK_EINT_PIN(16, 1, 6, 0), 2808 + MTK_EINT_PIN(17, 1, 7, 0), 2809 + MTK_EINT_PIN(18, 1, 8, 0), 2810 + MTK_EINT_PIN(19, 1, 9, 0), 2811 + MTK_EINT_PIN(20, 0, 1, 1), 2812 + MTK_EINT_PIN(21, 0, 10, 0), 2813 + MTK_EINT_PIN(22, 0, 11, 0), 2814 + MTK_EINT_PIN(23, 0, 12, 0), 2815 + MTK_EINT_PIN(24, 0, 13, 0), 2816 + MTK_EINT_PIN(25, 0, 14, 0), 2817 + MTK_EINT_PIN(26, 0, 15, 0), 2818 + MTK_EINT_PIN(27, 0, 2, 1), 2819 + MTK_EINT_PIN(28, 0, 16, 0), 2820 + MTK_EINT_PIN(29, 0, 17, 0), 2821 + MTK_EINT_PIN(30, 0, 18, 0), 2822 + MTK_EINT_PIN(31, 0, 3, 1), 2823 + MTK_EINT_PIN(32, 0, 19, 0), 2824 + MTK_EINT_PIN(33, 0, 20, 0), 2825 + MTK_EINT_PIN(34, 0, 21, 0), 2826 + MTK_EINT_PIN(35, 0, 22, 0), 2827 + MTK_EINT_PIN(36, 0, 23, 0), 2828 + MTK_EINT_PIN(37, 0, 24, 0), 2829 + MTK_EINT_PIN(38, 0, 25, 0), 2830 + MTK_EINT_PIN(39, 2, 10, 1), 2831 + MTK_EINT_PIN(40, 2, 11, 1), 2832 + MTK_EINT_PIN(41, 2, 12, 1), 2833 + MTK_EINT_PIN(42, 2, 13, 1), 2834 + MTK_EINT_PIN(43, 2, 14, 1), 2835 + MTK_EINT_PIN(44, 2, 19, 0), 2836 + MTK_EINT_PIN(45, 2, 20, 0), 2837 + MTK_EINT_PIN(46, 2, 21, 0), 2838 + MTK_EINT_PIN(47, 2, 22, 0), 2839 + MTK_EINT_PIN(48, 2, 23, 0), 2840 + MTK_EINT_PIN(49, 2, 24, 0), 2841 + MTK_EINT_PIN(50, 2, 25, 0), 2842 + MTK_EINT_PIN(51, 2, 26, 0), 2843 + MTK_EINT_PIN(52, EINT_INVALID_BASE, 0, 0), 2844 + MTK_EINT_PIN(53, EINT_INVALID_BASE, 0, 0), 2845 + MTK_EINT_PIN(54, EINT_INVALID_BASE, 0, 0), 2846 + MTK_EINT_PIN(55, EINT_INVALID_BASE, 0, 0), 2847 + MTK_EINT_PIN(56, EINT_INVALID_BASE, 0, 0), 2848 + MTK_EINT_PIN(57, EINT_INVALID_BASE, 0, 0), 2849 + MTK_EINT_PIN(58, EINT_INVALID_BASE, 0, 0), 2850 + MTK_EINT_PIN(59, EINT_INVALID_BASE, 0, 0), 2851 + MTK_EINT_PIN(60, 2, 27, 0), 2852 + MTK_EINT_PIN(61, 2, 28, 0), 2853 + MTK_EINT_PIN(62, 2, 29, 0), 2854 + MTK_EINT_PIN(63, 2, 30, 0), 2855 + MTK_EINT_PIN(64, 2, 31, 0), 2856 + MTK_EINT_PIN(65, 2, 32, 0), 2857 + MTK_EINT_PIN(66, EINT_INVALID_BASE, 0, 0), 2858 + MTK_EINT_PIN(67, EINT_INVALID_BASE, 0, 0), 2859 + MTK_EINT_PIN(68, EINT_INVALID_BASE, 0, 0), 2860 + MTK_EINT_PIN(69, EINT_INVALID_BASE, 0, 0), 2861 + MTK_EINT_PIN(70, 2, 33, 0), 2862 + MTK_EINT_PIN(71, 2, 34, 0), 2863 + MTK_EINT_PIN(72, 2, 35, 0), 2864 + MTK_EINT_PIN(73, 2, 36, 0), 2865 + MTK_EINT_PIN(74, 2, 37, 0), 2866 + MTK_EINT_PIN(75, EINT_INVALID_BASE, 0, 0), 2867 + MTK_EINT_PIN(76, EINT_INVALID_BASE, 0, 0), 2868 + MTK_EINT_PIN(77, EINT_INVALID_BASE, 0, 0), 2869 + MTK_EINT_PIN(78, EINT_INVALID_BASE, 0, 0), 2870 + MTK_EINT_PIN(79, 2, 38, 0), 2871 + MTK_EINT_PIN(80, 2, 39, 0), 2872 + MTK_EINT_PIN(81, 2, 40, 0), 2873 + MTK_EINT_PIN(82, 2, 41, 0), 2874 + MTK_EINT_PIN(83, 2, 42, 0), 2875 + MTK_EINT_PIN(84, 2, 43, 0), 2876 + MTK_EINT_PIN(85, 2, 44, 0), 2877 + MTK_EINT_PIN(86, 2, 45, 0), 2878 + MTK_EINT_PIN(87, 2, 46, 0), 2879 + MTK_EINT_PIN(88, 2, 47, 0), 2880 + MTK_EINT_PIN(89, 2, 48, 0), 2881 + MTK_EINT_PIN(90, 2, 49, 0), 2882 + MTK_EINT_PIN(91, 2, 50, 0), 2883 + MTK_EINT_PIN(92, 2, 15, 1), 2884 + MTK_EINT_PIN(93, 2, 51, 0), 2885 + MTK_EINT_PIN(94, 2, 52, 0), 2886 + MTK_EINT_PIN(95, 2, 53, 0), 2887 + MTK_EINT_PIN(96, 2, 54, 0), 2888 + MTK_EINT_PIN(97, 2, 55, 0), 2889 + MTK_EINT_PIN(98, 2, 56, 0), 2890 + MTK_EINT_PIN(99, EINT_INVALID_BASE, 0, 0), 2891 + MTK_EINT_PIN(100, EINT_INVALID_BASE, 0, 0), 2892 + MTK_EINT_PIN(101, EINT_INVALID_BASE, 0, 0), 2893 + MTK_EINT_PIN(102, EINT_INVALID_BASE, 0, 0), 2894 + MTK_EINT_PIN(103, 2, 57, 0), 2895 + MTK_EINT_PIN(104, EINT_INVALID_BASE, 0, 0), 2896 + MTK_EINT_PIN(105, EINT_INVALID_BASE, 0, 0), 2897 + MTK_EINT_PIN(106, 1, 10, 0), 2898 + MTK_EINT_PIN(107, 1, 11, 0), 2899 + MTK_EINT_PIN(108, 1, 12, 0), 2900 + MTK_EINT_PIN(109, 1, 13, 0), 2901 + MTK_EINT_PIN(110, 1, 0, 1), 2902 + MTK_EINT_PIN(111, 1, 1, 1), 2903 + MTK_EINT_PIN(112, 1, 2, 1), 2904 + MTK_EINT_PIN(113, 1, 3, 1), 2905 + MTK_EINT_PIN(114, 1, 14, 0), 2906 + MTK_EINT_PIN(115, 1, 15, 0), 2907 + MTK_EINT_PIN(116, 1, 16, 0), 2908 + MTK_EINT_PIN(117, 1, 17, 0), 2909 + MTK_EINT_PIN(118, 1, 18, 0), 2910 + MTK_EINT_PIN(119, 1, 19, 0), 2911 + MTK_EINT_PIN(120, 1, 20, 0), 2912 + MTK_EINT_PIN(121, 1, 21, 0), 2913 + MTK_EINT_PIN(122, 1, 22, 0), 2914 + MTK_EINT_PIN(123, EINT_INVALID_BASE, 0, 0), 2915 + MTK_EINT_PIN(124, EINT_INVALID_BASE, 0, 0), 2916 + MTK_EINT_PIN(125, 1, 23, 0), 2917 + MTK_EINT_PIN(126, 1, 24, 0), 2918 + MTK_EINT_PIN(127, 1, 25, 0), 2919 + MTK_EINT_PIN(128, 1, 26, 0), 2920 + MTK_EINT_PIN(129, 1, 27, 0), 2921 + MTK_EINT_PIN(130, 1, 28, 0), 2922 + MTK_EINT_PIN(131, EINT_INVALID_BASE, 0, 0), 2923 + MTK_EINT_PIN(132, EINT_INVALID_BASE, 0, 0), 2924 + MTK_EINT_PIN(133, EINT_INVALID_BASE, 0, 0), 2925 + MTK_EINT_PIN(134, EINT_INVALID_BASE, 0, 0), 2926 + MTK_EINT_PIN(135, EINT_INVALID_BASE, 0, 0), 2927 + MTK_EINT_PIN(136, EINT_INVALID_BASE, 0, 0), 2928 + MTK_EINT_PIN(137, 0, 26, 0), 2929 + MTK_EINT_PIN(138, 0, 27, 0), 2930 + MTK_EINT_PIN(139, 0, 28, 0), 2931 + MTK_EINT_PIN(140, 0, 29, 0), 2932 + MTK_EINT_PIN(141, 0, 30, 0), 2933 + MTK_EINT_PIN(142, 0, 31, 0), 2934 + MTK_EINT_PIN(143, 0, 32, 0), 2935 + MTK_EINT_PIN(144, 0, 33, 0), 2936 + MTK_EINT_PIN(145, 0, 34, 0), 2937 + MTK_EINT_PIN(146, 0, 35, 0), 2938 + MTK_EINT_PIN(147, 0, 36, 0), 2939 + MTK_EINT_PIN(148, 0, 4, 1), 2940 + MTK_EINT_PIN(149, 0, 37, 0), 2941 + MTK_EINT_PIN(150, 0, 5, 1), 2942 + MTK_EINT_PIN(151, 0, 38, 0), 2943 + MTK_EINT_PIN(152, 0, 39, 0), 2944 + MTK_EINT_PIN(153, 0, 40, 0), 2945 + MTK_EINT_PIN(154, 0, 41, 0), 2946 + MTK_EINT_PIN(155, 0, 42, 0), 2947 + MTK_EINT_PIN(156, 0, 43, 0), 2948 + MTK_EINT_PIN(157, 0, 44, 0), 2949 + MTK_EINT_PIN(158, 0, 45, 0), 2950 + MTK_EINT_PIN(159, 0, 46, 0), 2951 + MTK_EINT_PIN(160, 0, 47, 0), 2952 + MTK_EINT_PIN(161, 0, 48, 0), 2953 + MTK_EINT_PIN(162, 0, 49, 0), 2954 + MTK_EINT_PIN(163, 0, 50, 0), 2955 + MTK_EINT_PIN(164, 0, 51, 0), 2956 + MTK_EINT_PIN(165, 0, 52, 0), 2957 + MTK_EINT_PIN(166, 0, 53, 0), 2958 + MTK_EINT_PIN(167, 0, 54, 0), 2959 + MTK_EINT_PIN(168, 0, 55, 0), 2960 + MTK_EINT_PIN(169, 0, 56, 0), 2961 + MTK_EINT_PIN(170, 0, 57, 0), 2962 + MTK_EINT_PIN(171, 0, 58, 0), 2963 + MTK_EINT_PIN(172, 0, 6, 1), 2964 + MTK_EINT_PIN(173, 0, 7, 1), 2965 + MTK_EINT_PIN(174, 0, 8, 1), 2966 + MTK_EINT_PIN(175, 0, 9, 1), 2967 + MTK_EINT_PIN(176, EINT_INVALID_BASE, 0, 0), 2968 + MTK_EINT_PIN(177, EINT_INVALID_BASE, 0, 0), 2969 + MTK_EINT_PIN(178, 0, 59, 0), 2970 + MTK_EINT_PIN(179, 0, 60, 0), 2971 + MTK_EINT_PIN(180, 0, 61, 0), 2972 + MTK_EINT_PIN(181, 0, 62, 0), 2973 + MTK_EINT_PIN(182, 0, 63, 0), 2974 + MTK_EINT_PIN(183, 0, 64, 0), 2975 + MTK_EINT_PIN(184, 0, 65, 0), 2976 + MTK_EINT_PIN(185, 0, 66, 0), 2977 + MTK_EINT_PIN(186, 3, 6, 0), 2978 + MTK_EINT_PIN(187, 3, 7, 0), 2979 + MTK_EINT_PIN(188, EINT_INVALID_BASE, 0, 0), 2980 + MTK_EINT_PIN(189, EINT_INVALID_BASE, 0, 0), 2981 + MTK_EINT_PIN(190, EINT_INVALID_BASE, 0, 0), 2982 + MTK_EINT_PIN(191, EINT_INVALID_BASE, 0, 0), 2983 + MTK_EINT_PIN(192, 3, 8, 0), 2984 + MTK_EINT_PIN(193, 3, 9, 0), 2985 + MTK_EINT_PIN(194, EINT_INVALID_BASE, 0, 0), 2986 + MTK_EINT_PIN(195, EINT_INVALID_BASE, 0, 0), 2987 + MTK_EINT_PIN(196, 3, 10, 0), 2988 + MTK_EINT_PIN(197, 3, 11, 0), 2989 + MTK_EINT_PIN(198, EINT_INVALID_BASE, 0, 0), 2990 + MTK_EINT_PIN(199, EINT_INVALID_BASE, 0, 0), 2991 + MTK_EINT_PIN(200, EINT_INVALID_BASE, 0, 0), 2992 + MTK_EINT_PIN(201, EINT_INVALID_BASE, 0, 0), 2993 + MTK_EINT_PIN(202, EINT_INVALID_BASE, 0, 0), 2994 + MTK_EINT_PIN(203, EINT_INVALID_BASE, 0, 0), 2995 + MTK_EINT_PIN(204, 3, 12, 0), 2996 + MTK_EINT_PIN(205, 3, 13, 0), 2997 + MTK_EINT_PIN(206, 3, 14, 0), 2998 + MTK_EINT_PIN(207, 3, 0, 1), 2999 + MTK_EINT_PIN(208, 3, 1, 1), 3000 + MTK_EINT_PIN(209, 3, 2, 1), 3001 + MTK_EINT_PIN(210, 3, 15, 0), 3002 + MTK_EINT_PIN(211, 3, 3, 1), 3003 + MTK_EINT_PIN(212, 3, 4, 1), 3004 + MTK_EINT_PIN(213, 3, 5, 1), 3005 + MTK_EINT_PIN(214, EINT_INVALID_BASE, 0, 0), 3006 + MTK_EINT_PIN(215, EINT_INVALID_BASE, 0, 0), 3007 + MTK_EINT_PIN(216, 3, 16, 0), 3008 + MTK_EINT_PIN(217, 3, 17, 0), 3009 + MTK_EINT_PIN(218, 3, 18, 0), 3010 + MTK_EINT_PIN(219, 3, 19, 0), 3011 + MTK_EINT_PIN(220, 3, 20, 0), 3012 + MTK_EINT_PIN(221, 3, 21, 0), 3013 + MTK_EINT_PIN(222, 3, 22, 0), 3014 + MTK_EINT_PIN(223, 3, 23, 0), 3015 + MTK_EINT_PIN(224, 3, 24, 0), 3016 + MTK_EINT_PIN(225, 3, 25, 0), 3017 + MTK_EINT_PIN(226, 3, 26, 0), 3018 + MTK_EINT_PIN(227, 3, 27, 0), 3019 + MTK_EINT_PIN(228, 3, 28, 0), 3020 + MTK_EINT_PIN(229, 3, 29, 0), 3021 + MTK_EINT_PIN(230, EINT_INVALID_BASE, 0, 0), 3022 + MTK_EINT_PIN(231, EINT_INVALID_BASE, 0, 0), 3023 + MTK_EINT_PIN(232, EINT_INVALID_BASE, 0, 0), 3024 + MTK_EINT_PIN(233, EINT_INVALID_BASE, 0, 0), 3025 + MTK_EINT_PIN(234, EINT_INVALID_BASE, 0, 0), 3026 + MTK_EINT_PIN(235, EINT_INVALID_BASE, 0, 0), 3027 + MTK_EINT_PIN(236, EINT_INVALID_BASE, 0, 0), 3028 + MTK_EINT_PIN(237, EINT_INVALID_BASE, 0, 0), 3029 + MTK_EINT_PIN(238, EINT_INVALID_BASE, 0, 0), 3030 + MTK_EINT_PIN(239, EINT_INVALID_BASE, 0, 0), 3031 + MTK_EINT_PIN(240, EINT_INVALID_BASE, 0, 0), 3032 + MTK_EINT_PIN(241, 3, 30, 0), 3033 + MTK_EINT_PIN(242, 3, 31, 0), 3034 + MTK_EINT_PIN(243, 3, 32, 0), 3035 + MTK_EINT_PIN(244, EINT_INVALID_BASE, 0, 0), 3036 + MTK_EINT_PIN(245, 3, 45, 0), 3037 + MTK_EINT_PIN(246, EINT_INVALID_BASE, 0, 0), 3038 + MTK_EINT_PIN(247, EINT_INVALID_BASE, 0, 0), 3039 + MTK_EINT_PIN(248, EINT_INVALID_BASE, 0, 0), 3040 + MTK_EINT_PIN(249, EINT_INVALID_BASE, 0, 0), 3041 + MTK_EINT_PIN(250, EINT_INVALID_BASE, 0, 0), 3042 + MTK_EINT_PIN(251, 0, 67, 0), 3043 + MTK_EINT_PIN(252, 0, 68, 0), 3044 + MTK_EINT_PIN(253, 0, 69, 0), 3045 + MTK_EINT_PIN(254, 0, 70, 0), 3046 + MTK_EINT_PIN(255, 0, 71, 0), 3047 + MTK_EINT_PIN(256, 0, 72, 0), 3048 + MTK_EINT_PIN(257, 0, 73, 0), 3049 + MTK_EINT_PIN(258, 0, 74, 0), 3050 + MTK_EINT_PIN(259, 3, 33, 0), 3051 + MTK_EINT_PIN(260, 3, 34, 0), 3052 + MTK_EINT_PIN(261, 3, 35, 0), 3053 + MTK_EINT_PIN(262, 3, 36, 0), 3054 + MTK_EINT_PIN(263, 3, 37, 0), 3055 + MTK_EINT_PIN(264, 3, 38, 0), 3056 + MTK_EINT_PIN(265, 3, 39, 0), 3057 + MTK_EINT_PIN(266, 3, 40, 0), 3058 + MTK_EINT_PIN(267, 3, 41, 0), 3059 + MTK_EINT_PIN(268, 3, 42, 0), 3060 + MTK_EINT_PIN(269, 3, 43, 0), 3061 + MTK_EINT_PIN(270, 3, 44, 0), 3062 + MTK_EINT_PIN(271, 4, 0, 0), 3063 + MTK_EINT_PIN(272, 4, 1, 0), 3064 + MTK_EINT_PIN(273, 4, 2, 0), 3065 + MTK_EINT_PIN(274, 4, 3, 0), 3066 + MTK_EINT_PIN(275, 4, 4, 0), 3067 + MTK_EINT_PIN(276, 4, 5, 0), 3068 + MTK_EINT_PIN(277, 4, 6, 0), 3069 + MTK_EINT_PIN(278, 4, 7, 0), 3070 + MTK_EINT_PIN(279, 4, 8, 0), 3071 + MTK_EINT_PIN(280, 4, 9, 0), 3072 + MTK_EINT_PIN(281, 4, 10, 0), 3073 + MTK_EINT_PIN(282, 4, 11, 0), 3074 + MTK_EINT_PIN(283, 4, 12, 0), 3075 + MTK_EINT_PIN(284, 4, 13, 0), 3076 + MTK_EINT_PIN(285, 4, 14, 0), 3077 + MTK_EINT_PIN(286, 4, 15, 0), 3078 + MTK_EINT_PIN(287, 4, 16, 0), 3079 + MTK_EINT_PIN(288, 4, 17, 0), 3080 + MTK_EINT_PIN(289, 4, 18, 0), 3081 + MTK_EINT_PIN(290, 4, 19, 0), 3082 + MTK_EINT_PIN(291, 4, 20, 0), 3083 + MTK_EINT_PIN(292, 4, 21, 0), 3084 + }; 3085 + #endif /* __PINCTRL_MTK_MT8196_H */
+7 -22
drivers/pinctrl/mediatek/pinctrl-paris.c
··· 840 840 const struct mtk_pin_desc *desc; 841 841 int value, err; 842 842 843 - if (gpio >= hw->soc->npins) 844 - return -EINVAL; 845 - 846 843 /* 847 844 * "Virtual" GPIOs are always and only used for interrupts 848 845 * Since they are only used for interrupts, they are always inputs ··· 865 868 const struct mtk_pin_desc *desc; 866 869 int value, err; 867 870 868 - if (gpio >= hw->soc->npins) 869 - return -EINVAL; 870 - 871 871 desc = (const struct mtk_pin_desc *)&hw->soc->pins[gpio]; 872 872 873 873 err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_DI, &value); ··· 874 880 return !!value; 875 881 } 876 882 877 - static void mtk_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value) 883 + static int mtk_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value) 878 884 { 879 885 struct mtk_pinctrl *hw = gpiochip_get_data(chip); 880 886 const struct mtk_pin_desc *desc; 881 887 882 - if (gpio >= hw->soc->npins) 883 - return; 884 - 885 888 desc = (const struct mtk_pin_desc *)&hw->soc->pins[gpio]; 886 889 887 - mtk_hw_set_value(hw, desc, PINCTRL_PIN_REG_DO, !!value); 890 + return mtk_hw_set_value(hw, desc, PINCTRL_PIN_REG_DO, !!value); 888 891 } 889 892 890 893 static int mtk_gpio_direction_input(struct gpio_chip *chip, unsigned int gpio) 891 894 { 892 - struct mtk_pinctrl *hw = gpiochip_get_data(chip); 893 - 894 - if (gpio >= hw->soc->npins) 895 - return -EINVAL; 896 - 897 895 return pinctrl_gpio_direction_input(chip, gpio); 898 896 } 899 897 900 898 static int mtk_gpio_direction_output(struct gpio_chip *chip, unsigned int gpio, 901 899 int value) 902 900 { 903 - struct mtk_pinctrl *hw = gpiochip_get_data(chip); 901 + int ret; 904 902 905 - if (gpio >= hw->soc->npins) 906 - return -EINVAL; 907 - 908 - mtk_gpio_set(chip, gpio, value); 903 + ret = mtk_gpio_set(chip, gpio, value); 904 + if (ret) 905 + return ret; 909 906 910 907 return pinctrl_gpio_direction_output(chip, gpio); 911 908 } ··· 949 964 chip->direction_input = mtk_gpio_direction_input; 950 965 chip->direction_output = mtk_gpio_direction_output; 951 966 chip->get = mtk_gpio_get; 952 - chip->set = mtk_gpio_set; 967 + chip->set_rv = mtk_gpio_set; 953 968 chip->to_irq = mtk_gpio_to_irq; 954 969 chip->set_config = mtk_gpio_set_config; 955 970 chip->base = -1;
+12 -12
drivers/pinctrl/meson/Kconfig
··· 3 3 tristate "Amlogic SoC pinctrl drivers" 4 4 depends on ARCH_MESON || COMPILE_TEST 5 5 depends on OF 6 - default y 6 + default ARCH_MESON 7 7 select PINMUX 8 8 select PINCONF 9 9 select GENERIC_PINCONF ··· 17 17 bool "Meson 8 SoC pinctrl driver" 18 18 depends on ARM 19 19 select PINCTRL_MESON8_PMX 20 - default y 20 + default ARCH_MESON 21 21 22 22 config PINCTRL_MESON8B 23 23 bool "Meson 8b SoC pinctrl driver" 24 24 depends on ARM 25 25 select PINCTRL_MESON8_PMX 26 - default y 26 + default ARCH_MESON 27 27 28 28 config PINCTRL_MESON_GXBB 29 29 tristate "Meson gxbb SoC pinctrl driver" 30 30 depends on ARM64 31 31 select PINCTRL_MESON8_PMX 32 - default y 32 + default ARCH_MESON 33 33 34 34 config PINCTRL_MESON_GXL 35 35 tristate "Meson gxl SoC pinctrl driver" 36 36 depends on ARM64 37 37 select PINCTRL_MESON8_PMX 38 - default y 38 + default ARCH_MESON 39 39 40 40 config PINCTRL_MESON8_PMX 41 41 tristate ··· 44 44 tristate "Meson axg Soc pinctrl driver" 45 45 depends on ARM64 46 46 select PINCTRL_MESON_AXG_PMX 47 - default y 47 + default ARCH_MESON 48 48 49 49 config PINCTRL_MESON_AXG_PMX 50 50 tristate ··· 53 53 tristate "Meson g12a Soc pinctrl driver" 54 54 depends on ARM64 55 55 select PINCTRL_MESON_AXG_PMX 56 - default y 56 + default ARCH_MESON 57 57 58 58 config PINCTRL_MESON_A1 59 59 tristate "Meson a1 Soc pinctrl driver" 60 60 depends on ARM64 61 61 select PINCTRL_MESON_AXG_PMX 62 - default y 62 + default ARCH_MESON 63 63 64 64 config PINCTRL_MESON_S4 65 65 tristate "Meson s4 Soc pinctrl driver" 66 66 depends on ARM64 67 67 select PINCTRL_MESON_AXG_PMX 68 - default y 68 + default ARCH_MESON 69 69 70 70 config PINCTRL_AMLOGIC_A4 71 71 bool "AMLOGIC pincontrol" 72 72 depends on ARM64 73 - default y 73 + default ARCH_MESON 74 74 help 75 75 This is the driver for the pin controller found on Amlogic SoCs. 76 76 ··· 82 82 tristate "Amlogic C3 SoC pinctrl driver" 83 83 depends on ARM64 84 84 select PINCTRL_MESON_AXG_PMX 85 - default y 85 + default ARCH_MESON 86 86 87 87 config PINCTRL_AMLOGIC_T7 88 88 tristate "Amlogic T7 SoC pinctrl driver" 89 89 depends on ARM64 90 90 select PINCTRL_MESON_AXG_PMX 91 - default y 91 + default ARCH_MESON 92 92 93 93 endif
+4 -18
drivers/pinctrl/meson/pinctrl-amlogic-a4.c
··· 596 596 return 0; 597 597 } 598 598 599 - static inline const struct aml_pctl_group * 600 - aml_pctl_find_group_by_name(const struct aml_pinctrl *info, 601 - const char *name) 602 - { 603 - int i; 604 - 605 - for (i = 0; i < info->ngroups; i++) { 606 - if (!strcmp(info->groups[i].name, name)) 607 - return &info->groups[i]; 608 - } 609 - 610 - return NULL; 611 - } 612 - 613 599 static void aml_pin_dbg_show(struct pinctrl_dev *pcdev, struct seq_file *s, 614 600 unsigned int offset) 615 601 { ··· 792 806 value ? BIT(bit) : 0); 793 807 } 794 808 795 - static void aml_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value) 809 + static int aml_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value) 796 810 { 797 811 struct aml_gpio_bank *bank = gpiochip_get_data(chip); 798 812 unsigned int bit, reg; 799 813 800 814 aml_gpio_calc_reg_and_bit(bank, AML_REG_OUT, gpio, &reg, &bit); 801 815 802 - regmap_update_bits(bank->reg_gpio, reg, BIT(bit), 803 - value ? BIT(bit) : 0); 816 + return regmap_update_bits(bank->reg_gpio, reg, BIT(bit), 817 + value ? BIT(bit) : 0); 804 818 } 805 819 806 820 static int aml_gpio_get(struct gpio_chip *chip, unsigned int gpio) ··· 818 832 .request = gpiochip_generic_request, 819 833 .free = gpiochip_generic_free, 820 834 .set_config = gpiochip_generic_config, 821 - .set = aml_gpio_set, 835 + .set_rv = aml_gpio_set, 822 836 .get = aml_gpio_get, 823 837 .direction_input = aml_gpio_direction_input, 824 838 .direction_output = aml_gpio_direction_output,
+3 -3
drivers/pinctrl/meson/pinctrl-meson.c
··· 580 580 gpio, value); 581 581 } 582 582 583 - static void meson_gpio_set(struct gpio_chip *chip, unsigned gpio, int value) 583 + static int meson_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value) 584 584 { 585 - meson_pinconf_set_drive(gpiochip_get_data(chip), gpio, value); 585 + return meson_pinconf_set_drive(gpiochip_get_data(chip), gpio, value); 586 586 } 587 587 588 588 static int meson_gpio_get(struct gpio_chip *chip, unsigned gpio) ··· 616 616 pc->chip.direction_input = meson_gpio_direction_input; 617 617 pc->chip.direction_output = meson_gpio_direction_output; 618 618 pc->chip.get = meson_gpio_get; 619 - pc->chip.set = meson_gpio_set; 619 + pc->chip.set_rv = meson_gpio_set; 620 620 pc->chip.base = -1; 621 621 pc->chip.ngpio = pc->data->num_pins; 622 622 pc->chip.can_sleep = false;
+24 -19
drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
··· 358 358 359 359 val = grp->val[func]; 360 360 361 - regmap_update_bits(info->regmap, reg, mask, val); 362 - 363 - return 0; 361 + return regmap_update_bits(info->regmap, reg, mask, val); 364 362 } 365 363 366 364 static int armada_37xx_pmx_set(struct pinctrl_dev *pctldev, ··· 400 402 struct armada_37xx_pinctrl *info = gpiochip_get_data(chip); 401 403 unsigned int reg = OUTPUT_EN; 402 404 unsigned int val, mask; 405 + int ret; 403 406 404 407 armada_37xx_update_reg(&reg, &offset); 405 408 mask = BIT(offset); 406 - regmap_read(info->regmap, reg, &val); 409 + ret = regmap_read(info->regmap, reg, &val); 410 + if (ret) 411 + return ret; 407 412 408 413 if (val & mask) 409 414 return GPIO_LINE_DIRECTION_OUT; ··· 418 417 unsigned int offset, int value) 419 418 { 420 419 struct armada_37xx_pinctrl *info = gpiochip_get_data(chip); 421 - unsigned int reg = OUTPUT_EN; 420 + unsigned int en_offset = offset; 421 + unsigned int reg = OUTPUT_VAL; 422 422 unsigned int mask, val, ret; 423 423 424 424 armada_37xx_update_reg(&reg, &offset); 425 425 mask = BIT(offset); 426 + val = value ? mask : 0; 426 427 427 - ret = regmap_update_bits(info->regmap, reg, mask, mask); 428 - 428 + ret = regmap_update_bits(info->regmap, reg, mask, val); 429 429 if (ret) 430 430 return ret; 431 431 432 - reg = OUTPUT_VAL; 433 - val = value ? mask : 0; 434 - regmap_update_bits(info->regmap, reg, mask, val); 432 + reg = OUTPUT_EN; 433 + armada_37xx_update_reg(&reg, &en_offset); 435 434 436 - return 0; 435 + return regmap_update_bits(info->regmap, reg, mask, mask); 437 436 } 438 437 439 438 static int armada_37xx_gpio_get(struct gpio_chip *chip, unsigned int offset) ··· 441 440 struct armada_37xx_pinctrl *info = gpiochip_get_data(chip); 442 441 unsigned int reg = INPUT_VAL; 443 442 unsigned int val, mask; 443 + int ret; 444 444 445 445 armada_37xx_update_reg(&reg, &offset); 446 446 mask = BIT(offset); 447 447 448 - regmap_read(info->regmap, reg, &val); 448 + ret = regmap_read(info->regmap, reg, &val); 449 + if (ret) 450 + return ret; 449 451 450 452 return (val & mask) != 0; 451 453 } 452 454 453 - static void armada_37xx_gpio_set(struct gpio_chip *chip, unsigned int offset, 454 - int value) 455 + static int armada_37xx_gpio_set(struct gpio_chip *chip, unsigned int offset, 456 + int value) 455 457 { 456 458 struct armada_37xx_pinctrl *info = gpiochip_get_data(chip); 457 459 unsigned int reg = OUTPUT_VAL; ··· 464 460 mask = BIT(offset); 465 461 val = value ? mask : 0; 466 462 467 - regmap_update_bits(info->regmap, reg, mask, val); 463 + return regmap_update_bits(info->regmap, reg, mask, val); 468 464 } 469 465 470 466 static int armada_37xx_pmx_gpio_set_direction(struct pinctrl_dev *pctldev, ··· 473 469 { 474 470 struct armada_37xx_pinctrl *info = pinctrl_dev_get_drvdata(pctldev); 475 471 struct gpio_chip *chip = range->gc; 472 + int ret; 476 473 477 474 dev_dbg(info->dev, "gpio_direction for pin %u as %s-%d to %s\n", 478 475 offset, range->name, offset, input ? "input" : "output"); 479 476 480 477 if (input) 481 - armada_37xx_gpio_direction_input(chip, offset); 478 + ret = armada_37xx_gpio_direction_input(chip, offset); 482 479 else 483 - armada_37xx_gpio_direction_output(chip, offset, 0); 480 + ret = armada_37xx_gpio_direction_output(chip, offset, 0); 484 481 485 - return 0; 482 + return ret; 486 483 } 487 484 488 485 static int armada_37xx_gpio_request_enable(struct pinctrl_dev *pctldev, ··· 518 513 static const struct gpio_chip armada_37xx_gpiolib_chip = { 519 514 .request = gpiochip_generic_request, 520 515 .free = gpiochip_generic_free, 521 - .set = armada_37xx_gpio_set, 516 + .set_rv = armada_37xx_gpio_set, 522 517 .get = armada_37xx_gpio_get, 523 518 .get_direction = armada_37xx_gpio_get_direction, 524 519 .direction_input = armada_37xx_gpio_direction_input,
+3 -3
drivers/pinctrl/nomadik/Kconfig
··· 1 1 # SPDX-License-Identifier: GPL-2.0-only 2 - if ARCH_U8500 2 + if (ARCH_U8500 || COMPILE_TEST) 3 3 4 4 config PINCTRL_ABX500 5 5 bool "ST-Ericsson ABx500 family Mixed Signal Circuit gpio functions" ··· 10 10 11 11 config PINCTRL_AB8500 12 12 bool "AB8500 pin controller driver" 13 - depends on PINCTRL_ABX500 && ARCH_U8500 13 + depends on PINCTRL_ABX500 && (ARCH_U8500 || COMPILE_TEST) 14 14 15 15 config PINCTRL_AB8505 16 16 bool "AB8505 pin controller driver" 17 - depends on PINCTRL_ABX500 && ARCH_U8500 17 + depends on PINCTRL_ABX500 && (ARCH_U8500 || COMPILE_TEST) 18 18 19 19 endif 20 20
+4 -8
drivers/pinctrl/nomadik/pinctrl-abx500.c
··· 167 167 return bit; 168 168 } 169 169 170 - static void abx500_gpio_set(struct gpio_chip *chip, unsigned offset, int val) 170 + static int abx500_gpio_set(struct gpio_chip *chip, unsigned int offset, 171 + int val) 171 172 { 172 - struct abx500_pinctrl *pct = gpiochip_get_data(chip); 173 - int ret; 174 - 175 - ret = abx500_gpio_set_bits(chip, AB8500_GPIO_OUT1_REG, offset, val); 176 - if (ret < 0) 177 - dev_err(pct->dev, "%s write failed (%d)\n", __func__, ret); 173 + return abx500_gpio_set_bits(chip, AB8500_GPIO_OUT1_REG, offset, val); 178 174 } 179 175 180 176 static int abx500_gpio_direction_output(struct gpio_chip *chip, ··· 536 540 .direction_input = abx500_gpio_direction_input, 537 541 .get = abx500_gpio_get, 538 542 .direction_output = abx500_gpio_direction_output, 539 - .set = abx500_gpio_set, 543 + .set_rv = abx500_gpio_set, 540 544 .to_irq = abx500_gpio_to_irq, 541 545 .dbg_show = abx500_gpio_dbg_show, 542 546 };
+17
drivers/pinctrl/pinconf.h
··· 142 142 int pinconf_generic_parse_dt_pinmux(struct device_node *np, struct device *dev, 143 143 unsigned int **pid, unsigned int **pmux, 144 144 unsigned int *npins); 145 + #else 146 + static inline int 147 + pinconf_generic_parse_dt_config(struct device_node *np, 148 + struct pinctrl_dev *pctldev, 149 + unsigned long **configs, 150 + unsigned int *nconfigs) 151 + { 152 + return -ENOTSUPP; 153 + } 154 + 155 + static inline int 156 + pinconf_generic_parse_dt_pinmux(struct device_node *np, struct device *dev, 157 + unsigned int **pid, unsigned int **pmux, 158 + unsigned int *npins) 159 + { 160 + return -ENOTSUPP; 161 + } 145 162 #endif
+5 -2
drivers/pinctrl/pinctrl-amd.c
··· 105 105 return !!(pin_reg & BIT(PIN_STS_OFF)); 106 106 } 107 107 108 - static void amd_gpio_set_value(struct gpio_chip *gc, unsigned offset, int value) 108 + static int amd_gpio_set_value(struct gpio_chip *gc, unsigned int offset, 109 + int value) 109 110 { 110 111 u32 pin_reg; 111 112 unsigned long flags; ··· 120 119 pin_reg &= ~BIT(OUTPUT_VALUE_OFF); 121 120 writel(pin_reg, gpio_dev->base + offset * 4); 122 121 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags); 122 + 123 + return 0; 123 124 } 124 125 125 126 static int amd_gpio_set_debounce(struct amd_gpio *gpio_dev, unsigned int offset, ··· 1176 1173 gpio_dev->gc.direction_input = amd_gpio_direction_input; 1177 1174 gpio_dev->gc.direction_output = amd_gpio_direction_output; 1178 1175 gpio_dev->gc.get = amd_gpio_get_value; 1179 - gpio_dev->gc.set = amd_gpio_set_value; 1176 + gpio_dev->gc.set_rv = amd_gpio_set_value; 1180 1177 gpio_dev->gc.set_config = amd_gpio_set_config; 1181 1178 gpio_dev->gc.dbg_show = amd_gpio_dbg_show; 1182 1179
+15 -15
drivers/pinctrl/pinctrl-apple-gpio.c
··· 66 66 #define REG_GPIOx_DRIVE_STRENGTH1 GENMASK(23, 22) 67 67 #define REG_IRQ(g, x) (0x800 + 0x40 * (g) + 4 * ((x) >> 5)) 68 68 69 - struct regmap_config regmap_config = { 69 + static const struct regmap_config regmap_config = { 70 70 .reg_bits = 32, 71 71 .val_bits = 32, 72 72 .reg_stride = 4, ··· 79 79 80 80 /* No locking needed to mask/unmask IRQs as the interrupt mode is per pin-register. */ 81 81 static void apple_gpio_set_reg(struct apple_gpio_pinctrl *pctl, 82 - unsigned int pin, u32 mask, u32 value) 82 + unsigned int pin, u32 mask, u32 value) 83 83 { 84 84 regmap_update_bits(pctl->map, REG_GPIO(pin), mask, value); 85 85 } 86 86 87 87 static u32 apple_gpio_get_reg(struct apple_gpio_pinctrl *pctl, 88 - unsigned int pin) 88 + unsigned int pin) 89 89 { 90 90 int ret; 91 91 u32 val; ··· 100 100 /* Pin controller functions */ 101 101 102 102 static int apple_gpio_dt_node_to_map(struct pinctrl_dev *pctldev, 103 - struct device_node *node, 104 - struct pinctrl_map **map, 105 - unsigned *num_maps) 103 + struct device_node *node, 104 + struct pinctrl_map **map, 105 + unsigned *num_maps) 106 106 { 107 107 unsigned reserved_maps; 108 108 struct apple_gpio_pinctrl *pctl; ··· 147 147 group_name = pinctrl_generic_get_group_name(pctldev, pin); 148 148 function_name = pinmux_generic_get_function_name(pctl->pctldev, func); 149 149 ret = pinctrl_utils_add_map_mux(pctl->pctldev, map, 150 - &reserved_maps, num_maps, 151 - group_name, function_name); 150 + &reserved_maps, num_maps, 151 + group_name, function_name); 152 152 if (ret) 153 153 goto free_map; 154 154 } ··· 171 171 /* Pin multiplexer functions */ 172 172 173 173 static int apple_gpio_pinmux_set(struct pinctrl_dev *pctldev, unsigned func, 174 - unsigned group) 174 + unsigned group) 175 175 { 176 176 struct apple_gpio_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); 177 177 ··· 237 237 } 238 238 239 239 static int apple_gpio_direction_output(struct gpio_chip *chip, 240 - unsigned int offset, int value) 240 + unsigned int offset, int value) 241 241 { 242 242 struct apple_gpio_pinctrl *pctl = gpiochip_get_data(chip); 243 243 ··· 282 282 struct apple_gpio_pinctrl *pctl = gpiochip_get_data(gc); 283 283 284 284 apple_gpio_set_reg(pctl, data->hwirq, REG_GPIOx_MODE, 285 - FIELD_PREP(REG_GPIOx_MODE, REG_GPIOx_IN_IRQ_OFF)); 285 + FIELD_PREP(REG_GPIOx_MODE, REG_GPIOx_IN_IRQ_OFF)); 286 286 gpiochip_disable_irq(gc, data->hwirq); 287 287 } 288 288 ··· 294 294 295 295 gpiochip_enable_irq(gc, data->hwirq); 296 296 apple_gpio_set_reg(pctl, data->hwirq, REG_GPIOx_MODE, 297 - FIELD_PREP(REG_GPIOx_MODE, irqtype)); 297 + FIELD_PREP(REG_GPIOx_MODE, irqtype)); 298 298 } 299 299 300 300 static unsigned int apple_gpio_irq_startup(struct irq_data *data) ··· 303 303 struct apple_gpio_pinctrl *pctl = gpiochip_get_data(chip); 304 304 305 305 apple_gpio_set_reg(pctl, data->hwirq, REG_GPIOx_GRP, 306 - FIELD_PREP(REG_GPIOx_GRP, 0)); 306 + FIELD_PREP(REG_GPIOx_GRP, 0)); 307 307 308 308 apple_gpio_direction_input(chip, data->hwirq); 309 309 apple_gpio_irq_unmask(data); ··· 320 320 return -EINVAL; 321 321 322 322 apple_gpio_set_reg(pctl, data->hwirq, REG_GPIOx_MODE, 323 - FIELD_PREP(REG_GPIOx_MODE, irqtype)); 323 + FIELD_PREP(REG_GPIOx_MODE, irqtype)); 324 324 325 325 if (type & IRQ_TYPE_LEVEL_MASK) 326 326 irq_set_handler_locked(data, handle_level_irq); ··· 429 429 unsigned int npins; 430 430 const char **pin_names; 431 431 unsigned int *pin_nums; 432 - static const char* pinmux_functions[] = { 432 + static const char *pinmux_functions[] = { 433 433 "gpio", "periph1", "periph2", "periph3" 434 434 }; 435 435 unsigned int i, nirqs = 0;
+12 -6
drivers/pinctrl/pinctrl-at91-pio4.c
··· 390 390 return 0; 391 391 } 392 392 393 - static void atmel_gpio_set(struct gpio_chip *chip, unsigned int offset, int val) 393 + static int atmel_gpio_set(struct gpio_chip *chip, unsigned int offset, int val) 394 394 { 395 395 struct atmel_pioctrl *atmel_pioctrl = gpiochip_get_data(chip); 396 396 struct atmel_pin *pin = atmel_pioctrl->pins[offset]; ··· 398 398 atmel_gpio_write(atmel_pioctrl, pin->bank, 399 399 val ? ATMEL_PIO_SODR : ATMEL_PIO_CODR, 400 400 BIT(pin->line)); 401 + 402 + return 0; 401 403 } 402 404 403 - static void atmel_gpio_set_multiple(struct gpio_chip *chip, unsigned long *mask, 404 - unsigned long *bits) 405 + static int atmel_gpio_set_multiple(struct gpio_chip *chip, unsigned long *mask, 406 + unsigned long *bits) 405 407 { 406 408 struct atmel_pioctrl *atmel_pioctrl = gpiochip_get_data(chip); 407 409 unsigned int bank; ··· 433 431 bits[word] >>= ATMEL_PIO_NPINS_PER_BANK; 434 432 #endif 435 433 } 434 + 435 + return 0; 436 436 } 437 437 438 438 static struct gpio_chip atmel_gpio_chip = { ··· 442 438 .get = atmel_gpio_get, 443 439 .get_multiple = atmel_gpio_get_multiple, 444 440 .direction_output = atmel_gpio_direction_output, 445 - .set = atmel_gpio_set, 446 - .set_multiple = atmel_gpio_set_multiple, 441 + .set_rv = atmel_gpio_set, 442 + .set_multiple_rv = atmel_gpio_set_multiple, 447 443 .to_irq = atmel_gpio_to_irq, 448 444 .base = 0, 449 445 }; ··· 613 609 if (ret) 614 610 goto exit; 615 611 616 - pinctrl_utils_add_map_mux(pctldev, map, reserved_maps, num_maps, 612 + ret = pinctrl_utils_add_map_mux(pctldev, map, reserved_maps, num_maps, 617 613 group, func); 614 + if (ret) 615 + goto exit; 618 616 619 617 if (num_configs) { 620 618 ret = pinctrl_utils_add_map_configs(pctldev, map,
+14 -7
drivers/pinctrl/pinctrl-at91.c
··· 1449 1449 return (pdsr & mask) != 0; 1450 1450 } 1451 1451 1452 - static void at91_gpio_set(struct gpio_chip *chip, unsigned offset, 1453 - int val) 1452 + static int at91_gpio_set(struct gpio_chip *chip, unsigned int offset, int val) 1454 1453 { 1455 1454 struct at91_gpio_chip *at91_gpio = gpiochip_get_data(chip); 1456 1455 void __iomem *pio = at91_gpio->regbase; 1457 1456 unsigned mask = 1 << offset; 1458 1457 1459 1458 writel_relaxed(mask, pio + (val ? PIO_SODR : PIO_CODR)); 1459 + 1460 + return 0; 1460 1461 } 1461 1462 1462 - static void at91_gpio_set_multiple(struct gpio_chip *chip, 1463 - unsigned long *mask, unsigned long *bits) 1463 + static int at91_gpio_set_multiple(struct gpio_chip *chip, 1464 + unsigned long *mask, unsigned long *bits) 1464 1465 { 1465 1466 struct at91_gpio_chip *at91_gpio = gpiochip_get_data(chip); 1466 1467 void __iomem *pio = at91_gpio->regbase; ··· 1473 1472 1474 1473 writel_relaxed(set_mask, pio + PIO_SODR); 1475 1474 writel_relaxed(clear_mask, pio + PIO_CODR); 1475 + 1476 + return 0; 1476 1477 } 1477 1478 1478 1479 static int at91_gpio_direction_output(struct gpio_chip *chip, unsigned offset, ··· 1801 1798 .direction_input = at91_gpio_direction_input, 1802 1799 .get = at91_gpio_get, 1803 1800 .direction_output = at91_gpio_direction_output, 1804 - .set = at91_gpio_set, 1805 - .set_multiple = at91_gpio_set_multiple, 1801 + .set_rv = at91_gpio_set, 1802 + .set_multiple_rv = at91_gpio_set_multiple, 1806 1803 .dbg_show = at91_gpio_dbg_show, 1807 1804 .can_sleep = false, 1808 1805 .ngpio = MAX_NB_GPIO_PER_BANK, ··· 1822 1819 struct at91_gpio_chip *at91_chip = NULL; 1823 1820 struct gpio_chip *chip; 1824 1821 struct pinctrl_gpio_range *range; 1822 + int alias_idx; 1825 1823 int ret = 0; 1826 1824 int irq, i; 1827 - int alias_idx = of_alias_get_id(np, "gpio"); 1828 1825 uint32_t ngpio; 1829 1826 char **names; 1827 + 1828 + alias_idx = of_alias_get_id(np, "gpio"); 1829 + if (alias_idx < 0) 1830 + return alias_idx; 1830 1831 1831 1832 BUG_ON(alias_idx >= ARRAY_SIZE(gpio_chips)); 1832 1833 if (gpio_chips[alias_idx])
+15 -20
drivers/pinctrl/pinctrl-axp209.c
··· 192 192 static int axp20x_gpio_output(struct gpio_chip *chip, unsigned int offset, 193 193 int value) 194 194 { 195 - chip->set(chip, offset, value); 196 - 197 - return 0; 195 + return chip->set_rv(chip, offset, value); 198 196 } 199 197 200 - static void axp20x_gpio_set(struct gpio_chip *chip, unsigned int offset, 201 - int value) 198 + static int axp20x_gpio_set(struct gpio_chip *chip, unsigned int offset, 199 + int value) 202 200 { 203 201 struct axp20x_pctl *pctl = gpiochip_get_data(chip); 204 202 int reg; 205 203 206 204 /* AXP209 has GPIO3 status sharing the settings register */ 207 - if (offset == 3) { 208 - regmap_update_bits(pctl->regmap, AXP20X_GPIO3_CTRL, 209 - AXP20X_GPIO3_FUNCTIONS, 210 - value ? AXP20X_GPIO3_FUNCTION_OUT_HIGH : 211 - AXP20X_GPIO3_FUNCTION_OUT_LOW); 212 - return; 213 - } 205 + if (offset == 3) 206 + return regmap_update_bits(pctl->regmap, AXP20X_GPIO3_CTRL, 207 + AXP20X_GPIO3_FUNCTIONS, 208 + value ? 209 + AXP20X_GPIO3_FUNCTION_OUT_HIGH : 210 + AXP20X_GPIO3_FUNCTION_OUT_LOW); 214 211 215 212 reg = axp20x_gpio_get_reg(offset); 216 213 if (reg < 0) 217 - return; 214 + return reg; 218 215 219 - regmap_update_bits(pctl->regmap, reg, 220 - AXP20X_GPIO_FUNCTIONS, 221 - value ? AXP20X_GPIO_FUNCTION_OUT_HIGH : 222 - AXP20X_GPIO_FUNCTION_OUT_LOW); 216 + return regmap_update_bits(pctl->regmap, reg, AXP20X_GPIO_FUNCTIONS, 217 + value ? AXP20X_GPIO_FUNCTION_OUT_HIGH : 218 + AXP20X_GPIO_FUNCTION_OUT_LOW); 223 219 } 224 220 225 221 static int axp20x_pmx_set(struct pinctrl_dev *pctldev, unsigned int offset, ··· 225 229 int reg; 226 230 227 231 /* AXP209 GPIO3 settings have a different layout */ 228 - if (offset == 3) { 232 + if (offset == 3) 229 233 return regmap_update_bits(pctl->regmap, AXP20X_GPIO3_CTRL, 230 234 AXP20X_GPIO3_FUNCTIONS, 231 235 config == AXP20X_MUX_GPIO_OUT ? AXP20X_GPIO3_FUNCTION_OUT_LOW : 232 236 AXP20X_GPIO3_FUNCTION_INPUT); 233 - } 234 237 235 238 reg = axp20x_gpio_get_reg(offset); 236 239 if (reg < 0) ··· 463 468 pctl->chip.owner = THIS_MODULE; 464 469 pctl->chip.get = axp20x_gpio_get; 465 470 pctl->chip.get_direction = axp20x_gpio_get_direction; 466 - pctl->chip.set = axp20x_gpio_set; 471 + pctl->chip.set_rv = axp20x_gpio_set; 467 472 pctl->chip.direction_input = pinctrl_gpio_direction_input; 468 473 pctl->chip.direction_output = axp20x_gpio_output; 469 474
+9 -8
drivers/pinctrl/pinctrl-cy8c95x0.c
··· 742 742 return reg_val ? 1 : 0; 743 743 } 744 744 745 - static void cy8c95x0_gpio_set_value(struct gpio_chip *gc, unsigned int off, 746 - int val) 745 + static int cy8c95x0_gpio_set_value(struct gpio_chip *gc, unsigned int off, 746 + int val) 747 747 { 748 748 struct cy8c95x0_pinctrl *chip = gpiochip_get_data(gc); 749 749 u8 port = cypress_get_port(chip, off); 750 750 u8 bit = cypress_get_pin_mask(chip, off); 751 751 752 - cy8c95x0_regmap_write_bits(chip, CY8C95X0_OUTPUT, port, bit, val ? bit : 0); 752 + return cy8c95x0_regmap_write_bits(chip, CY8C95X0_OUTPUT, port, bit, 753 + val ? bit : 0); 753 754 } 754 755 755 756 static int cy8c95x0_gpio_get_direction(struct gpio_chip *gc, unsigned int off) ··· 909 908 return cy8c95x0_read_regs_mask(chip, CY8C95X0_INPUT, bits, mask); 910 909 } 911 910 912 - static void cy8c95x0_gpio_set_multiple(struct gpio_chip *gc, 913 - unsigned long *mask, unsigned long *bits) 911 + static int cy8c95x0_gpio_set_multiple(struct gpio_chip *gc, 912 + unsigned long *mask, unsigned long *bits) 914 913 { 915 914 struct cy8c95x0_pinctrl *chip = gpiochip_get_data(gc); 916 915 917 - cy8c95x0_write_regs_mask(chip, CY8C95X0_OUTPUT, bits, mask); 916 + return cy8c95x0_write_regs_mask(chip, CY8C95X0_OUTPUT, bits, mask); 918 917 } 919 918 920 919 static int cy8c95x0_add_pin_ranges(struct gpio_chip *gc) ··· 939 938 gc->direction_input = cy8c95x0_gpio_direction_input; 940 939 gc->direction_output = cy8c95x0_gpio_direction_output; 941 940 gc->get = cy8c95x0_gpio_get_value; 942 - gc->set = cy8c95x0_gpio_set_value; 941 + gc->set_rv = cy8c95x0_gpio_set_value; 943 942 gc->get_direction = cy8c95x0_gpio_get_direction; 944 943 gc->get_multiple = cy8c95x0_gpio_get_multiple; 945 - gc->set_multiple = cy8c95x0_gpio_set_multiple; 944 + gc->set_multiple_rv = cy8c95x0_gpio_set_multiple; 946 945 gc->set_config = gpiochip_generic_config; 947 946 gc->can_sleep = true; 948 947 gc->add_pin_ranges = cy8c95x0_add_pin_ranges;
+5 -3
drivers/pinctrl/pinctrl-ingenic.c
··· 3800 3800 chained_irq_exit(irq_chip, desc); 3801 3801 } 3802 3802 3803 - static void ingenic_gpio_set(struct gpio_chip *gc, 3804 - unsigned int offset, int value) 3803 + static int ingenic_gpio_set(struct gpio_chip *gc, unsigned int offset, 3804 + int value) 3805 3805 { 3806 3806 struct ingenic_gpio_chip *jzgc = gpiochip_get_data(gc); 3807 3807 3808 3808 ingenic_gpio_set_value(jzgc, offset, value); 3809 + 3810 + return 0; 3809 3811 } 3810 3812 3811 3813 static int ingenic_gpio_get(struct gpio_chip *gc, unsigned int offset) ··· 4451 4449 jzgc->gc.fwnode = fwnode; 4452 4450 jzgc->gc.owner = THIS_MODULE; 4453 4451 4454 - jzgc->gc.set = ingenic_gpio_set; 4452 + jzgc->gc.set_rv = ingenic_gpio_set; 4455 4453 jzgc->gc.get = ingenic_gpio_get; 4456 4454 jzgc->gc.direction_input = pinctrl_gpio_direction_input; 4457 4455 jzgc->gc.direction_output = ingenic_gpio_direction_output;
+8
drivers/pinctrl/pinctrl-mcp23s08.c
··· 636 636 637 637 mcp->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW); 638 638 639 + /* 640 + * Reset the chip - we don't really know what state it's in, so reset 641 + * all pins to input first to prevent surprises. 642 + */ 643 + ret = mcp_write(mcp, MCP_IODIR, mcp->chip.ngpio == 16 ? 0xFFFF : 0xFF); 644 + if (ret < 0) 645 + return ret; 646 + 639 647 /* verify MCP_IOCON.SEQOP = 0, so sequential reads work, 640 648 * and MCP_IOCON.HAEN = 1, so we work with all chips. 641 649 */
+4 -4
drivers/pinctrl/pinctrl-microchip-sgpio.c
··· 555 555 return bank->is_input ? GPIO_LINE_DIRECTION_IN : GPIO_LINE_DIRECTION_OUT; 556 556 } 557 557 558 - static void microchip_sgpio_set_value(struct gpio_chip *gc, 559 - unsigned int gpio, int value) 558 + static int microchip_sgpio_set_value(struct gpio_chip *gc, unsigned int gpio, 559 + int value) 560 560 { 561 - microchip_sgpio_direction_output(gc, gpio, value); 561 + return microchip_sgpio_direction_output(gc, gpio, value); 562 562 } 563 563 564 564 static int microchip_sgpio_get_value(struct gpio_chip *gc, unsigned int gpio) ··· 858 858 gc->direction_input = microchip_sgpio_direction_input; 859 859 gc->direction_output = microchip_sgpio_direction_output; 860 860 gc->get = microchip_sgpio_get_value; 861 - gc->set = microchip_sgpio_set_value; 861 + gc->set_rv = microchip_sgpio_set_value; 862 862 gc->request = gpiochip_generic_request; 863 863 gc->free = gpiochip_generic_free; 864 864 gc->of_xlate = microchip_sgpio_of_xlate;
+9 -8
drivers/pinctrl/pinctrl-ocelot.c
··· 1950 1950 return !!(val & BIT(offset % 32)); 1951 1951 } 1952 1952 1953 - static void ocelot_gpio_set(struct gpio_chip *chip, unsigned int offset, 1954 - int value) 1953 + static int ocelot_gpio_set(struct gpio_chip *chip, unsigned int offset, 1954 + int value) 1955 1955 { 1956 1956 struct ocelot_pinctrl *info = gpiochip_get_data(chip); 1957 1957 1958 1958 if (value) 1959 - regmap_write(info->map, REG(OCELOT_GPIO_OUT_SET, info, offset), 1960 - BIT(offset % 32)); 1961 - else 1962 - regmap_write(info->map, REG(OCELOT_GPIO_OUT_CLR, info, offset), 1963 - BIT(offset % 32)); 1959 + return regmap_write(info->map, 1960 + REG(OCELOT_GPIO_OUT_SET, info, offset), 1961 + BIT(offset % 32)); 1962 + 1963 + return regmap_write(info->map, REG(OCELOT_GPIO_OUT_CLR, info, offset), 1964 + BIT(offset % 32)); 1964 1965 } 1965 1966 1966 1967 static int ocelot_gpio_get_direction(struct gpio_chip *chip, ··· 1997 1996 static const struct gpio_chip ocelot_gpiolib_chip = { 1998 1997 .request = gpiochip_generic_request, 1999 1998 .free = gpiochip_generic_free, 2000 - .set = ocelot_gpio_set, 1999 + .set_rv = ocelot_gpio_set, 2001 2000 .get = ocelot_gpio_get, 2002 2001 .get_direction = ocelot_gpio_get_direction, 2003 2002 .direction_input = pinctrl_gpio_direction_input,
+5 -3
drivers/pinctrl/pinctrl-pistachio.c
··· 1186 1186 return !!(gpio_readl(bank, reg) & BIT(offset)); 1187 1187 } 1188 1188 1189 - static void pistachio_gpio_set(struct gpio_chip *chip, unsigned offset, 1190 - int value) 1189 + static int pistachio_gpio_set(struct gpio_chip *chip, unsigned int offset, 1190 + int value) 1191 1191 { 1192 1192 struct pistachio_gpio_bank *bank = gpiochip_get_data(chip); 1193 1193 1194 1194 gpio_mask_writel(bank, GPIO_OUTPUT, offset, !!value); 1195 + 1196 + return 0; 1195 1197 } 1196 1198 1197 1199 static int pistachio_gpio_direction_input(struct gpio_chip *chip, ··· 1328 1326 .direction_input = pistachio_gpio_direction_input, \ 1329 1327 .direction_output = pistachio_gpio_direction_output, \ 1330 1328 .get = pistachio_gpio_get, \ 1331 - .set = pistachio_gpio_set, \ 1329 + .set_rv = pistachio_gpio_set, \ 1332 1330 .base = _pin_base, \ 1333 1331 .ngpio = _npins, \ 1334 1332 }, \
+13 -13
drivers/pinctrl/pinctrl-rk805.c
··· 325 325 return !!(val & pci->pin_cfg[offset].val_msk); 326 326 } 327 327 328 - static void rk805_gpio_set(struct gpio_chip *chip, 329 - unsigned int offset, 330 - int value) 328 + static int rk805_gpio_set(struct gpio_chip *chip, unsigned int offset, 329 + int value) 331 330 { 332 331 struct rk805_pctrl_info *pci = gpiochip_get_data(chip); 333 - int ret; 334 332 335 - ret = regmap_update_bits(pci->rk808->regmap, 336 - pci->pin_cfg[offset].reg, 337 - pci->pin_cfg[offset].val_msk, 338 - value ? pci->pin_cfg[offset].val_msk : 0); 339 - if (ret) 340 - dev_err(pci->dev, "set gpio%d value %d failed\n", 341 - offset, value); 333 + return regmap_update_bits(pci->rk808->regmap, 334 + pci->pin_cfg[offset].reg, 335 + pci->pin_cfg[offset].val_msk, 336 + value ? pci->pin_cfg[offset].val_msk : 0); 342 337 } 343 338 344 339 static int rk805_gpio_direction_output(struct gpio_chip *chip, 345 340 unsigned int offset, int value) 346 341 { 347 - rk805_gpio_set(chip, offset, value); 342 + int ret; 343 + 344 + ret = rk805_gpio_set(chip, offset, value); 345 + if (ret) 346 + return ret; 347 + 348 348 return pinctrl_gpio_direction_output(chip, offset); 349 349 } 350 350 ··· 378 378 .free = gpiochip_generic_free, 379 379 .get_direction = rk805_gpio_get_direction, 380 380 .get = rk805_gpio_get, 381 - .set = rk805_gpio_set, 381 + .set_rv = rk805_gpio_set, 382 382 .direction_input = pinctrl_gpio_direction_input, 383 383 .direction_output = rk805_gpio_direction_output, 384 384 .can_sleep = true,
+1
drivers/pinctrl/pinctrl-scmi.c
··· 507 507 508 508 static const char * const scmi_pinctrl_blocklist[] = { 509 509 "fsl,imx95", 510 + "fsl,imx94", 510 511 NULL 511 512 }; 512 513
+8 -5
drivers/pinctrl/pinctrl-stmfx.c
··· 115 115 return ret ? ret : !!(value & mask); 116 116 } 117 117 118 - static void stmfx_gpio_set(struct gpio_chip *gc, unsigned int offset, int value) 118 + static int stmfx_gpio_set(struct gpio_chip *gc, unsigned int offset, int value) 119 119 { 120 120 struct stmfx_pinctrl *pctl = gpiochip_get_data(gc); 121 121 u32 reg = value ? STMFX_REG_GPO_SET : STMFX_REG_GPO_CLR; 122 122 u32 mask = get_mask(offset); 123 123 124 - regmap_write_bits(pctl->stmfx->map, reg + get_reg(offset), 125 - mask, mask); 124 + return regmap_write_bits(pctl->stmfx->map, reg + get_reg(offset), 125 + mask, mask); 126 126 } 127 127 128 128 static int stmfx_gpio_get_direction(struct gpio_chip *gc, unsigned int offset) ··· 161 161 struct stmfx_pinctrl *pctl = gpiochip_get_data(gc); 162 162 u32 reg = STMFX_REG_GPIO_DIR + get_reg(offset); 163 163 u32 mask = get_mask(offset); 164 + int ret; 164 165 165 - stmfx_gpio_set(gc, offset, value); 166 + ret = stmfx_gpio_set(gc, offset, value); 167 + if (ret) 168 + return ret; 166 169 167 170 return regmap_write_bits(pctl->stmfx->map, reg, mask, mask); 168 171 } ··· 697 694 pctl->gpio_chip.direction_input = stmfx_gpio_direction_input; 698 695 pctl->gpio_chip.direction_output = stmfx_gpio_direction_output; 699 696 pctl->gpio_chip.get = stmfx_gpio_get; 700 - pctl->gpio_chip.set = stmfx_gpio_set; 697 + pctl->gpio_chip.set_rv = stmfx_gpio_set; 701 698 pctl->gpio_chip.set_config = gpiochip_generic_config; 702 699 pctl->gpio_chip.base = -1; 703 700 pctl->gpio_chip.ngpio = pctl->pctl_desc.npins;
+12 -11
drivers/pinctrl/pinctrl-sx150x.c
··· 432 432 (value ? 0x1f : 0x10)); 433 433 } 434 434 435 - static void sx150x_gpio_set(struct gpio_chip *chip, unsigned int offset, 436 - int value) 435 + static int sx150x_gpio_set(struct gpio_chip *chip, unsigned int offset, 436 + int value) 437 437 { 438 438 struct sx150x_pinctrl *pctl = gpiochip_get_data(chip); 439 439 440 440 if (sx150x_pin_is_oscio(pctl, offset)) 441 - sx150x_gpio_oscio_set(pctl, value); 442 - else 443 - __sx150x_gpio_set(pctl, offset, value); 441 + return sx150x_gpio_oscio_set(pctl, value); 442 + 443 + return __sx150x_gpio_set(pctl, offset, value); 444 444 } 445 445 446 - static void sx150x_gpio_set_multiple(struct gpio_chip *chip, 447 - unsigned long *mask, 448 - unsigned long *bits) 446 + static int sx150x_gpio_set_multiple(struct gpio_chip *chip, 447 + unsigned long *mask, 448 + unsigned long *bits) 449 449 { 450 450 struct sx150x_pinctrl *pctl = gpiochip_get_data(chip); 451 451 452 - regmap_write_bits(pctl->regmap, pctl->data->reg_data, *mask, *bits); 452 + return regmap_write_bits(pctl->regmap, pctl->data->reg_data, *mask, 453 + *bits); 453 454 } 454 455 455 456 static int sx150x_gpio_direction_input(struct gpio_chip *chip, ··· 1176 1175 pctl->gpio.direction_input = sx150x_gpio_direction_input; 1177 1176 pctl->gpio.direction_output = sx150x_gpio_direction_output; 1178 1177 pctl->gpio.get = sx150x_gpio_get; 1179 - pctl->gpio.set = sx150x_gpio_set; 1178 + pctl->gpio.set_rv = sx150x_gpio_set; 1180 1179 pctl->gpio.set_config = gpiochip_generic_config; 1181 1180 pctl->gpio.parent = dev; 1182 1181 pctl->gpio.can_sleep = true; ··· 1191 1190 * would require locking that is not in place at this time. 1192 1191 */ 1193 1192 if (pctl->data->model != SX150X_789) 1194 - pctl->gpio.set_multiple = sx150x_gpio_set_multiple; 1193 + pctl->gpio.set_multiple_rv = sx150x_gpio_set_multiple; 1195 1194 1196 1195 /* Add Interrupt support if an irq is specified */ 1197 1196 if (client->irq > 0) {
+3 -3
drivers/pinctrl/qcom/pinctrl-lpass-lpi.c
··· 327 327 LPI_GPIO_VALUE_IN_MASK; 328 328 } 329 329 330 - static void lpi_gpio_set(struct gpio_chip *chip, unsigned int pin, int value) 330 + static int lpi_gpio_set(struct gpio_chip *chip, unsigned int pin, int value) 331 331 { 332 332 struct lpi_pinctrl *state = gpiochip_get_data(chip); 333 333 unsigned long config; 334 334 335 335 config = pinconf_to_config_packed(PIN_CONFIG_OUTPUT, value); 336 336 337 - lpi_config_set(state->ctrl, pin, &config, 1); 337 + return lpi_config_set(state->ctrl, pin, &config, 1); 338 338 } 339 339 340 340 #ifdef CONFIG_DEBUG_FS ··· 398 398 .direction_input = lpi_gpio_direction_input, 399 399 .direction_output = lpi_gpio_direction_output, 400 400 .get = lpi_gpio_get, 401 - .set = lpi_gpio_set, 401 + .set_rv = lpi_gpio_set, 402 402 .request = gpiochip_generic_request, 403 403 .free = gpiochip_generic_free, 404 404 .dbg_show = lpi_gpio_dbg_show,
+4 -2
drivers/pinctrl/qcom/pinctrl-msm.c
··· 635 635 return !!(val & BIT(g->in_bit)); 636 636 } 637 637 638 - static void msm_gpio_set(struct gpio_chip *chip, unsigned offset, int value) 638 + static int msm_gpio_set(struct gpio_chip *chip, unsigned int offset, int value) 639 639 { 640 640 const struct msm_pingroup *g; 641 641 struct msm_pinctrl *pctrl = gpiochip_get_data(chip); ··· 654 654 msm_writel_io(val, pctrl, g); 655 655 656 656 raw_spin_unlock_irqrestore(&pctrl->lock, flags); 657 + 658 + return 0; 657 659 } 658 660 659 661 #ifdef CONFIG_DEBUG_FS ··· 792 790 .direction_output = msm_gpio_direction_output, 793 791 .get_direction = msm_gpio_get_direction, 794 792 .get = msm_gpio_get, 795 - .set = msm_gpio_set, 793 + .set_rv = msm_gpio_set, 796 794 .request = gpiochip_generic_request, 797 795 .free = gpiochip_generic_free, 798 796 .dbg_show = msm_gpio_dbg_show,
+41 -29
drivers/pinctrl/qcom/pinctrl-qcm2290.c
··· 37 37 .mux_bit = 2, \ 38 38 .pull_bit = 0, \ 39 39 .drv_bit = 6, \ 40 + .egpio_enable = 12, \ 41 + .egpio_present = 11, \ 40 42 .oe_bit = 9, \ 41 43 .in_bit = 0, \ 42 44 .out_bit = 1, \ ··· 389 387 msm_mux_ddr_pxi1, 390 388 msm_mux_ddr_pxi2, 391 389 msm_mux_ddr_pxi3, 390 + msm_mux_egpio, 392 391 msm_mux_gcc_gp1, 393 392 msm_mux_gcc_gp2, 394 393 msm_mux_gcc_gp3, ··· 819 816 static const char * const jitter_bist_groups[] = { 820 817 "gpio96", "gpio97", 821 818 }; 819 + static const char * const egpio_groups[] = { 820 + "gpio98", "gpio99", "gpio100", "gpio101", "gpio102", "gpio103", 821 + "gpio104", "gpio105", "gpio106", "gpio107", "gpio108", "gpio109", 822 + "gpio110", "gpio111", "gpio112", "gpio113", "gpio114", "gpio115", 823 + "gpio116", "gpio117", "gpio118", "gpio119", "gpio120", "gpio121", 824 + "gpio122", "gpio123", "gpio124", "gpio125", "gpio126", 825 + }; 822 826 static const char * const ddr_pxi2_groups[] = { 823 827 "gpio102", "gpio103", 824 828 }; ··· 861 851 MSM_PIN_FUNCTION(ddr_pxi1), 862 852 MSM_PIN_FUNCTION(ddr_pxi2), 863 853 MSM_PIN_FUNCTION(ddr_pxi3), 854 + MSM_PIN_FUNCTION(egpio), 864 855 MSM_PIN_FUNCTION(gcc_gp1), 865 856 MSM_PIN_FUNCTION(gcc_gp2), 866 857 MSM_PIN_FUNCTION(gcc_gp3), ··· 1048 1037 [95] = PINGROUP(95, nav_gpio, gp_pdm0, qdss_gpio, wlan1_adc1, _, _, _, _, _), 1049 1038 [96] = PINGROUP(96, qup4, nav_gpio, mdp_vsync, gp_pdm1, sd_write, jitter_bist, qdss_cti, qdss_cti, _), 1050 1039 [97] = PINGROUP(97, qup4, nav_gpio, mdp_vsync, gp_pdm2, jitter_bist, qdss_cti, qdss_cti, _, _), 1051 - [98] = PINGROUP(98, _, _, _, _, _, _, _, _, _), 1052 - [99] = PINGROUP(99, _, _, _, _, _, _, _, _, _), 1053 - [100] = PINGROUP(100, atest, _, _, _, _, _, _, _, _), 1054 - [101] = PINGROUP(101, atest, _, _, _, _, _, _, _, _), 1055 - [102] = PINGROUP(102, _, phase_flag, dac_calib, ddr_pxi2, _, _, _, _, _), 1056 - [103] = PINGROUP(103, _, phase_flag, dac_calib, ddr_pxi2, _, _, _, _, _), 1057 - [104] = PINGROUP(104, _, phase_flag, qdss_gpio, dac_calib, ddr_pxi3, _, pwm_8, _, _), 1058 - [105] = PINGROUP(105, _, phase_flag, qdss_gpio, dac_calib, ddr_pxi3, _, _, _, _), 1059 - [106] = PINGROUP(106, nav_gpio, gcc_gp3, qdss_gpio, _, _, _, _, _, _), 1060 - [107] = PINGROUP(107, nav_gpio, gcc_gp2, qdss_gpio, _, _, _, _, _, _), 1061 - [108] = PINGROUP(108, nav_gpio, _, _, _, _, _, _, _, _), 1062 - [109] = PINGROUP(109, _, qdss_gpio, _, _, _, _, _, _, _), 1063 - [110] = PINGROUP(110, _, qdss_gpio, _, _, _, _, _, _, _), 1064 - [111] = PINGROUP(111, _, _, _, _, _, _, _, _, _), 1065 - [112] = PINGROUP(112, _, _, _, _, _, _, _, _, _), 1066 - [113] = PINGROUP(113, _, _, _, _, _, _, _, _, _), 1067 - [114] = PINGROUP(114, _, _, _, _, _, _, _, _, _), 1068 - [115] = PINGROUP(115, _, pwm_9, _, _, _, _, _, _, _), 1069 - [116] = PINGROUP(116, _, _, _, _, _, _, _, _, _), 1070 - [117] = PINGROUP(117, _, _, _, _, _, _, _, _, _), 1071 - [118] = PINGROUP(118, _, _, _, _, _, _, _, _, _), 1072 - [119] = PINGROUP(119, _, _, _, _, _, _, _, _, _), 1073 - [120] = PINGROUP(120, _, _, _, _, _, _, _, _, _), 1074 - [121] = PINGROUP(121, _, _, _, _, _, _, _, _, _), 1075 - [122] = PINGROUP(122, _, _, _, _, _, _, _, _, _), 1076 - [123] = PINGROUP(123, _, _, _, _, _, _, _, _, _), 1077 - [124] = PINGROUP(124, _, _, _, _, _, _, _, _, _), 1078 - [125] = PINGROUP(125, _, _, _, _, _, _, _, _, _), 1079 - [126] = PINGROUP(126, _, _, _, _, _, _, _, _, _), 1040 + [98] = PINGROUP(98, _, _, _, _, _, _, _, _, egpio), 1041 + [99] = PINGROUP(99, _, _, _, _, _, _, _, _, egpio), 1042 + [100] = PINGROUP(100, atest, _, _, _, _, _, _, _, egpio), 1043 + [101] = PINGROUP(101, atest, _, _, _, _, _, _, _, egpio), 1044 + [102] = PINGROUP(102, _, phase_flag, dac_calib, ddr_pxi2, _, _, _, _, egpio), 1045 + [103] = PINGROUP(103, _, phase_flag, dac_calib, ddr_pxi2, _, _, _, _, egpio), 1046 + [104] = PINGROUP(104, _, phase_flag, qdss_gpio, dac_calib, ddr_pxi3, _, pwm_8, _, egpio), 1047 + [105] = PINGROUP(105, _, phase_flag, qdss_gpio, dac_calib, ddr_pxi3, _, _, _, egpio), 1048 + [106] = PINGROUP(106, nav_gpio, gcc_gp3, qdss_gpio, _, _, _, _, _, egpio), 1049 + [107] = PINGROUP(107, nav_gpio, gcc_gp2, qdss_gpio, _, _, _, _, _, egpio), 1050 + [108] = PINGROUP(108, nav_gpio, _, _, _, _, _, _, _, egpio), 1051 + [109] = PINGROUP(109, _, qdss_gpio, _, _, _, _, _, _, egpio), 1052 + [110] = PINGROUP(110, _, qdss_gpio, _, _, _, _, _, _, egpio), 1053 + [111] = PINGROUP(111, _, _, _, _, _, _, _, _, egpio), 1054 + [112] = PINGROUP(112, _, _, _, _, _, _, _, _, egpio), 1055 + [113] = PINGROUP(113, _, _, _, _, _, _, _, _, egpio), 1056 + [114] = PINGROUP(114, _, _, _, _, _, _, _, _, egpio), 1057 + [115] = PINGROUP(115, _, pwm_9, _, _, _, _, _, _, egpio), 1058 + [116] = PINGROUP(116, _, _, _, _, _, _, _, _, egpio), 1059 + [117] = PINGROUP(117, _, _, _, _, _, _, _, _, egpio), 1060 + [118] = PINGROUP(118, _, _, _, _, _, _, _, _, egpio), 1061 + [119] = PINGROUP(119, _, _, _, _, _, _, _, _, egpio), 1062 + [120] = PINGROUP(120, _, _, _, _, _, _, _, _, egpio), 1063 + [121] = PINGROUP(121, _, _, _, _, _, _, _, _, egpio), 1064 + [122] = PINGROUP(122, _, _, _, _, _, _, _, _, egpio), 1065 + [123] = PINGROUP(123, _, _, _, _, _, _, _, _, egpio), 1066 + [124] = PINGROUP(124, _, _, _, _, _, _, _, _, egpio), 1067 + [125] = PINGROUP(125, _, _, _, _, _, _, _, _, egpio), 1068 + [126] = PINGROUP(126, _, _, _, _, _, _, _, _, egpio), 1080 1069 [127] = SDC_QDSD_PINGROUP(sdc1_rclk, 0x84004, 0, 0), 1081 1070 [128] = SDC_QDSD_PINGROUP(sdc1_clk, 0x84000, 13, 6), 1082 1071 [129] = SDC_QDSD_PINGROUP(sdc1_cmd, 0x84000, 11, 3), ··· 1106 1095 .ngpios = 127, 1107 1096 .wakeirq_map = qcm2290_mpm_map, 1108 1097 .nwakeirq_map = ARRAY_SIZE(qcm2290_mpm_map), 1098 + .egpio_func = 9, 1109 1099 }; 1110 1100 1111 1101 static int qcm2290_pinctrl_probe(struct platform_device *pdev)
+1 -1
drivers/pinctrl/qcom/pinctrl-qcs615.c
··· 1062 1062 .nfunctions = ARRAY_SIZE(qcs615_functions), 1063 1063 .groups = qcs615_groups, 1064 1064 .ngroups = ARRAY_SIZE(qcs615_groups), 1065 - .ngpios = 123, 1065 + .ngpios = 124, 1066 1066 .tiles = qcs615_tiles, 1067 1067 .ntiles = ARRAY_SIZE(qcs615_tiles), 1068 1068 .wakeirq_map = qcs615_pdc_map,
+1 -1
drivers/pinctrl/qcom/pinctrl-qcs8300.c
··· 1204 1204 .nfunctions = ARRAY_SIZE(qcs8300_functions), 1205 1205 .groups = qcs8300_groups, 1206 1206 .ngroups = ARRAY_SIZE(qcs8300_groups), 1207 - .ngpios = 133, 1207 + .ngpios = 134, 1208 1208 .wakeirq_map = qcs8300_pdc_map, 1209 1209 .nwakeirq_map = ARRAY_SIZE(qcs8300_pdc_map), 1210 1210 .egpio_func = 11,
+3 -3
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c
··· 764 764 return !!pad->out_value; 765 765 } 766 766 767 - static void pmic_gpio_set(struct gpio_chip *chip, unsigned pin, int value) 767 + static int pmic_gpio_set(struct gpio_chip *chip, unsigned int pin, int value) 768 768 { 769 769 struct pmic_gpio_state *state = gpiochip_get_data(chip); 770 770 unsigned long config; 771 771 772 772 config = pinconf_to_config_packed(PIN_CONFIG_OUTPUT, value); 773 773 774 - pmic_gpio_config_set(state->ctrl, pin, &config, 1); 774 + return pmic_gpio_config_set(state->ctrl, pin, &config, 1); 775 775 } 776 776 777 777 static int pmic_gpio_of_xlate(struct gpio_chip *chip, ··· 802 802 .direction_input = pmic_gpio_direction_input, 803 803 .direction_output = pmic_gpio_direction_output, 804 804 .get = pmic_gpio_get, 805 - .set = pmic_gpio_set, 805 + .set_rv = pmic_gpio_set, 806 806 .request = gpiochip_generic_request, 807 807 .free = gpiochip_generic_free, 808 808 .of_xlate = pmic_gpio_of_xlate,
+3 -3
drivers/pinctrl/qcom/pinctrl-spmi-mpp.c
··· 600 600 return !!pad->out_value; 601 601 } 602 602 603 - static void pmic_mpp_set(struct gpio_chip *chip, unsigned pin, int value) 603 + static int pmic_mpp_set(struct gpio_chip *chip, unsigned int pin, int value) 604 604 { 605 605 struct pmic_mpp_state *state = gpiochip_get_data(chip); 606 606 unsigned long config; 607 607 608 608 config = pinconf_to_config_packed(PIN_CONFIG_OUTPUT, value); 609 609 610 - pmic_mpp_config_set(state->ctrl, pin, &config, 1); 610 + return pmic_mpp_config_set(state->ctrl, pin, &config, 1); 611 611 } 612 612 613 613 static int pmic_mpp_of_xlate(struct gpio_chip *chip, ··· 638 638 .direction_input = pmic_mpp_direction_input, 639 639 .direction_output = pmic_mpp_direction_output, 640 640 .get = pmic_mpp_get, 641 - .set = pmic_mpp_set, 641 + .set_rv = pmic_mpp_set, 642 642 .request = gpiochip_generic_request, 643 643 .free = gpiochip_generic_free, 644 644 .of_xlate = pmic_mpp_of_xlate,
+4 -3
drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c
··· 507 507 return ret; 508 508 } 509 509 510 - static void pm8xxx_gpio_set(struct gpio_chip *chip, unsigned offset, int value) 510 + static int pm8xxx_gpio_set(struct gpio_chip *chip, unsigned int offset, 511 + int value) 511 512 { 512 513 struct pm8xxx_gpio *pctrl = gpiochip_get_data(chip); 513 514 struct pm8xxx_pin_data *pin = pctrl->desc.pins[offset].drv_data; ··· 520 519 val |= pin->open_drain << 1; 521 520 val |= pin->output_value; 522 521 523 - pm8xxx_write_bank(pctrl, pin, 1, val); 522 + return pm8xxx_write_bank(pctrl, pin, 1, val); 524 523 } 525 524 526 525 static int pm8xxx_gpio_of_xlate(struct gpio_chip *chip, ··· 597 596 .direction_input = pm8xxx_gpio_direction_input, 598 597 .direction_output = pm8xxx_gpio_direction_output, 599 598 .get = pm8xxx_gpio_get, 600 - .set = pm8xxx_gpio_set, 599 + .set_rv = pm8xxx_gpio_set, 601 600 .of_xlate = pm8xxx_gpio_of_xlate, 602 601 .dbg_show = pm8xxx_gpio_dbg_show, 603 602 .owner = THIS_MODULE,
+4 -3
drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c
··· 511 511 return ret; 512 512 } 513 513 514 - static void pm8xxx_mpp_set(struct gpio_chip *chip, unsigned offset, int value) 514 + static int pm8xxx_mpp_set(struct gpio_chip *chip, unsigned int offset, 515 + int value) 515 516 { 516 517 struct pm8xxx_mpp *pctrl = gpiochip_get_data(chip); 517 518 struct pm8xxx_pin_data *pin = pctrl->desc.pins[offset].drv_data; 518 519 519 520 pin->output_value = !!value; 520 521 521 - pm8xxx_mpp_update(pctrl, pin); 522 + return pm8xxx_mpp_update(pctrl, pin); 522 523 } 523 524 524 525 static int pm8xxx_mpp_of_xlate(struct gpio_chip *chip, ··· 634 633 .direction_input = pm8xxx_mpp_direction_input, 635 634 .direction_output = pm8xxx_mpp_direction_output, 636 635 .get = pm8xxx_mpp_get, 637 - .set = pm8xxx_mpp_set, 636 + .set_rv = pm8xxx_mpp_set, 638 637 .of_xlate = pm8xxx_mpp_of_xlate, 639 638 .dbg_show = pm8xxx_mpp_dbg_show, 640 639 .owner = THIS_MODULE,
+1
drivers/pinctrl/qcom/tlmm-test.c
··· 547 547 struct tlmm_test_priv *priv; 548 548 549 549 priv = kunit_kzalloc(test, sizeof(*priv), GFP_KERNEL); 550 + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, priv); 550 551 551 552 atomic_set(&priv->intr_count, 0); 552 553 atomic_set(&priv->thread_count, 0);
+1
drivers/pinctrl/renesas/Kconfig
··· 42 42 select PINCTRL_RZG2L if ARCH_RZG2L 43 43 select PINCTRL_RZV2M if ARCH_R9A09G011 44 44 select PINCTRL_RZG2L if ARCH_R9A09G047 45 + select PINCTRL_RZG2L if ARCH_R9A09G056 45 46 select PINCTRL_RZG2L if ARCH_R9A09G057 46 47 select PINCTRL_PFC_SH7203 if CPU_SUBTYPE_SH7203 47 48 select PINCTRL_PFC_SH7264 if CPU_SUBTYPE_SH7264
+169 -130
drivers/pinctrl/renesas/pinctrl-rzg2l.c
··· 2230 2230 PIN_CFG_IO_VMC_SD1)) }, 2231 2231 }; 2232 2232 2233 - static struct rzg2l_dedicated_configs rzv2h_dedicated_pins[] = { 2234 - { "NMI", RZG2L_SINGLE_PIN_PACK(0x1, 0, PIN_CFG_NF) }, 2235 - { "TMS_SWDIO", RZG2L_SINGLE_PIN_PACK(0x3, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2236 - PIN_CFG_IEN)) }, 2237 - { "TDO", RZG2L_SINGLE_PIN_PACK(0x3, 2, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR)) }, 2238 - { "WDTUDFCA", RZG2L_SINGLE_PIN_PACK(0x5, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2239 - PIN_CFG_PUPD | PIN_CFG_NOD)) }, 2240 - { "WDTUDFCM", RZG2L_SINGLE_PIN_PACK(0x5, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2241 - PIN_CFG_PUPD | PIN_CFG_NOD)) }, 2242 - { "SCIF_RXD", RZG2L_SINGLE_PIN_PACK(0x6, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2243 - PIN_CFG_PUPD)) }, 2244 - { "SCIF_TXD", RZG2L_SINGLE_PIN_PACK(0x6, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2245 - PIN_CFG_PUPD)) }, 2246 - { "XSPI0_CKP", RZG2L_SINGLE_PIN_PACK(0x7, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2247 - PIN_CFG_PUPD | PIN_CFG_OEN)) }, 2248 - { "XSPI0_CKN", RZG2L_SINGLE_PIN_PACK(0x7, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2249 - PIN_CFG_PUPD | PIN_CFG_OEN)) }, 2250 - { "XSPI0_CS0N", RZG2L_SINGLE_PIN_PACK(0x7, 2, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2251 - PIN_CFG_PUPD | PIN_CFG_OEN)) }, 2252 - { "XSPI0_DS", RZG2L_SINGLE_PIN_PACK(0x7, 3, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2253 - PIN_CFG_PUPD)) }, 2254 - { "XSPI0_RESET0N", RZG2L_SINGLE_PIN_PACK(0x7, 4, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2255 - PIN_CFG_PUPD | PIN_CFG_OEN)) }, 2256 - { "XSPI0_RSTO0N", RZG2L_SINGLE_PIN_PACK(0x7, 5, (PIN_CFG_PUPD)) }, 2257 - { "XSPI0_INT0N", RZG2L_SINGLE_PIN_PACK(0x7, 6, (PIN_CFG_PUPD)) }, 2258 - { "XSPI0_ECS0N", RZG2L_SINGLE_PIN_PACK(0x7, 7, (PIN_CFG_PUPD)) }, 2259 - { "XSPI0_IO0", RZG2L_SINGLE_PIN_PACK(0x8, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2260 - PIN_CFG_PUPD)) }, 2261 - { "XSPI0_IO1", RZG2L_SINGLE_PIN_PACK(0x8, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2262 - PIN_CFG_PUPD)) }, 2263 - { "XSPI0_IO2", RZG2L_SINGLE_PIN_PACK(0x8, 2, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2264 - PIN_CFG_PUPD)) }, 2265 - { "XSPI0_IO3", RZG2L_SINGLE_PIN_PACK(0x8, 3, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2266 - PIN_CFG_PUPD)) }, 2267 - { "XSPI0_IO4", RZG2L_SINGLE_PIN_PACK(0x8, 4, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2268 - PIN_CFG_PUPD)) }, 2269 - { "XSPI0_IO5", RZG2L_SINGLE_PIN_PACK(0x8, 5, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2270 - PIN_CFG_PUPD)) }, 2271 - { "XSPI0_IO6", RZG2L_SINGLE_PIN_PACK(0x8, 6, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2272 - PIN_CFG_PUPD)) }, 2273 - { "XSPI0_IO7", RZG2L_SINGLE_PIN_PACK(0x8, 7, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2274 - PIN_CFG_PUPD)) }, 2275 - { "SD0CLK", RZG2L_SINGLE_PIN_PACK(0x9, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR)) }, 2276 - { "SD0CMD", RZG2L_SINGLE_PIN_PACK(0x9, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2277 - PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2278 - { "SD0RSTN", RZG2L_SINGLE_PIN_PACK(0x9, 2, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR)) }, 2279 - { "SD0DAT0", RZG2L_SINGLE_PIN_PACK(0xa, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2280 - PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2281 - { "SD0DAT1", RZG2L_SINGLE_PIN_PACK(0xa, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2282 - PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2283 - { "SD0DAT2", RZG2L_SINGLE_PIN_PACK(0xa, 2, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2284 - PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2285 - { "SD0DAT3", RZG2L_SINGLE_PIN_PACK(0xa, 3, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2286 - PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2287 - { "SD0DAT4", RZG2L_SINGLE_PIN_PACK(0xa, 4, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2288 - PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2289 - { "SD0DAT5", RZG2L_SINGLE_PIN_PACK(0xa, 5, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2290 - PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2291 - { "SD0DAT6", RZG2L_SINGLE_PIN_PACK(0xa, 6, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2292 - PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2293 - { "SD0DAT7", RZG2L_SINGLE_PIN_PACK(0xa, 7, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2294 - PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2295 - { "SD1CLK", RZG2L_SINGLE_PIN_PACK(0xb, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR)) }, 2296 - { "SD1CMD", RZG2L_SINGLE_PIN_PACK(0xb, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2297 - PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2298 - { "SD1DAT0", RZG2L_SINGLE_PIN_PACK(0xc, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2299 - PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2300 - { "SD1DAT1", RZG2L_SINGLE_PIN_PACK(0xc, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2301 - PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2302 - { "SD1DAT2", RZG2L_SINGLE_PIN_PACK(0xc, 2, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2303 - PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2304 - { "SD1DAT3", RZG2L_SINGLE_PIN_PACK(0xc, 3, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2305 - PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2306 - { "PCIE0_RSTOUTB", RZG2L_SINGLE_PIN_PACK(0xe, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR)) }, 2307 - { "PCIE1_RSTOUTB", RZG2L_SINGLE_PIN_PACK(0xe, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR)) }, 2308 - { "ET0_MDIO", RZG2L_SINGLE_PIN_PACK(0xf, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2309 - PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2310 - { "ET0_MDC", RZG2L_SINGLE_PIN_PACK(0xf, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2311 - PIN_CFG_PUPD)) }, 2312 - { "ET0_RXCTL_RXDV", RZG2L_SINGLE_PIN_PACK(0x10, 0, (PIN_CFG_PUPD)) }, 2313 - { "ET0_TXCTL_TXEN", RZG2L_SINGLE_PIN_PACK(0x10, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2233 + static const struct { 2234 + struct rzg2l_dedicated_configs common[77]; 2235 + struct rzg2l_dedicated_configs pcie1[1]; 2236 + } rzv2h_dedicated_pins = { 2237 + .common = { 2238 + { "NMI", RZG2L_SINGLE_PIN_PACK(0x1, 0, PIN_CFG_NF) }, 2239 + { "TMS_SWDIO", RZG2L_SINGLE_PIN_PACK(0x3, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2240 + PIN_CFG_IEN)) }, 2241 + { "TDO", RZG2L_SINGLE_PIN_PACK(0x3, 2, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR)) }, 2242 + { "WDTUDFCA", RZG2L_SINGLE_PIN_PACK(0x5, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2243 + PIN_CFG_PUPD | PIN_CFG_NOD)) }, 2244 + { "WDTUDFCM", RZG2L_SINGLE_PIN_PACK(0x5, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2245 + PIN_CFG_PUPD | PIN_CFG_NOD)) }, 2246 + { "SCIF_RXD", RZG2L_SINGLE_PIN_PACK(0x6, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2247 + PIN_CFG_PUPD)) }, 2248 + { "SCIF_TXD", RZG2L_SINGLE_PIN_PACK(0x6, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2249 + PIN_CFG_PUPD)) }, 2250 + { "XSPI0_CKP", RZG2L_SINGLE_PIN_PACK(0x7, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2251 + PIN_CFG_PUPD | PIN_CFG_OEN)) }, 2252 + { "XSPI0_CKN", RZG2L_SINGLE_PIN_PACK(0x7, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2253 + PIN_CFG_PUPD | PIN_CFG_OEN)) }, 2254 + { "XSPI0_CS0N", RZG2L_SINGLE_PIN_PACK(0x7, 2, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2255 + PIN_CFG_PUPD | PIN_CFG_OEN)) }, 2256 + { "XSPI0_DS", RZG2L_SINGLE_PIN_PACK(0x7, 3, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2257 + PIN_CFG_PUPD)) }, 2258 + { "XSPI0_RESET0N", RZG2L_SINGLE_PIN_PACK(0x7, 4, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2259 + PIN_CFG_PUPD | PIN_CFG_OEN)) }, 2260 + { "XSPI0_RSTO0N", RZG2L_SINGLE_PIN_PACK(0x7, 5, (PIN_CFG_PUPD)) }, 2261 + { "XSPI0_INT0N", RZG2L_SINGLE_PIN_PACK(0x7, 6, (PIN_CFG_PUPD)) }, 2262 + { "XSPI0_ECS0N", RZG2L_SINGLE_PIN_PACK(0x7, 7, (PIN_CFG_PUPD)) }, 2263 + { "XSPI0_IO0", RZG2L_SINGLE_PIN_PACK(0x8, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2264 + PIN_CFG_PUPD)) }, 2265 + { "XSPI0_IO1", RZG2L_SINGLE_PIN_PACK(0x8, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2266 + PIN_CFG_PUPD)) }, 2267 + { "XSPI0_IO2", RZG2L_SINGLE_PIN_PACK(0x8, 2, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2268 + PIN_CFG_PUPD)) }, 2269 + { "XSPI0_IO3", RZG2L_SINGLE_PIN_PACK(0x8, 3, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2270 + PIN_CFG_PUPD)) }, 2271 + { "XSPI0_IO4", RZG2L_SINGLE_PIN_PACK(0x8, 4, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2272 + PIN_CFG_PUPD)) }, 2273 + { "XSPI0_IO5", RZG2L_SINGLE_PIN_PACK(0x8, 5, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2274 + PIN_CFG_PUPD)) }, 2275 + { "XSPI0_IO6", RZG2L_SINGLE_PIN_PACK(0x8, 6, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2276 + PIN_CFG_PUPD)) }, 2277 + { "XSPI0_IO7", RZG2L_SINGLE_PIN_PACK(0x8, 7, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2278 + PIN_CFG_PUPD)) }, 2279 + { "SD0CLK", RZG2L_SINGLE_PIN_PACK(0x9, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR)) }, 2280 + { "SD0CMD", RZG2L_SINGLE_PIN_PACK(0x9, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2281 + PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2282 + { "SD0RSTN", RZG2L_SINGLE_PIN_PACK(0x9, 2, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR)) }, 2283 + { "SD0DAT0", RZG2L_SINGLE_PIN_PACK(0xa, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2284 + PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2285 + { "SD0DAT1", RZG2L_SINGLE_PIN_PACK(0xa, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2286 + PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2287 + { "SD0DAT2", RZG2L_SINGLE_PIN_PACK(0xa, 2, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2288 + PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2289 + { "SD0DAT3", RZG2L_SINGLE_PIN_PACK(0xa, 3, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2290 + PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2291 + { "SD0DAT4", RZG2L_SINGLE_PIN_PACK(0xa, 4, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2292 + PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2293 + { "SD0DAT5", RZG2L_SINGLE_PIN_PACK(0xa, 5, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2294 + PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2295 + { "SD0DAT6", RZG2L_SINGLE_PIN_PACK(0xa, 6, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2296 + PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2297 + { "SD0DAT7", RZG2L_SINGLE_PIN_PACK(0xa, 7, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2298 + PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2299 + { "SD1CLK", RZG2L_SINGLE_PIN_PACK(0xb, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR)) }, 2300 + { "SD1CMD", RZG2L_SINGLE_PIN_PACK(0xb, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2301 + PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2302 + { "SD1DAT0", RZG2L_SINGLE_PIN_PACK(0xc, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2303 + PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2304 + { "SD1DAT1", RZG2L_SINGLE_PIN_PACK(0xc, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2305 + PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2306 + { "SD1DAT2", RZG2L_SINGLE_PIN_PACK(0xc, 2, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2307 + PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2308 + { "SD1DAT3", RZG2L_SINGLE_PIN_PACK(0xc, 3, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2309 + PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2310 + { "PCIE0_RSTOUTB", RZG2L_SINGLE_PIN_PACK(0xe, 0, (PIN_CFG_IOLH_RZV2H | 2311 + PIN_CFG_SR)) }, 2312 + { "ET0_MDIO", RZG2L_SINGLE_PIN_PACK(0xf, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2313 + PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2314 + { "ET0_MDC", RZG2L_SINGLE_PIN_PACK(0xf, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2314 2315 PIN_CFG_PUPD)) }, 2315 - { "ET0_TXER", RZG2L_SINGLE_PIN_PACK(0x10, 2, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2316 - PIN_CFG_PUPD)) }, 2317 - { "ET0_RXER", RZG2L_SINGLE_PIN_PACK(0x10, 3, (PIN_CFG_PUPD)) }, 2318 - { "ET0_RXC_RXCLK", RZG2L_SINGLE_PIN_PACK(0x10, 4, (PIN_CFG_PUPD)) }, 2319 - { "ET0_TXC_TXCLK", RZG2L_SINGLE_PIN_PACK(0x10, 5, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2320 - PIN_CFG_PUPD | PIN_CFG_OEN)) }, 2321 - { "ET0_CRS", RZG2L_SINGLE_PIN_PACK(0x10, 6, (PIN_CFG_PUPD)) }, 2322 - { "ET0_COL", RZG2L_SINGLE_PIN_PACK(0x10, 7, (PIN_CFG_PUPD)) }, 2323 - { "ET0_TXD0", RZG2L_SINGLE_PIN_PACK(0x11, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2324 - PIN_CFG_PUPD)) }, 2325 - { "ET0_TXD1", RZG2L_SINGLE_PIN_PACK(0x11, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2326 - PIN_CFG_PUPD)) }, 2327 - { "ET0_TXD2", RZG2L_SINGLE_PIN_PACK(0x11, 2, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2328 - PIN_CFG_PUPD)) }, 2329 - { "ET0_TXD3", RZG2L_SINGLE_PIN_PACK(0x11, 3, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2330 - PIN_CFG_PUPD)) }, 2331 - { "ET0_RXD0", RZG2L_SINGLE_PIN_PACK(0x11, 4, (PIN_CFG_PUPD)) }, 2332 - { "ET0_RXD1", RZG2L_SINGLE_PIN_PACK(0x11, 5, (PIN_CFG_PUPD)) }, 2333 - { "ET0_RXD2", RZG2L_SINGLE_PIN_PACK(0x11, 6, (PIN_CFG_PUPD)) }, 2334 - { "ET0_RXD3", RZG2L_SINGLE_PIN_PACK(0x11, 7, (PIN_CFG_PUPD)) }, 2335 - { "ET1_MDIO", RZG2L_SINGLE_PIN_PACK(0x12, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2336 - PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2337 - { "ET1_MDC", RZG2L_SINGLE_PIN_PACK(0x12, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2338 - PIN_CFG_PUPD)) }, 2339 - { "ET1_RXCTL_RXDV", RZG2L_SINGLE_PIN_PACK(0x13, 0, (PIN_CFG_PUPD)) }, 2340 - { "ET1_TXCTL_TXEN", RZG2L_SINGLE_PIN_PACK(0x13, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2341 - PIN_CFG_PUPD)) }, 2342 - { "ET1_TXER", RZG2L_SINGLE_PIN_PACK(0x13, 2, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2343 - PIN_CFG_PUPD)) }, 2344 - { "ET1_RXER", RZG2L_SINGLE_PIN_PACK(0x13, 3, (PIN_CFG_PUPD)) }, 2345 - { "ET1_RXC_RXCLK", RZG2L_SINGLE_PIN_PACK(0x13, 4, (PIN_CFG_PUPD)) }, 2346 - { "ET1_TXC_TXCLK", RZG2L_SINGLE_PIN_PACK(0x13, 5, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2347 - PIN_CFG_PUPD | PIN_CFG_OEN)) }, 2348 - { "ET1_CRS", RZG2L_SINGLE_PIN_PACK(0x13, 6, (PIN_CFG_PUPD)) }, 2349 - { "ET1_COL", RZG2L_SINGLE_PIN_PACK(0x13, 7, (PIN_CFG_PUPD)) }, 2350 - { "ET1_TXD0", RZG2L_SINGLE_PIN_PACK(0x14, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2351 - PIN_CFG_PUPD)) }, 2352 - { "ET1_TXD1", RZG2L_SINGLE_PIN_PACK(0x14, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2353 - PIN_CFG_PUPD)) }, 2354 - { "ET1_TXD2", RZG2L_SINGLE_PIN_PACK(0x14, 2, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2355 - PIN_CFG_PUPD)) }, 2356 - { "ET1_TXD3", RZG2L_SINGLE_PIN_PACK(0x14, 3, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2357 - PIN_CFG_PUPD)) }, 2358 - { "ET1_RXD0", RZG2L_SINGLE_PIN_PACK(0x14, 4, (PIN_CFG_PUPD)) }, 2359 - { "ET1_RXD1", RZG2L_SINGLE_PIN_PACK(0x14, 5, (PIN_CFG_PUPD)) }, 2360 - { "ET1_RXD2", RZG2L_SINGLE_PIN_PACK(0x14, 6, (PIN_CFG_PUPD)) }, 2361 - { "ET1_RXD3", RZG2L_SINGLE_PIN_PACK(0x14, 7, (PIN_CFG_PUPD)) }, 2316 + { "ET0_RXCTL_RXDV", RZG2L_SINGLE_PIN_PACK(0x10, 0, (PIN_CFG_PUPD)) }, 2317 + { "ET0_TXCTL_TXEN", RZG2L_SINGLE_PIN_PACK(0x10, 1, (PIN_CFG_IOLH_RZV2H | 2318 + PIN_CFG_SR | 2319 + PIN_CFG_PUPD)) }, 2320 + { "ET0_TXER", RZG2L_SINGLE_PIN_PACK(0x10, 2, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2321 + PIN_CFG_PUPD)) }, 2322 + { "ET0_RXER", RZG2L_SINGLE_PIN_PACK(0x10, 3, (PIN_CFG_PUPD)) }, 2323 + { "ET0_RXC_RXCLK", RZG2L_SINGLE_PIN_PACK(0x10, 4, (PIN_CFG_PUPD)) }, 2324 + { "ET0_TXC_TXCLK", RZG2L_SINGLE_PIN_PACK(0x10, 5, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2325 + PIN_CFG_PUPD | PIN_CFG_OEN)) }, 2326 + { "ET0_CRS", RZG2L_SINGLE_PIN_PACK(0x10, 6, (PIN_CFG_PUPD)) }, 2327 + { "ET0_COL", RZG2L_SINGLE_PIN_PACK(0x10, 7, (PIN_CFG_PUPD)) }, 2328 + { "ET0_TXD0", RZG2L_SINGLE_PIN_PACK(0x11, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2329 + PIN_CFG_PUPD)) }, 2330 + { "ET0_TXD1", RZG2L_SINGLE_PIN_PACK(0x11, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2331 + PIN_CFG_PUPD)) }, 2332 + { "ET0_TXD2", RZG2L_SINGLE_PIN_PACK(0x11, 2, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2333 + PIN_CFG_PUPD)) }, 2334 + { "ET0_TXD3", RZG2L_SINGLE_PIN_PACK(0x11, 3, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2335 + PIN_CFG_PUPD)) }, 2336 + { "ET0_RXD0", RZG2L_SINGLE_PIN_PACK(0x11, 4, (PIN_CFG_PUPD)) }, 2337 + { "ET0_RXD1", RZG2L_SINGLE_PIN_PACK(0x11, 5, (PIN_CFG_PUPD)) }, 2338 + { "ET0_RXD2", RZG2L_SINGLE_PIN_PACK(0x11, 6, (PIN_CFG_PUPD)) }, 2339 + { "ET0_RXD3", RZG2L_SINGLE_PIN_PACK(0x11, 7, (PIN_CFG_PUPD)) }, 2340 + { "ET1_MDIO", RZG2L_SINGLE_PIN_PACK(0x12, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2341 + PIN_CFG_IEN | PIN_CFG_PUPD)) }, 2342 + { "ET1_MDC", RZG2L_SINGLE_PIN_PACK(0x12, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2343 + PIN_CFG_PUPD)) }, 2344 + { "ET1_RXCTL_RXDV", RZG2L_SINGLE_PIN_PACK(0x13, 0, (PIN_CFG_PUPD)) }, 2345 + { "ET1_TXCTL_TXEN", RZG2L_SINGLE_PIN_PACK(0x13, 1, (PIN_CFG_IOLH_RZV2H | 2346 + PIN_CFG_SR | 2347 + PIN_CFG_PUPD)) }, 2348 + { "ET1_TXER", RZG2L_SINGLE_PIN_PACK(0x13, 2, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2349 + PIN_CFG_PUPD)) }, 2350 + { "ET1_RXER", RZG2L_SINGLE_PIN_PACK(0x13, 3, (PIN_CFG_PUPD)) }, 2351 + { "ET1_RXC_RXCLK", RZG2L_SINGLE_PIN_PACK(0x13, 4, (PIN_CFG_PUPD)) }, 2352 + { "ET1_TXC_TXCLK", RZG2L_SINGLE_PIN_PACK(0x13, 5, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2353 + PIN_CFG_PUPD | PIN_CFG_OEN)) }, 2354 + { "ET1_CRS", RZG2L_SINGLE_PIN_PACK(0x13, 6, (PIN_CFG_PUPD)) }, 2355 + { "ET1_COL", RZG2L_SINGLE_PIN_PACK(0x13, 7, (PIN_CFG_PUPD)) }, 2356 + { "ET1_TXD0", RZG2L_SINGLE_PIN_PACK(0x14, 0, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2357 + PIN_CFG_PUPD)) }, 2358 + { "ET1_TXD1", RZG2L_SINGLE_PIN_PACK(0x14, 1, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2359 + PIN_CFG_PUPD)) }, 2360 + { "ET1_TXD2", RZG2L_SINGLE_PIN_PACK(0x14, 2, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2361 + PIN_CFG_PUPD)) }, 2362 + { "ET1_TXD3", RZG2L_SINGLE_PIN_PACK(0x14, 3, (PIN_CFG_IOLH_RZV2H | PIN_CFG_SR | 2363 + PIN_CFG_PUPD)) }, 2364 + { "ET1_RXD0", RZG2L_SINGLE_PIN_PACK(0x14, 4, (PIN_CFG_PUPD)) }, 2365 + { "ET1_RXD1", RZG2L_SINGLE_PIN_PACK(0x14, 5, (PIN_CFG_PUPD)) }, 2366 + { "ET1_RXD2", RZG2L_SINGLE_PIN_PACK(0x14, 6, (PIN_CFG_PUPD)) }, 2367 + { "ET1_RXD3", RZG2L_SINGLE_PIN_PACK(0x14, 7, (PIN_CFG_PUPD)) }, 2368 + }, 2369 + .pcie1 = { 2370 + { "PCIE1_RSTOUTB", RZG2L_SINGLE_PIN_PACK(0xe, 1, (PIN_CFG_IOLH_RZV2H | 2371 + PIN_CFG_SR)) }, 2372 + }, 2362 2373 }; 2363 2374 2364 2375 static struct rzg2l_dedicated_configs rzg3e_dedicated_pins[] = { ··· 3360 3349 .bias_param_to_hw = &rzv2h_bias_param_to_hw, 3361 3350 }; 3362 3351 3352 + static struct rzg2l_pinctrl_data r9a09g056_data = { 3353 + .port_pins = rzv2h_gpio_names, 3354 + .port_pin_configs = r9a09g057_gpio_configs, 3355 + .n_ports = ARRAY_SIZE(r9a09g057_gpio_configs), 3356 + .dedicated_pins = rzv2h_dedicated_pins.common, 3357 + .n_port_pins = ARRAY_SIZE(r9a09g057_gpio_configs) * RZG2L_PINS_PER_PORT, 3358 + .n_dedicated_pins = ARRAY_SIZE(rzv2h_dedicated_pins.common), 3359 + .hwcfg = &rzv2h_hwcfg, 3360 + .variable_pin_cfg = r9a09g057_variable_pin_cfg, 3361 + .n_variable_pin_cfg = ARRAY_SIZE(r9a09g057_variable_pin_cfg), 3362 + .num_custom_params = ARRAY_SIZE(renesas_rzv2h_custom_bindings), 3363 + .custom_params = renesas_rzv2h_custom_bindings, 3364 + #ifdef CONFIG_DEBUG_FS 3365 + .custom_conf_items = renesas_rzv2h_conf_items, 3366 + #endif 3367 + .pwpr_pfc_lock_unlock = &rzv2h_pwpr_pfc_lock_unlock, 3368 + .pmc_writeb = &rzv2h_pmc_writeb, 3369 + .oen_read = &rzv2h_oen_read, 3370 + .oen_write = &rzv2h_oen_write, 3371 + .hw_to_bias_param = &rzv2h_hw_to_bias_param, 3372 + .bias_param_to_hw = &rzv2h_bias_param_to_hw, 3373 + }; 3374 + 3363 3375 static struct rzg2l_pinctrl_data r9a09g057_data = { 3364 3376 .port_pins = rzv2h_gpio_names, 3365 3377 .port_pin_configs = r9a09g057_gpio_configs, 3366 3378 .n_ports = ARRAY_SIZE(r9a09g057_gpio_configs), 3367 - .dedicated_pins = rzv2h_dedicated_pins, 3379 + .dedicated_pins = rzv2h_dedicated_pins.common, 3368 3380 .n_port_pins = ARRAY_SIZE(r9a09g057_gpio_configs) * RZG2L_PINS_PER_PORT, 3369 - .n_dedicated_pins = ARRAY_SIZE(rzv2h_dedicated_pins), 3381 + .n_dedicated_pins = ARRAY_SIZE(rzv2h_dedicated_pins.common) + 3382 + ARRAY_SIZE(rzv2h_dedicated_pins.pcie1), 3370 3383 .hwcfg = &rzv2h_hwcfg, 3371 3384 .variable_pin_cfg = r9a09g057_variable_pin_cfg, 3372 3385 .n_variable_pin_cfg = ARRAY_SIZE(r9a09g057_variable_pin_cfg), ··· 3423 3388 { 3424 3389 .compatible = "renesas,r9a09g047-pinctrl", 3425 3390 .data = &r9a09g047_data, 3391 + }, 3392 + { 3393 + .compatible = "renesas,r9a09g056-pinctrl", 3394 + .data = &r9a09g056_data, 3426 3395 }, 3427 3396 { 3428 3397 .compatible = "renesas,r9a09g057-pinctrl",
+26 -26
drivers/pinctrl/samsung/pinctrl-exynos-arm64.c
··· 1419 1419 .pin_banks = exynosautov920_pin_banks0, 1420 1420 .nr_banks = ARRAY_SIZE(exynosautov920_pin_banks0), 1421 1421 .eint_wkup_init = exynos_eint_wkup_init, 1422 - .suspend = exynos_pinctrl_suspend, 1423 - .resume = exynos_pinctrl_resume, 1422 + .suspend = exynosautov920_pinctrl_suspend, 1423 + .resume = exynosautov920_pinctrl_resume, 1424 1424 .retention_data = &exynosautov920_retention_data, 1425 1425 }, { 1426 1426 /* pin-controller instance 1 AUD data */ ··· 1431 1431 .pin_banks = exynosautov920_pin_banks2, 1432 1432 .nr_banks = ARRAY_SIZE(exynosautov920_pin_banks2), 1433 1433 .eint_gpio_init = exynos_eint_gpio_init, 1434 - .suspend = exynos_pinctrl_suspend, 1435 - .resume = exynos_pinctrl_resume, 1434 + .suspend = exynosautov920_pinctrl_suspend, 1435 + .resume = exynosautov920_pinctrl_resume, 1436 1436 }, { 1437 1437 /* pin-controller instance 3 HSI1 data */ 1438 1438 .pin_banks = exynosautov920_pin_banks3, 1439 1439 .nr_banks = ARRAY_SIZE(exynosautov920_pin_banks3), 1440 1440 .eint_gpio_init = exynos_eint_gpio_init, 1441 - .suspend = exynos_pinctrl_suspend, 1442 - .resume = exynos_pinctrl_resume, 1441 + .suspend = exynosautov920_pinctrl_suspend, 1442 + .resume = exynosautov920_pinctrl_resume, 1443 1443 }, { 1444 1444 /* pin-controller instance 4 HSI2 data */ 1445 1445 .pin_banks = exynosautov920_pin_banks4, 1446 1446 .nr_banks = ARRAY_SIZE(exynosautov920_pin_banks4), 1447 1447 .eint_gpio_init = exynos_eint_gpio_init, 1448 - .suspend = exynos_pinctrl_suspend, 1449 - .resume = exynos_pinctrl_resume, 1448 + .suspend = exynosautov920_pinctrl_suspend, 1449 + .resume = exynosautov920_pinctrl_resume, 1450 1450 }, { 1451 1451 /* pin-controller instance 5 HSI2UFS data */ 1452 1452 .pin_banks = exynosautov920_pin_banks5, 1453 1453 .nr_banks = ARRAY_SIZE(exynosautov920_pin_banks5), 1454 1454 .eint_gpio_init = exynos_eint_gpio_init, 1455 - .suspend = exynos_pinctrl_suspend, 1456 - .resume = exynos_pinctrl_resume, 1455 + .suspend = exynosautov920_pinctrl_suspend, 1456 + .resume = exynosautov920_pinctrl_resume, 1457 1457 }, { 1458 1458 /* pin-controller instance 6 PERIC0 data */ 1459 1459 .pin_banks = exynosautov920_pin_banks6, 1460 1460 .nr_banks = ARRAY_SIZE(exynosautov920_pin_banks6), 1461 1461 .eint_gpio_init = exynos_eint_gpio_init, 1462 - .suspend = exynos_pinctrl_suspend, 1463 - .resume = exynos_pinctrl_resume, 1462 + .suspend = exynosautov920_pinctrl_suspend, 1463 + .resume = exynosautov920_pinctrl_resume, 1464 1464 }, { 1465 1465 /* pin-controller instance 7 PERIC1 data */ 1466 1466 .pin_banks = exynosautov920_pin_banks7, 1467 1467 .nr_banks = ARRAY_SIZE(exynosautov920_pin_banks7), 1468 1468 .eint_gpio_init = exynos_eint_gpio_init, 1469 - .suspend = exynos_pinctrl_suspend, 1470 - .resume = exynos_pinctrl_resume, 1469 + .suspend = exynosautov920_pinctrl_suspend, 1470 + .resume = exynosautov920_pinctrl_resume, 1471 1471 }, 1472 1472 }; 1473 1473 ··· 1762 1762 .pin_banks = gs101_pin_alive, 1763 1763 .nr_banks = ARRAY_SIZE(gs101_pin_alive), 1764 1764 .eint_wkup_init = exynos_eint_wkup_init, 1765 - .suspend = exynos_pinctrl_suspend, 1766 - .resume = exynos_pinctrl_resume, 1765 + .suspend = gs101_pinctrl_suspend, 1766 + .resume = gs101_pinctrl_resume, 1767 1767 }, { 1768 1768 /* pin banks of gs101 pin-controller (FAR_ALIVE) */ 1769 1769 .pin_banks = gs101_pin_far_alive, 1770 1770 .nr_banks = ARRAY_SIZE(gs101_pin_far_alive), 1771 1771 .eint_wkup_init = exynos_eint_wkup_init, 1772 - .suspend = exynos_pinctrl_suspend, 1773 - .resume = exynos_pinctrl_resume, 1772 + .suspend = gs101_pinctrl_suspend, 1773 + .resume = gs101_pinctrl_resume, 1774 1774 }, { 1775 1775 /* pin banks of gs101 pin-controller (GSACORE) */ 1776 1776 .pin_banks = gs101_pin_gsacore, ··· 1784 1784 .pin_banks = gs101_pin_peric0, 1785 1785 .nr_banks = ARRAY_SIZE(gs101_pin_peric0), 1786 1786 .eint_gpio_init = exynos_eint_gpio_init, 1787 - .suspend = exynos_pinctrl_suspend, 1788 - .resume = exynos_pinctrl_resume, 1787 + .suspend = gs101_pinctrl_suspend, 1788 + .resume = gs101_pinctrl_resume, 1789 1789 }, { 1790 1790 /* pin banks of gs101 pin-controller (PERIC1) */ 1791 1791 .pin_banks = gs101_pin_peric1, 1792 1792 .nr_banks = ARRAY_SIZE(gs101_pin_peric1), 1793 1793 .eint_gpio_init = exynos_eint_gpio_init, 1794 - .suspend = exynos_pinctrl_suspend, 1795 - .resume = exynos_pinctrl_resume, 1794 + .suspend = gs101_pinctrl_suspend, 1795 + .resume = gs101_pinctrl_resume, 1796 1796 }, { 1797 1797 /* pin banks of gs101 pin-controller (HSI1) */ 1798 1798 .pin_banks = gs101_pin_hsi1, 1799 1799 .nr_banks = ARRAY_SIZE(gs101_pin_hsi1), 1800 1800 .eint_gpio_init = exynos_eint_gpio_init, 1801 - .suspend = exynos_pinctrl_suspend, 1802 - .resume = exynos_pinctrl_resume, 1801 + .suspend = gs101_pinctrl_suspend, 1802 + .resume = gs101_pinctrl_resume, 1803 1803 }, { 1804 1804 /* pin banks of gs101 pin-controller (HSI2) */ 1805 1805 .pin_banks = gs101_pin_hsi2, 1806 1806 .nr_banks = ARRAY_SIZE(gs101_pin_hsi2), 1807 1807 .eint_gpio_init = exynos_eint_gpio_init, 1808 - .suspend = exynos_pinctrl_suspend, 1809 - .resume = exynos_pinctrl_resume, 1808 + .suspend = gs101_pinctrl_suspend, 1809 + .resume = gs101_pinctrl_resume, 1810 1810 }, 1811 1811 }; 1812 1812
+184 -116
drivers/pinctrl/samsung/pinctrl-exynos.c
··· 370 370 u32 eint_mask; 371 371 }; 372 372 373 + static void exynos_eint_update_flt_reg(void __iomem *reg, int cnt, int con) 374 + { 375 + unsigned int val, shift; 376 + int i; 377 + 378 + val = readl(reg); 379 + for (i = 0; i < cnt; i++) { 380 + shift = i * EXYNOS_FLTCON_LEN; 381 + val &= ~(EXYNOS_FLTCON_DIGITAL << shift); 382 + val |= con << shift; 383 + } 384 + writel(val, reg); 385 + } 386 + 387 + /* 388 + * Set the desired filter (digital or analog delay) and enable it to 389 + * every pin in the bank. Note the filter selection bitfield is only 390 + * found on alive banks. The filter determines to what extent signal 391 + * fluctuations received through the pad are considered glitches. 392 + */ 393 + static void exynos_eint_set_filter(struct samsung_pin_bank *bank, int filter) 394 + { 395 + unsigned int off = EXYNOS_GPIO_EFLTCON_OFFSET + bank->eint_fltcon_offset; 396 + void __iomem *reg = bank->drvdata->virt_base + off; 397 + unsigned int con = EXYNOS_FLTCON_EN | filter; 398 + 399 + for (int n = 0; n < bank->nr_pins; n += 4) 400 + exynos_eint_update_flt_reg(reg + n, 401 + min(bank->nr_pins - n, 4), con); 402 + } 403 + 373 404 /* 374 405 * exynos_eint_gpio_init() - setup handling of external gpio interrupts. 375 406 * @d: driver data of samsung pinctrl driver. ··· 793 762 return 0; 794 763 } 795 764 796 - static void exynos_pinctrl_suspend_bank( 797 - struct samsung_pinctrl_drv_data *drvdata, 798 - struct samsung_pin_bank *bank) 765 + static void exynos_set_wakeup(struct samsung_pin_bank *bank) 766 + { 767 + struct exynos_irq_chip *irq_chip; 768 + 769 + if (bank->irq_chip) { 770 + irq_chip = bank->irq_chip; 771 + irq_chip->set_eint_wakeup_mask(bank->drvdata, irq_chip); 772 + } 773 + } 774 + 775 + void exynos_pinctrl_suspend(struct samsung_pin_bank *bank) 799 776 { 800 777 struct exynos_eint_gpio_save *save = bank->soc_priv; 801 778 const void __iomem *regs = bank->eint_base; 802 779 803 - if (clk_enable(bank->drvdata->pclk)) { 804 - dev_err(bank->gpio_chip.parent, 805 - "unable to enable clock for saving state\n"); 806 - return; 780 + if (bank->eint_type == EINT_TYPE_GPIO) { 781 + save->eint_con = readl(regs + EXYNOS_GPIO_ECON_OFFSET 782 + + bank->eint_offset); 783 + save->eint_fltcon0 = readl(regs + EXYNOS_GPIO_EFLTCON_OFFSET 784 + + 2 * bank->eint_offset); 785 + save->eint_fltcon1 = readl(regs + EXYNOS_GPIO_EFLTCON_OFFSET 786 + + 2 * bank->eint_offset + 4); 787 + save->eint_mask = readl(regs + bank->irq_chip->eint_mask 788 + + bank->eint_offset); 789 + 790 + pr_debug("%s: save con %#010x\n", 791 + bank->name, save->eint_con); 792 + pr_debug("%s: save fltcon0 %#010x\n", 793 + bank->name, save->eint_fltcon0); 794 + pr_debug("%s: save fltcon1 %#010x\n", 795 + bank->name, save->eint_fltcon1); 796 + pr_debug("%s: save mask %#010x\n", 797 + bank->name, save->eint_mask); 798 + } else if (bank->eint_type == EINT_TYPE_WKUP) { 799 + exynos_set_wakeup(bank); 807 800 } 808 - 809 - save->eint_con = readl(regs + EXYNOS_GPIO_ECON_OFFSET 810 - + bank->eint_offset); 811 - save->eint_fltcon0 = readl(regs + EXYNOS_GPIO_EFLTCON_OFFSET 812 - + 2 * bank->eint_offset); 813 - save->eint_fltcon1 = readl(regs + EXYNOS_GPIO_EFLTCON_OFFSET 814 - + 2 * bank->eint_offset + 4); 815 - save->eint_mask = readl(regs + bank->irq_chip->eint_mask 816 - + bank->eint_offset); 817 - 818 - clk_disable(bank->drvdata->pclk); 819 - 820 - pr_debug("%s: save con %#010x\n", bank->name, save->eint_con); 821 - pr_debug("%s: save fltcon0 %#010x\n", bank->name, save->eint_fltcon0); 822 - pr_debug("%s: save fltcon1 %#010x\n", bank->name, save->eint_fltcon1); 823 - pr_debug("%s: save mask %#010x\n", bank->name, save->eint_mask); 824 801 } 825 802 826 - static void exynosauto_pinctrl_suspend_bank(struct samsung_pinctrl_drv_data *drvdata, 827 - struct samsung_pin_bank *bank) 803 + void gs101_pinctrl_suspend(struct samsung_pin_bank *bank) 828 804 { 829 805 struct exynos_eint_gpio_save *save = bank->soc_priv; 830 806 const void __iomem *regs = bank->eint_base; 831 807 832 - if (clk_enable(bank->drvdata->pclk)) { 833 - dev_err(bank->gpio_chip.parent, 834 - "unable to enable clock for saving state\n"); 835 - return; 808 + if (bank->eint_type == EINT_TYPE_GPIO) { 809 + save->eint_con = readl(regs + EXYNOS_GPIO_ECON_OFFSET 810 + + bank->eint_offset); 811 + 812 + save->eint_fltcon0 = readl(regs + EXYNOS_GPIO_EFLTCON_OFFSET 813 + + bank->eint_fltcon_offset); 814 + 815 + /* fltcon1 register only exists for pins 4-7 */ 816 + if (bank->nr_pins > 4) 817 + save->eint_fltcon1 = readl(regs + 818 + EXYNOS_GPIO_EFLTCON_OFFSET 819 + + bank->eint_fltcon_offset + 4); 820 + 821 + save->eint_mask = readl(regs + bank->irq_chip->eint_mask 822 + + bank->eint_offset); 823 + 824 + pr_debug("%s: save con %#010x\n", 825 + bank->name, save->eint_con); 826 + pr_debug("%s: save fltcon0 %#010x\n", 827 + bank->name, save->eint_fltcon0); 828 + if (bank->nr_pins > 4) 829 + pr_debug("%s: save fltcon1 %#010x\n", 830 + bank->name, save->eint_fltcon1); 831 + pr_debug("%s: save mask %#010x\n", 832 + bank->name, save->eint_mask); 833 + } else if (bank->eint_type == EINT_TYPE_WKUP) { 834 + exynos_set_wakeup(bank); 835 + exynos_eint_set_filter(bank, EXYNOS_FLTCON_ANALOG); 836 836 } 837 - 838 - save->eint_con = readl(regs + bank->pctl_offset + bank->eint_con_offset); 839 - save->eint_mask = readl(regs + bank->pctl_offset + bank->eint_mask_offset); 840 - 841 - clk_disable(bank->drvdata->pclk); 842 - 843 - pr_debug("%s: save con %#010x\n", bank->name, save->eint_con); 844 - pr_debug("%s: save mask %#010x\n", bank->name, save->eint_mask); 845 837 } 846 838 847 - void exynos_pinctrl_suspend(struct samsung_pinctrl_drv_data *drvdata) 839 + void exynosautov920_pinctrl_suspend(struct samsung_pin_bank *bank) 848 840 { 849 - struct samsung_pin_bank *bank = drvdata->pin_banks; 850 - struct exynos_irq_chip *irq_chip = NULL; 851 - int i; 841 + struct exynos_eint_gpio_save *save = bank->soc_priv; 842 + const void __iomem *regs = bank->eint_base; 852 843 853 - for (i = 0; i < drvdata->nr_banks; ++i, ++bank) { 854 - if (bank->eint_type == EINT_TYPE_GPIO) { 855 - if (bank->eint_con_offset) 856 - exynosauto_pinctrl_suspend_bank(drvdata, bank); 857 - else 858 - exynos_pinctrl_suspend_bank(drvdata, bank); 859 - } 860 - else if (bank->eint_type == EINT_TYPE_WKUP) { 861 - if (!irq_chip) { 862 - irq_chip = bank->irq_chip; 863 - irq_chip->set_eint_wakeup_mask(drvdata, 864 - irq_chip); 865 - } 866 - } 844 + if (bank->eint_type == EINT_TYPE_GPIO) { 845 + save->eint_con = readl(regs + bank->pctl_offset + 846 + bank->eint_con_offset); 847 + save->eint_mask = readl(regs + bank->pctl_offset + 848 + bank->eint_mask_offset); 849 + pr_debug("%s: save con %#010x\n", 850 + bank->name, save->eint_con); 851 + pr_debug("%s: save mask %#010x\n", 852 + bank->name, save->eint_mask); 853 + } else if (bank->eint_type == EINT_TYPE_WKUP) { 854 + exynos_set_wakeup(bank); 867 855 } 868 856 } 869 857 870 - static void exynos_pinctrl_resume_bank( 871 - struct samsung_pinctrl_drv_data *drvdata, 872 - struct samsung_pin_bank *bank) 858 + void gs101_pinctrl_resume(struct samsung_pin_bank *bank) 859 + { 860 + struct exynos_eint_gpio_save *save = bank->soc_priv; 861 + 862 + void __iomem *regs = bank->eint_base; 863 + void __iomem *eint_fltcfg0 = regs + EXYNOS_GPIO_EFLTCON_OFFSET 864 + + bank->eint_fltcon_offset; 865 + 866 + if (bank->eint_type == EINT_TYPE_GPIO) { 867 + pr_debug("%s: con %#010x => %#010x\n", bank->name, 868 + readl(regs + EXYNOS_GPIO_ECON_OFFSET 869 + + bank->eint_offset), save->eint_con); 870 + 871 + pr_debug("%s: fltcon0 %#010x => %#010x\n", bank->name, 872 + readl(eint_fltcfg0), save->eint_fltcon0); 873 + 874 + /* fltcon1 register only exists for pins 4-7 */ 875 + if (bank->nr_pins > 4) 876 + pr_debug("%s: fltcon1 %#010x => %#010x\n", bank->name, 877 + readl(eint_fltcfg0 + 4), save->eint_fltcon1); 878 + 879 + pr_debug("%s: mask %#010x => %#010x\n", bank->name, 880 + readl(regs + bank->irq_chip->eint_mask 881 + + bank->eint_offset), save->eint_mask); 882 + 883 + writel(save->eint_con, regs + EXYNOS_GPIO_ECON_OFFSET 884 + + bank->eint_offset); 885 + writel(save->eint_fltcon0, eint_fltcfg0); 886 + 887 + if (bank->nr_pins > 4) 888 + writel(save->eint_fltcon1, eint_fltcfg0 + 4); 889 + writel(save->eint_mask, regs + bank->irq_chip->eint_mask 890 + + bank->eint_offset); 891 + } else if (bank->eint_type == EINT_TYPE_WKUP) { 892 + exynos_eint_set_filter(bank, EXYNOS_FLTCON_DIGITAL); 893 + } 894 + } 895 + 896 + void exynos_pinctrl_resume(struct samsung_pin_bank *bank) 873 897 { 874 898 struct exynos_eint_gpio_save *save = bank->soc_priv; 875 899 void __iomem *regs = bank->eint_base; 876 900 877 - if (clk_enable(bank->drvdata->pclk)) { 878 - dev_err(bank->gpio_chip.parent, 879 - "unable to enable clock for restoring state\n"); 880 - return; 901 + if (bank->eint_type == EINT_TYPE_GPIO) { 902 + pr_debug("%s: con %#010x => %#010x\n", bank->name, 903 + readl(regs + EXYNOS_GPIO_ECON_OFFSET 904 + + bank->eint_offset), save->eint_con); 905 + pr_debug("%s: fltcon0 %#010x => %#010x\n", bank->name, 906 + readl(regs + EXYNOS_GPIO_EFLTCON_OFFSET 907 + + 2 * bank->eint_offset), save->eint_fltcon0); 908 + pr_debug("%s: fltcon1 %#010x => %#010x\n", bank->name, 909 + readl(regs + EXYNOS_GPIO_EFLTCON_OFFSET 910 + + 2 * bank->eint_offset + 4), 911 + save->eint_fltcon1); 912 + pr_debug("%s: mask %#010x => %#010x\n", bank->name, 913 + readl(regs + bank->irq_chip->eint_mask 914 + + bank->eint_offset), save->eint_mask); 915 + 916 + writel(save->eint_con, regs + EXYNOS_GPIO_ECON_OFFSET 917 + + bank->eint_offset); 918 + writel(save->eint_fltcon0, regs + EXYNOS_GPIO_EFLTCON_OFFSET 919 + + 2 * bank->eint_offset); 920 + writel(save->eint_fltcon1, regs + EXYNOS_GPIO_EFLTCON_OFFSET 921 + + 2 * bank->eint_offset + 4); 922 + writel(save->eint_mask, regs + bank->irq_chip->eint_mask 923 + + bank->eint_offset); 881 924 } 882 - 883 - pr_debug("%s: con %#010x => %#010x\n", bank->name, 884 - readl(regs + EXYNOS_GPIO_ECON_OFFSET 885 - + bank->eint_offset), save->eint_con); 886 - pr_debug("%s: fltcon0 %#010x => %#010x\n", bank->name, 887 - readl(regs + EXYNOS_GPIO_EFLTCON_OFFSET 888 - + 2 * bank->eint_offset), save->eint_fltcon0); 889 - pr_debug("%s: fltcon1 %#010x => %#010x\n", bank->name, 890 - readl(regs + EXYNOS_GPIO_EFLTCON_OFFSET 891 - + 2 * bank->eint_offset + 4), save->eint_fltcon1); 892 - pr_debug("%s: mask %#010x => %#010x\n", bank->name, 893 - readl(regs + bank->irq_chip->eint_mask 894 - + bank->eint_offset), save->eint_mask); 895 - 896 - writel(save->eint_con, regs + EXYNOS_GPIO_ECON_OFFSET 897 - + bank->eint_offset); 898 - writel(save->eint_fltcon0, regs + EXYNOS_GPIO_EFLTCON_OFFSET 899 - + 2 * bank->eint_offset); 900 - writel(save->eint_fltcon1, regs + EXYNOS_GPIO_EFLTCON_OFFSET 901 - + 2 * bank->eint_offset + 4); 902 - writel(save->eint_mask, regs + bank->irq_chip->eint_mask 903 - + bank->eint_offset); 904 - 905 - clk_disable(bank->drvdata->pclk); 906 925 } 907 926 908 - static void exynosauto_pinctrl_resume_bank(struct samsung_pinctrl_drv_data *drvdata, 909 - struct samsung_pin_bank *bank) 927 + void exynosautov920_pinctrl_resume(struct samsung_pin_bank *bank) 910 928 { 911 929 struct exynos_eint_gpio_save *save = bank->soc_priv; 912 930 void __iomem *regs = bank->eint_base; 913 931 914 - if (clk_enable(bank->drvdata->pclk)) { 915 - dev_err(bank->gpio_chip.parent, 916 - "unable to enable clock for restoring state\n"); 917 - return; 932 + if (bank->eint_type == EINT_TYPE_GPIO) { 933 + /* exynosautov920 has eint_con_offset for all but one bank */ 934 + if (!bank->eint_con_offset) 935 + exynos_pinctrl_resume(bank); 936 + 937 + pr_debug("%s: con %#010x => %#010x\n", bank->name, 938 + readl(regs + bank->pctl_offset + bank->eint_con_offset), 939 + save->eint_con); 940 + pr_debug("%s: mask %#010x => %#010x\n", bank->name, 941 + readl(regs + bank->pctl_offset + 942 + bank->eint_mask_offset), save->eint_mask); 943 + 944 + writel(save->eint_con, 945 + regs + bank->pctl_offset + bank->eint_con_offset); 946 + writel(save->eint_mask, 947 + regs + bank->pctl_offset + bank->eint_mask_offset); 918 948 } 919 - 920 - pr_debug("%s: con %#010x => %#010x\n", bank->name, 921 - readl(regs + bank->pctl_offset + bank->eint_con_offset), save->eint_con); 922 - pr_debug("%s: mask %#010x => %#010x\n", bank->name, 923 - readl(regs + bank->pctl_offset + bank->eint_mask_offset), save->eint_mask); 924 - 925 - writel(save->eint_con, regs + bank->pctl_offset + bank->eint_con_offset); 926 - writel(save->eint_mask, regs + bank->pctl_offset + bank->eint_mask_offset); 927 - 928 - clk_disable(bank->drvdata->pclk); 929 - } 930 - 931 - void exynos_pinctrl_resume(struct samsung_pinctrl_drv_data *drvdata) 932 - { 933 - struct samsung_pin_bank *bank = drvdata->pin_banks; 934 - int i; 935 - 936 - for (i = 0; i < drvdata->nr_banks; ++i, ++bank) 937 - if (bank->eint_type == EINT_TYPE_GPIO) { 938 - if (bank->eint_con_offset) 939 - exynosauto_pinctrl_resume_bank(drvdata, bank); 940 - else 941 - exynos_pinctrl_resume_bank(drvdata, bank); 942 - } 943 949 } 944 950 945 951 static void exynos_retention_enable(struct samsung_pinctrl_drv_data *drvdata)
+26 -2
drivers/pinctrl/samsung/pinctrl-exynos.h
··· 52 52 #define EXYNOS_EINT_MAX_PER_BANK 8 53 53 #define EXYNOS_EINT_NR_WKUP_EINT 54 54 55 + /* 56 + * EINT filter configuration register (on alive banks) has 57 + * the following layout. 58 + * 59 + * BitfieldName[PinNum][Bit:Bit] 60 + * FLT_EN[3][31] FLT_SEL[3][30] FLT_WIDTH[3][29:24] 61 + * FLT_EN[2][23] FLT_SEL[2][22] FLT_WIDTH[2][21:16] 62 + * FLT_EN[1][15] FLT_SEL[1][14] FLT_WIDTH[1][13:8] 63 + * FLT_EN[0][7] FLT_SEL[0][6] FLT_WIDTH[0][5:0] 64 + * 65 + * FLT_EN 0x0 = Disable, 0x1=Enable 66 + * FLT_SEL 0x0 = Analog delay filter, 0x1 Digital filter (clock count) 67 + * FLT_WIDTH Filtering width. Valid when FLT_SEL is 0x1 68 + */ 69 + 70 + #define EXYNOS_FLTCON_EN BIT(7) 71 + #define EXYNOS_FLTCON_DIGITAL BIT(6) 72 + #define EXYNOS_FLTCON_ANALOG (0 << 6) 73 + #define EXYNOS_FLTCON_LEN 8 74 + 55 75 #define EXYNOS_PIN_BANK_EINTN(pins, reg, id) \ 56 76 { \ 57 77 .type = &bank_type_off, \ ··· 260 240 261 241 int exynos_eint_gpio_init(struct samsung_pinctrl_drv_data *d); 262 242 int exynos_eint_wkup_init(struct samsung_pinctrl_drv_data *d); 263 - void exynos_pinctrl_suspend(struct samsung_pinctrl_drv_data *drvdata); 264 - void exynos_pinctrl_resume(struct samsung_pinctrl_drv_data *drvdata); 243 + void exynosautov920_pinctrl_resume(struct samsung_pin_bank *bank); 244 + void exynosautov920_pinctrl_suspend(struct samsung_pin_bank *bank); 245 + void exynos_pinctrl_suspend(struct samsung_pin_bank *bank); 246 + void exynos_pinctrl_resume(struct samsung_pin_bank *bank); 247 + void gs101_pinctrl_suspend(struct samsung_pin_bank *bank); 248 + void gs101_pinctrl_resume(struct samsung_pin_bank *bank); 265 249 struct samsung_retention_ctrl * 266 250 exynos_retention_init(struct samsung_pinctrl_drv_data *drvdata, 267 251 const struct samsung_retention_data *data);
+24 -10
drivers/pinctrl/samsung/pinctrl-samsung.c
··· 570 570 } 571 571 572 572 /* gpiolib gpio_set callback function */ 573 - static void samsung_gpio_set(struct gpio_chip *gc, unsigned offset, int value) 573 + static int samsung_gpio_set(struct gpio_chip *gc, unsigned int offset, 574 + int value) 574 575 { 575 576 struct samsung_pin_bank *bank = gpiochip_get_data(gc); 576 577 struct samsung_pinctrl_drv_data *drvdata = bank->drvdata; 577 578 unsigned long flags; 579 + int ret; 578 580 579 - if (clk_enable(drvdata->pclk)) { 581 + ret = clk_enable(drvdata->pclk); 582 + if (ret) { 580 583 dev_err(drvdata->dev, "failed to enable clock\n"); 581 - return; 584 + return ret; 582 585 } 583 586 584 587 raw_spin_lock_irqsave(&bank->slock, flags); ··· 589 586 raw_spin_unlock_irqrestore(&bank->slock, flags); 590 587 591 588 clk_disable(drvdata->pclk); 589 + 590 + return 0; 592 591 } 593 592 594 593 /* gpiolib gpio_get callback function */ ··· 1067 1062 static const struct gpio_chip samsung_gpiolib_chip = { 1068 1063 .request = gpiochip_generic_request, 1069 1064 .free = gpiochip_generic_free, 1070 - .set = samsung_gpio_set, 1065 + .set_rv = samsung_gpio_set, 1071 1066 .get = samsung_gpio_get, 1072 1067 .direction_input = samsung_gpio_direction_input, 1073 1068 .direction_output = samsung_gpio_direction_output, ··· 1338 1333 static int __maybe_unused samsung_pinctrl_suspend(struct device *dev) 1339 1334 { 1340 1335 struct samsung_pinctrl_drv_data *drvdata = dev_get_drvdata(dev); 1336 + struct samsung_pin_bank *bank; 1341 1337 int i; 1342 1338 1343 1339 i = clk_enable(drvdata->pclk); ··· 1349 1343 } 1350 1344 1351 1345 for (i = 0; i < drvdata->nr_banks; i++) { 1352 - struct samsung_pin_bank *bank = &drvdata->pin_banks[i]; 1346 + bank = &drvdata->pin_banks[i]; 1353 1347 const void __iomem *reg = bank->pctl_base + bank->pctl_offset; 1354 1348 const u8 *offs = bank->type->reg_offset; 1355 1349 const u8 *widths = bank->type->fld_width; ··· 1377 1371 } 1378 1372 } 1379 1373 1374 + for (i = 0; i < drvdata->nr_banks; i++) { 1375 + bank = &drvdata->pin_banks[i]; 1376 + if (drvdata->suspend) 1377 + drvdata->suspend(bank); 1378 + } 1379 + 1380 1380 clk_disable(drvdata->pclk); 1381 1381 1382 - if (drvdata->suspend) 1383 - drvdata->suspend(drvdata); 1384 1382 if (drvdata->retention_ctrl && drvdata->retention_ctrl->enable) 1385 1383 drvdata->retention_ctrl->enable(drvdata); 1386 1384 ··· 1402 1392 static int __maybe_unused samsung_pinctrl_resume(struct device *dev) 1403 1393 { 1404 1394 struct samsung_pinctrl_drv_data *drvdata = dev_get_drvdata(dev); 1395 + struct samsung_pin_bank *bank; 1405 1396 int ret; 1406 1397 int i; 1407 1398 ··· 1417 1406 return ret; 1418 1407 } 1419 1408 1420 - if (drvdata->resume) 1421 - drvdata->resume(drvdata); 1409 + for (i = 0; i < drvdata->nr_banks; i++) { 1410 + bank = &drvdata->pin_banks[i]; 1411 + if (drvdata->resume) 1412 + drvdata->resume(bank); 1413 + } 1422 1414 1423 1415 for (i = 0; i < drvdata->nr_banks; i++) { 1424 - struct samsung_pin_bank *bank = &drvdata->pin_banks[i]; 1416 + bank = &drvdata->pin_banks[i]; 1425 1417 void __iomem *reg = bank->pctl_base + bank->pctl_offset; 1426 1418 const u8 *offs = bank->type->reg_offset; 1427 1419 const u8 *widths = bank->type->fld_width;
+4 -4
drivers/pinctrl/samsung/pinctrl-samsung.h
··· 285 285 int (*eint_gpio_init)(struct samsung_pinctrl_drv_data *); 286 286 int (*eint_wkup_init)(struct samsung_pinctrl_drv_data *); 287 287 void (*pud_value_init)(struct samsung_pinctrl_drv_data *drvdata); 288 - void (*suspend)(struct samsung_pinctrl_drv_data *); 289 - void (*resume)(struct samsung_pinctrl_drv_data *); 288 + void (*suspend)(struct samsung_pin_bank *bank); 289 + void (*resume)(struct samsung_pin_bank *bank); 290 290 }; 291 291 292 292 /** ··· 335 335 336 336 struct samsung_retention_ctrl *retention_ctrl; 337 337 338 - void (*suspend)(struct samsung_pinctrl_drv_data *); 339 - void (*resume)(struct samsung_pinctrl_drv_data *); 338 + void (*suspend)(struct samsung_pin_bank *bank); 339 + void (*resume)(struct samsung_pin_bank *bank); 340 340 }; 341 341 342 342 /**
+10
drivers/pinctrl/spacemit/pinctrl-k1.c
··· 2 2 /* Copyright (c) 2024 Yixun Lan <dlan@gentoo.org> */ 3 3 4 4 #include <linux/bits.h> 5 + #include <linux/clk.h> 5 6 #include <linux/cleanup.h> 6 7 #include <linux/io.h> 7 8 #include <linux/of.h> ··· 722 721 { 723 722 struct device *dev = &pdev->dev; 724 723 struct spacemit_pinctrl *pctrl; 724 + struct clk *func_clk, *bus_clk; 725 725 const struct spacemit_pinctrl_data *pctrl_data; 726 726 int ret; 727 727 ··· 740 738 pctrl->regs = devm_platform_ioremap_resource(pdev, 0); 741 739 if (IS_ERR(pctrl->regs)) 742 740 return PTR_ERR(pctrl->regs); 741 + 742 + func_clk = devm_clk_get_enabled(dev, "func"); 743 + if (IS_ERR(func_clk)) 744 + return dev_err_probe(dev, PTR_ERR(func_clk), "failed to get func clock\n"); 745 + 746 + bus_clk = devm_clk_get_enabled(dev, "bus"); 747 + if (IS_ERR(bus_clk)) 748 + return dev_err_probe(dev, PTR_ERR(bus_clk), "failed to get bus clock\n"); 743 749 744 750 pctrl->pdesc.name = dev_name(dev); 745 751 pctrl->pdesc.pins = pctrl_data->pins;
+5 -2
drivers/pinctrl/stm32/pinctrl-stm32.c
··· 228 228 return !!(readl_relaxed(bank->base + STM32_GPIO_IDR) & BIT(offset)); 229 229 } 230 230 231 - static void stm32_gpio_set(struct gpio_chip *chip, unsigned offset, int value) 231 + static int stm32_gpio_set(struct gpio_chip *chip, unsigned int offset, 232 + int value) 232 233 { 233 234 struct stm32_gpio_bank *bank = gpiochip_get_data(chip); 234 235 235 236 __stm32_gpio_set(bank, offset, value); 237 + 238 + return 0; 236 239 } 237 240 238 241 static int stm32_gpio_direction_output(struct gpio_chip *chip, ··· 311 308 .request = stm32_gpio_request, 312 309 .free = pinctrl_gpio_free, 313 310 .get = stm32_gpio_get, 314 - .set = stm32_gpio_set, 311 + .set_rv = stm32_gpio_set, 315 312 .direction_input = pinctrl_gpio_direction_input, 316 313 .direction_output = stm32_gpio_direction_output, 317 314 .to_irq = stm32_gpio_to_irq,
+1 -1
drivers/pinctrl/uniphier/Kconfig
··· 3 3 bool "UniPhier SoC pinctrl drivers" 4 4 depends on ARCH_UNIPHIER || COMPILE_TEST 5 5 depends on OF && MFD_SYSCON 6 - default y 6 + default ARCH_UNIPHIER 7 7 select PINMUX 8 8 select GENERIC_PINCONF 9 9
+15 -4
include/linux/pinctrl/machine.h
··· 149 149 #define PIN_MAP_CONFIGS_GROUP_HOG_DEFAULT(dev, grp, cfgs) \ 150 150 PIN_MAP_CONFIGS_GROUP(dev, PINCTRL_STATE_DEFAULT, dev, grp, cfgs) 151 151 152 + struct device; 152 153 struct pinctrl_map; 153 154 154 155 #ifdef CONFIG_PINCTRL 155 156 156 - extern int pinctrl_register_mappings(const struct pinctrl_map *map, 157 - unsigned int num_maps); 158 - extern void pinctrl_unregister_mappings(const struct pinctrl_map *map); 159 - extern void pinctrl_provide_dummies(void); 157 + int pinctrl_register_mappings(const struct pinctrl_map *map, 158 + unsigned int num_maps); 159 + int devm_pinctrl_register_mappings(struct device *dev, 160 + const struct pinctrl_map *map, 161 + unsigned int num_maps); 162 + void pinctrl_unregister_mappings(const struct pinctrl_map *map); 163 + void pinctrl_provide_dummies(void); 160 164 #else 161 165 162 166 static inline int pinctrl_register_mappings(const struct pinctrl_map *map, 163 167 unsigned int num_maps) 168 + { 169 + return 0; 170 + } 171 + 172 + static inline int devm_pinctrl_register_mappings(struct device *dev, 173 + const struct pinctrl_map *map, 174 + unsigned int num_maps) 164 175 { 165 176 return 0; 166 177 }