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

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

Pull pin control updates from Linus Walleij:
"This is the bulk of pin control changes for the v5.14 kernel. Not so
much going on. No core changes, just drivers.

The most interesting would be that MIPS Ralink is migrating to pin
control and we have some bindings but not yet code for the Apple M1
pin controller.

New drivers:

- Last merge window we created a driver for the Ralink RT2880. We are
now moving the Ralink SoC pin control drivers out of the MIPS
architecture code and into the pin control subsystem. This concerns
RT288X, MT7620, RT305X, RT3883 and MT7621.

- Qualcomm SM6125 SoC pin control driver.

- Qualcomm spmi-gpio support for PM7325.

- Qualcomm spmi-mpp also handles PMI8994 (just a compatible string)

- Mediatek MT8365 SoC pin controller.

- New device HID for the AMD GPIO controller.

Improvements:

- Pin bias config support for a slew of Renesas pin controllers.

- Incremental improvements and non-urgent bug fixes to the Renesas
SoC drivers.

- Implement irq_set_wake on the AMD pin controller so we can wake up
from external pin events.

Misc:

- Devicetree bindings for the Apple M1 pin controller, we will
probably see a proper driver for this soon as well"

* tag 'pinctrl-v5.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (54 commits)
pinctrl: ralink: rt305x: add missing include
pinctrl: stm32: check for IRQ MUX validity during alloc()
pinctrl: zynqmp: some code cleanups
drivers: qcom: pinctrl: Add pinctrl driver for sm6125
dt-bindings: pinctrl: qcom: sm6125: Document SM6125 pinctrl driver
dt-bindings: pinctrl: mcp23s08: add documentation for reset-gpios
pinctrl: mcp23s08: Add optional reset GPIO
pinctrl: mediatek: fix mode encoding
pinctrl: mcp23s08: Fix missing unlock on error in mcp23s08_irq()
pinctrl: bcm: Constify static pinmux_ops
pinctrl: bcm: Constify static pinctrl_ops
pinctrl: ralink: move RT288X SoC pinmux config into a new 'pinctrl-rt288x.c' file
pinctrl: ralink: move MT7620 SoC pinmux config into a new 'pinctrl-mt7620.c' file
pinctrl: ralink: move RT305X SoC pinmux config into a new 'pinctrl-rt305x.c' file
pinctrl: ralink: move RT3883 SoC pinmux config into a new 'pinctrl-rt3883.c' file
pinctrl: ralink: move MT7621 SoC pinmux config into a new 'pinctrl-mt7621.c' file
pinctrl: ralink: move ralink architecture pinmux header into the driver
pinctrl: single: config: enable the pin's input
pinctrl: mtk: Fix mt8365 Kconfig dependency
pinctrl: mcp23s08: fix race condition in irq handler
...

+7497 -1019
+106
Documentation/devicetree/bindings/pinctrl/apple,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/apple,pinctrl.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Apple GPIO controller 8 + 9 + maintainers: 10 + - Mark Kettenis <kettenis@openbsd.org> 11 + 12 + description: | 13 + The Apple GPIO controller is a simple combined pin and GPIO 14 + controller present on Apple ARM SoC platforms, including various 15 + iPhone and iPad devices and the "Apple Silicon" Macs. 16 + 17 + properties: 18 + compatible: 19 + items: 20 + - const: apple,t8103-pinctrl 21 + - const: apple,pinctrl 22 + 23 + reg: 24 + maxItems: 1 25 + 26 + clocks: 27 + maxItems: 1 28 + 29 + gpio-controller: true 30 + 31 + '#gpio-cells': 32 + const: 2 33 + 34 + gpio-ranges: 35 + maxItems: 1 36 + 37 + interrupts: 38 + description: One interrupt for each of the (up to 7) interrupt 39 + groups supported by the controller sorted by interrupt group 40 + number in ascending order. 41 + minItems: 1 42 + maxItems: 7 43 + 44 + interrupt-controller: true 45 + 46 + patternProperties: 47 + '-pins$': 48 + type: object 49 + $ref: pinmux-node.yaml# 50 + 51 + properties: 52 + pinmux: 53 + description: 54 + Values are constructed from pin number and alternate function 55 + configuration number using the APPLE_PINMUX() helper macro 56 + defined in include/dt-bindings/pinctrl/apple.h. 57 + 58 + required: 59 + - pinmux 60 + 61 + additionalProperties: false 62 + 63 + required: 64 + - compatible 65 + - reg 66 + - gpio-controller 67 + - '#gpio-cells' 68 + - gpio-ranges 69 + 70 + additionalProperties: false 71 + 72 + examples: 73 + - | 74 + #include <dt-bindings/interrupt-controller/apple-aic.h> 75 + #include <dt-bindings/pinctrl/apple.h> 76 + 77 + soc { 78 + #address-cells = <2>; 79 + #size-cells = <2>; 80 + 81 + pinctrl: pinctrl@23c100000 { 82 + compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 83 + reg = <0x2 0x3c100000 0x0 0x100000>; 84 + clocks = <&gpio_clk>; 85 + 86 + gpio-controller; 87 + #gpio-cells = <2>; 88 + gpio-ranges = <&pinctrl 0 0 212>; 89 + 90 + interrupt-controller; 91 + interrupt-parent = <&aic>; 92 + interrupts = <AIC_IRQ 16 IRQ_TYPE_LEVEL_HIGH>, 93 + <AIC_IRQ 17 IRQ_TYPE_LEVEL_HIGH>, 94 + <AIC_IRQ 18 IRQ_TYPE_LEVEL_HIGH>, 95 + <AIC_IRQ 19 IRQ_TYPE_LEVEL_HIGH>, 96 + <AIC_IRQ 20 IRQ_TYPE_LEVEL_HIGH>, 97 + <AIC_IRQ 21 IRQ_TYPE_LEVEL_HIGH>, 98 + <AIC_IRQ 22 IRQ_TYPE_LEVEL_HIGH>; 99 + 100 + pcie_pins: pcie-pins { 101 + pinmux = <APPLE_PINMUX(150, 1)>, 102 + <APPLE_PINMUX(151, 1)>, 103 + <APPLE_PINMUX(32, 1)>; 104 + }; 105 + }; 106 + };
+5 -5
Documentation/devicetree/bindings/pinctrl/aspeed,ast2600-pinctrl.yaml
··· 46 46 PWM9, RGMII1, RGMII2, RGMII3, RGMII4, RMII1, RMII2, RMII3, RMII4, 47 47 RXD1, RXD2, RXD3, RXD4, SALT1, SALT10, SALT11, SALT12, SALT13, SALT14, 48 48 SALT15, SALT16, SALT2, SALT3, SALT4, SALT5, SALT6, SALT7, SALT8, 49 - SALT9, SD1, SD2, SGPM1, SGPS1, SIOONCTRL, SIOPBI, SIOPBO, SIOPWREQ, 50 - SIOPWRGD, SIOS3, SIOS5, SIOSCI, SPI1, SPI1ABR, SPI1CS1, SPI1WP, SPI2, 49 + SALT9, SD1, SD2, SGPM1, SGPM2, SGPS1, SGPS2, SIOONCTRL, SIOPBI, SIOPBO, 50 + SIOPWREQ, SIOPWRGD, SIOS3, SIOS5, SIOSCI, SPI1, SPI1ABR, SPI1CS1, SPI1WP, SPI2, 51 51 SPI2CS1, SPI2CS2, TACH0, TACH1, TACH10, TACH11, TACH12, TACH13, TACH14, 52 52 TACH15, TACH2, TACH3, TACH4, TACH5, TACH6, TACH7, TACH8, TACH9, THRU0, 53 53 THRU1, THRU2, THRU3, TXD1, TXD2, TXD3, TXD4, UART10, UART11, UART12, ··· 74 74 RXD1, RXD2, RXD3, RXD4, SALT1, SALT10G0, SALT10G1, SALT11G0, SALT11G1, 75 75 SALT12G0, SALT12G1, SALT13G0, SALT13G1, SALT14G0, SALT14G1, SALT15G0, 76 76 SALT15G1, SALT16G0, SALT16G1, SALT2, SALT3, SALT4, SALT5, SALT6, 77 - SALT7, SALT8, SALT9G0, SALT9G1, SD1, SD2, SD3, SGPM1, SGPS1, SIOONCTRL, 78 - SIOPBI, SIOPBO, SIOPWREQ, SIOPWRGD, SIOS3, SIOS5, SIOSCI, SPI1, SPI1ABR, 79 - SPI1CS1, SPI1WP, SPI2, SPI2CS1, SPI2CS2, TACH0, TACH1, TACH10, TACH11, 77 + SALT7, SALT8, SALT9G0, SALT9G1, SD1, SD2, SD3, SGPM1, SGPM2, SGPS1, SGPS2, 78 + SIOONCTRL, SIOPBI, SIOPBO, SIOPWREQ, SIOPWRGD, SIOS3, SIOS5, SIOSCI, SPI1, 79 + SPI1ABR, SPI1CS1, SPI1WP, SPI2, SPI2CS1, SPI2CS2, TACH0, TACH1, TACH10, TACH11, 80 80 TACH12, TACH13, TACH14, TACH15, TACH2, TACH3, TACH4, TACH5, TACH6, 81 81 TACH7, TACH8, TACH9, THRU0, THRU1, THRU2, THRU3, TXD1, TXD2, TXD3, 82 82 TXD4, UART10, UART11, UART12G0, UART12G1, UART13G0, UART13G1, UART6,
-55
Documentation/devicetree/bindings/pinctrl/brcm,bcm4708-pinmux.txt
··· 1 - Broadcom Northstar pins mux controller 2 - 3 - Some of Northstar SoCs's pins can be used for various purposes thanks to the mux 4 - controller. This binding allows describing mux controller and listing available 5 - functions. They can be referenced later by other bindings to let system 6 - configure controller correctly. 7 - 8 - A list of pins varies across chipsets so few bindings are available. 9 - 10 - Node of the pinmux must be nested in the CRU (Central Resource Unit) "syscon" 11 - noce. 12 - 13 - Required properties: 14 - - compatible: must be one of: 15 - "brcm,bcm4708-pinmux" 16 - "brcm,bcm4709-pinmux" 17 - "brcm,bcm53012-pinmux" 18 - - offset: offset of pin registers in the CRU block 19 - 20 - Functions and their groups available for all chipsets: 21 - - "spi": "spi_grp" 22 - - "i2c": "i2c_grp" 23 - - "pwm": "pwm0_grp", "pwm1_grp", "pwm2_grp", "pwm3_grp" 24 - - "uart1": "uart1_grp" 25 - 26 - Additionally available on BCM4709 and BCM53012: 27 - - "mdio": "mdio_grp" 28 - - "uart2": "uart2_grp" 29 - - "sdio": "sdio_pwr_grp", "sdio_1p8v_grp" 30 - 31 - For documentation of subnodes see: 32 - Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt 33 - 34 - Example: 35 - dmu@1800c000 { 36 - compatible = "simple-bus"; 37 - ranges = <0 0x1800c000 0x1000>; 38 - #address-cells = <1>; 39 - #size-cells = <1>; 40 - 41 - cru@100 { 42 - compatible = "syscon", "simple-mfd"; 43 - reg = <0x100 0x1a4>; 44 - 45 - pinctrl { 46 - compatible = "brcm,bcm4708-pinmux"; 47 - offset = <0xc0>; 48 - 49 - spi-pins { 50 - function = "spi"; 51 - groups = "spi_grp"; 52 - }; 53 - }; 54 - }; 55 - };
+94
Documentation/devicetree/bindings/pinctrl/brcm,ns-pinmux.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/brcm,ns-pinmux.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Broadcom Northstar pins mux controller 8 + 9 + maintainers: 10 + - Rafał Miłecki <rafal@milecki.pl> 11 + 12 + description: 13 + Some of Northstar SoCs's pins can be used for various purposes thanks to the 14 + mux controller. This binding allows describing mux controller and listing 15 + available functions. They can be referenced later by other bindings to let 16 + system configure controller correctly. 17 + 18 + A list of pins varies across chipsets so few bindings are available. 19 + 20 + Node of the pinmux must be nested in the CRU (Central Resource Unit) "syscon" 21 + node. 22 + 23 + properties: 24 + compatible: 25 + enum: 26 + - brcm,bcm4708-pinmux 27 + - brcm,bcm4709-pinmux 28 + - brcm,bcm53012-pinmux 29 + 30 + offset: 31 + description: offset of pin registers in the CRU block 32 + maxItems: 1 33 + $ref: /schemas/types.yaml#/definitions/uint32-array 34 + 35 + patternProperties: 36 + '-pins$': 37 + type: object 38 + description: pin node 39 + $ref: pinmux-node.yaml# 40 + 41 + properties: 42 + function: 43 + enum: [ spi, i2c, pwm, uart1, mdio, uart2, sdio ] 44 + groups: 45 + minItems: 1 46 + maxItems: 4 47 + items: 48 + enum: [ spi_grp, i2c_grp, pwm0_grp, pwm1_grp, pwm2_grp, pwm3_grp, 49 + uart1_grp, mdio_grp, uart2_grp, sdio_pwr_grp, sdio_1p8v_grp ] 50 + 51 + required: 52 + - function 53 + - groups 54 + 55 + additionalProperties: false 56 + 57 + allOf: 58 + - if: 59 + properties: 60 + compatible: 61 + contains: 62 + const: brcm,bcm4708-pinmux 63 + then: 64 + patternProperties: 65 + '-pins$': 66 + properties: 67 + function: 68 + enum: [ spi, i2c, pwm, uart1 ] 69 + groups: 70 + items: 71 + enum: [ spi_grp, i2c_grp, pwm0_grp, pwm1_grp, pwm2_grp, pwm3_grp, 72 + uart1_grp ] 73 + 74 + required: 75 + - offset 76 + 77 + additionalProperties: false 78 + 79 + examples: 80 + - | 81 + cru@1800c100 { 82 + compatible = "syscon", "simple-mfd"; 83 + reg = <0x1800c100 0x1a4>; 84 + 85 + pinctrl { 86 + compatible = "brcm,bcm4708-pinmux"; 87 + offset = <0xc0>; 88 + 89 + spi-pins { 90 + function = "spi"; 91 + groups = "spi_grp"; 92 + }; 93 + }; 94 + };
+2
Documentation/devicetree/bindings/pinctrl/pinctrl-mcp23s08.txt
··· 49 49 - interrupt-controller: Marks the device node as a interrupt controller. 50 50 - drive-open-drain: Sets the ODR flag in the IOCON register. This configures 51 51 the IRQ output as open drain active low. 52 + - reset-gpios: Corresponds to the active-low RESET# pin for the chip 52 53 53 54 Optional device specific properties: 54 55 - microchip,irq-mirror: Sets the mirror flag in the IOCON register. Devices ··· 136 135 microchip,irq-mirror; 137 136 pinctrl-names = "default"; 138 137 pinctrl-0 = <&i2cgpio0irq>, <&gpio21pullups>; 138 + reset-gpios = <&gpio6 15 GPIO_ACTIVE_LOW>; 139 139 140 140 gpio21pullups: pinmux { 141 141 pins = "gpio0", "gpio1", "gpio2", "gpio3",
+1
Documentation/devicetree/bindings/pinctrl/pinctrl-mt65xx.txt
··· 12 12 "mediatek,mt8135-pinctrl", compatible with mt8135 pinctrl. 13 13 "mediatek,mt8167-pinctrl", compatible with mt8167 pinctrl. 14 14 "mediatek,mt8173-pinctrl", compatible with mt8173 pinctrl. 15 + "mediatek,mt8365-pinctrl", compatible with mt8365 pinctrl. 15 16 "mediatek,mt8516-pinctrl", compatible with mt8516 pinctrl. 16 17 - pins-are-numbered: Specify the subnodes are using numbered pinmux to 17 18 specify pins.
+2
Documentation/devicetree/bindings/pinctrl/qcom,pmic-gpio.txt
··· 31 31 "qcom,pm8350b-gpio" 32 32 "qcom,pm8350c-gpio" 33 33 "qcom,pmk8350-gpio" 34 + "qcom,pm7325-gpio" 34 35 "qcom,pmr735a-gpio" 35 36 "qcom,pmr735b-gpio" 36 37 "qcom,pm6150-gpio" ··· 121 120 gpio1-gpio8 for pm8350b 122 121 gpio1-gpio9 for pm8350c 123 122 gpio1-gpio4 for pmk8350 123 + gpio1-gpio10 for pm7325 124 124 gpio1-gpio4 for pmr735a 125 125 gpio1-gpio4 for pmr735b 126 126 gpio1-gpio10 for pm6150
+1
Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.txt
··· 21 21 "qcom,pmi8950-mpp", 22 22 "qcom,pm8994-mpp", 23 23 "qcom,pma8084-mpp", 24 + "qcom,pmi8994-mpp", 24 25 25 26 And must contain either "qcom,spmi-mpp" or "qcom,ssbi-mpp" 26 27 if the device is on an spmi bus or an ssbi bus respectively.
+132
Documentation/devicetree/bindings/pinctrl/qcom,sm6125-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/qcom,sm6125-pinctrl.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + title: Qualcomm Technologies, Inc. SM6125 TLMM block 7 + 8 + maintainers: 9 + - Martin Botka <martin.botka@somainline.org> 10 + 11 + description: | 12 + This binding describes the Top Level Mode Multiplexer (TLMM) block found 13 + in the SM6125 platform. 14 + 15 + allOf: 16 + - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml# 17 + 18 + properties: 19 + compatible: 20 + const: qcom,sm6125-tlmm 21 + 22 + reg: 23 + minItems: 3 24 + maxItems: 3 25 + 26 + reg-names: 27 + items: 28 + - const: "west" 29 + - const: "south" 30 + - const: "east" 31 + 32 + interrupts: true 33 + interrupt-controller: true 34 + '#interrupt-cells': true 35 + gpio-controller: true 36 + gpio-reserved-ranges: true 37 + '#gpio-cells': true 38 + gpio-ranges: true 39 + wakeup-parent: true 40 + 41 + required: 42 + - compatible 43 + - reg 44 + - reg-names 45 + 46 + additionalProperties: false 47 + 48 + patternProperties: 49 + '-state$': 50 + oneOf: 51 + - $ref: "#/$defs/qcom-sm6125-tlmm-state" 52 + - patternProperties: 53 + ".*": 54 + $ref: "#/$defs/qcom-sm6125-tlmm-state" 55 + 56 + $defs: 57 + qcom-sm6125-tlmm-state: 58 + type: object 59 + description: 60 + Pinctrl node's client devices use subnodes for desired pin configuration. 61 + Client device subnodes use below standard properties. 62 + $ref: "qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state" 63 + 64 + properties: 65 + pins: 66 + description: 67 + List of gpio pins affected by the properties specified in this 68 + subnode. 69 + items: 70 + oneOf: 71 + - pattern: "^gpio[0-9]|[1-9][0-9]|1[0-2][0-9]|13[0-2]$" 72 + - enum: [ sdc1_clk, sdc1_cmd, sdc1_data, sdc2_clk, sdc2_cmd, sdc2_data ] 73 + minItems: 1 74 + maxItems: 36 75 + 76 + function: 77 + description: 78 + Specify the alternative function to be configured for the specified 79 + pins. 80 + 81 + enum: [ adsp_ext, agera_pll, atest_char, atest_char0, atest_char1, 82 + atest_char2, atest_char3, atest_tsens, atest_tsens2, atest_usb1, 83 + atest_usb10, atest_usb11, atest_usb12, atest_usb13, atest_usb2, 84 + atest_usb20, atest_usb21, atest_usb22, atest_usb23, aud_sb, 85 + audio_ref, cam_mclk, cci_async, cci_i2c, cci_timer0, cci_timer1, 86 + cci_timer2, cci_timer3, cci_timer4, copy_gp, copy_phase, cri_trng, 87 + cri_trng0, cri_trng1, dbg_out, ddr_bist, ddr_pxi0, ddr_pxi1, 88 + ddr_pxi2, ddr_pxi3, debug_hot, dmic0_clk, dmic0_data, dmic1_clk, 89 + dmic1_data, dp_hot, edp_hot, edp_lcd, gcc_gp1, gcc_gp2, gcc_gp3, 90 + gp_pdm0, gp_pdm1, gp_pdm2, gpio, gps_tx, jitter_bist, ldo_en, 91 + ldo_update, m_voc, mclk1, mclk2, mdp_vsync, mdp_vsync0, mdp_vsync1, 92 + mdp_vsync2, mdp_vsync3, mdp_vsync4, mdp_vsync5, mpm_pwr, mss_lte, 93 + nav_pps, pa_indicator, phase_flag, pll_bist, pll_bypassnl, pll_reset, 94 + pri_mi2s, pri_mi2s_ws, prng_rosc, qca_sb, qdss_cti, qdss, qlink_enable, 95 + qlink_request, qua_mi2s, qui_mi2s, qup00, qup01, qup02, qup03, qup04, 96 + qup10, qup11, qup12, qup13, qup14, sd_write, sec_mi2s, sp_cmu, swr_rx, 97 + swr_tx, ter_mi2s, tgu_ch0, tgu_ch1, tgu_ch2, tgu_ch3, tsense_pwm, 98 + uim1_clk, uim1_data, uim1_present, uim1_reset, uim2_clk, uim2_data, 99 + uim2_present, uim2_reset, unused1, unused2, usb_phy, vfr_1, vsense_trigger, 100 + wlan1_adc0, wlan1_adc1, wlan2_adc0, wlan2_adc1, wsa_clk, wsa_data ] 101 + 102 + 103 + bias-disable: true 104 + bias-pull-down: true 105 + bias-pull-up: true 106 + drive-strength: true 107 + input-enable: true 108 + output-high: true 109 + output-low: true 110 + 111 + required: 112 + - pins 113 + - function 114 + 115 + additionalProperties: false 116 + 117 + examples: 118 + - | 119 + #include <dt-bindings/interrupt-controller/arm-gic.h> 120 + pinctrl@500000 { 121 + compatible = "qcom,sm6125-tlmm"; 122 + reg = <0x00500000 0x400000>, 123 + <0x00900000 0x400000>, 124 + <0x00d00000 0x400000>; 125 + reg-names = "west", "south", "east"; 126 + interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>; 127 + gpio-controller; 128 + gpio-ranges = <&tlmm 0 0 134>; 129 + #gpio-cells = <2>; 130 + interrupt-controller; 131 + #interrupt-cells = <2>; 132 + };
+1 -1
Documentation/driver-api/pin-control.rst
··· 95 95 To enable the pinctrl subsystem and the subgroups for PINMUX and PINCONF and 96 96 selected drivers, you need to select them from your machine's Kconfig entry, 97 97 since these are so tightly integrated with the machines they are used on. 98 - See for example arch/arm/mach-u300/Kconfig for an example. 98 + See for example arch/arm/mach-ux500/Kconfig for an example. 99 99 100 100 Pins usually have fancier names than this. You can find these in the datasheet 101 101 for your chip. Notice that the core pinctrl.h file provides a fancy macro
+2
MAINTAINERS
··· 1655 1655 T: git https://github.com/AsahiLinux/linux.git 1656 1656 F: Documentation/devicetree/bindings/arm/apple.yaml 1657 1657 F: Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml 1658 + F: Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml 1658 1659 F: arch/arm64/boot/dts/apple/ 1659 1660 F: drivers/irqchip/irq-apple-aic.c 1660 1661 F: include/dt-bindings/interrupt-controller/apple-aic.h 1662 + F: include/dt-bindings/pinctrl/apple.h 1661 1663 1662 1664 ARM/ARTPEC MACHINE SUPPORT 1663 1665 M: Jesper Nilsson <jesper.nilsson@axis.com>
+6 -45
arch/mips/include/asm/mach-ralink/mt7620.h
··· 83 83 #define MT7620_DDR2_SIZE_MIN 32 84 84 #define MT7620_DDR2_SIZE_MAX 256 85 85 86 - #define MT7620_GPIO_MODE_UART0_SHIFT 2 87 - #define MT7620_GPIO_MODE_UART0_MASK 0x7 88 - #define MT7620_GPIO_MODE_UART0(x) ((x) << MT7620_GPIO_MODE_UART0_SHIFT) 89 - #define MT7620_GPIO_MODE_UARTF 0x0 90 - #define MT7620_GPIO_MODE_PCM_UARTF 0x1 91 - #define MT7620_GPIO_MODE_PCM_I2S 0x2 92 - #define MT7620_GPIO_MODE_I2S_UARTF 0x3 93 - #define MT7620_GPIO_MODE_PCM_GPIO 0x4 94 - #define MT7620_GPIO_MODE_GPIO_UARTF 0x5 95 - #define MT7620_GPIO_MODE_GPIO_I2S 0x6 96 - #define MT7620_GPIO_MODE_GPIO 0x7 86 + extern enum ralink_soc_type ralink_soc; 97 87 98 - #define MT7620_GPIO_MODE_NAND 0 99 - #define MT7620_GPIO_MODE_SD 1 100 - #define MT7620_GPIO_MODE_ND_SD_GPIO 2 101 - #define MT7620_GPIO_MODE_ND_SD_MASK 0x3 102 - #define MT7620_GPIO_MODE_ND_SD_SHIFT 18 103 - 104 - #define MT7620_GPIO_MODE_PCIE_RST 0 105 - #define MT7620_GPIO_MODE_PCIE_REF 1 106 - #define MT7620_GPIO_MODE_PCIE_GPIO 2 107 - #define MT7620_GPIO_MODE_PCIE_MASK 0x3 108 - #define MT7620_GPIO_MODE_PCIE_SHIFT 16 109 - 110 - #define MT7620_GPIO_MODE_WDT_RST 0 111 - #define MT7620_GPIO_MODE_WDT_REF 1 112 - #define MT7620_GPIO_MODE_WDT_GPIO 2 113 - #define MT7620_GPIO_MODE_WDT_MASK 0x3 114 - #define MT7620_GPIO_MODE_WDT_SHIFT 21 115 - 116 - #define MT7620_GPIO_MODE_MDIO 0 117 - #define MT7620_GPIO_MODE_MDIO_REFCLK 1 118 - #define MT7620_GPIO_MODE_MDIO_GPIO 2 119 - #define MT7620_GPIO_MODE_MDIO_MASK 0x3 120 - #define MT7620_GPIO_MODE_MDIO_SHIFT 7 121 - 122 - #define MT7620_GPIO_MODE_I2C 0 123 - #define MT7620_GPIO_MODE_UART1 5 124 - #define MT7620_GPIO_MODE_RGMII1 9 125 - #define MT7620_GPIO_MODE_RGMII2 10 126 - #define MT7620_GPIO_MODE_SPI 11 127 - #define MT7620_GPIO_MODE_SPI_REF_CLK 12 128 - #define MT7620_GPIO_MODE_WLED 13 129 - #define MT7620_GPIO_MODE_JTAG 15 130 - #define MT7620_GPIO_MODE_EPHY 15 131 - #define MT7620_GPIO_MODE_PA 20 88 + static inline int is_mt76x8(void) 89 + { 90 + return ralink_soc == MT762X_SOC_MT7628AN || 91 + ralink_soc == MT762X_SOC_MT7688; 92 + } 132 93 133 94 static inline int mt7620_get_eco(void) 134 95 {
+2 -1
arch/mips/include/asm/mach-ralink/pinmux.h drivers/pinctrl/ralink/pinmux.h
··· 47 47 int func_count; 48 48 }; 49 49 50 - extern struct rt2880_pmx_group *rt2880_pinmux_data; 50 + int rt2880_pinmux_init(struct platform_device *pdev, 51 + struct rt2880_pmx_group *data); 51 52 52 53 #endif
-9
arch/mips/include/asm/mach-ralink/rt288x.h
··· 33 33 #define SYSTEM_CONFIG_CPUCLK_280 0x2 34 34 #define SYSTEM_CONFIG_CPUCLK_300 0x3 35 35 36 - #define RT2880_GPIO_MODE_I2C BIT(0) 37 - #define RT2880_GPIO_MODE_UART0 BIT(1) 38 - #define RT2880_GPIO_MODE_SPI BIT(2) 39 - #define RT2880_GPIO_MODE_UART1 BIT(3) 40 - #define RT2880_GPIO_MODE_JTAG BIT(4) 41 - #define RT2880_GPIO_MODE_MDIO BIT(5) 42 - #define RT2880_GPIO_MODE_SDRAM BIT(6) 43 - #define RT2880_GPIO_MODE_PCI BIT(7) 44 - 45 36 #define CLKCFG_SRAM_CS_N_WDT BIT(9) 46 37 47 38 #define RT2880_SDRAM_BASE 0x08000000
-24
arch/mips/include/asm/mach-ralink/rt305x.h
··· 114 114 #define RT305X_GPIO_GE0_TXD0 40 115 115 #define RT305X_GPIO_GE0_RXCLK 51 116 116 117 - #define RT305X_GPIO_MODE_UART0_SHIFT 2 118 - #define RT305X_GPIO_MODE_UART0_MASK 0x7 119 - #define RT305X_GPIO_MODE_UART0(x) ((x) << RT305X_GPIO_MODE_UART0_SHIFT) 120 - #define RT305X_GPIO_MODE_UARTF 0 121 - #define RT305X_GPIO_MODE_PCM_UARTF 1 122 - #define RT305X_GPIO_MODE_PCM_I2S 2 123 - #define RT305X_GPIO_MODE_I2S_UARTF 3 124 - #define RT305X_GPIO_MODE_PCM_GPIO 4 125 - #define RT305X_GPIO_MODE_GPIO_UARTF 5 126 - #define RT305X_GPIO_MODE_GPIO_I2S 6 127 - #define RT305X_GPIO_MODE_GPIO 7 128 - 129 - #define RT305X_GPIO_MODE_I2C 0 130 - #define RT305X_GPIO_MODE_SPI 1 131 - #define RT305X_GPIO_MODE_UART1 5 132 - #define RT305X_GPIO_MODE_JTAG 6 133 - #define RT305X_GPIO_MODE_MDIO 7 134 - #define RT305X_GPIO_MODE_SDRAM 8 135 - #define RT305X_GPIO_MODE_RGMII 9 136 - #define RT5350_GPIO_MODE_PHY_LED 14 137 - #define RT5350_GPIO_MODE_SPI_CS1 21 138 - #define RT3352_GPIO_MODE_LNA 18 139 - #define RT3352_GPIO_MODE_PA 20 140 - 141 117 #define RT3352_SYSC_REG_SYSCFG0 0x010 142 118 #define RT3352_SYSC_REG_SYSCFG1 0x014 143 119 #define RT3352_SYSC_REG_CLKCFG1 0x030
-34
arch/mips/include/asm/mach-ralink/rt3883.h
··· 109 109 #define RT3883_CLKCFG1_PCI_CLK_EN BIT(19) 110 110 #define RT3883_CLKCFG1_UPHY0_CLK_EN BIT(18) 111 111 112 - #define RT3883_GPIO_MODE_UART0_SHIFT 2 113 - #define RT3883_GPIO_MODE_UART0_MASK 0x7 114 - #define RT3883_GPIO_MODE_UART0(x) ((x) << RT3883_GPIO_MODE_UART0_SHIFT) 115 - #define RT3883_GPIO_MODE_UARTF 0x0 116 - #define RT3883_GPIO_MODE_PCM_UARTF 0x1 117 - #define RT3883_GPIO_MODE_PCM_I2S 0x2 118 - #define RT3883_GPIO_MODE_I2S_UARTF 0x3 119 - #define RT3883_GPIO_MODE_PCM_GPIO 0x4 120 - #define RT3883_GPIO_MODE_GPIO_UARTF 0x5 121 - #define RT3883_GPIO_MODE_GPIO_I2S 0x6 122 - #define RT3883_GPIO_MODE_GPIO 0x7 123 - 124 - #define RT3883_GPIO_MODE_I2C 0 125 - #define RT3883_GPIO_MODE_SPI 1 126 - #define RT3883_GPIO_MODE_UART1 5 127 - #define RT3883_GPIO_MODE_JTAG 6 128 - #define RT3883_GPIO_MODE_MDIO 7 129 - #define RT3883_GPIO_MODE_GE1 9 130 - #define RT3883_GPIO_MODE_GE2 10 131 - 132 - #define RT3883_GPIO_MODE_PCI_SHIFT 11 133 - #define RT3883_GPIO_MODE_PCI_MASK 0x7 134 - #define RT3883_GPIO_MODE_PCI (RT3883_GPIO_MODE_PCI_MASK << RT3883_GPIO_MODE_PCI_SHIFT) 135 - #define RT3883_GPIO_MODE_LNA_A_SHIFT 16 136 - #define RT3883_GPIO_MODE_LNA_A_MASK 0x3 137 - #define _RT3883_GPIO_MODE_LNA_A(_x) ((_x) << RT3883_GPIO_MODE_LNA_A_SHIFT) 138 - #define RT3883_GPIO_MODE_LNA_A_GPIO 0x3 139 - #define RT3883_GPIO_MODE_LNA_A _RT3883_GPIO_MODE_LNA_A(RT3883_GPIO_MODE_LNA_A_MASK) 140 - #define RT3883_GPIO_MODE_LNA_G_SHIFT 18 141 - #define RT3883_GPIO_MODE_LNA_G_MASK 0x3 142 - #define _RT3883_GPIO_MODE_LNA_G(_x) ((_x) << RT3883_GPIO_MODE_LNA_G_SHIFT) 143 - #define RT3883_GPIO_MODE_LNA_G_GPIO 0x3 144 - #define RT3883_GPIO_MODE_LNA_G _RT3883_GPIO_MODE_LNA_G(RT3883_GPIO_MODE_LNA_G_MASK) 145 - 146 112 #define RT3883_GPIO_I2C_SD 1 147 113 #define RT3883_GPIO_I2C_SCLK 2 148 114 #define RT3883_GPIO_SPI_CS0 3
-320
arch/mips/ralink/mt7620.c
··· 15 15 #include <asm/mipsregs.h> 16 16 #include <asm/mach-ralink/ralink_regs.h> 17 17 #include <asm/mach-ralink/mt7620.h> 18 - #include <asm/mach-ralink/pinmux.h> 19 18 20 19 #include "common.h" 21 20 ··· 48 49 49 50 /* does the board have sdram or ddram */ 50 51 static int dram_type; 51 - 52 - static struct rt2880_pmx_func i2c_grp[] = { FUNC("i2c", 0, 1, 2) }; 53 - static struct rt2880_pmx_func spi_grp[] = { FUNC("spi", 0, 3, 4) }; 54 - static struct rt2880_pmx_func uartlite_grp[] = { FUNC("uartlite", 0, 15, 2) }; 55 - static struct rt2880_pmx_func mdio_grp[] = { 56 - FUNC("mdio", MT7620_GPIO_MODE_MDIO, 22, 2), 57 - FUNC("refclk", MT7620_GPIO_MODE_MDIO_REFCLK, 22, 2), 58 - }; 59 - static struct rt2880_pmx_func rgmii1_grp[] = { FUNC("rgmii1", 0, 24, 12) }; 60 - static struct rt2880_pmx_func refclk_grp[] = { FUNC("spi refclk", 0, 37, 3) }; 61 - static struct rt2880_pmx_func ephy_grp[] = { FUNC("ephy", 0, 40, 5) }; 62 - static struct rt2880_pmx_func rgmii2_grp[] = { FUNC("rgmii2", 0, 60, 12) }; 63 - static struct rt2880_pmx_func wled_grp[] = { FUNC("wled", 0, 72, 1) }; 64 - static struct rt2880_pmx_func pa_grp[] = { FUNC("pa", 0, 18, 4) }; 65 - static struct rt2880_pmx_func uartf_grp[] = { 66 - FUNC("uartf", MT7620_GPIO_MODE_UARTF, 7, 8), 67 - FUNC("pcm uartf", MT7620_GPIO_MODE_PCM_UARTF, 7, 8), 68 - FUNC("pcm i2s", MT7620_GPIO_MODE_PCM_I2S, 7, 8), 69 - FUNC("i2s uartf", MT7620_GPIO_MODE_I2S_UARTF, 7, 8), 70 - FUNC("pcm gpio", MT7620_GPIO_MODE_PCM_GPIO, 11, 4), 71 - FUNC("gpio uartf", MT7620_GPIO_MODE_GPIO_UARTF, 7, 4), 72 - FUNC("gpio i2s", MT7620_GPIO_MODE_GPIO_I2S, 7, 4), 73 - }; 74 - static struct rt2880_pmx_func wdt_grp[] = { 75 - FUNC("wdt rst", 0, 17, 1), 76 - FUNC("wdt refclk", 0, 17, 1), 77 - }; 78 - static struct rt2880_pmx_func pcie_rst_grp[] = { 79 - FUNC("pcie rst", MT7620_GPIO_MODE_PCIE_RST, 36, 1), 80 - FUNC("pcie refclk", MT7620_GPIO_MODE_PCIE_REF, 36, 1) 81 - }; 82 - static struct rt2880_pmx_func nd_sd_grp[] = { 83 - FUNC("nand", MT7620_GPIO_MODE_NAND, 45, 15), 84 - FUNC("sd", MT7620_GPIO_MODE_SD, 47, 13) 85 - }; 86 - 87 - static struct rt2880_pmx_group mt7620a_pinmux_data[] = { 88 - GRP("i2c", i2c_grp, 1, MT7620_GPIO_MODE_I2C), 89 - GRP("uartf", uartf_grp, MT7620_GPIO_MODE_UART0_MASK, 90 - MT7620_GPIO_MODE_UART0_SHIFT), 91 - GRP("spi", spi_grp, 1, MT7620_GPIO_MODE_SPI), 92 - GRP("uartlite", uartlite_grp, 1, MT7620_GPIO_MODE_UART1), 93 - GRP_G("wdt", wdt_grp, MT7620_GPIO_MODE_WDT_MASK, 94 - MT7620_GPIO_MODE_WDT_GPIO, MT7620_GPIO_MODE_WDT_SHIFT), 95 - GRP_G("mdio", mdio_grp, MT7620_GPIO_MODE_MDIO_MASK, 96 - MT7620_GPIO_MODE_MDIO_GPIO, MT7620_GPIO_MODE_MDIO_SHIFT), 97 - GRP("rgmii1", rgmii1_grp, 1, MT7620_GPIO_MODE_RGMII1), 98 - GRP("spi refclk", refclk_grp, 1, MT7620_GPIO_MODE_SPI_REF_CLK), 99 - GRP_G("pcie", pcie_rst_grp, MT7620_GPIO_MODE_PCIE_MASK, 100 - MT7620_GPIO_MODE_PCIE_GPIO, MT7620_GPIO_MODE_PCIE_SHIFT), 101 - GRP_G("nd_sd", nd_sd_grp, MT7620_GPIO_MODE_ND_SD_MASK, 102 - MT7620_GPIO_MODE_ND_SD_GPIO, MT7620_GPIO_MODE_ND_SD_SHIFT), 103 - GRP("rgmii2", rgmii2_grp, 1, MT7620_GPIO_MODE_RGMII2), 104 - GRP("wled", wled_grp, 1, MT7620_GPIO_MODE_WLED), 105 - GRP("ephy", ephy_grp, 1, MT7620_GPIO_MODE_EPHY), 106 - GRP("pa", pa_grp, 1, MT7620_GPIO_MODE_PA), 107 - { 0 } 108 - }; 109 - 110 - static struct rt2880_pmx_func pwm1_grp_mt7628[] = { 111 - FUNC("sdxc d6", 3, 19, 1), 112 - FUNC("utif", 2, 19, 1), 113 - FUNC("gpio", 1, 19, 1), 114 - FUNC("pwm1", 0, 19, 1), 115 - }; 116 - 117 - static struct rt2880_pmx_func pwm0_grp_mt7628[] = { 118 - FUNC("sdxc d7", 3, 18, 1), 119 - FUNC("utif", 2, 18, 1), 120 - FUNC("gpio", 1, 18, 1), 121 - FUNC("pwm0", 0, 18, 1), 122 - }; 123 - 124 - static struct rt2880_pmx_func uart2_grp_mt7628[] = { 125 - FUNC("sdxc d5 d4", 3, 20, 2), 126 - FUNC("pwm", 2, 20, 2), 127 - FUNC("gpio", 1, 20, 2), 128 - FUNC("uart2", 0, 20, 2), 129 - }; 130 - 131 - static struct rt2880_pmx_func uart1_grp_mt7628[] = { 132 - FUNC("sw_r", 3, 45, 2), 133 - FUNC("pwm", 2, 45, 2), 134 - FUNC("gpio", 1, 45, 2), 135 - FUNC("uart1", 0, 45, 2), 136 - }; 137 - 138 - static struct rt2880_pmx_func i2c_grp_mt7628[] = { 139 - FUNC("-", 3, 4, 2), 140 - FUNC("debug", 2, 4, 2), 141 - FUNC("gpio", 1, 4, 2), 142 - FUNC("i2c", 0, 4, 2), 143 - }; 144 - 145 - static struct rt2880_pmx_func refclk_grp_mt7628[] = { FUNC("refclk", 0, 37, 1) }; 146 - static struct rt2880_pmx_func perst_grp_mt7628[] = { FUNC("perst", 0, 36, 1) }; 147 - static struct rt2880_pmx_func wdt_grp_mt7628[] = { FUNC("wdt", 0, 38, 1) }; 148 - static struct rt2880_pmx_func spi_grp_mt7628[] = { FUNC("spi", 0, 7, 4) }; 149 - 150 - static struct rt2880_pmx_func sd_mode_grp_mt7628[] = { 151 - FUNC("jtag", 3, 22, 8), 152 - FUNC("utif", 2, 22, 8), 153 - FUNC("gpio", 1, 22, 8), 154 - FUNC("sdxc", 0, 22, 8), 155 - }; 156 - 157 - static struct rt2880_pmx_func uart0_grp_mt7628[] = { 158 - FUNC("-", 3, 12, 2), 159 - FUNC("-", 2, 12, 2), 160 - FUNC("gpio", 1, 12, 2), 161 - FUNC("uart0", 0, 12, 2), 162 - }; 163 - 164 - static struct rt2880_pmx_func i2s_grp_mt7628[] = { 165 - FUNC("antenna", 3, 0, 4), 166 - FUNC("pcm", 2, 0, 4), 167 - FUNC("gpio", 1, 0, 4), 168 - FUNC("i2s", 0, 0, 4), 169 - }; 170 - 171 - static struct rt2880_pmx_func spi_cs1_grp_mt7628[] = { 172 - FUNC("-", 3, 6, 1), 173 - FUNC("refclk", 2, 6, 1), 174 - FUNC("gpio", 1, 6, 1), 175 - FUNC("spi cs1", 0, 6, 1), 176 - }; 177 - 178 - static struct rt2880_pmx_func spis_grp_mt7628[] = { 179 - FUNC("pwm_uart2", 3, 14, 4), 180 - FUNC("utif", 2, 14, 4), 181 - FUNC("gpio", 1, 14, 4), 182 - FUNC("spis", 0, 14, 4), 183 - }; 184 - 185 - static struct rt2880_pmx_func gpio_grp_mt7628[] = { 186 - FUNC("pcie", 3, 11, 1), 187 - FUNC("refclk", 2, 11, 1), 188 - FUNC("gpio", 1, 11, 1), 189 - FUNC("gpio", 0, 11, 1), 190 - }; 191 - 192 - static struct rt2880_pmx_func p4led_kn_grp_mt7628[] = { 193 - FUNC("jtag", 3, 30, 1), 194 - FUNC("utif", 2, 30, 1), 195 - FUNC("gpio", 1, 30, 1), 196 - FUNC("p4led_kn", 0, 30, 1), 197 - }; 198 - 199 - static struct rt2880_pmx_func p3led_kn_grp_mt7628[] = { 200 - FUNC("jtag", 3, 31, 1), 201 - FUNC("utif", 2, 31, 1), 202 - FUNC("gpio", 1, 31, 1), 203 - FUNC("p3led_kn", 0, 31, 1), 204 - }; 205 - 206 - static struct rt2880_pmx_func p2led_kn_grp_mt7628[] = { 207 - FUNC("jtag", 3, 32, 1), 208 - FUNC("utif", 2, 32, 1), 209 - FUNC("gpio", 1, 32, 1), 210 - FUNC("p2led_kn", 0, 32, 1), 211 - }; 212 - 213 - static struct rt2880_pmx_func p1led_kn_grp_mt7628[] = { 214 - FUNC("jtag", 3, 33, 1), 215 - FUNC("utif", 2, 33, 1), 216 - FUNC("gpio", 1, 33, 1), 217 - FUNC("p1led_kn", 0, 33, 1), 218 - }; 219 - 220 - static struct rt2880_pmx_func p0led_kn_grp_mt7628[] = { 221 - FUNC("jtag", 3, 34, 1), 222 - FUNC("rsvd", 2, 34, 1), 223 - FUNC("gpio", 1, 34, 1), 224 - FUNC("p0led_kn", 0, 34, 1), 225 - }; 226 - 227 - static struct rt2880_pmx_func wled_kn_grp_mt7628[] = { 228 - FUNC("rsvd", 3, 35, 1), 229 - FUNC("rsvd", 2, 35, 1), 230 - FUNC("gpio", 1, 35, 1), 231 - FUNC("wled_kn", 0, 35, 1), 232 - }; 233 - 234 - static struct rt2880_pmx_func p4led_an_grp_mt7628[] = { 235 - FUNC("jtag", 3, 39, 1), 236 - FUNC("utif", 2, 39, 1), 237 - FUNC("gpio", 1, 39, 1), 238 - FUNC("p4led_an", 0, 39, 1), 239 - }; 240 - 241 - static struct rt2880_pmx_func p3led_an_grp_mt7628[] = { 242 - FUNC("jtag", 3, 40, 1), 243 - FUNC("utif", 2, 40, 1), 244 - FUNC("gpio", 1, 40, 1), 245 - FUNC("p3led_an", 0, 40, 1), 246 - }; 247 - 248 - static struct rt2880_pmx_func p2led_an_grp_mt7628[] = { 249 - FUNC("jtag", 3, 41, 1), 250 - FUNC("utif", 2, 41, 1), 251 - FUNC("gpio", 1, 41, 1), 252 - FUNC("p2led_an", 0, 41, 1), 253 - }; 254 - 255 - static struct rt2880_pmx_func p1led_an_grp_mt7628[] = { 256 - FUNC("jtag", 3, 42, 1), 257 - FUNC("utif", 2, 42, 1), 258 - FUNC("gpio", 1, 42, 1), 259 - FUNC("p1led_an", 0, 42, 1), 260 - }; 261 - 262 - static struct rt2880_pmx_func p0led_an_grp_mt7628[] = { 263 - FUNC("jtag", 3, 43, 1), 264 - FUNC("rsvd", 2, 43, 1), 265 - FUNC("gpio", 1, 43, 1), 266 - FUNC("p0led_an", 0, 43, 1), 267 - }; 268 - 269 - static struct rt2880_pmx_func wled_an_grp_mt7628[] = { 270 - FUNC("rsvd", 3, 44, 1), 271 - FUNC("rsvd", 2, 44, 1), 272 - FUNC("gpio", 1, 44, 1), 273 - FUNC("wled_an", 0, 44, 1), 274 - }; 275 - 276 - #define MT7628_GPIO_MODE_MASK 0x3 277 - 278 - #define MT7628_GPIO_MODE_P4LED_KN 58 279 - #define MT7628_GPIO_MODE_P3LED_KN 56 280 - #define MT7628_GPIO_MODE_P2LED_KN 54 281 - #define MT7628_GPIO_MODE_P1LED_KN 52 282 - #define MT7628_GPIO_MODE_P0LED_KN 50 283 - #define MT7628_GPIO_MODE_WLED_KN 48 284 - #define MT7628_GPIO_MODE_P4LED_AN 42 285 - #define MT7628_GPIO_MODE_P3LED_AN 40 286 - #define MT7628_GPIO_MODE_P2LED_AN 38 287 - #define MT7628_GPIO_MODE_P1LED_AN 36 288 - #define MT7628_GPIO_MODE_P0LED_AN 34 289 - #define MT7628_GPIO_MODE_WLED_AN 32 290 - #define MT7628_GPIO_MODE_PWM1 30 291 - #define MT7628_GPIO_MODE_PWM0 28 292 - #define MT7628_GPIO_MODE_UART2 26 293 - #define MT7628_GPIO_MODE_UART1 24 294 - #define MT7628_GPIO_MODE_I2C 20 295 - #define MT7628_GPIO_MODE_REFCLK 18 296 - #define MT7628_GPIO_MODE_PERST 16 297 - #define MT7628_GPIO_MODE_WDT 14 298 - #define MT7628_GPIO_MODE_SPI 12 299 - #define MT7628_GPIO_MODE_SDMODE 10 300 - #define MT7628_GPIO_MODE_UART0 8 301 - #define MT7628_GPIO_MODE_I2S 6 302 - #define MT7628_GPIO_MODE_CS1 4 303 - #define MT7628_GPIO_MODE_SPIS 2 304 - #define MT7628_GPIO_MODE_GPIO 0 305 - 306 - static struct rt2880_pmx_group mt7628an_pinmux_data[] = { 307 - GRP_G("pwm1", pwm1_grp_mt7628, MT7628_GPIO_MODE_MASK, 308 - 1, MT7628_GPIO_MODE_PWM1), 309 - GRP_G("pwm0", pwm0_grp_mt7628, MT7628_GPIO_MODE_MASK, 310 - 1, MT7628_GPIO_MODE_PWM0), 311 - GRP_G("uart2", uart2_grp_mt7628, MT7628_GPIO_MODE_MASK, 312 - 1, MT7628_GPIO_MODE_UART2), 313 - GRP_G("uart1", uart1_grp_mt7628, MT7628_GPIO_MODE_MASK, 314 - 1, MT7628_GPIO_MODE_UART1), 315 - GRP_G("i2c", i2c_grp_mt7628, MT7628_GPIO_MODE_MASK, 316 - 1, MT7628_GPIO_MODE_I2C), 317 - GRP("refclk", refclk_grp_mt7628, 1, MT7628_GPIO_MODE_REFCLK), 318 - GRP("perst", perst_grp_mt7628, 1, MT7628_GPIO_MODE_PERST), 319 - GRP("wdt", wdt_grp_mt7628, 1, MT7628_GPIO_MODE_WDT), 320 - GRP("spi", spi_grp_mt7628, 1, MT7628_GPIO_MODE_SPI), 321 - GRP_G("sdmode", sd_mode_grp_mt7628, MT7628_GPIO_MODE_MASK, 322 - 1, MT7628_GPIO_MODE_SDMODE), 323 - GRP_G("uart0", uart0_grp_mt7628, MT7628_GPIO_MODE_MASK, 324 - 1, MT7628_GPIO_MODE_UART0), 325 - GRP_G("i2s", i2s_grp_mt7628, MT7628_GPIO_MODE_MASK, 326 - 1, MT7628_GPIO_MODE_I2S), 327 - GRP_G("spi cs1", spi_cs1_grp_mt7628, MT7628_GPIO_MODE_MASK, 328 - 1, MT7628_GPIO_MODE_CS1), 329 - GRP_G("spis", spis_grp_mt7628, MT7628_GPIO_MODE_MASK, 330 - 1, MT7628_GPIO_MODE_SPIS), 331 - GRP_G("gpio", gpio_grp_mt7628, MT7628_GPIO_MODE_MASK, 332 - 1, MT7628_GPIO_MODE_GPIO), 333 - GRP_G("wled_an", wled_an_grp_mt7628, MT7628_GPIO_MODE_MASK, 334 - 1, MT7628_GPIO_MODE_WLED_AN), 335 - GRP_G("p0led_an", p0led_an_grp_mt7628, MT7628_GPIO_MODE_MASK, 336 - 1, MT7628_GPIO_MODE_P0LED_AN), 337 - GRP_G("p1led_an", p1led_an_grp_mt7628, MT7628_GPIO_MODE_MASK, 338 - 1, MT7628_GPIO_MODE_P1LED_AN), 339 - GRP_G("p2led_an", p2led_an_grp_mt7628, MT7628_GPIO_MODE_MASK, 340 - 1, MT7628_GPIO_MODE_P2LED_AN), 341 - GRP_G("p3led_an", p3led_an_grp_mt7628, MT7628_GPIO_MODE_MASK, 342 - 1, MT7628_GPIO_MODE_P3LED_AN), 343 - GRP_G("p4led_an", p4led_an_grp_mt7628, MT7628_GPIO_MODE_MASK, 344 - 1, MT7628_GPIO_MODE_P4LED_AN), 345 - GRP_G("wled_kn", wled_kn_grp_mt7628, MT7628_GPIO_MODE_MASK, 346 - 1, MT7628_GPIO_MODE_WLED_KN), 347 - GRP_G("p0led_kn", p0led_kn_grp_mt7628, MT7628_GPIO_MODE_MASK, 348 - 1, MT7628_GPIO_MODE_P0LED_KN), 349 - GRP_G("p1led_kn", p1led_kn_grp_mt7628, MT7628_GPIO_MODE_MASK, 350 - 1, MT7628_GPIO_MODE_P1LED_KN), 351 - GRP_G("p2led_kn", p2led_kn_grp_mt7628, MT7628_GPIO_MODE_MASK, 352 - 1, MT7628_GPIO_MODE_P2LED_KN), 353 - GRP_G("p3led_kn", p3led_kn_grp_mt7628, MT7628_GPIO_MODE_MASK, 354 - 1, MT7628_GPIO_MODE_P3LED_KN), 355 - GRP_G("p4led_kn", p4led_kn_grp_mt7628, MT7628_GPIO_MODE_MASK, 356 - 1, MT7628_GPIO_MODE_P4LED_KN), 357 - { 0 } 358 - }; 359 - 360 - static inline int is_mt76x8(void) 361 - { 362 - return ralink_soc == MT762X_SOC_MT7628AN || 363 - ralink_soc == MT762X_SOC_MT7688; 364 - } 365 52 366 53 static __init u32 367 54 mt7620_calc_rate(u32 ref_rate, u32 mul, u32 div) ··· 395 710 (pmu0 & PMU_SW_SET) ? ("sw") : ("hw")); 396 711 pr_info("Digital PMU set to %s control\n", 397 712 (pmu1 & DIG_SW_SEL) ? ("sw") : ("hw")); 398 - 399 - if (is_mt76x8()) 400 - rt2880_pinmux_data = mt7628an_pinmux_data; 401 - else 402 - rt2880_pinmux_data = mt7620a_pinmux_data; 403 713 }
-88
arch/mips/ralink/mt7621.c
··· 18 18 #include <asm/mach-ralink/ralink_regs.h> 19 19 #include <asm/mach-ralink/mt7621.h> 20 20 21 - #include <pinmux.h> 22 - 23 21 #include "common.h" 24 22 25 - #define MT7621_GPIO_MODE_UART1 1 26 - #define MT7621_GPIO_MODE_I2C 2 27 - #define MT7621_GPIO_MODE_UART3_MASK 0x3 28 - #define MT7621_GPIO_MODE_UART3_SHIFT 3 29 - #define MT7621_GPIO_MODE_UART3_GPIO 1 30 - #define MT7621_GPIO_MODE_UART2_MASK 0x3 31 - #define MT7621_GPIO_MODE_UART2_SHIFT 5 32 - #define MT7621_GPIO_MODE_UART2_GPIO 1 33 - #define MT7621_GPIO_MODE_JTAG 7 34 - #define MT7621_GPIO_MODE_WDT_MASK 0x3 35 - #define MT7621_GPIO_MODE_WDT_SHIFT 8 36 - #define MT7621_GPIO_MODE_WDT_GPIO 1 37 - #define MT7621_GPIO_MODE_PCIE_RST 0 38 - #define MT7621_GPIO_MODE_PCIE_REF 2 39 - #define MT7621_GPIO_MODE_PCIE_MASK 0x3 40 - #define MT7621_GPIO_MODE_PCIE_SHIFT 10 41 - #define MT7621_GPIO_MODE_PCIE_GPIO 1 42 - #define MT7621_GPIO_MODE_MDIO_MASK 0x3 43 - #define MT7621_GPIO_MODE_MDIO_SHIFT 12 44 - #define MT7621_GPIO_MODE_MDIO_GPIO 1 45 - #define MT7621_GPIO_MODE_RGMII1 14 46 - #define MT7621_GPIO_MODE_RGMII2 15 47 - #define MT7621_GPIO_MODE_SPI_MASK 0x3 48 - #define MT7621_GPIO_MODE_SPI_SHIFT 16 49 - #define MT7621_GPIO_MODE_SPI_GPIO 1 50 - #define MT7621_GPIO_MODE_SDHCI_MASK 0x3 51 - #define MT7621_GPIO_MODE_SDHCI_SHIFT 18 52 - #define MT7621_GPIO_MODE_SDHCI_GPIO 1 53 - 54 23 static void *detect_magic __initdata = detect_memory_region; 55 - 56 - static struct rt2880_pmx_func uart1_grp[] = { FUNC("uart1", 0, 1, 2) }; 57 - static struct rt2880_pmx_func i2c_grp[] = { FUNC("i2c", 0, 3, 2) }; 58 - static struct rt2880_pmx_func uart3_grp[] = { 59 - FUNC("uart3", 0, 5, 4), 60 - FUNC("i2s", 2, 5, 4), 61 - FUNC("spdif3", 3, 5, 4), 62 - }; 63 - static struct rt2880_pmx_func uart2_grp[] = { 64 - FUNC("uart2", 0, 9, 4), 65 - FUNC("pcm", 2, 9, 4), 66 - FUNC("spdif2", 3, 9, 4), 67 - }; 68 - static struct rt2880_pmx_func jtag_grp[] = { FUNC("jtag", 0, 13, 5) }; 69 - static struct rt2880_pmx_func wdt_grp[] = { 70 - FUNC("wdt rst", 0, 18, 1), 71 - FUNC("wdt refclk", 2, 18, 1), 72 - }; 73 - static struct rt2880_pmx_func pcie_rst_grp[] = { 74 - FUNC("pcie rst", MT7621_GPIO_MODE_PCIE_RST, 19, 1), 75 - FUNC("pcie refclk", MT7621_GPIO_MODE_PCIE_REF, 19, 1) 76 - }; 77 - static struct rt2880_pmx_func mdio_grp[] = { FUNC("mdio", 0, 20, 2) }; 78 - static struct rt2880_pmx_func rgmii2_grp[] = { FUNC("rgmii2", 0, 22, 12) }; 79 - static struct rt2880_pmx_func spi_grp[] = { 80 - FUNC("spi", 0, 34, 7), 81 - FUNC("nand1", 2, 34, 7), 82 - }; 83 - static struct rt2880_pmx_func sdhci_grp[] = { 84 - FUNC("sdhci", 0, 41, 8), 85 - FUNC("nand2", 2, 41, 8), 86 - }; 87 - static struct rt2880_pmx_func rgmii1_grp[] = { FUNC("rgmii1", 0, 49, 12) }; 88 - 89 - static struct rt2880_pmx_group mt7621_pinmux_data[] = { 90 - GRP("uart1", uart1_grp, 1, MT7621_GPIO_MODE_UART1), 91 - GRP("i2c", i2c_grp, 1, MT7621_GPIO_MODE_I2C), 92 - GRP_G("uart3", uart3_grp, MT7621_GPIO_MODE_UART3_MASK, 93 - MT7621_GPIO_MODE_UART3_GPIO, MT7621_GPIO_MODE_UART3_SHIFT), 94 - GRP_G("uart2", uart2_grp, MT7621_GPIO_MODE_UART2_MASK, 95 - MT7621_GPIO_MODE_UART2_GPIO, MT7621_GPIO_MODE_UART2_SHIFT), 96 - GRP("jtag", jtag_grp, 1, MT7621_GPIO_MODE_JTAG), 97 - GRP_G("wdt", wdt_grp, MT7621_GPIO_MODE_WDT_MASK, 98 - MT7621_GPIO_MODE_WDT_GPIO, MT7621_GPIO_MODE_WDT_SHIFT), 99 - GRP_G("pcie", pcie_rst_grp, MT7621_GPIO_MODE_PCIE_MASK, 100 - MT7621_GPIO_MODE_PCIE_GPIO, MT7621_GPIO_MODE_PCIE_SHIFT), 101 - GRP_G("mdio", mdio_grp, MT7621_GPIO_MODE_MDIO_MASK, 102 - MT7621_GPIO_MODE_MDIO_GPIO, MT7621_GPIO_MODE_MDIO_SHIFT), 103 - GRP("rgmii2", rgmii2_grp, 1, MT7621_GPIO_MODE_RGMII2), 104 - GRP_G("spi", spi_grp, MT7621_GPIO_MODE_SPI_MASK, 105 - MT7621_GPIO_MODE_SPI_GPIO, MT7621_GPIO_MODE_SPI_SHIFT), 106 - GRP_G("sdhci", sdhci_grp, MT7621_GPIO_MODE_SDHCI_MASK, 107 - MT7621_GPIO_MODE_SDHCI_GPIO, MT7621_GPIO_MODE_SDHCI_SHIFT), 108 - GRP("rgmii1", rgmii1_grp, 1, MT7621_GPIO_MODE_RGMII1), 109 - { 0 } 110 - }; 111 24 112 25 phys_addr_t mips_cpc_default_phys_base(void) 113 26 { ··· 132 219 (rev & CHIP_REV_ECO_MASK)); 133 220 134 221 soc_info->mem_detect = mt7621_memory_detect; 135 - rt2880_pinmux_data = mt7621_pinmux_data; 136 222 137 223 soc_dev_init(soc_info, rev); 138 224
-1
arch/mips/ralink/prom.c
··· 18 18 #include "common.h" 19 19 20 20 struct ralink_soc_info soc_info; 21 - struct rt2880_pmx_group *rt2880_pinmux_data = NULL; 22 21 23 22 enum ralink_soc_type ralink_soc; 24 23 EXPORT_SYMBOL_GPL(ralink_soc);
-21
arch/mips/ralink/rt288x.c
··· 14 14 #include <asm/mipsregs.h> 15 15 #include <asm/mach-ralink/ralink_regs.h> 16 16 #include <asm/mach-ralink/rt288x.h> 17 - #include <asm/mach-ralink/pinmux.h> 18 17 19 18 #include "common.h" 20 - 21 - static struct rt2880_pmx_func i2c_func[] = { FUNC("i2c", 0, 1, 2) }; 22 - static struct rt2880_pmx_func spi_func[] = { FUNC("spi", 0, 3, 4) }; 23 - static struct rt2880_pmx_func uartlite_func[] = { FUNC("uartlite", 0, 7, 8) }; 24 - static struct rt2880_pmx_func jtag_func[] = { FUNC("jtag", 0, 17, 5) }; 25 - static struct rt2880_pmx_func mdio_func[] = { FUNC("mdio", 0, 22, 2) }; 26 - static struct rt2880_pmx_func sdram_func[] = { FUNC("sdram", 0, 24, 16) }; 27 - static struct rt2880_pmx_func pci_func[] = { FUNC("pci", 0, 40, 32) }; 28 - 29 - static struct rt2880_pmx_group rt2880_pinmux_data_act[] = { 30 - GRP("i2c", i2c_func, 1, RT2880_GPIO_MODE_I2C), 31 - GRP("spi", spi_func, 1, RT2880_GPIO_MODE_SPI), 32 - GRP("uartlite", uartlite_func, 1, RT2880_GPIO_MODE_UART0), 33 - GRP("jtag", jtag_func, 1, RT2880_GPIO_MODE_JTAG), 34 - GRP("mdio", mdio_func, 1, RT2880_GPIO_MODE_MDIO), 35 - GRP("sdram", sdram_func, 1, RT2880_GPIO_MODE_SDRAM), 36 - GRP("pci", pci_func, 1, RT2880_GPIO_MODE_PCI), 37 - { 0 } 38 - }; 39 19 40 20 void __init ralink_clk_init(void) 41 21 { ··· 86 106 soc_info->mem_size_min = RT2880_MEM_SIZE_MIN; 87 107 soc_info->mem_size_max = RT2880_MEM_SIZE_MAX; 88 108 89 - rt2880_pinmux_data = rt2880_pinmux_data_act; 90 109 ralink_soc = RT2880_SOC; 91 110 }
-77
arch/mips/ralink/rt305x.c
··· 16 16 #include <asm/mipsregs.h> 17 17 #include <asm/mach-ralink/ralink_regs.h> 18 18 #include <asm/mach-ralink/rt305x.h> 19 - #include <asm/mach-ralink/pinmux.h> 20 19 21 20 #include "common.h" 22 - 23 - static struct rt2880_pmx_func i2c_func[] = { FUNC("i2c", 0, 1, 2) }; 24 - static struct rt2880_pmx_func spi_func[] = { FUNC("spi", 0, 3, 4) }; 25 - static struct rt2880_pmx_func uartf_func[] = { 26 - FUNC("uartf", RT305X_GPIO_MODE_UARTF, 7, 8), 27 - FUNC("pcm uartf", RT305X_GPIO_MODE_PCM_UARTF, 7, 8), 28 - FUNC("pcm i2s", RT305X_GPIO_MODE_PCM_I2S, 7, 8), 29 - FUNC("i2s uartf", RT305X_GPIO_MODE_I2S_UARTF, 7, 8), 30 - FUNC("pcm gpio", RT305X_GPIO_MODE_PCM_GPIO, 11, 4), 31 - FUNC("gpio uartf", RT305X_GPIO_MODE_GPIO_UARTF, 7, 4), 32 - FUNC("gpio i2s", RT305X_GPIO_MODE_GPIO_I2S, 7, 4), 33 - }; 34 - static struct rt2880_pmx_func uartlite_func[] = { FUNC("uartlite", 0, 15, 2) }; 35 - static struct rt2880_pmx_func jtag_func[] = { FUNC("jtag", 0, 17, 5) }; 36 - static struct rt2880_pmx_func mdio_func[] = { FUNC("mdio", 0, 22, 2) }; 37 - static struct rt2880_pmx_func rt5350_led_func[] = { FUNC("led", 0, 22, 5) }; 38 - static struct rt2880_pmx_func rt5350_cs1_func[] = { 39 - FUNC("spi_cs1", 0, 27, 1), 40 - FUNC("wdg_cs1", 1, 27, 1), 41 - }; 42 - static struct rt2880_pmx_func sdram_func[] = { FUNC("sdram", 0, 24, 16) }; 43 - static struct rt2880_pmx_func rt3352_rgmii_func[] = { 44 - FUNC("rgmii", 0, 24, 12) 45 - }; 46 - static struct rt2880_pmx_func rgmii_func[] = { FUNC("rgmii", 0, 40, 12) }; 47 - static struct rt2880_pmx_func rt3352_lna_func[] = { FUNC("lna", 0, 36, 2) }; 48 - static struct rt2880_pmx_func rt3352_pa_func[] = { FUNC("pa", 0, 38, 2) }; 49 - static struct rt2880_pmx_func rt3352_led_func[] = { FUNC("led", 0, 40, 5) }; 50 - static struct rt2880_pmx_func rt3352_cs1_func[] = { 51 - FUNC("spi_cs1", 0, 45, 1), 52 - FUNC("wdg_cs1", 1, 45, 1), 53 - }; 54 - 55 - static struct rt2880_pmx_group rt3050_pinmux_data[] = { 56 - GRP("i2c", i2c_func, 1, RT305X_GPIO_MODE_I2C), 57 - GRP("spi", spi_func, 1, RT305X_GPIO_MODE_SPI), 58 - GRP("uartf", uartf_func, RT305X_GPIO_MODE_UART0_MASK, 59 - RT305X_GPIO_MODE_UART0_SHIFT), 60 - GRP("uartlite", uartlite_func, 1, RT305X_GPIO_MODE_UART1), 61 - GRP("jtag", jtag_func, 1, RT305X_GPIO_MODE_JTAG), 62 - GRP("mdio", mdio_func, 1, RT305X_GPIO_MODE_MDIO), 63 - GRP("rgmii", rgmii_func, 1, RT305X_GPIO_MODE_RGMII), 64 - GRP("sdram", sdram_func, 1, RT305X_GPIO_MODE_SDRAM), 65 - { 0 } 66 - }; 67 - 68 - static struct rt2880_pmx_group rt3352_pinmux_data[] = { 69 - GRP("i2c", i2c_func, 1, RT305X_GPIO_MODE_I2C), 70 - GRP("spi", spi_func, 1, RT305X_GPIO_MODE_SPI), 71 - GRP("uartf", uartf_func, RT305X_GPIO_MODE_UART0_MASK, 72 - RT305X_GPIO_MODE_UART0_SHIFT), 73 - GRP("uartlite", uartlite_func, 1, RT305X_GPIO_MODE_UART1), 74 - GRP("jtag", jtag_func, 1, RT305X_GPIO_MODE_JTAG), 75 - GRP("mdio", mdio_func, 1, RT305X_GPIO_MODE_MDIO), 76 - GRP("rgmii", rt3352_rgmii_func, 1, RT305X_GPIO_MODE_RGMII), 77 - GRP("lna", rt3352_lna_func, 1, RT3352_GPIO_MODE_LNA), 78 - GRP("pa", rt3352_pa_func, 1, RT3352_GPIO_MODE_PA), 79 - GRP("led", rt3352_led_func, 1, RT5350_GPIO_MODE_PHY_LED), 80 - GRP("spi_cs1", rt3352_cs1_func, 2, RT5350_GPIO_MODE_SPI_CS1), 81 - { 0 } 82 - }; 83 - 84 - static struct rt2880_pmx_group rt5350_pinmux_data[] = { 85 - GRP("i2c", i2c_func, 1, RT305X_GPIO_MODE_I2C), 86 - GRP("spi", spi_func, 1, RT305X_GPIO_MODE_SPI), 87 - GRP("uartf", uartf_func, RT305X_GPIO_MODE_UART0_MASK, 88 - RT305X_GPIO_MODE_UART0_SHIFT), 89 - GRP("uartlite", uartlite_func, 1, RT305X_GPIO_MODE_UART1), 90 - GRP("jtag", jtag_func, 1, RT305X_GPIO_MODE_JTAG), 91 - GRP("led", rt5350_led_func, 1, RT5350_GPIO_MODE_PHY_LED), 92 - GRP("spi_cs1", rt5350_cs1_func, 2, RT5350_GPIO_MODE_SPI_CS1), 93 - { 0 } 94 - }; 95 21 96 22 static unsigned long rt5350_get_mem_size(void) 97 23 { ··· 191 265 soc_info->mem_base = RT305X_SDRAM_BASE; 192 266 if (soc_is_rt5350()) { 193 267 soc_info->mem_size = rt5350_get_mem_size(); 194 - rt2880_pinmux_data = rt5350_pinmux_data; 195 268 } else if (soc_is_rt305x() || soc_is_rt3350()) { 196 269 soc_info->mem_size_min = RT305X_MEM_SIZE_MIN; 197 270 soc_info->mem_size_max = RT305X_MEM_SIZE_MAX; 198 - rt2880_pinmux_data = rt3050_pinmux_data; 199 271 } else if (soc_is_rt3352()) { 200 272 soc_info->mem_size_min = RT3352_MEM_SIZE_MIN; 201 273 soc_info->mem_size_max = RT3352_MEM_SIZE_MAX; 202 - rt2880_pinmux_data = rt3352_pinmux_data; 203 274 } 204 275 }
-45
arch/mips/ralink/rt3883.c
··· 14 14 #include <asm/mipsregs.h> 15 15 #include <asm/mach-ralink/ralink_regs.h> 16 16 #include <asm/mach-ralink/rt3883.h> 17 - #include <asm/mach-ralink/pinmux.h> 18 17 19 18 #include "common.h" 20 - 21 - static struct rt2880_pmx_func i2c_func[] = { FUNC("i2c", 0, 1, 2) }; 22 - static struct rt2880_pmx_func spi_func[] = { FUNC("spi", 0, 3, 4) }; 23 - static struct rt2880_pmx_func uartf_func[] = { 24 - FUNC("uartf", RT3883_GPIO_MODE_UARTF, 7, 8), 25 - FUNC("pcm uartf", RT3883_GPIO_MODE_PCM_UARTF, 7, 8), 26 - FUNC("pcm i2s", RT3883_GPIO_MODE_PCM_I2S, 7, 8), 27 - FUNC("i2s uartf", RT3883_GPIO_MODE_I2S_UARTF, 7, 8), 28 - FUNC("pcm gpio", RT3883_GPIO_MODE_PCM_GPIO, 11, 4), 29 - FUNC("gpio uartf", RT3883_GPIO_MODE_GPIO_UARTF, 7, 4), 30 - FUNC("gpio i2s", RT3883_GPIO_MODE_GPIO_I2S, 7, 4), 31 - }; 32 - static struct rt2880_pmx_func uartlite_func[] = { FUNC("uartlite", 0, 15, 2) }; 33 - static struct rt2880_pmx_func jtag_func[] = { FUNC("jtag", 0, 17, 5) }; 34 - static struct rt2880_pmx_func mdio_func[] = { FUNC("mdio", 0, 22, 2) }; 35 - static struct rt2880_pmx_func lna_a_func[] = { FUNC("lna a", 0, 32, 3) }; 36 - static struct rt2880_pmx_func lna_g_func[] = { FUNC("lna g", 0, 35, 3) }; 37 - static struct rt2880_pmx_func pci_func[] = { 38 - FUNC("pci-dev", 0, 40, 32), 39 - FUNC("pci-host2", 1, 40, 32), 40 - FUNC("pci-host1", 2, 40, 32), 41 - FUNC("pci-fnc", 3, 40, 32) 42 - }; 43 - static struct rt2880_pmx_func ge1_func[] = { FUNC("ge1", 0, 72, 12) }; 44 - static struct rt2880_pmx_func ge2_func[] = { FUNC("ge2", 0, 84, 12) }; 45 - 46 - static struct rt2880_pmx_group rt3883_pinmux_data[] = { 47 - GRP("i2c", i2c_func, 1, RT3883_GPIO_MODE_I2C), 48 - GRP("spi", spi_func, 1, RT3883_GPIO_MODE_SPI), 49 - GRP("uartf", uartf_func, RT3883_GPIO_MODE_UART0_MASK, 50 - RT3883_GPIO_MODE_UART0_SHIFT), 51 - GRP("uartlite", uartlite_func, 1, RT3883_GPIO_MODE_UART1), 52 - GRP("jtag", jtag_func, 1, RT3883_GPIO_MODE_JTAG), 53 - GRP("mdio", mdio_func, 1, RT3883_GPIO_MODE_MDIO), 54 - GRP("lna a", lna_a_func, 1, RT3883_GPIO_MODE_LNA_A), 55 - GRP("lna g", lna_g_func, 1, RT3883_GPIO_MODE_LNA_G), 56 - GRP("pci", pci_func, RT3883_GPIO_MODE_PCI_MASK, 57 - RT3883_GPIO_MODE_PCI_SHIFT), 58 - GRP("ge1", ge1_func, 1, RT3883_GPIO_MODE_GE1), 59 - GRP("ge2", ge2_func, 1, RT3883_GPIO_MODE_GE2), 60 - { 0 } 61 - }; 62 19 63 20 void __init ralink_clk_init(void) 64 21 { ··· 98 141 soc_info->mem_base = RT3883_SDRAM_BASE; 99 142 soc_info->mem_size_min = RT3883_MEM_SIZE_MIN; 100 143 soc_info->mem_size_max = RT3883_MEM_SIZE_MAX; 101 - 102 - rt2880_pinmux_data = rt3883_pinmux_data; 103 144 104 145 ralink_soc = RT3883_SOC; 105 146 }
+2
drivers/pinctrl/Kconfig
··· 336 336 Configuration can include the mux function to select on those 337 337 pin(s)/group(s), and various pin configuration parameters 338 338 such as pull-up, slew rate, etc. 339 + This driver can also be built as a module. If so, the module 340 + will be called pinctrl-zynqmp. 339 341 340 342 config PINCTRL_INGENIC 341 343 bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
+20 -4
drivers/pinctrl/aspeed/pinctrl-aspeed-g6.c
··· 46 46 #define SCU620 0x620 /* Disable GPIO Internal Pull-Down #4 */ 47 47 #define SCU634 0x634 /* Disable GPIO Internal Pull-Down #5 */ 48 48 #define SCU638 0x638 /* Disable GPIO Internal Pull-Down #6 */ 49 + #define SCU690 0x690 /* Multi-function Pin Control #24 */ 49 50 #define SCU694 0x694 /* Multi-function Pin Control #25 */ 50 51 #define SCU69C 0x69C /* Multi-function Pin Control #27 */ 52 + #define SCU6D0 0x6D0 /* Multi-function Pin Control #29 */ 51 53 #define SCUC20 0xC20 /* PCIE configuration Setting Control */ 52 54 53 55 #define ASPEED_G6_NR_PINS 256 ··· 83 81 #define K26 4 84 82 SIG_EXPR_LIST_DECL_SESG(K26, MACLINK1, MACLINK1, SIG_DESC_SET(SCU410, 4)); 85 83 SIG_EXPR_LIST_DECL_SESG(K26, SCL13, I2C13, SIG_DESC_SET(SCU4B0, 4)); 86 - PIN_DECL_2(K26, GPIOA4, MACLINK1, SCL13); 84 + SIG_EXPR_LIST_DECL_SESG(K26, SGPS2CK, SGPS2, SIG_DESC_SET(SCU690, 4)); 85 + SIG_EXPR_LIST_DECL_SESG(K26, SGPM2CLK, SGPM2, SIG_DESC_SET(SCU6D0, 4)); 86 + PIN_DECL_4(K26, GPIOA4, MACLINK1, SCL13, SGPS2CK, SGPM2CLK); 87 87 FUNC_GROUP_DECL(MACLINK1, K26); 88 88 89 89 #define L24 5 90 90 SIG_EXPR_LIST_DECL_SESG(L24, MACLINK2, MACLINK2, SIG_DESC_SET(SCU410, 5)); 91 91 SIG_EXPR_LIST_DECL_SESG(L24, SDA13, I2C13, SIG_DESC_SET(SCU4B0, 5)); 92 - PIN_DECL_2(L24, GPIOA5, MACLINK2, SDA13); 92 + SIG_EXPR_LIST_DECL_SESG(L24, SGPS2LD, SGPS2, SIG_DESC_SET(SCU690, 5)); 93 + SIG_EXPR_LIST_DECL_SESG(L24, SGPM2LD, SGPM2, SIG_DESC_SET(SCU6D0, 5)); 94 + PIN_DECL_4(L24, GPIOA5, MACLINK2, SDA13, SGPS2LD, SGPM2LD); 93 95 FUNC_GROUP_DECL(MACLINK2, L24); 94 96 95 97 FUNC_GROUP_DECL(I2C13, K26, L24); ··· 101 95 #define L23 6 102 96 SIG_EXPR_LIST_DECL_SESG(L23, MACLINK3, MACLINK3, SIG_DESC_SET(SCU410, 6)); 103 97 SIG_EXPR_LIST_DECL_SESG(L23, SCL14, I2C14, SIG_DESC_SET(SCU4B0, 6)); 104 - PIN_DECL_2(L23, GPIOA6, MACLINK3, SCL14); 98 + SIG_EXPR_LIST_DECL_SESG(L23, SGPS2O, SGPS2, SIG_DESC_SET(SCU690, 6)); 99 + SIG_EXPR_LIST_DECL_SESG(L23, SGPM2O, SGPM2, SIG_DESC_SET(SCU6D0, 6)); 100 + PIN_DECL_4(L23, GPIOA6, MACLINK3, SCL14, SGPS2O, SGPM2O); 105 101 FUNC_GROUP_DECL(MACLINK3, L23); 106 102 107 103 #define K25 7 108 104 SIG_EXPR_LIST_DECL_SESG(K25, MACLINK4, MACLINK4, SIG_DESC_SET(SCU410, 7)); 109 105 SIG_EXPR_LIST_DECL_SESG(K25, SDA14, I2C14, SIG_DESC_SET(SCU4B0, 7)); 110 - PIN_DECL_2(K25, GPIOA7, MACLINK4, SDA14); 106 + SIG_EXPR_LIST_DECL_SESG(K25, SGPS2I, SGPS2, SIG_DESC_SET(SCU690, 7)); 107 + SIG_EXPR_LIST_DECL_SESG(K25, SGPM2I, SGPM2, SIG_DESC_SET(SCU6D0, 7)); 108 + PIN_DECL_4(K25, GPIOA7, MACLINK4, SDA14, SGPS2I, SGPM2I); 111 109 FUNC_GROUP_DECL(MACLINK4, K25); 112 110 113 111 FUNC_GROUP_DECL(I2C14, L23, K25); 112 + FUNC_GROUP_DECL(SGPM2, K26, L24, L23, K25); 113 + FUNC_GROUP_DECL(SGPS2, K26, L24, L23, K25); 114 114 115 115 #define J26 8 116 116 SIG_EXPR_LIST_DECL_SESG(J26, SALT1, SALT1, SIG_DESC_SET(SCU410, 8)); ··· 2072 2060 ASPEED_PINCTRL_GROUP(EMMCG4), 2073 2061 ASPEED_PINCTRL_GROUP(EMMCG8), 2074 2062 ASPEED_PINCTRL_GROUP(SGPM1), 2063 + ASPEED_PINCTRL_GROUP(SGPM2), 2075 2064 ASPEED_PINCTRL_GROUP(SGPS1), 2065 + ASPEED_PINCTRL_GROUP(SGPS2), 2076 2066 ASPEED_PINCTRL_GROUP(SIOONCTRL), 2077 2067 ASPEED_PINCTRL_GROUP(SIOPBI), 2078 2068 ASPEED_PINCTRL_GROUP(SIOPBO), ··· 2290 2276 ASPEED_PINCTRL_FUNC(SD1), 2291 2277 ASPEED_PINCTRL_FUNC(SD2), 2292 2278 ASPEED_PINCTRL_FUNC(SGPM1), 2279 + ASPEED_PINCTRL_FUNC(SGPM2), 2293 2280 ASPEED_PINCTRL_FUNC(SGPS1), 2281 + ASPEED_PINCTRL_FUNC(SGPS2), 2294 2282 ASPEED_PINCTRL_FUNC(SIOONCTRL), 2295 2283 ASPEED_PINCTRL_FUNC(SIOPBI), 2296 2284 ASPEED_PINCTRL_FUNC(SIOPBO),
+9
drivers/pinctrl/aspeed/pinmux-aspeed.h
··· 730 730 SIG_EXPR_LIST_PTR(pin, low), \ 731 731 SIG_EXPR_LIST_PTR(pin, other)) 732 732 733 + #define PIN_DECL_4(pin, other, prio1, prio2, prio3, prio4) \ 734 + SIG_EXPR_LIST_DECL_SESG(pin, other, other); \ 735 + PIN_DECL_(pin, \ 736 + SIG_EXPR_LIST_PTR(pin, prio1), \ 737 + SIG_EXPR_LIST_PTR(pin, prio2), \ 738 + SIG_EXPR_LIST_PTR(pin, prio3), \ 739 + SIG_EXPR_LIST_PTR(pin, prio4), \ 740 + SIG_EXPR_LIST_PTR(pin, other)) 741 + 733 742 #define GROUP_SYM(group) group_pins_ ## group 734 743 #define GROUP_DECL(group, ...) \ 735 744 static const int GROUP_SYM(group)[] = { __VA_ARGS__ }
+6 -2
drivers/pinctrl/bcm/pinctrl-bcm2835.c
··· 1274 1274 char *name; 1275 1275 1276 1276 girq->parents[i] = irq_of_parse_and_map(np, i); 1277 - if (!is_7211) 1277 + if (!is_7211) { 1278 + if (!girq->parents[i]) { 1279 + girq->num_parents = i; 1280 + break; 1281 + } 1278 1282 continue; 1279 - 1283 + } 1280 1284 /* Skip over the all banks interrupts */ 1281 1285 pc->wake_irq[i] = irq_of_parse_and_map(np, i + 1282 1286 BCM2835_NUM_IRQS + 1);
+2 -2
drivers/pinctrl/bcm/pinctrl-bcm6318.c
··· 452 452 return 0; 453 453 } 454 454 455 - static struct pinctrl_ops bcm6318_pctl_ops = { 455 + static const struct pinctrl_ops bcm6318_pctl_ops = { 456 456 .dt_free_map = pinctrl_utils_free_map, 457 457 .dt_node_to_map = pinconf_generic_dt_node_to_map_pin, 458 458 .get_group_name = bcm6318_pinctrl_get_group_name, ··· 460 460 .get_groups_count = bcm6318_pinctrl_get_group_count, 461 461 }; 462 462 463 - static struct pinmux_ops bcm6318_pmx_ops = { 463 + static const struct pinmux_ops bcm6318_pmx_ops = { 464 464 .get_function_groups = bcm6318_pinctrl_get_groups, 465 465 .get_function_name = bcm6318_pinctrl_get_func_name, 466 466 .get_functions_count = bcm6318_pinctrl_get_func_count,
+2 -2
drivers/pinctrl/bcm/pinctrl-bcm63268.c
··· 597 597 return 0; 598 598 } 599 599 600 - static struct pinctrl_ops bcm63268_pctl_ops = { 600 + static const struct pinctrl_ops bcm63268_pctl_ops = { 601 601 .dt_free_map = pinctrl_utils_free_map, 602 602 .dt_node_to_map = pinconf_generic_dt_node_to_map_pin, 603 603 .get_group_name = bcm63268_pinctrl_get_group_name, ··· 605 605 .get_groups_count = bcm63268_pinctrl_get_group_count, 606 606 }; 607 607 608 - static struct pinmux_ops bcm63268_pmx_ops = { 608 + static const struct pinmux_ops bcm63268_pmx_ops = { 609 609 .get_function_groups = bcm63268_pinctrl_get_groups, 610 610 .get_function_name = bcm63268_pinctrl_get_func_name, 611 611 .get_functions_count = bcm63268_pinctrl_get_func_count,
+2 -2
drivers/pinctrl/bcm/pinctrl-bcm6328.c
··· 358 358 return 0; 359 359 } 360 360 361 - static struct pinctrl_ops bcm6328_pctl_ops = { 361 + static const struct pinctrl_ops bcm6328_pctl_ops = { 362 362 .dt_free_map = pinctrl_utils_free_map, 363 363 .dt_node_to_map = pinconf_generic_dt_node_to_map_pin, 364 364 .get_group_name = bcm6328_pinctrl_get_group_name, ··· 366 366 .get_groups_count = bcm6328_pinctrl_get_group_count, 367 367 }; 368 368 369 - static struct pinmux_ops bcm6328_pmx_ops = { 369 + static const struct pinmux_ops bcm6328_pmx_ops = { 370 370 .get_function_groups = bcm6328_pinctrl_get_groups, 371 371 .get_function_name = bcm6328_pinctrl_get_func_name, 372 372 .get_functions_count = bcm6328_pinctrl_get_func_count,
+2 -2
drivers/pinctrl/bcm/pinctrl-bcm6358.c
··· 303 303 return regmap_field_update_bits(priv->overlays, mask, 0); 304 304 } 305 305 306 - static struct pinctrl_ops bcm6358_pctl_ops = { 306 + static const struct pinctrl_ops bcm6358_pctl_ops = { 307 307 .dt_free_map = pinctrl_utils_free_map, 308 308 .dt_node_to_map = pinconf_generic_dt_node_to_map_pin, 309 309 .get_group_name = bcm6358_pinctrl_get_group_name, ··· 311 311 .get_groups_count = bcm6358_pinctrl_get_group_count, 312 312 }; 313 313 314 - static struct pinmux_ops bcm6358_pmx_ops = { 314 + static const struct pinmux_ops bcm6358_pmx_ops = { 315 315 .get_function_groups = bcm6358_pinctrl_get_groups, 316 316 .get_function_name = bcm6358_pinctrl_get_func_name, 317 317 .get_functions_count = bcm6358_pinctrl_get_func_count,
+2 -2
drivers/pinctrl/bcm/pinctrl-bcm6362.c
··· 571 571 return 0; 572 572 } 573 573 574 - static struct pinctrl_ops bcm6362_pctl_ops = { 574 + static const struct pinctrl_ops bcm6362_pctl_ops = { 575 575 .dt_free_map = pinctrl_utils_free_map, 576 576 .dt_node_to_map = pinconf_generic_dt_node_to_map_pin, 577 577 .get_group_name = bcm6362_pinctrl_get_group_name, ··· 579 579 .get_groups_count = bcm6362_pinctrl_get_group_count, 580 580 }; 581 581 582 - static struct pinmux_ops bcm6362_pmx_ops = { 582 + static const struct pinmux_ops bcm6362_pmx_ops = { 583 583 .get_function_groups = bcm6362_pinctrl_get_groups, 584 584 .get_function_name = bcm6362_pinctrl_get_func_name, 585 585 .get_functions_count = bcm6362_pinctrl_get_func_count,
+2 -2
drivers/pinctrl/bcm/pinctrl-bcm6368.c
··· 457 457 return 0; 458 458 } 459 459 460 - static struct pinctrl_ops bcm6368_pctl_ops = { 460 + static const struct pinctrl_ops bcm6368_pctl_ops = { 461 461 .dt_free_map = pinctrl_utils_free_map, 462 462 .dt_node_to_map = pinconf_generic_dt_node_to_map_pin, 463 463 .get_group_name = bcm6368_pinctrl_get_group_name, ··· 465 465 .get_groups_count = bcm6368_pinctrl_get_group_count, 466 466 }; 467 467 468 - static struct pinmux_ops bcm6368_pmx_ops = { 468 + static const struct pinmux_ops bcm6368_pmx_ops = { 469 469 .get_function_groups = bcm6368_pinctrl_get_groups, 470 470 .get_function_name = bcm6368_pinctrl_get_func_name, 471 471 .get_functions_count = bcm6368_pinctrl_get_func_count,
+2 -2
drivers/pinctrl/bcm/pinctrl-bcm63xx.h
··· 12 12 #define BCM63XX_BANK_GPIOS 32 13 13 14 14 struct bcm63xx_pinctrl_soc { 15 - struct pinctrl_ops *pctl_ops; 16 - struct pinmux_ops *pmx_ops; 15 + const struct pinctrl_ops *pctl_ops; 16 + const struct pinmux_ops *pmx_ops; 17 17 18 18 const struct pinctrl_pin_desc *pins; 19 19 unsigned npins;
+1 -3
drivers/pinctrl/bcm/pinctrl-iproc-gpio.c
··· 813 813 res = platform_get_resource(pdev, IORESOURCE_MEM, 1); 814 814 if (res) { 815 815 chip->io_ctrl = devm_ioremap_resource(dev, res); 816 - if (IS_ERR(chip->io_ctrl)) { 817 - dev_err(dev, "unable to map I/O memory\n"); 816 + if (IS_ERR(chip->io_ctrl)) 818 817 return PTR_ERR(chip->io_ctrl); 819 - } 820 818 if (of_device_is_compatible(dev->of_node, 821 819 "brcm,cygnus-ccm-gpio")) 822 820 io_ctrl_type = IOCTRL_TYPE_CDRU;
+1
drivers/pinctrl/intel/pinctrl-tigerlake.c
··· 749 749 { "INT34C5", (kernel_ulong_t)&tgllp_soc_data }, 750 750 { "INT34C6", (kernel_ulong_t)&tglh_soc_data }, 751 751 { "INTC1055", (kernel_ulong_t)&tgllp_soc_data }, 752 + { "INTC1057", (kernel_ulong_t)&tgllp_soc_data }, 752 753 { } 753 754 }; 754 755 MODULE_DEVICE_TABLE(acpi, tgl_pinctrl_acpi_match);
+7
drivers/pinctrl/mediatek/Kconfig
··· 153 153 depends on ARM64 || COMPILE_TEST 154 154 select PINCTRL_MTK_PARIS 155 155 156 + config PINCTRL_MT8365 157 + bool "Mediatek MT8365 pin control" 158 + depends on OF 159 + depends on ARM64 || COMPILE_TEST 160 + default ARM64 && ARCH_MEDIATEK 161 + select PINCTRL_MTK 162 + 156 163 config PINCTRL_MT8516 157 164 bool "Mediatek MT8516 pin control" 158 165 depends on OF
+1
drivers/pinctrl/mediatek/Makefile
··· 22 22 obj-$(CONFIG_PINCTRL_MT8183) += pinctrl-mt8183.o 23 23 obj-$(CONFIG_PINCTRL_MT8192) += pinctrl-mt8192.o 24 24 obj-$(CONFIG_PINCTRL_MT8195) += pinctrl-mt8195.o 25 + obj-$(CONFIG_PINCTRL_MT8365) += pinctrl-mt8365.o 25 26 obj-$(CONFIG_PINCTRL_MT8516) += pinctrl-mt8516.o 26 27 obj-$(CONFIG_PINCTRL_MT6397) += pinctrl-mt6397.o
+3
drivers/pinctrl/mediatek/pinctrl-mt2701.c
··· 523 523 .port_shf = 4, 524 524 .port_mask = 0x1f, 525 525 .port_align = 4, 526 + .mode_mask = 0xf, 527 + .mode_per_reg = 5, 528 + .mode_shf = 4, 526 529 .eint_hw = { 527 530 .port_mask = 6, 528 531 .ports = 6,
+3
drivers/pinctrl/mediatek/pinctrl-mt2712.c
··· 576 576 .port_shf = 4, 577 577 .port_mask = 0xf, 578 578 .port_align = 4, 579 + .mode_mask = 0xf, 580 + .mode_per_reg = 5, 581 + .mode_shf = 4, 579 582 .eint_hw = { 580 583 .port_mask = 0xf, 581 584 .ports = 8,
+3
drivers/pinctrl/mediatek/pinctrl-mt6397.c
··· 33 33 .port_shf = 3, 34 34 .port_mask = 0x3, 35 35 .port_align = 2, 36 + .mode_mask = 0xf, 37 + .mode_per_reg = 5, 38 + .mode_shf = 4, 36 39 }; 37 40 38 41 static int mt6397_pinctrl_probe(struct platform_device *pdev)
+3
drivers/pinctrl/mediatek/pinctrl-mt8127.c
··· 292 292 .port_shf = 4, 293 293 .port_mask = 0xf, 294 294 .port_align = 4, 295 + .mode_mask = 0xf, 296 + .mode_per_reg = 5, 297 + .mode_shf = 4, 295 298 .eint_hw = { 296 299 .port_mask = 7, 297 300 .ports = 6,
+3
drivers/pinctrl/mediatek/pinctrl-mt8135.c
··· 305 305 .port_shf = 4, 306 306 .port_mask = 0xf, 307 307 .port_align = 4, 308 + .mode_mask = 0xf, 309 + .mode_per_reg = 5, 310 + .mode_shf = 4, 308 311 .eint_hw = { 309 312 .port_mask = 7, 310 313 .ports = 6,
+3
drivers/pinctrl/mediatek/pinctrl-mt8167.c
··· 324 324 .port_shf = 4, 325 325 .port_mask = 0xf, 326 326 .port_align = 4, 327 + .mode_mask = 0xf, 328 + .mode_per_reg = 5, 329 + .mode_shf = 4, 327 330 .eint_hw = { 328 331 .port_mask = 7, 329 332 .ports = 6,
+3
drivers/pinctrl/mediatek/pinctrl-mt8173.c
··· 332 332 .port_shf = 4, 333 333 .port_mask = 0xf, 334 334 .port_align = 4, 335 + .mode_mask = 0xf, 336 + .mode_per_reg = 5, 337 + .mode_shf = 4, 335 338 .eint_hw = { 336 339 .port_mask = 7, 337 340 .ports = 6,
+502
drivers/pinctrl/mediatek/pinctrl-mt8365.c
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + /* 3 + * Copyright (C) 2021 MediaTek Inc. 4 + * Author: Zhiyong Tao <zhiyong.tao@mediatek.com> 5 + */ 6 + 7 + #include <dt-bindings/pinctrl/mt65xx.h> 8 + #include <linux/of.h> 9 + #include <linux/of_device.h> 10 + #include <linux/module.h> 11 + #include <linux/pinctrl/pinctrl.h> 12 + #include <linux/platform_device.h> 13 + #include <linux/regmap.h> 14 + 15 + #include "pinctrl-mtk-common.h" 16 + #include "pinctrl-mtk-mt8365.h" 17 + 18 + static const struct mtk_drv_group_desc mt8365_drv_grp[] = { 19 + /* 0E4E8SR 4/8/12/16 */ 20 + MTK_DRV_GRP(4, 16, 1, 2, 4), 21 + /* 0E2E4SR 2/4/6/8 */ 22 + MTK_DRV_GRP(2, 8, 1, 2, 2), 23 + /* E8E4E2 2/4/6/8/10/12/14/16 */ 24 + MTK_DRV_GRP(2, 16, 0, 2, 2) 25 + }; 26 + 27 + static const struct mtk_pin_drv_grp mt8365_pin_drv[] = { 28 + 29 + MTK_PIN_DRV_GRP(0, 0x710, 0, 2), 30 + MTK_PIN_DRV_GRP(1, 0x710, 0, 2), 31 + MTK_PIN_DRV_GRP(2, 0x710, 0, 2), 32 + MTK_PIN_DRV_GRP(3, 0x710, 0, 2), 33 + MTK_PIN_DRV_GRP(4, 0x710, 4, 2), 34 + MTK_PIN_DRV_GRP(5, 0x710, 4, 2), 35 + MTK_PIN_DRV_GRP(6, 0x710, 4, 2), 36 + MTK_PIN_DRV_GRP(7, 0x710, 4, 2), 37 + MTK_PIN_DRV_GRP(8, 0x710, 8, 2), 38 + MTK_PIN_DRV_GRP(9, 0x710, 8, 2), 39 + MTK_PIN_DRV_GRP(10, 0x710, 8, 2), 40 + MTK_PIN_DRV_GRP(11, 0x710, 8, 2), 41 + MTK_PIN_DRV_GRP(12, 0x710, 12, 2), 42 + MTK_PIN_DRV_GRP(13, 0x710, 12, 2), 43 + MTK_PIN_DRV_GRP(14, 0x710, 12, 2), 44 + MTK_PIN_DRV_GRP(15, 0x710, 12, 2), 45 + MTK_PIN_DRV_GRP(16, 0x710, 16, 2), 46 + MTK_PIN_DRV_GRP(17, 0x710, 16, 2), 47 + MTK_PIN_DRV_GRP(18, 0x710, 16, 2), 48 + MTK_PIN_DRV_GRP(19, 0x710, 20, 2), 49 + MTK_PIN_DRV_GRP(20, 0x710, 24, 2), 50 + MTK_PIN_DRV_GRP(21, 0x710, 24, 2), 51 + MTK_PIN_DRV_GRP(22, 0x710, 28, 2), 52 + MTK_PIN_DRV_GRP(23, 0x720, 0, 2), 53 + MTK_PIN_DRV_GRP(24, 0x720, 0, 2), 54 + MTK_PIN_DRV_GRP(25, 0x720, 0, 2), 55 + MTK_PIN_DRV_GRP(26, 0x720, 4, 2), 56 + MTK_PIN_DRV_GRP(27, 0x720, 4, 2), 57 + MTK_PIN_DRV_GRP(28, 0x720, 4, 2), 58 + MTK_PIN_DRV_GRP(29, 0x720, 4, 2), 59 + MTK_PIN_DRV_GRP(30, 0x720, 8, 2), 60 + MTK_PIN_DRV_GRP(31, 0x720, 8, 2), 61 + MTK_PIN_DRV_GRP(32, 0x720, 8, 2), 62 + MTK_PIN_DRV_GRP(33, 0x720, 8, 2), 63 + MTK_PIN_DRV_GRP(34, 0x720, 8, 2), 64 + MTK_PIN_DRV_GRP(35, 0x720, 12, 2), 65 + MTK_PIN_DRV_GRP(36, 0x720, 12, 2), 66 + MTK_PIN_DRV_GRP(37, 0x720, 12, 2), 67 + MTK_PIN_DRV_GRP(38, 0x720, 12, 2), 68 + MTK_PIN_DRV_GRP(39, 0x720, 12, 2), 69 + MTK_PIN_DRV_GRP(40, 0x720, 12, 2), 70 + MTK_PIN_DRV_GRP(41, 0x720, 16, 2), 71 + MTK_PIN_DRV_GRP(42, 0x720, 16, 2), 72 + MTK_PIN_DRV_GRP(43, 0x720, 16, 2), 73 + MTK_PIN_DRV_GRP(44, 0x720, 16, 2), 74 + MTK_PIN_DRV_GRP(45, 0x720, 20, 2), 75 + MTK_PIN_DRV_GRP(46, 0x720, 20, 2), 76 + MTK_PIN_DRV_GRP(47, 0x720, 20, 2), 77 + MTK_PIN_DRV_GRP(48, 0x720, 20, 2), 78 + MTK_PIN_DRV_GRP(49, 0x720, 24, 2), 79 + MTK_PIN_DRV_GRP(50, 0x720, 24, 2), 80 + MTK_PIN_DRV_GRP(51, 0x720, 24, 2), 81 + MTK_PIN_DRV_GRP(52, 0x720, 24, 2), 82 + MTK_PIN_DRV_GRP(53, 0x720, 24, 2), 83 + MTK_PIN_DRV_GRP(54, 0x720, 24, 2), 84 + MTK_PIN_DRV_GRP(55, 0x720, 24, 2), 85 + MTK_PIN_DRV_GRP(56, 0x720, 24, 2), 86 + MTK_PIN_DRV_GRP(57, 0x720, 28, 2), 87 + MTK_PIN_DRV_GRP(58, 0x720, 28, 2), 88 + MTK_PIN_DRV_GRP(59, 0x730, 0, 2), 89 + MTK_PIN_DRV_GRP(60, 0x730, 0, 2), 90 + MTK_PIN_DRV_GRP(61, 0x730, 4, 2), 91 + MTK_PIN_DRV_GRP(62, 0x730, 4, 2), 92 + MTK_PIN_DRV_GRP(63, 0x730, 8, 2), 93 + MTK_PIN_DRV_GRP(64, 0x730, 8, 2), 94 + MTK_PIN_DRV_GRP(65, 0x730, 12, 2), 95 + MTK_PIN_DRV_GRP(66, 0x730, 12, 2), 96 + MTK_PIN_DRV_GRP(67, 0x730, 12, 2), 97 + MTK_PIN_DRV_GRP(68, 0x730, 12, 2), 98 + MTK_PIN_DRV_GRP(69, 0x730, 12, 2), 99 + MTK_PIN_DRV_GRP(70, 0x730, 12, 2), 100 + MTK_PIN_DRV_GRP(71, 0x730, 16, 2), 101 + MTK_PIN_DRV_GRP(72, 0x730, 16, 2), 102 + MTK_PIN_DRV_GRP(73, 0x730, 16, 2), 103 + MTK_PIN_DRV_GRP(74, 0x730, 16, 2), 104 + MTK_PIN_DRV_GRP(75, 0x730, 16, 2), 105 + MTK_PIN_DRV_GRP(76, 0x730, 16, 2), 106 + MTK_PIN_DRV_GRP(77, 0x730, 16, 2), 107 + MTK_PIN_DRV_GRP(78, 0x730, 16, 2), 108 + MTK_PIN_DRV_GRP(79, 0x730, 16, 2), 109 + MTK_PIN_DRV_GRP(80, 0x730, 20, 2), 110 + MTK_PIN_DRV_GRP(81, 0x730, 24, 2), 111 + MTK_PIN_DRV_GRP(82, 0x730, 28, 2), 112 + MTK_PIN_DRV_GRP(83, 0x730, 28, 2), 113 + MTK_PIN_DRV_GRP(84, 0x730, 28, 2), 114 + MTK_PIN_DRV_GRP(85, 0x730, 28, 2), 115 + MTK_PIN_DRV_GRP(86, 0x740, 12, 2), 116 + MTK_PIN_DRV_GRP(87, 0x740, 16, 2), 117 + MTK_PIN_DRV_GRP(88, 0x740, 20, 2), 118 + MTK_PIN_DRV_GRP(89, 0x740, 24, 2), 119 + MTK_PIN_DRV_GRP(90, 0x740, 24, 2), 120 + MTK_PIN_DRV_GRP(91, 0x740, 24, 2), 121 + MTK_PIN_DRV_GRP(92, 0x740, 24, 2), 122 + MTK_PIN_DRV_GRP(93, 0x750, 8, 2), 123 + MTK_PIN_DRV_GRP(94, 0x750, 8, 2), 124 + MTK_PIN_DRV_GRP(95, 0x750, 8, 2), 125 + MTK_PIN_DRV_GRP(96, 0x750, 8, 2), 126 + MTK_PIN_DRV_GRP(97, 0x750, 24, 2), 127 + MTK_PIN_DRV_GRP(98, 0x750, 28, 2), 128 + MTK_PIN_DRV_GRP(99, 0x760, 0, 2), 129 + MTK_PIN_DRV_GRP(100, 0x750, 8, 2), 130 + MTK_PIN_DRV_GRP(101, 0x750, 8, 2), 131 + MTK_PIN_DRV_GRP(102, 0x750, 8, 2), 132 + MTK_PIN_DRV_GRP(103, 0x750, 8, 2), 133 + MTK_PIN_DRV_GRP(104, 0x760, 20, 2), 134 + MTK_PIN_DRV_GRP(105, 0x760, 24, 2), 135 + MTK_PIN_DRV_GRP(106, 0x760, 24, 2), 136 + MTK_PIN_DRV_GRP(107, 0x760, 24, 2), 137 + MTK_PIN_DRV_GRP(108, 0x760, 24, 2), 138 + MTK_PIN_DRV_GRP(109, 0x760, 24, 2), 139 + MTK_PIN_DRV_GRP(110, 0x760, 28, 2), 140 + MTK_PIN_DRV_GRP(111, 0x760, 28, 2), 141 + MTK_PIN_DRV_GRP(112, 0x760, 28, 2), 142 + MTK_PIN_DRV_GRP(113, 0x760, 28, 2), 143 + MTK_PIN_DRV_GRP(114, 0x770, 0, 2), 144 + MTK_PIN_DRV_GRP(115, 0x770, 0, 2), 145 + MTK_PIN_DRV_GRP(116, 0x770, 0, 2), 146 + MTK_PIN_DRV_GRP(117, 0x770, 4, 2), 147 + MTK_PIN_DRV_GRP(118, 0x770, 4, 2), 148 + MTK_PIN_DRV_GRP(119, 0x770, 4, 2), 149 + MTK_PIN_DRV_GRP(120, 0x770, 8, 2), 150 + MTK_PIN_DRV_GRP(121, 0x770, 8, 2), 151 + MTK_PIN_DRV_GRP(122, 0x770, 8, 2), 152 + MTK_PIN_DRV_GRP(123, 0x770, 12, 2), 153 + MTK_PIN_DRV_GRP(124, 0x770, 12, 2), 154 + MTK_PIN_DRV_GRP(125, 0x770, 12, 2), 155 + MTK_PIN_DRV_GRP(126, 0x770, 16, 2), 156 + MTK_PIN_DRV_GRP(127, 0x770, 16, 2), 157 + MTK_PIN_DRV_GRP(128, 0x770, 16, 2), 158 + MTK_PIN_DRV_GRP(129, 0x770, 20, 2), 159 + MTK_PIN_DRV_GRP(130, 0x770, 20, 2), 160 + MTK_PIN_DRV_GRP(131, 0x770, 20, 2), 161 + MTK_PIN_DRV_GRP(132, 0x770, 20, 2), 162 + MTK_PIN_DRV_GRP(133, 0x770, 20, 2), 163 + MTK_PIN_DRV_GRP(134, 0x770, 20, 2), 164 + MTK_PIN_DRV_GRP(135, 0x770, 20, 2), 165 + MTK_PIN_DRV_GRP(136, 0x770, 24, 2), 166 + MTK_PIN_DRV_GRP(137, 0x770, 24, 2), 167 + MTK_PIN_DRV_GRP(138, 0x770, 24, 2), 168 + MTK_PIN_DRV_GRP(139, 0x770, 24, 2), 169 + MTK_PIN_DRV_GRP(140, 0x770, 24, 2), 170 + MTK_PIN_DRV_GRP(141, 0x770, 24, 2), 171 + MTK_PIN_DRV_GRP(142, 0x770, 24, 2), 172 + MTK_PIN_DRV_GRP(143, 0x770, 24, 2), 173 + MTK_PIN_DRV_GRP(144, 0x770, 24, 2), 174 + }; 175 + 176 + static const struct mtk_pin_spec_pupd_set_samereg mt8365_spec_pupd[] = { 177 + MTK_PIN_PUPD_SPEC_SR(22, 0x070, 0, 2, 1), 178 + MTK_PIN_PUPD_SPEC_SR(23, 0x070, 3, 5, 4), 179 + MTK_PIN_PUPD_SPEC_SR(24, 0x070, 6, 8, 7), 180 + MTK_PIN_PUPD_SPEC_SR(25, 0x070, 9, 11, 10), 181 + MTK_PIN_PUPD_SPEC_SR(80, 0x070, 14, 13, 12), 182 + MTK_PIN_PUPD_SPEC_SR(81, 0x070, 17, 16, 15), 183 + MTK_PIN_PUPD_SPEC_SR(82, 0x070, 20, 19, 18), 184 + MTK_PIN_PUPD_SPEC_SR(83, 0x070, 23, 22, 21), 185 + MTK_PIN_PUPD_SPEC_SR(84, 0x070, 26, 25, 24), 186 + MTK_PIN_PUPD_SPEC_SR(85, 0x070, 29, 28, 27), 187 + MTK_PIN_PUPD_SPEC_SR(86, 0x080, 2, 1, 0), 188 + MTK_PIN_PUPD_SPEC_SR(87, 0x080, 5, 4, 3), 189 + MTK_PIN_PUPD_SPEC_SR(88, 0x080, 8, 7, 6), 190 + MTK_PIN_PUPD_SPEC_SR(89, 0x080, 11, 10, 9), 191 + MTK_PIN_PUPD_SPEC_SR(90, 0x080, 14, 13, 12), 192 + MTK_PIN_PUPD_SPEC_SR(91, 0x080, 17, 16, 15), 193 + MTK_PIN_PUPD_SPEC_SR(92, 0x080, 20, 19, 18), 194 + MTK_PIN_PUPD_SPEC_SR(93, 0x080, 23, 22, 21), 195 + MTK_PIN_PUPD_SPEC_SR(94, 0x080, 26, 25, 24), 196 + MTK_PIN_PUPD_SPEC_SR(95, 0x080, 29, 28, 27), 197 + MTK_PIN_PUPD_SPEC_SR(96, 0x090, 2, 1, 0), 198 + MTK_PIN_PUPD_SPEC_SR(97, 0x090, 5, 4, 3), 199 + MTK_PIN_PUPD_SPEC_SR(98, 0x090, 8, 7, 6), 200 + MTK_PIN_PUPD_SPEC_SR(99, 0x090, 11, 10, 9), 201 + MTK_PIN_PUPD_SPEC_SR(100, 0x090, 14, 13, 12), 202 + MTK_PIN_PUPD_SPEC_SR(101, 0x090, 17, 16, 15), 203 + MTK_PIN_PUPD_SPEC_SR(102, 0x090, 20, 19, 18), 204 + MTK_PIN_PUPD_SPEC_SR(103, 0x090, 23, 22, 21), 205 + MTK_PIN_PUPD_SPEC_SR(104, 0x090, 26, 25, 24), 206 + MTK_PIN_PUPD_SPEC_SR(105, 0x090, 29, 28, 27), 207 + MTK_PIN_PUPD_SPEC_SR(106, 0x0F0, 2, 1, 0), 208 + MTK_PIN_PUPD_SPEC_SR(107, 0x0F0, 5, 4, 3), 209 + MTK_PIN_PUPD_SPEC_SR(108, 0x0F0, 8, 7, 6), 210 + MTK_PIN_PUPD_SPEC_SR(109, 0x0F0, 11, 10, 9), 211 + }; 212 + 213 + static const struct mtk_pin_ies_smt_set mt8365_ies_set[] = { 214 + MTK_PIN_IES_SMT_SPEC(0, 3, 0x410, 0), 215 + MTK_PIN_IES_SMT_SPEC(4, 7, 0x410, 1), 216 + MTK_PIN_IES_SMT_SPEC(8, 11, 0x410, 2), 217 + MTK_PIN_IES_SMT_SPEC(12, 15, 0x410, 3), 218 + MTK_PIN_IES_SMT_SPEC(16, 18, 0x410, 4), 219 + MTK_PIN_IES_SMT_SPEC(19, 19, 0x410, 5), 220 + MTK_PIN_IES_SMT_SPEC(20, 21, 0x410, 6), 221 + MTK_PIN_IES_SMT_SPEC(22, 22, 0x410, 7), 222 + MTK_PIN_IES_SMT_SPEC(23, 25, 0x410, 8), 223 + MTK_PIN_IES_SMT_SPEC(26, 29, 0x410, 9), 224 + MTK_PIN_IES_SMT_SPEC(30, 34, 0x410, 10), 225 + MTK_PIN_IES_SMT_SPEC(35, 40, 0x410, 11), 226 + MTK_PIN_IES_SMT_SPEC(41, 44, 0x410, 12), 227 + MTK_PIN_IES_SMT_SPEC(45, 48, 0x410, 13), 228 + MTK_PIN_IES_SMT_SPEC(49, 56, 0x410, 14), 229 + MTK_PIN_IES_SMT_SPEC(57, 58, 0x410, 15), 230 + MTK_PIN_IES_SMT_SPEC(59, 60, 0x410, 16), 231 + MTK_PIN_IES_SMT_SPEC(61, 62, 0x410, 17), 232 + MTK_PIN_IES_SMT_SPEC(63, 64, 0x410, 18), 233 + MTK_PIN_IES_SMT_SPEC(65, 70, 0x410, 19), 234 + MTK_PIN_IES_SMT_SPEC(71, 79, 0x410, 20), 235 + MTK_PIN_IES_SMT_SPEC(80, 80, 0x410, 21), 236 + MTK_PIN_IES_SMT_SPEC(81, 81, 0x410, 22), 237 + MTK_PIN_IES_SMT_SPEC(82, 82, 0x410, 23), 238 + MTK_PIN_IES_SMT_SPEC(83, 83, 0x410, 24), 239 + MTK_PIN_IES_SMT_SPEC(84, 84, 0x410, 25), 240 + MTK_PIN_IES_SMT_SPEC(85, 85, 0x410, 26), 241 + MTK_PIN_IES_SMT_SPEC(86, 86, 0x410, 27), 242 + MTK_PIN_IES_SMT_SPEC(87, 87, 0x410, 28), 243 + MTK_PIN_IES_SMT_SPEC(88, 88, 0x410, 29), 244 + MTK_PIN_IES_SMT_SPEC(89, 89, 0x410, 30), 245 + MTK_PIN_IES_SMT_SPEC(90, 90, 0x410, 31), 246 + MTK_PIN_IES_SMT_SPEC(91, 91, 0x420, 0), 247 + MTK_PIN_IES_SMT_SPEC(92, 92, 0x420, 1), 248 + MTK_PIN_IES_SMT_SPEC(93, 93, 0x420, 2), 249 + MTK_PIN_IES_SMT_SPEC(94, 94, 0x420, 3), 250 + MTK_PIN_IES_SMT_SPEC(95, 95, 0x420, 4), 251 + MTK_PIN_IES_SMT_SPEC(96, 96, 0x420, 5), 252 + MTK_PIN_IES_SMT_SPEC(97, 97, 0x420, 6), 253 + MTK_PIN_IES_SMT_SPEC(98, 98, 0x420, 7), 254 + MTK_PIN_IES_SMT_SPEC(99, 99, 0x420, 8), 255 + MTK_PIN_IES_SMT_SPEC(100, 100, 0x420, 9), 256 + MTK_PIN_IES_SMT_SPEC(101, 101, 0x420, 10), 257 + MTK_PIN_IES_SMT_SPEC(102, 102, 0x420, 11), 258 + MTK_PIN_IES_SMT_SPEC(103, 103, 0x420, 12), 259 + MTK_PIN_IES_SMT_SPEC(104, 104, 0x420, 13), 260 + MTK_PIN_IES_SMT_SPEC(105, 109, 0x420, 14), 261 + MTK_PIN_IES_SMT_SPEC(110, 113, 0x420, 15), 262 + MTK_PIN_IES_SMT_SPEC(114, 112, 0x420, 16), 263 + MTK_PIN_IES_SMT_SPEC(117, 119, 0x420, 17), 264 + MTK_PIN_IES_SMT_SPEC(120, 122, 0x420, 18), 265 + MTK_PIN_IES_SMT_SPEC(123, 125, 0x420, 19), 266 + MTK_PIN_IES_SMT_SPEC(126, 128, 0x420, 20), 267 + MTK_PIN_IES_SMT_SPEC(129, 135, 0x420, 21), 268 + MTK_PIN_IES_SMT_SPEC(136, 144, 0x420, 22), 269 + }; 270 + 271 + static const struct mtk_pin_ies_smt_set mt8365_smt_set[] = { 272 + MTK_PIN_IES_SMT_SPEC(0, 0, 0x470, 0), 273 + MTK_PIN_IES_SMT_SPEC(1, 1, 0x470, 0), 274 + MTK_PIN_IES_SMT_SPEC(2, 2, 0x470, 0), 275 + MTK_PIN_IES_SMT_SPEC(3, 3, 0x470, 0), 276 + MTK_PIN_IES_SMT_SPEC(4, 4, 0x470, 1), 277 + MTK_PIN_IES_SMT_SPEC(5, 5, 0x470, 1), 278 + MTK_PIN_IES_SMT_SPEC(6, 6, 0x470, 1), 279 + MTK_PIN_IES_SMT_SPEC(7, 7, 0x470, 1), 280 + MTK_PIN_IES_SMT_SPEC(8, 8, 0x470, 2), 281 + MTK_PIN_IES_SMT_SPEC(9, 9, 0x470, 2), 282 + MTK_PIN_IES_SMT_SPEC(10, 10, 0x470, 2), 283 + MTK_PIN_IES_SMT_SPEC(11, 11, 0x470, 2), 284 + MTK_PIN_IES_SMT_SPEC(12, 12, 0x470, 3), 285 + MTK_PIN_IES_SMT_SPEC(13, 13, 0x470, 3), 286 + MTK_PIN_IES_SMT_SPEC(14, 14, 0x470, 3), 287 + MTK_PIN_IES_SMT_SPEC(15, 15, 0x470, 3), 288 + MTK_PIN_IES_SMT_SPEC(16, 16, 0x470, 4), 289 + MTK_PIN_IES_SMT_SPEC(17, 17, 0x470, 4), 290 + MTK_PIN_IES_SMT_SPEC(18, 18, 0x470, 4), 291 + MTK_PIN_IES_SMT_SPEC(19, 19, 0x470, 5), 292 + MTK_PIN_IES_SMT_SPEC(20, 20, 0x470, 6), 293 + MTK_PIN_IES_SMT_SPEC(21, 21, 0x470, 6), 294 + MTK_PIN_IES_SMT_SPEC(22, 22, 0x470, 7), 295 + MTK_PIN_IES_SMT_SPEC(23, 23, 0x470, 8), 296 + MTK_PIN_IES_SMT_SPEC(24, 24, 0x470, 8), 297 + MTK_PIN_IES_SMT_SPEC(25, 25, 0x470, 8), 298 + MTK_PIN_IES_SMT_SPEC(26, 26, 0x470, 9), 299 + MTK_PIN_IES_SMT_SPEC(27, 27, 0x470, 9), 300 + MTK_PIN_IES_SMT_SPEC(28, 28, 0x470, 9), 301 + MTK_PIN_IES_SMT_SPEC(29, 29, 0x470, 9), 302 + MTK_PIN_IES_SMT_SPEC(30, 30, 0x470, 10), 303 + MTK_PIN_IES_SMT_SPEC(31, 31, 0x470, 10), 304 + MTK_PIN_IES_SMT_SPEC(32, 32, 0x470, 10), 305 + MTK_PIN_IES_SMT_SPEC(33, 33, 0x470, 10), 306 + MTK_PIN_IES_SMT_SPEC(34, 34, 0x470, 10), 307 + MTK_PIN_IES_SMT_SPEC(35, 35, 0x470, 11), 308 + MTK_PIN_IES_SMT_SPEC(36, 36, 0x470, 11), 309 + MTK_PIN_IES_SMT_SPEC(37, 37, 0x470, 11), 310 + MTK_PIN_IES_SMT_SPEC(38, 38, 0x470, 11), 311 + MTK_PIN_IES_SMT_SPEC(39, 39, 0x470, 11), 312 + MTK_PIN_IES_SMT_SPEC(40, 40, 0x470, 11), 313 + MTK_PIN_IES_SMT_SPEC(41, 41, 0x470, 12), 314 + MTK_PIN_IES_SMT_SPEC(42, 42, 0x470, 12), 315 + MTK_PIN_IES_SMT_SPEC(43, 43, 0x470, 12), 316 + MTK_PIN_IES_SMT_SPEC(44, 44, 0x470, 12), 317 + MTK_PIN_IES_SMT_SPEC(45, 45, 0x470, 13), 318 + MTK_PIN_IES_SMT_SPEC(46, 46, 0x470, 13), 319 + MTK_PIN_IES_SMT_SPEC(47, 47, 0x470, 13), 320 + MTK_PIN_IES_SMT_SPEC(48, 48, 0x470, 13), 321 + MTK_PIN_IES_SMT_SPEC(49, 49, 0x470, 14), 322 + MTK_PIN_IES_SMT_SPEC(50, 50, 0x470, 14), 323 + MTK_PIN_IES_SMT_SPEC(51, 51, 0x470, 14), 324 + MTK_PIN_IES_SMT_SPEC(52, 52, 0x470, 14), 325 + MTK_PIN_IES_SMT_SPEC(53, 53, 0x470, 14), 326 + MTK_PIN_IES_SMT_SPEC(54, 54, 0x470, 14), 327 + MTK_PIN_IES_SMT_SPEC(55, 55, 0x470, 14), 328 + MTK_PIN_IES_SMT_SPEC(56, 56, 0x470, 14), 329 + MTK_PIN_IES_SMT_SPEC(57, 57, 0x470, 15), 330 + MTK_PIN_IES_SMT_SPEC(58, 58, 0x470, 15), 331 + MTK_PIN_IES_SMT_SPEC(59, 59, 0x470, 16), 332 + MTK_PIN_IES_SMT_SPEC(60, 60, 0x470, 16), 333 + MTK_PIN_IES_SMT_SPEC(61, 61, 0x470, 17), 334 + MTK_PIN_IES_SMT_SPEC(62, 62, 0x470, 17), 335 + MTK_PIN_IES_SMT_SPEC(63, 63, 0x470, 18), 336 + MTK_PIN_IES_SMT_SPEC(64, 64, 0x470, 18), 337 + MTK_PIN_IES_SMT_SPEC(65, 65, 0x470, 19), 338 + MTK_PIN_IES_SMT_SPEC(66, 66, 0x470, 19), 339 + MTK_PIN_IES_SMT_SPEC(67, 67, 0x470, 19), 340 + MTK_PIN_IES_SMT_SPEC(68, 68, 0x470, 19), 341 + MTK_PIN_IES_SMT_SPEC(69, 69, 0x470, 19), 342 + MTK_PIN_IES_SMT_SPEC(70, 70, 0x470, 19), 343 + MTK_PIN_IES_SMT_SPEC(71, 71, 0x470, 20), 344 + MTK_PIN_IES_SMT_SPEC(72, 72, 0x470, 20), 345 + MTK_PIN_IES_SMT_SPEC(73, 73, 0x470, 20), 346 + MTK_PIN_IES_SMT_SPEC(74, 74, 0x470, 20), 347 + MTK_PIN_IES_SMT_SPEC(75, 75, 0x470, 20), 348 + MTK_PIN_IES_SMT_SPEC(76, 76, 0x470, 20), 349 + MTK_PIN_IES_SMT_SPEC(77, 77, 0x470, 20), 350 + MTK_PIN_IES_SMT_SPEC(78, 78, 0x470, 20), 351 + MTK_PIN_IES_SMT_SPEC(79, 79, 0x470, 20), 352 + MTK_PIN_IES_SMT_SPEC(80, 80, 0x470, 21), 353 + MTK_PIN_IES_SMT_SPEC(81, 81, 0x470, 22), 354 + MTK_PIN_IES_SMT_SPEC(82, 82, 0x470, 23), 355 + MTK_PIN_IES_SMT_SPEC(83, 83, 0x470, 24), 356 + MTK_PIN_IES_SMT_SPEC(84, 84, 0x470, 25), 357 + MTK_PIN_IES_SMT_SPEC(85, 85, 0x470, 26), 358 + MTK_PIN_IES_SMT_SPEC(86, 86, 0x470, 27), 359 + MTK_PIN_IES_SMT_SPEC(87, 87, 0x470, 28), 360 + MTK_PIN_IES_SMT_SPEC(88, 88, 0x470, 29), 361 + MTK_PIN_IES_SMT_SPEC(89, 89, 0x470, 30), 362 + MTK_PIN_IES_SMT_SPEC(90, 90, 0x470, 31), 363 + MTK_PIN_IES_SMT_SPEC(91, 91, 0x480, 0), 364 + MTK_PIN_IES_SMT_SPEC(92, 92, 0x480, 1), 365 + MTK_PIN_IES_SMT_SPEC(93, 93, 0x480, 2), 366 + MTK_PIN_IES_SMT_SPEC(94, 94, 0x480, 3), 367 + MTK_PIN_IES_SMT_SPEC(95, 95, 0x480, 4), 368 + MTK_PIN_IES_SMT_SPEC(96, 96, 0x480, 5), 369 + MTK_PIN_IES_SMT_SPEC(97, 97, 0x480, 6), 370 + MTK_PIN_IES_SMT_SPEC(98, 98, 0x480, 7), 371 + MTK_PIN_IES_SMT_SPEC(99, 99, 0x480, 8), 372 + MTK_PIN_IES_SMT_SPEC(100, 100, 0x480, 9), 373 + MTK_PIN_IES_SMT_SPEC(101, 101, 0x480, 10), 374 + MTK_PIN_IES_SMT_SPEC(102, 102, 0x480, 11), 375 + MTK_PIN_IES_SMT_SPEC(103, 103, 0x480, 12), 376 + MTK_PIN_IES_SMT_SPEC(104, 104, 0x480, 13), 377 + MTK_PIN_IES_SMT_SPEC(105, 105, 0x480, 14), 378 + MTK_PIN_IES_SMT_SPEC(106, 106, 0x480, 14), 379 + MTK_PIN_IES_SMT_SPEC(107, 107, 0x480, 14), 380 + MTK_PIN_IES_SMT_SPEC(108, 108, 0x480, 14), 381 + MTK_PIN_IES_SMT_SPEC(109, 109, 0x480, 14), 382 + MTK_PIN_IES_SMT_SPEC(110, 110, 0x480, 15), 383 + MTK_PIN_IES_SMT_SPEC(111, 111, 0x480, 15), 384 + MTK_PIN_IES_SMT_SPEC(112, 112, 0x480, 15), 385 + MTK_PIN_IES_SMT_SPEC(113, 113, 0x480, 15), 386 + MTK_PIN_IES_SMT_SPEC(114, 114, 0x480, 16), 387 + MTK_PIN_IES_SMT_SPEC(115, 115, 0x480, 16), 388 + MTK_PIN_IES_SMT_SPEC(116, 116, 0x480, 16), 389 + MTK_PIN_IES_SMT_SPEC(117, 117, 0x480, 17), 390 + MTK_PIN_IES_SMT_SPEC(118, 118, 0x480, 17), 391 + MTK_PIN_IES_SMT_SPEC(119, 119, 0x480, 17), 392 + MTK_PIN_IES_SMT_SPEC(120, 120, 0x480, 18), 393 + MTK_PIN_IES_SMT_SPEC(121, 121, 0x480, 18), 394 + MTK_PIN_IES_SMT_SPEC(122, 122, 0x480, 18), 395 + MTK_PIN_IES_SMT_SPEC(123, 123, 0x480, 19), 396 + MTK_PIN_IES_SMT_SPEC(124, 124, 0x480, 19), 397 + MTK_PIN_IES_SMT_SPEC(125, 125, 0x480, 19), 398 + MTK_PIN_IES_SMT_SPEC(126, 126, 0x480, 20), 399 + MTK_PIN_IES_SMT_SPEC(127, 127, 0x480, 20), 400 + MTK_PIN_IES_SMT_SPEC(128, 128, 0x480, 20), 401 + MTK_PIN_IES_SMT_SPEC(129, 129, 0x480, 21), 402 + MTK_PIN_IES_SMT_SPEC(130, 130, 0x480, 21), 403 + MTK_PIN_IES_SMT_SPEC(131, 131, 0x480, 21), 404 + MTK_PIN_IES_SMT_SPEC(132, 132, 0x480, 21), 405 + MTK_PIN_IES_SMT_SPEC(133, 133, 0x480, 21), 406 + MTK_PIN_IES_SMT_SPEC(134, 134, 0x480, 21), 407 + MTK_PIN_IES_SMT_SPEC(135, 135, 0x480, 21), 408 + MTK_PIN_IES_SMT_SPEC(136, 136, 0x480, 22), 409 + MTK_PIN_IES_SMT_SPEC(137, 137, 0x480, 22), 410 + MTK_PIN_IES_SMT_SPEC(138, 138, 0x480, 22), 411 + MTK_PIN_IES_SMT_SPEC(139, 139, 0x480, 22), 412 + MTK_PIN_IES_SMT_SPEC(140, 140, 0x480, 22), 413 + MTK_PIN_IES_SMT_SPEC(141, 141, 0x480, 22), 414 + MTK_PIN_IES_SMT_SPEC(142, 142, 0x480, 22), 415 + MTK_PIN_IES_SMT_SPEC(143, 143, 0x480, 22), 416 + MTK_PIN_IES_SMT_SPEC(144, 144, 0x480, 22), 417 + }; 418 + 419 + static int mt8365_spec_pull_set(struct regmap *regmap, unsigned int pin, 420 + unsigned char align, bool isup, unsigned int r1r0) 421 + { 422 + return mtk_pctrl_spec_pull_set_samereg(regmap, mt8365_spec_pupd, 423 + ARRAY_SIZE(mt8365_spec_pupd), pin, align, isup, r1r0); 424 + } 425 + 426 + static int mt8365_ies_smt_set(struct regmap *regmap, unsigned int pin, 427 + unsigned char align, int value, enum pin_config_param arg) 428 + { 429 + if (arg == PIN_CONFIG_INPUT_ENABLE) 430 + return mtk_pconf_spec_set_ies_smt_range(regmap, mt8365_ies_set, 431 + ARRAY_SIZE(mt8365_ies_set), pin, align, value); 432 + else if (arg == PIN_CONFIG_INPUT_SCHMITT_ENABLE) 433 + return mtk_pconf_spec_set_ies_smt_range(regmap, mt8365_smt_set, 434 + ARRAY_SIZE(mt8365_smt_set), pin, align, value); 435 + return -EINVAL; 436 + } 437 + 438 + static const struct mtk_pinctrl_devdata mt8365_pinctrl_data = { 439 + .pins = mtk_pins_mt8365, 440 + .npins = ARRAY_SIZE(mtk_pins_mt8365), 441 + .grp_desc = mt8365_drv_grp, 442 + .n_grp_cls = ARRAY_SIZE(mt8365_drv_grp), 443 + .pin_drv_grp = mt8365_pin_drv, 444 + .n_pin_drv_grps = ARRAY_SIZE(mt8365_pin_drv), 445 + .spec_pull_set = mt8365_spec_pull_set, 446 + .spec_ies_smt_set = mt8365_ies_smt_set, 447 + .dir_offset = 0x0140, 448 + .dout_offset = 0x00A0, 449 + .din_offset = 0x0000, 450 + .pinmux_offset = 0x01E0, 451 + .ies_offset = 0x0410, 452 + .smt_offset = 0x0470, 453 + .pullen_offset = 0x0860, 454 + .pullsel_offset = 0x0900, 455 + .drv_offset = 0x0710, 456 + .type1_start = 145, 457 + .type1_end = 145, 458 + .port_shf = 4, 459 + .port_mask = 0x1f, 460 + .port_align = 4, 461 + .mode_mask = 0x1f, 462 + .mode_per_reg = 10, 463 + .mode_shf = 5, 464 + .eint_hw = { 465 + .port_mask = 7, 466 + .ports = 5, 467 + .ap_num = 160, 468 + .db_cnt = 160, 469 + }, 470 + }; 471 + 472 + static int mtk_pinctrl_probe(struct platform_device *pdev) 473 + { 474 + return mtk_pctrl_init(pdev, &mt8365_pinctrl_data, NULL); 475 + } 476 + 477 + static const struct of_device_id mt8365_pctrl_match[] = { 478 + { 479 + .compatible = "mediatek,mt8365-pinctrl", 480 + }, 481 + {} 482 + }; 483 + 484 + static struct platform_driver mtk_pinctrl_driver = { 485 + .probe = mtk_pinctrl_probe, 486 + .driver = { 487 + .name = "mediatek-mt8365-pinctrl", 488 + .owner = THIS_MODULE, 489 + .of_match_table = mt8365_pctrl_match, 490 + .pm = &mtk_eint_pm_ops, 491 + }, 492 + }; 493 + 494 + static int __init mtk_pinctrl_init(void) 495 + { 496 + return platform_driver_register(&mtk_pinctrl_driver); 497 + } 498 + arch_initcall(mtk_pinctrl_init); 499 + 500 + MODULE_LICENSE("GPL"); 501 + MODULE_DESCRIPTION("MediaTek MT8365 Pinctrl Driver"); 502 + MODULE_AUTHOR("Zhiyong Tao <zhiyong.tao@mediatek.com>");
+3
drivers/pinctrl/mediatek/pinctrl-mt8516.c
··· 324 324 .port_shf = 4, 325 325 .port_mask = 0xf, 326 326 .port_align = 4, 327 + .mode_mask = 0xf, 328 + .mode_per_reg = 5, 329 + .mode_shf = 4, 327 330 .eint_hw = { 328 331 .port_mask = 7, 329 332 .ports = 6,
+10 -11
drivers/pinctrl/mediatek/pinctrl-mtk-common.c
··· 33 33 #include "mtk-eint.h" 34 34 #include "pinctrl-mtk-common.h" 35 35 36 - #define MAX_GPIO_MODE_PER_REG 5 37 36 #define GPIO_MODE_BITS 3 38 37 #define GPIO_MODE_PREFIX "GPIO" 39 38 ··· 60 61 static unsigned int mtk_get_port(struct mtk_pinctrl *pctl, unsigned long pin) 61 62 { 62 63 /* Different SoC has different mask and port shift. */ 63 - return ((pin >> 4) & pctl->devdata->port_mask) 64 + return ((pin >> pctl->devdata->mode_shf) & pctl->devdata->port_mask) 64 65 << pctl->devdata->port_shf; 65 66 } 66 67 ··· 73 74 struct mtk_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); 74 75 75 76 reg_addr = mtk_get_port(pctl, offset) + pctl->devdata->dir_offset; 76 - bit = BIT(offset & 0xf); 77 + bit = BIT(offset & pctl->devdata->mode_mask); 77 78 78 79 if (pctl->devdata->spec_dir_set) 79 80 pctl->devdata->spec_dir_set(&reg_addr, offset); ··· 95 96 struct mtk_pinctrl *pctl = gpiochip_get_data(chip); 96 97 97 98 reg_addr = mtk_get_port(pctl, offset) + pctl->devdata->dout_offset; 98 - bit = BIT(offset & 0xf); 99 + bit = BIT(offset & pctl->devdata->mode_mask); 99 100 100 101 if (value) 101 102 reg_addr = SET_ADDR(reg_addr, pctl); ··· 134 135 pin, pctl->devdata->port_align, value, arg); 135 136 } 136 137 137 - bit = BIT(pin & 0xf); 138 - 139 138 if (arg == PIN_CONFIG_INPUT_ENABLE) 140 139 offset = pctl->devdata->ies_offset; 141 140 else 142 141 offset = pctl->devdata->smt_offset; 142 + 143 + bit = BIT(offset & pctl->devdata->mode_mask); 143 144 144 145 if (value) 145 146 reg_addr = SET_ADDR(mtk_get_port(pctl, pin) + offset, pctl); ··· 310 311 return -EINVAL; 311 312 } 312 313 313 - bit = BIT(pin & 0xf); 314 + bit = BIT(pin & pctl->devdata->mode_mask); 314 315 if (enable) 315 316 reg_pullen = SET_ADDR(mtk_get_port(pctl, pin) + 316 317 pctl->devdata->pullen_offset, pctl); ··· 682 683 pctl->devdata->spec_pinmux_set(mtk_get_regmap(pctl, pin), 683 684 pin, mode); 684 685 685 - reg_addr = ((pin / MAX_GPIO_MODE_PER_REG) << pctl->devdata->port_shf) 686 + reg_addr = ((pin / pctl->devdata->mode_per_reg) << pctl->devdata->port_shf) 686 687 + pctl->devdata->pinmux_offset; 687 688 688 689 mode &= mask; 689 - bit = pin % MAX_GPIO_MODE_PER_REG; 690 + bit = pin % pctl->devdata->mode_per_reg; 690 691 mask <<= (GPIO_MODE_BITS * bit); 691 692 val = (mode << (GPIO_MODE_BITS * bit)); 692 693 return regmap_update_bits(mtk_get_regmap(pctl, pin), ··· 797 798 struct mtk_pinctrl *pctl = gpiochip_get_data(chip); 798 799 799 800 reg_addr = mtk_get_port(pctl, offset) + pctl->devdata->dir_offset; 800 - bit = BIT(offset & 0xf); 801 + bit = BIT(offset & pctl->devdata->mode_mask); 801 802 802 803 if (pctl->devdata->spec_dir_set) 803 804 pctl->devdata->spec_dir_set(&reg_addr, offset); ··· 819 820 reg_addr = mtk_get_port(pctl, offset) + 820 821 pctl->devdata->din_offset; 821 822 822 - bit = BIT(offset & 0xf); 823 + bit = BIT(offset & pctl->devdata->mode_mask); 823 824 regmap_read(pctl->regmap1, reg_addr, &read_val); 824 825 return !!(read_val & bit); 825 826 }
+3
drivers/pinctrl/mediatek/pinctrl-mtk-common.h
··· 254 254 unsigned char port_align; 255 255 struct mtk_eint_hw eint_hw; 256 256 struct mtk_eint_regs *eint_regs; 257 + unsigned int mode_mask; 258 + unsigned int mode_per_reg; 259 + unsigned int mode_shf; 257 260 }; 258 261 259 262 struct mtk_pinctrl {
+1511
drivers/pinctrl/mediatek/pinctrl-mtk-mt8365.h
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + /* 3 + * Copyright (C) 2018 MediaTek Inc. 4 + * Author: Zhiyong Tao <zhiyong.tao@mediatek.com> 5 + * 6 + */ 7 + 8 + #ifndef __PINCTRL_MTK_MT8365_H 9 + #define __PINCTRL_MTK_MT8365_H 10 + 11 + #include <linux/pinctrl/pinctrl.h> 12 + #include "pinctrl-mtk-common.h" 13 + 14 + static const struct mtk_desc_pin mtk_pins_mt8365[] = { 15 + MTK_PIN( 16 + PINCTRL_PIN(0, "GPIO0"), 17 + NULL, "mt8365", 18 + MTK_EINT_FUNCTION(0, 0), 19 + MTK_FUNCTION(0, "GPIO0"), 20 + MTK_FUNCTION(1, "DPI_D0"), 21 + MTK_FUNCTION(2, "PWM_A"), 22 + MTK_FUNCTION(3, "I2S2_BCK"), 23 + MTK_FUNCTION(4, "EXT_TXD0"), 24 + MTK_FUNCTION(5, "CONN_MCU_TDO"), 25 + MTK_FUNCTION(7, "DBG_MON_A0") 26 + ), 27 + MTK_PIN( 28 + PINCTRL_PIN(1, "GPIO1"), 29 + NULL, "mt8365", 30 + MTK_EINT_FUNCTION(0, 1), 31 + MTK_FUNCTION(0, "GPIO1"), 32 + MTK_FUNCTION(1, "DPI_D1"), 33 + MTK_FUNCTION(2, "PWM_B"), 34 + MTK_FUNCTION(3, "I2S2_LRCK"), 35 + MTK_FUNCTION(4, "EXT_TXD1"), 36 + MTK_FUNCTION(5, "CONN_MCU_DBGACK_N"), 37 + MTK_FUNCTION(7, "DBG_MON_A1") 38 + ), 39 + MTK_PIN( 40 + PINCTRL_PIN(2, "GPIO2"), 41 + NULL, "mt8365", 42 + MTK_EINT_FUNCTION(0, 2), 43 + MTK_FUNCTION(0, "GPIO2"), 44 + MTK_FUNCTION(1, "DPI_D2"), 45 + MTK_FUNCTION(2, "PWM_C"), 46 + MTK_FUNCTION(3, "I2S2_MCK"), 47 + MTK_FUNCTION(4, "EXT_TXD2"), 48 + MTK_FUNCTION(5, "CONN_MCU_DBGI_N"), 49 + MTK_FUNCTION(7, "DBG_MON_A2") 50 + ), 51 + MTK_PIN( 52 + PINCTRL_PIN(3, "GPIO3"), 53 + NULL, "mt8365", 54 + MTK_EINT_FUNCTION(0, 3), 55 + MTK_FUNCTION(0, "GPIO3"), 56 + MTK_FUNCTION(1, "DPI_D3"), 57 + MTK_FUNCTION(2, "CLKM0"), 58 + MTK_FUNCTION(3, "I2S2_DI"), 59 + MTK_FUNCTION(4, "EXT_TXD3"), 60 + MTK_FUNCTION(5, "CONN_MCU_TCK"), 61 + MTK_FUNCTION(6, "CONN_MCU_AICE_TCKC"), 62 + MTK_FUNCTION(7, "DBG_MON_A3") 63 + ), 64 + MTK_PIN( 65 + PINCTRL_PIN(4, "GPIO4"), 66 + NULL, "mt8365", 67 + MTK_EINT_FUNCTION(0, 4), 68 + MTK_FUNCTION(0, "GPIO4"), 69 + MTK_FUNCTION(1, "DPI_D4"), 70 + MTK_FUNCTION(2, "CLKM1"), 71 + MTK_FUNCTION(3, "I2S1_BCK"), 72 + MTK_FUNCTION(4, "EXT_TXC"), 73 + MTK_FUNCTION(5, "CONN_MCU_TDI"), 74 + MTK_FUNCTION(6, "VDEC_TEST_CK"), 75 + MTK_FUNCTION(7, "DBG_MON_A4") 76 + ), 77 + MTK_PIN( 78 + PINCTRL_PIN(5, "GPIO5"), 79 + NULL, "mt8365", 80 + MTK_EINT_FUNCTION(0, 5), 81 + MTK_FUNCTION(0, "GPIO5"), 82 + MTK_FUNCTION(1, "DPI_D5"), 83 + MTK_FUNCTION(2, "CLKM2"), 84 + MTK_FUNCTION(3, "I2S1_LRCK"), 85 + MTK_FUNCTION(4, "EXT_RXER"), 86 + MTK_FUNCTION(5, "CONN_MCU_TRST_B"), 87 + MTK_FUNCTION(6, "MM_TEST_CK"), 88 + MTK_FUNCTION(7, "DBG_MON_A5") 89 + ), 90 + MTK_PIN( 91 + PINCTRL_PIN(6, "GPIO6"), 92 + NULL, "mt8365", 93 + MTK_EINT_FUNCTION(0, 6), 94 + MTK_FUNCTION(0, "GPIO6"), 95 + MTK_FUNCTION(1, "DPI_D6"), 96 + MTK_FUNCTION(2, "CLKM3"), 97 + MTK_FUNCTION(3, "I2S1_MCK"), 98 + MTK_FUNCTION(4, "EXT_RXC"), 99 + MTK_FUNCTION(5, "CONN_MCU_TMS"), 100 + MTK_FUNCTION(6, "CONN_MCU_AICE_TMSC"), 101 + MTK_FUNCTION(7, "DBG_MON_A6") 102 + ), 103 + MTK_PIN( 104 + PINCTRL_PIN(7, "GPIO7"), 105 + NULL, "mt8365", 106 + MTK_EINT_FUNCTION(0, 7), 107 + MTK_FUNCTION(0, "GPIO7"), 108 + MTK_FUNCTION(1, "DPI_D7"), 109 + MTK_FUNCTION(3, "I2S1_DO"), 110 + MTK_FUNCTION(4, "EXT_RXDV"), 111 + MTK_FUNCTION(5, "CONN_DSP_JCK"), 112 + MTK_FUNCTION(7, "DBG_MON_A7") 113 + ), 114 + MTK_PIN( 115 + PINCTRL_PIN(8, "GPIO8"), 116 + NULL, "mt8365", 117 + MTK_EINT_FUNCTION(0, 8), 118 + MTK_FUNCTION(0, "GPIO8"), 119 + MTK_FUNCTION(1, "DPI_D8"), 120 + MTK_FUNCTION(2, "SPI_CLK"), 121 + MTK_FUNCTION(3, "I2S0_BCK"), 122 + MTK_FUNCTION(4, "EXT_RXD0"), 123 + MTK_FUNCTION(5, "CONN_DSP_JINTP"), 124 + MTK_FUNCTION(7, "DBG_MON_A8") 125 + ), 126 + MTK_PIN( 127 + PINCTRL_PIN(9, "GPIO9"), 128 + NULL, "mt8365", 129 + MTK_EINT_FUNCTION(0, 9), 130 + MTK_FUNCTION(0, "GPIO9"), 131 + MTK_FUNCTION(1, "DPI_D9"), 132 + MTK_FUNCTION(2, "SPI_CSB"), 133 + MTK_FUNCTION(3, "I2S0_LRCK"), 134 + MTK_FUNCTION(4, "EXT_RXD1"), 135 + MTK_FUNCTION(5, "CONN_DSP_JDI"), 136 + MTK_FUNCTION(7, "DBG_MON_A9") 137 + ), 138 + MTK_PIN( 139 + PINCTRL_PIN(10, "GPIO10"), 140 + NULL, "mt8365", 141 + MTK_EINT_FUNCTION(0, 10), 142 + MTK_FUNCTION(0, "GPIO10"), 143 + MTK_FUNCTION(1, "DPI_D10"), 144 + MTK_FUNCTION(2, "SPI_MI"), 145 + MTK_FUNCTION(3, "I2S0_MCK"), 146 + MTK_FUNCTION(4, "EXT_RXD2"), 147 + MTK_FUNCTION(5, "CONN_DSP_JMS"), 148 + MTK_FUNCTION(7, "DBG_MON_A10") 149 + ), 150 + MTK_PIN( 151 + PINCTRL_PIN(11, "GPIO11"), 152 + NULL, "mt8365", 153 + MTK_EINT_FUNCTION(0, 11), 154 + MTK_FUNCTION(0, "GPIO11"), 155 + MTK_FUNCTION(1, "DPI_D11"), 156 + MTK_FUNCTION(2, "SPI_MO"), 157 + MTK_FUNCTION(3, "I2S0_DI"), 158 + MTK_FUNCTION(4, "EXT_RXD3"), 159 + MTK_FUNCTION(5, "CONN_DSP_JDO"), 160 + MTK_FUNCTION(7, "DBG_MON_A11") 161 + ), 162 + MTK_PIN( 163 + PINCTRL_PIN(12, "GPIO12"), 164 + NULL, "mt8365", 165 + MTK_EINT_FUNCTION(0, 12), 166 + MTK_FUNCTION(0, "GPIO12"), 167 + MTK_FUNCTION(1, "DPI_DE"), 168 + MTK_FUNCTION(2, "UCTS1"), 169 + MTK_FUNCTION(3, "I2S3_BCK"), 170 + MTK_FUNCTION(4, "EXT_TXEN"), 171 + MTK_FUNCTION(5, "O_WIFI_TXD"), 172 + MTK_FUNCTION(7, "DBG_MON_A12") 173 + ), 174 + MTK_PIN( 175 + PINCTRL_PIN(13, "GPIO13"), 176 + NULL, "mt8365", 177 + MTK_EINT_FUNCTION(0, 13), 178 + MTK_FUNCTION(0, "GPIO13"), 179 + MTK_FUNCTION(1, "DPI_VSYNC"), 180 + MTK_FUNCTION(2, "URTS1"), 181 + MTK_FUNCTION(3, "I2S3_LRCK"), 182 + MTK_FUNCTION(4, "EXT_COL"), 183 + MTK_FUNCTION(5, "SPDIF_IN"), 184 + MTK_FUNCTION(7, "DBG_MON_A13") 185 + ), 186 + MTK_PIN( 187 + PINCTRL_PIN(14, "GPIO14"), 188 + NULL, "mt8365", 189 + MTK_EINT_FUNCTION(0, 14), 190 + MTK_FUNCTION(0, "GPIO14"), 191 + MTK_FUNCTION(1, "DPI_CK"), 192 + MTK_FUNCTION(2, "UCTS2"), 193 + MTK_FUNCTION(3, "I2S3_MCK"), 194 + MTK_FUNCTION(4, "EXT_MDIO"), 195 + MTK_FUNCTION(5, "SPDIF_OUT"), 196 + MTK_FUNCTION(6, "DVFSRC_EXT_REQ"), 197 + MTK_FUNCTION(7, "DBG_MON_A14") 198 + ), 199 + MTK_PIN( 200 + PINCTRL_PIN(15, "GPIO15"), 201 + NULL, "mt8365", 202 + MTK_EINT_FUNCTION(0, 15), 203 + MTK_FUNCTION(0, "GPIO15"), 204 + MTK_FUNCTION(1, "DPI_HSYNC"), 205 + MTK_FUNCTION(2, "URTS2"), 206 + MTK_FUNCTION(3, "I2S3_DO"), 207 + MTK_FUNCTION(4, "EXT_MDC"), 208 + MTK_FUNCTION(5, "IRRX"), 209 + MTK_FUNCTION(6, "EXT_FRAME_SYNC"), 210 + MTK_FUNCTION(7, "DBG_MON_A15") 211 + ), 212 + MTK_PIN( 213 + PINCTRL_PIN(16, "GPIO16"), 214 + NULL, "mt8365", 215 + MTK_EINT_FUNCTION(0, 16), 216 + MTK_FUNCTION(0, "GPIO16"), 217 + MTK_FUNCTION(1, "DPI_D12"), 218 + MTK_FUNCTION(2, "USB_DRVVBUS"), 219 + MTK_FUNCTION(3, "PWM_A"), 220 + MTK_FUNCTION(4, "CLKM0"), 221 + MTK_FUNCTION(5, "ANT_SEL0"), 222 + MTK_FUNCTION(6, "TSF_IN"), 223 + MTK_FUNCTION(7, "DBG_MON_A16") 224 + ), 225 + MTK_PIN( 226 + PINCTRL_PIN(17, "GPIO17"), 227 + NULL, "mt8365", 228 + MTK_EINT_FUNCTION(0, 17), 229 + MTK_FUNCTION(0, "GPIO17"), 230 + MTK_FUNCTION(1, "DPI_D13"), 231 + MTK_FUNCTION(2, "IDDIG"), 232 + MTK_FUNCTION(3, "PWM_B"), 233 + MTK_FUNCTION(4, "CLKM1"), 234 + MTK_FUNCTION(5, "ANT_SEL1"), 235 + MTK_FUNCTION(6, "DVFSRC_EXT_REQ"), 236 + MTK_FUNCTION(7, "DBG_MON_A17") 237 + ), 238 + MTK_PIN( 239 + PINCTRL_PIN(18, "GPIO18"), 240 + NULL, "mt8365", 241 + MTK_EINT_FUNCTION(0, 18), 242 + MTK_FUNCTION(0, "GPIO18"), 243 + MTK_FUNCTION(1, "DPI_D14"), 244 + MTK_FUNCTION(2, "EXT_FRAME_SYNC"), 245 + MTK_FUNCTION(3, "PWM_C"), 246 + MTK_FUNCTION(4, "CLKM2"), 247 + MTK_FUNCTION(5, "ANT_SEL2"), 248 + MTK_FUNCTION(6, "MFG_TEST_CK"), 249 + MTK_FUNCTION(7, "DBG_MON_A18") 250 + ), 251 + MTK_PIN( 252 + PINCTRL_PIN(19, "DISP_PWM"), 253 + NULL, "mt8365", 254 + MTK_EINT_FUNCTION(0, 19), 255 + MTK_FUNCTION(0, "GPIO19"), 256 + MTK_FUNCTION(1, "DISP_PWM"), 257 + MTK_FUNCTION(2, "PWM_A"), 258 + MTK_FUNCTION(7, "DBG_MON_A19") 259 + ), 260 + MTK_PIN( 261 + PINCTRL_PIN(20, "LCM_RST"), 262 + NULL, "mt8365", 263 + MTK_EINT_FUNCTION(0, 20), 264 + MTK_FUNCTION(0, "GPIO20"), 265 + MTK_FUNCTION(1, "LCM_RST"), 266 + MTK_FUNCTION(2, "PWM_B"), 267 + MTK_FUNCTION(7, "DBG_MON_A20") 268 + ), 269 + MTK_PIN( 270 + PINCTRL_PIN(21, "DSI_TE"), 271 + NULL, "mt8365", 272 + MTK_EINT_FUNCTION(0, 21), 273 + MTK_FUNCTION(0, "GPIO21"), 274 + MTK_FUNCTION(1, "DSI_TE"), 275 + MTK_FUNCTION(2, "PWM_C"), 276 + MTK_FUNCTION(3, "ANT_SEL0"), 277 + MTK_FUNCTION(4, "DVFSRC_EXT_REQ"), 278 + MTK_FUNCTION(7, "DBG_MON_A21") 279 + ), 280 + MTK_PIN( 281 + PINCTRL_PIN(22, "KPROW0"), 282 + NULL, "mt8365", 283 + MTK_EINT_FUNCTION(0, 22), 284 + MTK_FUNCTION(0, "GPIO22"), 285 + MTK_FUNCTION(1, "KPROW0"), 286 + MTK_FUNCTION(7, "DBG_MON_A22") 287 + ), 288 + MTK_PIN( 289 + PINCTRL_PIN(23, "KPROW1"), 290 + NULL, "mt8365", 291 + MTK_EINT_FUNCTION(0, 23), 292 + MTK_FUNCTION(0, "GPIO23"), 293 + MTK_FUNCTION(1, "KPROW1"), 294 + MTK_FUNCTION(2, "IDDIG"), 295 + MTK_FUNCTION(3, "WIFI_TXD"), 296 + MTK_FUNCTION(4, "CLKM3"), 297 + MTK_FUNCTION(5, "ANT_SEL1"), 298 + MTK_FUNCTION(6, "EXT_FRAME_SYNC"), 299 + MTK_FUNCTION(7, "DBG_MON_B0") 300 + ), 301 + MTK_PIN( 302 + PINCTRL_PIN(24, "KPCOL0"), 303 + NULL, "mt8365", 304 + MTK_EINT_FUNCTION(0, 24), 305 + MTK_FUNCTION(0, "GPIO24"), 306 + MTK_FUNCTION(1, "KPCOL0"), 307 + MTK_FUNCTION(7, "DBG_MON_A23") 308 + ), 309 + MTK_PIN( 310 + PINCTRL_PIN(25, "KPCOL1"), 311 + NULL, "mt8365", 312 + MTK_EINT_FUNCTION(0, 25), 313 + MTK_FUNCTION(0, "GPIO25"), 314 + MTK_FUNCTION(1, "KPCOL1"), 315 + MTK_FUNCTION(2, "USB_DRVVBUS"), 316 + MTK_FUNCTION(3, "APU_JTAG_TRST"), 317 + MTK_FUNCTION(4, "UDI_NTRST_XI"), 318 + MTK_FUNCTION(5, "DFD_NTRST_XI"), 319 + MTK_FUNCTION(6, "CONN_TEST_CK"), 320 + MTK_FUNCTION(7, "DBG_MON_B1") 321 + ), 322 + MTK_PIN( 323 + PINCTRL_PIN(26, "SPI_CS"), 324 + NULL, "mt8365", 325 + MTK_EINT_FUNCTION(0, 26), 326 + MTK_FUNCTION(0, "GPIO26"), 327 + MTK_FUNCTION(1, "SPI_CSB"), 328 + MTK_FUNCTION(3, "APU_JTAG_TMS"), 329 + MTK_FUNCTION(4, "UDI_TMS_XI"), 330 + MTK_FUNCTION(5, "DFD_TMS_XI"), 331 + MTK_FUNCTION(6, "CONN_TEST_CK"), 332 + MTK_FUNCTION(7, "DBG_MON_A24") 333 + ), 334 + MTK_PIN( 335 + PINCTRL_PIN(27, "SPI_CK"), 336 + NULL, "mt8365", 337 + MTK_EINT_FUNCTION(0, 27), 338 + MTK_FUNCTION(0, "GPIO27"), 339 + MTK_FUNCTION(1, "SPI_CLK"), 340 + MTK_FUNCTION(3, "APU_JTAG_TCK"), 341 + MTK_FUNCTION(4, "UDI_TCK_XI"), 342 + MTK_FUNCTION(5, "DFD_TCK_XI"), 343 + MTK_FUNCTION(6, "APU_TEST_CK"), 344 + MTK_FUNCTION(7, "DBG_MON_A25") 345 + ), 346 + MTK_PIN( 347 + PINCTRL_PIN(28, "SPI_MI"), 348 + NULL, "mt8365", 349 + MTK_EINT_FUNCTION(0, 28), 350 + MTK_FUNCTION(0, "GPIO28"), 351 + MTK_FUNCTION(1, "SPI_MI"), 352 + MTK_FUNCTION(2, "SPI_MO"), 353 + MTK_FUNCTION(3, "APU_JTAG_TDI"), 354 + MTK_FUNCTION(4, "UDI_TDI_XI"), 355 + MTK_FUNCTION(5, "DFD_TDI_XI"), 356 + MTK_FUNCTION(6, "DSP_TEST_CK"), 357 + MTK_FUNCTION(7, "DBG_MON_A26") 358 + ), 359 + MTK_PIN( 360 + PINCTRL_PIN(29, "SPI_MO"), 361 + NULL, "mt8365", 362 + MTK_EINT_FUNCTION(0, 29), 363 + MTK_FUNCTION(0, "GPIO29"), 364 + MTK_FUNCTION(1, "SPI_MO"), 365 + MTK_FUNCTION(2, "SPI_MI"), 366 + MTK_FUNCTION(3, "APU_JTAG_TDO"), 367 + MTK_FUNCTION(4, "UDI_TDO"), 368 + MTK_FUNCTION(5, "DFD_TDO"), 369 + MTK_FUNCTION(6, "DVFSRC_EXT_REQ"), 370 + MTK_FUNCTION(7, "DBG_MON_A27") 371 + ), 372 + MTK_PIN( 373 + PINCTRL_PIN(30, "JTMS"), 374 + NULL, "mt8365", 375 + MTK_EINT_FUNCTION(0, 30), 376 + MTK_FUNCTION(0, "GPIO30"), 377 + MTK_FUNCTION(1, "JTMS"), 378 + MTK_FUNCTION(2, "DFD_TMS_XI"), 379 + MTK_FUNCTION(3, "UDI_TMS_XI"), 380 + MTK_FUNCTION(4, "MCU_SPM_TMS"), 381 + MTK_FUNCTION(5, "CONN_MCU_TMS"), 382 + MTK_FUNCTION(6, "CONN_MCU_AICE_TMSC") 383 + ), 384 + MTK_PIN( 385 + PINCTRL_PIN(31, "JTCK"), 386 + NULL, "mt8365", 387 + MTK_EINT_FUNCTION(0, 31), 388 + MTK_FUNCTION(0, "GPIO31"), 389 + MTK_FUNCTION(1, "JTCK"), 390 + MTK_FUNCTION(2, "DFD_TCK_XI"), 391 + MTK_FUNCTION(3, "UDI_TCK_XI"), 392 + MTK_FUNCTION(4, "MCU_SPM_TCK"), 393 + MTK_FUNCTION(5, "CONN_MCU_TCK"), 394 + MTK_FUNCTION(6, "CONN_MCU_AICE_TCKC") 395 + ), 396 + MTK_PIN( 397 + PINCTRL_PIN(32, "JTDI"), 398 + NULL, "mt8365", 399 + MTK_EINT_FUNCTION(0, 32), 400 + MTK_FUNCTION(0, "GPIO32"), 401 + MTK_FUNCTION(1, "JTDI"), 402 + MTK_FUNCTION(2, "DFD_TDI_XI"), 403 + MTK_FUNCTION(3, "UDI_TDI_XI"), 404 + MTK_FUNCTION(4, "MCU_SPM_TDI"), 405 + MTK_FUNCTION(5, "CONN_MCU_TDI") 406 + ), 407 + MTK_PIN( 408 + PINCTRL_PIN(33, "JTDO"), 409 + NULL, "mt8365", 410 + MTK_EINT_FUNCTION(0, 33), 411 + MTK_FUNCTION(0, "GPIO33"), 412 + MTK_FUNCTION(1, "JTDO"), 413 + MTK_FUNCTION(2, "DFD_TDO"), 414 + MTK_FUNCTION(3, "UDI_TDO"), 415 + MTK_FUNCTION(4, "MCU_SPM_TDO"), 416 + MTK_FUNCTION(5, "CONN_MCU_TDO") 417 + ), 418 + MTK_PIN( 419 + PINCTRL_PIN(34, "JTRST"), 420 + NULL, "mt8365", 421 + MTK_EINT_FUNCTION(0, 34), 422 + MTK_FUNCTION(0, "GPIO34"), 423 + MTK_FUNCTION(1, "JTRST"), 424 + MTK_FUNCTION(2, "DFD_NTRST_XI"), 425 + MTK_FUNCTION(3, "UDI_NTRST_XI"), 426 + MTK_FUNCTION(4, "MCU_SPM_NTRST"), 427 + MTK_FUNCTION(5, "CONN_MCU_TRST_B") 428 + ), 429 + MTK_PIN( 430 + PINCTRL_PIN(35, "URXD0"), 431 + NULL, "mt8365", 432 + MTK_EINT_FUNCTION(0, 35), 433 + MTK_FUNCTION(0, "GPIO35"), 434 + MTK_FUNCTION(1, "URXD0"), 435 + MTK_FUNCTION(2, "UTXD0"), 436 + MTK_FUNCTION(7, "DSP_URXD0") 437 + ), 438 + MTK_PIN( 439 + PINCTRL_PIN(36, "UTXD0"), 440 + NULL, "mt8365", 441 + MTK_EINT_FUNCTION(0, 36), 442 + MTK_FUNCTION(0, "GPIO36"), 443 + MTK_FUNCTION(1, "UTXD0"), 444 + MTK_FUNCTION(2, "URXD0"), 445 + MTK_FUNCTION(7, "DSP_UTXD0") 446 + ), 447 + MTK_PIN( 448 + PINCTRL_PIN(37, "URXD1"), 449 + NULL, "mt8365", 450 + MTK_EINT_FUNCTION(0, 37), 451 + MTK_FUNCTION(0, "GPIO37"), 452 + MTK_FUNCTION(1, "URXD1"), 453 + MTK_FUNCTION(2, "UTXD1"), 454 + MTK_FUNCTION(3, "UCTS2"), 455 + MTK_FUNCTION(4, "DVFSRC_EXT_REQ"), 456 + MTK_FUNCTION(5, "CONN_UART0_RXD"), 457 + MTK_FUNCTION(6, "I2S0_MCK"), 458 + MTK_FUNCTION(7, "DSP_URXD0") 459 + ), 460 + MTK_PIN( 461 + PINCTRL_PIN(38, "UTXD1"), 462 + NULL, "mt8365", 463 + MTK_EINT_FUNCTION(0, 38), 464 + MTK_FUNCTION(0, "GPIO38"), 465 + MTK_FUNCTION(1, "UTXD1"), 466 + MTK_FUNCTION(2, "URXD1"), 467 + MTK_FUNCTION(3, "URTS2"), 468 + MTK_FUNCTION(4, "ANT_SEL2"), 469 + MTK_FUNCTION(5, "CONN_UART0_TXD"), 470 + MTK_FUNCTION(6, "I2S1_MCK"), 471 + MTK_FUNCTION(7, "DSP_UTXD0") 472 + ), 473 + MTK_PIN( 474 + PINCTRL_PIN(39, "URXD2"), 475 + NULL, "mt8365", 476 + MTK_EINT_FUNCTION(0, 39), 477 + MTK_FUNCTION(0, "GPIO39"), 478 + MTK_FUNCTION(1, "URXD2"), 479 + MTK_FUNCTION(2, "UTXD2"), 480 + MTK_FUNCTION(3, "UCTS1"), 481 + MTK_FUNCTION(4, "IDDIG"), 482 + MTK_FUNCTION(5, "CONN_MCU_DBGACK_N"), 483 + MTK_FUNCTION(6, "I2S2_MCK"), 484 + MTK_FUNCTION(7, "DSP_URXD0") 485 + ), 486 + MTK_PIN( 487 + PINCTRL_PIN(40, "UTXD2"), 488 + NULL, "mt8365", 489 + MTK_EINT_FUNCTION(0, 40), 490 + MTK_FUNCTION(0, "GPIO40"), 491 + MTK_FUNCTION(1, "UTXD2"), 492 + MTK_FUNCTION(2, "URXD2"), 493 + MTK_FUNCTION(3, "URTS1"), 494 + MTK_FUNCTION(4, "USB_DRVVBUS"), 495 + MTK_FUNCTION(5, "CONN_MCU_DBGI_N"), 496 + MTK_FUNCTION(6, "I2S3_MCK"), 497 + MTK_FUNCTION(7, "DSP_UTXD0") 498 + ), 499 + MTK_PIN( 500 + PINCTRL_PIN(41, "PWRAP_SPI0_MI"), 501 + NULL, "mt8365", 502 + MTK_EINT_FUNCTION(0, 41), 503 + MTK_FUNCTION(0, "GPIO41"), 504 + MTK_FUNCTION(1, "PWRAP_SPI0_MI"), 505 + MTK_FUNCTION(2, "PWRAP_SPI0_MO") 506 + ), 507 + MTK_PIN( 508 + PINCTRL_PIN(42, "PWRAP_SPI0_MO"), 509 + NULL, "mt8365", 510 + MTK_EINT_FUNCTION(0, 42), 511 + MTK_FUNCTION(0, "GPIO42"), 512 + MTK_FUNCTION(1, "PWRAP_SPI0_MO"), 513 + MTK_FUNCTION(2, "PWRAP_SPI0_MI") 514 + ), 515 + MTK_PIN( 516 + PINCTRL_PIN(43, "PWRAP_SPI0_CK"), 517 + NULL, "mt8365", 518 + MTK_EINT_FUNCTION(0, 43), 519 + MTK_FUNCTION(0, "GPIO43"), 520 + MTK_FUNCTION(1, "PWRAP_SPI0_CK") 521 + ), 522 + MTK_PIN( 523 + PINCTRL_PIN(44, "PWRAP_SPI0_CSN"), 524 + NULL, "mt8365", 525 + MTK_EINT_FUNCTION(0, 44), 526 + MTK_FUNCTION(0, "GPIO44"), 527 + MTK_FUNCTION(1, "PWRAP_SPI0_CSN") 528 + ), 529 + MTK_PIN( 530 + PINCTRL_PIN(45, "RTC32K_CK"), 531 + NULL, "mt8365", 532 + MTK_EINT_FUNCTION(0, 45), 533 + MTK_FUNCTION(0, "GPIO45"), 534 + MTK_FUNCTION(1, "RTC32K_CK") 535 + ), 536 + MTK_PIN( 537 + PINCTRL_PIN(46, "WATCHDOG"), 538 + NULL, "mt8365", 539 + MTK_EINT_FUNCTION(0, 46), 540 + MTK_FUNCTION(0, "GPIO46"), 541 + MTK_FUNCTION(1, "WATCHDOG") 542 + ), 543 + MTK_PIN( 544 + PINCTRL_PIN(47, "SRCLKENA0"), 545 + NULL, "mt8365", 546 + MTK_EINT_FUNCTION(0, 47), 547 + MTK_FUNCTION(0, "GPIO47"), 548 + MTK_FUNCTION(1, "SRCLKENA0"), 549 + MTK_FUNCTION(2, "SRCLKENA1") 550 + ), 551 + MTK_PIN( 552 + PINCTRL_PIN(48, "SRCLKENA1"), 553 + NULL, "mt8365", 554 + MTK_EINT_FUNCTION(0, 48), 555 + MTK_FUNCTION(0, "GPIO48"), 556 + MTK_FUNCTION(1, "SRCLKENA1") 557 + ), 558 + MTK_PIN( 559 + PINCTRL_PIN(49, "AUD_CLK_MOSI"), 560 + NULL, "mt8365", 561 + MTK_EINT_FUNCTION(0, 49), 562 + MTK_FUNCTION(0, "GPIO49"), 563 + MTK_FUNCTION(1, "AUD_CLK_MOSI"), 564 + MTK_FUNCTION(2, "AUD_CLK_MISO"), 565 + MTK_FUNCTION(3, "I2S1_MCK") 566 + ), 567 + MTK_PIN( 568 + PINCTRL_PIN(50, "AUD_SYNC_MOSI"), 569 + NULL, "mt8365", 570 + MTK_EINT_FUNCTION(0, 50), 571 + MTK_FUNCTION(0, "GPIO50"), 572 + MTK_FUNCTION(1, "AUD_SYNC_MOSI"), 573 + MTK_FUNCTION(2, "AUD_SYNC_MISO"), 574 + MTK_FUNCTION(3, "I2S1_BCK") 575 + ), 576 + MTK_PIN( 577 + PINCTRL_PIN(51, "AUD_DAT_MOSI0"), 578 + NULL, "mt8365", 579 + MTK_EINT_FUNCTION(0, 51), 580 + MTK_FUNCTION(0, "GPIO51"), 581 + MTK_FUNCTION(1, "AUD_DAT_MOSI0"), 582 + MTK_FUNCTION(2, "AUD_DAT_MISO0"), 583 + MTK_FUNCTION(3, "I2S1_LRCK") 584 + ), 585 + MTK_PIN( 586 + PINCTRL_PIN(52, "AUD_DAT_MOSI1"), 587 + NULL, "mt8365", 588 + MTK_EINT_FUNCTION(0, 52), 589 + MTK_FUNCTION(0, "GPIO52"), 590 + MTK_FUNCTION(1, "AUD_DAT_MOSI1"), 591 + MTK_FUNCTION(2, "AUD_DAT_MISO1"), 592 + MTK_FUNCTION(3, "I2S1_DO") 593 + ), 594 + MTK_PIN( 595 + PINCTRL_PIN(53, "AUD_CLK_MISO"), 596 + NULL, "mt8365", 597 + MTK_EINT_FUNCTION(0, 53), 598 + MTK_FUNCTION(0, "GPIO53"), 599 + MTK_FUNCTION(1, "AUD_CLK_MISO"), 600 + MTK_FUNCTION(2, "AUD_CLK_MOSI"), 601 + MTK_FUNCTION(3, "I2S2_MCK") 602 + ), 603 + MTK_PIN( 604 + PINCTRL_PIN(54, "AUD_SYNC_MISO"), 605 + NULL, "mt8365", 606 + MTK_EINT_FUNCTION(0, 54), 607 + MTK_FUNCTION(0, "GPIO54"), 608 + MTK_FUNCTION(1, "AUD_SYNC_MISO"), 609 + MTK_FUNCTION(2, "AUD_SYNC_MOSI"), 610 + MTK_FUNCTION(3, "I2S2_BCK") 611 + ), 612 + MTK_PIN( 613 + PINCTRL_PIN(55, "AUD_DAT_MISO0"), 614 + NULL, "mt8365", 615 + MTK_EINT_FUNCTION(0, 55), 616 + MTK_FUNCTION(0, "GPIO55"), 617 + MTK_FUNCTION(1, "AUD_DAT_MISO0"), 618 + MTK_FUNCTION(2, "AUD_DAT_MOSI0"), 619 + MTK_FUNCTION(3, "I2S2_LRCK") 620 + ), 621 + MTK_PIN( 622 + PINCTRL_PIN(56, "AUD_DAT_MISO1"), 623 + NULL, "mt8365", 624 + MTK_EINT_FUNCTION(0, 56), 625 + MTK_FUNCTION(0, "GPIO56"), 626 + MTK_FUNCTION(1, "AUD_DAT_MISO1"), 627 + MTK_FUNCTION(2, "AUD_DAT_MOSI1"), 628 + MTK_FUNCTION(3, "I2S2_DI") 629 + ), 630 + MTK_PIN( 631 + PINCTRL_PIN(57, "SDA0"), 632 + NULL, "mt8365", 633 + MTK_EINT_FUNCTION(0, 57), 634 + MTK_FUNCTION(0, "GPIO57"), 635 + MTK_FUNCTION(1, "SDA0_0") 636 + ), 637 + MTK_PIN( 638 + PINCTRL_PIN(58, "SCL0"), 639 + NULL, "mt8365", 640 + MTK_EINT_FUNCTION(0, 58), 641 + MTK_FUNCTION(0, "GPIO58"), 642 + MTK_FUNCTION(1, "SCL0_0") 643 + ), 644 + MTK_PIN( 645 + PINCTRL_PIN(59, "SDA1"), 646 + NULL, "mt8365", 647 + MTK_EINT_FUNCTION(0, 59), 648 + MTK_FUNCTION(0, "GPIO59"), 649 + MTK_FUNCTION(1, "SDA1_0"), 650 + MTK_FUNCTION(6, "USB_SDA"), 651 + MTK_FUNCTION(7, "DBG_SDA") 652 + ), 653 + MTK_PIN( 654 + PINCTRL_PIN(60, "SCL1"), 655 + NULL, "mt8365", 656 + MTK_EINT_FUNCTION(0, 60), 657 + MTK_FUNCTION(0, "GPIO60"), 658 + MTK_FUNCTION(1, "SCL1_0"), 659 + MTK_FUNCTION(6, "USB_SCL"), 660 + MTK_FUNCTION(7, "DBG_SCL") 661 + ), 662 + MTK_PIN( 663 + PINCTRL_PIN(61, "SDA2"), 664 + NULL, "mt8365", 665 + MTK_EINT_FUNCTION(0, 61), 666 + MTK_FUNCTION(0, "GPIO61"), 667 + MTK_FUNCTION(1, "SDA2_0") 668 + ), 669 + MTK_PIN( 670 + PINCTRL_PIN(62, "SCL2"), 671 + NULL, "mt8365", 672 + MTK_EINT_FUNCTION(0, 62), 673 + MTK_FUNCTION(0, "GPIO62"), 674 + MTK_FUNCTION(1, "SCL2_0") 675 + ), 676 + MTK_PIN( 677 + PINCTRL_PIN(63, "SDA3"), 678 + NULL, "mt8365", 679 + MTK_EINT_FUNCTION(0, 63), 680 + MTK_FUNCTION(0, "GPIO63"), 681 + MTK_FUNCTION(1, "SDA3_0") 682 + ), 683 + MTK_PIN( 684 + PINCTRL_PIN(64, "SCL3"), 685 + NULL, "mt8365", 686 + MTK_EINT_FUNCTION(0, 64), 687 + MTK_FUNCTION(0, "GPIO64"), 688 + MTK_FUNCTION(1, "SCL3_0") 689 + ), 690 + MTK_PIN( 691 + PINCTRL_PIN(65, "CMMCLK0"), 692 + NULL, "mt8365", 693 + MTK_EINT_FUNCTION(0, 65), 694 + MTK_FUNCTION(0, "GPIO65"), 695 + MTK_FUNCTION(1, "CMMCLK0"), 696 + MTK_FUNCTION(2, "CMMCLK1"), 697 + MTK_FUNCTION(7, "DBG_MON_A28") 698 + ), 699 + MTK_PIN( 700 + PINCTRL_PIN(66, "CMMCLK1"), 701 + NULL, "mt8365", 702 + MTK_EINT_FUNCTION(0, 66), 703 + MTK_FUNCTION(0, "GPIO66"), 704 + MTK_FUNCTION(1, "CMMCLK1"), 705 + MTK_FUNCTION(2, "CMMCLK0"), 706 + MTK_FUNCTION(7, "DBG_MON_B2") 707 + ), 708 + MTK_PIN( 709 + PINCTRL_PIN(67, "CMPCLK"), 710 + NULL, "mt8365", 711 + MTK_EINT_FUNCTION(0, 67), 712 + MTK_FUNCTION(0, "GPIO67"), 713 + MTK_FUNCTION(1, "CMPCLK"), 714 + MTK_FUNCTION(2, "ANT_SEL0"), 715 + MTK_FUNCTION(4, "TDM_RX_BCK"), 716 + MTK_FUNCTION(5, "I2S0_BCK"), 717 + MTK_FUNCTION(7, "DBG_MON_B3") 718 + ), 719 + MTK_PIN( 720 + PINCTRL_PIN(68, "CMDAT0"), 721 + NULL, "mt8365", 722 + MTK_EINT_FUNCTION(0, 68), 723 + MTK_FUNCTION(0, "GPIO68"), 724 + MTK_FUNCTION(1, "CMDAT0"), 725 + MTK_FUNCTION(2, "ANT_SEL1"), 726 + MTK_FUNCTION(4, "TDM_RX_LRCK"), 727 + MTK_FUNCTION(5, "I2S0_LRCK"), 728 + MTK_FUNCTION(7, "DBG_MON_B4") 729 + ), 730 + MTK_PIN( 731 + PINCTRL_PIN(69, "CMDAT1"), 732 + NULL, "mt8365", 733 + MTK_EINT_FUNCTION(0, 69), 734 + MTK_FUNCTION(0, "GPIO69"), 735 + MTK_FUNCTION(1, "CMDAT1"), 736 + MTK_FUNCTION(2, "ANT_SEL2"), 737 + MTK_FUNCTION(3, "DVFSRC_EXT_REQ"), 738 + MTK_FUNCTION(4, "TDM_RX_MCK"), 739 + MTK_FUNCTION(5, "I2S0_MCK"), 740 + MTK_FUNCTION(7, "DBG_MON_B5") 741 + ), 742 + MTK_PIN( 743 + PINCTRL_PIN(70, "CMDAT2"), 744 + NULL, "mt8365", 745 + MTK_EINT_FUNCTION(0, 70), 746 + MTK_FUNCTION(0, "GPIO70"), 747 + MTK_FUNCTION(1, "CMDAT2"), 748 + MTK_FUNCTION(2, "ANT_SEL3"), 749 + MTK_FUNCTION(4, "TDM_RX_DI"), 750 + MTK_FUNCTION(5, "I2S0_DI"), 751 + MTK_FUNCTION(7, "DBG_MON_B6") 752 + ), 753 + MTK_PIN( 754 + PINCTRL_PIN(71, "CMDAT3"), 755 + NULL, "mt8365", 756 + MTK_EINT_FUNCTION(0, 71), 757 + MTK_FUNCTION(0, "GPIO71"), 758 + MTK_FUNCTION(1, "CMDAT3"), 759 + MTK_FUNCTION(2, "ANT_SEL4"), 760 + MTK_FUNCTION(7, "DBG_MON_B7") 761 + ), 762 + MTK_PIN( 763 + PINCTRL_PIN(72, "CMDAT4"), 764 + NULL, "mt8365", 765 + MTK_EINT_FUNCTION(0, 72), 766 + MTK_FUNCTION(0, "GPIO72"), 767 + MTK_FUNCTION(1, "CMDAT4"), 768 + MTK_FUNCTION(2, "ANT_SEL5"), 769 + MTK_FUNCTION(5, "I2S3_BCK"), 770 + MTK_FUNCTION(7, "DBG_MON_B8") 771 + ), 772 + MTK_PIN( 773 + PINCTRL_PIN(73, "CMDAT5"), 774 + NULL, "mt8365", 775 + MTK_EINT_FUNCTION(0, 73), 776 + MTK_FUNCTION(0, "GPIO73"), 777 + MTK_FUNCTION(1, "CMDAT5"), 778 + MTK_FUNCTION(2, "ANT_SEL6"), 779 + MTK_FUNCTION(5, "I2S3_LRCK"), 780 + MTK_FUNCTION(7, "DBG_MON_B9") 781 + ), 782 + MTK_PIN( 783 + PINCTRL_PIN(74, "CMDAT6"), 784 + NULL, "mt8365", 785 + MTK_EINT_FUNCTION(0, 74), 786 + MTK_FUNCTION(0, "GPIO74"), 787 + MTK_FUNCTION(1, "CMDAT6"), 788 + MTK_FUNCTION(2, "ANT_SEL7"), 789 + MTK_FUNCTION(5, "I2S3_MCK"), 790 + MTK_FUNCTION(7, "DBG_MON_B10") 791 + ), 792 + MTK_PIN( 793 + PINCTRL_PIN(75, "CMDAT7"), 794 + NULL, "mt8365", 795 + MTK_EINT_FUNCTION(0, 75), 796 + MTK_FUNCTION(0, "GPIO75"), 797 + MTK_FUNCTION(1, "CMDAT7"), 798 + MTK_FUNCTION(5, "I2S3_DO"), 799 + MTK_FUNCTION(7, "DBG_MON_B11") 800 + ), 801 + MTK_PIN( 802 + PINCTRL_PIN(76, "CMDAT8"), 803 + NULL, "mt8365", 804 + MTK_EINT_FUNCTION(0, 76), 805 + MTK_FUNCTION(0, "GPIO76"), 806 + MTK_FUNCTION(1, "CMDAT8"), 807 + MTK_FUNCTION(5, "PCM_CLK"), 808 + MTK_FUNCTION(7, "DBG_MON_A29") 809 + ), 810 + MTK_PIN( 811 + PINCTRL_PIN(77, "CMDAT9"), 812 + NULL, "mt8365", 813 + MTK_EINT_FUNCTION(0, 77), 814 + MTK_FUNCTION(0, "GPIO77"), 815 + MTK_FUNCTION(1, "CMDAT9"), 816 + MTK_FUNCTION(5, "PCM_SYNC"), 817 + MTK_FUNCTION(7, "DBG_MON_A30") 818 + ), 819 + MTK_PIN( 820 + PINCTRL_PIN(78, "CMHSYNC"), 821 + NULL, "mt8365", 822 + MTK_EINT_FUNCTION(0, 78), 823 + MTK_FUNCTION(0, "GPIO78"), 824 + MTK_FUNCTION(1, "CMHSYNC"), 825 + MTK_FUNCTION(5, "PCM_RX"), 826 + MTK_FUNCTION(7, "DBG_MON_A31") 827 + ), 828 + MTK_PIN( 829 + PINCTRL_PIN(79, "CMVSYNC"), 830 + NULL, "mt8365", 831 + MTK_EINT_FUNCTION(0, 79), 832 + MTK_FUNCTION(0, "GPIO79"), 833 + MTK_FUNCTION(1, "CMVSYNC"), 834 + MTK_FUNCTION(5, "PCM_TX"), 835 + MTK_FUNCTION(7, "DBG_MON_A32") 836 + ), 837 + MTK_PIN( 838 + PINCTRL_PIN(80, "MSDC2_CMD"), 839 + NULL, "mt8365", 840 + MTK_EINT_FUNCTION(0, 80), 841 + MTK_FUNCTION(0, "GPIO80"), 842 + MTK_FUNCTION(1, "MSDC2_CMD"), 843 + MTK_FUNCTION(2, "TDM_TX_LRCK"), 844 + MTK_FUNCTION(3, "UTXD1"), 845 + MTK_FUNCTION(4, "DPI_D19"), 846 + MTK_FUNCTION(5, "UDI_TMS_XI"), 847 + MTK_FUNCTION(6, "ADSP_JTAG_TMS") 848 + ), 849 + MTK_PIN( 850 + PINCTRL_PIN(81, "MSDC2_CLK"), 851 + NULL, "mt8365", 852 + MTK_EINT_FUNCTION(0, 81), 853 + MTK_FUNCTION(0, "GPIO81"), 854 + MTK_FUNCTION(1, "MSDC2_CLK"), 855 + MTK_FUNCTION(2, "TDM_TX_BCK"), 856 + MTK_FUNCTION(3, "URXD1"), 857 + MTK_FUNCTION(4, "DPI_D20"), 858 + MTK_FUNCTION(5, "UDI_TCK_XI"), 859 + MTK_FUNCTION(6, "ADSP_JTAG_TCK") 860 + ), 861 + MTK_PIN( 862 + PINCTRL_PIN(82, "MSDC2_DAT0"), 863 + NULL, "mt8365", 864 + MTK_EINT_FUNCTION(0, 82), 865 + MTK_FUNCTION(0, "GPIO82"), 866 + MTK_FUNCTION(1, "MSDC2_DAT0"), 867 + MTK_FUNCTION(2, "TDM_TX_DATA0"), 868 + MTK_FUNCTION(3, "UTXD2"), 869 + MTK_FUNCTION(4, "DPI_D21"), 870 + MTK_FUNCTION(5, "UDI_TDI_XI"), 871 + MTK_FUNCTION(6, "ADSP_JTAG_TDI") 872 + ), 873 + MTK_PIN( 874 + PINCTRL_PIN(83, "MSDC2_DAT1"), 875 + NULL, "mt8365", 876 + MTK_EINT_FUNCTION(0, 83), 877 + MTK_FUNCTION(0, "GPIO83"), 878 + MTK_FUNCTION(1, "MSDC2_DAT1"), 879 + MTK_FUNCTION(2, "TDM_TX_DATA1"), 880 + MTK_FUNCTION(3, "URXD2"), 881 + MTK_FUNCTION(4, "DPI_D22"), 882 + MTK_FUNCTION(5, "UDI_TDO"), 883 + MTK_FUNCTION(6, "ADSP_JTAG_TDO") 884 + ), 885 + MTK_PIN( 886 + PINCTRL_PIN(84, "MSDC2_DAT2"), 887 + NULL, "mt8365", 888 + MTK_EINT_FUNCTION(0, 84), 889 + MTK_FUNCTION(0, "GPIO84"), 890 + MTK_FUNCTION(1, "MSDC2_DAT2"), 891 + MTK_FUNCTION(2, "TDM_TX_DATA2"), 892 + MTK_FUNCTION(3, "PWM_A"), 893 + MTK_FUNCTION(4, "DPI_D23"), 894 + MTK_FUNCTION(5, "UDI_NTRST_XI"), 895 + MTK_FUNCTION(6, "ADSP_JTAG_TRST") 896 + ), 897 + MTK_PIN( 898 + PINCTRL_PIN(85, "MSDC2_DAT3"), 899 + NULL, "mt8365", 900 + MTK_EINT_FUNCTION(0, 85), 901 + MTK_FUNCTION(0, "GPIO85"), 902 + MTK_FUNCTION(1, "MSDC2_DAT3"), 903 + MTK_FUNCTION(2, "TDM_TX_DATA3"), 904 + MTK_FUNCTION(3, "PWM_B"), 905 + MTK_FUNCTION(5, "EXT_FRAME_SYNC") 906 + ), 907 + MTK_PIN( 908 + PINCTRL_PIN(86, "MSDC2_DSL"), 909 + NULL, "mt8365", 910 + MTK_EINT_FUNCTION(0, 86), 911 + MTK_FUNCTION(0, "GPIO86"), 912 + MTK_FUNCTION(1, "MSDC2_DSL"), 913 + MTK_FUNCTION(2, "TDM_TX_MCK"), 914 + MTK_FUNCTION(3, "PWM_C") 915 + ), 916 + MTK_PIN( 917 + PINCTRL_PIN(87, "MSDC1_CMD"), 918 + NULL, "mt8365", 919 + MTK_EINT_FUNCTION(0, 87), 920 + MTK_FUNCTION(0, "GPIO87"), 921 + MTK_FUNCTION(1, "MSDC1_CMD"), 922 + MTK_FUNCTION(2, "CONN_MCU_AICE_TMSC"), 923 + MTK_FUNCTION(3, "DFD_TMS_XI"), 924 + MTK_FUNCTION(4, "APU_JTAG_TMS"), 925 + MTK_FUNCTION(5, "MCU_SPM_TMS"), 926 + MTK_FUNCTION(6, "CONN_DSP_JMS"), 927 + MTK_FUNCTION(7, "ADSP_JTAG_TMS") 928 + ), 929 + MTK_PIN( 930 + PINCTRL_PIN(88, "MSDC1_CLK"), 931 + NULL, "mt8365", 932 + MTK_EINT_FUNCTION(0, 88), 933 + MTK_FUNCTION(0, "GPIO88"), 934 + MTK_FUNCTION(1, "MSDC1_CLK"), 935 + MTK_FUNCTION(2, "CONN_MCU_AICE_TCKC"), 936 + MTK_FUNCTION(3, "DFD_TCK_XI"), 937 + MTK_FUNCTION(4, "APU_JTAG_TCK"), 938 + MTK_FUNCTION(5, "MCU_SPM_TCK"), 939 + MTK_FUNCTION(6, "CONN_DSP_JCK"), 940 + MTK_FUNCTION(7, "ADSP_JTAG_TCK") 941 + ), 942 + MTK_PIN( 943 + PINCTRL_PIN(89, "MSDC1_DAT0"), 944 + NULL, "mt8365", 945 + MTK_EINT_FUNCTION(0, 89), 946 + MTK_FUNCTION(0, "GPIO89"), 947 + MTK_FUNCTION(1, "MSDC1_DAT0"), 948 + MTK_FUNCTION(2, "PWM_C"), 949 + MTK_FUNCTION(3, "DFD_TDI_XI"), 950 + MTK_FUNCTION(4, "APU_JTAG_TDI"), 951 + MTK_FUNCTION(5, "MCU_SPM_TDI"), 952 + MTK_FUNCTION(6, "CONN_DSP_JDI"), 953 + MTK_FUNCTION(7, "ADSP_JTAG_TDI") 954 + ), 955 + MTK_PIN( 956 + PINCTRL_PIN(90, "MSDC1_DAT1"), 957 + NULL, "mt8365", 958 + MTK_EINT_FUNCTION(0, 90), 959 + MTK_FUNCTION(0, "GPIO90"), 960 + MTK_FUNCTION(1, "MSDC1_DAT1"), 961 + MTK_FUNCTION(2, "SPDIF_IN"), 962 + MTK_FUNCTION(3, "DFD_TDO"), 963 + MTK_FUNCTION(4, "APU_JTAG_TDO"), 964 + MTK_FUNCTION(5, "MCU_SPM_TDO"), 965 + MTK_FUNCTION(6, "CONN_DSP_JDO"), 966 + MTK_FUNCTION(7, "ADSP_JTAG_TDO") 967 + ), 968 + MTK_PIN( 969 + PINCTRL_PIN(91, "MSDC1_DAT2"), 970 + NULL, "mt8365", 971 + MTK_EINT_FUNCTION(0, 91), 972 + MTK_FUNCTION(0, "GPIO91"), 973 + MTK_FUNCTION(1, "MSDC1_DAT2"), 974 + MTK_FUNCTION(2, "SPDIF_OUT"), 975 + MTK_FUNCTION(3, "DFD_NTRST_XI"), 976 + MTK_FUNCTION(4, "APU_JTAG_TRST"), 977 + MTK_FUNCTION(5, "MCU_SPM_NTRST"), 978 + MTK_FUNCTION(6, "CONN_DSP_JINTP"), 979 + MTK_FUNCTION(7, "ADSP_JTAG_TRST") 980 + ), 981 + MTK_PIN( 982 + PINCTRL_PIN(92, "MSDC1_DAT3"), 983 + NULL, "mt8365", 984 + MTK_EINT_FUNCTION(0, 92), 985 + MTK_FUNCTION(0, "GPIO92"), 986 + MTK_FUNCTION(1, "MSDC1_DAT3"), 987 + MTK_FUNCTION(2, "IRRX"), 988 + MTK_FUNCTION(3, "PWM_A") 989 + ), 990 + MTK_PIN( 991 + PINCTRL_PIN(93, "MSDC0_DAT7"), 992 + NULL, "mt8365", 993 + MTK_EINT_FUNCTION(0, 93), 994 + MTK_FUNCTION(0, "GPIO93"), 995 + MTK_FUNCTION(1, "MSDC0_DAT7"), 996 + MTK_FUNCTION(2, "NLD7") 997 + ), 998 + MTK_PIN( 999 + PINCTRL_PIN(94, "MSDC0_DAT6"), 1000 + NULL, "mt8365", 1001 + MTK_EINT_FUNCTION(0, 94), 1002 + MTK_FUNCTION(0, "GPIO94"), 1003 + MTK_FUNCTION(1, "MSDC0_DAT6"), 1004 + MTK_FUNCTION(2, "NLD6") 1005 + ), 1006 + MTK_PIN( 1007 + PINCTRL_PIN(95, "MSDC0_DAT5"), 1008 + NULL, "mt8365", 1009 + MTK_EINT_FUNCTION(0, 95), 1010 + MTK_FUNCTION(0, "GPIO95"), 1011 + MTK_FUNCTION(1, "MSDC0_DAT5"), 1012 + MTK_FUNCTION(2, "NLD4") 1013 + ), 1014 + MTK_PIN( 1015 + PINCTRL_PIN(96, "MSDC0_DAT4"), 1016 + NULL, "mt8365", 1017 + MTK_EINT_FUNCTION(0, 96), 1018 + MTK_FUNCTION(0, "GPIO96"), 1019 + MTK_FUNCTION(1, "MSDC0_DAT4"), 1020 + MTK_FUNCTION(2, "NLD3") 1021 + ), 1022 + MTK_PIN( 1023 + PINCTRL_PIN(97, "MSDC0_RSTB"), 1024 + NULL, "mt8365", 1025 + MTK_EINT_FUNCTION(0, 97), 1026 + MTK_FUNCTION(0, "GPIO97"), 1027 + MTK_FUNCTION(1, "MSDC0_RSTB"), 1028 + MTK_FUNCTION(2, "NLD0") 1029 + ), 1030 + MTK_PIN( 1031 + PINCTRL_PIN(98, "MSDC0_CMD"), 1032 + NULL, "mt8365", 1033 + MTK_EINT_FUNCTION(0, 98), 1034 + MTK_FUNCTION(0, "GPIO98"), 1035 + MTK_FUNCTION(1, "MSDC0_CMD"), 1036 + MTK_FUNCTION(2, "NALE") 1037 + ), 1038 + MTK_PIN( 1039 + PINCTRL_PIN(99, "MSDC0_CLK"), 1040 + NULL, "mt8365", 1041 + MTK_EINT_FUNCTION(0, 99), 1042 + MTK_FUNCTION(0, "GPIO99"), 1043 + MTK_FUNCTION(1, "MSDC0_CLK"), 1044 + MTK_FUNCTION(2, "NWEB") 1045 + ), 1046 + MTK_PIN( 1047 + PINCTRL_PIN(100, "MSDC0_DAT3"), 1048 + NULL, "mt8365", 1049 + MTK_EINT_FUNCTION(0, 100), 1050 + MTK_FUNCTION(0, "GPIO100"), 1051 + MTK_FUNCTION(1, "MSDC0_DAT3"), 1052 + MTK_FUNCTION(2, "NLD1") 1053 + ), 1054 + MTK_PIN( 1055 + PINCTRL_PIN(101, "MSDC0_DAT2"), 1056 + NULL, "mt8365", 1057 + MTK_EINT_FUNCTION(0, 101), 1058 + MTK_FUNCTION(0, "GPIO101"), 1059 + MTK_FUNCTION(1, "MSDC0_DAT2"), 1060 + MTK_FUNCTION(2, "NLD5") 1061 + ), 1062 + MTK_PIN( 1063 + PINCTRL_PIN(102, "MSDC0_DAT1"), 1064 + NULL, "mt8365", 1065 + MTK_EINT_FUNCTION(0, 102), 1066 + MTK_FUNCTION(0, "GPIO102"), 1067 + MTK_FUNCTION(1, "MSDC0_DAT1"), 1068 + MTK_FUNCTION(2, "NDQS") 1069 + ), 1070 + MTK_PIN( 1071 + PINCTRL_PIN(103, "MSDC0_DAT0"), 1072 + NULL, "mt8365", 1073 + MTK_EINT_FUNCTION(0, 103), 1074 + MTK_FUNCTION(0, "GPIO103"), 1075 + MTK_FUNCTION(1, "MSDC0_DAT0"), 1076 + MTK_FUNCTION(2, "NLD2") 1077 + ), 1078 + MTK_PIN( 1079 + PINCTRL_PIN(104, "MSDC0_DSL"), 1080 + NULL, "mt8365", 1081 + MTK_EINT_FUNCTION(0, 104), 1082 + MTK_FUNCTION(0, "GPIO104"), 1083 + MTK_FUNCTION(1, "MSDC0_DSL") 1084 + ), 1085 + MTK_PIN( 1086 + PINCTRL_PIN(105, "NCLE"), 1087 + NULL, "mt8365", 1088 + MTK_EINT_FUNCTION(0, 105), 1089 + MTK_FUNCTION(0, "GPIO105"), 1090 + MTK_FUNCTION(1, "NCLE"), 1091 + MTK_FUNCTION(2, "TDM_RX_MCK"), 1092 + MTK_FUNCTION(7, "DBG_MON_B12") 1093 + ), 1094 + MTK_PIN( 1095 + PINCTRL_PIN(106, "NCEB1"), 1096 + NULL, "mt8365", 1097 + MTK_EINT_FUNCTION(0, 106), 1098 + MTK_FUNCTION(0, "GPIO106"), 1099 + MTK_FUNCTION(1, "NCEB1"), 1100 + MTK_FUNCTION(2, "TDM_RX_BCK"), 1101 + MTK_FUNCTION(7, "DBG_MON_B13") 1102 + ), 1103 + MTK_PIN( 1104 + PINCTRL_PIN(107, "NCEB0"), 1105 + NULL, "mt8365", 1106 + MTK_EINT_FUNCTION(0, 107), 1107 + MTK_FUNCTION(0, "GPIO107"), 1108 + MTK_FUNCTION(1, "NCEB0"), 1109 + MTK_FUNCTION(2, "TDM_RX_LRCK"), 1110 + MTK_FUNCTION(7, "DBG_MON_B14") 1111 + ), 1112 + MTK_PIN( 1113 + PINCTRL_PIN(108, "NREB"), 1114 + NULL, "mt8365", 1115 + MTK_EINT_FUNCTION(0, 108), 1116 + MTK_FUNCTION(0, "GPIO108"), 1117 + MTK_FUNCTION(1, "NREB"), 1118 + MTK_FUNCTION(2, "TDM_RX_DI"), 1119 + MTK_FUNCTION(7, "DBG_MON_B15") 1120 + ), 1121 + MTK_PIN( 1122 + PINCTRL_PIN(109, "NRNB"), 1123 + NULL, "mt8365", 1124 + MTK_EINT_FUNCTION(0, 109), 1125 + MTK_FUNCTION(0, "GPIO109"), 1126 + MTK_FUNCTION(1, "NRNB"), 1127 + MTK_FUNCTION(2, "TSF_IN"), 1128 + MTK_FUNCTION(7, "DBG_MON_B16") 1129 + ), 1130 + MTK_PIN( 1131 + PINCTRL_PIN(110, "PCM_CLK"), 1132 + NULL, "mt8365", 1133 + MTK_EINT_FUNCTION(0, 110), 1134 + MTK_FUNCTION(0, "GPIO110"), 1135 + MTK_FUNCTION(1, "PCM_CLK"), 1136 + MTK_FUNCTION(2, "I2S0_BCK"), 1137 + MTK_FUNCTION(3, "I2S3_BCK"), 1138 + MTK_FUNCTION(4, "SPDIF_IN"), 1139 + MTK_FUNCTION(5, "DPI_D15") 1140 + ), 1141 + MTK_PIN( 1142 + PINCTRL_PIN(111, "PCM_SYNC"), 1143 + NULL, "mt8365", 1144 + MTK_EINT_FUNCTION(0, 111), 1145 + MTK_FUNCTION(0, "GPIO111"), 1146 + MTK_FUNCTION(1, "PCM_SYNC"), 1147 + MTK_FUNCTION(2, "I2S0_LRCK"), 1148 + MTK_FUNCTION(3, "I2S3_LRCK"), 1149 + MTK_FUNCTION(4, "SPDIF_OUT"), 1150 + MTK_FUNCTION(5, "DPI_D16") 1151 + ), 1152 + MTK_PIN( 1153 + PINCTRL_PIN(112, "PCM_RX"), 1154 + NULL, "mt8365", 1155 + MTK_EINT_FUNCTION(0, 112), 1156 + MTK_FUNCTION(0, "GPIO112"), 1157 + MTK_FUNCTION(1, "PCM_RX"), 1158 + MTK_FUNCTION(2, "I2S0_DI"), 1159 + MTK_FUNCTION(3, "I2S3_MCK"), 1160 + MTK_FUNCTION(4, "IRRX"), 1161 + MTK_FUNCTION(5, "DPI_D17") 1162 + ), 1163 + MTK_PIN( 1164 + PINCTRL_PIN(113, "PCM_TX"), 1165 + NULL, "mt8365", 1166 + MTK_EINT_FUNCTION(0, 113), 1167 + MTK_FUNCTION(0, "GPIO113"), 1168 + MTK_FUNCTION(1, "PCM_TX"), 1169 + MTK_FUNCTION(2, "I2S0_MCK"), 1170 + MTK_FUNCTION(3, "I2S3_DO"), 1171 + MTK_FUNCTION(4, "PWM_B"), 1172 + MTK_FUNCTION(5, "DPI_D18") 1173 + ), 1174 + MTK_PIN( 1175 + PINCTRL_PIN(114, "I2S_DATA_IN"), 1176 + NULL, "mt8365", 1177 + MTK_EINT_FUNCTION(0, 114), 1178 + MTK_FUNCTION(0, "GPIO114"), 1179 + MTK_FUNCTION(1, "I2S0_DI"), 1180 + MTK_FUNCTION(2, "I2S1_DO"), 1181 + MTK_FUNCTION(3, "I2S2_DI"), 1182 + MTK_FUNCTION(4, "I2S3_DO"), 1183 + MTK_FUNCTION(5, "PWM_A"), 1184 + MTK_FUNCTION(6, "SPDIF_IN"), 1185 + MTK_FUNCTION(7, "DBG_MON_B17") 1186 + ), 1187 + MTK_PIN( 1188 + PINCTRL_PIN(115, "I2S_LRCK"), 1189 + NULL, "mt8365", 1190 + MTK_EINT_FUNCTION(0, 115), 1191 + MTK_FUNCTION(0, "GPIO115"), 1192 + MTK_FUNCTION(1, "I2S0_LRCK"), 1193 + MTK_FUNCTION(2, "I2S1_LRCK"), 1194 + MTK_FUNCTION(3, "I2S2_LRCK"), 1195 + MTK_FUNCTION(4, "I2S3_LRCK"), 1196 + MTK_FUNCTION(5, "PWM_B"), 1197 + MTK_FUNCTION(6, "SPDIF_OUT"), 1198 + MTK_FUNCTION(7, "DBG_MON_B18") 1199 + ), 1200 + MTK_PIN( 1201 + PINCTRL_PIN(116, "I2S_BCK"), 1202 + NULL, "mt8365", 1203 + MTK_EINT_FUNCTION(0, 116), 1204 + MTK_FUNCTION(0, "GPIO116"), 1205 + MTK_FUNCTION(1, "I2S0_BCK"), 1206 + MTK_FUNCTION(2, "I2S1_BCK"), 1207 + MTK_FUNCTION(3, "I2S2_BCK"), 1208 + MTK_FUNCTION(4, "I2S3_BCK"), 1209 + MTK_FUNCTION(5, "PWM_C"), 1210 + MTK_FUNCTION(6, "IRRX"), 1211 + MTK_FUNCTION(7, "DBG_MON_B19") 1212 + ), 1213 + MTK_PIN( 1214 + PINCTRL_PIN(117, "DMIC0_CLK"), 1215 + NULL, "mt8365", 1216 + MTK_EINT_FUNCTION(0, 117), 1217 + MTK_FUNCTION(0, "GPIO117"), 1218 + MTK_FUNCTION(1, "DMIC0_CLK"), 1219 + MTK_FUNCTION(2, "I2S2_BCK"), 1220 + MTK_FUNCTION(7, "DBG_MON_B20") 1221 + ), 1222 + MTK_PIN( 1223 + PINCTRL_PIN(118, "DMIC0_DAT0"), 1224 + NULL, "mt8365", 1225 + MTK_EINT_FUNCTION(0, 118), 1226 + MTK_FUNCTION(0, "GPIO118"), 1227 + MTK_FUNCTION(1, "DMIC0_DAT0"), 1228 + MTK_FUNCTION(2, "I2S2_DI"), 1229 + MTK_FUNCTION(7, "DBG_MON_B21") 1230 + ), 1231 + MTK_PIN( 1232 + PINCTRL_PIN(119, "DMIC0_DAT1"), 1233 + NULL, "mt8365", 1234 + MTK_EINT_FUNCTION(0, 119), 1235 + MTK_FUNCTION(0, "GPIO119"), 1236 + MTK_FUNCTION(1, "DMIC0_DAT1"), 1237 + MTK_FUNCTION(2, "I2S2_LRCK"), 1238 + MTK_FUNCTION(7, "DBG_MON_B22") 1239 + ), 1240 + MTK_PIN( 1241 + PINCTRL_PIN(120, "DMIC1_CLK"), 1242 + NULL, "mt8365", 1243 + MTK_EINT_FUNCTION(0, 120), 1244 + MTK_FUNCTION(0, "GPIO120"), 1245 + MTK_FUNCTION(1, "DMIC1_CLK"), 1246 + MTK_FUNCTION(2, "I2S2_MCK"), 1247 + MTK_FUNCTION(7, "DBG_MON_B23") 1248 + ), 1249 + MTK_PIN( 1250 + PINCTRL_PIN(121, "DMIC1_DAT0"), 1251 + NULL, "mt8365", 1252 + MTK_EINT_FUNCTION(0, 121), 1253 + MTK_FUNCTION(0, "GPIO121"), 1254 + MTK_FUNCTION(1, "DMIC1_DAT0"), 1255 + MTK_FUNCTION(2, "I2S1_BCK"), 1256 + MTK_FUNCTION(7, "DBG_MON_B24") 1257 + ), 1258 + MTK_PIN( 1259 + PINCTRL_PIN(122, "DMIC1_DAT1"), 1260 + NULL, "mt8365", 1261 + MTK_EINT_FUNCTION(0, 122), 1262 + MTK_FUNCTION(0, "GPIO122"), 1263 + MTK_FUNCTION(1, "DMIC1_DAT1"), 1264 + MTK_FUNCTION(2, "I2S1_LRCK"), 1265 + MTK_FUNCTION(7, "DBG_MON_B25") 1266 + ), 1267 + MTK_PIN( 1268 + PINCTRL_PIN(123, "DMIC2_CLK"), 1269 + NULL, "mt8365", 1270 + MTK_EINT_FUNCTION(0, 123), 1271 + MTK_FUNCTION(0, "GPIO123"), 1272 + MTK_FUNCTION(1, "DMIC2_CLK"), 1273 + MTK_FUNCTION(2, "I2S1_MCK"), 1274 + MTK_FUNCTION(7, "DBG_MON_B26") 1275 + ), 1276 + MTK_PIN( 1277 + PINCTRL_PIN(124, "DMIC2_DAT0"), 1278 + NULL, "mt8365", 1279 + MTK_EINT_FUNCTION(0, 124), 1280 + MTK_FUNCTION(0, "GPIO124"), 1281 + MTK_FUNCTION(1, "DMIC2_DAT0"), 1282 + MTK_FUNCTION(2, "I2S1_DO"), 1283 + MTK_FUNCTION(7, "DBG_MON_B27") 1284 + ), 1285 + MTK_PIN( 1286 + PINCTRL_PIN(125, "DMIC2_DAT1"), 1287 + NULL, "mt8365", 1288 + MTK_EINT_FUNCTION(0, 125), 1289 + MTK_FUNCTION(0, "GPIO125"), 1290 + MTK_FUNCTION(1, "DMIC2_DAT1"), 1291 + MTK_FUNCTION(2, "TDM_RX_BCK"), 1292 + MTK_FUNCTION(7, "DBG_MON_B28") 1293 + ), 1294 + MTK_PIN( 1295 + PINCTRL_PIN(126, "DMIC3_CLK"), 1296 + NULL, "mt8365", 1297 + MTK_EINT_FUNCTION(0, 126), 1298 + MTK_FUNCTION(0, "GPIO126"), 1299 + MTK_FUNCTION(1, "DMIC3_CLK"), 1300 + MTK_FUNCTION(2, "TDM_RX_LRCK") 1301 + ), 1302 + MTK_PIN( 1303 + PINCTRL_PIN(127, "DMIC3_DAT0"), 1304 + NULL, "mt8365", 1305 + MTK_EINT_FUNCTION(0, 127), 1306 + MTK_FUNCTION(0, "GPIO127"), 1307 + MTK_FUNCTION(1, "DMIC3_DAT0"), 1308 + MTK_FUNCTION(2, "TDM_RX_DI") 1309 + ), 1310 + MTK_PIN( 1311 + PINCTRL_PIN(128, "DMIC3_DAT1"), 1312 + NULL, "mt8365", 1313 + MTK_EINT_FUNCTION(0, 128), 1314 + MTK_FUNCTION(0, "GPIO128"), 1315 + MTK_FUNCTION(1, "DMIC3_DAT1"), 1316 + MTK_FUNCTION(2, "TDM_RX_MCK"), 1317 + MTK_FUNCTION(3, "VAD_CLK") 1318 + ), 1319 + MTK_PIN( 1320 + PINCTRL_PIN(129, "TDM_TX_BCK"), 1321 + NULL, "mt8365", 1322 + MTK_EINT_FUNCTION(0, 129), 1323 + MTK_FUNCTION(0, "GPIO129"), 1324 + MTK_FUNCTION(1, "TDM_TX_BCK"), 1325 + MTK_FUNCTION(2, "I2S3_BCK"), 1326 + MTK_FUNCTION(3, "ckmon1_ck") 1327 + ), 1328 + MTK_PIN( 1329 + PINCTRL_PIN(130, "TDM_TX_LRCK"), 1330 + NULL, "mt8365", 1331 + MTK_EINT_FUNCTION(0, 130), 1332 + MTK_FUNCTION(0, "GPIO130"), 1333 + MTK_FUNCTION(1, "TDM_TX_LRCK"), 1334 + MTK_FUNCTION(2, "I2S3_LRCK"), 1335 + MTK_FUNCTION(3, "ckmon2_ck") 1336 + ), 1337 + MTK_PIN( 1338 + PINCTRL_PIN(131, "TDM_TX_MCK"), 1339 + NULL, "mt8365", 1340 + MTK_EINT_FUNCTION(0, 131), 1341 + MTK_FUNCTION(0, "GPIO131"), 1342 + MTK_FUNCTION(1, "TDM_TX_MCK"), 1343 + MTK_FUNCTION(2, "I2S3_MCK"), 1344 + MTK_FUNCTION(3, "ckmon3_ck") 1345 + ), 1346 + MTK_PIN( 1347 + PINCTRL_PIN(132, "TDM_TX_DATA0"), 1348 + NULL, "mt8365", 1349 + MTK_EINT_FUNCTION(0, 132), 1350 + MTK_FUNCTION(0, "GPIO132"), 1351 + MTK_FUNCTION(1, "TDM_TX_DATA0"), 1352 + MTK_FUNCTION(2, "I2S3_DO"), 1353 + MTK_FUNCTION(3, "ckmon4_ck"), 1354 + MTK_FUNCTION(7, "DBG_MON_B29") 1355 + ), 1356 + MTK_PIN( 1357 + PINCTRL_PIN(133, "TDM_TX_DATA1"), 1358 + NULL, "mt8365", 1359 + MTK_EINT_FUNCTION(0, 133), 1360 + MTK_FUNCTION(0, "GPIO133"), 1361 + MTK_FUNCTION(1, "TDM_TX_DATA1"), 1362 + MTK_FUNCTION(7, "DBG_MON_B30") 1363 + ), 1364 + MTK_PIN( 1365 + PINCTRL_PIN(134, "TDM_TX_DATA2"), 1366 + NULL, "mt8365", 1367 + MTK_EINT_FUNCTION(0, 134), 1368 + MTK_FUNCTION(0, "GPIO134"), 1369 + MTK_FUNCTION(1, "TDM_TX_DATA2"), 1370 + MTK_FUNCTION(7, "DBG_MON_B31") 1371 + ), 1372 + MTK_PIN( 1373 + PINCTRL_PIN(135, "TDM_TX_DATA3"), 1374 + NULL, "mt8365", 1375 + MTK_EINT_FUNCTION(0, 135), 1376 + MTK_FUNCTION(0, "GPIO135"), 1377 + MTK_FUNCTION(1, "TDM_TX_DATA3"), 1378 + MTK_FUNCTION(7, "DBG_MON_B32") 1379 + ), 1380 + MTK_PIN( 1381 + PINCTRL_PIN(136, "CONN_TOP_CLK"), 1382 + NULL, "mt8365", 1383 + MTK_EINT_FUNCTION(0, 136), 1384 + MTK_FUNCTION(0, "GPIO136"), 1385 + MTK_FUNCTION(1, "CONN_TOP_CLK") 1386 + ), 1387 + MTK_PIN( 1388 + PINCTRL_PIN(137, "CONN_TOP_DATA"), 1389 + NULL, "mt8365", 1390 + MTK_EINT_FUNCTION(0, 137), 1391 + MTK_FUNCTION(0, "GPIO137"), 1392 + MTK_FUNCTION(1, "CONN_TOP_DATA") 1393 + ), 1394 + MTK_PIN( 1395 + PINCTRL_PIN(138, "CONN_HRST_B"), 1396 + NULL, "mt8365", 1397 + MTK_EINT_FUNCTION(0, 138), 1398 + MTK_FUNCTION(0, "GPIO138"), 1399 + MTK_FUNCTION(1, "CONN_HRST_B") 1400 + ), 1401 + MTK_PIN( 1402 + PINCTRL_PIN(139, "CONN_WB_PTA"), 1403 + NULL, "mt8365", 1404 + MTK_EINT_FUNCTION(0, 139), 1405 + MTK_FUNCTION(0, "GPIO139"), 1406 + MTK_FUNCTION(1, "CONN_WB_PTA") 1407 + ), 1408 + MTK_PIN( 1409 + PINCTRL_PIN(140, "CONN_BT_CLK"), 1410 + NULL, "mt8365", 1411 + MTK_EINT_FUNCTION(0, 140), 1412 + MTK_FUNCTION(0, "GPIO140"), 1413 + MTK_FUNCTION(1, "CONN_BT_CLK") 1414 + ), 1415 + MTK_PIN( 1416 + PINCTRL_PIN(141, "CONN_BT_DATA"), 1417 + NULL, "mt8365", 1418 + MTK_EINT_FUNCTION(0, 141), 1419 + MTK_FUNCTION(0, "GPIO141"), 1420 + MTK_FUNCTION(1, "CONN_BT_DATA") 1421 + ), 1422 + MTK_PIN( 1423 + PINCTRL_PIN(142, "CONN_WF_CTRL0"), 1424 + NULL, "mt8365", 1425 + MTK_EINT_FUNCTION(0, 142), 1426 + MTK_FUNCTION(0, "GPIO142"), 1427 + MTK_FUNCTION(1, "CONN_WF_CTRL0") 1428 + ), 1429 + MTK_PIN( 1430 + PINCTRL_PIN(143, "CONN_WF_CTRL1"), 1431 + NULL, "mt8365", 1432 + MTK_EINT_FUNCTION(0, 143), 1433 + MTK_FUNCTION(0, "GPIO143"), 1434 + MTK_FUNCTION(1, "CONN_WF_CTRL1") 1435 + ), 1436 + MTK_PIN( 1437 + PINCTRL_PIN(144, "CONN_WF_CTRL2"), 1438 + NULL, "mt8365", 1439 + MTK_EINT_FUNCTION(0, 144), 1440 + MTK_FUNCTION(0, "GPIO144"), 1441 + MTK_FUNCTION(1, "CONN_WF_CTRL2") 1442 + ), 1443 + MTK_PIN( 1444 + PINCTRL_PIN(145, "TESTMODE"), 1445 + NULL, "mt8365", 1446 + MTK_EINT_FUNCTION(0, 145), 1447 + MTK_FUNCTION(0, "GPIO145") 1448 + ), 1449 + MTK_PIN( 1450 + PINCTRL_PIN(146, "SYSRSTB"), 1451 + NULL, "mt8365", 1452 + MTK_EINT_FUNCTION(0, 146), 1453 + MTK_FUNCTION(0, "GPIO146") 1454 + ), 1455 + MTK_PIN( 1456 + PINCTRL_PIN(147, "BIAS_MSDC0"), 1457 + NULL, "mt8365", 1458 + MTK_EINT_FUNCTION(0, 147), 1459 + MTK_FUNCTION(0, "GPIO147") 1460 + ), 1461 + MTK_PIN( 1462 + PINCTRL_PIN(148, "BIAS_IO0"), 1463 + NULL, "mt8365", 1464 + MTK_EINT_FUNCTION(0, 148), 1465 + MTK_FUNCTION(0, "GPIO148") 1466 + ), 1467 + MTK_PIN( 1468 + PINCTRL_PIN(149, "BIAS1_IO1"), 1469 + NULL, "mt8365", 1470 + MTK_EINT_FUNCTION(0, 149), 1471 + MTK_FUNCTION(0, "GPIO149") 1472 + ), 1473 + MTK_PIN( 1474 + PINCTRL_PIN(150, "BIAS2_IO1"), 1475 + NULL, "mt8365", 1476 + MTK_EINT_FUNCTION(0, 150), 1477 + MTK_FUNCTION(0, "GPIO150") 1478 + ), 1479 + MTK_PIN( 1480 + PINCTRL_PIN(151, "BIAS_DPI"), 1481 + NULL, "mt8365", 1482 + MTK_EINT_FUNCTION(0, 151), 1483 + MTK_FUNCTION(0, "GPIO151") 1484 + ), 1485 + MTK_PIN( 1486 + PINCTRL_PIN(152, "BIAS_MSDC2"), 1487 + NULL, "mt8365", 1488 + MTK_EINT_FUNCTION(0, 152), 1489 + MTK_FUNCTION(0, "GPIO152") 1490 + ), 1491 + MTK_PIN( 1492 + PINCTRL_PIN(153, "BIAS_IO2"), 1493 + NULL, "mt8365", 1494 + MTK_EINT_FUNCTION(0, 153), 1495 + MTK_FUNCTION(0, "GPIO153") 1496 + ), 1497 + MTK_PIN( 1498 + PINCTRL_PIN(154, "BIAS_IO3"), 1499 + NULL, "mt8365", 1500 + MTK_EINT_FUNCTION(0, 154), 1501 + MTK_FUNCTION(0, "GPIO154") 1502 + ), 1503 + MTK_PIN( 1504 + PINCTRL_PIN(155, "BIAS1_MSDC1"), 1505 + NULL, "mt8365", 1506 + MTK_EINT_FUNCTION(0, 155), 1507 + MTK_FUNCTION(0, "GPIO155") 1508 + ), 1509 + }; 1510 + 1511 + #endif /* __PINCTRL_MTK_MT8365_H */
+2 -2
drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c
··· 958 958 NPCM7XX_PINCFG(31, smb3, MFSEL1, 0, none, NONE, 0, none, NONE, 0, 0), 959 959 960 960 NPCM7XX_PINCFG(32, spi0cs1, MFSEL1, 3, none, NONE, 0, none, NONE, 0, 0), 961 - NPCM7XX_PINCFG(33, none, NONE, 0, none, NONE, 0, none, NONE, 0, SLEW), 962 - NPCM7XX_PINCFG(34, none, NONE, 0, none, NONE, 0, none, NONE, 0, SLEW), 961 + NPCM7XX_PINCFG(33, none, NONE, 0, none, NONE, 0, none, NONE, 0, SLEW), 962 + NPCM7XX_PINCFG(34, none, NONE, 0, none, NONE, 0, none, NONE, 0, SLEW), 963 963 NPCM7XX_PINCFG(37, smb3c, I2CSEGSEL, 12, none, NONE, 0, none, NONE, 0, SLEW), 964 964 NPCM7XX_PINCFG(38, smb3c, I2CSEGSEL, 12, none, NONE, 0, none, NONE, 0, SLEW), 965 965 NPCM7XX_PINCFG(39, smb3b, I2CSEGSEL, 11, none, NONE, 0, none, NONE, 0, SLEW),
+32 -1
drivers/pinctrl/pinctrl-amd.c
··· 438 438 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags); 439 439 } 440 440 441 + static int amd_gpio_irq_set_wake(struct irq_data *d, unsigned int on) 442 + { 443 + u32 pin_reg; 444 + unsigned long flags; 445 + struct gpio_chip *gc = irq_data_get_irq_chip_data(d); 446 + struct amd_gpio *gpio_dev = gpiochip_get_data(gc); 447 + u32 wake_mask = BIT(WAKE_CNTRL_OFF_S0I3) | BIT(WAKE_CNTRL_OFF_S3) | 448 + BIT(WAKE_CNTRL_OFF_S4); 449 + 450 + raw_spin_lock_irqsave(&gpio_dev->lock, flags); 451 + pin_reg = readl(gpio_dev->base + (d->hwirq)*4); 452 + 453 + if (on) 454 + pin_reg |= wake_mask; 455 + else 456 + pin_reg &= ~wake_mask; 457 + 458 + writel(pin_reg, gpio_dev->base + (d->hwirq)*4); 459 + raw_spin_unlock_irqrestore(&gpio_dev->lock, flags); 460 + 461 + return 0; 462 + } 463 + 441 464 static void amd_gpio_irq_eoi(struct irq_data *d) 442 465 { 443 466 u32 reg; ··· 575 552 .irq_disable = amd_gpio_irq_disable, 576 553 .irq_mask = amd_gpio_irq_mask, 577 554 .irq_unmask = amd_gpio_irq_unmask, 555 + .irq_set_wake = amd_gpio_irq_set_wake, 578 556 .irq_eoi = amd_gpio_irq_eoi, 579 557 .irq_set_type = amd_gpio_irq_set_type, 580 - .flags = IRQCHIP_SKIP_SET_WAKE, 558 + /* 559 + * We need to set IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND so that a wake event 560 + * also generates an IRQ. We need the IRQ so the irq_handler can clear 561 + * the wake event. Otherwise the wake event will never clear and 562 + * prevent the system from suspending. 563 + */ 564 + .flags = IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND, 581 565 }; 582 566 583 567 #define PIN_IRQ_PENDING (BIT(INTERRUPT_STS_OFF) | BIT(WAKE_STS_OFF)) ··· 1021 991 static const struct acpi_device_id amd_gpio_acpi_match[] = { 1022 992 { "AMD0030", 0 }, 1023 993 { "AMDI0030", 0}, 994 + { "AMDI0031", 0}, 1024 995 { }, 1025 996 }; 1026 997 MODULE_DEVICE_TABLE(acpi, amd_gpio_acpi_match);
+7 -7
drivers/pinctrl/pinctrl-at91.c
··· 42 42 int pioc_idx; /* PIO bank index */ 43 43 void __iomem *regbase; /* PIO bank virtual address */ 44 44 struct clk *clock; /* associated clock */ 45 - struct at91_pinctrl_mux_ops *ops; /* ops */ 45 + const struct at91_pinctrl_mux_ops *ops; /* ops */ 46 46 }; 47 47 48 48 static struct at91_gpio_chip *gpio_chips[MAX_GPIO_BANKS]; ··· 210 210 struct at91_pin_group *groups; 211 211 int ngroups; 212 212 213 - struct at91_pinctrl_mux_ops *ops; 213 + const struct at91_pinctrl_mux_ops *ops; 214 214 }; 215 215 216 216 static inline const struct at91_pin_group *at91_pinctrl_find_group_by_name( ··· 688 688 writel_relaxed(tmp, pio + SAM9X60_PIO_SLEWR); 689 689 } 690 690 691 - static struct at91_pinctrl_mux_ops at91rm9200_ops = { 691 + static const struct at91_pinctrl_mux_ops at91rm9200_ops = { 692 692 .get_periph = at91_mux_get_periph, 693 693 .mux_A_periph = at91_mux_set_A_periph, 694 694 .mux_B_periph = at91_mux_set_B_periph, ··· 697 697 .irq_type = gpio_irq_type, 698 698 }; 699 699 700 - static struct at91_pinctrl_mux_ops at91sam9x5_ops = { 700 + static const struct at91_pinctrl_mux_ops at91sam9x5_ops = { 701 701 .get_periph = at91_mux_pio3_get_periph, 702 702 .mux_A_periph = at91_mux_pio3_set_A_periph, 703 703 .mux_B_periph = at91_mux_pio3_set_B_periph, ··· 737 737 .irq_type = alt_gpio_irq_type, 738 738 }; 739 739 740 - static struct at91_pinctrl_mux_ops sama5d3_ops = { 740 + static const struct at91_pinctrl_mux_ops sama5d3_ops = { 741 741 .get_periph = at91_mux_pio3_get_periph, 742 742 .mux_A_periph = at91_mux_pio3_set_A_periph, 743 743 .mux_B_periph = at91_mux_pio3_set_B_periph, ··· 1284 1284 return -ENODEV; 1285 1285 1286 1286 info->dev = &pdev->dev; 1287 - info->ops = (struct at91_pinctrl_mux_ops *) 1287 + info->ops = (const struct at91_pinctrl_mux_ops *) 1288 1288 of_match_device(at91_pinctrl_of_match, &pdev->dev)->data; 1289 1289 at91_pinctrl_child_count(info, np); 1290 1290 ··· 1849 1849 goto err; 1850 1850 } 1851 1851 1852 - at91_chip->ops = (struct at91_pinctrl_mux_ops *) 1852 + at91_chip->ops = (const struct at91_pinctrl_mux_ops *) 1853 1853 of_match_device(at91_gpio_of_match, &pdev->dev)->data; 1854 1854 at91_chip->pioc_virq = irq; 1855 1855 at91_chip->pioc_idx = alias_idx;
+1
drivers/pinctrl/pinctrl-equilibrium.c
··· 939 939 { .compatible = "intel,lgm-io" }, 940 940 {} 941 941 }; 942 + MODULE_DEVICE_TABLE(of, eqbr_pinctrl_dt_match); 942 943 943 944 static struct platform_driver eqbr_pinctrl_driver = { 944 945 .probe = eqbr_pinctrl_probe,
+8 -5
drivers/pinctrl/pinctrl-mcp23s08.c
··· 9 9 #include <linux/module.h> 10 10 #include <linux/export.h> 11 11 #include <linux/gpio/driver.h> 12 + #include <linux/gpio/consumer.h> 12 13 #include <linux/slab.h> 13 14 #include <asm/byteorder.h> 14 15 #include <linux/interrupt.h> ··· 352 351 if (mcp_read(mcp, MCP_INTF, &intf)) 353 352 goto unlock; 354 353 354 + if (intf == 0) { 355 + /* There is no interrupt pending */ 356 + goto unlock; 357 + } 358 + 355 359 if (mcp_read(mcp, MCP_INTCAP, &intcap)) 356 360 goto unlock; 357 361 ··· 373 367 gpio_orig = mcp->cached_gpio; 374 368 mcp->cached_gpio = gpio; 375 369 mutex_unlock(&mcp->lock); 376 - 377 - if (intf == 0) { 378 - /* There is no interrupt pending */ 379 - return IRQ_HANDLED; 380 - } 381 370 382 371 dev_dbg(mcp->chip.parent, 383 372 "intcap 0x%04X intf 0x%04X gpio_orig 0x%04X gpio 0x%04X\n", ··· 558 557 mcp->chip.can_sleep = true; 559 558 mcp->chip.parent = dev; 560 559 mcp->chip.owner = THIS_MODULE; 560 + 561 + mcp->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW); 561 562 562 563 /* verify MCP_IOCON.SEQOP = 0, so sequential reads work, 563 564 * and MCP_IOCON.HAEN = 1, so we work with all chips.
+1
drivers/pinctrl/pinctrl-mcp23s08.h
··· 43 43 44 44 struct pinctrl_dev *pctldev; 45 45 struct pinctrl_desc pinctrl_desc; 46 + struct gpio_desc *reset_gpio; 46 47 }; 47 48 48 49 extern const struct regmap_config mcp23x08_regmap;
+1 -3
drivers/pinctrl/pinctrl-ocelot.c
··· 1362 1362 1363 1363 base = devm_ioremap_resource(dev, 1364 1364 platform_get_resource(pdev, IORESOURCE_MEM, 0)); 1365 - if (IS_ERR(base)) { 1366 - dev_err(dev, "Failed to ioremap registers\n"); 1365 + if (IS_ERR(base)) 1367 1366 return PTR_ERR(base); 1368 - } 1369 1367 1370 1368 info->stride = 1 + (info->desc->npins - 1) / 32; 1371 1369
+4 -1
drivers/pinctrl/pinctrl-single.c
··· 534 534 case PIN_CONFIG_DRIVE_STRENGTH: 535 535 case PIN_CONFIG_SLEW_RATE: 536 536 case PIN_CONFIG_MODE_LOW_POWER: 537 + case PIN_CONFIG_INPUT_ENABLE: 537 538 default: 538 539 *config = data; 539 540 break; ··· 573 572 case PIN_CONFIG_DRIVE_STRENGTH: 574 573 case PIN_CONFIG_SLEW_RATE: 575 574 case PIN_CONFIG_MODE_LOW_POWER: 575 + case PIN_CONFIG_INPUT_ENABLE: 576 576 shift = ffs(func->conf[i].mask) - 1; 577 577 data &= ~func->conf[i].mask; 578 578 data |= (arg << shift) & func->conf[i].mask; ··· 920 918 static const struct pcs_conf_type prop2[] = { 921 919 { "pinctrl-single,drive-strength", PIN_CONFIG_DRIVE_STRENGTH, }, 922 920 { "pinctrl-single,slew-rate", PIN_CONFIG_SLEW_RATE, }, 921 + { "pinctrl-single,input-enable", PIN_CONFIG_INPUT_ENABLE, }, 923 922 { "pinctrl-single,input-schmitt", PIN_CONFIG_INPUT_SCHMITT, }, 924 923 { "pinctrl-single,low-power-mode", PIN_CONFIG_MODE_LOW_POWER, }, 925 924 }; ··· 1516 1513 } 1517 1514 1518 1515 /** 1519 - * pcs_irq_handle() - handler for the dedicated chained interrupt case 1516 + * pcs_irq_chain_handler() - handler for the dedicated chained interrupt case 1520 1517 * @desc: interrupt descriptor 1521 1518 * 1522 1519 * Use this if you have a separate interrupt for each
+20 -30
drivers/pinctrl/pinctrl-zynqmp.c
··· 2 2 /* 3 3 * ZynqMP pin controller 4 4 * 5 - * Copyright (C) 2020 Xilinx, Inc. 5 + * Copyright (C) 2020, 2021 Xilinx, Inc. 6 6 * 7 7 * Sai Krishna Potthuri <lakshmi.sai.krishna.potthuri@xilinx.com> 8 8 * Rajan Vaja <rajan.vaja@xilinx.com> ··· 252 252 unsigned int arg, param = pinconf_to_config_param(*config); 253 253 int ret; 254 254 255 - if (pin >= zynqmp_desc.npins) 256 - return -EOPNOTSUPP; 257 - 258 255 switch (param) { 259 256 case PIN_CONFIG_SLEW_RATE: 260 257 param = PM_PINCTRL_CONFIG_SLEW_RATE; ··· 314 317 } 315 318 break; 316 319 default: 317 - ret = -EOPNOTSUPP; 320 + ret = -ENOTSUPP; 318 321 break; 319 322 } 320 323 ··· 344 347 unsigned int num_configs) 345 348 { 346 349 int i, ret; 347 - 348 - if (pin >= zynqmp_desc.npins) 349 - return -EOPNOTSUPP; 350 350 351 351 for (i = 0; i < num_configs; i++) { 352 352 unsigned int param = pinconf_to_config_param(configs[i]); ··· 422 428 dev_warn(pctldev->dev, 423 429 "unsupported configuration parameter '%u'\n", 424 430 param); 425 - ret = -EOPNOTSUPP; 431 + ret = -ENOTSUPP; 426 432 break; 427 433 } 428 434 ··· 498 504 499 505 memcpy(groups, &payload[1], PINCTRL_GET_FUNC_GROUPS_RESP_LEN); 500 506 501 - return ret; 507 + return 0; 502 508 } 503 509 504 510 static int zynqmp_pinctrl_get_func_num_groups(u32 fid, unsigned int *ngroups) ··· 516 522 517 523 *ngroups = payload[1]; 518 524 519 - return ret; 525 + return 0; 520 526 } 521 527 522 528 /** ··· 527 533 * @groups: Groups data. 528 534 * 529 535 * Query firmware to get group IDs for each function. Firmware returns 530 - * group IDs. Based on group index for the function, group names in 536 + * group IDs. Based on the group index for the function, group names in 531 537 * the function are stored. For example, the first group in "eth0" function 532 - * is named as "eth0_0" and second group as "eth0_1" and so on. 538 + * is named as "eth0_0" and the second group as "eth0_1" and so on. 533 539 * 534 540 * Based on the group ID received from the firmware, function stores name of 535 541 * the group for that group ID. For example, if "eth0" first group ID 536 542 * is x, groups[x] name will be stored as "eth0_0". 537 543 * 538 544 * Once done for each function, each function would have its group names 539 - * and each groups would also have their names. 545 + * and each group would also have their names. 540 546 * 541 547 * Return: 0 on success else error code. 542 548 */ ··· 546 552 { 547 553 u16 resp[NUM_GROUPS_PER_RESP] = {0}; 548 554 const char **fgroups; 549 - int ret = 0, index, i; 555 + int ret, index, i; 550 556 551 557 fgroups = devm_kzalloc(dev, sizeof(*fgroups) * func->ngroups, GFP_KERNEL); 552 558 if (!fgroups) ··· 582 588 done: 583 589 func->groups = fgroups; 584 590 585 - return ret; 591 + return 0; 586 592 } 587 593 588 594 static void zynqmp_pinctrl_get_function_name(u32 fid, char *name) ··· 616 622 617 623 *nfuncs = payload[1]; 618 624 619 - return ret; 625 + return 0; 620 626 } 621 627 622 628 static int zynqmp_pinctrl_get_pin_groups(u32 pin, u32 index, u16 *groups) ··· 635 641 636 642 memcpy(groups, &payload[1], PINCTRL_GET_PIN_GROUPS_RESP_LEN); 637 643 638 - return ret; 644 + return 0; 639 645 } 640 646 641 647 static void zynqmp_pinctrl_group_add_pin(struct zynqmp_pctrl_group *group, ··· 654 660 * Based on the firmware response(group IDs for the pin), add 655 661 * pin number to the respective group's pin array. 656 662 * 657 - * Once all pins are queries, each groups would have its number 663 + * Once all pins are queries, each group would have its number 658 664 * of pins and pin numbers data. 659 665 * 660 666 * Return: 0 on success else error code. ··· 683 689 index += NUM_GROUPS_PER_RESP; 684 690 } while (index <= MAX_PIN_GROUPS); 685 691 686 - return ret; 692 + return 0; 687 693 } 688 694 689 695 /** ··· 721 727 * prepare pin control driver data. 722 728 * 723 729 * Query number of functions and number of function groups (number 724 - * of groups in given function) to allocate required memory buffers 730 + * of groups in the given function) to allocate required memory buffers 725 731 * for functions and groups. Once buffers are allocated to store 726 732 * functions and groups data, query and store required information 727 733 * (number of groups and group names for each function, number of ··· 772 778 pctrl->funcs = funcs; 773 779 pctrl->groups = groups; 774 780 775 - return ret; 781 + return 0; 776 782 } 777 783 778 784 static int zynqmp_pinctrl_get_num_pins(unsigned int *npins) ··· 789 795 790 796 *npins = payload[1]; 791 797 792 - return ret; 798 + return 0; 793 799 } 794 800 795 801 /** ··· 847 853 &zynqmp_desc.pins, 848 854 &zynqmp_desc.npins); 849 855 if (ret) { 850 - dev_err(&pdev->dev, "pin desc prepare fail with %d\n", 851 - ret); 856 + dev_err(&pdev->dev, "pin desc prepare fail with %d\n", ret); 852 857 return ret; 853 858 } 854 859 855 860 ret = zynqmp_pinctrl_prepare_function_info(&pdev->dev, pctrl); 856 861 if (ret) { 857 - dev_err(&pdev->dev, "function info prepare fail with %d\n", 858 - ret); 862 + dev_err(&pdev->dev, "function info prepare fail with %d\n", ret); 859 863 return ret; 860 864 } 861 865 862 - pctrl->pctrl = pinctrl_register(&zynqmp_desc, &pdev->dev, pctrl); 866 + pctrl->pctrl = devm_pinctrl_register(&pdev->dev, &zynqmp_desc, pctrl); 863 867 if (IS_ERR(pctrl->pctrl)) 864 868 return PTR_ERR(pctrl->pctrl); 865 869 ··· 879 887 { .compatible = "xlnx,zynqmp-pinctrl" }, 880 888 { } 881 889 }; 882 - 883 890 MODULE_DEVICE_TABLE(of, zynqmp_pinctrl_of_match); 884 891 885 892 static struct platform_driver zynqmp_pinctrl_driver = { ··· 889 898 .probe = zynqmp_pinctrl_probe, 890 899 .remove = zynqmp_pinctrl_remove, 891 900 }; 892 - 893 901 module_platform_driver(zynqmp_pinctrl_driver); 894 902 895 903 MODULE_AUTHOR("Sai Krishna Potthuri <lakshmi.sai.krishna.potthuri@xilinx.com>");
+9
drivers/pinctrl/qcom/Kconfig
··· 256 256 Qualcomm Technologies Inc TLMM block found on the Qualcomm 257 257 Technologies Inc SDX55 platform. 258 258 259 + config PINCTRL_SM6125 260 + tristate "Qualcomm Technologies Inc SM6125 pin controller driver" 261 + depends on GPIOLIB && OF 262 + depends on PINCTRL_MSM 263 + help 264 + This is the pinctrl, pinmux, pinconf and gpiolib driver for the 265 + Qualcomm Technologies Inc TLMM block found on the Qualcomm 266 + Technologies Inc SM6125 platform. 267 + 259 268 config PINCTRL_SM8150 260 269 tristate "Qualcomm Technologies Inc SM8150 pin controller driver" 261 270 depends on GPIOLIB && OF
+1
drivers/pinctrl/qcom/Makefile
··· 30 30 obj-$(CONFIG_PINCTRL_SDM660) += pinctrl-sdm660.o 31 31 obj-$(CONFIG_PINCTRL_SDM845) += pinctrl-sdm845.o 32 32 obj-$(CONFIG_PINCTRL_SDX55) += pinctrl-sdx55.o 33 + obj-$(CONFIG_PINCTRL_SM6125) += pinctrl-sm6125.o 33 34 obj-$(CONFIG_PINCTRL_SM8150) += pinctrl-sm8150.o 34 35 obj-$(CONFIG_PINCTRL_SM8250) += pinctrl-sm8250.o 35 36 obj-$(CONFIG_PINCTRL_SM8350) += pinctrl-sm8350.o
+1277
drivers/pinctrl/qcom/pinctrl-sm6125.c
··· 1 + //SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + 3 + #include <linux/module.h> 4 + #include <linux/of.h> 5 + #include <linux/platform_device.h> 6 + #include <linux/pinctrl/pinctrl.h> 7 + 8 + #include "pinctrl-msm.h" 9 + 10 + static const char * const sm6125_tiles[] = { 11 + "south", 12 + "east", 13 + "west" 14 + }; 15 + 16 + enum { 17 + SOUTH, 18 + EAST, 19 + WEST 20 + }; 21 + 22 + #define FUNCTION(fname) \ 23 + [msm_mux_##fname] = { \ 24 + .name = #fname, \ 25 + .groups = fname##_groups, \ 26 + .ngroups = ARRAY_SIZE(fname##_groups), \ 27 + } 28 + 29 + #define PINGROUP(id, _tile, f1, f2, f3, f4, f5, f6, f7, f8, f9) \ 30 + { \ 31 + .name = "gpio" #id, \ 32 + .pins = gpio##id##_pins, \ 33 + .npins = (unsigned int)ARRAY_SIZE(gpio##id##_pins), \ 34 + .funcs = (int[]){ \ 35 + msm_mux_gpio, /* gpio mode */ \ 36 + msm_mux_##f1, \ 37 + msm_mux_##f2, \ 38 + msm_mux_##f3, \ 39 + msm_mux_##f4, \ 40 + msm_mux_##f5, \ 41 + msm_mux_##f6, \ 42 + msm_mux_##f7, \ 43 + msm_mux_##f8, \ 44 + msm_mux_##f9 \ 45 + }, \ 46 + .nfuncs = 10, \ 47 + .ctl_reg = 0x1000 * id, \ 48 + .io_reg = 0x4 + 0x1000 * id, \ 49 + .intr_cfg_reg = 0x8 + 0x1000 * id, \ 50 + .intr_status_reg = 0xc + 0x1000 * id, \ 51 + .intr_target_reg = 0x8 + 0x1000 * id, \ 52 + .tile = _tile, \ 53 + .mux_bit = 2, \ 54 + .pull_bit = 0, \ 55 + .drv_bit = 6, \ 56 + .oe_bit = 9, \ 57 + .in_bit = 0, \ 58 + .out_bit = 1, \ 59 + .intr_enable_bit = 0, \ 60 + .intr_status_bit = 0, \ 61 + .intr_target_bit = 5, \ 62 + .intr_target_kpss_val = 3, \ 63 + .intr_raw_status_bit = 4, \ 64 + .intr_polarity_bit = 1, \ 65 + .intr_detection_bit = 2, \ 66 + .intr_detection_width = 2, \ 67 + } 68 + 69 + #define SDC_QDSD_PINGROUP(pg_name, _tile, ctl, pull, drv) \ 70 + { \ 71 + .name = #pg_name, \ 72 + .pins = pg_name##_pins, \ 73 + .npins = (unsigned int)ARRAY_SIZE(pg_name##_pins), \ 74 + .ctl_reg = ctl, \ 75 + .io_reg = 0, \ 76 + .intr_cfg_reg = 0, \ 77 + .intr_status_reg = 0, \ 78 + .intr_target_reg = 0, \ 79 + .tile = _tile, \ 80 + .mux_bit = -1, \ 81 + .pull_bit = pull, \ 82 + .drv_bit = drv, \ 83 + .oe_bit = -1, \ 84 + .in_bit = -1, \ 85 + .out_bit = -1, \ 86 + .intr_enable_bit = -1, \ 87 + .intr_status_bit = -1, \ 88 + .intr_target_bit = -1, \ 89 + .intr_raw_status_bit = -1, \ 90 + .intr_polarity_bit = -1, \ 91 + .intr_detection_bit = -1, \ 92 + .intr_detection_width = -1, \ 93 + } 94 + 95 + #define UFS_RESET(pg_name, offset) \ 96 + { \ 97 + .name = #pg_name, \ 98 + .pins = pg_name##_pins, \ 99 + .npins = (unsigned int)ARRAY_SIZE(pg_name##_pins), \ 100 + .ctl_reg = offset, \ 101 + .io_reg = offset + 0x4, \ 102 + .intr_cfg_reg = 0, \ 103 + .intr_status_reg = 0, \ 104 + .intr_target_reg = 0, \ 105 + .tile = WEST, \ 106 + .mux_bit = -1, \ 107 + .pull_bit = 3, \ 108 + .drv_bit = 0, \ 109 + .oe_bit = -1, \ 110 + .in_bit = -1, \ 111 + .out_bit = 0, \ 112 + .intr_enable_bit = -1, \ 113 + .intr_status_bit = -1, \ 114 + .intr_target_bit = -1, \ 115 + .intr_raw_status_bit = -1, \ 116 + .intr_polarity_bit = -1, \ 117 + .intr_detection_bit = -1, \ 118 + .intr_detection_width = -1, \ 119 + } 120 + static const struct pinctrl_pin_desc sm6125_pins[] = { 121 + PINCTRL_PIN(0, "GPIO_0"), 122 + PINCTRL_PIN(1, "GPIO_1"), 123 + PINCTRL_PIN(2, "GPIO_2"), 124 + PINCTRL_PIN(3, "GPIO_3"), 125 + PINCTRL_PIN(4, "GPIO_4"), 126 + PINCTRL_PIN(5, "GPIO_5"), 127 + PINCTRL_PIN(6, "GPIO_6"), 128 + PINCTRL_PIN(7, "GPIO_7"), 129 + PINCTRL_PIN(8, "GPIO_8"), 130 + PINCTRL_PIN(9, "GPIO_9"), 131 + PINCTRL_PIN(10, "GPIO_10"), 132 + PINCTRL_PIN(11, "GPIO_11"), 133 + PINCTRL_PIN(12, "GPIO_12"), 134 + PINCTRL_PIN(13, "GPIO_13"), 135 + PINCTRL_PIN(14, "GPIO_14"), 136 + PINCTRL_PIN(15, "GPIO_15"), 137 + PINCTRL_PIN(16, "GPIO_16"), 138 + PINCTRL_PIN(17, "GPIO_17"), 139 + PINCTRL_PIN(18, "GPIO_18"), 140 + PINCTRL_PIN(19, "GPIO_19"), 141 + PINCTRL_PIN(20, "GPIO_20"), 142 + PINCTRL_PIN(21, "GPIO_21"), 143 + PINCTRL_PIN(22, "GPIO_22"), 144 + PINCTRL_PIN(23, "GPIO_23"), 145 + PINCTRL_PIN(24, "GPIO_24"), 146 + PINCTRL_PIN(25, "GPIO_25"), 147 + PINCTRL_PIN(26, "GPIO_26"), 148 + PINCTRL_PIN(27, "GPIO_27"), 149 + PINCTRL_PIN(28, "GPIO_28"), 150 + PINCTRL_PIN(29, "GPIO_29"), 151 + PINCTRL_PIN(30, "GPIO_30"), 152 + PINCTRL_PIN(31, "GPIO_31"), 153 + PINCTRL_PIN(32, "GPIO_32"), 154 + PINCTRL_PIN(33, "GPIO_33"), 155 + PINCTRL_PIN(34, "GPIO_34"), 156 + PINCTRL_PIN(35, "GPIO_35"), 157 + PINCTRL_PIN(36, "GPIO_36"), 158 + PINCTRL_PIN(37, "GPIO_37"), 159 + PINCTRL_PIN(38, "GPIO_38"), 160 + PINCTRL_PIN(39, "GPIO_39"), 161 + PINCTRL_PIN(40, "GPIO_40"), 162 + PINCTRL_PIN(41, "GPIO_41"), 163 + PINCTRL_PIN(42, "GPIO_42"), 164 + PINCTRL_PIN(43, "GPIO_43"), 165 + PINCTRL_PIN(44, "GPIO_44"), 166 + PINCTRL_PIN(45, "GPIO_45"), 167 + PINCTRL_PIN(46, "GPIO_46"), 168 + PINCTRL_PIN(47, "GPIO_47"), 169 + PINCTRL_PIN(48, "GPIO_48"), 170 + PINCTRL_PIN(49, "GPIO_49"), 171 + PINCTRL_PIN(50, "GPIO_50"), 172 + PINCTRL_PIN(51, "GPIO_51"), 173 + PINCTRL_PIN(52, "GPIO_52"), 174 + PINCTRL_PIN(53, "GPIO_53"), 175 + PINCTRL_PIN(54, "GPIO_54"), 176 + PINCTRL_PIN(55, "GPIO_55"), 177 + PINCTRL_PIN(56, "GPIO_56"), 178 + PINCTRL_PIN(57, "GPIO_57"), 179 + PINCTRL_PIN(58, "GPIO_58"), 180 + PINCTRL_PIN(59, "GPIO_59"), 181 + PINCTRL_PIN(60, "GPIO_60"), 182 + PINCTRL_PIN(61, "GPIO_61"), 183 + PINCTRL_PIN(62, "GPIO_62"), 184 + PINCTRL_PIN(63, "GPIO_63"), 185 + PINCTRL_PIN(64, "GPIO_64"), 186 + PINCTRL_PIN(65, "GPIO_65"), 187 + PINCTRL_PIN(66, "GPIO_66"), 188 + PINCTRL_PIN(67, "GPIO_67"), 189 + PINCTRL_PIN(68, "GPIO_68"), 190 + PINCTRL_PIN(69, "GPIO_69"), 191 + PINCTRL_PIN(70, "GPIO_70"), 192 + PINCTRL_PIN(71, "GPIO_71"), 193 + PINCTRL_PIN(72, "GPIO_72"), 194 + PINCTRL_PIN(73, "GPIO_73"), 195 + PINCTRL_PIN(74, "GPIO_74"), 196 + PINCTRL_PIN(75, "GPIO_75"), 197 + PINCTRL_PIN(76, "GPIO_76"), 198 + PINCTRL_PIN(77, "GPIO_77"), 199 + PINCTRL_PIN(78, "GPIO_78"), 200 + PINCTRL_PIN(79, "GPIO_79"), 201 + PINCTRL_PIN(80, "GPIO_80"), 202 + PINCTRL_PIN(81, "GPIO_81"), 203 + PINCTRL_PIN(82, "GPIO_82"), 204 + PINCTRL_PIN(83, "GPIO_83"), 205 + PINCTRL_PIN(84, "GPIO_84"), 206 + PINCTRL_PIN(85, "GPIO_85"), 207 + PINCTRL_PIN(86, "GPIO_86"), 208 + PINCTRL_PIN(87, "GPIO_87"), 209 + PINCTRL_PIN(88, "GPIO_88"), 210 + PINCTRL_PIN(89, "GPIO_89"), 211 + PINCTRL_PIN(90, "GPIO_90"), 212 + PINCTRL_PIN(91, "GPIO_91"), 213 + PINCTRL_PIN(92, "GPIO_92"), 214 + PINCTRL_PIN(93, "GPIO_93"), 215 + PINCTRL_PIN(94, "GPIO_94"), 216 + PINCTRL_PIN(95, "GPIO_95"), 217 + PINCTRL_PIN(96, "GPIO_96"), 218 + PINCTRL_PIN(97, "GPIO_97"), 219 + PINCTRL_PIN(98, "GPIO_98"), 220 + PINCTRL_PIN(99, "GPIO_99"), 221 + PINCTRL_PIN(100, "GPIO_100"), 222 + PINCTRL_PIN(101, "GPIO_101"), 223 + PINCTRL_PIN(102, "GPIO_102"), 224 + PINCTRL_PIN(103, "GPIO_103"), 225 + PINCTRL_PIN(104, "GPIO_104"), 226 + PINCTRL_PIN(105, "GPIO_105"), 227 + PINCTRL_PIN(106, "GPIO_106"), 228 + PINCTRL_PIN(107, "GPIO_107"), 229 + PINCTRL_PIN(108, "GPIO_108"), 230 + PINCTRL_PIN(109, "GPIO_109"), 231 + PINCTRL_PIN(110, "GPIO_110"), 232 + PINCTRL_PIN(111, "GPIO_111"), 233 + PINCTRL_PIN(112, "GPIO_112"), 234 + PINCTRL_PIN(113, "GPIO_113"), 235 + PINCTRL_PIN(114, "GPIO_114"), 236 + PINCTRL_PIN(115, "GPIO_115"), 237 + PINCTRL_PIN(116, "GPIO_116"), 238 + PINCTRL_PIN(117, "GPIO_117"), 239 + PINCTRL_PIN(118, "GPIO_118"), 240 + PINCTRL_PIN(119, "GPIO_119"), 241 + PINCTRL_PIN(120, "GPIO_120"), 242 + PINCTRL_PIN(121, "GPIO_121"), 243 + PINCTRL_PIN(122, "GPIO_122"), 244 + PINCTRL_PIN(123, "GPIO_123"), 245 + PINCTRL_PIN(124, "GPIO_124"), 246 + PINCTRL_PIN(125, "GPIO_125"), 247 + PINCTRL_PIN(126, "GPIO_126"), 248 + PINCTRL_PIN(127, "GPIO_127"), 249 + PINCTRL_PIN(128, "GPIO_128"), 250 + PINCTRL_PIN(129, "GPIO_129"), 251 + PINCTRL_PIN(130, "GPIO_130"), 252 + PINCTRL_PIN(131, "GPIO_131"), 253 + PINCTRL_PIN(132, "GPIO_132"), 254 + PINCTRL_PIN(133, "UFS_RESET"), 255 + PINCTRL_PIN(134, "SDC1_RCLK"), 256 + PINCTRL_PIN(135, "SDC1_CLK"), 257 + PINCTRL_PIN(136, "SDC1_CMD"), 258 + PINCTRL_PIN(137, "SDC1_DATA"), 259 + PINCTRL_PIN(138, "SDC2_CLK"), 260 + PINCTRL_PIN(139, "SDC2_CMD"), 261 + PINCTRL_PIN(140, "SDC2_DATA"), 262 + }; 263 + 264 + #define DECLARE_MSM_GPIO_PINS(pin) \ 265 + static const unsigned int gpio##pin##_pins[] = { pin } 266 + DECLARE_MSM_GPIO_PINS(0); 267 + DECLARE_MSM_GPIO_PINS(1); 268 + DECLARE_MSM_GPIO_PINS(2); 269 + DECLARE_MSM_GPIO_PINS(3); 270 + DECLARE_MSM_GPIO_PINS(4); 271 + DECLARE_MSM_GPIO_PINS(5); 272 + DECLARE_MSM_GPIO_PINS(6); 273 + DECLARE_MSM_GPIO_PINS(7); 274 + DECLARE_MSM_GPIO_PINS(8); 275 + DECLARE_MSM_GPIO_PINS(9); 276 + DECLARE_MSM_GPIO_PINS(10); 277 + DECLARE_MSM_GPIO_PINS(11); 278 + DECLARE_MSM_GPIO_PINS(12); 279 + DECLARE_MSM_GPIO_PINS(13); 280 + DECLARE_MSM_GPIO_PINS(14); 281 + DECLARE_MSM_GPIO_PINS(15); 282 + DECLARE_MSM_GPIO_PINS(16); 283 + DECLARE_MSM_GPIO_PINS(17); 284 + DECLARE_MSM_GPIO_PINS(18); 285 + DECLARE_MSM_GPIO_PINS(19); 286 + DECLARE_MSM_GPIO_PINS(20); 287 + DECLARE_MSM_GPIO_PINS(21); 288 + DECLARE_MSM_GPIO_PINS(22); 289 + DECLARE_MSM_GPIO_PINS(23); 290 + DECLARE_MSM_GPIO_PINS(24); 291 + DECLARE_MSM_GPIO_PINS(25); 292 + DECLARE_MSM_GPIO_PINS(26); 293 + DECLARE_MSM_GPIO_PINS(27); 294 + DECLARE_MSM_GPIO_PINS(28); 295 + DECLARE_MSM_GPIO_PINS(29); 296 + DECLARE_MSM_GPIO_PINS(30); 297 + DECLARE_MSM_GPIO_PINS(31); 298 + DECLARE_MSM_GPIO_PINS(32); 299 + DECLARE_MSM_GPIO_PINS(33); 300 + DECLARE_MSM_GPIO_PINS(34); 301 + DECLARE_MSM_GPIO_PINS(35); 302 + DECLARE_MSM_GPIO_PINS(36); 303 + DECLARE_MSM_GPIO_PINS(37); 304 + DECLARE_MSM_GPIO_PINS(38); 305 + DECLARE_MSM_GPIO_PINS(39); 306 + DECLARE_MSM_GPIO_PINS(40); 307 + DECLARE_MSM_GPIO_PINS(41); 308 + DECLARE_MSM_GPIO_PINS(42); 309 + DECLARE_MSM_GPIO_PINS(43); 310 + DECLARE_MSM_GPIO_PINS(44); 311 + DECLARE_MSM_GPIO_PINS(45); 312 + DECLARE_MSM_GPIO_PINS(46); 313 + DECLARE_MSM_GPIO_PINS(47); 314 + DECLARE_MSM_GPIO_PINS(48); 315 + DECLARE_MSM_GPIO_PINS(49); 316 + DECLARE_MSM_GPIO_PINS(50); 317 + DECLARE_MSM_GPIO_PINS(51); 318 + DECLARE_MSM_GPIO_PINS(52); 319 + DECLARE_MSM_GPIO_PINS(53); 320 + DECLARE_MSM_GPIO_PINS(54); 321 + DECLARE_MSM_GPIO_PINS(55); 322 + DECLARE_MSM_GPIO_PINS(56); 323 + DECLARE_MSM_GPIO_PINS(57); 324 + DECLARE_MSM_GPIO_PINS(58); 325 + DECLARE_MSM_GPIO_PINS(59); 326 + DECLARE_MSM_GPIO_PINS(60); 327 + DECLARE_MSM_GPIO_PINS(61); 328 + DECLARE_MSM_GPIO_PINS(62); 329 + DECLARE_MSM_GPIO_PINS(63); 330 + DECLARE_MSM_GPIO_PINS(64); 331 + DECLARE_MSM_GPIO_PINS(65); 332 + DECLARE_MSM_GPIO_PINS(66); 333 + DECLARE_MSM_GPIO_PINS(67); 334 + DECLARE_MSM_GPIO_PINS(68); 335 + DECLARE_MSM_GPIO_PINS(69); 336 + DECLARE_MSM_GPIO_PINS(70); 337 + DECLARE_MSM_GPIO_PINS(71); 338 + DECLARE_MSM_GPIO_PINS(72); 339 + DECLARE_MSM_GPIO_PINS(73); 340 + DECLARE_MSM_GPIO_PINS(74); 341 + DECLARE_MSM_GPIO_PINS(75); 342 + DECLARE_MSM_GPIO_PINS(76); 343 + DECLARE_MSM_GPIO_PINS(77); 344 + DECLARE_MSM_GPIO_PINS(78); 345 + DECLARE_MSM_GPIO_PINS(79); 346 + DECLARE_MSM_GPIO_PINS(80); 347 + DECLARE_MSM_GPIO_PINS(81); 348 + DECLARE_MSM_GPIO_PINS(82); 349 + DECLARE_MSM_GPIO_PINS(83); 350 + DECLARE_MSM_GPIO_PINS(84); 351 + DECLARE_MSM_GPIO_PINS(85); 352 + DECLARE_MSM_GPIO_PINS(86); 353 + DECLARE_MSM_GPIO_PINS(87); 354 + DECLARE_MSM_GPIO_PINS(88); 355 + DECLARE_MSM_GPIO_PINS(89); 356 + DECLARE_MSM_GPIO_PINS(90); 357 + DECLARE_MSM_GPIO_PINS(91); 358 + DECLARE_MSM_GPIO_PINS(92); 359 + DECLARE_MSM_GPIO_PINS(93); 360 + DECLARE_MSM_GPIO_PINS(94); 361 + DECLARE_MSM_GPIO_PINS(95); 362 + DECLARE_MSM_GPIO_PINS(96); 363 + DECLARE_MSM_GPIO_PINS(97); 364 + DECLARE_MSM_GPIO_PINS(98); 365 + DECLARE_MSM_GPIO_PINS(99); 366 + DECLARE_MSM_GPIO_PINS(100); 367 + DECLARE_MSM_GPIO_PINS(101); 368 + DECLARE_MSM_GPIO_PINS(102); 369 + DECLARE_MSM_GPIO_PINS(103); 370 + DECLARE_MSM_GPIO_PINS(104); 371 + DECLARE_MSM_GPIO_PINS(105); 372 + DECLARE_MSM_GPIO_PINS(106); 373 + DECLARE_MSM_GPIO_PINS(107); 374 + DECLARE_MSM_GPIO_PINS(108); 375 + DECLARE_MSM_GPIO_PINS(109); 376 + DECLARE_MSM_GPIO_PINS(110); 377 + DECLARE_MSM_GPIO_PINS(111); 378 + DECLARE_MSM_GPIO_PINS(112); 379 + DECLARE_MSM_GPIO_PINS(113); 380 + DECLARE_MSM_GPIO_PINS(114); 381 + DECLARE_MSM_GPIO_PINS(115); 382 + DECLARE_MSM_GPIO_PINS(116); 383 + DECLARE_MSM_GPIO_PINS(117); 384 + DECLARE_MSM_GPIO_PINS(118); 385 + DECLARE_MSM_GPIO_PINS(119); 386 + DECLARE_MSM_GPIO_PINS(120); 387 + DECLARE_MSM_GPIO_PINS(121); 388 + DECLARE_MSM_GPIO_PINS(122); 389 + DECLARE_MSM_GPIO_PINS(123); 390 + DECLARE_MSM_GPIO_PINS(124); 391 + DECLARE_MSM_GPIO_PINS(125); 392 + DECLARE_MSM_GPIO_PINS(126); 393 + DECLARE_MSM_GPIO_PINS(127); 394 + DECLARE_MSM_GPIO_PINS(128); 395 + DECLARE_MSM_GPIO_PINS(129); 396 + DECLARE_MSM_GPIO_PINS(130); 397 + DECLARE_MSM_GPIO_PINS(131); 398 + DECLARE_MSM_GPIO_PINS(132); 399 + 400 + static const unsigned int ufs_reset_pins[] = { 133 }; 401 + static const unsigned int sdc1_rclk_pins[] = { 134 }; 402 + static const unsigned int sdc1_clk_pins[] = { 135 }; 403 + static const unsigned int sdc1_cmd_pins[] = { 136 }; 404 + static const unsigned int sdc1_data_pins[] = { 137 }; 405 + static const unsigned int sdc2_clk_pins[] = { 138 }; 406 + static const unsigned int sdc2_cmd_pins[] = { 139 }; 407 + static const unsigned int sdc2_data_pins[] = { 140 }; 408 + 409 + 410 + enum sm6125_functions { 411 + msm_mux_qup00, 412 + msm_mux_gpio, 413 + msm_mux_qdss, 414 + msm_mux_qup01, 415 + msm_mux_qup02, 416 + msm_mux_ddr_pxi0, 417 + msm_mux_ddr_bist, 418 + msm_mux_atest_tsens2, 419 + msm_mux_vsense_trigger, 420 + msm_mux_atest_usb1, 421 + msm_mux_gp_pdm1, 422 + msm_mux_phase_flag, 423 + msm_mux_dbg_out, 424 + msm_mux_qup14, 425 + msm_mux_atest_usb11, 426 + msm_mux_ddr_pxi2, 427 + msm_mux_atest_usb10, 428 + msm_mux_jitter_bist, 429 + msm_mux_ddr_pxi3, 430 + msm_mux_pll_bypassnl, 431 + msm_mux_pll_bist, 432 + msm_mux_qup03, 433 + msm_mux_pll_reset, 434 + msm_mux_agera_pll, 435 + msm_mux_qdss_cti, 436 + msm_mux_qup04, 437 + msm_mux_wlan2_adc1, 438 + msm_mux_wlan2_adc0, 439 + msm_mux_wsa_clk, 440 + msm_mux_qup13, 441 + msm_mux_ter_mi2s, 442 + msm_mux_wsa_data, 443 + msm_mux_qup10, 444 + msm_mux_gcc_gp3, 445 + msm_mux_qup12, 446 + msm_mux_sd_write, 447 + msm_mux_qup11, 448 + msm_mux_cam_mclk, 449 + msm_mux_atest_tsens, 450 + msm_mux_cci_i2c, 451 + msm_mux_cci_timer2, 452 + msm_mux_cci_timer1, 453 + msm_mux_gcc_gp2, 454 + msm_mux_cci_async, 455 + msm_mux_cci_timer4, 456 + msm_mux_cci_timer0, 457 + msm_mux_gcc_gp1, 458 + msm_mux_cci_timer3, 459 + msm_mux_wlan1_adc1, 460 + msm_mux_wlan1_adc0, 461 + msm_mux_qlink_request, 462 + msm_mux_qlink_enable, 463 + msm_mux_pa_indicator, 464 + msm_mux_nav_pps, 465 + msm_mux_gps_tx, 466 + msm_mux_gp_pdm0, 467 + msm_mux_atest_usb13, 468 + msm_mux_ddr_pxi1, 469 + msm_mux_atest_usb12, 470 + msm_mux_cri_trng0, 471 + msm_mux_cri_trng, 472 + msm_mux_cri_trng1, 473 + msm_mux_gp_pdm2, 474 + msm_mux_sp_cmu, 475 + msm_mux_atest_usb2, 476 + msm_mux_atest_usb23, 477 + msm_mux_uim2_data, 478 + msm_mux_uim2_clk, 479 + msm_mux_uim2_reset, 480 + msm_mux_atest_usb22, 481 + msm_mux_uim2_present, 482 + msm_mux_atest_usb21, 483 + msm_mux_uim1_data, 484 + msm_mux_atest_usb20, 485 + msm_mux_uim1_clk, 486 + msm_mux_uim1_reset, 487 + msm_mux_uim1_present, 488 + msm_mux_mdp_vsync, 489 + msm_mux_copy_gp, 490 + msm_mux_tsense_pwm, 491 + msm_mux_mpm_pwr, 492 + msm_mux_tgu_ch3, 493 + msm_mux_mdp_vsync0, 494 + msm_mux_mdp_vsync1, 495 + msm_mux_mdp_vsync2, 496 + msm_mux_mdp_vsync3, 497 + msm_mux_mdp_vsync4, 498 + msm_mux_mdp_vsync5, 499 + msm_mux_tgu_ch0, 500 + msm_mux_tgu_ch1, 501 + msm_mux_atest_char1, 502 + msm_mux_vfr_1, 503 + msm_mux_tgu_ch2, 504 + msm_mux_atest_char0, 505 + msm_mux_atest_char2, 506 + msm_mux_atest_char3, 507 + msm_mux_ldo_en, 508 + msm_mux_ldo_update, 509 + msm_mux_prng_rosc, 510 + msm_mux_dp_hot, 511 + msm_mux_debug_hot, 512 + msm_mux_copy_phase, 513 + msm_mux_usb_phy, 514 + msm_mux_atest_char, 515 + msm_mux_unused1, 516 + msm_mux_qua_mi2s, 517 + msm_mux_mss_lte, 518 + msm_mux_swr_tx, 519 + msm_mux_aud_sb, 520 + msm_mux_unused2, 521 + msm_mux_swr_rx, 522 + msm_mux_edp_hot, 523 + msm_mux_audio_ref, 524 + msm_mux_pri_mi2s, 525 + msm_mux_pri_mi2s_ws, 526 + msm_mux_adsp_ext, 527 + msm_mux_edp_lcd, 528 + msm_mux_mclk2, 529 + msm_mux_m_voc, 530 + msm_mux_mclk1, 531 + msm_mux_qca_sb, 532 + msm_mux_qui_mi2s, 533 + msm_mux_dmic0_clk, 534 + msm_mux_sec_mi2s, 535 + msm_mux_dmic0_data, 536 + msm_mux_dmic1_clk, 537 + msm_mux_dmic1_data, 538 + msm_mux__, 539 + }; 540 + 541 + static const char * const qup00_groups[] = { 542 + "gpio0", "gpio1", "gpio2", "gpio3", 543 + }; 544 + static const char * const gpio_groups[] = { 545 + "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7", 546 + "gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14", 547 + "gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21", 548 + "gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28", 549 + "gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35", 550 + "gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42", 551 + "gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49", 552 + "gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56", 553 + "gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63", 554 + "gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70", 555 + "gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77", 556 + "gpio78", "gpio79", "gpio80", "gpio81", "gpio82", "gpio83", "gpio84", 557 + "gpio85", "gpio86", "gpio87", "gpio88", "gpio89", "gpio90", "gpio91", 558 + "gpio92", "gpio93", "gpio94", "gpio95", "gpio96", "gpio97", "gpio98", 559 + "gpio99", "gpio100", "gpio101", "gpio102", "gpio103", "gpio104", 560 + "gpio105", "gpio106", "gpio107", "gpio108", "gpio109", "gpio110", 561 + "gpio111", "gpio112", "gpio113", "gpio114", "gpio115", "gpio116", 562 + "gpio117", "gpio118", "gpio119", "gpio120", "gpio121", "gpio122", 563 + "gpio123", "gpio124", "gpio125", "gpio126", "gpio127", "gpio128", 564 + "gpio129", "gpio130", "gpio131", "gpio132", 565 + }; 566 + static const char * const qdss_groups[] = { 567 + "gpio0", "gpio1", "gpio2", "gpio3", "gpio20", "gpio21", "gpio34", "gpio35", 568 + "gpio36", "gpio42", "gpio41", "gpio43", "gpio44", "gpio45", "gpio46", 569 + "gpio47", "gpio48", "gpio49", "gpio80", "gpio81", "gpio82", "gpio83", 570 + "gpio84", "gpio85", "gpio86", "gpio91", "gpio92", "gpio94", "gpio96", 571 + "gpio100", "gpio102", "gpio114", "gpio115", "gpio116", "gpio117", "gpio118", 572 + }; 573 + static const char * const qup01_groups[] = { 574 + "gpio4", "gpio5", 575 + }; 576 + static const char * const qup02_groups[] = { 577 + "gpio6", "gpio7", "gpio8", "gpio9", 578 + }; 579 + static const char * const ddr_pxi0_groups[] = { 580 + "gpio6", "gpio7", 581 + }; 582 + static const char * const ddr_bist_groups[] = { 583 + "gpio7", "gpio8", "gpio9", "gpio10", 584 + }; 585 + static const char * const atest_tsens2_groups[] = { 586 + "gpio7", 587 + }; 588 + static const char * const vsense_trigger_groups[] = { 589 + "gpio7", 590 + }; 591 + static const char * const atest_usb1_groups[] = { 592 + "gpio7", 593 + }; 594 + static const char * const gp_pdm1_groups[] = { 595 + "gpio8", "gpio65", 596 + }; 597 + static const char * const phase_flag_groups[] = { 598 + "gpio8", "gpio9", "gpio23", "gpio24", "gpio25", "gpio26", "gpio28", 599 + "gpio29", "gpio30", "gpio53", "gpio54", "gpio55", "gpio56", "gpio57", 600 + "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio80", "gpio81", 601 + "gpio82", "gpio83", "gpio84", "gpio88", "gpio89", "gpio91", "gpio93", 602 + "gpio98", "gpio129", "gpio130", "gpio131", 603 + }; 604 + static const char * const dbg_out_groups[] = { 605 + "gpio9", 606 + }; 607 + static const char * const qup14_groups[] = { 608 + "gpio10", "gpio11", "gpio12", "gpio13", 609 + }; 610 + static const char * const atest_usb11_groups[] = { 611 + "gpio10", 612 + }; 613 + static const char * const ddr_pxi2_groups[] = { 614 + "gpio10", "gpio11", 615 + }; 616 + static const char * const atest_usb10_groups[] = { 617 + "gpio11", 618 + }; 619 + static const char * const jitter_bist_groups[] = { 620 + "gpio12", "gpio31", 621 + }; 622 + static const char * const ddr_pxi3_groups[] = { 623 + "gpio12", "gpio13", 624 + }; 625 + static const char * const pll_bypassnl_groups[] = { 626 + "gpio13", 627 + }; 628 + static const char * const pll_bist_groups[] = { 629 + "gpio13", "gpio32", 630 + }; 631 + static const char * const qup03_groups[] = { 632 + "gpio14", "gpio15", 633 + }; 634 + static const char * const pll_reset_groups[] = { 635 + "gpio14", 636 + }; 637 + static const char * const agera_pll_groups[] = { 638 + "gpio14", "gpio33", 639 + }; 640 + static const char * const qdss_cti_groups[] = { 641 + "gpio14", "gpio15", "gpio95", "gpio101", "gpio106", "gpio107", 642 + "gpio110", "gpio111", 643 + }; 644 + static const char * const qup04_groups[] = { 645 + "gpio16", "gpio17", 646 + }; 647 + static const char * const wlan2_adc1_groups[] = { 648 + "gpio16", 649 + }; 650 + static const char * const wlan2_adc0_groups[] = { 651 + "gpio17", 652 + }; 653 + static const char * const wsa_clk_groups[] = { 654 + "gpio18", 655 + }; 656 + static const char * const qup13_groups[] = { 657 + "gpio18", "gpio19", "gpio20", "gpio21", 658 + }; 659 + static const char * const ter_mi2s_groups[] = { 660 + "gpio18", "gpio19", "gpio20", "gpio21", 661 + }; 662 + static const char * const wsa_data_groups[] = { 663 + "gpio19", 664 + }; 665 + static const char * const qup10_groups[] = { 666 + "gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", 667 + }; 668 + static const char * const gcc_gp3_groups[] = { 669 + "gpio22", "gpio58", 670 + }; 671 + static const char * const qup12_groups[] = { 672 + "gpio28", "gpio29", 673 + }; 674 + static const char * const sd_write_groups[] = { 675 + "gpio29", 676 + }; 677 + static const char * const qup11_groups[] = { 678 + "gpio30", "gpio31", "gpio32", "gpio33", 679 + }; 680 + static const char * const cam_mclk_groups[] = { 681 + "gpio34", "gpio35", "gpio36", "gpio44", 682 + }; 683 + static const char * const atest_tsens_groups[] = { 684 + "gpio34", 685 + }; 686 + static const char * const cci_i2c_groups[] = { 687 + "gpio37", "gpio38", "gpio39", "gpio40", 688 + }; 689 + static const char * const cci_timer2_groups[] = { 690 + "gpio42", 691 + }; 692 + static const char * const cci_timer1_groups[] = { 693 + "gpio43", 694 + }; 695 + static const char * const gcc_gp2_groups[] = { 696 + "gpio43", "gpio44", 697 + }; 698 + static const char * const cci_async_groups[] = { 699 + "gpio44", "gpio47", "gpio48", 700 + }; 701 + static const char * const cci_timer4_groups[] = { 702 + "gpio44", 703 + }; 704 + static const char * const cci_timer0_groups[] = { 705 + "gpio45", 706 + }; 707 + static const char * const gcc_gp1_groups[] = { 708 + "gpio45", "gpio46", 709 + }; 710 + static const char * const cci_timer3_groups[] = { 711 + "gpio46", 712 + }; 713 + static const char * const wlan1_adc1_groups[] = { 714 + "gpio47", 715 + }; 716 + static const char * const wlan1_adc0_groups[] = { 717 + "gpio48", 718 + }; 719 + static const char * const qlink_request_groups[] = { 720 + "gpio50", 721 + }; 722 + static const char * const qlink_enable_groups[] = { 723 + "gpio51", 724 + }; 725 + static const char * const pa_indicator_groups[] = { 726 + "gpio52", 727 + }; 728 + static const char * const nav_pps_groups[] = { 729 + "gpio52", "gpio55", "gpio56", "gpio58", 730 + "gpio59", 731 + }; 732 + static const char * const gps_tx_groups[] = { 733 + "gpio52", "gpio53", "gpio55", "gpio56", "gpio58", "gpio59", 734 + }; 735 + static const char * const gp_pdm0_groups[] = { 736 + "gpio53", "gpio94", 737 + }; 738 + static const char * const atest_usb13_groups[] = { 739 + "gpio53", 740 + }; 741 + static const char * const ddr_pxi1_groups[] = { 742 + "gpio53", "gpio54", 743 + }; 744 + static const char * const atest_usb12_groups[] = { 745 + "gpio54", 746 + }; 747 + static const char * const cri_trng0_groups[] = { 748 + "gpio59", 749 + }; 750 + static const char * const cri_trng_groups[] = { 751 + "gpio60", 752 + }; 753 + static const char * const cri_trng1_groups[] = { 754 + "gpio61", 755 + }; 756 + static const char * const gp_pdm2_groups[] = { 757 + "gpio62", "gpio78", 758 + }; 759 + static const char * const sp_cmu_groups[] = { 760 + "gpio63", 761 + }; 762 + static const char * const atest_usb2_groups[] = { 763 + "gpio66", 764 + }; 765 + static const char * const atest_usb23_groups[] = { 766 + "gpio67", 767 + }; 768 + static const char * const uim2_data_groups[] = { 769 + "gpio72", 770 + }; 771 + static const char * const uim2_clk_groups[] = { 772 + "gpio73", 773 + }; 774 + static const char * const uim2_reset_groups[] = { 775 + "gpio74", 776 + }; 777 + static const char * const atest_usb22_groups[] = { 778 + "gpio74", 779 + }; 780 + static const char * const uim2_present_groups[] = { 781 + "gpio75", 782 + }; 783 + static const char * const atest_usb21_groups[] = { 784 + "gpio75", 785 + }; 786 + static const char * const uim1_data_groups[] = { 787 + "gpio76", 788 + }; 789 + static const char * const atest_usb20_groups[] = { 790 + "gpio76", 791 + }; 792 + static const char * const uim1_clk_groups[] = { 793 + "gpio77", 794 + }; 795 + static const char * const uim1_reset_groups[] = { 796 + "gpio78", 797 + }; 798 + static const char * const uim1_present_groups[] = { 799 + "gpio79", 800 + }; 801 + static const char * const mdp_vsync_groups[] = { 802 + "gpio80", "gpio81", "gpio82", "gpio89", "gpio96", "gpio97", 803 + }; 804 + static const char * const copy_gp_groups[] = { 805 + "gpio85", 806 + }; 807 + static const char * const tsense_pwm_groups[] = { 808 + "gpio87", 809 + }; 810 + static const char * const mpm_pwr_groups[] = { 811 + "gpio88", 812 + }; 813 + static const char * const tgu_ch3_groups[] = { 814 + "gpio88", 815 + }; 816 + static const char * const mdp_vsync0_groups[] = { 817 + "gpio89", 818 + }; 819 + static const char * const mdp_vsync1_groups[] = { 820 + "gpio89", 821 + }; 822 + static const char * const mdp_vsync2_groups[] = { 823 + "gpio89", 824 + }; 825 + static const char * const mdp_vsync3_groups[] = { 826 + "gpio89", 827 + }; 828 + static const char * const mdp_vsync4_groups[] = { 829 + "gpio89", 830 + }; 831 + static const char * const mdp_vsync5_groups[] = { 832 + "gpio89", 833 + }; 834 + static const char * const tgu_ch0_groups[] = { 835 + "gpio89", 836 + }; 837 + static const char * const tgu_ch1_groups[] = { 838 + "gpio90", 839 + }; 840 + static const char * const atest_char1_groups[] = { 841 + "gpio90", 842 + }; 843 + static const char * const vfr_1_groups[] = { 844 + "gpio91", 845 + }; 846 + static const char * const tgu_ch2_groups[] = { 847 + "gpio91", 848 + }; 849 + static const char * const atest_char0_groups[] = { 850 + "gpio92", 851 + }; 852 + static const char * const atest_char2_groups[] = { 853 + "gpio93", 854 + }; 855 + static const char * const atest_char3_groups[] = { 856 + "gpio94", 857 + }; 858 + static const char * const ldo_en_groups[] = { 859 + "gpio96", 860 + }; 861 + static const char * const ldo_update_groups[] = { 862 + "gpio97", 863 + }; 864 + static const char * const prng_rosc_groups[] = { 865 + "gpio98", "gpio100", 866 + }; 867 + static const char * const dp_hot_groups[] = { 868 + "gpio100", 869 + }; 870 + static const char * const debug_hot_groups[] = { 871 + "gpio101", 872 + }; 873 + static const char * const copy_phase_groups[] = { 874 + "gpio101", 875 + }; 876 + static const char * const usb_phy_groups[] = { 877 + "gpio102", 878 + }; 879 + static const char * const atest_char_groups[] = { 880 + "gpio102", 881 + }; 882 + static const char * const unused1_groups[] = { 883 + "gpio104", 884 + }; 885 + static const char * const qua_mi2s_groups[] = { 886 + "gpio104", "gpio106", "gpio107", "gpio108", "gpio110", "gpio111", 887 + }; 888 + static const char * const mss_lte_groups[] = { 889 + "gpio105", "gpio109", 890 + }; 891 + static const char * const swr_tx_groups[] = { 892 + "gpio106", "gpio107", "gpio108", "gpio109", 893 + }; 894 + static const char * const aud_sb_groups[] = { 895 + "gpio106", "gpio107", "gpio108", "gpio109", 896 + }; 897 + static const char * const unused2_groups[] = { 898 + "gpio109", 899 + }; 900 + static const char * const swr_rx_groups[] = { 901 + "gpio110", "gpio111", "gpio112", 902 + }; 903 + static const char * const edp_hot_groups[] = { 904 + "gpio111", 905 + }; 906 + static const char * const audio_ref_groups[] = { 907 + "gpio112", 908 + }; 909 + static const char * const pri_mi2s_groups[] = { 910 + "gpio113", "gpio115", "gpio116", 911 + }; 912 + static const char * const pri_mi2s_ws_groups[] = { 913 + "gpio114", 914 + }; 915 + static const char * const adsp_ext_groups[] = { 916 + "gpio116", 917 + }; 918 + static const char * const edp_lcd_groups[] = { 919 + "gpio117", 920 + }; 921 + static const char * const mclk2_groups[] = { 922 + "gpio118", 923 + }; 924 + static const char * const m_voc_groups[] = { 925 + "gpio118", 926 + }; 927 + static const char * const mclk1_groups[] = { 928 + "gpio119", 929 + }; 930 + static const char * const qca_sb_groups[] = { 931 + "gpio121", "gpio122", 932 + }; 933 + static const char * const qui_mi2s_groups[] = { 934 + "gpio121", "gpio122", "gpio123", "gpio124", 935 + }; 936 + static const char * const dmic0_clk_groups[] = { 937 + "gpio125", 938 + }; 939 + static const char * const sec_mi2s_groups[] = { 940 + "gpio125", "gpio126", "gpio127", "gpio128", 941 + }; 942 + static const char * const dmic0_data_groups[] = { 943 + "gpio126", 944 + }; 945 + static const char * const dmic1_clk_groups[] = { 946 + "gpio127", 947 + }; 948 + static const char * const dmic1_data_groups[] = { 949 + "gpio128", 950 + }; 951 + 952 + static const struct msm_function sm6125_functions[] = { 953 + FUNCTION(qup00), 954 + FUNCTION(gpio), 955 + FUNCTION(qdss), 956 + FUNCTION(qup01), 957 + FUNCTION(qup02), 958 + FUNCTION(ddr_pxi0), 959 + FUNCTION(ddr_bist), 960 + FUNCTION(atest_tsens2), 961 + FUNCTION(vsense_trigger), 962 + FUNCTION(atest_usb1), 963 + FUNCTION(gp_pdm1), 964 + FUNCTION(phase_flag), 965 + FUNCTION(dbg_out), 966 + FUNCTION(qup14), 967 + FUNCTION(atest_usb11), 968 + FUNCTION(ddr_pxi2), 969 + FUNCTION(atest_usb10), 970 + FUNCTION(jitter_bist), 971 + FUNCTION(ddr_pxi3), 972 + FUNCTION(pll_bypassnl), 973 + FUNCTION(pll_bist), 974 + FUNCTION(qup03), 975 + FUNCTION(pll_reset), 976 + FUNCTION(agera_pll), 977 + FUNCTION(qdss_cti), 978 + FUNCTION(qup04), 979 + FUNCTION(wlan2_adc1), 980 + FUNCTION(wlan2_adc0), 981 + FUNCTION(wsa_clk), 982 + FUNCTION(qup13), 983 + FUNCTION(ter_mi2s), 984 + FUNCTION(wsa_data), 985 + FUNCTION(qup10), 986 + FUNCTION(gcc_gp3), 987 + FUNCTION(qup12), 988 + FUNCTION(sd_write), 989 + FUNCTION(qup11), 990 + FUNCTION(cam_mclk), 991 + FUNCTION(atest_tsens), 992 + FUNCTION(cci_i2c), 993 + FUNCTION(cci_timer2), 994 + FUNCTION(cci_timer1), 995 + FUNCTION(gcc_gp2), 996 + FUNCTION(cci_async), 997 + FUNCTION(cci_timer4), 998 + FUNCTION(cci_timer0), 999 + FUNCTION(gcc_gp1), 1000 + FUNCTION(cci_timer3), 1001 + FUNCTION(wlan1_adc1), 1002 + FUNCTION(wlan1_adc0), 1003 + FUNCTION(qlink_request), 1004 + FUNCTION(qlink_enable), 1005 + FUNCTION(pa_indicator), 1006 + FUNCTION(nav_pps), 1007 + FUNCTION(gps_tx), 1008 + FUNCTION(gp_pdm0), 1009 + FUNCTION(atest_usb13), 1010 + FUNCTION(ddr_pxi1), 1011 + FUNCTION(atest_usb12), 1012 + FUNCTION(cri_trng0), 1013 + FUNCTION(cri_trng), 1014 + FUNCTION(cri_trng1), 1015 + FUNCTION(gp_pdm2), 1016 + FUNCTION(sp_cmu), 1017 + FUNCTION(atest_usb2), 1018 + FUNCTION(atest_usb23), 1019 + FUNCTION(uim2_data), 1020 + FUNCTION(uim2_clk), 1021 + FUNCTION(uim2_reset), 1022 + FUNCTION(atest_usb22), 1023 + FUNCTION(uim2_present), 1024 + FUNCTION(atest_usb21), 1025 + FUNCTION(uim1_data), 1026 + FUNCTION(atest_usb20), 1027 + FUNCTION(uim1_clk), 1028 + FUNCTION(uim1_reset), 1029 + FUNCTION(uim1_present), 1030 + FUNCTION(mdp_vsync), 1031 + FUNCTION(copy_gp), 1032 + FUNCTION(tsense_pwm), 1033 + FUNCTION(mpm_pwr), 1034 + FUNCTION(tgu_ch3), 1035 + FUNCTION(mdp_vsync0), 1036 + FUNCTION(mdp_vsync1), 1037 + FUNCTION(mdp_vsync2), 1038 + FUNCTION(mdp_vsync3), 1039 + FUNCTION(mdp_vsync4), 1040 + FUNCTION(mdp_vsync5), 1041 + FUNCTION(tgu_ch0), 1042 + FUNCTION(tgu_ch1), 1043 + FUNCTION(atest_char1), 1044 + FUNCTION(vfr_1), 1045 + FUNCTION(tgu_ch2), 1046 + FUNCTION(atest_char0), 1047 + FUNCTION(atest_char2), 1048 + FUNCTION(atest_char3), 1049 + FUNCTION(ldo_en), 1050 + FUNCTION(ldo_update), 1051 + FUNCTION(prng_rosc), 1052 + FUNCTION(dp_hot), 1053 + FUNCTION(debug_hot), 1054 + FUNCTION(copy_phase), 1055 + FUNCTION(usb_phy), 1056 + FUNCTION(atest_char), 1057 + FUNCTION(unused1), 1058 + FUNCTION(qua_mi2s), 1059 + FUNCTION(mss_lte), 1060 + FUNCTION(swr_tx), 1061 + FUNCTION(aud_sb), 1062 + FUNCTION(unused2), 1063 + FUNCTION(swr_rx), 1064 + FUNCTION(edp_hot), 1065 + FUNCTION(audio_ref), 1066 + FUNCTION(pri_mi2s), 1067 + FUNCTION(pri_mi2s_ws), 1068 + FUNCTION(adsp_ext), 1069 + FUNCTION(edp_lcd), 1070 + FUNCTION(mclk2), 1071 + FUNCTION(m_voc), 1072 + FUNCTION(mclk1), 1073 + FUNCTION(qca_sb), 1074 + FUNCTION(qui_mi2s), 1075 + FUNCTION(dmic0_clk), 1076 + FUNCTION(sec_mi2s), 1077 + FUNCTION(dmic0_data), 1078 + FUNCTION(dmic1_clk), 1079 + FUNCTION(dmic1_data), 1080 + }; 1081 + 1082 + /* 1083 + * Every pin is maintained as a single group, and missing or non-existing pin 1084 + * would be maintained as dummy group to synchronize pin group index with 1085 + * pin descriptor registered with pinctrl core. 1086 + * Clients would not be able to request these dummy pin groups. 1087 + */ 1088 + static const struct msm_pingroup sm6125_groups[] = { 1089 + [0] = PINGROUP(0, WEST, qup00, _, qdss, _, _, _, _, _, _), 1090 + [1] = PINGROUP(1, WEST, qup00, _, qdss, _, _, _, _, _, _), 1091 + [2] = PINGROUP(2, WEST, qup00, _, qdss, _, _, _, _, _, _), 1092 + [3] = PINGROUP(3, WEST, qup00, _, qdss, _, _, _, _, _, _), 1093 + [4] = PINGROUP(4, WEST, qup01, _, _, _, _, _, _, _, _), 1094 + [5] = PINGROUP(5, WEST, qup01, _, _, _, _, _, _, _, _), 1095 + [6] = PINGROUP(6, WEST, qup02, ddr_pxi0, _, _, _, _, _, _, _), 1096 + [7] = PINGROUP(7, WEST, qup02, ddr_bist, atest_tsens2, vsense_trigger, atest_usb1, ddr_pxi0, _, _, _), 1097 + [8] = PINGROUP(8, WEST, qup02, gp_pdm1, ddr_bist, _, phase_flag, _, _, _, _), 1098 + [9] = PINGROUP(9, WEST, qup02, ddr_bist, dbg_out, phase_flag, _, _, _, _, _), 1099 + [10] = PINGROUP(10, EAST, qup14, ddr_bist, atest_usb11, ddr_pxi2, _, _, _, _, _), 1100 + [11] = PINGROUP(11, EAST, qup14, atest_usb10, ddr_pxi2, _, _, _, _, _, _), 1101 + [12] = PINGROUP(12, EAST, qup14, jitter_bist, ddr_pxi3, _, _, _, _, _, _), 1102 + [13] = PINGROUP(13, EAST, qup14, pll_bypassnl, pll_bist, _, ddr_pxi3, _, _, _, _), 1103 + [14] = PINGROUP(14, WEST, qup03, qup03, pll_reset, agera_pll, _, qdss_cti, _, _, _), 1104 + [15] = PINGROUP(15, WEST, qup03, qup03, qdss_cti, _, _, _, _, _, _), 1105 + [16] = PINGROUP(16, WEST, qup04, qup04, _, wlan2_adc1, _, _, _, _, _), 1106 + [17] = PINGROUP(17, WEST, qup04, qup04, _, wlan2_adc0, _, _, _, _, _), 1107 + [18] = PINGROUP(18, EAST, wsa_clk, qup13, ter_mi2s, _, _, _, _, _, _), 1108 + [19] = PINGROUP(19, EAST, wsa_data, qup13, ter_mi2s, _, _, _, _, _, _), 1109 + [20] = PINGROUP(20, EAST, qup13, ter_mi2s, qdss, _, _, _, _, _, _), 1110 + [21] = PINGROUP(21, EAST, qup13, ter_mi2s, _, qdss, _, _, _, _, _), 1111 + [22] = PINGROUP(22, WEST, qup10, gcc_gp3, _, _, _, _, _, _, _), 1112 + [23] = PINGROUP(23, WEST, qup10, _, phase_flag, _, _, _, _, _, _), 1113 + [24] = PINGROUP(24, WEST, qup10, _, phase_flag, _, _, _, _, _, _), 1114 + [25] = PINGROUP(25, WEST, qup10, _, phase_flag, _, _, _, _, _, _), 1115 + [26] = PINGROUP(26, WEST, qup10, _, phase_flag, _, _, _, _, _, _), 1116 + [27] = PINGROUP(27, WEST, qup10, _, _, _, _, _, _, _, _), 1117 + [28] = PINGROUP(28, WEST, qup12, _, phase_flag, _, _, _, _, _, _), 1118 + [29] = PINGROUP(29, WEST, qup12, sd_write, _, phase_flag, _, _, _, _, _), 1119 + [30] = PINGROUP(30, WEST, qup11, _, phase_flag, _, _, _, _, _, _), 1120 + [31] = PINGROUP(31, WEST, qup11, jitter_bist, _, _, _, _, _, _, _), 1121 + [32] = PINGROUP(32, WEST, qup11, pll_bist, _, _, _, _, _, _, _), 1122 + [33] = PINGROUP(33, WEST, qup11, agera_pll, _, _, _, _, _, _, _), 1123 + [34] = PINGROUP(34, SOUTH, cam_mclk, _, qdss, atest_tsens, _, _, _, _, _), 1124 + [35] = PINGROUP(35, SOUTH, cam_mclk, _, qdss, _, _, _, _, _, _), 1125 + [36] = PINGROUP(36, SOUTH, cam_mclk, _, qdss, _, _, _, _, _, _), 1126 + [37] = PINGROUP(37, SOUTH, cci_i2c, _, _, _, _, _, _, _, _), 1127 + [38] = PINGROUP(38, EAST, cci_i2c, _, _, _, _, _, _, _, _), 1128 + [39] = PINGROUP(39, EAST, cci_i2c, _, _, _, _, _, _, _, _), 1129 + [40] = PINGROUP(40, EAST, cci_i2c, _, _, _, _, _, _, _, _), 1130 + [41] = PINGROUP(41, EAST, _, qdss, _, _, _, _, _, _, _), 1131 + [42] = PINGROUP(42, EAST, cci_timer2, _, qdss, _, _, _, _, _, _), 1132 + [43] = PINGROUP(43, EAST, cci_timer1, _, gcc_gp2, _, qdss, _, _, _, _), 1133 + [44] = PINGROUP(44, SOUTH, cci_async, cci_timer4, _, gcc_gp2, _, qdss, cam_mclk, _, _), 1134 + [45] = PINGROUP(45, SOUTH, cci_timer0, _, gcc_gp1, qdss, _, _, _, _, _), 1135 + [46] = PINGROUP(46, SOUTH, cci_timer3, _, gcc_gp1, _, qdss, _, _, _, _), 1136 + [47] = PINGROUP(47, SOUTH, cci_async, _, qdss, wlan1_adc1, _, _, _, _, _), 1137 + [48] = PINGROUP(48, SOUTH, cci_async, _, qdss, wlan1_adc0, _, _, _, _, _), 1138 + [49] = PINGROUP(49, SOUTH, qdss, _, _, _, _, _, _, _, _), 1139 + [50] = PINGROUP(50, SOUTH, qlink_request, _, _, _, _, _, _, _, _), 1140 + [51] = PINGROUP(51, SOUTH, qlink_enable, _, _, _, _, _, _, _, _), 1141 + [52] = PINGROUP(52, SOUTH, pa_indicator, nav_pps, nav_pps, gps_tx, _, _, _, _, _), 1142 + [53] = PINGROUP(53, SOUTH, _, gps_tx, gp_pdm0, _, phase_flag, atest_usb13, ddr_pxi1, _, _), 1143 + [54] = PINGROUP(54, SOUTH, _, _, phase_flag, atest_usb12, ddr_pxi1, _, _, _, _), 1144 + [55] = PINGROUP(55, SOUTH, _, nav_pps, nav_pps, gps_tx, _, phase_flag, _, _, _), 1145 + [56] = PINGROUP(56, SOUTH, _, nav_pps, gps_tx, nav_pps, phase_flag, _, _, _, _), 1146 + [57] = PINGROUP(57, SOUTH, _, phase_flag, _, _, _, _, _, _, _), 1147 + [58] = PINGROUP(58, SOUTH, _, nav_pps, nav_pps, gps_tx, gcc_gp3, _, phase_flag, _, _), 1148 + [59] = PINGROUP(59, SOUTH, _, nav_pps, nav_pps, gps_tx, cri_trng0, _, phase_flag, _, _), 1149 + [60] = PINGROUP(60, SOUTH, _, cri_trng, _, phase_flag, _, _, _, _, _), 1150 + [61] = PINGROUP(61, SOUTH, _, cri_trng1, _, phase_flag, _, _, _, _, _), 1151 + [62] = PINGROUP(62, SOUTH, _, _, gp_pdm2, _, phase_flag, _, _, _, _), 1152 + [63] = PINGROUP(63, SOUTH, _, sp_cmu, _, _, _, _, _, _, _), 1153 + [64] = PINGROUP(64, SOUTH, _, _, _, _, _, _, _, _, _), 1154 + [65] = PINGROUP(65, SOUTH, _, gp_pdm1, _, _, _, _, _, _, _), 1155 + [66] = PINGROUP(66, SOUTH, _, _, atest_usb2, _, _, _, _, _, _), 1156 + [67] = PINGROUP(67, SOUTH, _, _, atest_usb23, _, _, _, _, _, _), 1157 + [68] = PINGROUP(68, SOUTH, _, _, _, _, _, _, _, _, _), 1158 + [69] = PINGROUP(69, SOUTH, _, _, _, _, _, _, _, _, _), 1159 + [70] = PINGROUP(70, SOUTH, _, _, _, _, _, _, _, _, _), 1160 + [71] = PINGROUP(71, SOUTH, _, _, _, _, _, _, _, _, _), 1161 + [72] = PINGROUP(72, SOUTH, uim2_data, _, _, _, _, _, _, _, _), 1162 + [73] = PINGROUP(73, SOUTH, uim2_clk, _, _, _, _, _, _, _, _), 1163 + [74] = PINGROUP(74, SOUTH, uim2_reset, _, atest_usb22, _, _, _, _, _, _), 1164 + [75] = PINGROUP(75, SOUTH, uim2_present, _, atest_usb21, _, _, _, _, _, _), 1165 + [76] = PINGROUP(76, SOUTH, uim1_data, _, atest_usb20, _, _, _, _, _, _), 1166 + [77] = PINGROUP(77, SOUTH, uim1_clk, _, _, _, _, _, _, _, _), 1167 + [78] = PINGROUP(78, SOUTH, uim1_reset, gp_pdm2, _, _, _, _, _, _, _), 1168 + [79] = PINGROUP(79, SOUTH, uim1_present, _, _, _, _, _, _, _, _), 1169 + [80] = PINGROUP(80, SOUTH, mdp_vsync, _, phase_flag, qdss, _, _, _, _, _), 1170 + [81] = PINGROUP(81, SOUTH, mdp_vsync, _, phase_flag, qdss, _, _, _, _, _), 1171 + [82] = PINGROUP(82, SOUTH, mdp_vsync, _, phase_flag, qdss, _, _, _, _, _), 1172 + [83] = PINGROUP(83, SOUTH, _, phase_flag, qdss, _, _, _, _, _, _), 1173 + [84] = PINGROUP(84, SOUTH, _, phase_flag, qdss, _, _, _, _, _, _), 1174 + [85] = PINGROUP(85, SOUTH, copy_gp, _, qdss, _, _, _, _, _, _), 1175 + [86] = PINGROUP(86, SOUTH, _, qdss, _, _, _, _, _, _, _), 1176 + [87] = PINGROUP(87, WEST, tsense_pwm, _, _, _, _, _, _, _, _), 1177 + [88] = PINGROUP(88, WEST, mpm_pwr, tgu_ch3, _, phase_flag, _, _, _, _, _), 1178 + [89] = PINGROUP(89, WEST, mdp_vsync, mdp_vsync0, mdp_vsync1, mdp_vsync2, mdp_vsync3, mdp_vsync4, mdp_vsync5, tgu_ch0, _), 1179 + [90] = PINGROUP(90, WEST, tgu_ch1, atest_char1, _, _, _, _, _, _, _), 1180 + [91] = PINGROUP(91, WEST, vfr_1, tgu_ch2, _, phase_flag, qdss, _, _, _, _), 1181 + [92] = PINGROUP(92, WEST, qdss, atest_char0, _, _, _, _, _, _, _), 1182 + [93] = PINGROUP(93, WEST, _, phase_flag, atest_char2, _, _, _, _, _, _), 1183 + [94] = PINGROUP(94, SOUTH, gp_pdm0, _, qdss, atest_char3, _, _, _, _, _), 1184 + [95] = PINGROUP(95, SOUTH, qdss_cti, _, _, _, _, _, _, _, _), 1185 + [96] = PINGROUP(96, SOUTH, mdp_vsync, ldo_en, qdss, _, _, _, _, _, _), 1186 + [97] = PINGROUP(97, SOUTH, mdp_vsync, ldo_update, _, _, _, _, _, _, _), 1187 + [98] = PINGROUP(98, SOUTH, _, phase_flag, prng_rosc, _, _, _, _, _, _), 1188 + [99] = PINGROUP(99, SOUTH, _, _, _, _, _, _, _, _, _), 1189 + [100] = PINGROUP(100, SOUTH, dp_hot, prng_rosc, qdss, _, _, _, _, _, _), 1190 + [101] = PINGROUP(101, SOUTH, debug_hot, copy_phase, qdss_cti, _, _, _, _, _, _), 1191 + [102] = PINGROUP(102, SOUTH, usb_phy, _, qdss, atest_char, _, _, _, _, _), 1192 + [103] = PINGROUP(103, SOUTH, _, _, _, _, _, _, _, _, _), 1193 + [104] = PINGROUP(104, EAST, unused1, _, qua_mi2s, _, _, _, _, _, _), 1194 + [105] = PINGROUP(105, EAST, mss_lte, _, _, _, _, _, _, _, _), 1195 + [106] = PINGROUP(106, EAST, swr_tx, aud_sb, qua_mi2s, _, qdss_cti, _, _, _, _), 1196 + [107] = PINGROUP(107, EAST, swr_tx, aud_sb, qua_mi2s, _, qdss_cti, _, _, _, _), 1197 + [108] = PINGROUP(108, EAST, swr_tx, aud_sb, qua_mi2s, _, _, _, _, _, _), 1198 + [109] = PINGROUP(109, EAST, swr_tx, aud_sb, unused2, _, mss_lte, _, _, _, _), 1199 + [110] = PINGROUP(110, EAST, swr_rx, qua_mi2s, _, qdss_cti, _, _, _, _, _), 1200 + [111] = PINGROUP(111, EAST, swr_rx, qua_mi2s, edp_hot, _, qdss_cti, _, _, _, _), 1201 + [112] = PINGROUP(112, EAST, swr_rx, audio_ref, _, _, _, _, _, _, _), 1202 + [113] = PINGROUP(113, EAST, pri_mi2s, _, _, _, _, _, _, _, _), 1203 + [114] = PINGROUP(114, EAST, pri_mi2s_ws, qdss, _, _, _, _, _, _, _), 1204 + [115] = PINGROUP(115, EAST, pri_mi2s, qdss, _, _, _, _, _, _, _), 1205 + [116] = PINGROUP(116, EAST, pri_mi2s, adsp_ext, qdss, _, _, _, _, _, _), 1206 + [117] = PINGROUP(117, SOUTH, edp_lcd, qdss, _, _, _, _, _, _, _), 1207 + [118] = PINGROUP(118, SOUTH, mclk2, m_voc, qdss, _, _, _, _, _, _), 1208 + [119] = PINGROUP(119, SOUTH, mclk1, _, _, _, _, _, _, _, _), 1209 + [120] = PINGROUP(120, SOUTH, _, _, _, _, _, _, _, _, _), 1210 + [121] = PINGROUP(121, EAST, qca_sb, qui_mi2s, _, _, _, _, _, _, _), 1211 + [122] = PINGROUP(122, EAST, qca_sb, qui_mi2s, _, _, _, _, _, _, _), 1212 + [123] = PINGROUP(123, EAST, qui_mi2s, _, _, _, _, _, _, _, _), 1213 + [124] = PINGROUP(124, EAST, qui_mi2s, _, _, _, _, _, _, _, _), 1214 + [125] = PINGROUP(125, EAST, dmic0_clk, sec_mi2s, _, _, _, _, _, _, _), 1215 + [126] = PINGROUP(126, EAST, dmic0_data, sec_mi2s, _, _, _, _, _, _, _), 1216 + [127] = PINGROUP(127, EAST, dmic1_clk, sec_mi2s, _, _, _, _, _, _, _), 1217 + [128] = PINGROUP(128, EAST, dmic1_data, sec_mi2s, _, _, _, _, _, _, _), 1218 + [129] = PINGROUP(129, SOUTH, _, phase_flag, _, _, _, _, _, _, _), 1219 + [130] = PINGROUP(130, SOUTH, phase_flag, _, _, _, _, _, _, _, _), 1220 + [131] = PINGROUP(131, SOUTH, phase_flag, _, _, _, _, _, _, _, _), 1221 + [132] = PINGROUP(132, SOUTH, _, _, _, _, _, _, _, _, _), 1222 + [133] = UFS_RESET(ufs_reset, 0x190000), 1223 + [134] = SDC_QDSD_PINGROUP(sdc1_rclk, WEST, 0x18d000, 15, 0), 1224 + [135] = SDC_QDSD_PINGROUP(sdc1_clk, WEST, 0x18d000, 13, 6), 1225 + [136] = SDC_QDSD_PINGROUP(sdc1_cmd, WEST, 0x18d000, 11, 3), 1226 + [137] = SDC_QDSD_PINGROUP(sdc1_data, WEST, 0x18d000, 9, 0), 1227 + [138] = SDC_QDSD_PINGROUP(sdc2_clk, SOUTH, 0x58b000, 14, 6), 1228 + [139] = SDC_QDSD_PINGROUP(sdc2_cmd, SOUTH, 0x58b000, 11, 3), 1229 + [140] = SDC_QDSD_PINGROUP(sdc2_data, SOUTH, 0x58b000, 9, 0), 1230 + }; 1231 + 1232 + static const struct msm_pinctrl_soc_data sm6125_tlmm = { 1233 + .pins = sm6125_pins, 1234 + .npins = ARRAY_SIZE(sm6125_pins), 1235 + .functions = sm6125_functions, 1236 + .nfunctions = ARRAY_SIZE(sm6125_functions), 1237 + .groups = sm6125_groups, 1238 + .ngroups = ARRAY_SIZE(sm6125_groups), 1239 + .ngpios = 134, 1240 + .tiles = sm6125_tiles, 1241 + .ntiles = ARRAY_SIZE(sm6125_tiles), 1242 + }; 1243 + 1244 + static int sm6125_tlmm_probe(struct platform_device *pdev) 1245 + { 1246 + return msm_pinctrl_probe(pdev, &sm6125_tlmm); 1247 + } 1248 + 1249 + static const struct of_device_id sm6125_tlmm_of_match[] = { 1250 + { .compatible = "qcom,sm6125-tlmm", }, 1251 + { }, 1252 + }; 1253 + 1254 + static struct platform_driver sm6125_tlmm_driver = { 1255 + .driver = { 1256 + .name = "sm6125-tlmm", 1257 + .of_match_table = sm6125_tlmm_of_match, 1258 + }, 1259 + .probe = sm6125_tlmm_probe, 1260 + .remove = msm_pinctrl_remove, 1261 + }; 1262 + 1263 + static int __init sm6125_tlmm_init(void) 1264 + { 1265 + return platform_driver_register(&sm6125_tlmm_driver); 1266 + } 1267 + arch_initcall(sm6125_tlmm_init); 1268 + 1269 + static void __exit sm6125_tlmm_exit(void) 1270 + { 1271 + platform_driver_unregister(&sm6125_tlmm_driver); 1272 + } 1273 + module_exit(sm6125_tlmm_exit); 1274 + 1275 + MODULE_DESCRIPTION("QTI sm6125 TLMM driver"); 1276 + MODULE_LICENSE("GPL v2"); 1277 + MODULE_DEVICE_TABLE(of, sm6125_tlmm_of_match);
+1
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c
··· 1131 1131 { .compatible = "qcom,pm8350b-gpio", .data = (void *) 8 }, 1132 1132 { .compatible = "qcom,pm8350c-gpio", .data = (void *) 9 }, 1133 1133 { .compatible = "qcom,pmk8350-gpio", .data = (void *) 4 }, 1134 + { .compatible = "qcom,pm7325-gpio", .data = (void *) 10 }, 1134 1135 { .compatible = "qcom,pmr735a-gpio", .data = (void *) 4 }, 1135 1136 { .compatible = "qcom,pmr735b-gpio", .data = (void *) 4 }, 1136 1137 { .compatible = "qcom,pm6150-gpio", .data = (void *) 10 },
+1
drivers/pinctrl/qcom/pinctrl-spmi-mpp.c
··· 920 920 { .compatible = "qcom,pmi8950-mpp" }, /* 4 MPP's */ 921 921 { .compatible = "qcom,pm8994-mpp" }, /* 8 MPP's */ 922 922 { .compatible = "qcom,pma8084-mpp" }, /* 8 MPP's */ 923 + { .compatible = "qcom,pmi8994-mpp" }, /* 4 MPP's */ 923 924 { .compatible = "qcom,spmi-mpp" }, /* Generic */ 924 925 { }, 925 926 };
+25
drivers/pinctrl/ralink/Kconfig
··· 11 11 select PINMUX 12 12 select GENERIC_PINCONF 13 13 14 + config PINCTRL_MT7620 15 + bool "mt7620 pinctrl driver for RALINK/Mediatek SOCs" 16 + depends on RALINK && SOC_MT7620 17 + select PINCTRL_RT2880 18 + 19 + config PINCTRL_MT7621 20 + bool "mt7621 pinctrl driver for RALINK/Mediatek SOCs" 21 + depends on RALINK && SOC_MT7621 22 + select PINCTRL_RT2880 23 + 24 + config PINCTRL_RT288X 25 + bool "RT288X pinctrl driver for RALINK/Mediatek SOCs" 26 + depends on RALINK && SOC_RT288X 27 + select PINCTRL_RT2880 28 + 29 + config PINCTRL_RT305X 30 + bool "RT305X pinctrl driver for RALINK/Mediatek SOCs" 31 + depends on RALINK && SOC_RT305X 32 + select PINCTRL_RT2880 33 + 34 + config PINCTRL_RT3883 35 + bool "RT3883 pinctrl driver for RALINK/Mediatek SOCs" 36 + depends on RALINK && SOC_RT3883 37 + select PINCTRL_RT2880 38 + 14 39 endmenu
+6
drivers/pinctrl/ralink/Makefile
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 2 obj-$(CONFIG_PINCTRL_RT2880) += pinctrl-rt2880.o 3 + 4 + obj-$(CONFIG_PINCTRL_MT7620) += pinctrl-mt7620.o 5 + obj-$(CONFIG_PINCTRL_MT7621) += pinctrl-mt7621.o 6 + obj-$(CONFIG_PINCTRL_RT288X) += pinctrl-rt288x.o 7 + obj-$(CONFIG_PINCTRL_RT305X) += pinctrl-rt305x.o 8 + obj-$(CONFIG_PINCTRL_RT3883) += pinctrl-rt3883.o
+390
drivers/pinctrl/ralink/pinctrl-mt7620.c
··· 1 + // SPDX-License-Identifier: GPL-2.0-only 2 + 3 + #include <asm/mach-ralink/mt7620.h> 4 + #include <linux/module.h> 5 + #include <linux/platform_device.h> 6 + #include <linux/of.h> 7 + #include "pinmux.h" 8 + 9 + #define MT7620_GPIO_MODE_UART0_SHIFT 2 10 + #define MT7620_GPIO_MODE_UART0_MASK 0x7 11 + #define MT7620_GPIO_MODE_UART0(x) ((x) << MT7620_GPIO_MODE_UART0_SHIFT) 12 + #define MT7620_GPIO_MODE_UARTF 0x0 13 + #define MT7620_GPIO_MODE_PCM_UARTF 0x1 14 + #define MT7620_GPIO_MODE_PCM_I2S 0x2 15 + #define MT7620_GPIO_MODE_I2S_UARTF 0x3 16 + #define MT7620_GPIO_MODE_PCM_GPIO 0x4 17 + #define MT7620_GPIO_MODE_GPIO_UARTF 0x5 18 + #define MT7620_GPIO_MODE_GPIO_I2S 0x6 19 + #define MT7620_GPIO_MODE_GPIO 0x7 20 + 21 + #define MT7620_GPIO_MODE_NAND 0 22 + #define MT7620_GPIO_MODE_SD 1 23 + #define MT7620_GPIO_MODE_ND_SD_GPIO 2 24 + #define MT7620_GPIO_MODE_ND_SD_MASK 0x3 25 + #define MT7620_GPIO_MODE_ND_SD_SHIFT 18 26 + 27 + #define MT7620_GPIO_MODE_PCIE_RST 0 28 + #define MT7620_GPIO_MODE_PCIE_REF 1 29 + #define MT7620_GPIO_MODE_PCIE_GPIO 2 30 + #define MT7620_GPIO_MODE_PCIE_MASK 0x3 31 + #define MT7620_GPIO_MODE_PCIE_SHIFT 16 32 + 33 + #define MT7620_GPIO_MODE_WDT_RST 0 34 + #define MT7620_GPIO_MODE_WDT_REF 1 35 + #define MT7620_GPIO_MODE_WDT_GPIO 2 36 + #define MT7620_GPIO_MODE_WDT_MASK 0x3 37 + #define MT7620_GPIO_MODE_WDT_SHIFT 21 38 + 39 + #define MT7620_GPIO_MODE_MDIO 0 40 + #define MT7620_GPIO_MODE_MDIO_REFCLK 1 41 + #define MT7620_GPIO_MODE_MDIO_GPIO 2 42 + #define MT7620_GPIO_MODE_MDIO_MASK 0x3 43 + #define MT7620_GPIO_MODE_MDIO_SHIFT 7 44 + 45 + #define MT7620_GPIO_MODE_I2C 0 46 + #define MT7620_GPIO_MODE_UART1 5 47 + #define MT7620_GPIO_MODE_RGMII1 9 48 + #define MT7620_GPIO_MODE_RGMII2 10 49 + #define MT7620_GPIO_MODE_SPI 11 50 + #define MT7620_GPIO_MODE_SPI_REF_CLK 12 51 + #define MT7620_GPIO_MODE_WLED 13 52 + #define MT7620_GPIO_MODE_JTAG 15 53 + #define MT7620_GPIO_MODE_EPHY 15 54 + #define MT7620_GPIO_MODE_PA 20 55 + 56 + static struct rt2880_pmx_func i2c_grp[] = { FUNC("i2c", 0, 1, 2) }; 57 + static struct rt2880_pmx_func spi_grp[] = { FUNC("spi", 0, 3, 4) }; 58 + static struct rt2880_pmx_func uartlite_grp[] = { FUNC("uartlite", 0, 15, 2) }; 59 + static struct rt2880_pmx_func mdio_grp[] = { 60 + FUNC("mdio", MT7620_GPIO_MODE_MDIO, 22, 2), 61 + FUNC("refclk", MT7620_GPIO_MODE_MDIO_REFCLK, 22, 2), 62 + }; 63 + static struct rt2880_pmx_func rgmii1_grp[] = { FUNC("rgmii1", 0, 24, 12) }; 64 + static struct rt2880_pmx_func refclk_grp[] = { FUNC("spi refclk", 0, 37, 3) }; 65 + static struct rt2880_pmx_func ephy_grp[] = { FUNC("ephy", 0, 40, 5) }; 66 + static struct rt2880_pmx_func rgmii2_grp[] = { FUNC("rgmii2", 0, 60, 12) }; 67 + static struct rt2880_pmx_func wled_grp[] = { FUNC("wled", 0, 72, 1) }; 68 + static struct rt2880_pmx_func pa_grp[] = { FUNC("pa", 0, 18, 4) }; 69 + static struct rt2880_pmx_func uartf_grp[] = { 70 + FUNC("uartf", MT7620_GPIO_MODE_UARTF, 7, 8), 71 + FUNC("pcm uartf", MT7620_GPIO_MODE_PCM_UARTF, 7, 8), 72 + FUNC("pcm i2s", MT7620_GPIO_MODE_PCM_I2S, 7, 8), 73 + FUNC("i2s uartf", MT7620_GPIO_MODE_I2S_UARTF, 7, 8), 74 + FUNC("pcm gpio", MT7620_GPIO_MODE_PCM_GPIO, 11, 4), 75 + FUNC("gpio uartf", MT7620_GPIO_MODE_GPIO_UARTF, 7, 4), 76 + FUNC("gpio i2s", MT7620_GPIO_MODE_GPIO_I2S, 7, 4), 77 + }; 78 + static struct rt2880_pmx_func wdt_grp[] = { 79 + FUNC("wdt rst", 0, 17, 1), 80 + FUNC("wdt refclk", 0, 17, 1), 81 + }; 82 + static struct rt2880_pmx_func pcie_rst_grp[] = { 83 + FUNC("pcie rst", MT7620_GPIO_MODE_PCIE_RST, 36, 1), 84 + FUNC("pcie refclk", MT7620_GPIO_MODE_PCIE_REF, 36, 1) 85 + }; 86 + static struct rt2880_pmx_func nd_sd_grp[] = { 87 + FUNC("nand", MT7620_GPIO_MODE_NAND, 45, 15), 88 + FUNC("sd", MT7620_GPIO_MODE_SD, 47, 13) 89 + }; 90 + 91 + static struct rt2880_pmx_group mt7620a_pinmux_data[] = { 92 + GRP("i2c", i2c_grp, 1, MT7620_GPIO_MODE_I2C), 93 + GRP("uartf", uartf_grp, MT7620_GPIO_MODE_UART0_MASK, 94 + MT7620_GPIO_MODE_UART0_SHIFT), 95 + GRP("spi", spi_grp, 1, MT7620_GPIO_MODE_SPI), 96 + GRP("uartlite", uartlite_grp, 1, MT7620_GPIO_MODE_UART1), 97 + GRP_G("wdt", wdt_grp, MT7620_GPIO_MODE_WDT_MASK, 98 + MT7620_GPIO_MODE_WDT_GPIO, MT7620_GPIO_MODE_WDT_SHIFT), 99 + GRP_G("mdio", mdio_grp, MT7620_GPIO_MODE_MDIO_MASK, 100 + MT7620_GPIO_MODE_MDIO_GPIO, MT7620_GPIO_MODE_MDIO_SHIFT), 101 + GRP("rgmii1", rgmii1_grp, 1, MT7620_GPIO_MODE_RGMII1), 102 + GRP("spi refclk", refclk_grp, 1, MT7620_GPIO_MODE_SPI_REF_CLK), 103 + GRP_G("pcie", pcie_rst_grp, MT7620_GPIO_MODE_PCIE_MASK, 104 + MT7620_GPIO_MODE_PCIE_GPIO, MT7620_GPIO_MODE_PCIE_SHIFT), 105 + GRP_G("nd_sd", nd_sd_grp, MT7620_GPIO_MODE_ND_SD_MASK, 106 + MT7620_GPIO_MODE_ND_SD_GPIO, MT7620_GPIO_MODE_ND_SD_SHIFT), 107 + GRP("rgmii2", rgmii2_grp, 1, MT7620_GPIO_MODE_RGMII2), 108 + GRP("wled", wled_grp, 1, MT7620_GPIO_MODE_WLED), 109 + GRP("ephy", ephy_grp, 1, MT7620_GPIO_MODE_EPHY), 110 + GRP("pa", pa_grp, 1, MT7620_GPIO_MODE_PA), 111 + { 0 } 112 + }; 113 + 114 + static struct rt2880_pmx_func pwm1_grp_mt7628[] = { 115 + FUNC("sdxc d6", 3, 19, 1), 116 + FUNC("utif", 2, 19, 1), 117 + FUNC("gpio", 1, 19, 1), 118 + FUNC("pwm1", 0, 19, 1), 119 + }; 120 + 121 + static struct rt2880_pmx_func pwm0_grp_mt7628[] = { 122 + FUNC("sdxc d7", 3, 18, 1), 123 + FUNC("utif", 2, 18, 1), 124 + FUNC("gpio", 1, 18, 1), 125 + FUNC("pwm0", 0, 18, 1), 126 + }; 127 + 128 + static struct rt2880_pmx_func uart2_grp_mt7628[] = { 129 + FUNC("sdxc d5 d4", 3, 20, 2), 130 + FUNC("pwm", 2, 20, 2), 131 + FUNC("gpio", 1, 20, 2), 132 + FUNC("uart2", 0, 20, 2), 133 + }; 134 + 135 + static struct rt2880_pmx_func uart1_grp_mt7628[] = { 136 + FUNC("sw_r", 3, 45, 2), 137 + FUNC("pwm", 2, 45, 2), 138 + FUNC("gpio", 1, 45, 2), 139 + FUNC("uart1", 0, 45, 2), 140 + }; 141 + 142 + static struct rt2880_pmx_func i2c_grp_mt7628[] = { 143 + FUNC("-", 3, 4, 2), 144 + FUNC("debug", 2, 4, 2), 145 + FUNC("gpio", 1, 4, 2), 146 + FUNC("i2c", 0, 4, 2), 147 + }; 148 + 149 + static struct rt2880_pmx_func refclk_grp_mt7628[] = { FUNC("refclk", 0, 37, 1) }; 150 + static struct rt2880_pmx_func perst_grp_mt7628[] = { FUNC("perst", 0, 36, 1) }; 151 + static struct rt2880_pmx_func wdt_grp_mt7628[] = { FUNC("wdt", 0, 38, 1) }; 152 + static struct rt2880_pmx_func spi_grp_mt7628[] = { FUNC("spi", 0, 7, 4) }; 153 + 154 + static struct rt2880_pmx_func sd_mode_grp_mt7628[] = { 155 + FUNC("jtag", 3, 22, 8), 156 + FUNC("utif", 2, 22, 8), 157 + FUNC("gpio", 1, 22, 8), 158 + FUNC("sdxc", 0, 22, 8), 159 + }; 160 + 161 + static struct rt2880_pmx_func uart0_grp_mt7628[] = { 162 + FUNC("-", 3, 12, 2), 163 + FUNC("-", 2, 12, 2), 164 + FUNC("gpio", 1, 12, 2), 165 + FUNC("uart0", 0, 12, 2), 166 + }; 167 + 168 + static struct rt2880_pmx_func i2s_grp_mt7628[] = { 169 + FUNC("antenna", 3, 0, 4), 170 + FUNC("pcm", 2, 0, 4), 171 + FUNC("gpio", 1, 0, 4), 172 + FUNC("i2s", 0, 0, 4), 173 + }; 174 + 175 + static struct rt2880_pmx_func spi_cs1_grp_mt7628[] = { 176 + FUNC("-", 3, 6, 1), 177 + FUNC("refclk", 2, 6, 1), 178 + FUNC("gpio", 1, 6, 1), 179 + FUNC("spi cs1", 0, 6, 1), 180 + }; 181 + 182 + static struct rt2880_pmx_func spis_grp_mt7628[] = { 183 + FUNC("pwm_uart2", 3, 14, 4), 184 + FUNC("utif", 2, 14, 4), 185 + FUNC("gpio", 1, 14, 4), 186 + FUNC("spis", 0, 14, 4), 187 + }; 188 + 189 + static struct rt2880_pmx_func gpio_grp_mt7628[] = { 190 + FUNC("pcie", 3, 11, 1), 191 + FUNC("refclk", 2, 11, 1), 192 + FUNC("gpio", 1, 11, 1), 193 + FUNC("gpio", 0, 11, 1), 194 + }; 195 + 196 + static struct rt2880_pmx_func p4led_kn_grp_mt7628[] = { 197 + FUNC("jtag", 3, 30, 1), 198 + FUNC("utif", 2, 30, 1), 199 + FUNC("gpio", 1, 30, 1), 200 + FUNC("p4led_kn", 0, 30, 1), 201 + }; 202 + 203 + static struct rt2880_pmx_func p3led_kn_grp_mt7628[] = { 204 + FUNC("jtag", 3, 31, 1), 205 + FUNC("utif", 2, 31, 1), 206 + FUNC("gpio", 1, 31, 1), 207 + FUNC("p3led_kn", 0, 31, 1), 208 + }; 209 + 210 + static struct rt2880_pmx_func p2led_kn_grp_mt7628[] = { 211 + FUNC("jtag", 3, 32, 1), 212 + FUNC("utif", 2, 32, 1), 213 + FUNC("gpio", 1, 32, 1), 214 + FUNC("p2led_kn", 0, 32, 1), 215 + }; 216 + 217 + static struct rt2880_pmx_func p1led_kn_grp_mt7628[] = { 218 + FUNC("jtag", 3, 33, 1), 219 + FUNC("utif", 2, 33, 1), 220 + FUNC("gpio", 1, 33, 1), 221 + FUNC("p1led_kn", 0, 33, 1), 222 + }; 223 + 224 + static struct rt2880_pmx_func p0led_kn_grp_mt7628[] = { 225 + FUNC("jtag", 3, 34, 1), 226 + FUNC("rsvd", 2, 34, 1), 227 + FUNC("gpio", 1, 34, 1), 228 + FUNC("p0led_kn", 0, 34, 1), 229 + }; 230 + 231 + static struct rt2880_pmx_func wled_kn_grp_mt7628[] = { 232 + FUNC("rsvd", 3, 35, 1), 233 + FUNC("rsvd", 2, 35, 1), 234 + FUNC("gpio", 1, 35, 1), 235 + FUNC("wled_kn", 0, 35, 1), 236 + }; 237 + 238 + static struct rt2880_pmx_func p4led_an_grp_mt7628[] = { 239 + FUNC("jtag", 3, 39, 1), 240 + FUNC("utif", 2, 39, 1), 241 + FUNC("gpio", 1, 39, 1), 242 + FUNC("p4led_an", 0, 39, 1), 243 + }; 244 + 245 + static struct rt2880_pmx_func p3led_an_grp_mt7628[] = { 246 + FUNC("jtag", 3, 40, 1), 247 + FUNC("utif", 2, 40, 1), 248 + FUNC("gpio", 1, 40, 1), 249 + FUNC("p3led_an", 0, 40, 1), 250 + }; 251 + 252 + static struct rt2880_pmx_func p2led_an_grp_mt7628[] = { 253 + FUNC("jtag", 3, 41, 1), 254 + FUNC("utif", 2, 41, 1), 255 + FUNC("gpio", 1, 41, 1), 256 + FUNC("p2led_an", 0, 41, 1), 257 + }; 258 + 259 + static struct rt2880_pmx_func p1led_an_grp_mt7628[] = { 260 + FUNC("jtag", 3, 42, 1), 261 + FUNC("utif", 2, 42, 1), 262 + FUNC("gpio", 1, 42, 1), 263 + FUNC("p1led_an", 0, 42, 1), 264 + }; 265 + 266 + static struct rt2880_pmx_func p0led_an_grp_mt7628[] = { 267 + FUNC("jtag", 3, 43, 1), 268 + FUNC("rsvd", 2, 43, 1), 269 + FUNC("gpio", 1, 43, 1), 270 + FUNC("p0led_an", 0, 43, 1), 271 + }; 272 + 273 + static struct rt2880_pmx_func wled_an_grp_mt7628[] = { 274 + FUNC("rsvd", 3, 44, 1), 275 + FUNC("rsvd", 2, 44, 1), 276 + FUNC("gpio", 1, 44, 1), 277 + FUNC("wled_an", 0, 44, 1), 278 + }; 279 + 280 + #define MT7628_GPIO_MODE_MASK 0x3 281 + 282 + #define MT7628_GPIO_MODE_P4LED_KN 58 283 + #define MT7628_GPIO_MODE_P3LED_KN 56 284 + #define MT7628_GPIO_MODE_P2LED_KN 54 285 + #define MT7628_GPIO_MODE_P1LED_KN 52 286 + #define MT7628_GPIO_MODE_P0LED_KN 50 287 + #define MT7628_GPIO_MODE_WLED_KN 48 288 + #define MT7628_GPIO_MODE_P4LED_AN 42 289 + #define MT7628_GPIO_MODE_P3LED_AN 40 290 + #define MT7628_GPIO_MODE_P2LED_AN 38 291 + #define MT7628_GPIO_MODE_P1LED_AN 36 292 + #define MT7628_GPIO_MODE_P0LED_AN 34 293 + #define MT7628_GPIO_MODE_WLED_AN 32 294 + #define MT7628_GPIO_MODE_PWM1 30 295 + #define MT7628_GPIO_MODE_PWM0 28 296 + #define MT7628_GPIO_MODE_UART2 26 297 + #define MT7628_GPIO_MODE_UART1 24 298 + #define MT7628_GPIO_MODE_I2C 20 299 + #define MT7628_GPIO_MODE_REFCLK 18 300 + #define MT7628_GPIO_MODE_PERST 16 301 + #define MT7628_GPIO_MODE_WDT 14 302 + #define MT7628_GPIO_MODE_SPI 12 303 + #define MT7628_GPIO_MODE_SDMODE 10 304 + #define MT7628_GPIO_MODE_UART0 8 305 + #define MT7628_GPIO_MODE_I2S 6 306 + #define MT7628_GPIO_MODE_CS1 4 307 + #define MT7628_GPIO_MODE_SPIS 2 308 + #define MT7628_GPIO_MODE_GPIO 0 309 + 310 + static struct rt2880_pmx_group mt7628an_pinmux_data[] = { 311 + GRP_G("pwm1", pwm1_grp_mt7628, MT7628_GPIO_MODE_MASK, 312 + 1, MT7628_GPIO_MODE_PWM1), 313 + GRP_G("pwm0", pwm0_grp_mt7628, MT7628_GPIO_MODE_MASK, 314 + 1, MT7628_GPIO_MODE_PWM0), 315 + GRP_G("uart2", uart2_grp_mt7628, MT7628_GPIO_MODE_MASK, 316 + 1, MT7628_GPIO_MODE_UART2), 317 + GRP_G("uart1", uart1_grp_mt7628, MT7628_GPIO_MODE_MASK, 318 + 1, MT7628_GPIO_MODE_UART1), 319 + GRP_G("i2c", i2c_grp_mt7628, MT7628_GPIO_MODE_MASK, 320 + 1, MT7628_GPIO_MODE_I2C), 321 + GRP("refclk", refclk_grp_mt7628, 1, MT7628_GPIO_MODE_REFCLK), 322 + GRP("perst", perst_grp_mt7628, 1, MT7628_GPIO_MODE_PERST), 323 + GRP("wdt", wdt_grp_mt7628, 1, MT7628_GPIO_MODE_WDT), 324 + GRP("spi", spi_grp_mt7628, 1, MT7628_GPIO_MODE_SPI), 325 + GRP_G("sdmode", sd_mode_grp_mt7628, MT7628_GPIO_MODE_MASK, 326 + 1, MT7628_GPIO_MODE_SDMODE), 327 + GRP_G("uart0", uart0_grp_mt7628, MT7628_GPIO_MODE_MASK, 328 + 1, MT7628_GPIO_MODE_UART0), 329 + GRP_G("i2s", i2s_grp_mt7628, MT7628_GPIO_MODE_MASK, 330 + 1, MT7628_GPIO_MODE_I2S), 331 + GRP_G("spi cs1", spi_cs1_grp_mt7628, MT7628_GPIO_MODE_MASK, 332 + 1, MT7628_GPIO_MODE_CS1), 333 + GRP_G("spis", spis_grp_mt7628, MT7628_GPIO_MODE_MASK, 334 + 1, MT7628_GPIO_MODE_SPIS), 335 + GRP_G("gpio", gpio_grp_mt7628, MT7628_GPIO_MODE_MASK, 336 + 1, MT7628_GPIO_MODE_GPIO), 337 + GRP_G("wled_an", wled_an_grp_mt7628, MT7628_GPIO_MODE_MASK, 338 + 1, MT7628_GPIO_MODE_WLED_AN), 339 + GRP_G("p0led_an", p0led_an_grp_mt7628, MT7628_GPIO_MODE_MASK, 340 + 1, MT7628_GPIO_MODE_P0LED_AN), 341 + GRP_G("p1led_an", p1led_an_grp_mt7628, MT7628_GPIO_MODE_MASK, 342 + 1, MT7628_GPIO_MODE_P1LED_AN), 343 + GRP_G("p2led_an", p2led_an_grp_mt7628, MT7628_GPIO_MODE_MASK, 344 + 1, MT7628_GPIO_MODE_P2LED_AN), 345 + GRP_G("p3led_an", p3led_an_grp_mt7628, MT7628_GPIO_MODE_MASK, 346 + 1, MT7628_GPIO_MODE_P3LED_AN), 347 + GRP_G("p4led_an", p4led_an_grp_mt7628, MT7628_GPIO_MODE_MASK, 348 + 1, MT7628_GPIO_MODE_P4LED_AN), 349 + GRP_G("wled_kn", wled_kn_grp_mt7628, MT7628_GPIO_MODE_MASK, 350 + 1, MT7628_GPIO_MODE_WLED_KN), 351 + GRP_G("p0led_kn", p0led_kn_grp_mt7628, MT7628_GPIO_MODE_MASK, 352 + 1, MT7628_GPIO_MODE_P0LED_KN), 353 + GRP_G("p1led_kn", p1led_kn_grp_mt7628, MT7628_GPIO_MODE_MASK, 354 + 1, MT7628_GPIO_MODE_P1LED_KN), 355 + GRP_G("p2led_kn", p2led_kn_grp_mt7628, MT7628_GPIO_MODE_MASK, 356 + 1, MT7628_GPIO_MODE_P2LED_KN), 357 + GRP_G("p3led_kn", p3led_kn_grp_mt7628, MT7628_GPIO_MODE_MASK, 358 + 1, MT7628_GPIO_MODE_P3LED_KN), 359 + GRP_G("p4led_kn", p4led_kn_grp_mt7628, MT7628_GPIO_MODE_MASK, 360 + 1, MT7628_GPIO_MODE_P4LED_KN), 361 + { 0 } 362 + }; 363 + 364 + static int mt7620_pinmux_probe(struct platform_device *pdev) 365 + { 366 + if (is_mt76x8()) 367 + return rt2880_pinmux_init(pdev, mt7628an_pinmux_data); 368 + else 369 + return rt2880_pinmux_init(pdev, mt7620a_pinmux_data); 370 + } 371 + 372 + static const struct of_device_id mt7620_pinmux_match[] = { 373 + { .compatible = "ralink,rt2880-pinmux" }, 374 + {} 375 + }; 376 + MODULE_DEVICE_TABLE(of, mt7620_pinmux_match); 377 + 378 + static struct platform_driver mt7620_pinmux_driver = { 379 + .probe = mt7620_pinmux_probe, 380 + .driver = { 381 + .name = "rt2880-pinmux", 382 + .of_match_table = mt7620_pinmux_match, 383 + }, 384 + }; 385 + 386 + static int __init mt7620_pinmux_init(void) 387 + { 388 + return platform_driver_register(&mt7620_pinmux_driver); 389 + } 390 + core_initcall_sync(mt7620_pinmux_init);
+116
drivers/pinctrl/ralink/pinctrl-mt7621.c
··· 1 + // SPDX-License-Identifier: GPL-2.0-only 2 + 3 + #include <linux/module.h> 4 + #include <linux/platform_device.h> 5 + #include <linux/of.h> 6 + #include "pinmux.h" 7 + 8 + #define MT7621_GPIO_MODE_UART1 1 9 + #define MT7621_GPIO_MODE_I2C 2 10 + #define MT7621_GPIO_MODE_UART3_MASK 0x3 11 + #define MT7621_GPIO_MODE_UART3_SHIFT 3 12 + #define MT7621_GPIO_MODE_UART3_GPIO 1 13 + #define MT7621_GPIO_MODE_UART2_MASK 0x3 14 + #define MT7621_GPIO_MODE_UART2_SHIFT 5 15 + #define MT7621_GPIO_MODE_UART2_GPIO 1 16 + #define MT7621_GPIO_MODE_JTAG 7 17 + #define MT7621_GPIO_MODE_WDT_MASK 0x3 18 + #define MT7621_GPIO_MODE_WDT_SHIFT 8 19 + #define MT7621_GPIO_MODE_WDT_GPIO 1 20 + #define MT7621_GPIO_MODE_PCIE_RST 0 21 + #define MT7621_GPIO_MODE_PCIE_REF 2 22 + #define MT7621_GPIO_MODE_PCIE_MASK 0x3 23 + #define MT7621_GPIO_MODE_PCIE_SHIFT 10 24 + #define MT7621_GPIO_MODE_PCIE_GPIO 1 25 + #define MT7621_GPIO_MODE_MDIO_MASK 0x3 26 + #define MT7621_GPIO_MODE_MDIO_SHIFT 12 27 + #define MT7621_GPIO_MODE_MDIO_GPIO 1 28 + #define MT7621_GPIO_MODE_RGMII1 14 29 + #define MT7621_GPIO_MODE_RGMII2 15 30 + #define MT7621_GPIO_MODE_SPI_MASK 0x3 31 + #define MT7621_GPIO_MODE_SPI_SHIFT 16 32 + #define MT7621_GPIO_MODE_SPI_GPIO 1 33 + #define MT7621_GPIO_MODE_SDHCI_MASK 0x3 34 + #define MT7621_GPIO_MODE_SDHCI_SHIFT 18 35 + #define MT7621_GPIO_MODE_SDHCI_GPIO 1 36 + 37 + static struct rt2880_pmx_func uart1_grp[] = { FUNC("uart1", 0, 1, 2) }; 38 + static struct rt2880_pmx_func i2c_grp[] = { FUNC("i2c", 0, 3, 2) }; 39 + static struct rt2880_pmx_func uart3_grp[] = { 40 + FUNC("uart3", 0, 5, 4), 41 + FUNC("i2s", 2, 5, 4), 42 + FUNC("spdif3", 3, 5, 4), 43 + }; 44 + static struct rt2880_pmx_func uart2_grp[] = { 45 + FUNC("uart2", 0, 9, 4), 46 + FUNC("pcm", 2, 9, 4), 47 + FUNC("spdif2", 3, 9, 4), 48 + }; 49 + static struct rt2880_pmx_func jtag_grp[] = { FUNC("jtag", 0, 13, 5) }; 50 + static struct rt2880_pmx_func wdt_grp[] = { 51 + FUNC("wdt rst", 0, 18, 1), 52 + FUNC("wdt refclk", 2, 18, 1), 53 + }; 54 + static struct rt2880_pmx_func pcie_rst_grp[] = { 55 + FUNC("pcie rst", MT7621_GPIO_MODE_PCIE_RST, 19, 1), 56 + FUNC("pcie refclk", MT7621_GPIO_MODE_PCIE_REF, 19, 1) 57 + }; 58 + static struct rt2880_pmx_func mdio_grp[] = { FUNC("mdio", 0, 20, 2) }; 59 + static struct rt2880_pmx_func rgmii2_grp[] = { FUNC("rgmii2", 0, 22, 12) }; 60 + static struct rt2880_pmx_func spi_grp[] = { 61 + FUNC("spi", 0, 34, 7), 62 + FUNC("nand1", 2, 34, 7), 63 + }; 64 + static struct rt2880_pmx_func sdhci_grp[] = { 65 + FUNC("sdhci", 0, 41, 8), 66 + FUNC("nand2", 2, 41, 8), 67 + }; 68 + static struct rt2880_pmx_func rgmii1_grp[] = { FUNC("rgmii1", 0, 49, 12) }; 69 + 70 + static struct rt2880_pmx_group mt7621_pinmux_data[] = { 71 + GRP("uart1", uart1_grp, 1, MT7621_GPIO_MODE_UART1), 72 + GRP("i2c", i2c_grp, 1, MT7621_GPIO_MODE_I2C), 73 + GRP_G("uart3", uart3_grp, MT7621_GPIO_MODE_UART3_MASK, 74 + MT7621_GPIO_MODE_UART3_GPIO, MT7621_GPIO_MODE_UART3_SHIFT), 75 + GRP_G("uart2", uart2_grp, MT7621_GPIO_MODE_UART2_MASK, 76 + MT7621_GPIO_MODE_UART2_GPIO, MT7621_GPIO_MODE_UART2_SHIFT), 77 + GRP("jtag", jtag_grp, 1, MT7621_GPIO_MODE_JTAG), 78 + GRP_G("wdt", wdt_grp, MT7621_GPIO_MODE_WDT_MASK, 79 + MT7621_GPIO_MODE_WDT_GPIO, MT7621_GPIO_MODE_WDT_SHIFT), 80 + GRP_G("pcie", pcie_rst_grp, MT7621_GPIO_MODE_PCIE_MASK, 81 + MT7621_GPIO_MODE_PCIE_GPIO, MT7621_GPIO_MODE_PCIE_SHIFT), 82 + GRP_G("mdio", mdio_grp, MT7621_GPIO_MODE_MDIO_MASK, 83 + MT7621_GPIO_MODE_MDIO_GPIO, MT7621_GPIO_MODE_MDIO_SHIFT), 84 + GRP("rgmii2", rgmii2_grp, 1, MT7621_GPIO_MODE_RGMII2), 85 + GRP_G("spi", spi_grp, MT7621_GPIO_MODE_SPI_MASK, 86 + MT7621_GPIO_MODE_SPI_GPIO, MT7621_GPIO_MODE_SPI_SHIFT), 87 + GRP_G("sdhci", sdhci_grp, MT7621_GPIO_MODE_SDHCI_MASK, 88 + MT7621_GPIO_MODE_SDHCI_GPIO, MT7621_GPIO_MODE_SDHCI_SHIFT), 89 + GRP("rgmii1", rgmii1_grp, 1, MT7621_GPIO_MODE_RGMII1), 90 + { 0 } 91 + }; 92 + 93 + static int mt7621_pinmux_probe(struct platform_device *pdev) 94 + { 95 + return rt2880_pinmux_init(pdev, mt7621_pinmux_data); 96 + } 97 + 98 + static const struct of_device_id mt7621_pinmux_match[] = { 99 + { .compatible = "ralink,rt2880-pinmux" }, 100 + {} 101 + }; 102 + MODULE_DEVICE_TABLE(of, mt7621_pinmux_match); 103 + 104 + static struct platform_driver mt7621_pinmux_driver = { 105 + .probe = mt7621_pinmux_probe, 106 + .driver = { 107 + .name = "rt2880-pinmux", 108 + .of_match_table = mt7621_pinmux_match, 109 + }, 110 + }; 111 + 112 + static int __init mt7621_pinmux_init(void) 113 + { 114 + return platform_driver_register(&mt7621_pinmux_driver); 115 + } 116 + core_initcall_sync(mt7621_pinmux_init);
+5 -25
drivers/pinctrl/ralink/pinctrl-rt2880.c
··· 17 17 #include <linux/pinctrl/machine.h> 18 18 19 19 #include <asm/mach-ralink/ralink_regs.h> 20 - #include <asm/mach-ralink/pinmux.h> 21 20 #include <asm/mach-ralink/mt7620.h> 22 21 22 + #include "pinmux.h" 23 23 #include "../core.h" 24 24 #include "../pinctrl-utils.h" 25 25 ··· 311 311 return 0; 312 312 } 313 313 314 - static int rt2880_pinmux_probe(struct platform_device *pdev) 314 + int rt2880_pinmux_init(struct platform_device *pdev, 315 + struct rt2880_pmx_group *data) 315 316 { 316 317 struct rt2880_priv *p; 317 318 struct pinctrl_dev *dev; 318 319 int err; 319 320 320 - if (!rt2880_pinmux_data) 321 + if (!data) 321 322 return -ENOTSUPP; 322 323 323 324 /* setup the private data */ ··· 328 327 329 328 p->dev = &pdev->dev; 330 329 p->desc = &rt2880_pctrl_desc; 331 - p->groups = rt2880_pinmux_data; 330 + p->groups = data; 332 331 platform_set_drvdata(pdev, p); 333 332 334 333 /* init the device */ ··· 347 346 348 347 return PTR_ERR_OR_ZERO(dev); 349 348 } 350 - 351 - static const struct of_device_id rt2880_pinmux_match[] = { 352 - { .compatible = "ralink,rt2880-pinmux" }, 353 - {}, 354 - }; 355 - MODULE_DEVICE_TABLE(of, rt2880_pinmux_match); 356 - 357 - static struct platform_driver rt2880_pinmux_driver = { 358 - .probe = rt2880_pinmux_probe, 359 - .driver = { 360 - .name = "rt2880-pinmux", 361 - .of_match_table = rt2880_pinmux_match, 362 - }, 363 - }; 364 - 365 - static int __init rt2880_pinmux_init(void) 366 - { 367 - return platform_driver_register(&rt2880_pinmux_driver); 368 - } 369 - 370 - core_initcall_sync(rt2880_pinmux_init);
+60
drivers/pinctrl/ralink/pinctrl-rt288x.c
··· 1 + // SPDX-License-Identifier: GPL-2.0-only 2 + 3 + #include <linux/bitops.h> 4 + #include <linux/module.h> 5 + #include <linux/platform_device.h> 6 + #include <linux/of.h> 7 + #include "pinmux.h" 8 + 9 + #define RT2880_GPIO_MODE_I2C BIT(0) 10 + #define RT2880_GPIO_MODE_UART0 BIT(1) 11 + #define RT2880_GPIO_MODE_SPI BIT(2) 12 + #define RT2880_GPIO_MODE_UART1 BIT(3) 13 + #define RT2880_GPIO_MODE_JTAG BIT(4) 14 + #define RT2880_GPIO_MODE_MDIO BIT(5) 15 + #define RT2880_GPIO_MODE_SDRAM BIT(6) 16 + #define RT2880_GPIO_MODE_PCI BIT(7) 17 + 18 + static struct rt2880_pmx_func i2c_func[] = { FUNC("i2c", 0, 1, 2) }; 19 + static struct rt2880_pmx_func spi_func[] = { FUNC("spi", 0, 3, 4) }; 20 + static struct rt2880_pmx_func uartlite_func[] = { FUNC("uartlite", 0, 7, 8) }; 21 + static struct rt2880_pmx_func jtag_func[] = { FUNC("jtag", 0, 17, 5) }; 22 + static struct rt2880_pmx_func mdio_func[] = { FUNC("mdio", 0, 22, 2) }; 23 + static struct rt2880_pmx_func sdram_func[] = { FUNC("sdram", 0, 24, 16) }; 24 + static struct rt2880_pmx_func pci_func[] = { FUNC("pci", 0, 40, 32) }; 25 + 26 + static struct rt2880_pmx_group rt2880_pinmux_data_act[] = { 27 + GRP("i2c", i2c_func, 1, RT2880_GPIO_MODE_I2C), 28 + GRP("spi", spi_func, 1, RT2880_GPIO_MODE_SPI), 29 + GRP("uartlite", uartlite_func, 1, RT2880_GPIO_MODE_UART0), 30 + GRP("jtag", jtag_func, 1, RT2880_GPIO_MODE_JTAG), 31 + GRP("mdio", mdio_func, 1, RT2880_GPIO_MODE_MDIO), 32 + GRP("sdram", sdram_func, 1, RT2880_GPIO_MODE_SDRAM), 33 + GRP("pci", pci_func, 1, RT2880_GPIO_MODE_PCI), 34 + { 0 } 35 + }; 36 + 37 + static int rt288x_pinmux_probe(struct platform_device *pdev) 38 + { 39 + return rt2880_pinmux_init(pdev, rt2880_pinmux_data_act); 40 + } 41 + 42 + static const struct of_device_id rt288x_pinmux_match[] = { 43 + { .compatible = "ralink,rt2880-pinmux" }, 44 + {} 45 + }; 46 + MODULE_DEVICE_TABLE(of, rt288x_pinmux_match); 47 + 48 + static struct platform_driver rt288x_pinmux_driver = { 49 + .probe = rt288x_pinmux_probe, 50 + .driver = { 51 + .name = "rt2880-pinmux", 52 + .of_match_table = rt288x_pinmux_match, 53 + }, 54 + }; 55 + 56 + static int __init rt288x_pinmux_init(void) 57 + { 58 + return platform_driver_register(&rt288x_pinmux_driver); 59 + } 60 + core_initcall_sync(rt288x_pinmux_init);
+137
drivers/pinctrl/ralink/pinctrl-rt305x.c
··· 1 + // SPDX-License-Identifier: GPL-2.0-only 2 + 3 + #include <asm/mach-ralink/ralink_regs.h> 4 + #include <asm/mach-ralink/rt305x.h> 5 + #include <linux/module.h> 6 + #include <linux/platform_device.h> 7 + #include <linux/of.h> 8 + #include "pinmux.h" 9 + 10 + #define RT305X_GPIO_MODE_UART0_SHIFT 2 11 + #define RT305X_GPIO_MODE_UART0_MASK 0x7 12 + #define RT305X_GPIO_MODE_UART0(x) ((x) << RT305X_GPIO_MODE_UART0_SHIFT) 13 + #define RT305X_GPIO_MODE_UARTF 0 14 + #define RT305X_GPIO_MODE_PCM_UARTF 1 15 + #define RT305X_GPIO_MODE_PCM_I2S 2 16 + #define RT305X_GPIO_MODE_I2S_UARTF 3 17 + #define RT305X_GPIO_MODE_PCM_GPIO 4 18 + #define RT305X_GPIO_MODE_GPIO_UARTF 5 19 + #define RT305X_GPIO_MODE_GPIO_I2S 6 20 + #define RT305X_GPIO_MODE_GPIO 7 21 + 22 + #define RT305X_GPIO_MODE_I2C 0 23 + #define RT305X_GPIO_MODE_SPI 1 24 + #define RT305X_GPIO_MODE_UART1 5 25 + #define RT305X_GPIO_MODE_JTAG 6 26 + #define RT305X_GPIO_MODE_MDIO 7 27 + #define RT305X_GPIO_MODE_SDRAM 8 28 + #define RT305X_GPIO_MODE_RGMII 9 29 + #define RT5350_GPIO_MODE_PHY_LED 14 30 + #define RT5350_GPIO_MODE_SPI_CS1 21 31 + #define RT3352_GPIO_MODE_LNA 18 32 + #define RT3352_GPIO_MODE_PA 20 33 + 34 + static struct rt2880_pmx_func i2c_func[] = { FUNC("i2c", 0, 1, 2) }; 35 + static struct rt2880_pmx_func spi_func[] = { FUNC("spi", 0, 3, 4) }; 36 + static struct rt2880_pmx_func uartf_func[] = { 37 + FUNC("uartf", RT305X_GPIO_MODE_UARTF, 7, 8), 38 + FUNC("pcm uartf", RT305X_GPIO_MODE_PCM_UARTF, 7, 8), 39 + FUNC("pcm i2s", RT305X_GPIO_MODE_PCM_I2S, 7, 8), 40 + FUNC("i2s uartf", RT305X_GPIO_MODE_I2S_UARTF, 7, 8), 41 + FUNC("pcm gpio", RT305X_GPIO_MODE_PCM_GPIO, 11, 4), 42 + FUNC("gpio uartf", RT305X_GPIO_MODE_GPIO_UARTF, 7, 4), 43 + FUNC("gpio i2s", RT305X_GPIO_MODE_GPIO_I2S, 7, 4), 44 + }; 45 + static struct rt2880_pmx_func uartlite_func[] = { FUNC("uartlite", 0, 15, 2) }; 46 + static struct rt2880_pmx_func jtag_func[] = { FUNC("jtag", 0, 17, 5) }; 47 + static struct rt2880_pmx_func mdio_func[] = { FUNC("mdio", 0, 22, 2) }; 48 + static struct rt2880_pmx_func rt5350_led_func[] = { FUNC("led", 0, 22, 5) }; 49 + static struct rt2880_pmx_func rt5350_cs1_func[] = { 50 + FUNC("spi_cs1", 0, 27, 1), 51 + FUNC("wdg_cs1", 1, 27, 1), 52 + }; 53 + static struct rt2880_pmx_func sdram_func[] = { FUNC("sdram", 0, 24, 16) }; 54 + static struct rt2880_pmx_func rt3352_rgmii_func[] = { 55 + FUNC("rgmii", 0, 24, 12) 56 + }; 57 + static struct rt2880_pmx_func rgmii_func[] = { FUNC("rgmii", 0, 40, 12) }; 58 + static struct rt2880_pmx_func rt3352_lna_func[] = { FUNC("lna", 0, 36, 2) }; 59 + static struct rt2880_pmx_func rt3352_pa_func[] = { FUNC("pa", 0, 38, 2) }; 60 + static struct rt2880_pmx_func rt3352_led_func[] = { FUNC("led", 0, 40, 5) }; 61 + static struct rt2880_pmx_func rt3352_cs1_func[] = { 62 + FUNC("spi_cs1", 0, 45, 1), 63 + FUNC("wdg_cs1", 1, 45, 1), 64 + }; 65 + 66 + static struct rt2880_pmx_group rt3050_pinmux_data[] = { 67 + GRP("i2c", i2c_func, 1, RT305X_GPIO_MODE_I2C), 68 + GRP("spi", spi_func, 1, RT305X_GPIO_MODE_SPI), 69 + GRP("uartf", uartf_func, RT305X_GPIO_MODE_UART0_MASK, 70 + RT305X_GPIO_MODE_UART0_SHIFT), 71 + GRP("uartlite", uartlite_func, 1, RT305X_GPIO_MODE_UART1), 72 + GRP("jtag", jtag_func, 1, RT305X_GPIO_MODE_JTAG), 73 + GRP("mdio", mdio_func, 1, RT305X_GPIO_MODE_MDIO), 74 + GRP("rgmii", rgmii_func, 1, RT305X_GPIO_MODE_RGMII), 75 + GRP("sdram", sdram_func, 1, RT305X_GPIO_MODE_SDRAM), 76 + { 0 } 77 + }; 78 + 79 + static struct rt2880_pmx_group rt3352_pinmux_data[] = { 80 + GRP("i2c", i2c_func, 1, RT305X_GPIO_MODE_I2C), 81 + GRP("spi", spi_func, 1, RT305X_GPIO_MODE_SPI), 82 + GRP("uartf", uartf_func, RT305X_GPIO_MODE_UART0_MASK, 83 + RT305X_GPIO_MODE_UART0_SHIFT), 84 + GRP("uartlite", uartlite_func, 1, RT305X_GPIO_MODE_UART1), 85 + GRP("jtag", jtag_func, 1, RT305X_GPIO_MODE_JTAG), 86 + GRP("mdio", mdio_func, 1, RT305X_GPIO_MODE_MDIO), 87 + GRP("rgmii", rt3352_rgmii_func, 1, RT305X_GPIO_MODE_RGMII), 88 + GRP("lna", rt3352_lna_func, 1, RT3352_GPIO_MODE_LNA), 89 + GRP("pa", rt3352_pa_func, 1, RT3352_GPIO_MODE_PA), 90 + GRP("led", rt3352_led_func, 1, RT5350_GPIO_MODE_PHY_LED), 91 + GRP("spi_cs1", rt3352_cs1_func, 2, RT5350_GPIO_MODE_SPI_CS1), 92 + { 0 } 93 + }; 94 + 95 + static struct rt2880_pmx_group rt5350_pinmux_data[] = { 96 + GRP("i2c", i2c_func, 1, RT305X_GPIO_MODE_I2C), 97 + GRP("spi", spi_func, 1, RT305X_GPIO_MODE_SPI), 98 + GRP("uartf", uartf_func, RT305X_GPIO_MODE_UART0_MASK, 99 + RT305X_GPIO_MODE_UART0_SHIFT), 100 + GRP("uartlite", uartlite_func, 1, RT305X_GPIO_MODE_UART1), 101 + GRP("jtag", jtag_func, 1, RT305X_GPIO_MODE_JTAG), 102 + GRP("led", rt5350_led_func, 1, RT5350_GPIO_MODE_PHY_LED), 103 + GRP("spi_cs1", rt5350_cs1_func, 2, RT5350_GPIO_MODE_SPI_CS1), 104 + { 0 } 105 + }; 106 + 107 + static int rt305x_pinmux_probe(struct platform_device *pdev) 108 + { 109 + if (soc_is_rt5350()) 110 + return rt2880_pinmux_init(pdev, rt5350_pinmux_data); 111 + else if (soc_is_rt305x() || soc_is_rt3350()) 112 + return rt2880_pinmux_init(pdev, rt3050_pinmux_data); 113 + else if (soc_is_rt3352()) 114 + return rt2880_pinmux_init(pdev, rt3352_pinmux_data); 115 + else 116 + return -EINVAL; 117 + } 118 + 119 + static const struct of_device_id rt305x_pinmux_match[] = { 120 + { .compatible = "ralink,rt2880-pinmux" }, 121 + {} 122 + }; 123 + MODULE_DEVICE_TABLE(of, rt305x_pinmux_match); 124 + 125 + static struct platform_driver rt305x_pinmux_driver = { 126 + .probe = rt305x_pinmux_probe, 127 + .driver = { 128 + .name = "rt2880-pinmux", 129 + .of_match_table = rt305x_pinmux_match, 130 + }, 131 + }; 132 + 133 + static int __init rt305x_pinmux_init(void) 134 + { 135 + return platform_driver_register(&rt305x_pinmux_driver); 136 + } 137 + core_initcall_sync(rt305x_pinmux_init);
+107
drivers/pinctrl/ralink/pinctrl-rt3883.c
··· 1 + // SPDX-License-Identifier: GPL-2.0-only 2 + 3 + #include <linux/module.h> 4 + #include <linux/platform_device.h> 5 + #include <linux/of.h> 6 + #include "pinmux.h" 7 + 8 + #define RT3883_GPIO_MODE_UART0_SHIFT 2 9 + #define RT3883_GPIO_MODE_UART0_MASK 0x7 10 + #define RT3883_GPIO_MODE_UART0(x) ((x) << RT3883_GPIO_MODE_UART0_SHIFT) 11 + #define RT3883_GPIO_MODE_UARTF 0x0 12 + #define RT3883_GPIO_MODE_PCM_UARTF 0x1 13 + #define RT3883_GPIO_MODE_PCM_I2S 0x2 14 + #define RT3883_GPIO_MODE_I2S_UARTF 0x3 15 + #define RT3883_GPIO_MODE_PCM_GPIO 0x4 16 + #define RT3883_GPIO_MODE_GPIO_UARTF 0x5 17 + #define RT3883_GPIO_MODE_GPIO_I2S 0x6 18 + #define RT3883_GPIO_MODE_GPIO 0x7 19 + 20 + #define RT3883_GPIO_MODE_I2C 0 21 + #define RT3883_GPIO_MODE_SPI 1 22 + #define RT3883_GPIO_MODE_UART1 5 23 + #define RT3883_GPIO_MODE_JTAG 6 24 + #define RT3883_GPIO_MODE_MDIO 7 25 + #define RT3883_GPIO_MODE_GE1 9 26 + #define RT3883_GPIO_MODE_GE2 10 27 + 28 + #define RT3883_GPIO_MODE_PCI_SHIFT 11 29 + #define RT3883_GPIO_MODE_PCI_MASK 0x7 30 + #define RT3883_GPIO_MODE_PCI (RT3883_GPIO_MODE_PCI_MASK << RT3883_GPIO_MODE_PCI_SHIFT) 31 + #define RT3883_GPIO_MODE_LNA_A_SHIFT 16 32 + #define RT3883_GPIO_MODE_LNA_A_MASK 0x3 33 + #define _RT3883_GPIO_MODE_LNA_A(_x) ((_x) << RT3883_GPIO_MODE_LNA_A_SHIFT) 34 + #define RT3883_GPIO_MODE_LNA_A_GPIO 0x3 35 + #define RT3883_GPIO_MODE_LNA_A _RT3883_GPIO_MODE_LNA_A(RT3883_GPIO_MODE_LNA_A_MASK) 36 + #define RT3883_GPIO_MODE_LNA_G_SHIFT 18 37 + #define RT3883_GPIO_MODE_LNA_G_MASK 0x3 38 + #define _RT3883_GPIO_MODE_LNA_G(_x) ((_x) << RT3883_GPIO_MODE_LNA_G_SHIFT) 39 + #define RT3883_GPIO_MODE_LNA_G_GPIO 0x3 40 + #define RT3883_GPIO_MODE_LNA_G _RT3883_GPIO_MODE_LNA_G(RT3883_GPIO_MODE_LNA_G_MASK) 41 + 42 + static struct rt2880_pmx_func i2c_func[] = { FUNC("i2c", 0, 1, 2) }; 43 + static struct rt2880_pmx_func spi_func[] = { FUNC("spi", 0, 3, 4) }; 44 + static struct rt2880_pmx_func uartf_func[] = { 45 + FUNC("uartf", RT3883_GPIO_MODE_UARTF, 7, 8), 46 + FUNC("pcm uartf", RT3883_GPIO_MODE_PCM_UARTF, 7, 8), 47 + FUNC("pcm i2s", RT3883_GPIO_MODE_PCM_I2S, 7, 8), 48 + FUNC("i2s uartf", RT3883_GPIO_MODE_I2S_UARTF, 7, 8), 49 + FUNC("pcm gpio", RT3883_GPIO_MODE_PCM_GPIO, 11, 4), 50 + FUNC("gpio uartf", RT3883_GPIO_MODE_GPIO_UARTF, 7, 4), 51 + FUNC("gpio i2s", RT3883_GPIO_MODE_GPIO_I2S, 7, 4), 52 + }; 53 + static struct rt2880_pmx_func uartlite_func[] = { FUNC("uartlite", 0, 15, 2) }; 54 + static struct rt2880_pmx_func jtag_func[] = { FUNC("jtag", 0, 17, 5) }; 55 + static struct rt2880_pmx_func mdio_func[] = { FUNC("mdio", 0, 22, 2) }; 56 + static struct rt2880_pmx_func lna_a_func[] = { FUNC("lna a", 0, 32, 3) }; 57 + static struct rt2880_pmx_func lna_g_func[] = { FUNC("lna g", 0, 35, 3) }; 58 + static struct rt2880_pmx_func pci_func[] = { 59 + FUNC("pci-dev", 0, 40, 32), 60 + FUNC("pci-host2", 1, 40, 32), 61 + FUNC("pci-host1", 2, 40, 32), 62 + FUNC("pci-fnc", 3, 40, 32) 63 + }; 64 + static struct rt2880_pmx_func ge1_func[] = { FUNC("ge1", 0, 72, 12) }; 65 + static struct rt2880_pmx_func ge2_func[] = { FUNC("ge2", 0, 84, 12) }; 66 + 67 + static struct rt2880_pmx_group rt3883_pinmux_data[] = { 68 + GRP("i2c", i2c_func, 1, RT3883_GPIO_MODE_I2C), 69 + GRP("spi", spi_func, 1, RT3883_GPIO_MODE_SPI), 70 + GRP("uartf", uartf_func, RT3883_GPIO_MODE_UART0_MASK, 71 + RT3883_GPIO_MODE_UART0_SHIFT), 72 + GRP("uartlite", uartlite_func, 1, RT3883_GPIO_MODE_UART1), 73 + GRP("jtag", jtag_func, 1, RT3883_GPIO_MODE_JTAG), 74 + GRP("mdio", mdio_func, 1, RT3883_GPIO_MODE_MDIO), 75 + GRP("lna a", lna_a_func, 1, RT3883_GPIO_MODE_LNA_A), 76 + GRP("lna g", lna_g_func, 1, RT3883_GPIO_MODE_LNA_G), 77 + GRP("pci", pci_func, RT3883_GPIO_MODE_PCI_MASK, 78 + RT3883_GPIO_MODE_PCI_SHIFT), 79 + GRP("ge1", ge1_func, 1, RT3883_GPIO_MODE_GE1), 80 + GRP("ge2", ge2_func, 1, RT3883_GPIO_MODE_GE2), 81 + { 0 } 82 + }; 83 + 84 + static int rt3883_pinmux_probe(struct platform_device *pdev) 85 + { 86 + return rt2880_pinmux_init(pdev, rt3883_pinmux_data); 87 + } 88 + 89 + static const struct of_device_id rt3883_pinmux_match[] = { 90 + { .compatible = "ralink,rt2880-pinmux" }, 91 + {} 92 + }; 93 + MODULE_DEVICE_TABLE(of, rt3883_pinmux_match); 94 + 95 + static struct platform_driver rt3883_pinmux_driver = { 96 + .probe = rt3883_pinmux_probe, 97 + .driver = { 98 + .name = "rt2880-pinmux", 99 + .of_match_table = rt3883_pinmux_match, 100 + }, 101 + }; 102 + 103 + static int __init rt3883_pinmux_init(void) 104 + { 105 + return platform_driver_register(&rt3883_pinmux_driver); 106 + } 107 + core_initcall_sync(rt3883_pinmux_init);
+306 -40
drivers/pinctrl/renesas/pfc-r8a77470.c
··· 11 11 #include "sh_pfc.h" 12 12 13 13 #define CPU_ALL_GP(fn, sfx) \ 14 - PORT_GP_4(0, fn, sfx), \ 15 - PORT_GP_1(0, 4, fn, sfx), \ 16 - PORT_GP_CFG_1(0, 5, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 17 - PORT_GP_CFG_1(0, 6, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 18 - PORT_GP_CFG_1(0, 7, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 19 - PORT_GP_CFG_1(0, 8, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 20 - PORT_GP_CFG_1(0, 9, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 21 - PORT_GP_CFG_1(0, 10, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 22 - PORT_GP_1(0, 11, fn, sfx), \ 23 - PORT_GP_1(0, 12, fn, sfx), \ 24 - PORT_GP_CFG_1(0, 13, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 25 - PORT_GP_CFG_1(0, 14, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 26 - PORT_GP_CFG_1(0, 15, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 27 - PORT_GP_CFG_1(0, 16, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 28 - PORT_GP_CFG_1(0, 17, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 29 - PORT_GP_CFG_1(0, 18, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 30 - PORT_GP_CFG_1(0, 19, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 31 - PORT_GP_CFG_1(0, 20, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 32 - PORT_GP_CFG_1(0, 21, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 33 - PORT_GP_CFG_1(0, 22, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 34 - PORT_GP_23(1, fn, sfx), \ 35 - PORT_GP_32(2, fn, sfx), \ 36 - PORT_GP_17(3, fn, sfx), \ 37 - PORT_GP_1(3, 27, fn, sfx), \ 38 - PORT_GP_1(3, 28, fn, sfx), \ 39 - PORT_GP_1(3, 29, fn, sfx), \ 40 - PORT_GP_14(4, fn, sfx), \ 41 - PORT_GP_CFG_1(4, 14, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 42 - PORT_GP_CFG_1(4, 15, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 43 - PORT_GP_CFG_1(4, 16, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 44 - PORT_GP_CFG_1(4, 17, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 45 - PORT_GP_CFG_1(4, 18, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 46 - PORT_GP_CFG_1(4, 19, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 47 - PORT_GP_1(4, 20, fn, sfx), \ 48 - PORT_GP_1(4, 21, fn, sfx), \ 49 - PORT_GP_1(4, 22, fn, sfx), \ 50 - PORT_GP_1(4, 23, fn, sfx), \ 51 - PORT_GP_1(4, 24, fn, sfx), \ 52 - PORT_GP_1(4, 25, fn, sfx), \ 53 - PORT_GP_32(5, fn, sfx) 14 + PORT_GP_CFG_4(0, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 15 + PORT_GP_CFG_1(0, 4, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 16 + PORT_GP_CFG_1(0, 5, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 17 + PORT_GP_CFG_1(0, 6, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 18 + PORT_GP_CFG_1(0, 7, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 19 + PORT_GP_CFG_1(0, 8, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 20 + PORT_GP_CFG_1(0, 9, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 21 + PORT_GP_CFG_1(0, 10, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 22 + PORT_GP_CFG_1(0, 11, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 23 + PORT_GP_CFG_1(0, 12, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 24 + PORT_GP_CFG_1(0, 13, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 25 + PORT_GP_CFG_1(0, 14, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 26 + PORT_GP_CFG_1(0, 15, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 27 + PORT_GP_CFG_1(0, 16, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 28 + PORT_GP_CFG_1(0, 17, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 29 + PORT_GP_CFG_1(0, 18, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 30 + PORT_GP_CFG_1(0, 19, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 31 + PORT_GP_CFG_1(0, 20, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 32 + PORT_GP_CFG_1(0, 21, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 33 + PORT_GP_CFG_1(0, 22, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 34 + PORT_GP_CFG_23(1, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 35 + PORT_GP_CFG_32(2, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 36 + PORT_GP_CFG_17(3, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 37 + PORT_GP_CFG_1(3, 27, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 38 + PORT_GP_CFG_1(3, 28, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 39 + PORT_GP_CFG_1(3, 29, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 40 + PORT_GP_CFG_14(4, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 41 + PORT_GP_CFG_1(4, 14, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 42 + PORT_GP_CFG_1(4, 15, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 43 + PORT_GP_CFG_1(4, 16, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 44 + PORT_GP_CFG_1(4, 17, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 45 + PORT_GP_CFG_1(4, 18, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 46 + PORT_GP_CFG_1(4, 19, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 47 + PORT_GP_CFG_1(4, 20, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 48 + PORT_GP_CFG_1(4, 21, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 49 + PORT_GP_CFG_1(4, 22, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 50 + PORT_GP_CFG_1(4, 23, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 51 + PORT_GP_CFG_1(4, 24, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 52 + PORT_GP_CFG_1(4, 25, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 53 + PORT_GP_CFG_32(5, fn, sfx, SH_PFC_PIN_CFG_PULL_UP) 54 + 55 + #define CPU_ALL_NOGP(fn) \ 56 + PIN_NOGP_CFG(ASEBRK_N_ACK, "ASEBRK#/ACK", fn, SH_PFC_PIN_CFG_PULL_DOWN), \ 57 + PIN_NOGP_CFG(NMI, "NMI", fn, SH_PFC_PIN_CFG_PULL_UP), \ 58 + PIN_NOGP_CFG(PRESETOUT_N, "PRESETOUT#", fn, SH_PFC_PIN_CFG_PULL_UP), \ 59 + PIN_NOGP_CFG(TCK, "TCK", fn, SH_PFC_PIN_CFG_PULL_UP), \ 60 + PIN_NOGP_CFG(TDI, "TDI", fn, SH_PFC_PIN_CFG_PULL_UP), \ 61 + PIN_NOGP_CFG(TDO, "TDO", fn, SH_PFC_PIN_CFG_PULL_UP), \ 62 + PIN_NOGP_CFG(TMS, "TMS", fn, SH_PFC_PIN_CFG_PULL_UP), \ 63 + PIN_NOGP_CFG(TRST_N, "TRST#", fn, SH_PFC_PIN_CFG_PULL_UP) 54 64 55 65 enum { 56 66 PINMUX_RESERVED = 0, ··· 1131 1121 PINMUX_IPSR_GPSR(IP17_27_24, VI0_VSYNC_N), 1132 1122 }; 1133 1123 1124 + /* 1125 + * Pins not associated with a GPIO port. 1126 + */ 1127 + enum { 1128 + GP_ASSIGN_LAST(), 1129 + NOGP_ALL(), 1130 + }; 1131 + 1134 1132 static const struct sh_pfc_pin pinmux_pins[] = { 1135 1133 PINMUX_GPIO_GP_ALL(), 1134 + PINMUX_NOGP_ALL(), 1136 1135 }; 1137 1136 1138 1137 /* - AVB -------------------------------------------------------------------- */ ··· 3439 3420 return bit; 3440 3421 } 3441 3422 3423 + static const struct pinmux_bias_reg pinmux_bias_regs[] = { 3424 + { PINMUX_BIAS_REG("PUPR0", 0xe6060100, "N/A", 0) { 3425 + /* PUPR0 pull-up pins */ 3426 + [ 0] = RCAR_GP_PIN(1, 0), /* D0 */ 3427 + [ 1] = RCAR_GP_PIN(0, 22), /* MMC0_D7 */ 3428 + [ 2] = RCAR_GP_PIN(0, 21), /* MMC0_D6 */ 3429 + [ 3] = RCAR_GP_PIN(0, 20), /* MMC0_D5 */ 3430 + [ 4] = RCAR_GP_PIN(0, 19), /* MMC0_D4 */ 3431 + [ 5] = RCAR_GP_PIN(0, 18), /* MMC0_D3 */ 3432 + [ 6] = RCAR_GP_PIN(0, 17), /* MMC0_D2 */ 3433 + [ 7] = RCAR_GP_PIN(0, 16), /* MMC0_D1 */ 3434 + [ 8] = RCAR_GP_PIN(0, 15), /* MMC0_D0 */ 3435 + [ 9] = RCAR_GP_PIN(0, 14), /* MMC0_CMD */ 3436 + [10] = RCAR_GP_PIN(0, 13), /* MMC0_CLK */ 3437 + [11] = RCAR_GP_PIN(0, 12), /* SD0_WP */ 3438 + [12] = RCAR_GP_PIN(0, 11), /* SD0_CD */ 3439 + [13] = RCAR_GP_PIN(0, 10), /* SD0_DAT3 */ 3440 + [14] = RCAR_GP_PIN(0, 9), /* SD0_DAT2 */ 3441 + [15] = RCAR_GP_PIN(0, 8), /* SD0_DAT1 */ 3442 + [16] = RCAR_GP_PIN(0, 7), /* SD0_DAT0 */ 3443 + [17] = RCAR_GP_PIN(0, 6), /* SD0_CMD */ 3444 + [18] = RCAR_GP_PIN(0, 5), /* SD0_CLK */ 3445 + [19] = RCAR_GP_PIN(0, 4), /* CLKOUT */ 3446 + [20] = PIN_NMI, /* NMI */ 3447 + [21] = RCAR_GP_PIN(0, 3), /* USB1_OVC */ 3448 + [22] = RCAR_GP_PIN(0, 2), /* USB1_PWEN */ 3449 + [23] = RCAR_GP_PIN(0, 1), /* USB0_OVC */ 3450 + [24] = RCAR_GP_PIN(0, 0), /* USB0_PWEN */ 3451 + [25] = SH_PFC_PIN_NONE, 3452 + [26] = PIN_TDO, /* TDO */ 3453 + [27] = PIN_TDI, /* TDI */ 3454 + [28] = PIN_TMS, /* TMS */ 3455 + [29] = PIN_TCK, /* TCK */ 3456 + [30] = PIN_TRST_N, /* TRST# */ 3457 + [31] = PIN_PRESETOUT_N, /* PRESETOUT# */ 3458 + } }, 3459 + { PINMUX_BIAS_REG("N/A", 0, "PUPR0", 0xe6060100) { 3460 + /* PUPR0 pull-down pins */ 3461 + [ 0] = SH_PFC_PIN_NONE, 3462 + [ 1] = SH_PFC_PIN_NONE, 3463 + [ 2] = SH_PFC_PIN_NONE, 3464 + [ 3] = SH_PFC_PIN_NONE, 3465 + [ 4] = SH_PFC_PIN_NONE, 3466 + [ 5] = SH_PFC_PIN_NONE, 3467 + [ 6] = SH_PFC_PIN_NONE, 3468 + [ 7] = SH_PFC_PIN_NONE, 3469 + [ 8] = SH_PFC_PIN_NONE, 3470 + [ 9] = SH_PFC_PIN_NONE, 3471 + [10] = SH_PFC_PIN_NONE, 3472 + [11] = SH_PFC_PIN_NONE, 3473 + [12] = SH_PFC_PIN_NONE, 3474 + [13] = SH_PFC_PIN_NONE, 3475 + [14] = SH_PFC_PIN_NONE, 3476 + [15] = SH_PFC_PIN_NONE, 3477 + [16] = SH_PFC_PIN_NONE, 3478 + [17] = SH_PFC_PIN_NONE, 3479 + [18] = SH_PFC_PIN_NONE, 3480 + [19] = SH_PFC_PIN_NONE, 3481 + [20] = SH_PFC_PIN_NONE, 3482 + [21] = SH_PFC_PIN_NONE, 3483 + [22] = SH_PFC_PIN_NONE, 3484 + [23] = SH_PFC_PIN_NONE, 3485 + [24] = SH_PFC_PIN_NONE, 3486 + [25] = PIN_ASEBRK_N_ACK, /* ASEBRK#/ACK */ 3487 + [26] = SH_PFC_PIN_NONE, 3488 + [27] = SH_PFC_PIN_NONE, 3489 + [28] = SH_PFC_PIN_NONE, 3490 + [29] = SH_PFC_PIN_NONE, 3491 + [30] = SH_PFC_PIN_NONE, 3492 + [31] = SH_PFC_PIN_NONE, 3493 + } }, 3494 + { PINMUX_BIAS_REG("PUPR1", 0xe6060104, "N/A", 0) { 3495 + [ 0] = RCAR_GP_PIN(2, 9), /* DU0_DG1 */ 3496 + [ 1] = RCAR_GP_PIN(2, 8), /* DU0_DG0 */ 3497 + [ 2] = RCAR_GP_PIN(2, 7), /* DU0_DR7 */ 3498 + [ 3] = RCAR_GP_PIN(2, 6), /* DU0_DR6 */ 3499 + [ 4] = RCAR_GP_PIN(2, 5), /* DU0_DR5 */ 3500 + [ 5] = RCAR_GP_PIN(2, 4), /* DU0_DR4 */ 3501 + [ 6] = RCAR_GP_PIN(2, 3), /* DU0_DR3 */ 3502 + [ 7] = RCAR_GP_PIN(2, 2), /* DU0_DR2 */ 3503 + [ 8] = RCAR_GP_PIN(2, 1), /* DU0_DR1 */ 3504 + [ 9] = RCAR_GP_PIN(2, 0), /* DU0_DR0 */ 3505 + [10] = RCAR_GP_PIN(1, 22), /* EX_WAIT0 */ 3506 + [11] = RCAR_GP_PIN(1, 21), /* QSPI0_SSL */ 3507 + [12] = RCAR_GP_PIN(1, 20), /* QSPI0_IO3 */ 3508 + [13] = RCAR_GP_PIN(1, 19), /* QSPI0_IO2 */ 3509 + [14] = RCAR_GP_PIN(1, 18), /* QSPI0_MISO/QSPI0_IO1 */ 3510 + [15] = RCAR_GP_PIN(1, 17), /* QSPI0_MOSI/QSPI0_IO0 */ 3511 + [16] = RCAR_GP_PIN(1, 16), /* QSPI0_SPCLK */ 3512 + [17] = RCAR_GP_PIN(1, 15), /* D15 */ 3513 + [18] = RCAR_GP_PIN(1, 14), /* D14 */ 3514 + [19] = RCAR_GP_PIN(1, 13), /* D13 */ 3515 + [20] = RCAR_GP_PIN(1, 12), /* D12 */ 3516 + [21] = RCAR_GP_PIN(1, 11), /* D11 */ 3517 + [22] = RCAR_GP_PIN(1, 10), /* D10 */ 3518 + [23] = RCAR_GP_PIN(1, 9), /* D9 */ 3519 + [24] = RCAR_GP_PIN(1, 8), /* D8 */ 3520 + [25] = RCAR_GP_PIN(1, 7), /* D7 */ 3521 + [26] = RCAR_GP_PIN(1, 6), /* D6 */ 3522 + [27] = RCAR_GP_PIN(1, 5), /* D5 */ 3523 + [28] = RCAR_GP_PIN(1, 4), /* D4 */ 3524 + [29] = RCAR_GP_PIN(1, 3), /* D3 */ 3525 + [30] = RCAR_GP_PIN(1, 2), /* D2 */ 3526 + [31] = RCAR_GP_PIN(1, 1), /* D1 */ 3527 + } }, 3528 + { PINMUX_BIAS_REG("PUPR2", 0xe6060108, "N/A", 0) { 3529 + [ 0] = RCAR_GP_PIN(3, 9), /* VI1_CLKENB */ 3530 + [ 1] = RCAR_GP_PIN(3, 8), /* VI1_DATA7 */ 3531 + [ 2] = RCAR_GP_PIN(3, 7), /* VI1_DATA6 */ 3532 + [ 3] = RCAR_GP_PIN(3, 6), /* VI1_DATA5 */ 3533 + [ 4] = RCAR_GP_PIN(3, 5), /* VI1_DATA4 */ 3534 + [ 5] = RCAR_GP_PIN(3, 4), /* VI1_DATA3 */ 3535 + [ 6] = RCAR_GP_PIN(3, 3), /* VI1_DATA2 */ 3536 + [ 7] = RCAR_GP_PIN(3, 2), /* VI1_DATA1 */ 3537 + [ 8] = RCAR_GP_PIN(3, 1), /* VI1_DATA0 */ 3538 + [ 9] = RCAR_GP_PIN(3, 0), /* VI1_CLK */ 3539 + [10] = RCAR_GP_PIN(2, 31), /* DU0_CDE */ 3540 + [11] = RCAR_GP_PIN(2, 30), /* DU0_DISP */ 3541 + [12] = RCAR_GP_PIN(2, 29), /* DU0_EXODDF/DU0_ODDF_DISP_CDE */ 3542 + [13] = RCAR_GP_PIN(2, 28), /* DU0_EXVSYNC/DU0_VSYNC */ 3543 + [14] = RCAR_GP_PIN(2, 27), /* DU0_EXHSYNC/DU0_HSYNC */ 3544 + [15] = RCAR_GP_PIN(2, 26), /* DU0_DOTCLKOUT1 */ 3545 + [16] = RCAR_GP_PIN(2, 25), /* DU0_DOTCLKOUT0 */ 3546 + [17] = RCAR_GP_PIN(2, 24), /* DU0_DOTCLKIN */ 3547 + [18] = RCAR_GP_PIN(2, 23), /* DU0_DB7 */ 3548 + [19] = RCAR_GP_PIN(2, 22), /* DU0_DB6 */ 3549 + [20] = RCAR_GP_PIN(2, 21), /* DU0_DB5 */ 3550 + [21] = RCAR_GP_PIN(2, 20), /* DU0_DB4 */ 3551 + [22] = RCAR_GP_PIN(2, 19), /* DU0_DB3 */ 3552 + [23] = RCAR_GP_PIN(2, 18), /* DU0_DB2 */ 3553 + [24] = RCAR_GP_PIN(2, 17), /* DU0_DB1 */ 3554 + [25] = RCAR_GP_PIN(2, 16), /* DU0_DB0 */ 3555 + [26] = RCAR_GP_PIN(2, 15), /* DU0_DG7 */ 3556 + [27] = RCAR_GP_PIN(2, 14), /* DU0_DG6 */ 3557 + [28] = RCAR_GP_PIN(2, 13), /* DU0_DG5 */ 3558 + [29] = RCAR_GP_PIN(2, 12), /* DU0_DG4 */ 3559 + [30] = RCAR_GP_PIN(2, 11), /* DU0_DG3 */ 3560 + [31] = RCAR_GP_PIN(2, 10), /* DU0_DG2 */ 3561 + } }, 3562 + { PINMUX_BIAS_REG("PUPR3", 0xe606010c, "N/A", 0) { 3563 + [ 0] = RCAR_GP_PIN(4, 21), /* SD2_WP */ 3564 + [ 1] = RCAR_GP_PIN(4, 20), /* SD2_CD */ 3565 + [ 2] = RCAR_GP_PIN(4, 19), /* SD2_DAT3 */ 3566 + [ 3] = RCAR_GP_PIN(4, 18), /* SD2_DAT2 */ 3567 + [ 4] = RCAR_GP_PIN(4, 17), /* SD2_DAT1 */ 3568 + [ 5] = RCAR_GP_PIN(4, 16), /* SD2_DAT0 */ 3569 + [ 6] = RCAR_GP_PIN(4, 15), /* SD2_CMD */ 3570 + [ 7] = RCAR_GP_PIN(4, 14), /* SD2_CLK */ 3571 + [ 8] = RCAR_GP_PIN(4, 13), /* HRTS1#_A */ 3572 + [ 9] = RCAR_GP_PIN(4, 12), /* HCTS1#_A */ 3573 + [10] = RCAR_GP_PIN(4, 11), /* HTX1_A */ 3574 + [11] = RCAR_GP_PIN(4, 10), /* HRX1_A */ 3575 + [12] = RCAR_GP_PIN(4, 9), /* MSIOF0_SS2_A */ 3576 + [13] = RCAR_GP_PIN(4, 8), /* MSIOF0_SS1_A */ 3577 + [14] = RCAR_GP_PIN(4, 7), /* MSIOF0_SYNC_A */ 3578 + [15] = RCAR_GP_PIN(4, 6), /* MSIOF0_SCK_A */ 3579 + [16] = RCAR_GP_PIN(4, 5), /* MSIOF0_TXD_A */ 3580 + [17] = RCAR_GP_PIN(4, 4), /* MSIOF0_RXD_A */ 3581 + [18] = RCAR_GP_PIN(4, 3), /* SDA1_A */ 3582 + [19] = RCAR_GP_PIN(4, 2), /* SCL1_A */ 3583 + [20] = RCAR_GP_PIN(4, 1), /* SDA0_A */ 3584 + [21] = RCAR_GP_PIN(4, 0), /* SCL0_A */ 3585 + [22] = RCAR_GP_PIN(3, 29), /* AVB_TXD5 */ 3586 + [23] = RCAR_GP_PIN(3, 28), /* AVB_TXD4 */ 3587 + [24] = RCAR_GP_PIN(3, 27), /* AVB_TXD3 */ 3588 + [25] = RCAR_GP_PIN(3, 16), /* VI1_DATA11 */ 3589 + [26] = RCAR_GP_PIN(3, 15), /* VI1_DATA10 */ 3590 + [27] = RCAR_GP_PIN(3, 14), /* VI1_DATA9 */ 3591 + [28] = RCAR_GP_PIN(3, 13), /* VI1_DATA8 */ 3592 + [29] = RCAR_GP_PIN(3, 12), /* VI1_VSYNC# */ 3593 + [30] = RCAR_GP_PIN(3, 11), /* VI1_HSYNC# */ 3594 + [31] = RCAR_GP_PIN(3, 10), /* VI1_FIELD */ 3595 + } }, 3596 + { PINMUX_BIAS_REG("PUPR4", 0xe6060110, "N/A", 0) { 3597 + [ 0] = RCAR_GP_PIN(5, 27), /* SSI_SDATA9_A */ 3598 + [ 1] = RCAR_GP_PIN(5, 26), /* SSI_WS9_A */ 3599 + [ 2] = RCAR_GP_PIN(5, 25), /* SSI_SCK9_A */ 3600 + [ 3] = RCAR_GP_PIN(5, 24), /* SSI_SDATA2_A */ 3601 + [ 4] = RCAR_GP_PIN(5, 23), /* SSI_WS2_A */ 3602 + [ 5] = RCAR_GP_PIN(5, 22), /* SSI_SCK2_A */ 3603 + [ 6] = RCAR_GP_PIN(5, 21), /* SSI_SDATA1_A */ 3604 + [ 7] = RCAR_GP_PIN(5, 20), /* SSI_WS1_A */ 3605 + [ 8] = RCAR_GP_PIN(5, 19), /* SSI_SDATA8_A */ 3606 + [ 9] = RCAR_GP_PIN(5, 18), /* SSI_SCK1_A */ 3607 + [10] = RCAR_GP_PIN(5, 17), /* SSI_SDATA4_A */ 3608 + [11] = RCAR_GP_PIN(5, 16), /* SSI_WS4_A */ 3609 + [12] = RCAR_GP_PIN(5, 15), /* SSI_SCK4_A */ 3610 + [13] = RCAR_GP_PIN(5, 14), /* SSI_SDATA3 */ 3611 + [14] = RCAR_GP_PIN(5, 13), /* SSI_WS34 */ 3612 + [15] = RCAR_GP_PIN(5, 12), /* SSI_SCK34 */ 3613 + [16] = RCAR_GP_PIN(5, 11), /* SSI_SDATA0_A */ 3614 + [17] = RCAR_GP_PIN(5, 10), /* SSI_WS0129_A */ 3615 + [18] = RCAR_GP_PIN(5, 9), /* SSI_SCK0129_A */ 3616 + [19] = RCAR_GP_PIN(5, 8), /* SSI_SDATA7_A */ 3617 + [20] = RCAR_GP_PIN(5, 7), /* SSI_WS78_A */ 3618 + [21] = RCAR_GP_PIN(5, 6), /* SSI_SCK78_A */ 3619 + [22] = RCAR_GP_PIN(5, 5), /* SSI_SDATA6_A */ 3620 + [23] = RCAR_GP_PIN(5, 4), /* SSI_WS6_A */ 3621 + [24] = RCAR_GP_PIN(5, 3), /* SSI_SCK6_A */ 3622 + [25] = RCAR_GP_PIN(5, 2), /* SSI_SDATA5_A */ 3623 + [26] = RCAR_GP_PIN(5, 1), /* SSI_WS5_A */ 3624 + [27] = RCAR_GP_PIN(5, 0), /* SSI_SCK5_A */ 3625 + [28] = RCAR_GP_PIN(4, 25), /* SDA2_A */ 3626 + [29] = RCAR_GP_PIN(4, 24), /* SCL2_A */ 3627 + [30] = RCAR_GP_PIN(4, 23), /* TX3_A */ 3628 + [31] = RCAR_GP_PIN(4, 22), /* RX3_A */ 3629 + } }, 3630 + { PINMUX_BIAS_REG("PUPR5", 0xe6060114, "N/A", 0) { 3631 + [ 0] = SH_PFC_PIN_NONE, 3632 + [ 1] = SH_PFC_PIN_NONE, 3633 + [ 2] = SH_PFC_PIN_NONE, 3634 + [ 3] = SH_PFC_PIN_NONE, 3635 + [ 4] = SH_PFC_PIN_NONE, 3636 + [ 5] = SH_PFC_PIN_NONE, 3637 + [ 6] = SH_PFC_PIN_NONE, 3638 + [ 7] = SH_PFC_PIN_NONE, 3639 + [ 8] = SH_PFC_PIN_NONE, 3640 + [ 9] = SH_PFC_PIN_NONE, 3641 + [10] = SH_PFC_PIN_NONE, 3642 + [11] = SH_PFC_PIN_NONE, 3643 + [12] = SH_PFC_PIN_NONE, 3644 + [13] = SH_PFC_PIN_NONE, 3645 + [14] = SH_PFC_PIN_NONE, 3646 + [15] = SH_PFC_PIN_NONE, 3647 + [16] = SH_PFC_PIN_NONE, 3648 + [17] = SH_PFC_PIN_NONE, 3649 + [18] = SH_PFC_PIN_NONE, 3650 + [19] = SH_PFC_PIN_NONE, 3651 + [20] = SH_PFC_PIN_NONE, 3652 + [21] = SH_PFC_PIN_NONE, 3653 + [22] = SH_PFC_PIN_NONE, 3654 + [23] = SH_PFC_PIN_NONE, 3655 + [24] = SH_PFC_PIN_NONE, 3656 + [25] = SH_PFC_PIN_NONE, 3657 + [26] = SH_PFC_PIN_NONE, 3658 + [27] = SH_PFC_PIN_NONE, 3659 + [28] = RCAR_GP_PIN(5, 31), /* AUDIO_CLKOUT_A */ 3660 + [29] = RCAR_GP_PIN(5, 30), /* AUDIO_CLKC_A */ 3661 + [30] = RCAR_GP_PIN(5, 29), /* AUDIO_CLKB_A */ 3662 + [31] = RCAR_GP_PIN(5, 28), /* AUDIO_CLKA_A */ 3663 + } }, 3664 + { /* sentinel */ } 3665 + }; 3666 + 3442 3667 static const struct sh_pfc_soc_operations r8a77470_pinmux_ops = { 3443 3668 .pin_to_pocctrl = r8a77470_pin_to_pocctrl, 3669 + .get_bias = rcar_pinmux_get_bias, 3670 + .set_bias = rcar_pinmux_set_bias, 3444 3671 }; 3445 3672 3446 3673 #ifdef CONFIG_PINCTRL_PFC_R8A77470 ··· 3705 3440 .nr_functions = ARRAY_SIZE(pinmux_functions), 3706 3441 3707 3442 .cfg_regs = pinmux_config_regs, 3443 + .bias_regs = pinmux_bias_regs, 3708 3444 3709 3445 .pinmux_data = pinmux_data, 3710 3446 .pinmux_data_size = ARRAY_SIZE(pinmux_data),
-3
drivers/pinctrl/renesas/pfc-r8a7778.c
··· 18 18 19 19 #include "sh_pfc.h" 20 20 21 - #define PORT_GP_PUP_1(bank, pin, fn, sfx) \ 22 - PORT_GP_CFG_1(bank, pin, fn, sfx, SH_PFC_PIN_CFG_PULL_UP) 23 - 24 21 #define CPU_ALL_GP(fn, sfx) \ 25 22 PORT_GP_CFG_32(0, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 26 23 PORT_GP_CFG_32(1, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \
+294 -7
drivers/pinctrl/renesas/pfc-r8a7790.c
··· 21 21 * which case they support both 3.3V and 1.8V signalling. 22 22 */ 23 23 #define CPU_ALL_GP(fn, sfx) \ 24 - PORT_GP_32(0, fn, sfx), \ 25 - PORT_GP_30(1, fn, sfx), \ 26 - PORT_GP_30(2, fn, sfx), \ 27 - PORT_GP_CFG_32(3, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 28 - PORT_GP_32(4, fn, sfx), \ 29 - PORT_GP_32(5, fn, sfx) 24 + PORT_GP_CFG_32(0, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 25 + PORT_GP_CFG_30(1, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 26 + PORT_GP_CFG_30(2, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 27 + PORT_GP_CFG_32(3, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 28 + PORT_GP_CFG_32(4, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 29 + PORT_GP_CFG_32(5, fn, sfx, SH_PFC_PIN_CFG_PULL_UP) 30 30 31 31 #define CPU_ALL_NOGP(fn) \ 32 + PIN_NOGP_CFG(ASEBRK_N_ACK, "ASEBRK#/ACK", fn, SH_PFC_PIN_CFG_PULL_DOWN), \ 32 33 PIN_NOGP(IIC0_SDA, "AF15", fn), \ 33 34 PIN_NOGP(IIC0_SCL, "AG15", fn), \ 34 35 PIN_NOGP(IIC3_SDA, "AH15", fn), \ 35 - PIN_NOGP(IIC3_SCL, "AJ15", fn) 36 + PIN_NOGP(IIC3_SCL, "AJ15", fn), \ 37 + PIN_NOGP_CFG(TCK, "TCK", fn, SH_PFC_PIN_CFG_PULL_UP), \ 38 + PIN_NOGP_CFG(TDI, "TDI", fn, SH_PFC_PIN_CFG_PULL_UP), \ 39 + PIN_NOGP_CFG(TMS, "TMS", fn, SH_PFC_PIN_CFG_PULL_UP), \ 40 + PIN_NOGP_CFG(TRST_N, "TRST#", fn, SH_PFC_PIN_CFG_PULL_UP) 36 41 37 42 enum { 38 43 PINMUX_RESERVED = 0, ··· 5997 5992 return 31 - (pin & 0x1f); 5998 5993 } 5999 5994 5995 + static const struct pinmux_bias_reg pinmux_bias_regs[] = { 5996 + { PINMUX_BIAS_REG("PUPR0", 0xe6060100, "N/A", 0) { 5997 + [ 0] = RCAR_GP_PIN(0, 16), /* A0 */ 5998 + [ 1] = RCAR_GP_PIN(0, 17), /* A1 */ 5999 + [ 2] = RCAR_GP_PIN(0, 18), /* A2 */ 6000 + [ 3] = RCAR_GP_PIN(0, 19), /* A3 */ 6001 + [ 4] = RCAR_GP_PIN(0, 20), /* A4 */ 6002 + [ 5] = RCAR_GP_PIN(0, 21), /* A5 */ 6003 + [ 6] = RCAR_GP_PIN(0, 22), /* A6 */ 6004 + [ 7] = RCAR_GP_PIN(0, 23), /* A7 */ 6005 + [ 8] = RCAR_GP_PIN(0, 24), /* A8 */ 6006 + [ 9] = RCAR_GP_PIN(0, 25), /* A9 */ 6007 + [10] = RCAR_GP_PIN(0, 26), /* A10 */ 6008 + [11] = RCAR_GP_PIN(0, 27), /* A11 */ 6009 + [12] = RCAR_GP_PIN(0, 28), /* A12 */ 6010 + [13] = RCAR_GP_PIN(0, 29), /* A13 */ 6011 + [14] = RCAR_GP_PIN(0, 30), /* A14 */ 6012 + [15] = RCAR_GP_PIN(0, 31), /* A15 */ 6013 + [16] = RCAR_GP_PIN(1, 0), /* A16 */ 6014 + [17] = RCAR_GP_PIN(1, 1), /* A17 */ 6015 + [18] = RCAR_GP_PIN(1, 2), /* A18 */ 6016 + [19] = RCAR_GP_PIN(1, 3), /* A19 */ 6017 + [20] = RCAR_GP_PIN(1, 4), /* A20 */ 6018 + [21] = RCAR_GP_PIN(1, 5), /* A21 */ 6019 + [22] = RCAR_GP_PIN(1, 6), /* A22 */ 6020 + [23] = RCAR_GP_PIN(1, 7), /* A23 */ 6021 + [24] = RCAR_GP_PIN(1, 8), /* A24 */ 6022 + [25] = RCAR_GP_PIN(1, 9), /* A25 */ 6023 + [26] = RCAR_GP_PIN(1, 12), /* EX_CS0# */ 6024 + [27] = RCAR_GP_PIN(1, 13), /* EX_CS1# */ 6025 + [28] = RCAR_GP_PIN(1, 14), /* EX_CS2# */ 6026 + [29] = RCAR_GP_PIN(1, 15), /* EX_CS3# */ 6027 + [30] = RCAR_GP_PIN(1, 16), /* EX_CS4# */ 6028 + [31] = RCAR_GP_PIN(1, 17), /* EX_CS5# */ 6029 + } }, 6030 + { PINMUX_BIAS_REG("PUPR1", 0xe6060104, "N/A", 0) { 6031 + /* PUPR1 pull-up pins */ 6032 + [ 0] = RCAR_GP_PIN(1, 18), /* BS# */ 6033 + [ 1] = RCAR_GP_PIN(1, 19), /* RD# */ 6034 + [ 2] = RCAR_GP_PIN(1, 20), /* RD/WR# */ 6035 + [ 3] = RCAR_GP_PIN(1, 21), /* WE0# */ 6036 + [ 4] = RCAR_GP_PIN(1, 22), /* WE1# */ 6037 + [ 5] = RCAR_GP_PIN(1, 23), /* EX_WAIT0 */ 6038 + [ 6] = RCAR_GP_PIN(5, 24), /* AVS1 */ 6039 + [ 7] = RCAR_GP_PIN(5, 25), /* AVS2 */ 6040 + [ 8] = RCAR_GP_PIN(1, 10), /* CS0# */ 6041 + [ 9] = RCAR_GP_PIN(1, 11), /* CS1#/A26 */ 6042 + [10] = PIN_TRST_N, /* TRST# */ 6043 + [11] = PIN_TCK, /* TCK */ 6044 + [12] = PIN_TMS, /* TMS */ 6045 + [13] = PIN_TDI, /* TDI */ 6046 + [14] = SH_PFC_PIN_NONE, 6047 + [15] = SH_PFC_PIN_NONE, 6048 + [16] = RCAR_GP_PIN(0, 0), /* D0 */ 6049 + [17] = RCAR_GP_PIN(0, 1), /* D1 */ 6050 + [18] = RCAR_GP_PIN(0, 2), /* D2 */ 6051 + [19] = RCAR_GP_PIN(0, 3), /* D3 */ 6052 + [20] = RCAR_GP_PIN(0, 4), /* D4 */ 6053 + [21] = RCAR_GP_PIN(0, 5), /* D5 */ 6054 + [22] = RCAR_GP_PIN(0, 6), /* D6 */ 6055 + [23] = RCAR_GP_PIN(0, 7), /* D7 */ 6056 + [24] = RCAR_GP_PIN(0, 8), /* D8 */ 6057 + [25] = RCAR_GP_PIN(0, 9), /* D9 */ 6058 + [26] = RCAR_GP_PIN(0, 10), /* D10 */ 6059 + [27] = RCAR_GP_PIN(0, 11), /* D11 */ 6060 + [28] = RCAR_GP_PIN(0, 12), /* D12 */ 6061 + [29] = RCAR_GP_PIN(0, 13), /* D13 */ 6062 + [30] = RCAR_GP_PIN(0, 14), /* D14 */ 6063 + [31] = RCAR_GP_PIN(0, 15), /* D15 */ 6064 + } }, 6065 + { PINMUX_BIAS_REG("N/A", 0, "PUPR1", 0xe6060104) { 6066 + /* PUPR1 pull-down pins */ 6067 + [ 0] = SH_PFC_PIN_NONE, 6068 + [ 1] = SH_PFC_PIN_NONE, 6069 + [ 2] = SH_PFC_PIN_NONE, 6070 + [ 3] = SH_PFC_PIN_NONE, 6071 + [ 4] = SH_PFC_PIN_NONE, 6072 + [ 5] = SH_PFC_PIN_NONE, 6073 + [ 6] = SH_PFC_PIN_NONE, 6074 + [ 7] = SH_PFC_PIN_NONE, 6075 + [ 8] = SH_PFC_PIN_NONE, 6076 + [ 9] = SH_PFC_PIN_NONE, 6077 + [10] = SH_PFC_PIN_NONE, 6078 + [11] = SH_PFC_PIN_NONE, 6079 + [12] = SH_PFC_PIN_NONE, 6080 + [13] = SH_PFC_PIN_NONE, 6081 + [14] = SH_PFC_PIN_NONE, 6082 + [15] = PIN_ASEBRK_N_ACK, /* ASEBRK#/ACK */ 6083 + [16] = SH_PFC_PIN_NONE, 6084 + [17] = SH_PFC_PIN_NONE, 6085 + [18] = SH_PFC_PIN_NONE, 6086 + [19] = SH_PFC_PIN_NONE, 6087 + [20] = SH_PFC_PIN_NONE, 6088 + [21] = SH_PFC_PIN_NONE, 6089 + [22] = SH_PFC_PIN_NONE, 6090 + [23] = SH_PFC_PIN_NONE, 6091 + [24] = SH_PFC_PIN_NONE, 6092 + [25] = SH_PFC_PIN_NONE, 6093 + [26] = SH_PFC_PIN_NONE, 6094 + [27] = SH_PFC_PIN_NONE, 6095 + [28] = SH_PFC_PIN_NONE, 6096 + [29] = SH_PFC_PIN_NONE, 6097 + [30] = SH_PFC_PIN_NONE, 6098 + [31] = SH_PFC_PIN_NONE, 6099 + } }, 6100 + { PINMUX_BIAS_REG("PUPR2", 0xe6060108, "N/A", 0) { 6101 + [ 0] = RCAR_GP_PIN(5, 28), /* DU_DOTCLKIN2 */ 6102 + [ 1] = SH_PFC_PIN_NONE, 6103 + [ 2] = SH_PFC_PIN_NONE, 6104 + [ 3] = SH_PFC_PIN_NONE, 6105 + [ 4] = SH_PFC_PIN_NONE, 6106 + [ 5] = RCAR_GP_PIN(2, 0), /* VI0_CLK */ 6107 + [ 6] = RCAR_GP_PIN(2, 1), /* VI0_DATA0_VI0_B0 */ 6108 + [ 7] = RCAR_GP_PIN(2, 2), /* VI0_DATA1_VI0_B1 */ 6109 + [ 8] = RCAR_GP_PIN(2, 3), /* VI0_DATA2_VI0_B2 */ 6110 + [ 9] = RCAR_GP_PIN(2, 4), /* VI0_DATA3_VI0_B3 */ 6111 + [10] = RCAR_GP_PIN(2, 5), /* VI0_DATA4_VI0_B4 */ 6112 + [11] = RCAR_GP_PIN(2, 6), /* VI0_DATA5_VI0_B5 */ 6113 + [12] = RCAR_GP_PIN(2, 7), /* VI0_DATA6_VI0_B6 */ 6114 + [13] = RCAR_GP_PIN(2, 8), /* VI0_DATA7_VI0_B7 */ 6115 + [14] = RCAR_GP_PIN(2, 9), /* VI1_CLK */ 6116 + [15] = RCAR_GP_PIN(2, 10), /* VI1_DATA0_VI1_B0 */ 6117 + [16] = RCAR_GP_PIN(2, 11), /* VI1_DATA1_VI1_B1 */ 6118 + [17] = RCAR_GP_PIN(2, 12), /* VI1_DATA2_VI1_B2 */ 6119 + [18] = RCAR_GP_PIN(2, 13), /* VI1_DATA3_VI1_B3 */ 6120 + [19] = RCAR_GP_PIN(2, 14), /* VI1_DATA4_VI1_B4 */ 6121 + [20] = RCAR_GP_PIN(2, 15), /* VI1_DATA5_VI1_B5 */ 6122 + [21] = RCAR_GP_PIN(2, 16), /* VI1_DATA6_VI1_B6 */ 6123 + [22] = RCAR_GP_PIN(2, 17), /* VI1_DATA7_VI1_B7 */ 6124 + [23] = RCAR_GP_PIN(5, 27), /* DU_DOTCLKIN1 */ 6125 + [24] = SH_PFC_PIN_NONE, 6126 + [25] = SH_PFC_PIN_NONE, 6127 + [26] = SH_PFC_PIN_NONE, 6128 + [27] = RCAR_GP_PIN(4, 0), /* MLB_CLK */ 6129 + [28] = RCAR_GP_PIN(4, 1), /* MLB_SIG */ 6130 + [29] = RCAR_GP_PIN(4, 2), /* MLB_DAT */ 6131 + [30] = SH_PFC_PIN_NONE, 6132 + [31] = RCAR_GP_PIN(5, 26), /* DU_DOTCLKIN0 */ 6133 + } }, 6134 + { PINMUX_BIAS_REG("PUPR3", 0xe606010c, "N/A", 0) { 6135 + [ 0] = RCAR_GP_PIN(3, 0), /* SD0_CLK */ 6136 + [ 1] = RCAR_GP_PIN(3, 1), /* SD0_CMD */ 6137 + [ 2] = RCAR_GP_PIN(3, 2), /* SD0_DAT0 */ 6138 + [ 3] = RCAR_GP_PIN(3, 3), /* SD0_DAT1 */ 6139 + [ 4] = RCAR_GP_PIN(3, 4), /* SD0_DAT2 */ 6140 + [ 5] = RCAR_GP_PIN(3, 5), /* SD0_DAT3 */ 6141 + [ 6] = RCAR_GP_PIN(3, 6), /* SD0_CD */ 6142 + [ 7] = RCAR_GP_PIN(3, 7), /* SD0_WP */ 6143 + [ 8] = RCAR_GP_PIN(3, 8), /* SD1_CLK */ 6144 + [ 9] = RCAR_GP_PIN(3, 9), /* SD1_CMD */ 6145 + [10] = RCAR_GP_PIN(3, 10), /* SD1_DAT0 */ 6146 + [11] = RCAR_GP_PIN(3, 11), /* SD1_DAT1 */ 6147 + [12] = RCAR_GP_PIN(3, 12), /* SD1_DAT2 */ 6148 + [13] = RCAR_GP_PIN(3, 13), /* SD1_DAT3 */ 6149 + [14] = RCAR_GP_PIN(3, 14), /* SD1_CD */ 6150 + [15] = RCAR_GP_PIN(3, 15), /* SD1_WP */ 6151 + [16] = RCAR_GP_PIN(3, 16), /* SD2_CLK */ 6152 + [17] = RCAR_GP_PIN(3, 17), /* SD2_CMD */ 6153 + [18] = RCAR_GP_PIN(3, 18), /* SD2_DAT0 */ 6154 + [19] = RCAR_GP_PIN(3, 19), /* SD2_DAT1 */ 6155 + [20] = RCAR_GP_PIN(3, 20), /* SD2_DAT2 */ 6156 + [21] = RCAR_GP_PIN(3, 21), /* SD2_DAT3 */ 6157 + [22] = RCAR_GP_PIN(3, 22), /* SD2_CD */ 6158 + [23] = RCAR_GP_PIN(3, 23), /* SD2_WP */ 6159 + [24] = RCAR_GP_PIN(3, 24), /* SD3_CLK */ 6160 + [25] = RCAR_GP_PIN(3, 25), /* SD3_CMD */ 6161 + [26] = RCAR_GP_PIN(3, 26), /* SD3_DAT0 */ 6162 + [27] = RCAR_GP_PIN(3, 27), /* SD3_DAT1 */ 6163 + [28] = RCAR_GP_PIN(3, 28), /* SD3_DAT2 */ 6164 + [29] = RCAR_GP_PIN(3, 29), /* SD3_DAT3 */ 6165 + [30] = RCAR_GP_PIN(3, 30), /* SD3_CD */ 6166 + [31] = RCAR_GP_PIN(3, 31), /* SD3_WP */ 6167 + } }, 6168 + { PINMUX_BIAS_REG("PUPR4", 0xe6060110, "N/A", 0) { 6169 + [ 0] = RCAR_GP_PIN(4, 3), /* SSI_SCK0129 */ 6170 + [ 1] = RCAR_GP_PIN(4, 4), /* SSI_WS0129 */ 6171 + [ 2] = RCAR_GP_PIN(4, 5), /* SSI_SDATA0 */ 6172 + [ 3] = RCAR_GP_PIN(4, 6), /* SSI_SDATA1 */ 6173 + [ 4] = RCAR_GP_PIN(4, 7), /* SSI_SDATA2 */ 6174 + [ 5] = RCAR_GP_PIN(4, 8), /* SSI_SCK34 */ 6175 + [ 6] = RCAR_GP_PIN(4, 9), /* SSI_WS34 */ 6176 + [ 7] = RCAR_GP_PIN(4, 10), /* SSI_SDATA3 */ 6177 + [ 8] = RCAR_GP_PIN(4, 11), /* SSI_SCK4 */ 6178 + [ 9] = RCAR_GP_PIN(4, 12), /* SSI_WS4 */ 6179 + [10] = RCAR_GP_PIN(4, 13), /* SSI_SDATA4 */ 6180 + [11] = RCAR_GP_PIN(4, 14), /* SSI_SCK5 */ 6181 + [12] = RCAR_GP_PIN(4, 15), /* SSI_WS5 */ 6182 + [13] = RCAR_GP_PIN(4, 16), /* SSI_SDATA5 */ 6183 + [14] = RCAR_GP_PIN(4, 17), /* SSI_SCK6 */ 6184 + [15] = RCAR_GP_PIN(4, 18), /* SSI_WS6 */ 6185 + [16] = RCAR_GP_PIN(4, 19), /* SSI_SDATA6 */ 6186 + [17] = RCAR_GP_PIN(4, 20), /* SSI_SCK78 */ 6187 + [18] = RCAR_GP_PIN(4, 21), /* SSI_WS78 */ 6188 + [19] = RCAR_GP_PIN(4, 22), /* SSI_SDATA7 */ 6189 + [20] = RCAR_GP_PIN(4, 23), /* SSI_SDATA8 */ 6190 + [21] = RCAR_GP_PIN(4, 24), /* SSI_SDATA9 */ 6191 + [22] = RCAR_GP_PIN(4, 25), /* AUDIO_CLKA */ 6192 + [23] = RCAR_GP_PIN(4, 26), /* AUDIO_CLKB */ 6193 + [24] = RCAR_GP_PIN(1, 24), /* DREQ0 */ 6194 + [25] = RCAR_GP_PIN(1, 25), /* DACK0 */ 6195 + [26] = RCAR_GP_PIN(1, 26), /* DREQ1 */ 6196 + [27] = RCAR_GP_PIN(1, 27), /* DACK1 */ 6197 + [28] = RCAR_GP_PIN(1, 28), /* DREQ2 */ 6198 + [29] = RCAR_GP_PIN(1, 29), /* DACK2 */ 6199 + [30] = RCAR_GP_PIN(2, 18), /* ETH_CRS_DV */ 6200 + [31] = RCAR_GP_PIN(2, 19), /* ETH_RX_ER */ 6201 + } }, 6202 + { PINMUX_BIAS_REG("PUPR5", 0xe6060114, "N/A", 0) { 6203 + [ 0] = RCAR_GP_PIN(4, 27), /* SCIFA0_SCK */ 6204 + [ 1] = RCAR_GP_PIN(4, 28), /* SCIFA0_RXD */ 6205 + [ 2] = RCAR_GP_PIN(4, 29), /* SCIFA0_TXD */ 6206 + [ 3] = RCAR_GP_PIN(4, 30), /* SCIFA0_CTS# */ 6207 + [ 4] = RCAR_GP_PIN(4, 31), /* SCIFA0_RTS# */ 6208 + [ 5] = RCAR_GP_PIN(5, 0), /* SCIFA1_RXD */ 6209 + [ 6] = RCAR_GP_PIN(5, 1), /* SCIFA1_TXD */ 6210 + [ 7] = RCAR_GP_PIN(5, 2), /* SCIFA1_CTS# */ 6211 + [ 8] = RCAR_GP_PIN(5, 3), /* SCIFA1_RTS# */ 6212 + [ 9] = RCAR_GP_PIN(5, 4), /* SCIFA2_SCK */ 6213 + [10] = RCAR_GP_PIN(5, 5), /* SCIFA2_RXD */ 6214 + [11] = RCAR_GP_PIN(5, 6), /* SCIFA2_TXD */ 6215 + [12] = RCAR_GP_PIN(5, 7), /* HSCK0 */ 6216 + [13] = RCAR_GP_PIN(5, 8), /* HRX0 */ 6217 + [14] = RCAR_GP_PIN(5, 9), /* HTX0 */ 6218 + [15] = RCAR_GP_PIN(5, 10), /* HCTS0# */ 6219 + [16] = RCAR_GP_PIN(5, 11), /* HRTS0# */ 6220 + [17] = RCAR_GP_PIN(5, 12), /* MSIOF0_SCK */ 6221 + [18] = RCAR_GP_PIN(5, 13), /* MSIOF0_SYNC */ 6222 + [19] = RCAR_GP_PIN(5, 14), /* MSIOF0_SS1 */ 6223 + [20] = RCAR_GP_PIN(5, 15), /* MSIOF0_TXD */ 6224 + [21] = RCAR_GP_PIN(5, 16), /* MSIOF0_SS2 */ 6225 + [22] = RCAR_GP_PIN(5, 17), /* MSIOF0_RXD */ 6226 + [23] = RCAR_GP_PIN(5, 18), /* USB0_PWEN */ 6227 + [24] = RCAR_GP_PIN(5, 19), /* USB0_OVC_VBUS */ 6228 + [25] = RCAR_GP_PIN(5, 20), /* USB1_PWEN */ 6229 + [26] = RCAR_GP_PIN(5, 21), /* USB1_OVC */ 6230 + [27] = RCAR_GP_PIN(5, 22), /* USB2_PWEN */ 6231 + [28] = RCAR_GP_PIN(5, 23), /* USB2_OVC */ 6232 + [29] = RCAR_GP_PIN(2, 20), /* ETH_RXD0 */ 6233 + [30] = RCAR_GP_PIN(2, 21), /* ETH_RXD1 */ 6234 + [31] = RCAR_GP_PIN(2, 22), /* ETH_LINK */ 6235 + } }, 6236 + { PINMUX_BIAS_REG("PUPR6", 0xe6060118, "N/A", 0) { 6237 + [ 0] = RCAR_GP_PIN(2, 23), /* ETH_REF_CLK */ 6238 + [ 1] = RCAR_GP_PIN(2, 24), /* ETH_MDIO */ 6239 + [ 2] = RCAR_GP_PIN(2, 25), /* ETH_TXD1 */ 6240 + [ 3] = RCAR_GP_PIN(2, 26), /* ETH_TX_EN */ 6241 + [ 4] = RCAR_GP_PIN(2, 27), /* ETH_MAGIC */ 6242 + [ 5] = RCAR_GP_PIN(2, 28), /* ETH_TXD0 */ 6243 + [ 6] = RCAR_GP_PIN(2, 29), /* ETH_MDC */ 6244 + [ 7] = RCAR_GP_PIN(5, 29), /* PWM0 */ 6245 + [ 8] = RCAR_GP_PIN(5, 30), /* PWM1 */ 6246 + [ 9] = RCAR_GP_PIN(5, 31), /* PWM2 */ 6247 + [10] = SH_PFC_PIN_NONE, 6248 + [11] = SH_PFC_PIN_NONE, 6249 + [12] = SH_PFC_PIN_NONE, 6250 + [13] = SH_PFC_PIN_NONE, 6251 + [14] = SH_PFC_PIN_NONE, 6252 + [15] = SH_PFC_PIN_NONE, 6253 + [16] = SH_PFC_PIN_NONE, 6254 + [17] = SH_PFC_PIN_NONE, 6255 + [18] = SH_PFC_PIN_NONE, 6256 + [19] = SH_PFC_PIN_NONE, 6257 + [20] = SH_PFC_PIN_NONE, 6258 + [21] = SH_PFC_PIN_NONE, 6259 + [22] = SH_PFC_PIN_NONE, 6260 + [23] = SH_PFC_PIN_NONE, 6261 + [24] = SH_PFC_PIN_NONE, 6262 + [25] = SH_PFC_PIN_NONE, 6263 + [26] = SH_PFC_PIN_NONE, 6264 + [27] = SH_PFC_PIN_NONE, 6265 + [28] = SH_PFC_PIN_NONE, 6266 + [29] = SH_PFC_PIN_NONE, 6267 + [30] = SH_PFC_PIN_NONE, 6268 + [31] = SH_PFC_PIN_NONE, 6269 + } }, 6270 + { /* sentinel */ } 6271 + }; 6272 + 6000 6273 static const struct soc_device_attribute r8a7790_tdsel[] = { 6001 6274 { .soc_id = "r8a7790", .revision = "ES1.0" }, 6002 6275 { /* sentinel */ } ··· 6292 6009 static const struct sh_pfc_soc_operations r8a7790_pinmux_ops = { 6293 6010 .init = r8a7790_pinmux_soc_init, 6294 6011 .pin_to_pocctrl = r8a7790_pin_to_pocctrl, 6012 + .get_bias = rcar_pinmux_get_bias, 6013 + .set_bias = rcar_pinmux_set_bias, 6295 6014 }; 6296 6015 6297 6016 #ifdef CONFIG_PINCTRL_PFC_R8A7742 ··· 6312 6027 .nr_functions = ARRAY_SIZE(pinmux_functions.common), 6313 6028 6314 6029 .cfg_regs = pinmux_config_regs, 6030 + .bias_regs = pinmux_bias_regs, 6315 6031 6316 6032 .pinmux_data = pinmux_data, 6317 6033 .pinmux_data_size = ARRAY_SIZE(pinmux_data), ··· 6337 6051 ARRAY_SIZE(pinmux_functions.automotive), 6338 6052 6339 6053 .cfg_regs = pinmux_config_regs, 6054 + .bias_regs = pinmux_bias_regs, 6340 6055 6341 6056 .pinmux_data = pinmux_data, 6342 6057 .pinmux_data_size = ARRAY_SIZE(pinmux_data),
+521 -12
drivers/pinctrl/renesas/pfc-r8a7792.c
··· 11 11 #include "sh_pfc.h" 12 12 13 13 #define CPU_ALL_GP(fn, sfx) \ 14 - PORT_GP_29(0, fn, sfx), \ 15 - PORT_GP_23(1, fn, sfx), \ 16 - PORT_GP_32(2, fn, sfx), \ 17 - PORT_GP_28(3, fn, sfx), \ 18 - PORT_GP_17(4, fn, sfx), \ 19 - PORT_GP_17(5, fn, sfx), \ 20 - PORT_GP_17(6, fn, sfx), \ 21 - PORT_GP_17(7, fn, sfx), \ 22 - PORT_GP_17(8, fn, sfx), \ 23 - PORT_GP_17(9, fn, sfx), \ 24 - PORT_GP_32(10, fn, sfx), \ 25 - PORT_GP_30(11, fn, sfx) 14 + PORT_GP_CFG_29(0, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 15 + PORT_GP_CFG_23(1, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 16 + PORT_GP_CFG_32(2, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 17 + PORT_GP_CFG_28(3, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 18 + PORT_GP_CFG_17(4, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 19 + PORT_GP_CFG_17(5, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 20 + PORT_GP_CFG_17(6, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 21 + PORT_GP_CFG_17(7, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 22 + PORT_GP_CFG_17(8, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 23 + PORT_GP_CFG_17(9, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 24 + PORT_GP_CFG_32(10, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 25 + PORT_GP_CFG_30(11, fn, sfx, SH_PFC_PIN_CFG_PULL_UP) 26 + 27 + #define CPU_ALL_NOGP(fn) \ 28 + PIN_NOGP_CFG(DU0_DOTCLKIN, "DU0_DOTCLKIN", fn, SH_PFC_PIN_CFG_PULL_UP), \ 29 + PIN_NOGP_CFG(DU0_DOTCLKOUT, "DU0_DOTCLKOUT", fn, SH_PFC_PIN_CFG_PULL_UP), \ 30 + PIN_NOGP_CFG(DU1_DOTCLKIN, "DU1_DOTCLKIN", fn, SH_PFC_PIN_CFG_PULL_UP), \ 31 + PIN_NOGP_CFG(DU1_DOTCLKOUT, "DU1_DOTCLKOUT", fn, SH_PFC_PIN_CFG_PULL_UP), \ 32 + PIN_NOGP_CFG(EDBGREQ, "EDBGREQ", fn, SH_PFC_PIN_CFG_PULL_DOWN), \ 33 + PIN_NOGP_CFG(TCK, "TCK", fn, SH_PFC_PIN_CFG_PULL_UP), \ 34 + PIN_NOGP_CFG(TDI, "TDI", fn, SH_PFC_PIN_CFG_PULL_UP), \ 35 + PIN_NOGP_CFG(TMS, "TMS", fn, SH_PFC_PIN_CFG_PULL_UP), \ 36 + PIN_NOGP_CFG(TRST_N, "TRST#", fn, SH_PFC_PIN_CFG_PULL_UP) 26 37 27 38 enum { 28 39 PINMUX_RESERVED = 0, ··· 734 723 PINMUX_IPSR_GPSR(IP7_20, AUDIO_CLKB), 735 724 }; 736 725 726 + /* 727 + * Pins not associated with a GPIO port. 728 + */ 729 + enum { 730 + GP_ASSIGN_LAST(), 731 + NOGP_ALL(), 732 + }; 733 + 737 734 static const struct sh_pfc_pin pinmux_pins[] = { 738 735 PINMUX_GPIO_GP_ALL(), 736 + PINMUX_NOGP_ALL(), 739 737 }; 740 738 741 739 /* - AVB -------------------------------------------------------------------- */ ··· 2799 2779 { }, 2800 2780 }; 2801 2781 2782 + static const struct pinmux_bias_reg pinmux_bias_regs[] = { 2783 + { PINMUX_BIAS_REG("PUPR0", 0xe6060100, "N/A", 0) { 2784 + [ 0] = RCAR_GP_PIN(0, 0), /* DU0_DR0_DATA0 */ 2785 + [ 1] = RCAR_GP_PIN(0, 1), /* DU0_DR1_DATA1 */ 2786 + [ 2] = RCAR_GP_PIN(0, 2), /* DU0_DR2_Y4_DATA2 */ 2787 + [ 3] = RCAR_GP_PIN(0, 3), /* DU0_DR3_Y5_DATA3 */ 2788 + [ 4] = RCAR_GP_PIN(0, 4), /* DU0_DR4_Y6_DATA4 */ 2789 + [ 5] = RCAR_GP_PIN(0, 5), /* DU0_DR5_Y7_DATA5 */ 2790 + [ 6] = RCAR_GP_PIN(0, 6), /* DU0_DR6_Y8_DATA6 */ 2791 + [ 7] = RCAR_GP_PIN(0, 7), /* DU0_DR7_Y9_DATA7 */ 2792 + [ 8] = RCAR_GP_PIN(0, 8), /* DU0_DG0_DATA8 */ 2793 + [ 9] = RCAR_GP_PIN(0, 9), /* DU0_DG1_DATA9 */ 2794 + [10] = RCAR_GP_PIN(0, 10), /* DU0_DG2_C6_DATA10 */ 2795 + [11] = RCAR_GP_PIN(0, 11), /* DU0_DG3_C7_DATA11 */ 2796 + [12] = RCAR_GP_PIN(0, 12), /* DU0_DG4_Y0_DATA12 */ 2797 + [13] = RCAR_GP_PIN(0, 13), /* DU0_DG5_Y1_DATA13 */ 2798 + [14] = RCAR_GP_PIN(0, 14), /* DU0_DG6_Y2_DATA14 */ 2799 + [15] = RCAR_GP_PIN(0, 15), /* DU0_DG7_Y3_DATA15 */ 2800 + [16] = RCAR_GP_PIN(0, 16), /* DU0_DB0 */ 2801 + [17] = RCAR_GP_PIN(0, 17), /* DU0_DB1 */ 2802 + [18] = RCAR_GP_PIN(0, 18), /* DU0_DB2_C0 */ 2803 + [19] = RCAR_GP_PIN(0, 19), /* DU0_DB3_C1 */ 2804 + [20] = RCAR_GP_PIN(0, 20), /* DU0_DB4_C2 */ 2805 + [21] = RCAR_GP_PIN(0, 21), /* DU0_DB5_C3 */ 2806 + [22] = RCAR_GP_PIN(0, 22), /* DU0_DB6_C4 */ 2807 + [23] = RCAR_GP_PIN(0, 23), /* DU0_DB7_C5 */ 2808 + [24] = RCAR_GP_PIN(0, 24), /* DU0_EXHSYNC/DU0_HSYNC */ 2809 + [25] = RCAR_GP_PIN(0, 25), /* DU0_EXVSYNC/DU0_VSYNC */ 2810 + [26] = RCAR_GP_PIN(0, 26), /* DU0_EXODDF/DU0_ODDF_DISP_CDE */ 2811 + [27] = RCAR_GP_PIN(0, 27), /* DU0_DISP */ 2812 + [28] = RCAR_GP_PIN(0, 28), /* DU0_CDE */ 2813 + [29] = SH_PFC_PIN_NONE, 2814 + [30] = SH_PFC_PIN_NONE, 2815 + [31] = SH_PFC_PIN_NONE, 2816 + } }, 2817 + { PINMUX_BIAS_REG("PUPR1", 0xe6060104, "N/A", 0) { 2818 + [ 0] = RCAR_GP_PIN(1, 0), /* DU1_DR2_Y4_DATA0 */ 2819 + [ 1] = RCAR_GP_PIN(1, 1), /* DU1_DR3_Y5_DATA1 */ 2820 + [ 2] = RCAR_GP_PIN(1, 2), /* DU1_DR4_Y6_DATA2 */ 2821 + [ 3] = RCAR_GP_PIN(1, 3), /* DU1_DR5_Y7_DATA3 */ 2822 + [ 4] = RCAR_GP_PIN(1, 4), /* DU1_DR6_DATA4 */ 2823 + [ 5] = RCAR_GP_PIN(1, 5), /* DU1_DR7_DATA5 */ 2824 + [ 6] = RCAR_GP_PIN(1, 6), /* DU1_DG2_C6_DATA6 */ 2825 + [ 7] = RCAR_GP_PIN(1, 7), /* DU1_DG3_C7_DATA7 */ 2826 + [ 8] = RCAR_GP_PIN(1, 8), /* DU1_DG4_Y0_DATA8 */ 2827 + [ 9] = RCAR_GP_PIN(1, 9), /* DU1_DG5_Y1_DATA9 */ 2828 + [10] = RCAR_GP_PIN(1, 10), /* DU1_DG6_Y2_DATA10 */ 2829 + [11] = RCAR_GP_PIN(1, 11), /* DU1_DG7_Y3_DATA11 */ 2830 + [12] = RCAR_GP_PIN(1, 12), /* DU1_DB2_C0_DATA12 */ 2831 + [13] = RCAR_GP_PIN(1, 13), /* DU1_DB3_C1_DATA13 */ 2832 + [14] = RCAR_GP_PIN(1, 14), /* DU1_DB4_C2_DATA14 */ 2833 + [15] = RCAR_GP_PIN(1, 15), /* DU1_DB5_C3_DATA15 */ 2834 + [16] = RCAR_GP_PIN(1, 16), /* DU1_DB6_C4 */ 2835 + [17] = RCAR_GP_PIN(1, 17), /* DU1_DB7_C5 */ 2836 + [18] = RCAR_GP_PIN(1, 18), /* DU1_EXHSYNC/DU1_HSYNC */ 2837 + [19] = RCAR_GP_PIN(1, 19), /* DU1_EXVSYNC/DU1_VSYNC */ 2838 + [20] = RCAR_GP_PIN(1, 20), /* DU1_EXODDF/DU1_ODDF_DISP_CDE */ 2839 + [21] = RCAR_GP_PIN(1, 21), /* DU1_DISP */ 2840 + [22] = RCAR_GP_PIN(1, 22), /* DU1_CDE */ 2841 + [23] = SH_PFC_PIN_NONE, 2842 + [24] = SH_PFC_PIN_NONE, 2843 + [25] = SH_PFC_PIN_NONE, 2844 + [26] = SH_PFC_PIN_NONE, 2845 + [27] = SH_PFC_PIN_NONE, 2846 + [28] = SH_PFC_PIN_NONE, 2847 + [29] = SH_PFC_PIN_NONE, 2848 + [30] = SH_PFC_PIN_NONE, 2849 + [31] = SH_PFC_PIN_NONE, 2850 + } }, 2851 + { PINMUX_BIAS_REG("PUPR2", 0xe6060108, "N/A", 0) { 2852 + [ 0] = RCAR_GP_PIN(2, 0), /* D0 */ 2853 + [ 1] = RCAR_GP_PIN(2, 1), /* D1 */ 2854 + [ 2] = RCAR_GP_PIN(2, 2), /* D2 */ 2855 + [ 3] = RCAR_GP_PIN(2, 3), /* D3 */ 2856 + [ 4] = RCAR_GP_PIN(2, 4), /* D4 */ 2857 + [ 5] = RCAR_GP_PIN(2, 5), /* D5 */ 2858 + [ 6] = RCAR_GP_PIN(2, 6), /* D6 */ 2859 + [ 7] = RCAR_GP_PIN(2, 7), /* D7 */ 2860 + [ 8] = RCAR_GP_PIN(2, 8), /* D8 */ 2861 + [ 9] = RCAR_GP_PIN(2, 9), /* D9 */ 2862 + [10] = RCAR_GP_PIN(2, 10), /* D10 */ 2863 + [11] = RCAR_GP_PIN(2, 11), /* D11 */ 2864 + [12] = RCAR_GP_PIN(2, 12), /* D12 */ 2865 + [13] = RCAR_GP_PIN(2, 13), /* D13 */ 2866 + [14] = RCAR_GP_PIN(2, 14), /* D14 */ 2867 + [15] = RCAR_GP_PIN(2, 15), /* D15 */ 2868 + [16] = RCAR_GP_PIN(2, 16), /* A0 */ 2869 + [17] = RCAR_GP_PIN(2, 17), /* A1 */ 2870 + [18] = RCAR_GP_PIN(2, 18), /* A2 */ 2871 + [19] = RCAR_GP_PIN(2, 19), /* A3 */ 2872 + [20] = RCAR_GP_PIN(2, 20), /* A4 */ 2873 + [21] = RCAR_GP_PIN(2, 21), /* A5 */ 2874 + [22] = RCAR_GP_PIN(2, 22), /* A6 */ 2875 + [23] = RCAR_GP_PIN(2, 23), /* A7 */ 2876 + [24] = RCAR_GP_PIN(2, 24), /* A8 */ 2877 + [25] = RCAR_GP_PIN(2, 25), /* A9 */ 2878 + [26] = RCAR_GP_PIN(2, 26), /* A10 */ 2879 + [27] = RCAR_GP_PIN(2, 27), /* A11 */ 2880 + [28] = RCAR_GP_PIN(2, 28), /* A12 */ 2881 + [29] = RCAR_GP_PIN(2, 29), /* A13 */ 2882 + [30] = RCAR_GP_PIN(2, 30), /* A14 */ 2883 + [31] = RCAR_GP_PIN(2, 31), /* A15 */ 2884 + } }, 2885 + { PINMUX_BIAS_REG("PUPR3", 0xe606010c, "N/A", 0) { 2886 + [ 0] = RCAR_GP_PIN(3, 0), /* A16 */ 2887 + [ 1] = RCAR_GP_PIN(3, 1), /* A17 */ 2888 + [ 2] = RCAR_GP_PIN(3, 2), /* A18 */ 2889 + [ 3] = RCAR_GP_PIN(3, 3), /* A19 */ 2890 + [ 4] = RCAR_GP_PIN(3, 4), /* A20 */ 2891 + [ 5] = RCAR_GP_PIN(3, 5), /* A21 */ 2892 + [ 6] = RCAR_GP_PIN(3, 6), /* CS1#/A26 */ 2893 + [ 7] = RCAR_GP_PIN(3, 7), /* EX_CS0# */ 2894 + [ 8] = RCAR_GP_PIN(3, 8), /* EX_CS1# */ 2895 + [ 9] = RCAR_GP_PIN(3, 9), /* EX_CS2# */ 2896 + [10] = RCAR_GP_PIN(3, 10), /* EX_CS3# */ 2897 + [11] = RCAR_GP_PIN(3, 11), /* EX_CS4# */ 2898 + [12] = RCAR_GP_PIN(3, 12), /* EX_CS5# */ 2899 + [13] = RCAR_GP_PIN(3, 13), /* BS# */ 2900 + [14] = RCAR_GP_PIN(3, 14), /* RD# */ 2901 + [15] = RCAR_GP_PIN(3, 15), /* RD/WR# */ 2902 + [16] = RCAR_GP_PIN(3, 16), /* WE0# */ 2903 + [17] = RCAR_GP_PIN(3, 17), /* WE1# */ 2904 + [18] = RCAR_GP_PIN(3, 18), /* EX_WAIT0 */ 2905 + [19] = RCAR_GP_PIN(3, 19), /* IRQ0 */ 2906 + [20] = RCAR_GP_PIN(3, 20), /* IRQ1 */ 2907 + [21] = RCAR_GP_PIN(3, 21), /* IRQ2 */ 2908 + [22] = RCAR_GP_PIN(3, 22), /* IRQ3 */ 2909 + [23] = RCAR_GP_PIN(3, 23), /* A22 */ 2910 + [24] = RCAR_GP_PIN(3, 24), /* A23 */ 2911 + [25] = RCAR_GP_PIN(3, 25), /* A24 */ 2912 + [26] = RCAR_GP_PIN(3, 26), /* A25 */ 2913 + [27] = RCAR_GP_PIN(3, 27), /* CS0# */ 2914 + [28] = SH_PFC_PIN_NONE, 2915 + [29] = SH_PFC_PIN_NONE, 2916 + [30] = SH_PFC_PIN_NONE, 2917 + [31] = SH_PFC_PIN_NONE, 2918 + } }, 2919 + { PINMUX_BIAS_REG("PUPR4", 0xe6060110, "N/A", 0) { 2920 + [ 0] = RCAR_GP_PIN(4, 0), /* VI0_CLK */ 2921 + [ 1] = RCAR_GP_PIN(4, 1), /* VI0_CLKENB */ 2922 + [ 2] = RCAR_GP_PIN(4, 2), /* VI0_HSYNC# */ 2923 + [ 3] = RCAR_GP_PIN(4, 3), /* VI0_VSYNC# */ 2924 + [ 4] = RCAR_GP_PIN(4, 4), /* VI0_D0_B0_C0 */ 2925 + [ 5] = RCAR_GP_PIN(4, 5), /* VI0_D1_B1_C1 */ 2926 + [ 6] = RCAR_GP_PIN(4, 6), /* VI0_D2_B2_C2 */ 2927 + [ 7] = RCAR_GP_PIN(4, 7), /* VI0_D3_B3_C3 */ 2928 + [ 8] = RCAR_GP_PIN(4, 8), /* VI0_D4_B4_C4 */ 2929 + [ 9] = RCAR_GP_PIN(4, 9), /* VI0_D5_B5_C5 */ 2930 + [10] = RCAR_GP_PIN(4, 10), /* VI0_D6_B6_C6 */ 2931 + [11] = RCAR_GP_PIN(4, 11), /* VI0_D7_B7_C7 */ 2932 + [12] = RCAR_GP_PIN(4, 12), /* VI0_D8_G0_Y0 */ 2933 + [13] = RCAR_GP_PIN(4, 13), /* VI0_D9_G1_Y1 */ 2934 + [14] = RCAR_GP_PIN(4, 14), /* VI0_D10_G2_Y2 */ 2935 + [15] = RCAR_GP_PIN(4, 15), /* VI0_D11_G3_Y3 */ 2936 + [16] = RCAR_GP_PIN(4, 16), /* VI0_FIELD */ 2937 + [17] = SH_PFC_PIN_NONE, 2938 + [18] = SH_PFC_PIN_NONE, 2939 + [19] = SH_PFC_PIN_NONE, 2940 + [20] = SH_PFC_PIN_NONE, 2941 + [21] = SH_PFC_PIN_NONE, 2942 + [22] = SH_PFC_PIN_NONE, 2943 + [23] = SH_PFC_PIN_NONE, 2944 + [24] = SH_PFC_PIN_NONE, 2945 + [25] = SH_PFC_PIN_NONE, 2946 + [26] = SH_PFC_PIN_NONE, 2947 + [27] = SH_PFC_PIN_NONE, 2948 + [28] = SH_PFC_PIN_NONE, 2949 + [29] = SH_PFC_PIN_NONE, 2950 + [30] = SH_PFC_PIN_NONE, 2951 + [31] = SH_PFC_PIN_NONE, 2952 + } }, 2953 + { PINMUX_BIAS_REG("PUPR5", 0xe6060114, "N/A", 0) { 2954 + [ 0] = RCAR_GP_PIN(5, 0), /* VI1_CLK */ 2955 + [ 1] = RCAR_GP_PIN(5, 1), /* VI1_CLKENB */ 2956 + [ 2] = RCAR_GP_PIN(5, 2), /* VI1_HSYNC# */ 2957 + [ 3] = RCAR_GP_PIN(5, 3), /* VI1_VSYNC# */ 2958 + [ 4] = RCAR_GP_PIN(5, 4), /* VI1_D0_B0_C0 */ 2959 + [ 5] = RCAR_GP_PIN(5, 5), /* VI1_D1_B1_C1 */ 2960 + [ 6] = RCAR_GP_PIN(5, 6), /* VI1_D2_B2_C2 */ 2961 + [ 7] = RCAR_GP_PIN(5, 7), /* VI1_D3_B3_C3 */ 2962 + [ 8] = RCAR_GP_PIN(5, 8), /* VI1_D4_B4_C4 */ 2963 + [ 9] = RCAR_GP_PIN(5, 9), /* VI1_D5_B5_C5 */ 2964 + [10] = RCAR_GP_PIN(5, 10), /* VI1_D6_B6_C6 */ 2965 + [11] = RCAR_GP_PIN(5, 11), /* VI1_D7_B7_C7 */ 2966 + [12] = RCAR_GP_PIN(5, 12), /* VI1_D8_G0_Y0 */ 2967 + [13] = RCAR_GP_PIN(5, 13), /* VI1_D9_G1_Y1 */ 2968 + [14] = RCAR_GP_PIN(5, 14), /* VI1_D10_G2_Y2 */ 2969 + [15] = RCAR_GP_PIN(5, 15), /* VI1_D11_G3_Y3 */ 2970 + [16] = RCAR_GP_PIN(5, 16), /* VI1_FIELD */ 2971 + [17] = SH_PFC_PIN_NONE, 2972 + [18] = SH_PFC_PIN_NONE, 2973 + [19] = SH_PFC_PIN_NONE, 2974 + [20] = SH_PFC_PIN_NONE, 2975 + [21] = SH_PFC_PIN_NONE, 2976 + [22] = SH_PFC_PIN_NONE, 2977 + [23] = SH_PFC_PIN_NONE, 2978 + [24] = SH_PFC_PIN_NONE, 2979 + [25] = SH_PFC_PIN_NONE, 2980 + [26] = SH_PFC_PIN_NONE, 2981 + [27] = SH_PFC_PIN_NONE, 2982 + [28] = SH_PFC_PIN_NONE, 2983 + [29] = SH_PFC_PIN_NONE, 2984 + [30] = SH_PFC_PIN_NONE, 2985 + [31] = SH_PFC_PIN_NONE, 2986 + } }, 2987 + { PINMUX_BIAS_REG("PUPR6", 0xe6060118, "N/A", 0) { 2988 + [ 0] = RCAR_GP_PIN(6, 0), /* VI2_CLK */ 2989 + [ 1] = RCAR_GP_PIN(6, 1), /* VI2_CLKENB */ 2990 + [ 2] = RCAR_GP_PIN(6, 2), /* VI2_HSYNC# */ 2991 + [ 3] = RCAR_GP_PIN(6, 3), /* VI2_VSYNC# */ 2992 + [ 4] = RCAR_GP_PIN(6, 4), /* VI2_D0_C0 */ 2993 + [ 5] = RCAR_GP_PIN(6, 5), /* VI2_D1_C1 */ 2994 + [ 6] = RCAR_GP_PIN(6, 6), /* VI2_D2_C2 */ 2995 + [ 7] = RCAR_GP_PIN(6, 7), /* VI2_D3_C3 */ 2996 + [ 8] = RCAR_GP_PIN(6, 8), /* VI2_D4_C4 */ 2997 + [ 9] = RCAR_GP_PIN(6, 9), /* VI2_D5_C5 */ 2998 + [10] = RCAR_GP_PIN(6, 10), /* VI2_D6_C6 */ 2999 + [11] = RCAR_GP_PIN(6, 11), /* VI2_D7_C7 */ 3000 + [12] = RCAR_GP_PIN(6, 12), /* VI2_D8_Y0 */ 3001 + [13] = RCAR_GP_PIN(6, 13), /* VI2_D9_Y1 */ 3002 + [14] = RCAR_GP_PIN(6, 14), /* VI2_D10_Y2 */ 3003 + [15] = RCAR_GP_PIN(6, 15), /* VI2_D11_Y3 */ 3004 + [16] = RCAR_GP_PIN(6, 16), /* VI2_FIELD */ 3005 + [17] = SH_PFC_PIN_NONE, 3006 + [18] = SH_PFC_PIN_NONE, 3007 + [19] = SH_PFC_PIN_NONE, 3008 + [20] = SH_PFC_PIN_NONE, 3009 + [21] = SH_PFC_PIN_NONE, 3010 + [22] = SH_PFC_PIN_NONE, 3011 + [23] = SH_PFC_PIN_NONE, 3012 + [24] = SH_PFC_PIN_NONE, 3013 + [25] = SH_PFC_PIN_NONE, 3014 + [26] = SH_PFC_PIN_NONE, 3015 + [27] = SH_PFC_PIN_NONE, 3016 + [28] = SH_PFC_PIN_NONE, 3017 + [29] = SH_PFC_PIN_NONE, 3018 + [30] = SH_PFC_PIN_NONE, 3019 + [31] = SH_PFC_PIN_NONE, 3020 + } }, 3021 + { PINMUX_BIAS_REG("PUPR7", 0xe606011c, "N/A", 0) { 3022 + [ 0] = RCAR_GP_PIN(7, 0), /* VI3_CLK */ 3023 + [ 1] = RCAR_GP_PIN(7, 1), /* VI3_CLKENB */ 3024 + [ 2] = RCAR_GP_PIN(7, 2), /* VI3_HSYNC# */ 3025 + [ 3] = RCAR_GP_PIN(7, 3), /* VI3_VSYNC# */ 3026 + [ 4] = RCAR_GP_PIN(7, 4), /* VI3_D0_C0 */ 3027 + [ 5] = RCAR_GP_PIN(7, 5), /* VI3_D1_C1 */ 3028 + [ 6] = RCAR_GP_PIN(7, 6), /* VI3_D2_C2 */ 3029 + [ 7] = RCAR_GP_PIN(7, 7), /* VI3_D3_C3 */ 3030 + [ 8] = RCAR_GP_PIN(7, 8), /* VI3_D4_C4 */ 3031 + [ 9] = RCAR_GP_PIN(7, 9), /* VI3_D5_C5 */ 3032 + [10] = RCAR_GP_PIN(7, 10), /* VI3_D6_C6 */ 3033 + [11] = RCAR_GP_PIN(7, 11), /* VI3_D7_C7 */ 3034 + [12] = RCAR_GP_PIN(7, 12), /* VI3_D8_Y0 */ 3035 + [13] = RCAR_GP_PIN(7, 13), /* VI3_D9_Y1 */ 3036 + [14] = RCAR_GP_PIN(7, 14), /* VI3_D10_Y2 */ 3037 + [15] = RCAR_GP_PIN(7, 15), /* VI3_D11_Y3 */ 3038 + [16] = RCAR_GP_PIN(7, 16), /* VI3_FIELD */ 3039 + [17] = SH_PFC_PIN_NONE, 3040 + [18] = SH_PFC_PIN_NONE, 3041 + [19] = SH_PFC_PIN_NONE, 3042 + [20] = SH_PFC_PIN_NONE, 3043 + [21] = SH_PFC_PIN_NONE, 3044 + [22] = SH_PFC_PIN_NONE, 3045 + [23] = SH_PFC_PIN_NONE, 3046 + [24] = SH_PFC_PIN_NONE, 3047 + [25] = SH_PFC_PIN_NONE, 3048 + [26] = SH_PFC_PIN_NONE, 3049 + [27] = SH_PFC_PIN_NONE, 3050 + [28] = SH_PFC_PIN_NONE, 3051 + [29] = SH_PFC_PIN_NONE, 3052 + [30] = SH_PFC_PIN_NONE, 3053 + [31] = SH_PFC_PIN_NONE, 3054 + } }, 3055 + { PINMUX_BIAS_REG("PUPR8", 0xe6060120, "N/A", 0) { 3056 + [ 0] = RCAR_GP_PIN(8, 0), /* VI4_CLK */ 3057 + [ 1] = RCAR_GP_PIN(8, 1), /* VI4_CLKENB */ 3058 + [ 2] = RCAR_GP_PIN(8, 2), /* VI4_HSYNC# */ 3059 + [ 3] = RCAR_GP_PIN(8, 3), /* VI4_VSYNC# */ 3060 + [ 4] = RCAR_GP_PIN(8, 4), /* VI4_D0_C0 */ 3061 + [ 5] = RCAR_GP_PIN(8, 5), /* VI4_D1_C1 */ 3062 + [ 6] = RCAR_GP_PIN(8, 6), /* VI4_D2_C2 */ 3063 + [ 7] = RCAR_GP_PIN(8, 7), /* VI4_D3_C3 */ 3064 + [ 8] = RCAR_GP_PIN(8, 8), /* VI4_D4_C4 */ 3065 + [ 9] = RCAR_GP_PIN(8, 9), /* VI4_D5_C5 */ 3066 + [10] = RCAR_GP_PIN(8, 10), /* VI4_D6_C6 */ 3067 + [11] = RCAR_GP_PIN(8, 11), /* VI4_D7_C7 */ 3068 + [12] = RCAR_GP_PIN(8, 12), /* VI4_D8_Y0 */ 3069 + [13] = RCAR_GP_PIN(8, 13), /* VI4_D9_Y1 */ 3070 + [14] = RCAR_GP_PIN(8, 14), /* VI4_D10_Y2 */ 3071 + [15] = RCAR_GP_PIN(8, 15), /* VI4_D11_Y3 */ 3072 + [16] = RCAR_GP_PIN(8, 16), /* VI4_FIELD */ 3073 + [17] = SH_PFC_PIN_NONE, 3074 + [18] = SH_PFC_PIN_NONE, 3075 + [19] = SH_PFC_PIN_NONE, 3076 + [20] = SH_PFC_PIN_NONE, 3077 + [21] = SH_PFC_PIN_NONE, 3078 + [22] = SH_PFC_PIN_NONE, 3079 + [23] = SH_PFC_PIN_NONE, 3080 + [24] = SH_PFC_PIN_NONE, 3081 + [25] = SH_PFC_PIN_NONE, 3082 + [26] = SH_PFC_PIN_NONE, 3083 + [27] = SH_PFC_PIN_NONE, 3084 + [28] = SH_PFC_PIN_NONE, 3085 + [29] = SH_PFC_PIN_NONE, 3086 + [30] = SH_PFC_PIN_NONE, 3087 + [31] = SH_PFC_PIN_NONE, 3088 + } }, 3089 + { PINMUX_BIAS_REG("PUPR9", 0xe6060124, "N/A", 0) { 3090 + [ 0] = RCAR_GP_PIN(9, 0), /* VI5_CLK */ 3091 + [ 1] = RCAR_GP_PIN(9, 1), /* VI5_CLKENB */ 3092 + [ 2] = RCAR_GP_PIN(9, 2), /* VI5_HSYNC# */ 3093 + [ 3] = RCAR_GP_PIN(9, 3), /* VI5_VSYNC# */ 3094 + [ 4] = RCAR_GP_PIN(9, 4), /* VI5_D0_C0 */ 3095 + [ 5] = RCAR_GP_PIN(9, 5), /* VI5_D1_C1 */ 3096 + [ 6] = RCAR_GP_PIN(9, 6), /* VI5_D2_C2 */ 3097 + [ 7] = RCAR_GP_PIN(9, 7), /* VI5_D3_C3 */ 3098 + [ 8] = RCAR_GP_PIN(9, 8), /* VI5_D4_C4 */ 3099 + [ 9] = RCAR_GP_PIN(9, 9), /* VI5_D5_C5 */ 3100 + [10] = RCAR_GP_PIN(9, 10), /* VI5_D6_C6 */ 3101 + [11] = RCAR_GP_PIN(9, 11), /* VI5_D7_C7 */ 3102 + [12] = RCAR_GP_PIN(9, 12), /* VI5_D8_Y0 */ 3103 + [13] = RCAR_GP_PIN(9, 13), /* VI5_D9_Y1 */ 3104 + [14] = RCAR_GP_PIN(9, 14), /* VI5_D10_Y2 */ 3105 + [15] = RCAR_GP_PIN(9, 15), /* VI5_D11_Y3 */ 3106 + [16] = RCAR_GP_PIN(9, 16), /* VI5_FIELD */ 3107 + [17] = SH_PFC_PIN_NONE, 3108 + [18] = SH_PFC_PIN_NONE, 3109 + [19] = SH_PFC_PIN_NONE, 3110 + [20] = SH_PFC_PIN_NONE, 3111 + [21] = SH_PFC_PIN_NONE, 3112 + [22] = SH_PFC_PIN_NONE, 3113 + [23] = SH_PFC_PIN_NONE, 3114 + [24] = SH_PFC_PIN_NONE, 3115 + [25] = SH_PFC_PIN_NONE, 3116 + [26] = SH_PFC_PIN_NONE, 3117 + [27] = SH_PFC_PIN_NONE, 3118 + [28] = SH_PFC_PIN_NONE, 3119 + [29] = SH_PFC_PIN_NONE, 3120 + [30] = SH_PFC_PIN_NONE, 3121 + [31] = SH_PFC_PIN_NONE, 3122 + } }, 3123 + { PINMUX_BIAS_REG("PUPR10", 0xe6060128, "N/A", 0) { 3124 + [ 0] = RCAR_GP_PIN(10, 0), /* HSCK0 */ 3125 + [ 1] = RCAR_GP_PIN(10, 1), /* HCTS0# */ 3126 + [ 2] = RCAR_GP_PIN(10, 2), /* HRTS0# */ 3127 + [ 3] = RCAR_GP_PIN(10, 3), /* HTX0 */ 3128 + [ 4] = RCAR_GP_PIN(10, 4), /* HRX0 */ 3129 + [ 5] = RCAR_GP_PIN(10, 5), /* HSCK1 */ 3130 + [ 6] = RCAR_GP_PIN(10, 6), /* HRTS1# */ 3131 + [ 7] = RCAR_GP_PIN(10, 7), /* HCTS1# */ 3132 + [ 8] = RCAR_GP_PIN(10, 8), /* HTX1 */ 3133 + [ 9] = RCAR_GP_PIN(10, 9), /* HRX1 */ 3134 + [10] = RCAR_GP_PIN(10, 10), /* SCK0 */ 3135 + [11] = RCAR_GP_PIN(10, 11), /* CTS0# */ 3136 + [12] = RCAR_GP_PIN(10, 12), /* RTS0# */ 3137 + [13] = RCAR_GP_PIN(10, 13), /* TX0 */ 3138 + [14] = RCAR_GP_PIN(10, 14), /* RX0 */ 3139 + [15] = RCAR_GP_PIN(10, 15), /* SCK1 */ 3140 + [16] = RCAR_GP_PIN(10, 16), /* CTS1# */ 3141 + [17] = RCAR_GP_PIN(10, 17), /* RTS1# */ 3142 + [18] = RCAR_GP_PIN(10, 18), /* TX1 */ 3143 + [19] = RCAR_GP_PIN(10, 19), /* RX1 */ 3144 + [20] = RCAR_GP_PIN(10, 20), /* SCK2 */ 3145 + [21] = RCAR_GP_PIN(10, 21), /* TX2 */ 3146 + [22] = RCAR_GP_PIN(10, 22), /* RX2 */ 3147 + [23] = RCAR_GP_PIN(10, 23), /* SCK3 */ 3148 + [24] = RCAR_GP_PIN(10, 24), /* TX3 */ 3149 + [25] = RCAR_GP_PIN(10, 25), /* RX3 */ 3150 + [26] = RCAR_GP_PIN(10, 26), /* SCIF_CLK */ 3151 + [27] = RCAR_GP_PIN(10, 27), /* CAN0_TX */ 3152 + [28] = RCAR_GP_PIN(10, 28), /* CAN0_RX */ 3153 + [29] = RCAR_GP_PIN(10, 29), /* CAN_CLK */ 3154 + [30] = RCAR_GP_PIN(10, 30), /* CAN1_TX */ 3155 + [31] = RCAR_GP_PIN(10, 31), /* CAN1_RX */ 3156 + } }, 3157 + { PINMUX_BIAS_REG("PUPR11", 0xe606012c, "N/A", 0) { 3158 + [ 0] = RCAR_GP_PIN(11, 0), /* PWM0 */ 3159 + [ 1] = RCAR_GP_PIN(11, 1), /* PWM1 */ 3160 + [ 2] = RCAR_GP_PIN(11, 2), /* PWM2 */ 3161 + [ 3] = RCAR_GP_PIN(11, 3), /* PWM3 */ 3162 + [ 4] = RCAR_GP_PIN(11, 4), /* PWM4 */ 3163 + [ 5] = RCAR_GP_PIN(11, 5), /* SD0_CLK */ 3164 + [ 6] = RCAR_GP_PIN(11, 6), /* SD0_CMD */ 3165 + [ 7] = RCAR_GP_PIN(11, 7), /* SD0_DAT0 */ 3166 + [ 8] = RCAR_GP_PIN(11, 8), /* SD0_DAT1 */ 3167 + [ 9] = RCAR_GP_PIN(11, 9), /* SD0_DAT2 */ 3168 + [10] = RCAR_GP_PIN(11, 10), /* SD0_DAT3 */ 3169 + [11] = RCAR_GP_PIN(11, 11), /* SD0_CD */ 3170 + [12] = RCAR_GP_PIN(11, 12), /* SD0_WP */ 3171 + [13] = RCAR_GP_PIN(11, 13), /* SSI_SCK3 */ 3172 + [14] = RCAR_GP_PIN(11, 14), /* SSI_WS3 */ 3173 + [15] = RCAR_GP_PIN(11, 15), /* SSI_SDATA3 */ 3174 + [16] = RCAR_GP_PIN(11, 16), /* SSI_SCK4 */ 3175 + [17] = RCAR_GP_PIN(11, 17), /* SSI_WS4 */ 3176 + [18] = RCAR_GP_PIN(11, 18), /* SSI_SDATA4 */ 3177 + [19] = RCAR_GP_PIN(11, 19), /* AUDIO_CLKOUT */ 3178 + [20] = RCAR_GP_PIN(11, 20), /* AUDIO_CLKA */ 3179 + [21] = RCAR_GP_PIN(11, 21), /* AUDIO_CLKB */ 3180 + [22] = RCAR_GP_PIN(11, 22), /* ADICLK */ 3181 + [23] = RCAR_GP_PIN(11, 23), /* ADICS_SAMP */ 3182 + [24] = RCAR_GP_PIN(11, 24), /* ADIDATA */ 3183 + [25] = RCAR_GP_PIN(11, 25), /* ADICHS0 */ 3184 + [26] = RCAR_GP_PIN(11, 26), /* ADICHS1 */ 3185 + [27] = RCAR_GP_PIN(11, 27), /* ADICHS2 */ 3186 + [28] = RCAR_GP_PIN(11, 28), /* AVS1 */ 3187 + [29] = RCAR_GP_PIN(11, 29), /* AVS2 */ 3188 + [30] = SH_PFC_PIN_NONE, 3189 + [31] = SH_PFC_PIN_NONE, 3190 + } }, 3191 + { PINMUX_BIAS_REG("PUPR12", 0xe6060130, "N/A", 0) { 3192 + /* PUPR12 pull-up pins */ 3193 + [ 0] = PIN_DU0_DOTCLKIN, /* DU0_DOTCLKIN */ 3194 + [ 1] = PIN_DU0_DOTCLKOUT, /* DU0_DOTCLKOUT */ 3195 + [ 2] = PIN_DU1_DOTCLKIN, /* DU1_DOTCLKIN */ 3196 + [ 3] = PIN_DU1_DOTCLKOUT, /* DU1_DOTCLKOUT */ 3197 + [ 4] = PIN_TRST_N, /* TRST# */ 3198 + [ 5] = PIN_TCK, /* TCK */ 3199 + [ 6] = PIN_TMS, /* TMS */ 3200 + [ 7] = PIN_TDI, /* TDI */ 3201 + [ 8] = SH_PFC_PIN_NONE, 3202 + [ 9] = SH_PFC_PIN_NONE, 3203 + [10] = SH_PFC_PIN_NONE, 3204 + [11] = SH_PFC_PIN_NONE, 3205 + [12] = SH_PFC_PIN_NONE, 3206 + [13] = SH_PFC_PIN_NONE, 3207 + [14] = SH_PFC_PIN_NONE, 3208 + [15] = SH_PFC_PIN_NONE, 3209 + [16] = SH_PFC_PIN_NONE, 3210 + [17] = SH_PFC_PIN_NONE, 3211 + [18] = SH_PFC_PIN_NONE, 3212 + [19] = SH_PFC_PIN_NONE, 3213 + [20] = SH_PFC_PIN_NONE, 3214 + [21] = SH_PFC_PIN_NONE, 3215 + [22] = SH_PFC_PIN_NONE, 3216 + [23] = SH_PFC_PIN_NONE, 3217 + [24] = SH_PFC_PIN_NONE, 3218 + [25] = SH_PFC_PIN_NONE, 3219 + [26] = SH_PFC_PIN_NONE, 3220 + [27] = SH_PFC_PIN_NONE, 3221 + [28] = SH_PFC_PIN_NONE, 3222 + [29] = SH_PFC_PIN_NONE, 3223 + [30] = SH_PFC_PIN_NONE, 3224 + [31] = SH_PFC_PIN_NONE, 3225 + } }, 3226 + { PINMUX_BIAS_REG("N/A", 0, "PUPR12", 0xe6060130) { 3227 + /* PUPR12 pull-down pins */ 3228 + [ 0] = SH_PFC_PIN_NONE, 3229 + [ 1] = SH_PFC_PIN_NONE, 3230 + [ 2] = SH_PFC_PIN_NONE, 3231 + [ 3] = SH_PFC_PIN_NONE, 3232 + [ 4] = SH_PFC_PIN_NONE, 3233 + [ 5] = SH_PFC_PIN_NONE, 3234 + [ 6] = SH_PFC_PIN_NONE, 3235 + [ 7] = SH_PFC_PIN_NONE, 3236 + [ 8] = PIN_EDBGREQ, /* EDBGREQ */ 3237 + [ 9] = SH_PFC_PIN_NONE, 3238 + [10] = SH_PFC_PIN_NONE, 3239 + [11] = SH_PFC_PIN_NONE, 3240 + [12] = SH_PFC_PIN_NONE, 3241 + [13] = SH_PFC_PIN_NONE, 3242 + [14] = SH_PFC_PIN_NONE, 3243 + [15] = SH_PFC_PIN_NONE, 3244 + [16] = SH_PFC_PIN_NONE, 3245 + [17] = SH_PFC_PIN_NONE, 3246 + [18] = SH_PFC_PIN_NONE, 3247 + [19] = SH_PFC_PIN_NONE, 3248 + [20] = SH_PFC_PIN_NONE, 3249 + [21] = SH_PFC_PIN_NONE, 3250 + [22] = SH_PFC_PIN_NONE, 3251 + [23] = SH_PFC_PIN_NONE, 3252 + [24] = SH_PFC_PIN_NONE, 3253 + [25] = SH_PFC_PIN_NONE, 3254 + [26] = SH_PFC_PIN_NONE, 3255 + [27] = SH_PFC_PIN_NONE, 3256 + [28] = SH_PFC_PIN_NONE, 3257 + [29] = SH_PFC_PIN_NONE, 3258 + [30] = SH_PFC_PIN_NONE, 3259 + [31] = SH_PFC_PIN_NONE, 3260 + } }, 3261 + { /* sentinel */ } 3262 + }; 3263 + 3264 + static const struct sh_pfc_soc_operations r8a7792_pinmux_ops = { 3265 + .get_bias = rcar_pinmux_get_bias, 3266 + .set_bias = rcar_pinmux_set_bias, 3267 + }; 3268 + 2802 3269 const struct sh_pfc_soc_info r8a7792_pinmux_info = { 2803 3270 .name = "r8a77920_pfc", 3271 + .ops = &r8a7792_pinmux_ops, 2804 3272 .unlock_reg = 0xe6060000, /* PMMR */ 2805 3273 2806 3274 .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, ··· 3301 2793 .nr_functions = ARRAY_SIZE(pinmux_functions), 3302 2794 3303 2795 .cfg_regs = pinmux_config_regs, 2796 + .bias_regs = pinmux_bias_regs, 3304 2797 3305 2798 .pinmux_data = pinmux_data, 3306 2799 .pinmux_data_size = ARRAY_SIZE(pinmux_data),
+351 -9
drivers/pinctrl/renesas/pfc-r8a7794.c
··· 15 15 #include "sh_pfc.h" 16 16 17 17 #define CPU_ALL_GP(fn, sfx) \ 18 - PORT_GP_32(0, fn, sfx), \ 19 - PORT_GP_26(1, fn, sfx), \ 20 - PORT_GP_32(2, fn, sfx), \ 21 - PORT_GP_32(3, fn, sfx), \ 22 - PORT_GP_32(4, fn, sfx), \ 23 - PORT_GP_28(5, fn, sfx), \ 24 - PORT_GP_CFG_24(6, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 25 - PORT_GP_1(6, 24, fn, sfx), \ 26 - PORT_GP_1(6, 25, fn, sfx) 18 + PORT_GP_CFG_32(0, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 19 + PORT_GP_CFG_26(1, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 20 + PORT_GP_CFG_32(2, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 21 + PORT_GP_CFG_32(3, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 22 + PORT_GP_CFG_32(4, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 23 + PORT_GP_CFG_7(5, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 24 + PORT_GP_1(5, 7, fn, sfx), \ 25 + PORT_GP_1(5, 8, fn, sfx), \ 26 + PORT_GP_1(5, 9, fn, sfx), \ 27 + PORT_GP_CFG_1(5, 10, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 28 + PORT_GP_CFG_1(5, 11, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 29 + PORT_GP_CFG_1(5, 12, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 30 + PORT_GP_CFG_1(5, 13, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 31 + PORT_GP_CFG_1(5, 14, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 32 + PORT_GP_CFG_1(5, 15, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 33 + PORT_GP_CFG_1(5, 16, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 34 + PORT_GP_CFG_1(5, 17, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 35 + PORT_GP_CFG_1(5, 18, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 36 + PORT_GP_CFG_1(5, 19, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 37 + PORT_GP_CFG_1(5, 20, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 38 + PORT_GP_CFG_1(5, 21, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 39 + PORT_GP_CFG_1(5, 22, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 40 + PORT_GP_CFG_1(5, 23, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 41 + PORT_GP_1(5, 24, fn, sfx), \ 42 + PORT_GP_1(5, 25, fn, sfx), \ 43 + PORT_GP_1(5, 26, fn, sfx), \ 44 + PORT_GP_1(5, 27, fn, sfx), \ 45 + PORT_GP_CFG_1(6, 0, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 46 + PORT_GP_CFG_1(6, 1, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 47 + PORT_GP_CFG_1(6, 2, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 48 + PORT_GP_CFG_1(6, 3, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 49 + PORT_GP_CFG_1(6, 4, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 50 + PORT_GP_CFG_1(6, 5, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 51 + PORT_GP_CFG_1(6, 6, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 52 + PORT_GP_CFG_1(6, 7, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 53 + PORT_GP_CFG_1(6, 8, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 54 + PORT_GP_CFG_1(6, 9, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 55 + PORT_GP_CFG_1(6, 10, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 56 + PORT_GP_CFG_1(6, 11, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 57 + PORT_GP_CFG_1(6, 12, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 58 + PORT_GP_CFG_1(6, 13, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 59 + PORT_GP_CFG_1(6, 14, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 60 + PORT_GP_CFG_1(6, 15, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 61 + PORT_GP_CFG_1(6, 16, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 62 + PORT_GP_CFG_1(6, 17, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 63 + PORT_GP_CFG_1(6, 18, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 64 + PORT_GP_CFG_1(6, 19, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 65 + PORT_GP_CFG_1(6, 20, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 66 + PORT_GP_CFG_1(6, 21, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 67 + PORT_GP_CFG_1(6, 22, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 68 + PORT_GP_CFG_1(6, 23, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP), \ 69 + PORT_GP_CFG_1(6, 24, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ 70 + PORT_GP_CFG_1(6, 25, fn, sfx, SH_PFC_PIN_CFG_PULL_UP) 71 + 72 + #define CPU_ALL_NOGP(fn) \ 73 + PIN_NOGP_CFG(ASEBRK_N_ACK, "ASEBRK#/ACK", fn, SH_PFC_PIN_CFG_PULL_DOWN), \ 74 + PIN_NOGP_CFG(TCK, "TCK", fn, SH_PFC_PIN_CFG_PULL_UP), \ 75 + PIN_NOGP_CFG(TDI, "TDI", fn, SH_PFC_PIN_CFG_PULL_UP), \ 76 + PIN_NOGP_CFG(TMS, "TMS", fn, SH_PFC_PIN_CFG_PULL_UP), \ 77 + PIN_NOGP_CFG(TRST_N, "TRST#", fn, SH_PFC_PIN_CFG_PULL_UP) 27 78 28 79 enum { 29 80 PINMUX_RESERVED = 0, ··· 1487 1436 PINMUX_IPSR_MSEL(IP13_26_24, FMIN_E, SEL_DARC_4), 1488 1437 }; 1489 1438 1439 + /* 1440 + * Pins not associated with a GPIO port. 1441 + */ 1442 + enum { 1443 + GP_ASSIGN_LAST(), 1444 + NOGP_ALL(), 1445 + }; 1446 + 1490 1447 static const struct sh_pfc_pin pinmux_pins[] = { 1491 1448 PINMUX_GPIO_GP_ALL(), 1449 + PINMUX_NOGP_ALL(), 1492 1450 }; 1493 1451 1494 1452 /* - Audio Clock ------------------------------------------------------------ */ ··· 5640 5580 return -EINVAL; 5641 5581 } 5642 5582 5583 + static const struct pinmux_bias_reg pinmux_bias_regs[] = { 5584 + { PINMUX_BIAS_REG("PUPR0", 0xe6060100, "N/A", 0) { 5585 + [ 0] = RCAR_GP_PIN(0, 0), /* D0 */ 5586 + [ 1] = RCAR_GP_PIN(0, 1), /* D1 */ 5587 + [ 2] = RCAR_GP_PIN(0, 2), /* D2 */ 5588 + [ 3] = RCAR_GP_PIN(0, 3), /* D3 */ 5589 + [ 4] = RCAR_GP_PIN(0, 4), /* D4 */ 5590 + [ 5] = RCAR_GP_PIN(0, 5), /* D5 */ 5591 + [ 6] = RCAR_GP_PIN(0, 6), /* D6 */ 5592 + [ 7] = RCAR_GP_PIN(0, 7), /* D7 */ 5593 + [ 8] = RCAR_GP_PIN(0, 8), /* D8 */ 5594 + [ 9] = RCAR_GP_PIN(0, 9), /* D9 */ 5595 + [10] = RCAR_GP_PIN(0, 10), /* D10 */ 5596 + [11] = RCAR_GP_PIN(0, 11), /* D11 */ 5597 + [12] = RCAR_GP_PIN(0, 12), /* D12 */ 5598 + [13] = RCAR_GP_PIN(0, 13), /* D13 */ 5599 + [14] = RCAR_GP_PIN(0, 14), /* D14 */ 5600 + [15] = RCAR_GP_PIN(0, 15), /* D15 */ 5601 + [16] = RCAR_GP_PIN(0, 16), /* A0 */ 5602 + [17] = RCAR_GP_PIN(0, 17), /* A1 */ 5603 + [18] = RCAR_GP_PIN(0, 18), /* A2 */ 5604 + [19] = RCAR_GP_PIN(0, 19), /* A3 */ 5605 + [20] = RCAR_GP_PIN(0, 20), /* A4 */ 5606 + [21] = RCAR_GP_PIN(0, 21), /* A5 */ 5607 + [22] = RCAR_GP_PIN(0, 22), /* A6 */ 5608 + [23] = RCAR_GP_PIN(0, 23), /* A7 */ 5609 + [24] = RCAR_GP_PIN(0, 24), /* A8 */ 5610 + [25] = RCAR_GP_PIN(0, 25), /* A9 */ 5611 + [26] = RCAR_GP_PIN(0, 26), /* A10 */ 5612 + [27] = RCAR_GP_PIN(0, 27), /* A11 */ 5613 + [28] = RCAR_GP_PIN(0, 28), /* A12 */ 5614 + [29] = RCAR_GP_PIN(0, 29), /* A13 */ 5615 + [30] = RCAR_GP_PIN(0, 30), /* A14 */ 5616 + [31] = RCAR_GP_PIN(0, 31), /* A15 */ 5617 + } }, 5618 + { PINMUX_BIAS_REG("PUPR1", 0xe6060104, "N/A", 0) { 5619 + /* PUPR1 pull-up pins */ 5620 + [ 0] = RCAR_GP_PIN(1, 0), /* A16 */ 5621 + [ 1] = RCAR_GP_PIN(1, 1), /* A17 */ 5622 + [ 2] = RCAR_GP_PIN(1, 2), /* A18 */ 5623 + [ 3] = RCAR_GP_PIN(1, 3), /* A19 */ 5624 + [ 4] = RCAR_GP_PIN(1, 4), /* A20 */ 5625 + [ 5] = RCAR_GP_PIN(1, 5), /* A21 */ 5626 + [ 6] = RCAR_GP_PIN(1, 6), /* A22 */ 5627 + [ 7] = RCAR_GP_PIN(1, 7), /* A23 */ 5628 + [ 8] = RCAR_GP_PIN(1, 8), /* A24 */ 5629 + [ 9] = RCAR_GP_PIN(1, 9), /* A25 */ 5630 + [10] = RCAR_GP_PIN(1, 10), /* CS0# */ 5631 + [11] = RCAR_GP_PIN(1, 12), /* EX_CS0# */ 5632 + [12] = RCAR_GP_PIN(1, 14), /* EX_CS2# */ 5633 + [13] = RCAR_GP_PIN(1, 16), /* EX_CS4# */ 5634 + [14] = RCAR_GP_PIN(1, 18), /* BS# */ 5635 + [15] = RCAR_GP_PIN(1, 19), /* RD# */ 5636 + [16] = RCAR_GP_PIN(1, 20), /* RD/WR# */ 5637 + [17] = RCAR_GP_PIN(1, 21), /* WE0# */ 5638 + [18] = RCAR_GP_PIN(1, 22), /* WE1# */ 5639 + [19] = RCAR_GP_PIN(1, 23), /* EX_WAIT0 */ 5640 + [20] = RCAR_GP_PIN(1, 24), /* DREQ0# */ 5641 + [21] = RCAR_GP_PIN(1, 25), /* DACK0 */ 5642 + [22] = PIN_TRST_N, /* TRST# */ 5643 + [23] = PIN_TCK, /* TCK */ 5644 + [24] = PIN_TMS, /* TMS */ 5645 + [25] = PIN_TDI, /* TDI */ 5646 + [26] = RCAR_GP_PIN(1, 11), /* CS1#/A26 */ 5647 + [27] = RCAR_GP_PIN(1, 13), /* EX_CS1# */ 5648 + [28] = RCAR_GP_PIN(1, 15), /* EX_CS3# */ 5649 + [29] = RCAR_GP_PIN(1, 17), /* EX_CS5# */ 5650 + [30] = SH_PFC_PIN_NONE, 5651 + [31] = SH_PFC_PIN_NONE, 5652 + } }, 5653 + { PINMUX_BIAS_REG("N/A", 0, "PUPR1", 0xe6060104) { 5654 + /* PUPR1 pull-down pins */ 5655 + [ 0] = SH_PFC_PIN_NONE, 5656 + [ 1] = SH_PFC_PIN_NONE, 5657 + [ 2] = SH_PFC_PIN_NONE, 5658 + [ 3] = SH_PFC_PIN_NONE, 5659 + [ 4] = SH_PFC_PIN_NONE, 5660 + [ 5] = SH_PFC_PIN_NONE, 5661 + [ 6] = SH_PFC_PIN_NONE, 5662 + [ 7] = SH_PFC_PIN_NONE, 5663 + [ 8] = SH_PFC_PIN_NONE, 5664 + [ 9] = SH_PFC_PIN_NONE, 5665 + [10] = SH_PFC_PIN_NONE, 5666 + [11] = SH_PFC_PIN_NONE, 5667 + [12] = SH_PFC_PIN_NONE, 5668 + [13] = SH_PFC_PIN_NONE, 5669 + [14] = SH_PFC_PIN_NONE, 5670 + [15] = SH_PFC_PIN_NONE, 5671 + [16] = SH_PFC_PIN_NONE, 5672 + [17] = SH_PFC_PIN_NONE, 5673 + [18] = SH_PFC_PIN_NONE, 5674 + [19] = SH_PFC_PIN_NONE, 5675 + [20] = SH_PFC_PIN_NONE, 5676 + [21] = SH_PFC_PIN_NONE, 5677 + [22] = SH_PFC_PIN_NONE, 5678 + [23] = SH_PFC_PIN_NONE, 5679 + [24] = SH_PFC_PIN_NONE, 5680 + [25] = SH_PFC_PIN_NONE, 5681 + [26] = SH_PFC_PIN_NONE, 5682 + [27] = SH_PFC_PIN_NONE, 5683 + [28] = SH_PFC_PIN_NONE, 5684 + [29] = SH_PFC_PIN_NONE, 5685 + [30] = PIN_ASEBRK_N_ACK, /* ASEBRK#/ACK */ 5686 + [31] = SH_PFC_PIN_NONE, 5687 + } }, 5688 + { PINMUX_BIAS_REG("PUPR2", 0xe6060108, "N/A", 0) { 5689 + [ 0] = RCAR_GP_PIN(2, 0), /* DU0_DR0 */ 5690 + [ 1] = RCAR_GP_PIN(2, 1), /* DU0_DR1 */ 5691 + [ 2] = RCAR_GP_PIN(2, 2), /* DU0_DR2 */ 5692 + [ 3] = RCAR_GP_PIN(2, 3), /* DU0_DR3 */ 5693 + [ 4] = RCAR_GP_PIN(2, 4), /* DU0_DR4 */ 5694 + [ 5] = RCAR_GP_PIN(2, 5), /* DU0_DR5 */ 5695 + [ 6] = RCAR_GP_PIN(2, 6), /* DU0_DR6 */ 5696 + [ 7] = RCAR_GP_PIN(2, 7), /* DU0_DR7 */ 5697 + [ 8] = RCAR_GP_PIN(2, 8), /* DU0_DG0 */ 5698 + [ 9] = RCAR_GP_PIN(2, 9), /* DU0_DG1 */ 5699 + [10] = RCAR_GP_PIN(2, 10), /* DU0_DG2 */ 5700 + [11] = RCAR_GP_PIN(2, 11), /* DU0_DG3 */ 5701 + [12] = RCAR_GP_PIN(2, 12), /* DU0_DG4 */ 5702 + [13] = RCAR_GP_PIN(2, 13), /* DU0_DG5 */ 5703 + [14] = RCAR_GP_PIN(2, 14), /* DU0_DG6 */ 5704 + [15] = RCAR_GP_PIN(2, 15), /* DU0_DG7 */ 5705 + [16] = RCAR_GP_PIN(2, 16), /* DU0_DB0 */ 5706 + [17] = RCAR_GP_PIN(2, 17), /* DU0_DB1 */ 5707 + [18] = RCAR_GP_PIN(2, 18), /* DU0_DB2 */ 5708 + [19] = RCAR_GP_PIN(2, 19), /* DU0_DB3 */ 5709 + [20] = RCAR_GP_PIN(2, 20), /* DU0_DB4 */ 5710 + [21] = RCAR_GP_PIN(2, 21), /* DU0_DB5 */ 5711 + [22] = RCAR_GP_PIN(2, 22), /* DU0_DB6 */ 5712 + [23] = RCAR_GP_PIN(2, 23), /* DU0_DB7 */ 5713 + [24] = RCAR_GP_PIN(2, 24), /* DU0_DOTCLKIN */ 5714 + [25] = RCAR_GP_PIN(2, 25), /* DU0_DOTCLKOUT0 */ 5715 + [26] = RCAR_GP_PIN(2, 26), /* DU0_DOTCLKOUT1 */ 5716 + [27] = RCAR_GP_PIN(2, 27), /* DU0_EXHSYNC/DU0_HSYNC */ 5717 + [28] = RCAR_GP_PIN(2, 28), /* DU0_EXVSYNC/DU0_VSYNC */ 5718 + [29] = RCAR_GP_PIN(2, 29), /* DU0_EXODDF/DU0_ODDF_DISP_CDE */ 5719 + [30] = RCAR_GP_PIN(2, 30), /* DU0_DISP */ 5720 + [31] = RCAR_GP_PIN(2, 31), /* DU0_CDE */ 5721 + } }, 5722 + { PINMUX_BIAS_REG("PUPR3", 0xe606010c, "N/A", 0) { 5723 + [ 0] = RCAR_GP_PIN(3, 2), /* VI0_DATA1_VI0_B1 */ 5724 + [ 1] = RCAR_GP_PIN(3, 3), /* VI0_DATA2_VI0_B2 */ 5725 + [ 2] = RCAR_GP_PIN(3, 4), /* VI0_DATA3_VI0_B3 */ 5726 + [ 3] = RCAR_GP_PIN(3, 5), /* VI0_DATA4_VI0_B4 */ 5727 + [ 4] = RCAR_GP_PIN(3, 6), /* VI0_DATA5_VI0_B5 */ 5728 + [ 5] = RCAR_GP_PIN(3, 7), /* VI0_DATA6_VI0_B6 */ 5729 + [ 6] = RCAR_GP_PIN(3, 8), /* VI0_DATA7_VI0_B7 */ 5730 + [ 7] = RCAR_GP_PIN(3, 9), /* VI0_CLKENB */ 5731 + [ 8] = RCAR_GP_PIN(3, 10), /* VI0_FIELD */ 5732 + [ 9] = RCAR_GP_PIN(3, 11), /* VI0_HSYNC# */ 5733 + [10] = RCAR_GP_PIN(3, 12), /* VI0_VSYNC# */ 5734 + [11] = RCAR_GP_PIN(3, 13), /* ETH_MDIO */ 5735 + [12] = RCAR_GP_PIN(3, 14), /* ETH_CRS_DV */ 5736 + [13] = RCAR_GP_PIN(3, 15), /* ETH_RX_ER */ 5737 + [14] = RCAR_GP_PIN(3, 16), /* ETH_RXD0 */ 5738 + [15] = RCAR_GP_PIN(3, 17), /* ETH_RXD1 */ 5739 + [16] = RCAR_GP_PIN(3, 18), /* ETH_LINK */ 5740 + [17] = RCAR_GP_PIN(3, 19), /* ETH_REF_CLK */ 5741 + [18] = RCAR_GP_PIN(3, 20), /* ETH_TXD1 */ 5742 + [19] = RCAR_GP_PIN(3, 21), /* ETH_TX_EN */ 5743 + [20] = RCAR_GP_PIN(3, 22), /* ETH_MAGIC */ 5744 + [21] = RCAR_GP_PIN(3, 23), /* ETH_TXD0 */ 5745 + [22] = RCAR_GP_PIN(3, 24), /* ETH_MDC */ 5746 + [23] = RCAR_GP_PIN(3, 25), /* HSCIF0_HRX */ 5747 + [24] = RCAR_GP_PIN(3, 26), /* HSCIF0_HTX */ 5748 + [25] = RCAR_GP_PIN(3, 27), /* HSCIF0_HCTS# */ 5749 + [26] = RCAR_GP_PIN(3, 28), /* HSCIF0_HRTS# */ 5750 + [27] = RCAR_GP_PIN(3, 29), /* HSCIF0_HSCK */ 5751 + [28] = RCAR_GP_PIN(3, 30), /* I2C0_SCL */ 5752 + [29] = RCAR_GP_PIN(3, 31), /* I2C0_SDA */ 5753 + [30] = RCAR_GP_PIN(4, 0), /* I2C1_SCL */ 5754 + [31] = RCAR_GP_PIN(4, 1), /* I2C1_SDA */ 5755 + } }, 5756 + { PINMUX_BIAS_REG("PUPR4", 0xe6060110, "N/A", 0) { 5757 + [ 0] = RCAR_GP_PIN(4, 2), /* MSIOF0_RXD */ 5758 + [ 1] = RCAR_GP_PIN(4, 3), /* MSIOF0_TXD */ 5759 + [ 2] = RCAR_GP_PIN(4, 4), /* MSIOF0_SCK */ 5760 + [ 3] = RCAR_GP_PIN(4, 5), /* MSIOF0_SYNC */ 5761 + [ 4] = RCAR_GP_PIN(4, 6), /* MSIOF0_SS1 */ 5762 + [ 5] = RCAR_GP_PIN(4, 7), /* MSIOF0_SS2 */ 5763 + [ 6] = RCAR_GP_PIN(4, 8), /* HSCIF1_HRX */ 5764 + [ 7] = RCAR_GP_PIN(4, 9), /* HSCIF1_HTX */ 5765 + [ 8] = RCAR_GP_PIN(4, 10), /* HSCIF1_HSCK */ 5766 + [ 9] = RCAR_GP_PIN(4, 11), /* HSCIF1_HCTS# */ 5767 + [10] = RCAR_GP_PIN(4, 12), /* HSCIF1_HRTS# */ 5768 + [11] = RCAR_GP_PIN(4, 13), /* SCIF1_SCK */ 5769 + [12] = RCAR_GP_PIN(4, 14), /* SCIF1_RXD */ 5770 + [13] = RCAR_GP_PIN(4, 15), /* SCIF1_TXD */ 5771 + [14] = RCAR_GP_PIN(4, 16), /* SCIF2_RXD */ 5772 + [15] = RCAR_GP_PIN(4, 17), /* SCIF2_TXD */ 5773 + [16] = RCAR_GP_PIN(4, 18), /* SCIF2_SCK */ 5774 + [17] = RCAR_GP_PIN(4, 19), /* SCIF3_SCK */ 5775 + [18] = RCAR_GP_PIN(4, 20), /* SCIF3_RXD */ 5776 + [19] = RCAR_GP_PIN(4, 21), /* SCIF3_TXD */ 5777 + [20] = RCAR_GP_PIN(4, 22), /* I2C2_SCL */ 5778 + [21] = RCAR_GP_PIN(4, 23), /* I2C2_SDA */ 5779 + [22] = RCAR_GP_PIN(4, 24), /* SSI_SCK5 */ 5780 + [23] = RCAR_GP_PIN(4, 25), /* SSI_WS5 */ 5781 + [24] = RCAR_GP_PIN(4, 26), /* SSI_SDATA5 */ 5782 + [25] = RCAR_GP_PIN(4, 27), /* SSI_SCK6 */ 5783 + [26] = RCAR_GP_PIN(4, 28), /* SSI_WS6 */ 5784 + [27] = RCAR_GP_PIN(4, 29), /* SSI_SDATA6 */ 5785 + [28] = RCAR_GP_PIN(4, 30), /* SSI_SCK78 */ 5786 + [29] = RCAR_GP_PIN(4, 31), /* SSI_WS78 */ 5787 + [30] = RCAR_GP_PIN(5, 0), /* SSI_SDATA7 */ 5788 + [31] = RCAR_GP_PIN(5, 1), /* SSI_SCK0129 */ 5789 + } }, 5790 + { PINMUX_BIAS_REG("PUPR5", 0xe6060114, "N/A", 0) { 5791 + [ 0] = RCAR_GP_PIN(5, 2), /* SSI_WS0129 */ 5792 + [ 1] = RCAR_GP_PIN(5, 3), /* SSI_SDATA0 */ 5793 + [ 2] = RCAR_GP_PIN(5, 4), /* SSI_SCK34 */ 5794 + [ 3] = RCAR_GP_PIN(5, 5), /* SSI_WS34 */ 5795 + [ 4] = RCAR_GP_PIN(5, 6), /* SSI_SDATA3 */ 5796 + [ 5] = SH_PFC_PIN_NONE, 5797 + [ 6] = SH_PFC_PIN_NONE, 5798 + [ 7] = SH_PFC_PIN_NONE, 5799 + [ 8] = RCAR_GP_PIN(5, 10), /* SSI_SDATA8 */ 5800 + [ 9] = RCAR_GP_PIN(5, 11), /* SSI_SCK1 */ 5801 + [10] = RCAR_GP_PIN(5, 12), /* SSI_WS1 */ 5802 + [11] = RCAR_GP_PIN(5, 13), /* SSI_SDATA1 */ 5803 + [12] = RCAR_GP_PIN(5, 14), /* SSI_SCK2 */ 5804 + [13] = RCAR_GP_PIN(5, 15), /* SSI_WS2 */ 5805 + [14] = RCAR_GP_PIN(5, 16), /* SSI_SDATA2 */ 5806 + [15] = RCAR_GP_PIN(5, 17), /* SSI_SCK9 */ 5807 + [16] = RCAR_GP_PIN(5, 18), /* SSI_WS9 */ 5808 + [17] = RCAR_GP_PIN(5, 19), /* SSI_SDATA9 */ 5809 + [18] = RCAR_GP_PIN(5, 20), /* AUDIO_CLKA */ 5810 + [19] = RCAR_GP_PIN(5, 21), /* AUDIO_CLKB */ 5811 + [20] = RCAR_GP_PIN(5, 22), /* AUDIO_CLKC */ 5812 + [21] = RCAR_GP_PIN(5, 23), /* AUDIO_CLKOUT */ 5813 + [22] = RCAR_GP_PIN(3, 0), /* VI0_CLK */ 5814 + [23] = RCAR_GP_PIN(3, 1), /* VI0_DATA0_VI0_B0 */ 5815 + [24] = SH_PFC_PIN_NONE, 5816 + [25] = SH_PFC_PIN_NONE, 5817 + [26] = SH_PFC_PIN_NONE, 5818 + [27] = SH_PFC_PIN_NONE, 5819 + [28] = SH_PFC_PIN_NONE, 5820 + [29] = SH_PFC_PIN_NONE, 5821 + [30] = SH_PFC_PIN_NONE, 5822 + [31] = SH_PFC_PIN_NONE, 5823 + } }, 5824 + { PINMUX_BIAS_REG("PUPR6", 0xe6060118, "N/A", 0) { 5825 + [ 0] = RCAR_GP_PIN(6, 1), /* SD0_CMD */ 5826 + [ 1] = RCAR_GP_PIN(6, 2), /* SD0_DATA0 */ 5827 + [ 2] = RCAR_GP_PIN(6, 3), /* SD0_DATA1 */ 5828 + [ 3] = RCAR_GP_PIN(6, 4), /* SD0_DATA2 */ 5829 + [ 4] = RCAR_GP_PIN(6, 5), /* SD0_DATA3 */ 5830 + [ 5] = RCAR_GP_PIN(6, 6), /* SD0_CD */ 5831 + [ 6] = RCAR_GP_PIN(6, 7), /* SD0_WP */ 5832 + [ 7] = RCAR_GP_PIN(6, 9), /* SD1_CMD */ 5833 + [ 8] = RCAR_GP_PIN(6, 10), /* SD1_DATA0 */ 5834 + [ 9] = RCAR_GP_PIN(6, 11), /* SD1_DATA1 */ 5835 + [10] = RCAR_GP_PIN(6, 12), /* SD1_DATA2 */ 5836 + [11] = RCAR_GP_PIN(6, 13), /* SD1_DATA3 */ 5837 + [12] = RCAR_GP_PIN(6, 14), /* SD1_CD */ 5838 + [13] = RCAR_GP_PIN(6, 15), /* SD1_WP */ 5839 + [14] = SH_PFC_PIN_NONE, 5840 + [15] = RCAR_GP_PIN(6, 17), /* MMC_CMD */ 5841 + [16] = RCAR_GP_PIN(6, 18), /* MMC_D0 */ 5842 + [17] = RCAR_GP_PIN(6, 19), /* MMC_D1 */ 5843 + [18] = RCAR_GP_PIN(6, 20), /* MMC_D2 */ 5844 + [19] = RCAR_GP_PIN(6, 21), /* MMC_D3 */ 5845 + [20] = RCAR_GP_PIN(6, 22), /* MMC_D4 */ 5846 + [21] = RCAR_GP_PIN(6, 23), /* MMC_D5 */ 5847 + [22] = RCAR_GP_PIN(6, 24), /* MMC_D6 */ 5848 + [23] = RCAR_GP_PIN(6, 25), /* MMC_D7 */ 5849 + [24] = SH_PFC_PIN_NONE, 5850 + [25] = SH_PFC_PIN_NONE, 5851 + [26] = SH_PFC_PIN_NONE, 5852 + [27] = SH_PFC_PIN_NONE, 5853 + [28] = SH_PFC_PIN_NONE, 5854 + [29] = SH_PFC_PIN_NONE, 5855 + [30] = SH_PFC_PIN_NONE, 5856 + [31] = SH_PFC_PIN_NONE, 5857 + } }, 5858 + { /* sentinel */ } 5859 + }; 5860 + 5643 5861 static const struct soc_device_attribute r8a7794_tdsel[] = { 5644 5862 { .soc_id = "r8a7794", .revision = "ES1.0" }, 5645 5863 { /* sentinel */ } ··· 5935 5597 static const struct sh_pfc_soc_operations r8a7794_pinmux_ops = { 5936 5598 .init = r8a7794_pinmux_soc_init, 5937 5599 .pin_to_pocctrl = r8a7794_pin_to_pocctrl, 5600 + .get_bias = rcar_pinmux_get_bias, 5601 + .set_bias = rcar_pinmux_set_bias, 5938 5602 }; 5939 5603 5940 5604 #ifdef CONFIG_PINCTRL_PFC_R8A7745 ··· 5955 5615 .nr_functions = ARRAY_SIZE(pinmux_functions), 5956 5616 5957 5617 .cfg_regs = pinmux_config_regs, 5618 + .bias_regs = pinmux_bias_regs, 5958 5619 5959 5620 .pinmux_data = pinmux_data, 5960 5621 .pinmux_data_size = ARRAY_SIZE(pinmux_data), ··· 5978 5637 .nr_functions = ARRAY_SIZE(pinmux_functions), 5979 5638 5980 5639 .cfg_regs = pinmux_config_regs, 5640 + .bias_regs = pinmux_bias_regs, 5981 5641 5982 5642 .pinmux_data = pinmux_data, 5983 5643 .pinmux_data_size = ARRAY_SIZE(pinmux_data),
+2 -2
drivers/pinctrl/renesas/pfc-r8a77951.c
··· 241 241 #define GPSR6_3 F_(SSI_SDATA1_A, IP15_3_0) 242 242 #define GPSR6_2 F_(SSI_SDATA0, IP14_31_28) 243 243 #define GPSR6_1 F_(SSI_WS01239, IP14_27_24) 244 - #define GPSR6_0 F_(SSI_SCK01239, IP14_23_20) 244 + #define GPSR6_0 F_(SSI_SCK01239, IP14_23_20) 245 245 246 246 /* GPSR7 */ 247 247 #define GPSR7_3 FM(GP7_03) ··· 668 668 PINMUX_IPSR_PHYS_MSEL(IP0_23_20, AVB_AVTP_CAPTURE_A, I2C_SEL_5_0, SEL_ETHERAVB_0), 669 669 PINMUX_IPSR_PHYS_MSEL(IP0_23_20, MSIOF2_TXD_C, I2C_SEL_5_0, SEL_MSIOF2_2), 670 670 PINMUX_IPSR_PHYS_MSEL(IP0_23_20, RTS4_N_A, I2C_SEL_5_0, SEL_SCIF4_0), 671 - PINMUX_IPSR_PHYS(IP0_23_20, SDA5, I2C_SEL_5_1), 671 + PINMUX_IPSR_PHYS(IP0_23_20, SDA5, I2C_SEL_5_1), 672 672 673 673 PINMUX_IPSR_GPSR(IP0_27_24, IRQ0), 674 674 PINMUX_IPSR_GPSR(IP0_27_24, QPOLB),
+6 -4
drivers/pinctrl/renesas/pfc-r8a7796.c
··· 67 67 PIN_NOGP_CFG(QSPI1_MOSI_IO0, "QSPI1_MOSI_IO0", fn, CFG_FLAGS), \ 68 68 PIN_NOGP_CFG(QSPI1_SPCLK, "QSPI1_SPCLK", fn, CFG_FLAGS), \ 69 69 PIN_NOGP_CFG(QSPI1_SSL, "QSPI1_SSL", fn, CFG_FLAGS), \ 70 + PIN_NOGP_CFG(PRESET_N, "PRESET#", fn, SH_PFC_PIN_CFG_PULL_DOWN),\ 70 71 PIN_NOGP_CFG(RPC_INT_N, "RPC_INT#", fn, CFG_FLAGS), \ 71 72 PIN_NOGP_CFG(RPC_RESET_N, "RPC_RESET#", fn, CFG_FLAGS), \ 72 73 PIN_NOGP_CFG(RPC_WP_N, "RPC_WP#", fn, CFG_FLAGS), \ ··· 1549 1548 * core will do the right thing and skip trying to mux the pin 1550 1549 * while still applying configuration to it. 1551 1550 */ 1552 - #define FM(x) PINMUX_DATA(x##_MARK, 0), 1551 + #define FM(x) PINMUX_DATA(x##_MARK, 0), 1553 1552 PINMUX_STATIC 1554 1553 #undef FM 1555 1554 }; ··· 4234 4233 SH_PFC_PIN_GROUP(avb_link), 4235 4234 SH_PFC_PIN_GROUP(avb_magic), 4236 4235 SH_PFC_PIN_GROUP(avb_phy_int), 4237 - SH_PFC_PIN_GROUP_ALIAS(avb_mdc, avb_mdio), /* Deprecated */ 4236 + SH_PFC_PIN_GROUP_ALIAS(avb_mdc, avb_mdio), /* Deprecated */ 4238 4237 SH_PFC_PIN_GROUP(avb_mdio), 4239 4238 SH_PFC_PIN_GROUP(avb_mii), 4240 4239 SH_PFC_PIN_GROUP(avb_avtp_pps), ··· 5991 5990 { /* sentinel */ }, 5992 5991 }; 5993 5992 5994 - static int r8a7796_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin, u32 *pocctrl) 5993 + static int r8a7796_pin_to_pocctrl(struct sh_pfc *pfc, 5994 + unsigned int pin, u32 *pocctrl) 5995 5995 { 5996 5996 int bit = -EINVAL; 5997 5997 ··· 6220 6218 [ 4] = RCAR_GP_PIN(6, 29), /* USB30_OVC */ 6221 6219 [ 5] = RCAR_GP_PIN(6, 30), /* GP6_30 */ 6222 6220 [ 6] = RCAR_GP_PIN(6, 31), /* GP6_31 */ 6223 - [ 7] = SH_PFC_PIN_NONE, 6221 + [ 7] = PIN_PRESET_N, /* PRESET# */ 6224 6222 [ 8] = SH_PFC_PIN_NONE, 6225 6223 [ 9] = SH_PFC_PIN_NONE, 6226 6224 [10] = SH_PFC_PIN_NONE,
+40 -39
drivers/pinctrl/renesas/pfc-r8a77965.c
··· 666 666 PINMUX_IPSR_MSEL(IP0_15_12, TX4_A, SEL_SCIF4_0), 667 667 PINMUX_IPSR_GPSR(IP0_19_16, FSCLKST2_N_A), 668 668 669 - PINMUX_IPSR_PHYS_MSEL(IP0_19_16, AVB_AVTP_MATCH_A, I2C_SEL_5_0, SEL_ETHERAVB_0), 670 - PINMUX_IPSR_PHYS_MSEL(IP0_19_16, MSIOF2_RXD_C, I2C_SEL_5_0, SEL_MSIOF2_2), 671 - PINMUX_IPSR_PHYS_MSEL(IP0_19_16, CTS4_N_A, I2C_SEL_5_0, SEL_SCIF4_0), 669 + PINMUX_IPSR_PHYS_MSEL(IP0_19_16, AVB_AVTP_MATCH_A, I2C_SEL_5_0, SEL_ETHERAVB_0), 670 + PINMUX_IPSR_PHYS_MSEL(IP0_19_16, MSIOF2_RXD_C, I2C_SEL_5_0, SEL_MSIOF2_2), 671 + PINMUX_IPSR_PHYS_MSEL(IP0_19_16, CTS4_N_A, I2C_SEL_5_0, SEL_SCIF4_0), 672 672 PINMUX_IPSR_PHYS(IP0_19_16, SCL5, I2C_SEL_5_1), 673 673 674 - PINMUX_IPSR_PHYS_MSEL(IP0_23_20, AVB_AVTP_CAPTURE_A, I2C_SEL_5_0, SEL_ETHERAVB_0), 675 - PINMUX_IPSR_PHYS_MSEL(IP0_23_20, MSIOF2_TXD_C, I2C_SEL_5_0, SEL_MSIOF2_2), 676 - PINMUX_IPSR_PHYS_MSEL(IP0_23_20, RTS4_N_A, I2C_SEL_5_0, SEL_SCIF4_0), 674 + PINMUX_IPSR_PHYS_MSEL(IP0_23_20, AVB_AVTP_CAPTURE_A, I2C_SEL_5_0, SEL_ETHERAVB_0), 675 + PINMUX_IPSR_PHYS_MSEL(IP0_23_20, MSIOF2_TXD_C, I2C_SEL_5_0, SEL_MSIOF2_2), 676 + PINMUX_IPSR_PHYS_MSEL(IP0_23_20, RTS4_N_A, I2C_SEL_5_0, SEL_SCIF4_0), 677 677 PINMUX_IPSR_PHYS(IP0_23_20, SDA5, I2C_SEL_5_1), 678 678 679 679 PINMUX_IPSR_GPSR(IP0_27_24, IRQ0), ··· 727 727 PINMUX_IPSR_MSEL(IP1_19_16, VI4_DATA6_B, SEL_VIN4_1), 728 728 PINMUX_IPSR_MSEL(IP1_19_16, IECLK_B, SEL_IEBUS_1), 729 729 730 - PINMUX_IPSR_PHYS_MSEL(IP1_23_20, PWM1_A, I2C_SEL_3_0, SEL_PWM1_0), 731 - PINMUX_IPSR_PHYS_MSEL(IP1_23_20, HRX3_D, I2C_SEL_3_0, SEL_HSCIF3_3), 732 - PINMUX_IPSR_PHYS_MSEL(IP1_23_20, VI4_DATA7_B, I2C_SEL_3_0, SEL_VIN4_1), 733 - PINMUX_IPSR_PHYS_MSEL(IP1_23_20, IERX_B, I2C_SEL_3_0, SEL_IEBUS_1), 734 - PINMUX_IPSR_PHYS(IP1_23_20, SCL3, I2C_SEL_3_1), 730 + PINMUX_IPSR_PHYS_MSEL(IP1_23_20, PWM1_A, I2C_SEL_3_0, SEL_PWM1_0), 731 + PINMUX_IPSR_PHYS_MSEL(IP1_23_20, HRX3_D, I2C_SEL_3_0, SEL_HSCIF3_3), 732 + PINMUX_IPSR_PHYS_MSEL(IP1_23_20, VI4_DATA7_B, I2C_SEL_3_0, SEL_VIN4_1), 733 + PINMUX_IPSR_PHYS_MSEL(IP1_23_20, IERX_B, I2C_SEL_3_0, SEL_IEBUS_1), 734 + PINMUX_IPSR_PHYS(IP1_23_20, SCL3, I2C_SEL_3_1), 735 735 736 - PINMUX_IPSR_PHYS_MSEL(IP1_27_24, PWM2_A, I2C_SEL_3_0, SEL_PWM2_0), 737 - PINMUX_IPSR_PHYS_MSEL(IP1_27_24, HTX3_D, I2C_SEL_3_0, SEL_HSCIF3_3), 738 - PINMUX_IPSR_PHYS_MSEL(IP1_27_24, IETX_B, I2C_SEL_3_0, SEL_IEBUS_1), 739 - PINMUX_IPSR_PHYS(IP1_27_24, SDA3, I2C_SEL_3_1), 736 + PINMUX_IPSR_PHYS_MSEL(IP1_27_24, PWM2_A, I2C_SEL_3_0, SEL_PWM2_0), 737 + PINMUX_IPSR_PHYS_MSEL(IP1_27_24, HTX3_D, I2C_SEL_3_0, SEL_HSCIF3_3), 738 + PINMUX_IPSR_PHYS_MSEL(IP1_27_24, IETX_B, I2C_SEL_3_0, SEL_IEBUS_1), 739 + PINMUX_IPSR_PHYS(IP1_27_24, SDA3, I2C_SEL_3_1), 740 740 741 741 PINMUX_IPSR_GPSR(IP1_31_28, A0), 742 742 PINMUX_IPSR_GPSR(IP1_31_28, LCDOUT16), ··· 1171 1171 PINMUX_IPSR_MSEL(IP11_15_12, SDA2_B, SEL_I2C2_1), 1172 1172 1173 1173 PINMUX_IPSR_MSEL(IP11_19_16, SD1_CD, I2C_SEL_0_0), 1174 - PINMUX_IPSR_PHYS_MSEL(IP11_19_16, NFRB_N_A, I2C_SEL_0_0, SEL_NDF_0), 1175 - PINMUX_IPSR_PHYS_MSEL(IP11_19_16, SIM0_CLK_B, I2C_SEL_0_0, SEL_SIMCARD_1), 1174 + PINMUX_IPSR_PHYS_MSEL(IP11_19_16, NFRB_N_A, I2C_SEL_0_0, SEL_NDF_0), 1175 + PINMUX_IPSR_PHYS_MSEL(IP11_19_16, SIM0_CLK_B, I2C_SEL_0_0, SEL_SIMCARD_1), 1176 1176 PINMUX_IPSR_PHYS(IP11_19_16, SCL0, I2C_SEL_0_1), 1177 1177 1178 1178 PINMUX_IPSR_MSEL(IP11_23_20, SD1_WP, I2C_SEL_0_0), 1179 - PINMUX_IPSR_PHYS_MSEL(IP11_23_20, NFCE_N_A, I2C_SEL_0_0, SEL_NDF_0), 1180 - PINMUX_IPSR_PHYS_MSEL(IP11_23_20, SIM0_D_B, I2C_SEL_0_0, SEL_SIMCARD_1), 1179 + PINMUX_IPSR_PHYS_MSEL(IP11_23_20, NFCE_N_A, I2C_SEL_0_0, SEL_NDF_0), 1180 + PINMUX_IPSR_PHYS_MSEL(IP11_23_20, SIM0_D_B, I2C_SEL_0_0, SEL_SIMCARD_1), 1181 1181 PINMUX_IPSR_PHYS(IP11_23_20, SDA0, I2C_SEL_0_1), 1182 1182 1183 1183 PINMUX_IPSR_GPSR(IP11_27_24, SCK0), ··· 1553 1553 * core will do the right thing and skip trying to mux the pin 1554 1554 * while still applying configuration to it. 1555 1555 */ 1556 - #define FM(x) PINMUX_DATA(x##_MARK, 0), 1556 + #define FM(x) PINMUX_DATA(x##_MARK, 0), 1557 1557 PINMUX_STATIC 1558 1558 #undef FM 1559 1559 }; ··· 4224 4224 RCAR_GP_PIN(0, 10), RCAR_GP_PIN(0, 11), 4225 4225 RCAR_GP_PIN(0, 12), RCAR_GP_PIN(0, 13), 4226 4226 RCAR_GP_PIN(0, 14), RCAR_GP_PIN(0, 15), 4227 - RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3), 4228 - RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4229 - RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4230 - RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 4231 - RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 4232 - RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 4227 + RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 3), 4228 + RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), 4229 + RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), 4230 + RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), 4231 + RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), 4232 + RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), 4233 4233 }; 4234 4234 4235 4235 static const unsigned int vin4_data18_a_mux[] = { 4236 4236 VI4_DATA2_A_MARK, VI4_DATA3_A_MARK, 4237 4237 VI4_DATA4_A_MARK, VI4_DATA5_A_MARK, 4238 4238 VI4_DATA6_A_MARK, VI4_DATA7_A_MARK, 4239 - VI4_DATA10_MARK, VI4_DATA11_MARK, 4240 - VI4_DATA12_MARK, VI4_DATA13_MARK, 4241 - VI4_DATA14_MARK, VI4_DATA15_MARK, 4242 - VI4_DATA18_MARK, VI4_DATA19_MARK, 4243 - VI4_DATA20_MARK, VI4_DATA21_MARK, 4244 - VI4_DATA22_MARK, VI4_DATA23_MARK, 4239 + VI4_DATA10_MARK, VI4_DATA11_MARK, 4240 + VI4_DATA12_MARK, VI4_DATA13_MARK, 4241 + VI4_DATA14_MARK, VI4_DATA15_MARK, 4242 + VI4_DATA18_MARK, VI4_DATA19_MARK, 4243 + VI4_DATA20_MARK, VI4_DATA21_MARK, 4244 + VI4_DATA22_MARK, VI4_DATA23_MARK, 4245 4245 }; 4246 4246 4247 4247 static const union vin_data vin4_data_a_pins = { ··· 4294 4294 VI4_DATA2_B_MARK, VI4_DATA3_B_MARK, 4295 4295 VI4_DATA4_B_MARK, VI4_DATA5_B_MARK, 4296 4296 VI4_DATA6_B_MARK, VI4_DATA7_B_MARK, 4297 - VI4_DATA10_MARK, VI4_DATA11_MARK, 4298 - VI4_DATA12_MARK, VI4_DATA13_MARK, 4299 - VI4_DATA14_MARK, VI4_DATA15_MARK, 4300 - VI4_DATA18_MARK, VI4_DATA19_MARK, 4301 - VI4_DATA20_MARK, VI4_DATA21_MARK, 4302 - VI4_DATA22_MARK, VI4_DATA23_MARK, 4297 + VI4_DATA10_MARK, VI4_DATA11_MARK, 4298 + VI4_DATA12_MARK, VI4_DATA13_MARK, 4299 + VI4_DATA14_MARK, VI4_DATA15_MARK, 4300 + VI4_DATA18_MARK, VI4_DATA19_MARK, 4301 + VI4_DATA20_MARK, VI4_DATA21_MARK, 4302 + VI4_DATA22_MARK, VI4_DATA23_MARK, 4303 4303 }; 4304 4304 4305 4305 static const union vin_data vin4_data_b_pins = { ··· 6248 6248 { /* sentinel */ }, 6249 6249 }; 6250 6250 6251 - static int r8a77965_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin, u32 *pocctrl) 6251 + static int r8a77965_pin_to_pocctrl(struct sh_pfc *pfc, 6252 + unsigned int pin, u32 *pocctrl) 6252 6253 { 6253 6254 int bit = -EINVAL; 6254 6255
+169 -6
drivers/pinctrl/renesas/pfc-r8a77970.c
··· 19 19 #include "sh_pfc.h" 20 20 21 21 #define CPU_ALL_GP(fn, sfx) \ 22 - PORT_GP_CFG_22(0, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 23 - PORT_GP_28(1, fn, sfx), \ 24 - PORT_GP_CFG_17(2, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 25 - PORT_GP_CFG_17(3, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 26 - PORT_GP_6(4, fn, sfx), \ 27 - PORT_GP_15(5, fn, sfx) 22 + PORT_GP_CFG_22(0, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 23 + PORT_GP_CFG_28(1, fn, sfx, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 24 + PORT_GP_CFG_17(2, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 25 + PORT_GP_CFG_17(3, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 26 + PORT_GP_CFG_6(4, fn, sfx, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 27 + PORT_GP_CFG_15(5, fn, sfx, SH_PFC_PIN_CFG_PULL_UP_DOWN) 28 + 29 + #define CPU_ALL_NOGP(fn) \ 30 + PIN_NOGP_CFG(DU_DOTCLKIN, "DU_DOTCLKIN", fn, SH_PFC_PIN_CFG_PULL_DOWN), \ 31 + PIN_NOGP_CFG(EXTALR, "EXTALR", fn, SH_PFC_PIN_CFG_PULL_DOWN), \ 32 + PIN_NOGP_CFG(FSCLKST_N, "FSCLKST#", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 33 + PIN_NOGP_CFG(PRESETOUT_N, "PRESETOUT#", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 34 + PIN_NOGP_CFG(TCK, "TCK", fn, SH_PFC_PIN_CFG_PULL_UP), \ 35 + PIN_NOGP_CFG(TDI, "TDI", fn, SH_PFC_PIN_CFG_PULL_UP), \ 36 + PIN_NOGP_CFG(TMS, "TMS", fn, SH_PFC_PIN_CFG_PULL_UP), \ 37 + PIN_NOGP_CFG(TRST_N, "TRST#", fn, SH_PFC_PIN_CFG_PULL_UP) 38 + 28 39 /* 29 40 * F_() : just information 30 41 * FM() : macro for FN_xxx / xxx_MARK ··· 729 718 PINMUX_IPSR_GPSR(IP8_27_24, DIGRF_CLKEN_OUT), 730 719 }; 731 720 721 + /* 722 + * Pins not associated with a GPIO port. 723 + */ 724 + enum { 725 + GP_ASSIGN_LAST(), 726 + NOGP_ALL(), 727 + }; 728 + 732 729 static const struct sh_pfc_pin pinmux_pins[] = { 733 730 PINMUX_GPIO_GP_ALL(), 731 + PINMUX_NOGP_ALL(), 734 732 }; 735 733 736 734 /* - AVB0 ------------------------------------------------------------------- */ ··· 2516 2496 return -EINVAL; 2517 2497 } 2518 2498 2499 + static const struct pinmux_bias_reg pinmux_bias_regs[] = { 2500 + { PINMUX_BIAS_REG("PUEN0", 0xe6060400, "PUD0", 0xe6060440) { 2501 + [ 0] = RCAR_GP_PIN(0, 0), /* DU_DR2 */ 2502 + [ 1] = RCAR_GP_PIN(0, 1), /* DU_DR3 */ 2503 + [ 2] = RCAR_GP_PIN(0, 2), /* DU_DR4 */ 2504 + [ 3] = RCAR_GP_PIN(0, 3), /* DU_DR5 */ 2505 + [ 4] = RCAR_GP_PIN(0, 4), /* DU_DR6 */ 2506 + [ 5] = RCAR_GP_PIN(0, 5), /* DU_DR7 */ 2507 + [ 6] = RCAR_GP_PIN(0, 6), /* DU_DG2 */ 2508 + [ 7] = RCAR_GP_PIN(0, 7), /* DU_DG3 */ 2509 + [ 8] = RCAR_GP_PIN(0, 8), /* DU_DG4 */ 2510 + [ 9] = RCAR_GP_PIN(0, 9), /* DU_DG5 */ 2511 + [10] = RCAR_GP_PIN(0, 10), /* DU_DG6 */ 2512 + [11] = RCAR_GP_PIN(0, 11), /* DU_DG7 */ 2513 + [12] = RCAR_GP_PIN(0, 12), /* DU_DB2 */ 2514 + [13] = RCAR_GP_PIN(0, 13), /* DU_DB3 */ 2515 + [14] = RCAR_GP_PIN(0, 14), /* DU_DB4 */ 2516 + [15] = RCAR_GP_PIN(0, 15), /* DU_DB5 */ 2517 + [16] = RCAR_GP_PIN(0, 16), /* DU_DB6 */ 2518 + [17] = RCAR_GP_PIN(0, 17), /* DU_DB7 */ 2519 + [18] = RCAR_GP_PIN(0, 18), /* DU_DOTCLKOUT */ 2520 + [19] = RCAR_GP_PIN(0, 19), /* DU_EXHSYNC/DU_HSYNC */ 2521 + [20] = RCAR_GP_PIN(0, 20), /* DU_EXVSYNC/DU_VSYNC */ 2522 + [21] = RCAR_GP_PIN(0, 21), /* DU_EXODDF/DU_ODDF/DISP/CDE */ 2523 + [22] = PIN_DU_DOTCLKIN, /* DU_DOTCLKIN */ 2524 + [23] = PIN_PRESETOUT_N, /* PRESETOUT# */ 2525 + [24] = PIN_EXTALR, /* EXTALR */ 2526 + [25] = PIN_FSCLKST_N, /* FSCLKST# */ 2527 + [26] = RCAR_GP_PIN(1, 0), /* IRQ0 */ 2528 + [27] = PIN_TRST_N, /* TRST# */ 2529 + [28] = PIN_TCK, /* TCK */ 2530 + [29] = PIN_TMS, /* TMS */ 2531 + [30] = PIN_TDI, /* TDI */ 2532 + [31] = RCAR_GP_PIN(2, 0), /* VI0_CLK */ 2533 + } }, 2534 + { PINMUX_BIAS_REG("PUEN1", 0xe6060404, "PUD1", 0xe6060444) { 2535 + [ 0] = RCAR_GP_PIN(2, 1), /* VI0_CLKENB */ 2536 + [ 1] = RCAR_GP_PIN(2, 2), /* VI0_HSYNC# */ 2537 + [ 2] = RCAR_GP_PIN(2, 3), /* VI0_VSYNC# */ 2538 + [ 3] = RCAR_GP_PIN(2, 4), /* VI0_DATA0 */ 2539 + [ 4] = RCAR_GP_PIN(2, 5), /* VI0_DATA1 */ 2540 + [ 5] = RCAR_GP_PIN(2, 6), /* VI0_DATA2 */ 2541 + [ 6] = RCAR_GP_PIN(2, 7), /* VI0_DATA3 */ 2542 + [ 7] = RCAR_GP_PIN(2, 8), /* VI0_DATA4 */ 2543 + [ 8] = RCAR_GP_PIN(2, 9), /* VI0_DATA5 */ 2544 + [ 9] = RCAR_GP_PIN(2, 10), /* VI0_DATA6 */ 2545 + [10] = RCAR_GP_PIN(2, 11), /* VI0_DATA7 */ 2546 + [11] = RCAR_GP_PIN(2, 12), /* VI0_DATA8 */ 2547 + [12] = RCAR_GP_PIN(2, 13), /* VI0_DATA9 */ 2548 + [13] = RCAR_GP_PIN(2, 14), /* VI0_DATA10 */ 2549 + [14] = RCAR_GP_PIN(2, 15), /* VI0_DATA11 */ 2550 + [15] = RCAR_GP_PIN(2, 16), /* VI0_FIELD */ 2551 + [16] = RCAR_GP_PIN(3, 0), /* VI1_CLK */ 2552 + [17] = RCAR_GP_PIN(3, 1), /* VI1_CLKENB */ 2553 + [18] = RCAR_GP_PIN(3, 2), /* VI1_HSYNC# */ 2554 + [19] = RCAR_GP_PIN(3, 3), /* VI1_VSYNC# */ 2555 + [20] = RCAR_GP_PIN(3, 4), /* VI1_DATA0 */ 2556 + [21] = RCAR_GP_PIN(3, 5), /* VI1_DATA1 */ 2557 + [22] = RCAR_GP_PIN(3, 6), /* VI1_DATA2 */ 2558 + [23] = RCAR_GP_PIN(3, 7), /* VI1_DATA3 */ 2559 + [24] = RCAR_GP_PIN(3, 8), /* VI1_DATA4 */ 2560 + [25] = RCAR_GP_PIN(3, 9), /* VI1_DATA5 */ 2561 + [26] = RCAR_GP_PIN(3, 10), /* VI1_DATA6 */ 2562 + [27] = RCAR_GP_PIN(3, 11), /* VI1_DATA7 */ 2563 + [28] = RCAR_GP_PIN(3, 12), /* VI1_DATA8 */ 2564 + [29] = RCAR_GP_PIN(3, 13), /* VI1_DATA9 */ 2565 + [30] = RCAR_GP_PIN(3, 14), /* VI1_DATA10 */ 2566 + [31] = RCAR_GP_PIN(3, 15), /* VI1_DATA11 */ 2567 + } }, 2568 + { PINMUX_BIAS_REG("PUEN2", 0xe6060408, "PUD2", 0xe6060448) { 2569 + [ 0] = RCAR_GP_PIN(3, 16), /* VI1_FIELD */ 2570 + [ 1] = RCAR_GP_PIN(4, 0), /* SCL0 */ 2571 + [ 2] = RCAR_GP_PIN(4, 1), /* SDA0 */ 2572 + [ 3] = RCAR_GP_PIN(4, 2), /* SCL1 */ 2573 + [ 4] = RCAR_GP_PIN(4, 3), /* SDA1 */ 2574 + [ 5] = RCAR_GP_PIN(4, 4), /* SCL2 */ 2575 + [ 6] = RCAR_GP_PIN(4, 5), /* SDA2 */ 2576 + [ 7] = RCAR_GP_PIN(1, 1), /* AVB0_RX_CTL */ 2577 + [ 8] = RCAR_GP_PIN(1, 2), /* AVB0_RXC */ 2578 + [ 9] = RCAR_GP_PIN(1, 3), /* AVB0_RD0 */ 2579 + [10] = RCAR_GP_PIN(1, 4), /* AVB0_RD1 */ 2580 + [11] = RCAR_GP_PIN(1, 5), /* AVB0_RD2 */ 2581 + [12] = RCAR_GP_PIN(1, 6), /* AVB0_RD3 */ 2582 + [13] = RCAR_GP_PIN(1, 7), /* AVB0_TX_CTL */ 2583 + [14] = RCAR_GP_PIN(1, 8), /* AVB0_TXC */ 2584 + [15] = RCAR_GP_PIN(1, 9), /* AVB0_TD0 */ 2585 + [16] = RCAR_GP_PIN(1, 10), /* AVB0_TD1 */ 2586 + [17] = RCAR_GP_PIN(1, 11), /* AVB0_TD2 */ 2587 + [18] = RCAR_GP_PIN(1, 12), /* AVB0_TD3 */ 2588 + [19] = RCAR_GP_PIN(1, 13), /* AVB0_TXCREFCLK */ 2589 + [20] = RCAR_GP_PIN(1, 14), /* AVB0_MDIO */ 2590 + [21] = RCAR_GP_PIN(1, 15), /* AVB0_MDC */ 2591 + [22] = RCAR_GP_PIN(1, 16), /* AVB0_MAGIC */ 2592 + [23] = RCAR_GP_PIN(1, 17), /* AVB0_PHY_INT */ 2593 + [24] = RCAR_GP_PIN(1, 18), /* AVB0_LINK */ 2594 + [25] = RCAR_GP_PIN(1, 19), /* AVB0_AVTP_MATCH */ 2595 + [26] = RCAR_GP_PIN(1, 20), /* AVB0_AVTP_CAPTURE */ 2596 + [27] = RCAR_GP_PIN(1, 21), /* CANFD0_TX_A */ 2597 + [28] = RCAR_GP_PIN(1, 22), /* CANFD0_RX_A */ 2598 + [29] = RCAR_GP_PIN(1, 23), /* CANFD1_TX */ 2599 + [30] = RCAR_GP_PIN(1, 24), /* CANFD1_RX */ 2600 + [31] = RCAR_GP_PIN(1, 25), /* CANFD_CLK */ 2601 + } }, 2602 + { PINMUX_BIAS_REG("PUEN3", 0xe606040c, "PUD3", 0xe606044c) { 2603 + [ 0] = RCAR_GP_PIN(5, 0), /* QSPI0_SPCLK */ 2604 + [ 1] = RCAR_GP_PIN(5, 1), /* QSPI0_MOSI_IO0 */ 2605 + [ 2] = RCAR_GP_PIN(5, 2), /* QSPI0_MISO_IO1 */ 2606 + [ 3] = RCAR_GP_PIN(5, 3), /* QSPI0_IO2 */ 2607 + [ 4] = RCAR_GP_PIN(5, 4), /* QSPI0_IO3 */ 2608 + [ 5] = RCAR_GP_PIN(5, 5), /* QSPI0_SSL */ 2609 + [ 6] = RCAR_GP_PIN(5, 6), /* QSPI1_SPCLK */ 2610 + [ 7] = RCAR_GP_PIN(5, 7), /* QSPI1_MOSI_IO0 */ 2611 + [ 8] = RCAR_GP_PIN(5, 8), /* QSPI1_MISO_IO1 */ 2612 + [ 9] = RCAR_GP_PIN(5, 9), /* QSPI1_IO2 */ 2613 + [10] = RCAR_GP_PIN(5, 10), /* QSPI1_IO3 */ 2614 + [11] = RCAR_GP_PIN(5, 11), /* QSPI1_SSL */ 2615 + [12] = RCAR_GP_PIN(5, 12), /* RPC_RESET# */ 2616 + [13] = RCAR_GP_PIN(5, 13), /* RPC_WP# */ 2617 + [14] = RCAR_GP_PIN(5, 14), /* RPC_INT# */ 2618 + [15] = RCAR_GP_PIN(1, 26), /* DIGRF_CLKIN */ 2619 + [16] = RCAR_GP_PIN(1, 27), /* DIGRF_CLKOUT */ 2620 + [17] = SH_PFC_PIN_NONE, 2621 + [18] = SH_PFC_PIN_NONE, 2622 + [19] = SH_PFC_PIN_NONE, 2623 + [20] = SH_PFC_PIN_NONE, 2624 + [21] = SH_PFC_PIN_NONE, 2625 + [22] = SH_PFC_PIN_NONE, 2626 + [23] = SH_PFC_PIN_NONE, 2627 + [24] = SH_PFC_PIN_NONE, 2628 + [25] = SH_PFC_PIN_NONE, 2629 + [26] = SH_PFC_PIN_NONE, 2630 + [27] = SH_PFC_PIN_NONE, 2631 + [28] = SH_PFC_PIN_NONE, 2632 + [29] = SH_PFC_PIN_NONE, 2633 + [30] = SH_PFC_PIN_NONE, 2634 + [31] = SH_PFC_PIN_NONE, 2635 + } }, 2636 + { /* sentinel */ } 2637 + }; 2638 + 2519 2639 static const struct sh_pfc_soc_operations pinmux_ops = { 2520 2640 .pin_to_pocctrl = r8a77970_pin_to_pocctrl, 2641 + .get_bias = rcar_pinmux_get_bias, 2642 + .set_bias = rcar_pinmux_set_bias, 2521 2643 }; 2522 2644 2523 2645 const struct sh_pfc_soc_info r8a77970_pinmux_info = { ··· 2677 2515 .nr_functions = ARRAY_SIZE(pinmux_functions), 2678 2516 2679 2517 .cfg_regs = pinmux_config_regs, 2518 + .bias_regs = pinmux_bias_regs, 2680 2519 .ioctrl_regs = pinmux_ioctrl_regs, 2681 2520 2682 2521 .pinmux_data = pinmux_data,
+203 -6
drivers/pinctrl/renesas/pfc-r8a77980.c
··· 19 19 #include "sh_pfc.h" 20 20 21 21 #define CPU_ALL_GP(fn, sfx) \ 22 - PORT_GP_CFG_22(0, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 23 - PORT_GP_28(1, fn, sfx), \ 24 - PORT_GP_CFG_30(2, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 25 - PORT_GP_CFG_17(3, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE), \ 26 - PORT_GP_25(4, fn, sfx), \ 27 - PORT_GP_15(5, fn, sfx) 22 + PORT_GP_CFG_22(0, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 23 + PORT_GP_CFG_28(1, fn, sfx, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 24 + PORT_GP_CFG_30(2, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 25 + PORT_GP_CFG_17(3, fn, sfx, SH_PFC_PIN_CFG_IO_VOLTAGE | SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 26 + PORT_GP_CFG_25(4, fn, sfx, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 27 + PORT_GP_CFG_15(5, fn, sfx, SH_PFC_PIN_CFG_PULL_UP_DOWN) 28 + 29 + #define CPU_ALL_NOGP(fn) \ 30 + PIN_NOGP_CFG(DCUTCK_LPDCLK, "DCUTCK_LPDCLK", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 31 + PIN_NOGP_CFG(DCUTDI_LPDI, "DCUTDI_LPDI", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 32 + PIN_NOGP_CFG(DCUTMS, "DCUTMS", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 33 + PIN_NOGP_CFG(DCUTRST_N, "DCUTRST#", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 34 + PIN_NOGP_CFG(DU_DOTCLKIN, "DU_DOTCLKIN", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 35 + PIN_NOGP_CFG(EXTALR, "EXTALR", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 36 + PIN_NOGP_CFG(FSCLKST, "FSCLKST", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 37 + PIN_NOGP_CFG(FSCLKST_N, "FSCLKST#", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN), \ 38 + PIN_NOGP_CFG(PRESETOUT_N, "PRESETOUT#", fn, SH_PFC_PIN_CFG_PULL_UP_DOWN) 28 39 29 40 /* 30 41 * F_() : just information ··· 841 830 PINMUX_IPSR_GPSR(IP10_19_16, FSO_TOE_N), 842 831 }; 843 832 833 + /* 834 + * Pins not associated with a GPIO port. 835 + */ 836 + enum { 837 + GP_ASSIGN_LAST(), 838 + NOGP_ALL(), 839 + }; 840 + 844 841 static const struct sh_pfc_pin pinmux_pins[] = { 845 842 PINMUX_GPIO_GP_ALL(), 843 + PINMUX_NOGP_ALL(), 846 844 }; 847 845 848 846 /* - AVB -------------------------------------------------------------------- */ ··· 2965 2945 return -EINVAL; 2966 2946 } 2967 2947 2948 + static const struct pinmux_bias_reg pinmux_bias_regs[] = { 2949 + { PINMUX_BIAS_REG("PUEN0", 0xe6060400, "PUD0", 0xe6060440) { 2950 + [ 0] = RCAR_GP_PIN(0, 0), /* DU_DR2 */ 2951 + [ 1] = RCAR_GP_PIN(0, 1), /* DU_DR3 */ 2952 + [ 2] = RCAR_GP_PIN(0, 2), /* DU_DR4 */ 2953 + [ 3] = RCAR_GP_PIN(0, 3), /* DU_DR5 */ 2954 + [ 4] = RCAR_GP_PIN(0, 4), /* DU_DR6 */ 2955 + [ 5] = RCAR_GP_PIN(0, 5), /* DU_DR7 */ 2956 + [ 6] = RCAR_GP_PIN(0, 6), /* DU_DG2 */ 2957 + [ 7] = RCAR_GP_PIN(0, 7), /* DU_DG3 */ 2958 + [ 8] = RCAR_GP_PIN(0, 8), /* DU_DG4 */ 2959 + [ 9] = RCAR_GP_PIN(0, 9), /* DU_DG5 */ 2960 + [10] = RCAR_GP_PIN(0, 10), /* DU_DG6 */ 2961 + [11] = RCAR_GP_PIN(0, 11), /* DU_DG7 */ 2962 + [12] = RCAR_GP_PIN(0, 12), /* DU_DB2 */ 2963 + [13] = RCAR_GP_PIN(0, 13), /* DU_DB3 */ 2964 + [14] = RCAR_GP_PIN(0, 14), /* DU_DB4 */ 2965 + [15] = RCAR_GP_PIN(0, 15), /* DU_DB5 */ 2966 + [16] = RCAR_GP_PIN(0, 16), /* DU_DB6 */ 2967 + [17] = RCAR_GP_PIN(0, 17), /* DU_DB7 */ 2968 + [18] = RCAR_GP_PIN(0, 18), /* DU_DOTCLKOUT */ 2969 + [19] = RCAR_GP_PIN(0, 19), /* DU_EXHSYNC/DU_HSYNC */ 2970 + [20] = RCAR_GP_PIN(0, 20), /* DU_EXVSYNC/DU_VSYNC */ 2971 + [21] = RCAR_GP_PIN(0, 21), /* DU_EXODDF/DU_ODDF/DISP/CDE */ 2972 + [22] = SH_PFC_PIN_NONE, 2973 + [23] = SH_PFC_PIN_NONE, 2974 + [24] = PIN_DU_DOTCLKIN, /* DU_DOTCLKIN */ 2975 + [25] = SH_PFC_PIN_NONE, 2976 + [26] = PIN_PRESETOUT_N, /* PRESETOUT# */ 2977 + [27] = SH_PFC_PIN_NONE, 2978 + [28] = SH_PFC_PIN_NONE, 2979 + [29] = SH_PFC_PIN_NONE, 2980 + [30] = PIN_EXTALR, /* EXTALR */ 2981 + [31] = PIN_FSCLKST_N, /* FSCLKST# */ 2982 + } }, 2983 + { PINMUX_BIAS_REG("PUEN1", 0xe6060404, "PUD1", 0xe6060444) { 2984 + [ 0] = PIN_FSCLKST, /* FSCLKST */ 2985 + [ 1] = SH_PFC_PIN_NONE, 2986 + [ 2] = RCAR_GP_PIN(1, 0), /* IRQ0 */ 2987 + [ 3] = PIN_DCUTRST_N, /* DCUTRST# */ 2988 + [ 4] = PIN_DCUTCK_LPDCLK, /* DCUTCK_LPDCLK */ 2989 + [ 5] = PIN_DCUTMS, /* DCUTMS */ 2990 + [ 6] = PIN_DCUTDI_LPDI, /* DCUTDI_LPDI */ 2991 + [ 7] = SH_PFC_PIN_NONE, 2992 + [ 8] = RCAR_GP_PIN(2, 0), /* VI0_CLK */ 2993 + [ 9] = RCAR_GP_PIN(2, 1), /* VI0_CLKENB */ 2994 + [10] = RCAR_GP_PIN(2, 2), /* VI0_HSYNC# */ 2995 + [11] = RCAR_GP_PIN(2, 3), /* VI0_VSYNC# */ 2996 + [12] = RCAR_GP_PIN(2, 4), /* VI0_DATA0 */ 2997 + [13] = RCAR_GP_PIN(2, 5), /* VI0_DATA1 */ 2998 + [14] = RCAR_GP_PIN(2, 6), /* VI0_DATA2 */ 2999 + [15] = RCAR_GP_PIN(2, 7), /* VI0_DATA3 */ 3000 + [16] = RCAR_GP_PIN(2, 8), /* VI0_DATA4 */ 3001 + [17] = RCAR_GP_PIN(2, 9), /* VI0_DATA5 */ 3002 + [18] = RCAR_GP_PIN(2, 10), /* VI0_DATA6 */ 3003 + [19] = RCAR_GP_PIN(2, 11), /* VI0_DATA7 */ 3004 + [20] = RCAR_GP_PIN(2, 12), /* VI0_DATA8 */ 3005 + [21] = RCAR_GP_PIN(2, 13), /* VI0_DATA9 */ 3006 + [22] = RCAR_GP_PIN(2, 14), /* VI0_DATA10 */ 3007 + [23] = RCAR_GP_PIN(2, 15), /* VI0_DATA11 */ 3008 + [24] = RCAR_GP_PIN(2, 16), /* VI0_FIELD */ 3009 + [25] = RCAR_GP_PIN(3, 0), /* VI1_CLK */ 3010 + [26] = RCAR_GP_PIN(3, 1), /* VI1_CLKENB */ 3011 + [27] = RCAR_GP_PIN(3, 2), /* VI1_HSYNC# */ 3012 + [28] = RCAR_GP_PIN(3, 3), /* VI1_VSYNC# */ 3013 + [29] = RCAR_GP_PIN(3, 4), /* VI1_DATA0 */ 3014 + [30] = RCAR_GP_PIN(3, 5), /* VI1_DATA1 */ 3015 + [31] = RCAR_GP_PIN(3, 6), /* VI1_DATA2 */ 3016 + } }, 3017 + { PINMUX_BIAS_REG("PUEN2", 0xe6060408, "PUD2", 0xe6060448) { 3018 + [ 0] = RCAR_GP_PIN(3, 7), /* VI1_DATA3 */ 3019 + [ 1] = RCAR_GP_PIN(3, 8), /* VI1_DATA4 */ 3020 + [ 2] = RCAR_GP_PIN(3, 9), /* VI1_DATA5 */ 3021 + [ 3] = RCAR_GP_PIN(3, 10), /* VI1_DATA6 */ 3022 + [ 4] = RCAR_GP_PIN(3, 11), /* VI1_DATA7 */ 3023 + [ 5] = RCAR_GP_PIN(3, 12), /* VI1_DATA8 */ 3024 + [ 6] = RCAR_GP_PIN(3, 13), /* VI1_DATA9 */ 3025 + [ 7] = RCAR_GP_PIN(3, 14), /* VI1_DATA10 */ 3026 + [ 8] = RCAR_GP_PIN(3, 15), /* VI1_DATA11 */ 3027 + [ 9] = RCAR_GP_PIN(3, 16), /* VI1_FIELD */ 3028 + [10] = RCAR_GP_PIN(4, 0), /* SCL0 */ 3029 + [11] = RCAR_GP_PIN(4, 1), /* SDA0 */ 3030 + [12] = RCAR_GP_PIN(4, 2), /* SCL1 */ 3031 + [13] = RCAR_GP_PIN(4, 3), /* SDA1 */ 3032 + [14] = RCAR_GP_PIN(4, 4), /* SCL2 */ 3033 + [15] = RCAR_GP_PIN(4, 5), /* SDA2 */ 3034 + [16] = RCAR_GP_PIN(1, 1), /* AVB_RX_CTL */ 3035 + [17] = RCAR_GP_PIN(1, 2), /* AVB_RXC */ 3036 + [18] = RCAR_GP_PIN(1, 3), /* AVB_RD0 */ 3037 + [19] = RCAR_GP_PIN(1, 4), /* AVB_RD1 */ 3038 + [20] = RCAR_GP_PIN(1, 5), /* AVB_RD2 */ 3039 + [21] = RCAR_GP_PIN(1, 6), /* AVB_RD3 */ 3040 + [22] = RCAR_GP_PIN(1, 7), /* AVB_TX_CTL */ 3041 + [23] = RCAR_GP_PIN(1, 8), /* AVB_TXC */ 3042 + [24] = RCAR_GP_PIN(1, 9), /* AVB_TD0 */ 3043 + [25] = RCAR_GP_PIN(1, 10), /* AVB_TD1 */ 3044 + [26] = RCAR_GP_PIN(1, 11), /* AVB_TD2 */ 3045 + [27] = RCAR_GP_PIN(1, 12), /* AVB_TD3 */ 3046 + [28] = RCAR_GP_PIN(1, 13), /* AVB_TXCREFCLK */ 3047 + [29] = RCAR_GP_PIN(1, 14), /* AVB_MDIO */ 3048 + [30] = RCAR_GP_PIN(1, 15), /* AVB_MDC */ 3049 + [31] = RCAR_GP_PIN(1, 16), /* AVB_MAGIC */ 3050 + } }, 3051 + { PINMUX_BIAS_REG("PUEN3", 0xe606040c, "PUD3", 0xe606044c) { 3052 + [ 0] = RCAR_GP_PIN(1, 17), /* AVB_PHY_INT */ 3053 + [ 1] = RCAR_GP_PIN(1, 18), /* AVB_LINK */ 3054 + [ 2] = RCAR_GP_PIN(1, 19), /* AVB_AVTP_MATCH */ 3055 + [ 3] = RCAR_GP_PIN(1, 20), /* AVTP_CAPTURE */ 3056 + [ 4] = RCAR_GP_PIN(4, 6), /* GETHER_RX_CTL */ 3057 + [ 5] = RCAR_GP_PIN(4, 7), /* GETHER_RXC */ 3058 + [ 6] = RCAR_GP_PIN(4, 8), /* GETHER_RD0 */ 3059 + [ 7] = RCAR_GP_PIN(4, 9), /* GETHER_RD1 */ 3060 + [ 8] = RCAR_GP_PIN(4, 10), /* GETHER_RD2 */ 3061 + [ 9] = RCAR_GP_PIN(4, 11), /* GETHER_RD3 */ 3062 + [10] = RCAR_GP_PIN(4, 12), /* GETHER_TX_CTL */ 3063 + [11] = RCAR_GP_PIN(4, 13), /* GETHER_TXC */ 3064 + [12] = RCAR_GP_PIN(4, 14), /* GETHER_TD0 */ 3065 + [13] = RCAR_GP_PIN(4, 15), /* GETHER_TD1 */ 3066 + [14] = RCAR_GP_PIN(4, 16), /* GETHER_TD2 */ 3067 + [15] = RCAR_GP_PIN(4, 17), /* GETHER_TD3 */ 3068 + [16] = RCAR_GP_PIN(4, 18), /* GETHER_TXCREFCLK */ 3069 + [17] = RCAR_GP_PIN(4, 19), /* GETHER_TXCREFCLK_MEGA */ 3070 + [18] = RCAR_GP_PIN(4, 20), /* GETHER_MDIO_A */ 3071 + [19] = RCAR_GP_PIN(4, 21), /* GETHER_MDC_A */ 3072 + [20] = RCAR_GP_PIN(4, 22), /* GETHER_MAGIC */ 3073 + [21] = RCAR_GP_PIN(4, 23), /* GETHER_PHY_INT_A */ 3074 + [22] = RCAR_GP_PIN(4, 24), /* GETHER_LINK_A */ 3075 + [23] = RCAR_GP_PIN(1, 21), /* CANFD0_TX_A */ 3076 + [24] = RCAR_GP_PIN(1, 22), /* CANFD0_RX_A */ 3077 + [25] = RCAR_GP_PIN(1, 23), /* CANFD1_TX */ 3078 + [26] = RCAR_GP_PIN(1, 24), /* CANFD1_RX */ 3079 + [27] = RCAR_GP_PIN(1, 25), /* CAN_CLK_A */ 3080 + [28] = RCAR_GP_PIN(5, 0), /* QSPI0_SPCLK */ 3081 + [29] = RCAR_GP_PIN(5, 1), /* QSPI0_MOSI_IO0 */ 3082 + [30] = RCAR_GP_PIN(5, 2), /* QSPI0_MISO_IO1 */ 3083 + [31] = RCAR_GP_PIN(5, 3), /* QSPI0_IO2 */ 3084 + } }, 3085 + { PINMUX_BIAS_REG("PUEN4", 0xe6060410, "PUD4", 0xe6060450) { 3086 + [ 0] = RCAR_GP_PIN(5, 4), /* QSPI0_IO3 */ 3087 + [ 1] = RCAR_GP_PIN(5, 5), /* QSPI0_SSL */ 3088 + [ 2] = RCAR_GP_PIN(5, 6), /* QSPI1_SPCLK */ 3089 + [ 3] = RCAR_GP_PIN(5, 7), /* QSPI1_MOSI_IO0 */ 3090 + [ 4] = RCAR_GP_PIN(5, 8), /* QSPI1_MISO_IO1 */ 3091 + [ 5] = RCAR_GP_PIN(5, 9), /* QSPI1_IO2 */ 3092 + [ 6] = RCAR_GP_PIN(5, 10), /* QSPI1_IO3 */ 3093 + [ 7] = RCAR_GP_PIN(5, 11), /* QSPI1_SSL */ 3094 + [ 8] = RCAR_GP_PIN(5, 12), /* RPC_RESET# */ 3095 + [ 9] = RCAR_GP_PIN(5, 13), /* RPC_WP# */ 3096 + [10] = RCAR_GP_PIN(5, 14), /* RPC_INT# */ 3097 + [11] = RCAR_GP_PIN(1, 26), /* DIGRF_CLKIN */ 3098 + [12] = RCAR_GP_PIN(1, 27), /* DIGRF_CLKOUT */ 3099 + [13] = RCAR_GP_PIN(2, 17), /* IRQ4 */ 3100 + [14] = RCAR_GP_PIN(2, 18), /* IRQ5 */ 3101 + [15] = RCAR_GP_PIN(2, 25), /* SCL3 */ 3102 + [16] = RCAR_GP_PIN(2, 26), /* SDA3 */ 3103 + [17] = RCAR_GP_PIN(2, 19), /* MSIOF0_RXD */ 3104 + [18] = RCAR_GP_PIN(2, 20), /* MSIOF0_TXD */ 3105 + [19] = RCAR_GP_PIN(2, 21), /* MSIOF0_SCK */ 3106 + [20] = RCAR_GP_PIN(2, 22), /* MSIOF0_SYNC */ 3107 + [21] = RCAR_GP_PIN(2, 23), /* MSIOF0_SS1 */ 3108 + [22] = RCAR_GP_PIN(2, 24), /* MSIOF0_SS2 */ 3109 + [23] = RCAR_GP_PIN(2, 27), /* FSO_CFE_0# */ 3110 + [24] = RCAR_GP_PIN(2, 28), /* FSO_CFE_1# */ 3111 + [25] = RCAR_GP_PIN(2, 29), /* FSO_TOE# */ 3112 + [26] = SH_PFC_PIN_NONE, 3113 + [27] = SH_PFC_PIN_NONE, 3114 + [28] = SH_PFC_PIN_NONE, 3115 + [29] = SH_PFC_PIN_NONE, 3116 + [30] = SH_PFC_PIN_NONE, 3117 + [31] = SH_PFC_PIN_NONE, 3118 + } }, 3119 + { /* sentinel */ } 3120 + }; 3121 + 2968 3122 static const struct sh_pfc_soc_operations pinmux_ops = { 2969 3123 .pin_to_pocctrl = r8a77980_pin_to_pocctrl, 3124 + .get_bias = rcar_pinmux_get_bias, 3125 + .set_bias = rcar_pinmux_set_bias, 2970 3126 }; 2971 3127 2972 3128 const struct sh_pfc_soc_info r8a77980_pinmux_info = { ··· 3160 2964 .nr_functions = ARRAY_SIZE(pinmux_functions), 3161 2965 3162 2966 .cfg_regs = pinmux_config_regs, 2967 + .bias_regs = pinmux_bias_regs, 3163 2968 .ioctrl_regs = pinmux_ioctrl_regs, 3164 2969 3165 2970 .pinmux_data = pinmux_data,
+8 -8
drivers/pinctrl/renesas/pfc-r8a77990.c
··· 53 53 PIN_NOGP_CFG(FSCLKST_N, "FSCLKST_N", fn, CFG_FLAGS), \ 54 54 PIN_NOGP_CFG(MLB_REF, "MLB_REF", fn, CFG_FLAGS), \ 55 55 PIN_NOGP_CFG(PRESETOUT_N, "PRESETOUT_N", fn, CFG_FLAGS), \ 56 - PIN_NOGP_CFG(TCK, "TCK", fn, CFG_FLAGS), \ 57 - PIN_NOGP_CFG(TDI, "TDI", fn, CFG_FLAGS), \ 58 - PIN_NOGP_CFG(TMS, "TMS", fn, CFG_FLAGS), \ 59 - PIN_NOGP_CFG(TRST_N, "TRST_N", fn, CFG_FLAGS) 56 + PIN_NOGP_CFG(TCK, "TCK", fn, SH_PFC_PIN_CFG_PULL_UP), \ 57 + PIN_NOGP_CFG(TDI, "TDI", fn, SH_PFC_PIN_CFG_PULL_UP), \ 58 + PIN_NOGP_CFG(TMS, "TMS", fn, SH_PFC_PIN_CFG_PULL_UP), \ 59 + PIN_NOGP_CFG(TRST_N, "TRST_N", fn, SH_PFC_PIN_CFG_PULL_UP) 60 60 61 61 /* 62 62 * F_() : just information ··· 5197 5197 [27] = RCAR_GP_PIN(1, 0), /* A0 */ 5198 5198 [28] = SH_PFC_PIN_NONE, 5199 5199 [29] = SH_PFC_PIN_NONE, 5200 - [30] = RCAR_GP_PIN(2, 25), /* PUEN_EX_WAIT0 */ 5201 - [31] = RCAR_GP_PIN(2, 24), /* PUEN_RD/WR# */ 5200 + [30] = RCAR_GP_PIN(2, 25), /* EX_WAIT0 */ 5201 + [31] = RCAR_GP_PIN(2, 24), /* RD/WR# */ 5202 5202 } }, 5203 5203 { PINMUX_BIAS_REG("PUEN2", 0xe6060408, "PUD2", 0xe6060448) { 5204 5204 [0] = RCAR_GP_PIN(3, 1), /* SD0_CMD */ ··· 5333 5333 [27] = SH_PFC_PIN_NONE, 5334 5334 [28] = SH_PFC_PIN_NONE, 5335 5335 [29] = SH_PFC_PIN_NONE, 5336 - [30] = RCAR_GP_PIN(6, 9), /* PUEN_USB30_OVC */ 5337 - [31] = RCAR_GP_PIN(6, 17), /* PUEN_USB30_PWEN */ 5336 + [30] = RCAR_GP_PIN(6, 9), /* USB30_OVC */ 5337 + [31] = RCAR_GP_PIN(6, 17), /* USB30_PWEN */ 5338 5338 } }, 5339 5339 { /* sentinel */ }, 5340 5340 };
+40 -39
drivers/pinctrl/stm32/pinctrl-stm32.c
··· 414 414 { 415 415 struct stm32_gpio_bank *bank = d->host_data; 416 416 struct stm32_pinctrl *pctl = dev_get_drvdata(bank->gpio_chip.parent); 417 - unsigned long flags; 418 417 int ret = 0; 419 - 420 - /* 421 - * gpio irq mux is shared between several banks, a lock has to be done 422 - * to avoid overriding. 423 - */ 424 - spin_lock_irqsave(&pctl->irqmux_lock, flags); 425 418 426 419 if (pctl->hwlock) { 427 420 ret = hwspin_lock_timeout_in_atomic(pctl->hwlock, 428 421 HWSPNLCK_TIMEOUT); 429 422 if (ret) { 430 423 dev_err(pctl->dev, "Can't get hwspinlock\n"); 431 - goto unlock; 424 + return ret; 432 425 } 433 - } 434 - 435 - if (pctl->irqmux_map & BIT(irq_data->hwirq)) { 436 - dev_err(pctl->dev, "irq line %ld already requested.\n", 437 - irq_data->hwirq); 438 - ret = -EBUSY; 439 - if (pctl->hwlock) 440 - hwspin_unlock_in_atomic(pctl->hwlock); 441 - goto unlock; 442 - } else { 443 - pctl->irqmux_map |= BIT(irq_data->hwirq); 444 426 } 445 427 446 428 regmap_field_write(pctl->irqmux[irq_data->hwirq], bank->bank_ioport_nr); ··· 430 448 if (pctl->hwlock) 431 449 hwspin_unlock_in_atomic(pctl->hwlock); 432 450 433 - unlock: 434 - spin_unlock_irqrestore(&pctl->irqmux_lock, flags); 435 451 return ret; 436 - } 437 - 438 - static void stm32_gpio_domain_deactivate(struct irq_domain *d, 439 - struct irq_data *irq_data) 440 - { 441 - struct stm32_gpio_bank *bank = d->host_data; 442 - struct stm32_pinctrl *pctl = dev_get_drvdata(bank->gpio_chip.parent); 443 - unsigned long flags; 444 - 445 - spin_lock_irqsave(&pctl->irqmux_lock, flags); 446 - pctl->irqmux_map &= ~BIT(irq_data->hwirq); 447 - spin_unlock_irqrestore(&pctl->irqmux_lock, flags); 448 452 } 449 453 450 454 static int stm32_gpio_domain_alloc(struct irq_domain *d, ··· 440 472 struct stm32_gpio_bank *bank = d->host_data; 441 473 struct irq_fwspec *fwspec = data; 442 474 struct irq_fwspec parent_fwspec; 443 - irq_hw_number_t hwirq; 475 + struct stm32_pinctrl *pctl = dev_get_drvdata(bank->gpio_chip.parent); 476 + irq_hw_number_t hwirq = fwspec->param[0]; 477 + unsigned long flags; 478 + int ret = 0; 444 479 445 - hwirq = fwspec->param[0]; 480 + /* 481 + * Check first that the IRQ MUX of that line is free. 482 + * gpio irq mux is shared between several banks, protect with a lock 483 + */ 484 + spin_lock_irqsave(&pctl->irqmux_lock, flags); 485 + 486 + if (pctl->irqmux_map & BIT(hwirq)) { 487 + dev_err(pctl->dev, "irq line %ld already requested.\n", hwirq); 488 + ret = -EBUSY; 489 + } else { 490 + pctl->irqmux_map |= BIT(hwirq); 491 + } 492 + 493 + spin_unlock_irqrestore(&pctl->irqmux_lock, flags); 494 + if (ret) 495 + return ret; 496 + 446 497 parent_fwspec.fwnode = d->parent->fwnode; 447 498 parent_fwspec.param_count = 2; 448 499 parent_fwspec.param[0] = fwspec->param[0]; ··· 473 486 return irq_domain_alloc_irqs_parent(d, virq, nr_irqs, &parent_fwspec); 474 487 } 475 488 489 + static void stm32_gpio_domain_free(struct irq_domain *d, unsigned int virq, 490 + unsigned int nr_irqs) 491 + { 492 + struct stm32_gpio_bank *bank = d->host_data; 493 + struct stm32_pinctrl *pctl = dev_get_drvdata(bank->gpio_chip.parent); 494 + struct irq_data *irq_data = irq_domain_get_irq_data(d, virq); 495 + unsigned long flags, hwirq = irq_data->hwirq; 496 + 497 + irq_domain_free_irqs_common(d, virq, nr_irqs); 498 + 499 + spin_lock_irqsave(&pctl->irqmux_lock, flags); 500 + pctl->irqmux_map &= ~BIT(hwirq); 501 + spin_unlock_irqrestore(&pctl->irqmux_lock, flags); 502 + } 503 + 476 504 static const struct irq_domain_ops stm32_gpio_domain_ops = { 477 - .translate = stm32_gpio_domain_translate, 478 - .alloc = stm32_gpio_domain_alloc, 479 - .free = irq_domain_free_irqs_common, 505 + .translate = stm32_gpio_domain_translate, 506 + .alloc = stm32_gpio_domain_alloc, 507 + .free = stm32_gpio_domain_free, 480 508 .activate = stm32_gpio_domain_activate, 481 - .deactivate = stm32_gpio_domain_deactivate, 482 509 }; 483 510 484 511 /* Pinctrl functions */
+13
include/dt-bindings/pinctrl/apple.h
··· 1 + /* SPDX-License-Identifier: GPL-2.0+ OR MIT */ 2 + /* 3 + * This header provides constants for Apple pinctrl bindings. 4 + */ 5 + 6 + #ifndef _DT_BINDINGS_PINCTRL_APPLE_H 7 + #define _DT_BINDINGS_PINCTRL_APPLE_H 8 + 9 + #define APPLE_PINMUX(pin, func) ((pin) | ((func) << 16)) 10 + #define APPLE_PIN(pinmux) ((pinmux) & 0xffff) 11 + #define APPLE_FUNC(pinmux) ((pinmux) >> 16) 12 + 13 + #endif /* _DT_BINDINGS_PINCTRL_APPLE_H */
+858
include/dt-bindings/pinctrl/mt8365-pinfunc.h
··· 1 + /* SPDX-License-Identifier: GPL-2.0 */ 2 + /* 3 + * Copyright (C) 2021 MediaTek Inc. 4 + */ 5 + #ifndef __MT8365_PINFUNC_H 6 + #define __MT8365_PINFUNC_H 7 + 8 + #include <dt-bindings/pinctrl/mt65xx.h> 9 + 10 + #define MT8365_PIN_0_GPIO0__FUNC_GPIO0 (MTK_PIN_NO(0) | 0) 11 + #define MT8365_PIN_0_GPIO0__FUNC_DPI_D0 (MTK_PIN_NO(0) | 1) 12 + #define MT8365_PIN_0_GPIO0__FUNC_PWM_A (MTK_PIN_NO(0) | 2) 13 + #define MT8365_PIN_0_GPIO0__FUNC_I2S2_BCK (MTK_PIN_NO(0) | 3) 14 + #define MT8365_PIN_0_GPIO0__FUNC_EXT_TXD0 (MTK_PIN_NO(0) | 4) 15 + #define MT8365_PIN_0_GPIO0__FUNC_CONN_MCU_TDO (MTK_PIN_NO(0) | 5) 16 + #define MT8365_PIN_0_GPIO0__FUNC_DBG_MON_A0 (MTK_PIN_NO(0) | 7) 17 + 18 + #define MT8365_PIN_1_GPIO1__FUNC_GPIO1 (MTK_PIN_NO(1) | 0) 19 + #define MT8365_PIN_1_GPIO1__FUNC_DPI_D1 (MTK_PIN_NO(1) | 1) 20 + #define MT8365_PIN_1_GPIO1__FUNC_PWM_B (MTK_PIN_NO(1) | 2) 21 + #define MT8365_PIN_1_GPIO1__FUNC_I2S2_LRCK (MTK_PIN_NO(1) | 3) 22 + #define MT8365_PIN_1_GPIO1__FUNC_EXT_TXD1 (MTK_PIN_NO(1) | 4) 23 + #define MT8365_PIN_1_GPIO1__FUNC_CONN_MCU_DBGACK_N (MTK_PIN_NO(1) | 5) 24 + #define MT8365_PIN_1_GPIO1__FUNC_DBG_MON_A1 (MTK_PIN_NO(1) | 7) 25 + 26 + #define MT8365_PIN_2_GPIO2__FUNC_GPIO2 (MTK_PIN_NO(2) | 0) 27 + #define MT8365_PIN_2_GPIO2__FUNC_DPI_D2 (MTK_PIN_NO(2) | 1) 28 + #define MT8365_PIN_2_GPIO2__FUNC_PWM_C (MTK_PIN_NO(2) | 2) 29 + #define MT8365_PIN_2_GPIO2__FUNC_I2S2_MCK (MTK_PIN_NO(2) | 3) 30 + #define MT8365_PIN_2_GPIO2__FUNC_EXT_TXD2 (MTK_PIN_NO(2) | 4) 31 + #define MT8365_PIN_2_GPIO2__FUNC_CONN_MCU_DBGI_N (MTK_PIN_NO(2) | 5) 32 + #define MT8365_PIN_2_GPIO2__FUNC_DBG_MON_A2 (MTK_PIN_NO(2) | 7) 33 + 34 + #define MT8365_PIN_3_GPIO3__FUNC_GPIO3 (MTK_PIN_NO(3) | 0) 35 + #define MT8365_PIN_3_GPIO3__FUNC_DPI_D3 (MTK_PIN_NO(3) | 1) 36 + #define MT8365_PIN_3_GPIO3__FUNC_CLKM0 (MTK_PIN_NO(3) | 2) 37 + #define MT8365_PIN_3_GPIO3__FUNC_I2S2_DI (MTK_PIN_NO(3) | 3) 38 + #define MT8365_PIN_3_GPIO3__FUNC_EXT_TXD3 (MTK_PIN_NO(3) | 4) 39 + #define MT8365_PIN_3_GPIO3__FUNC_CONN_MCU_TCK (MTK_PIN_NO(3) | 5) 40 + #define MT8365_PIN_3_GPIO3__FUNC_CONN_MCU_AICE_TCKC (MTK_PIN_NO(3) | 6) 41 + #define MT8365_PIN_3_GPIO3__FUNC_DBG_MON_A3 (MTK_PIN_NO(3) | 7) 42 + 43 + #define MT8365_PIN_4_GPIO4__FUNC_GPIO4 (MTK_PIN_NO(4) | 0) 44 + #define MT8365_PIN_4_GPIO4__FUNC_DPI_D4 (MTK_PIN_NO(4) | 1) 45 + #define MT8365_PIN_4_GPIO4__FUNC_CLKM1 (MTK_PIN_NO(4) | 2) 46 + #define MT8365_PIN_4_GPIO4__FUNC_I2S1_BCK (MTK_PIN_NO(4) | 3) 47 + #define MT8365_PIN_4_GPIO4__FUNC_EXT_TXC (MTK_PIN_NO(4) | 4) 48 + #define MT8365_PIN_4_GPIO4__FUNC_CONN_MCU_TDI (MTK_PIN_NO(4) | 5) 49 + #define MT8365_PIN_4_GPIO4__FUNC_VDEC_TEST_CK (MTK_PIN_NO(4) | 6) 50 + #define MT8365_PIN_4_GPIO4__FUNC_DBG_MON_A4 (MTK_PIN_NO(4) | 7) 51 + 52 + #define MT8365_PIN_5_GPIO5__FUNC_GPIO5 (MTK_PIN_NO(5) | 0) 53 + #define MT8365_PIN_5_GPIO5__FUNC_DPI_D5 (MTK_PIN_NO(5) | 1) 54 + #define MT8365_PIN_5_GPIO5__FUNC_CLKM2 (MTK_PIN_NO(5) | 2) 55 + #define MT8365_PIN_5_GPIO5__FUNC_I2S1_LRCK (MTK_PIN_NO(5) | 3) 56 + #define MT8365_PIN_5_GPIO5__FUNC_EXT_RXER (MTK_PIN_NO(5) | 4) 57 + #define MT8365_PIN_5_GPIO5__FUNC_CONN_MCU_TRST_B (MTK_PIN_NO(5) | 5) 58 + #define MT8365_PIN_5_GPIO5__FUNC_MM_TEST_CK (MTK_PIN_NO(5) | 6) 59 + #define MT8365_PIN_5_GPIO5__FUNC_DBG_MON_A5 (MTK_PIN_NO(5) | 7) 60 + 61 + #define MT8365_PIN_6_GPIO6__FUNC_GPIO6 (MTK_PIN_NO(6) | 0) 62 + #define MT8365_PIN_6_GPIO6__FUNC_DPI_D6 (MTK_PIN_NO(6) | 1) 63 + #define MT8365_PIN_6_GPIO6__FUNC_CLKM3 (MTK_PIN_NO(6) | 2) 64 + #define MT8365_PIN_6_GPIO6__FUNC_I2S1_MCK (MTK_PIN_NO(6) | 3) 65 + #define MT8365_PIN_6_GPIO6__FUNC_EXT_RXC (MTK_PIN_NO(6) | 4) 66 + #define MT8365_PIN_6_GPIO6__FUNC_CONN_MCU_TMS (MTK_PIN_NO(6) | 5) 67 + #define MT8365_PIN_6_GPIO6__FUNC_CONN_MCU_AICE_TMSC (MTK_PIN_NO(6) | 6) 68 + #define MT8365_PIN_6_GPIO6__FUNC_DBG_MON_A6 (MTK_PIN_NO(6) | 7) 69 + 70 + #define MT8365_PIN_7_GPIO7__FUNC_GPIO7 (MTK_PIN_NO(7) | 0) 71 + #define MT8365_PIN_7_GPIO7__FUNC_DPI_D7 (MTK_PIN_NO(7) | 1) 72 + #define MT8365_PIN_7_GPIO7__FUNC_I2S1_DO (MTK_PIN_NO(7) | 3) 73 + #define MT8365_PIN_7_GPIO7__FUNC_EXT_RXDV (MTK_PIN_NO(7) | 4) 74 + #define MT8365_PIN_7_GPIO7__FUNC_CONN_DSP_JCK (MTK_PIN_NO(7) | 5) 75 + #define MT8365_PIN_7_GPIO7__FUNC_DBG_MON_A7 (MTK_PIN_NO(7) | 7) 76 + 77 + #define MT8365_PIN_8_GPIO8__FUNC_GPIO8 (MTK_PIN_NO(8) | 0) 78 + #define MT8365_PIN_8_GPIO8__FUNC_DPI_D8 (MTK_PIN_NO(8) | 1) 79 + #define MT8365_PIN_8_GPIO8__FUNC_SPI_CLK (MTK_PIN_NO(8) | 2) 80 + #define MT8365_PIN_8_GPIO8__FUNC_I2S0_BCK (MTK_PIN_NO(8) | 3) 81 + #define MT8365_PIN_8_GPIO8__FUNC_EXT_RXD0 (MTK_PIN_NO(8) | 4) 82 + #define MT8365_PIN_8_GPIO8__FUNC_CONN_DSP_JINTP (MTK_PIN_NO(8) | 5) 83 + #define MT8365_PIN_8_GPIO8__FUNC_DBG_MON_A8 (MTK_PIN_NO(8) | 7) 84 + 85 + #define MT8365_PIN_9_GPIO9__FUNC_GPIO9 (MTK_PIN_NO(9) | 0) 86 + #define MT8365_PIN_9_GPIO9__FUNC_DPI_D9 (MTK_PIN_NO(9) | 1) 87 + #define MT8365_PIN_9_GPIO9__FUNC_SPI_CSB (MTK_PIN_NO(9) | 2) 88 + #define MT8365_PIN_9_GPIO9__FUNC_I2S0_LRCK (MTK_PIN_NO(9) | 3) 89 + #define MT8365_PIN_9_GPIO9__FUNC_EXT_RXD1 (MTK_PIN_NO(9) | 4) 90 + #define MT8365_PIN_9_GPIO9__FUNC_CONN_DSP_JDI (MTK_PIN_NO(9) | 5) 91 + #define MT8365_PIN_9_GPIO9__FUNC_DBG_MON_A9 (MTK_PIN_NO(9) | 7) 92 + 93 + #define MT8365_PIN_10_GPIO10__FUNC_GPIO10 (MTK_PIN_NO(10) | 0) 94 + #define MT8365_PIN_10_GPIO10__FUNC_DPI_D10 (MTK_PIN_NO(10) | 1) 95 + #define MT8365_PIN_10_GPIO10__FUNC_SPI_MI (MTK_PIN_NO(10) | 2) 96 + #define MT8365_PIN_10_GPIO10__FUNC_I2S0_MCK (MTK_PIN_NO(10) | 3) 97 + #define MT8365_PIN_10_GPIO10__FUNC_EXT_RXD2 (MTK_PIN_NO(10) | 4) 98 + #define MT8365_PIN_10_GPIO10__FUNC_CONN_DSP_JMS (MTK_PIN_NO(10) | 5) 99 + #define MT8365_PIN_10_GPIO10__FUNC_DBG_MON_A10 (MTK_PIN_NO(10) | 7) 100 + 101 + #define MT8365_PIN_11_GPIO11__FUNC_GPIO11 (MTK_PIN_NO(11) | 0) 102 + #define MT8365_PIN_11_GPIO11__FUNC_DPI_D11 (MTK_PIN_NO(11) | 1) 103 + #define MT8365_PIN_11_GPIO11__FUNC_SPI_MO (MTK_PIN_NO(11) | 2) 104 + #define MT8365_PIN_11_GPIO11__FUNC_I2S0_DI (MTK_PIN_NO(11) | 3) 105 + #define MT8365_PIN_11_GPIO11__FUNC_EXT_RXD3 (MTK_PIN_NO(11) | 4) 106 + #define MT8365_PIN_11_GPIO11__FUNC_CONN_DSP_JDO (MTK_PIN_NO(11) | 5) 107 + #define MT8365_PIN_11_GPIO11__FUNC_DBG_MON_A11 (MTK_PIN_NO(11) | 7) 108 + 109 + #define MT8365_PIN_12_GPIO12__FUNC_GPIO12 (MTK_PIN_NO(12) | 0) 110 + #define MT8365_PIN_12_GPIO12__FUNC_DPI_DE (MTK_PIN_NO(12) | 1) 111 + #define MT8365_PIN_12_GPIO12__FUNC_UCTS1 (MTK_PIN_NO(12) | 2) 112 + #define MT8365_PIN_12_GPIO12__FUNC_I2S3_BCK (MTK_PIN_NO(12) | 3) 113 + #define MT8365_PIN_12_GPIO12__FUNC_EXT_TXEN (MTK_PIN_NO(12) | 4) 114 + #define MT8365_PIN_12_GPIO12__FUNC_O_WIFI_TXD (MTK_PIN_NO(12) | 5) 115 + #define MT8365_PIN_12_GPIO12__FUNC_DBG_MON_A12 (MTK_PIN_NO(12) | 7) 116 + 117 + #define MT8365_PIN_13_GPIO13__FUNC_GPIO13 (MTK_PIN_NO(13) | 0) 118 + #define MT8365_PIN_13_GPIO13__FUNC_DPI_VSYNC (MTK_PIN_NO(13) | 1) 119 + #define MT8365_PIN_13_GPIO13__FUNC_URTS1 (MTK_PIN_NO(13) | 2) 120 + #define MT8365_PIN_13_GPIO13__FUNC_I2S3_LRCK (MTK_PIN_NO(13) | 3) 121 + #define MT8365_PIN_13_GPIO13__FUNC_EXT_COL (MTK_PIN_NO(13) | 4) 122 + #define MT8365_PIN_13_GPIO13__FUNC_SPDIF_IN (MTK_PIN_NO(13) | 5) 123 + #define MT8365_PIN_13_GPIO13__FUNC_DBG_MON_A13 (MTK_PIN_NO(13) | 7) 124 + 125 + #define MT8365_PIN_14_GPIO14__FUNC_GPIO14 (MTK_PIN_NO(14) | 0) 126 + #define MT8365_PIN_14_GPIO14__FUNC_DPI_CK (MTK_PIN_NO(14) | 1) 127 + #define MT8365_PIN_14_GPIO14__FUNC_UCTS2 (MTK_PIN_NO(14) | 2) 128 + #define MT8365_PIN_14_GPIO14__FUNC_I2S3_MCK (MTK_PIN_NO(14) | 3) 129 + #define MT8365_PIN_14_GPIO14__FUNC_EXT_MDIO (MTK_PIN_NO(14) | 4) 130 + #define MT8365_PIN_14_GPIO14__FUNC_SPDIF_OUT (MTK_PIN_NO(14) | 5) 131 + #define MT8365_PIN_14_GPIO14__FUNC_DVFSRC_EXT_REQ (MTK_PIN_NO(14) | 6) 132 + #define MT8365_PIN_14_GPIO14__FUNC_DBG_MON_A14 (MTK_PIN_NO(14) | 7) 133 + 134 + #define MT8365_PIN_15_GPIO15__FUNC_GPIO15 (MTK_PIN_NO(15) | 0) 135 + #define MT8365_PIN_15_GPIO15__FUNC_DPI_HSYNC (MTK_PIN_NO(15) | 1) 136 + #define MT8365_PIN_15_GPIO15__FUNC_URTS2 (MTK_PIN_NO(15) | 2) 137 + #define MT8365_PIN_15_GPIO15__FUNC_I2S3_DO (MTK_PIN_NO(15) | 3) 138 + #define MT8365_PIN_15_GPIO15__FUNC_EXT_MDC (MTK_PIN_NO(15) | 4) 139 + #define MT8365_PIN_15_GPIO15__FUNC_IRRX (MTK_PIN_NO(15) | 5) 140 + #define MT8365_PIN_15_GPIO15__FUNC_EXT_FRAME_SYNC (MTK_PIN_NO(15) | 6) 141 + #define MT8365_PIN_15_GPIO15__FUNC_DBG_MON_A15 (MTK_PIN_NO(15) | 7) 142 + 143 + #define MT8365_PIN_16_GPIO16__FUNC_GPIO16 (MTK_PIN_NO(16) | 0) 144 + #define MT8365_PIN_16_GPIO16__FUNC_DPI_D12 (MTK_PIN_NO(16) | 1) 145 + #define MT8365_PIN_16_GPIO16__FUNC_USB_DRVVBUS (MTK_PIN_NO(16) | 2) 146 + #define MT8365_PIN_16_GPIO16__FUNC_PWM_A (MTK_PIN_NO(16) | 3) 147 + #define MT8365_PIN_16_GPIO16__FUNC_CLKM0 (MTK_PIN_NO(16) | 4) 148 + #define MT8365_PIN_16_GPIO16__FUNC_ANT_SEL0 (MTK_PIN_NO(16) | 5) 149 + #define MT8365_PIN_16_GPIO16__FUNC_TSF_IN (MTK_PIN_NO(16) | 6) 150 + #define MT8365_PIN_16_GPIO16__FUNC_DBG_MON_A16 (MTK_PIN_NO(16) | 7) 151 + 152 + #define MT8365_PIN_17_GPIO17__FUNC_GPIO17 (MTK_PIN_NO(17) | 0) 153 + #define MT8365_PIN_17_GPIO17__FUNC_DPI_D13 (MTK_PIN_NO(17) | 1) 154 + #define MT8365_PIN_17_GPIO17__FUNC_IDDIG (MTK_PIN_NO(17) | 2) 155 + #define MT8365_PIN_17_GPIO17__FUNC_PWM_B (MTK_PIN_NO(17) | 3) 156 + #define MT8365_PIN_17_GPIO17__FUNC_CLKM1 (MTK_PIN_NO(17) | 4) 157 + #define MT8365_PIN_17_GPIO17__FUNC_ANT_SEL1 (MTK_PIN_NO(17) | 5) 158 + #define MT8365_PIN_17_GPIO17__FUNC_DVFSRC_EXT_REQ (MTK_PIN_NO(17) | 6) 159 + #define MT8365_PIN_17_GPIO17__FUNC_DBG_MON_A17 (MTK_PIN_NO(17) | 7) 160 + 161 + #define MT8365_PIN_18_GPIO18__FUNC_GPIO18 (MTK_PIN_NO(18) | 0) 162 + #define MT8365_PIN_18_GPIO18__FUNC_DPI_D14 (MTK_PIN_NO(18) | 1) 163 + #define MT8365_PIN_18_GPIO18__FUNC_EXT_FRAME_SYNC (MTK_PIN_NO(18) | 2) 164 + #define MT8365_PIN_18_GPIO18__FUNC_PWM_C (MTK_PIN_NO(18) | 3) 165 + #define MT8365_PIN_18_GPIO18__FUNC_CLKM2 (MTK_PIN_NO(18) | 4) 166 + #define MT8365_PIN_18_GPIO18__FUNC_ANT_SEL2 (MTK_PIN_NO(18) | 5) 167 + #define MT8365_PIN_18_GPIO18__FUNC_MFG_TEST_CK (MTK_PIN_NO(18) | 6) 168 + #define MT8365_PIN_18_GPIO18__FUNC_DBG_MON_A18 (MTK_PIN_NO(18) | 7) 169 + 170 + #define MT8365_PIN_19_DISP_PWM__FUNC_GPIO19 (MTK_PIN_NO(19) | 0) 171 + #define MT8365_PIN_19_DISP_PWM__FUNC_DISP_PWM (MTK_PIN_NO(19) | 1) 172 + #define MT8365_PIN_19_DISP_PWM__FUNC_PWM_A (MTK_PIN_NO(19) | 2) 173 + #define MT8365_PIN_19_DISP_PWM__FUNC_DBG_MON_A19 (MTK_PIN_NO(19) | 7) 174 + 175 + #define MT8365_PIN_20_LCM_RST__FUNC_GPIO20 (MTK_PIN_NO(20) | 0) 176 + #define MT8365_PIN_20_LCM_RST__FUNC_LCM_RST (MTK_PIN_NO(20) | 1) 177 + #define MT8365_PIN_20_LCM_RST__FUNC_PWM_B (MTK_PIN_NO(20) | 2) 178 + #define MT8365_PIN_20_LCM_RST__FUNC_DBG_MON_A20 (MTK_PIN_NO(20) | 7) 179 + 180 + #define MT8365_PIN_21_DSI_TE__FUNC_GPIO21 (MTK_PIN_NO(21) | 0) 181 + #define MT8365_PIN_21_DSI_TE__FUNC_DSI_TE (MTK_PIN_NO(21) | 1) 182 + #define MT8365_PIN_21_DSI_TE__FUNC_PWM_C (MTK_PIN_NO(21) | 2) 183 + #define MT8365_PIN_21_DSI_TE__FUNC_ANT_SEL0 (MTK_PIN_NO(21) | 3) 184 + #define MT8365_PIN_21_DSI_TE__FUNC_DVFSRC_EXT_REQ (MTK_PIN_NO(21) | 4) 185 + #define MT8365_PIN_21_DSI_TE__FUNC_DBG_MON_A21 (MTK_PIN_NO(21) | 7) 186 + 187 + #define MT8365_PIN_22_KPROW0__FUNC_GPIO22 (MTK_PIN_NO(22) | 0) 188 + #define MT8365_PIN_22_KPROW0__FUNC_KPROW0 (MTK_PIN_NO(22) | 1) 189 + #define MT8365_PIN_22_KPROW0__FUNC_DBG_MON_A22 (MTK_PIN_NO(22) | 7) 190 + 191 + #define MT8365_PIN_23_KPROW1__FUNC_GPIO23 (MTK_PIN_NO(23) | 0) 192 + #define MT8365_PIN_23_KPROW1__FUNC_KPROW1 (MTK_PIN_NO(23) | 1) 193 + #define MT8365_PIN_23_KPROW1__FUNC_IDDIG (MTK_PIN_NO(23) | 2) 194 + #define MT8365_PIN_23_KPROW1__FUNC_WIFI_TXD (MTK_PIN_NO(23) | 3) 195 + #define MT8365_PIN_23_KPROW1__FUNC_CLKM3 (MTK_PIN_NO(23) | 4) 196 + #define MT8365_PIN_23_KPROW1__FUNC_ANT_SEL1 (MTK_PIN_NO(23) | 5) 197 + #define MT8365_PIN_23_KPROW1__FUNC_EXT_FRAME_SYNC (MTK_PIN_NO(23) | 6) 198 + #define MT8365_PIN_23_KPROW1__FUNC_DBG_MON_B0 (MTK_PIN_NO(23) | 7) 199 + 200 + #define MT8365_PIN_24_KPCOL0__FUNC_GPIO24 (MTK_PIN_NO(24) | 0) 201 + #define MT8365_PIN_24_KPCOL0__FUNC_KPCOL0 (MTK_PIN_NO(24) | 1) 202 + #define MT8365_PIN_24_KPCOL0__FUNC_DBG_MON_A23 (MTK_PIN_NO(24) | 7) 203 + 204 + #define MT8365_PIN_25_KPCOL1__FUNC_GPIO25 (MTK_PIN_NO(25) | 0) 205 + #define MT8365_PIN_25_KPCOL1__FUNC_KPCOL1 (MTK_PIN_NO(25) | 1) 206 + #define MT8365_PIN_25_KPCOL1__FUNC_USB_DRVVBUS (MTK_PIN_NO(25) | 2) 207 + #define MT8365_PIN_25_KPCOL1__FUNC_APU_JTAG_TRST (MTK_PIN_NO(25) | 3) 208 + #define MT8365_PIN_25_KPCOL1__FUNC_UDI_NTRST_XI (MTK_PIN_NO(25) | 4) 209 + #define MT8365_PIN_25_KPCOL1__FUNC_DFD_NTRST_XI (MTK_PIN_NO(25) | 5) 210 + #define MT8365_PIN_25_KPCOL1__FUNC_CONN_TEST_CK (MTK_PIN_NO(25) | 6) 211 + #define MT8365_PIN_25_KPCOL1__FUNC_DBG_MON_B1 (MTK_PIN_NO(25) | 7) 212 + 213 + #define MT8365_PIN_26_SPI_CS__FUNC_GPIO26 (MTK_PIN_NO(26) | 0) 214 + #define MT8365_PIN_26_SPI_CS__FUNC_SPI_CSB (MTK_PIN_NO(26) | 1) 215 + #define MT8365_PIN_26_SPI_CS__FUNC_APU_JTAG_TMS (MTK_PIN_NO(26) | 3) 216 + #define MT8365_PIN_26_SPI_CS__FUNC_UDI_TMS_XI (MTK_PIN_NO(26) | 4) 217 + #define MT8365_PIN_26_SPI_CS__FUNC_DFD_TMS_XI (MTK_PIN_NO(26) | 5) 218 + #define MT8365_PIN_26_SPI_CS__FUNC_CONN_TEST_CK (MTK_PIN_NO(26) | 6) 219 + #define MT8365_PIN_26_SPI_CS__FUNC_DBG_MON_A24 (MTK_PIN_NO(26) | 7) 220 + 221 + #define MT8365_PIN_27_SPI_CK__FUNC_GPIO27 (MTK_PIN_NO(27) | 0) 222 + #define MT8365_PIN_27_SPI_CK__FUNC_SPI_CLK (MTK_PIN_NO(27) | 1) 223 + #define MT8365_PIN_27_SPI_CK__FUNC_APU_JTAG_TCK (MTK_PIN_NO(27) | 3) 224 + #define MT8365_PIN_27_SPI_CK__FUNC_UDI_TCK_XI (MTK_PIN_NO(27) | 4) 225 + #define MT8365_PIN_27_SPI_CK__FUNC_DFD_TCK_XI (MTK_PIN_NO(27) | 5) 226 + #define MT8365_PIN_27_SPI_CK__FUNC_APU_TEST_CK (MTK_PIN_NO(27) | 6) 227 + #define MT8365_PIN_27_SPI_CK__FUNC_DBG_MON_A25 (MTK_PIN_NO(27) | 7) 228 + 229 + #define MT8365_PIN_28_SPI_MI__FUNC_GPIO28 (MTK_PIN_NO(28) | 0) 230 + #define MT8365_PIN_28_SPI_MI__FUNC_SPI_MI (MTK_PIN_NO(28) | 1) 231 + #define MT8365_PIN_28_SPI_MI__FUNC_SPI_MO (MTK_PIN_NO(28) | 2) 232 + #define MT8365_PIN_28_SPI_MI__FUNC_APU_JTAG_TDI (MTK_PIN_NO(28) | 3) 233 + #define MT8365_PIN_28_SPI_MI__FUNC_UDI_TDI_XI (MTK_PIN_NO(28) | 4) 234 + #define MT8365_PIN_28_SPI_MI__FUNC_DFD_TDI_XI (MTK_PIN_NO(28) | 5) 235 + #define MT8365_PIN_28_SPI_MI__FUNC_DSP_TEST_CK (MTK_PIN_NO(28) | 6) 236 + #define MT8365_PIN_28_SPI_MI__FUNC_DBG_MON_A26 (MTK_PIN_NO(28) | 7) 237 + 238 + #define MT8365_PIN_29_SPI_MO__FUNC_GPIO29 (MTK_PIN_NO(29) | 0) 239 + #define MT8365_PIN_29_SPI_MO__FUNC_SPI_MO (MTK_PIN_NO(29) | 1) 240 + #define MT8365_PIN_29_SPI_MO__FUNC_SPI_MI (MTK_PIN_NO(29) | 2) 241 + #define MT8365_PIN_29_SPI_MO__FUNC_APU_JTAG_TDO (MTK_PIN_NO(29) | 3) 242 + #define MT8365_PIN_29_SPI_MO__FUNC_UDI_TDO (MTK_PIN_NO(29) | 4) 243 + #define MT8365_PIN_29_SPI_MO__FUNC_DFD_TDO (MTK_PIN_NO(29) | 5) 244 + #define MT8365_PIN_29_SPI_MO__FUNC_DVFSRC_EXT_REQ (MTK_PIN_NO(29) | 6) 245 + #define MT8365_PIN_29_SPI_MO__FUNC_DBG_MON_A27 (MTK_PIN_NO(29) | 7) 246 + 247 + #define MT8365_PIN_30_JTMS__FUNC_GPIO30 (MTK_PIN_NO(30) | 0) 248 + #define MT8365_PIN_30_JTMS__FUNC_JTMS (MTK_PIN_NO(30) | 1) 249 + #define MT8365_PIN_30_JTMS__FUNC_DFD_TMS_XI (MTK_PIN_NO(30) | 2) 250 + #define MT8365_PIN_30_JTMS__FUNC_UDI_TMS_XI (MTK_PIN_NO(30) | 3) 251 + #define MT8365_PIN_30_JTMS__FUNC_MCU_SPM_TMS (MTK_PIN_NO(30) | 4) 252 + #define MT8365_PIN_30_JTMS__FUNC_CONN_MCU_TMS (MTK_PIN_NO(30) | 5) 253 + #define MT8365_PIN_30_JTMS__FUNC_CONN_MCU_AICE_TMSC (MTK_PIN_NO(30) | 6) 254 + 255 + #define MT8365_PIN_31_JTCK__FUNC_GPIO31 (MTK_PIN_NO(31) | 0) 256 + #define MT8365_PIN_31_JTCK__FUNC_JTCK (MTK_PIN_NO(31) | 1) 257 + #define MT8365_PIN_31_JTCK__FUNC_DFD_TCK_XI (MTK_PIN_NO(31) | 2) 258 + #define MT8365_PIN_31_JTCK__FUNC_UDI_TCK_XI (MTK_PIN_NO(31) | 3) 259 + #define MT8365_PIN_31_JTCK__FUNC_MCU_SPM_TCK (MTK_PIN_NO(31) | 4) 260 + #define MT8365_PIN_31_JTCK__FUNC_CONN_MCU_TCK (MTK_PIN_NO(31) | 5) 261 + #define MT8365_PIN_31_JTCK__FUNC_CONN_MCU_AICE_TCKC (MTK_PIN_NO(31) | 6) 262 + 263 + #define MT8365_PIN_32_JTDI__FUNC_GPIO32 (MTK_PIN_NO(32) | 0) 264 + #define MT8365_PIN_32_JTDI__FUNC_JTDI (MTK_PIN_NO(32) | 1) 265 + #define MT8365_PIN_32_JTDI__FUNC_DFD_TDI_XI (MTK_PIN_NO(32) | 2) 266 + #define MT8365_PIN_32_JTDI__FUNC_UDI_TDI_XI (MTK_PIN_NO(32) | 3) 267 + #define MT8365_PIN_32_JTDI__FUNC_MCU_SPM_TDI (MTK_PIN_NO(32) | 4) 268 + #define MT8365_PIN_32_JTDI__FUNC_CONN_MCU_TDI (MTK_PIN_NO(32) | 5) 269 + 270 + #define MT8365_PIN_33_JTDO__FUNC_GPIO33 (MTK_PIN_NO(33) | 0) 271 + #define MT8365_PIN_33_JTDO__FUNC_JTDO (MTK_PIN_NO(33) | 1) 272 + #define MT8365_PIN_33_JTDO__FUNC_DFD_TDO (MTK_PIN_NO(33) | 2) 273 + #define MT8365_PIN_33_JTDO__FUNC_UDI_TDO (MTK_PIN_NO(33) | 3) 274 + #define MT8365_PIN_33_JTDO__FUNC_MCU_SPM_TDO (MTK_PIN_NO(33) | 4) 275 + #define MT8365_PIN_33_JTDO__FUNC_CONN_MCU_TDO (MTK_PIN_NO(33) | 5) 276 + 277 + #define MT8365_PIN_34_JTRST__FUNC_GPIO34 (MTK_PIN_NO(34) | 0) 278 + #define MT8365_PIN_34_JTRST__FUNC_JTRST (MTK_PIN_NO(34) | 1) 279 + #define MT8365_PIN_34_JTRST__FUNC_DFD_NTRST_XI (MTK_PIN_NO(34) | 2) 280 + #define MT8365_PIN_34_JTRST__FUNC_UDI_NTRST_XI (MTK_PIN_NO(34) | 3) 281 + #define MT8365_PIN_34_JTRST__FUNC_MCU_SPM_NTRST (MTK_PIN_NO(34) | 4) 282 + #define MT8365_PIN_34_JTRST__FUNC_CONN_MCU_TRST_B (MTK_PIN_NO(34) | 5) 283 + 284 + #define MT8365_PIN_35_URXD0__FUNC_GPIO35 (MTK_PIN_NO(35) | 0) 285 + #define MT8365_PIN_35_URXD0__FUNC_URXD0 (MTK_PIN_NO(35) | 1) 286 + #define MT8365_PIN_35_URXD0__FUNC_UTXD0 (MTK_PIN_NO(35) | 2) 287 + #define MT8365_PIN_35_URXD0__FUNC_DSP_URXD0 (MTK_PIN_NO(35) | 7) 288 + 289 + #define MT8365_PIN_36_UTXD0__FUNC_GPIO36 (MTK_PIN_NO(36) | 0) 290 + #define MT8365_PIN_36_UTXD0__FUNC_UTXD0 (MTK_PIN_NO(36) | 1) 291 + #define MT8365_PIN_36_UTXD0__FUNC_URXD0 (MTK_PIN_NO(36) | 2) 292 + #define MT8365_PIN_36_UTXD0__FUNC_DSP_UTXD0 (MTK_PIN_NO(36) | 7) 293 + 294 + #define MT8365_PIN_37_URXD1__FUNC_GPIO37 (MTK_PIN_NO(37) | 0) 295 + #define MT8365_PIN_37_URXD1__FUNC_URXD1 (MTK_PIN_NO(37) | 1) 296 + #define MT8365_PIN_37_URXD1__FUNC_UTXD1 (MTK_PIN_NO(37) | 2) 297 + #define MT8365_PIN_37_URXD1__FUNC_UCTS2 (MTK_PIN_NO(37) | 3) 298 + #define MT8365_PIN_37_URXD1__FUNC_DVFSRC_EXT_REQ (MTK_PIN_NO(37) | 4) 299 + #define MT8365_PIN_37_URXD1__FUNC_CONN_UART0_RXD (MTK_PIN_NO(37) | 5) 300 + #define MT8365_PIN_37_URXD1__FUNC_I2S0_MCK (MTK_PIN_NO(37) | 6) 301 + #define MT8365_PIN_37_URXD1__FUNC_DSP_URXD0 (MTK_PIN_NO(37) | 7) 302 + 303 + #define MT8365_PIN_38_UTXD1__FUNC_GPIO38 (MTK_PIN_NO(38) | 0) 304 + #define MT8365_PIN_38_UTXD1__FUNC_UTXD1 (MTK_PIN_NO(38) | 1) 305 + #define MT8365_PIN_38_UTXD1__FUNC_URXD1 (MTK_PIN_NO(38) | 2) 306 + #define MT8365_PIN_38_UTXD1__FUNC_URTS2 (MTK_PIN_NO(38) | 3) 307 + #define MT8365_PIN_38_UTXD1__FUNC_ANT_SEL2 (MTK_PIN_NO(38) | 4) 308 + #define MT8365_PIN_38_UTXD1__FUNC_CONN_UART0_TXD (MTK_PIN_NO(38) | 5) 309 + #define MT8365_PIN_38_UTXD1__FUNC_I2S1_MCK (MTK_PIN_NO(38) | 6) 310 + #define MT8365_PIN_38_UTXD1__FUNC_DSP_UTXD0 (MTK_PIN_NO(38) | 7) 311 + 312 + #define MT8365_PIN_39_URXD2__FUNC_GPIO39 (MTK_PIN_NO(39) | 0) 313 + #define MT8365_PIN_39_URXD2__FUNC_URXD2 (MTK_PIN_NO(39) | 1) 314 + #define MT8365_PIN_39_URXD2__FUNC_UTXD2 (MTK_PIN_NO(39) | 2) 315 + #define MT8365_PIN_39_URXD2__FUNC_UCTS1 (MTK_PIN_NO(39) | 3) 316 + #define MT8365_PIN_39_URXD2__FUNC_IDDIG (MTK_PIN_NO(39) | 4) 317 + #define MT8365_PIN_39_URXD2__FUNC_CONN_MCU_DBGACK_N (MTK_PIN_NO(39) | 5) 318 + #define MT8365_PIN_39_URXD2__FUNC_I2S2_MCK (MTK_PIN_NO(39) | 6) 319 + #define MT8365_PIN_39_URXD2__FUNC_DSP_URXD0 (MTK_PIN_NO(39) | 7) 320 + 321 + #define MT8365_PIN_40_UTXD2__FUNC_GPIO40 (MTK_PIN_NO(40) | 0) 322 + #define MT8365_PIN_40_UTXD2__FUNC_UTXD2 (MTK_PIN_NO(40) | 1) 323 + #define MT8365_PIN_40_UTXD2__FUNC_URXD2 (MTK_PIN_NO(40) | 2) 324 + #define MT8365_PIN_40_UTXD2__FUNC_URTS1 (MTK_PIN_NO(40) | 3) 325 + #define MT8365_PIN_40_UTXD2__FUNC_USB_DRVVBUS (MTK_PIN_NO(40) | 4) 326 + #define MT8365_PIN_40_UTXD2__FUNC_CONN_MCU_DBGI_N (MTK_PIN_NO(40) | 5) 327 + #define MT8365_PIN_40_UTXD2__FUNC_I2S3_MCK (MTK_PIN_NO(40) | 6) 328 + #define MT8365_PIN_40_UTXD2__FUNC_DSP_UTXD0 (MTK_PIN_NO(40) | 7) 329 + 330 + #define MT8365_PIN_41_PWRAP_SPI0_MI__FUNC_GPIO41 (MTK_PIN_NO(41) | 0) 331 + #define MT8365_PIN_41_PWRAP_SPI0_MI__FUNC_PWRAP_SPI0_MI (MTK_PIN_NO(41) | 1) 332 + #define MT8365_PIN_41_PWRAP_SPI0_MI__FUNC_PWRAP_SPI0_MO (MTK_PIN_NO(41) | 2) 333 + 334 + #define MT8365_PIN_42_PWRAP_SPI0_MO__FUNC_GPIO42 (MTK_PIN_NO(42) | 0) 335 + #define MT8365_PIN_42_PWRAP_SPI0_MO__FUNC_PWRAP_SPI0_MO (MTK_PIN_NO(42) | 1) 336 + #define MT8365_PIN_42_PWRAP_SPI0_MO__FUNC_PWRAP_SPI0_MI (MTK_PIN_NO(42) | 2) 337 + 338 + #define MT8365_PIN_43_PWRAP_SPI0_CK__FUNC_GPIO43 (MTK_PIN_NO(43) | 0) 339 + #define MT8365_PIN_43_PWRAP_SPI0_CK__FUNC_PWRAP_SPI0_CK (MTK_PIN_NO(43) | 1) 340 + 341 + #define MT8365_PIN_44_PWRAP_SPI0_CSN__FUNC_GPIO44 (MTK_PIN_NO(44) | 0) 342 + #define MT8365_PIN_44_PWRAP_SPI0_CSN__FUNC_PWRAP_SPI0_CSN (MTK_PIN_NO(44) | 1) 343 + 344 + #define MT8365_PIN_45_RTC32K_CK__FUNC_GPIO45 (MTK_PIN_NO(45) | 0) 345 + #define MT8365_PIN_45_RTC32K_CK__FUNC_RTC32K_CK (MTK_PIN_NO(45) | 1) 346 + 347 + #define MT8365_PIN_46_WATCHDOG__FUNC_GPIO46 (MTK_PIN_NO(46) | 0) 348 + #define MT8365_PIN_46_WATCHDOG__FUNC_WATCHDOG (MTK_PIN_NO(46) | 1) 349 + 350 + #define MT8365_PIN_47_SRCLKENA0__FUNC_GPIO47 (MTK_PIN_NO(47) | 0) 351 + #define MT8365_PIN_47_SRCLKENA0__FUNC_SRCLKENA0 (MTK_PIN_NO(47) | 1) 352 + #define MT8365_PIN_47_SRCLKENA0__FUNC_SRCLKENA1 (MTK_PIN_NO(47) | 2) 353 + 354 + #define MT8365_PIN_48_SRCLKENA1__FUNC_GPIO48 (MTK_PIN_NO(48) | 0) 355 + #define MT8365_PIN_48_SRCLKENA1__FUNC_SRCLKENA1 (MTK_PIN_NO(48) | 1) 356 + 357 + #define MT8365_PIN_49_AUD_CLK_MOSI__FUNC_GPIO49 (MTK_PIN_NO(49) | 0) 358 + #define MT8365_PIN_49_AUD_CLK_MOSI__FUNC_AUD_CLK_MOSI (MTK_PIN_NO(49) | 1) 359 + #define MT8365_PIN_49_AUD_CLK_MOSI__FUNC_AUD_CLK_MISO (MTK_PIN_NO(49) | 2) 360 + #define MT8365_PIN_49_AUD_CLK_MOSI__FUNC_I2S1_MCK (MTK_PIN_NO(49) | 3) 361 + 362 + #define MT8365_PIN_50_AUD_SYNC_MOSI__FUNC_GPIO50 (MTK_PIN_NO(50) | 0) 363 + #define MT8365_PIN_50_AUD_SYNC_MOSI__FUNC_AUD_SYNC_MOSI (MTK_PIN_NO(50) | 1) 364 + #define MT8365_PIN_50_AUD_SYNC_MOSI__FUNC_AUD_SYNC_MISO (MTK_PIN_NO(50) | 2) 365 + #define MT8365_PIN_50_AUD_SYNC_MOSI__FUNC_I2S1_BCK (MTK_PIN_NO(50) | 3) 366 + 367 + #define MT8365_PIN_51_AUD_DAT_MOSI0__FUNC_GPIO51 (MTK_PIN_NO(51) | 0) 368 + #define MT8365_PIN_51_AUD_DAT_MOSI0__FUNC_AUD_DAT_MOSI0 (MTK_PIN_NO(51) | 1) 369 + #define MT8365_PIN_51_AUD_DAT_MOSI0__FUNC_AUD_DAT_MISO0 (MTK_PIN_NO(51) | 2) 370 + #define MT8365_PIN_51_AUD_DAT_MOSI0__FUNC_I2S1_LRCK (MTK_PIN_NO(51) | 3) 371 + 372 + #define MT8365_PIN_52_AUD_DAT_MOSI1__FUNC_GPIO52 (MTK_PIN_NO(52) | 0) 373 + #define MT8365_PIN_52_AUD_DAT_MOSI1__FUNC_AUD_DAT_MOSI1 (MTK_PIN_NO(52) | 1) 374 + #define MT8365_PIN_52_AUD_DAT_MOSI1__FUNC_AUD_DAT_MISO1 (MTK_PIN_NO(52) | 2) 375 + #define MT8365_PIN_52_AUD_DAT_MOSI1__FUNC_I2S1_DO (MTK_PIN_NO(52) | 3) 376 + 377 + #define MT8365_PIN_53_AUD_CLK_MISO__FUNC_GPIO53 (MTK_PIN_NO(53) | 0) 378 + #define MT8365_PIN_53_AUD_CLK_MISO__FUNC_AUD_CLK_MISO (MTK_PIN_NO(53) | 1) 379 + #define MT8365_PIN_53_AUD_CLK_MISO__FUNC_AUD_CLK_MOSI (MTK_PIN_NO(53) | 2) 380 + #define MT8365_PIN_53_AUD_CLK_MISO__FUNC_I2S2_MCK (MTK_PIN_NO(53) | 3) 381 + 382 + #define MT8365_PIN_54_AUD_SYNC_MISO__FUNC_GPIO54 (MTK_PIN_NO(54) | 0) 383 + #define MT8365_PIN_54_AUD_SYNC_MISO__FUNC_AUD_SYNC_MISO (MTK_PIN_NO(54) | 1) 384 + #define MT8365_PIN_54_AUD_SYNC_MISO__FUNC_AUD_SYNC_MOSI (MTK_PIN_NO(54) | 2) 385 + #define MT8365_PIN_54_AUD_SYNC_MISO__FUNC_I2S2_BCK (MTK_PIN_NO(54) | 3) 386 + 387 + #define MT8365_PIN_55_AUD_DAT_MISO0__FUNC_GPIO55 (MTK_PIN_NO(55) | 0) 388 + #define MT8365_PIN_55_AUD_DAT_MISO0__FUNC_AUD_DAT_MISO0 (MTK_PIN_NO(55) | 1) 389 + #define MT8365_PIN_55_AUD_DAT_MISO0__FUNC_AUD_DAT_MOSI0 (MTK_PIN_NO(55) | 2) 390 + #define MT8365_PIN_55_AUD_DAT_MISO0__FUNC_I2S2_LRCK (MTK_PIN_NO(55) | 3) 391 + 392 + #define MT8365_PIN_56_AUD_DAT_MISO1__FUNC_GPIO56 (MTK_PIN_NO(56) | 0) 393 + #define MT8365_PIN_56_AUD_DAT_MISO1__FUNC_AUD_DAT_MISO1 (MTK_PIN_NO(56) | 1) 394 + #define MT8365_PIN_56_AUD_DAT_MISO1__FUNC_AUD_DAT_MOSI1 (MTK_PIN_NO(56) | 2) 395 + #define MT8365_PIN_56_AUD_DAT_MISO1__FUNC_I2S2_DI (MTK_PIN_NO(56) | 3) 396 + 397 + #define MT8365_PIN_57_SDA0__FUNC_GPIO57 (MTK_PIN_NO(57) | 0) 398 + #define MT8365_PIN_57_SDA0__FUNC_SDA0_0 (MTK_PIN_NO(57) | 1) 399 + 400 + #define MT8365_PIN_58_SCL0__FUNC_GPIO58 (MTK_PIN_NO(58) | 0) 401 + #define MT8365_PIN_58_SCL0__FUNC_SCL0_0 (MTK_PIN_NO(58) | 1) 402 + 403 + #define MT8365_PIN_59_SDA1__FUNC_GPIO59 (MTK_PIN_NO(59) | 0) 404 + #define MT8365_PIN_59_SDA1__FUNC_SDA1_0 (MTK_PIN_NO(59) | 1) 405 + #define MT8365_PIN_59_SDA1__FUNC_USB_SDA (MTK_PIN_NO(59) | 6) 406 + #define MT8365_PIN_59_SDA1__FUNC_DBG_SDA (MTK_PIN_NO(59) | 7) 407 + 408 + #define MT8365_PIN_60_SCL1__FUNC_GPIO60 (MTK_PIN_NO(60) | 0) 409 + #define MT8365_PIN_60_SCL1__FUNC_SCL1_0 (MTK_PIN_NO(60) | 1) 410 + #define MT8365_PIN_60_SCL1__FUNC_USB_SCL (MTK_PIN_NO(60) | 6) 411 + #define MT8365_PIN_60_SCL1__FUNC_DBG_SCL (MTK_PIN_NO(60) | 7) 412 + 413 + #define MT8365_PIN_61_SDA2__FUNC_GPIO61 (MTK_PIN_NO(61) | 0) 414 + #define MT8365_PIN_61_SDA2__FUNC_SDA2_0 (MTK_PIN_NO(61) | 1) 415 + 416 + #define MT8365_PIN_62_SCL2__FUNC_GPIO62 (MTK_PIN_NO(62) | 0) 417 + #define MT8365_PIN_62_SCL2__FUNC_SCL2_0 (MTK_PIN_NO(62) | 1) 418 + 419 + #define MT8365_PIN_63_SDA3__FUNC_GPIO63 (MTK_PIN_NO(63) | 0) 420 + #define MT8365_PIN_63_SDA3__FUNC_SDA3_0 (MTK_PIN_NO(63) | 1) 421 + 422 + #define MT8365_PIN_64_SCL3__FUNC_GPIO64 (MTK_PIN_NO(64) | 0) 423 + #define MT8365_PIN_64_SCL3__FUNC_SCL3_0 (MTK_PIN_NO(64) | 1) 424 + 425 + #define MT8365_PIN_65_CMMCLK0__FUNC_GPIO65 (MTK_PIN_NO(65) | 0) 426 + #define MT8365_PIN_65_CMMCLK0__FUNC_CMMCLK0 (MTK_PIN_NO(65) | 1) 427 + #define MT8365_PIN_65_CMMCLK0__FUNC_CMMCLK1 (MTK_PIN_NO(65) | 2) 428 + #define MT8365_PIN_65_CMMCLK0__FUNC_DBG_MON_A28 (MTK_PIN_NO(65) | 7) 429 + 430 + #define MT8365_PIN_66_CMMCLK1__FUNC_GPIO66 (MTK_PIN_NO(66) | 0) 431 + #define MT8365_PIN_66_CMMCLK1__FUNC_CMMCLK1 (MTK_PIN_NO(66) | 1) 432 + #define MT8365_PIN_66_CMMCLK1__FUNC_CMMCLK0 (MTK_PIN_NO(66) | 2) 433 + #define MT8365_PIN_66_CMMCLK1__FUNC_DBG_MON_B2 (MTK_PIN_NO(66) | 7) 434 + 435 + #define MT8365_PIN_67_CMPCLK__FUNC_GPIO67 (MTK_PIN_NO(67) | 0) 436 + #define MT8365_PIN_67_CMPCLK__FUNC_CMPCLK (MTK_PIN_NO(67) | 1) 437 + #define MT8365_PIN_67_CMPCLK__FUNC_ANT_SEL0 (MTK_PIN_NO(67) | 2) 438 + #define MT8365_PIN_67_CMPCLK__FUNC_TDM_RX_BCK (MTK_PIN_NO(67) | 4) 439 + #define MT8365_PIN_67_CMPCLK__FUNC_I2S0_BCK (MTK_PIN_NO(67) | 5) 440 + #define MT8365_PIN_67_CMPCLK__FUNC_DBG_MON_B3 (MTK_PIN_NO(67) | 7) 441 + 442 + #define MT8365_PIN_68_CMDAT0__FUNC_GPIO68 (MTK_PIN_NO(68) | 0) 443 + #define MT8365_PIN_68_CMDAT0__FUNC_CMDAT0 (MTK_PIN_NO(68) | 1) 444 + #define MT8365_PIN_68_CMDAT0__FUNC_ANT_SEL1 (MTK_PIN_NO(68) | 2) 445 + #define MT8365_PIN_68_CMDAT0__FUNC_TDM_RX_LRCK (MTK_PIN_NO(68) | 4) 446 + #define MT8365_PIN_68_CMDAT0__FUNC_I2S0_LRCK (MTK_PIN_NO(68) | 5) 447 + #define MT8365_PIN_68_CMDAT0__FUNC_DBG_MON_B4 (MTK_PIN_NO(68) | 7) 448 + 449 + #define MT8365_PIN_69_CMDAT1__FUNC_GPIO69 (MTK_PIN_NO(69) | 0) 450 + #define MT8365_PIN_69_CMDAT1__FUNC_CMDAT1 (MTK_PIN_NO(69) | 1) 451 + #define MT8365_PIN_69_CMDAT1__FUNC_ANT_SEL2 (MTK_PIN_NO(69) | 2) 452 + #define MT8365_PIN_69_CMDAT1__FUNC_DVFSRC_EXT_REQ (MTK_PIN_NO(69) | 3) 453 + #define MT8365_PIN_69_CMDAT1__FUNC_TDM_RX_MCK (MTK_PIN_NO(69) | 4) 454 + #define MT8365_PIN_69_CMDAT1__FUNC_I2S0_MCK (MTK_PIN_NO(69) | 5) 455 + #define MT8365_PIN_69_CMDAT1__FUNC_DBG_MON_B5 (MTK_PIN_NO(69) | 7) 456 + 457 + #define MT8365_PIN_70_CMDAT2__FUNC_GPIO70 (MTK_PIN_NO(70) | 0) 458 + #define MT8365_PIN_70_CMDAT2__FUNC_CMDAT2 (MTK_PIN_NO(70) | 1) 459 + #define MT8365_PIN_70_CMDAT2__FUNC_ANT_SEL3 (MTK_PIN_NO(70) | 2) 460 + #define MT8365_PIN_70_CMDAT2__FUNC_TDM_RX_DI (MTK_PIN_NO(70) | 4) 461 + #define MT8365_PIN_70_CMDAT2__FUNC_I2S0_DI (MTK_PIN_NO(70) | 5) 462 + #define MT8365_PIN_70_CMDAT2__FUNC_DBG_MON_B6 (MTK_PIN_NO(70) | 7) 463 + 464 + #define MT8365_PIN_71_CMDAT3__FUNC_GPIO71 (MTK_PIN_NO(71) | 0) 465 + #define MT8365_PIN_71_CMDAT3__FUNC_CMDAT3 (MTK_PIN_NO(71) | 1) 466 + #define MT8365_PIN_71_CMDAT3__FUNC_ANT_SEL4 (MTK_PIN_NO(71) | 2) 467 + #define MT8365_PIN_71_CMDAT3__FUNC_DBG_MON_B7 (MTK_PIN_NO(71) | 7) 468 + 469 + #define MT8365_PIN_72_CMDAT4__FUNC_GPIO72 (MTK_PIN_NO(72) | 0) 470 + #define MT8365_PIN_72_CMDAT4__FUNC_CMDAT4 (MTK_PIN_NO(72) | 1) 471 + #define MT8365_PIN_72_CMDAT4__FUNC_ANT_SEL5 (MTK_PIN_NO(72) | 2) 472 + #define MT8365_PIN_72_CMDAT4__FUNC_I2S3_BCK (MTK_PIN_NO(72) | 5) 473 + #define MT8365_PIN_72_CMDAT4__FUNC_DBG_MON_B8 (MTK_PIN_NO(72) | 7) 474 + 475 + #define MT8365_PIN_73_CMDAT5__FUNC_GPIO73 (MTK_PIN_NO(73) | 0) 476 + #define MT8365_PIN_73_CMDAT5__FUNC_CMDAT5 (MTK_PIN_NO(73) | 1) 477 + #define MT8365_PIN_73_CMDAT5__FUNC_ANT_SEL6 (MTK_PIN_NO(73) | 2) 478 + #define MT8365_PIN_73_CMDAT5__FUNC_I2S3_LRCK (MTK_PIN_NO(73) | 5) 479 + #define MT8365_PIN_73_CMDAT5__FUNC_DBG_MON_B9 (MTK_PIN_NO(73) | 7) 480 + 481 + #define MT8365_PIN_74_CMDAT6__FUNC_GPIO74 (MTK_PIN_NO(74) | 0) 482 + #define MT8365_PIN_74_CMDAT6__FUNC_CMDAT6 (MTK_PIN_NO(74) | 1) 483 + #define MT8365_PIN_74_CMDAT6__FUNC_ANT_SEL7 (MTK_PIN_NO(74) | 2) 484 + #define MT8365_PIN_74_CMDAT6__FUNC_I2S3_MCK (MTK_PIN_NO(74) | 5) 485 + #define MT8365_PIN_74_CMDAT6__FUNC_DBG_MON_B10 (MTK_PIN_NO(74) | 7) 486 + 487 + #define MT8365_PIN_75_CMDAT7__FUNC_GPIO75 (MTK_PIN_NO(75) | 0) 488 + #define MT8365_PIN_75_CMDAT7__FUNC_CMDAT7 (MTK_PIN_NO(75) | 1) 489 + #define MT8365_PIN_75_CMDAT7__FUNC_I2S3_DO (MTK_PIN_NO(75) | 5) 490 + #define MT8365_PIN_75_CMDAT7__FUNC_DBG_MON_B11 (MTK_PIN_NO(75) | 7) 491 + 492 + #define MT8365_PIN_76_CMDAT8__FUNC_GPIO76 (MTK_PIN_NO(76) | 0) 493 + #define MT8365_PIN_76_CMDAT8__FUNC_CMDAT8 (MTK_PIN_NO(76) | 1) 494 + #define MT8365_PIN_76_CMDAT8__FUNC_PCM_CLK (MTK_PIN_NO(76) | 5) 495 + #define MT8365_PIN_76_CMDAT8__FUNC_DBG_MON_A29 (MTK_PIN_NO(76) | 7) 496 + 497 + #define MT8365_PIN_77_CMDAT9__FUNC_GPIO77 (MTK_PIN_NO(77) | 0) 498 + #define MT8365_PIN_77_CMDAT9__FUNC_CMDAT9 (MTK_PIN_NO(77) | 1) 499 + #define MT8365_PIN_77_CMDAT9__FUNC_PCM_SYNC (MTK_PIN_NO(77) | 5) 500 + #define MT8365_PIN_77_CMDAT9__FUNC_DBG_MON_A30 (MTK_PIN_NO(77) | 7) 501 + 502 + #define MT8365_PIN_78_CMHSYNC__FUNC_GPIO78 (MTK_PIN_NO(78) | 0) 503 + #define MT8365_PIN_78_CMHSYNC__FUNC_CMHSYNC (MTK_PIN_NO(78) | 1) 504 + #define MT8365_PIN_78_CMHSYNC__FUNC_PCM_RX (MTK_PIN_NO(78) | 5) 505 + #define MT8365_PIN_78_CMHSYNC__FUNC_DBG_MON_A31 (MTK_PIN_NO(78) | 7) 506 + 507 + #define MT8365_PIN_79_CMVSYNC__FUNC_GPIO79 (MTK_PIN_NO(79) | 0) 508 + #define MT8365_PIN_79_CMVSYNC__FUNC_CMVSYNC (MTK_PIN_NO(79) | 1) 509 + #define MT8365_PIN_79_CMVSYNC__FUNC_PCM_TX (MTK_PIN_NO(79) | 5) 510 + #define MT8365_PIN_79_CMVSYNC__FUNC_DBG_MON_A32 (MTK_PIN_NO(79) | 7) 511 + 512 + #define MT8365_PIN_80_MSDC2_CMD__FUNC_GPIO80 (MTK_PIN_NO(80) | 0) 513 + #define MT8365_PIN_80_MSDC2_CMD__FUNC_MSDC2_CMD (MTK_PIN_NO(80) | 1) 514 + #define MT8365_PIN_80_MSDC2_CMD__FUNC_TDM_TX_LRCK (MTK_PIN_NO(80) | 2) 515 + #define MT8365_PIN_80_MSDC2_CMD__FUNC_UTXD1 (MTK_PIN_NO(80) | 3) 516 + #define MT8365_PIN_80_MSDC2_CMD__FUNC_DPI_D19 (MTK_PIN_NO(80) | 4) 517 + #define MT8365_PIN_80_MSDC2_CMD__FUNC_UDI_TMS_XI (MTK_PIN_NO(80) | 5) 518 + #define MT8365_PIN_80_MSDC2_CMD__FUNC_ADSP_JTAG_TMS (MTK_PIN_NO(80) | 6) 519 + 520 + #define MT8365_PIN_81_MSDC2_CLK__FUNC_GPIO81 (MTK_PIN_NO(81) | 0) 521 + #define MT8365_PIN_81_MSDC2_CLK__FUNC_MSDC2_CLK (MTK_PIN_NO(81) | 1) 522 + #define MT8365_PIN_81_MSDC2_CLK__FUNC_TDM_TX_BCK (MTK_PIN_NO(81) | 2) 523 + #define MT8365_PIN_81_MSDC2_CLK__FUNC_URXD1 (MTK_PIN_NO(81) | 3) 524 + #define MT8365_PIN_81_MSDC2_CLK__FUNC_DPI_D20 (MTK_PIN_NO(81) | 4) 525 + #define MT8365_PIN_81_MSDC2_CLK__FUNC_UDI_TCK_XI (MTK_PIN_NO(81) | 5) 526 + #define MT8365_PIN_81_MSDC2_CLK__FUNC_ADSP_JTAG_TCK (MTK_PIN_NO(81) | 6) 527 + 528 + #define MT8365_PIN_82_MSDC2_DAT0__FUNC_GPIO82 (MTK_PIN_NO(82) | 0) 529 + #define MT8365_PIN_82_MSDC2_DAT0__FUNC_MSDC2_DAT0 (MTK_PIN_NO(82) | 1) 530 + #define MT8365_PIN_82_MSDC2_DAT0__FUNC_TDM_TX_DATA0 (MTK_PIN_NO(82) | 2) 531 + #define MT8365_PIN_82_MSDC2_DAT0__FUNC_UTXD2 (MTK_PIN_NO(82) | 3) 532 + #define MT8365_PIN_82_MSDC2_DAT0__FUNC_DPI_D21 (MTK_PIN_NO(82) | 4) 533 + #define MT8365_PIN_82_MSDC2_DAT0__FUNC_UDI_TDI_XI (MTK_PIN_NO(82) | 5) 534 + #define MT8365_PIN_82_MSDC2_DAT0__FUNC_ADSP_JTAG_TDI (MTK_PIN_NO(82) | 6) 535 + 536 + #define MT8365_PIN_83_MSDC2_DAT1__FUNC_GPIO83 (MTK_PIN_NO(83) | 0) 537 + #define MT8365_PIN_83_MSDC2_DAT1__FUNC_MSDC2_DAT1 (MTK_PIN_NO(83) | 1) 538 + #define MT8365_PIN_83_MSDC2_DAT1__FUNC_TDM_TX_DATA1 (MTK_PIN_NO(83) | 2) 539 + #define MT8365_PIN_83_MSDC2_DAT1__FUNC_URXD2 (MTK_PIN_NO(83) | 3) 540 + #define MT8365_PIN_83_MSDC2_DAT1__FUNC_DPI_D22 (MTK_PIN_NO(83) | 4) 541 + #define MT8365_PIN_83_MSDC2_DAT1__FUNC_UDI_TDO (MTK_PIN_NO(83) | 5) 542 + #define MT8365_PIN_83_MSDC2_DAT1__FUNC_ADSP_JTAG_TDO (MTK_PIN_NO(83) | 6) 543 + 544 + #define MT8365_PIN_84_MSDC2_DAT2__FUNC_GPIO84 (MTK_PIN_NO(84) | 0) 545 + #define MT8365_PIN_84_MSDC2_DAT2__FUNC_MSDC2_DAT2 (MTK_PIN_NO(84) | 1) 546 + #define MT8365_PIN_84_MSDC2_DAT2__FUNC_TDM_TX_DATA2 (MTK_PIN_NO(84) | 2) 547 + #define MT8365_PIN_84_MSDC2_DAT2__FUNC_PWM_A (MTK_PIN_NO(84) | 3) 548 + #define MT8365_PIN_84_MSDC2_DAT2__FUNC_DPI_D23 (MTK_PIN_NO(84) | 4) 549 + #define MT8365_PIN_84_MSDC2_DAT2__FUNC_UDI_NTRST_XI (MTK_PIN_NO(84) | 5) 550 + #define MT8365_PIN_84_MSDC2_DAT2__FUNC_ADSP_JTAG_TRST (MTK_PIN_NO(84) | 6) 551 + 552 + #define MT8365_PIN_85_MSDC2_DAT3__FUNC_GPIO85 (MTK_PIN_NO(85) | 0) 553 + #define MT8365_PIN_85_MSDC2_DAT3__FUNC_MSDC2_DAT3 (MTK_PIN_NO(85) | 1) 554 + #define MT8365_PIN_85_MSDC2_DAT3__FUNC_TDM_TX_DATA3 (MTK_PIN_NO(85) | 2) 555 + #define MT8365_PIN_85_MSDC2_DAT3__FUNC_PWM_B (MTK_PIN_NO(85) | 3) 556 + #define MT8365_PIN_85_MSDC2_DAT3__FUNC_EXT_FRAME_SYNC (MTK_PIN_NO(85) | 5) 557 + 558 + #define MT8365_PIN_86_MSDC2_DSL__FUNC_GPIO86 (MTK_PIN_NO(86) | 0) 559 + #define MT8365_PIN_86_MSDC2_DSL__FUNC_MSDC2_DSL (MTK_PIN_NO(86) | 1) 560 + #define MT8365_PIN_86_MSDC2_DSL__FUNC_TDM_TX_MCK (MTK_PIN_NO(86) | 2) 561 + #define MT8365_PIN_86_MSDC2_DSL__FUNC_PWM_C (MTK_PIN_NO(86) | 3) 562 + 563 + #define MT8365_PIN_87_MSDC1_CMD__FUNC_GPIO87 (MTK_PIN_NO(87) | 0) 564 + #define MT8365_PIN_87_MSDC1_CMD__FUNC_MSDC1_CMD (MTK_PIN_NO(87) | 1) 565 + #define MT8365_PIN_87_MSDC1_CMD__FUNC_CONN_MCU_AICE_TMSC (MTK_PIN_NO(87) | 2) 566 + #define MT8365_PIN_87_MSDC1_CMD__FUNC_DFD_TMS_XI (MTK_PIN_NO(87) | 3) 567 + #define MT8365_PIN_87_MSDC1_CMD__FUNC_APU_JTAG_TMS (MTK_PIN_NO(87) | 4) 568 + #define MT8365_PIN_87_MSDC1_CMD__FUNC_MCU_SPM_TMS (MTK_PIN_NO(87) | 5) 569 + #define MT8365_PIN_87_MSDC1_CMD__FUNC_CONN_DSP_JMS (MTK_PIN_NO(87) | 6) 570 + #define MT8365_PIN_87_MSDC1_CMD__FUNC_ADSP_JTAG_TMS (MTK_PIN_NO(87) | 7) 571 + 572 + #define MT8365_PIN_88_MSDC1_CLK__FUNC_GPIO88 (MTK_PIN_NO(88) | 0) 573 + #define MT8365_PIN_88_MSDC1_CLK__FUNC_MSDC1_CLK (MTK_PIN_NO(88) | 1) 574 + #define MT8365_PIN_88_MSDC1_CLK__FUNC_CONN_MCU_AICE_TCKC (MTK_PIN_NO(88) | 2) 575 + #define MT8365_PIN_88_MSDC1_CLK__FUNC_DFD_TCK_XI (MTK_PIN_NO(88) | 3) 576 + #define MT8365_PIN_88_MSDC1_CLK__FUNC_APU_JTAG_TCK (MTK_PIN_NO(88) | 4) 577 + #define MT8365_PIN_88_MSDC1_CLK__FUNC_MCU_SPM_TCK (MTK_PIN_NO(88) | 5) 578 + #define MT8365_PIN_88_MSDC1_CLK__FUNC_CONN_DSP_JCK (MTK_PIN_NO(88) | 6) 579 + #define MT8365_PIN_88_MSDC1_CLK__FUNC_ADSP_JTAG_TCK (MTK_PIN_NO(88) | 7) 580 + 581 + #define MT8365_PIN_89_MSDC1_DAT0__FUNC_GPIO89 (MTK_PIN_NO(89) | 0) 582 + #define MT8365_PIN_89_MSDC1_DAT0__FUNC_MSDC1_DAT0 (MTK_PIN_NO(89) | 1) 583 + #define MT8365_PIN_89_MSDC1_DAT0__FUNC_PWM_C (MTK_PIN_NO(89) | 2) 584 + #define MT8365_PIN_89_MSDC1_DAT0__FUNC_DFD_TDI_XI (MTK_PIN_NO(89) | 3) 585 + #define MT8365_PIN_89_MSDC1_DAT0__FUNC_APU_JTAG_TDI (MTK_PIN_NO(89) | 4) 586 + #define MT8365_PIN_89_MSDC1_DAT0__FUNC_MCU_SPM_TDI (MTK_PIN_NO(89) | 5) 587 + #define MT8365_PIN_89_MSDC1_DAT0__FUNC_CONN_DSP_JDI (MTK_PIN_NO(89) | 6) 588 + #define MT8365_PIN_89_MSDC1_DAT0__FUNC_ADSP_JTAG_TDI (MTK_PIN_NO(89) | 7) 589 + 590 + #define MT8365_PIN_90_MSDC1_DAT1__FUNC_GPIO90 (MTK_PIN_NO(90) | 0) 591 + #define MT8365_PIN_90_MSDC1_DAT1__FUNC_MSDC1_DAT1 (MTK_PIN_NO(90) | 1) 592 + #define MT8365_PIN_90_MSDC1_DAT1__FUNC_SPDIF_IN (MTK_PIN_NO(90) | 2) 593 + #define MT8365_PIN_90_MSDC1_DAT1__FUNC_DFD_TDO (MTK_PIN_NO(90) | 3) 594 + #define MT8365_PIN_90_MSDC1_DAT1__FUNC_APU_JTAG_TDO (MTK_PIN_NO(90) | 4) 595 + #define MT8365_PIN_90_MSDC1_DAT1__FUNC_MCU_SPM_TDO (MTK_PIN_NO(90) | 5) 596 + #define MT8365_PIN_90_MSDC1_DAT1__FUNC_CONN_DSP_JDO (MTK_PIN_NO(90) | 6) 597 + #define MT8365_PIN_90_MSDC1_DAT1__FUNC_ADSP_JTAG_TDO (MTK_PIN_NO(90) | 7) 598 + 599 + #define MT8365_PIN_91_MSDC1_DAT2__FUNC_GPIO91 (MTK_PIN_NO(91) | 0) 600 + #define MT8365_PIN_91_MSDC1_DAT2__FUNC_MSDC1_DAT2 (MTK_PIN_NO(91) | 1) 601 + #define MT8365_PIN_91_MSDC1_DAT2__FUNC_SPDIF_OUT (MTK_PIN_NO(91) | 2) 602 + #define MT8365_PIN_91_MSDC1_DAT2__FUNC_DFD_NTRST_XI (MTK_PIN_NO(91) | 3) 603 + #define MT8365_PIN_91_MSDC1_DAT2__FUNC_APU_JTAG_TRST (MTK_PIN_NO(91) | 4) 604 + #define MT8365_PIN_91_MSDC1_DAT2__FUNC_MCU_SPM_NTRST (MTK_PIN_NO(91) | 5) 605 + #define MT8365_PIN_91_MSDC1_DAT2__FUNC_CONN_DSP_JINTP (MTK_PIN_NO(91) | 6) 606 + #define MT8365_PIN_91_MSDC1_DAT2__FUNC_ADSP_JTAG_TRST (MTK_PIN_NO(91) | 7) 607 + 608 + #define MT8365_PIN_92_MSDC1_DAT3__FUNC_GPIO92 (MTK_PIN_NO(92) | 0) 609 + #define MT8365_PIN_92_MSDC1_DAT3__FUNC_MSDC1_DAT3 (MTK_PIN_NO(92) | 1) 610 + #define MT8365_PIN_92_MSDC1_DAT3__FUNC_IRRX (MTK_PIN_NO(92) | 2) 611 + #define MT8365_PIN_92_MSDC1_DAT3__FUNC_PWM_A (MTK_PIN_NO(92) | 3) 612 + 613 + #define MT8365_PIN_93_MSDC0_DAT7__FUNC_GPIO93 (MTK_PIN_NO(93) | 0) 614 + #define MT8365_PIN_93_MSDC0_DAT7__FUNC_MSDC0_DAT7 (MTK_PIN_NO(93) | 1) 615 + #define MT8365_PIN_93_MSDC0_DAT7__FUNC_NLD7 (MTK_PIN_NO(93) | 2) 616 + 617 + #define MT8365_PIN_94_MSDC0_DAT6__FUNC_GPIO94 (MTK_PIN_NO(94) | 0) 618 + #define MT8365_PIN_94_MSDC0_DAT6__FUNC_MSDC0_DAT6 (MTK_PIN_NO(94) | 1) 619 + #define MT8365_PIN_94_MSDC0_DAT6__FUNC_NLD6 (MTK_PIN_NO(94) | 2) 620 + 621 + #define MT8365_PIN_95_MSDC0_DAT5__FUNC_GPIO95 (MTK_PIN_NO(95) | 0) 622 + #define MT8365_PIN_95_MSDC0_DAT5__FUNC_MSDC0_DAT5 (MTK_PIN_NO(95) | 1) 623 + #define MT8365_PIN_95_MSDC0_DAT5__FUNC_NLD4 (MTK_PIN_NO(95) | 2) 624 + 625 + #define MT8365_PIN_96_MSDC0_DAT4__FUNC_GPIO96 (MTK_PIN_NO(96) | 0) 626 + #define MT8365_PIN_96_MSDC0_DAT4__FUNC_MSDC0_DAT4 (MTK_PIN_NO(96) | 1) 627 + #define MT8365_PIN_96_MSDC0_DAT4__FUNC_NLD3 (MTK_PIN_NO(96) | 2) 628 + 629 + #define MT8365_PIN_97_MSDC0_RSTB__FUNC_GPIO97 (MTK_PIN_NO(97) | 0) 630 + #define MT8365_PIN_97_MSDC0_RSTB__FUNC_MSDC0_RSTB (MTK_PIN_NO(97) | 1) 631 + #define MT8365_PIN_97_MSDC0_RSTB__FUNC_NLD0 (MTK_PIN_NO(97) | 2) 632 + 633 + #define MT8365_PIN_98_MSDC0_CMD__FUNC_GPIO98 (MTK_PIN_NO(98) | 0) 634 + #define MT8365_PIN_98_MSDC0_CMD__FUNC_MSDC0_CMD (MTK_PIN_NO(98) | 1) 635 + #define MT8365_PIN_98_MSDC0_CMD__FUNC_NALE (MTK_PIN_NO(98) | 2) 636 + 637 + #define MT8365_PIN_99_MSDC0_CLK__FUNC_GPIO99 (MTK_PIN_NO(99) | 0) 638 + #define MT8365_PIN_99_MSDC0_CLK__FUNC_MSDC0_CLK (MTK_PIN_NO(99) | 1) 639 + #define MT8365_PIN_99_MSDC0_CLK__FUNC_NWEB (MTK_PIN_NO(99) | 2) 640 + 641 + #define MT8365_PIN_100_MSDC0_DAT3__FUNC_GPIO100 (MTK_PIN_NO(100) | 0) 642 + #define MT8365_PIN_100_MSDC0_DAT3__FUNC_MSDC0_DAT3 (MTK_PIN_NO(100) | 1) 643 + #define MT8365_PIN_100_MSDC0_DAT3__FUNC_NLD1 (MTK_PIN_NO(100) | 2) 644 + 645 + #define MT8365_PIN_101_MSDC0_DAT2__FUNC_GPIO101 (MTK_PIN_NO(101) | 0) 646 + #define MT8365_PIN_101_MSDC0_DAT2__FUNC_MSDC0_DAT2 (MTK_PIN_NO(101) | 1) 647 + #define MT8365_PIN_101_MSDC0_DAT2__FUNC_NLD5 (MTK_PIN_NO(101) | 2) 648 + 649 + #define MT8365_PIN_102_MSDC0_DAT1__FUNC_GPIO102 (MTK_PIN_NO(102) | 0) 650 + #define MT8365_PIN_102_MSDC0_DAT1__FUNC_MSDC0_DAT1 (MTK_PIN_NO(102) | 1) 651 + #define MT8365_PIN_102_MSDC0_DAT1__FUNC_NDQS (MTK_PIN_NO(102) | 2) 652 + 653 + #define MT8365_PIN_103_MSDC0_DAT0__FUNC_GPIO103 (MTK_PIN_NO(103) | 0) 654 + #define MT8365_PIN_103_MSDC0_DAT0__FUNC_MSDC0_DAT0 (MTK_PIN_NO(103) | 1) 655 + #define MT8365_PIN_103_MSDC0_DAT0__FUNC_NLD2 (MTK_PIN_NO(103) | 2) 656 + 657 + #define MT8365_PIN_104_MSDC0_DSL__FUNC_GPIO104 (MTK_PIN_NO(104) | 0) 658 + #define MT8365_PIN_104_MSDC0_DSL__FUNC_MSDC0_DSL (MTK_PIN_NO(104) | 1) 659 + 660 + #define MT8365_PIN_105_NCLE__FUNC_GPIO105 (MTK_PIN_NO(105) | 0) 661 + #define MT8365_PIN_105_NCLE__FUNC_NCLE (MTK_PIN_NO(105) | 1) 662 + #define MT8365_PIN_105_NCLE__FUNC_TDM_RX_MCK (MTK_PIN_NO(105) | 2) 663 + #define MT8365_PIN_105_NCLE__FUNC_DBG_MON_B12 (MTK_PIN_NO(105) | 7) 664 + 665 + #define MT8365_PIN_106_NCEB1__FUNC_GPIO106 (MTK_PIN_NO(106) | 0) 666 + #define MT8365_PIN_106_NCEB1__FUNC_NCEB1 (MTK_PIN_NO(106) | 1) 667 + #define MT8365_PIN_106_NCEB1__FUNC_TDM_RX_BCK (MTK_PIN_NO(106) | 2) 668 + #define MT8365_PIN_106_NCEB1__FUNC_DBG_MON_B13 (MTK_PIN_NO(106) | 7) 669 + 670 + #define MT8365_PIN_107_NCEB0__FUNC_GPIO107 (MTK_PIN_NO(107) | 0) 671 + #define MT8365_PIN_107_NCEB0__FUNC_NCEB0 (MTK_PIN_NO(107) | 1) 672 + #define MT8365_PIN_107_NCEB0__FUNC_TDM_RX_LRCK (MTK_PIN_NO(107) | 2) 673 + #define MT8365_PIN_107_NCEB0__FUNC_DBG_MON_B14 (MTK_PIN_NO(107) | 7) 674 + 675 + #define MT8365_PIN_108_NREB__FUNC_GPIO108 (MTK_PIN_NO(108) | 0) 676 + #define MT8365_PIN_108_NREB__FUNC_NREB (MTK_PIN_NO(108) | 1) 677 + #define MT8365_PIN_108_NREB__FUNC_TDM_RX_DI (MTK_PIN_NO(108) | 2) 678 + #define MT8365_PIN_108_NREB__FUNC_DBG_MON_B15 (MTK_PIN_NO(108) | 7) 679 + 680 + #define MT8365_PIN_109_NRNB__FUNC_GPIO109 (MTK_PIN_NO(109) | 0) 681 + #define MT8365_PIN_109_NRNB__FUNC_NRNB (MTK_PIN_NO(109) | 1) 682 + #define MT8365_PIN_109_NRNB__FUNC_TSF_IN (MTK_PIN_NO(109) | 2) 683 + #define MT8365_PIN_109_NRNB__FUNC_DBG_MON_B16 (MTK_PIN_NO(109) | 7) 684 + 685 + #define MT8365_PIN_110_PCM_CLK__FUNC_GPIO110 (MTK_PIN_NO(110) | 0) 686 + #define MT8365_PIN_110_PCM_CLK__FUNC_PCM_CLK (MTK_PIN_NO(110) | 1) 687 + #define MT8365_PIN_110_PCM_CLK__FUNC_I2S0_BCK (MTK_PIN_NO(110) | 2) 688 + #define MT8365_PIN_110_PCM_CLK__FUNC_I2S3_BCK (MTK_PIN_NO(110) | 3) 689 + #define MT8365_PIN_110_PCM_CLK__FUNC_SPDIF_IN (MTK_PIN_NO(110) | 4) 690 + #define MT8365_PIN_110_PCM_CLK__FUNC_DPI_D15 (MTK_PIN_NO(110) | 5) 691 + 692 + #define MT8365_PIN_111_PCM_SYNC__FUNC_GPIO111 (MTK_PIN_NO(111) | 0) 693 + #define MT8365_PIN_111_PCM_SYNC__FUNC_PCM_SYNC (MTK_PIN_NO(111) | 1) 694 + #define MT8365_PIN_111_PCM_SYNC__FUNC_I2S0_LRCK (MTK_PIN_NO(111) | 2) 695 + #define MT8365_PIN_111_PCM_SYNC__FUNC_I2S3_LRCK (MTK_PIN_NO(111) | 3) 696 + #define MT8365_PIN_111_PCM_SYNC__FUNC_SPDIF_OUT (MTK_PIN_NO(111) | 4) 697 + #define MT8365_PIN_111_PCM_SYNC__FUNC_DPI_D16 (MTK_PIN_NO(111) | 5) 698 + 699 + #define MT8365_PIN_112_PCM_RX__FUNC_GPIO112 (MTK_PIN_NO(112) | 0) 700 + #define MT8365_PIN_112_PCM_RX__FUNC_PCM_RX (MTK_PIN_NO(112) | 1) 701 + #define MT8365_PIN_112_PCM_RX__FUNC_I2S0_DI (MTK_PIN_NO(112) | 2) 702 + #define MT8365_PIN_112_PCM_RX__FUNC_I2S3_MCK (MTK_PIN_NO(112) | 3) 703 + #define MT8365_PIN_112_PCM_RX__FUNC_IRRX (MTK_PIN_NO(112) | 4) 704 + #define MT8365_PIN_112_PCM_RX__FUNC_DPI_D17 (MTK_PIN_NO(112) | 5) 705 + 706 + #define MT8365_PIN_113_PCM_TX__FUNC_GPIO113 (MTK_PIN_NO(113) | 0) 707 + #define MT8365_PIN_113_PCM_TX__FUNC_PCM_TX (MTK_PIN_NO(113) | 1) 708 + #define MT8365_PIN_113_PCM_TX__FUNC_I2S0_MCK (MTK_PIN_NO(113) | 2) 709 + #define MT8365_PIN_113_PCM_TX__FUNC_I2S3_DO (MTK_PIN_NO(113) | 3) 710 + #define MT8365_PIN_113_PCM_TX__FUNC_PWM_B (MTK_PIN_NO(113) | 4) 711 + #define MT8365_PIN_113_PCM_TX__FUNC_DPI_D18 (MTK_PIN_NO(113) | 5) 712 + 713 + #define MT8365_PIN_114_I2S_DATA_IN__FUNC_GPIO114 (MTK_PIN_NO(114) | 0) 714 + #define MT8365_PIN_114_I2S_DATA_IN__FUNC_I2S0_DI (MTK_PIN_NO(114) | 1) 715 + #define MT8365_PIN_114_I2S_DATA_IN__FUNC_I2S1_DO (MTK_PIN_NO(114) | 2) 716 + #define MT8365_PIN_114_I2S_DATA_IN__FUNC_I2S2_DI (MTK_PIN_NO(114) | 3) 717 + #define MT8365_PIN_114_I2S_DATA_IN__FUNC_I2S3_DO (MTK_PIN_NO(114) | 4) 718 + #define MT8365_PIN_114_I2S_DATA_IN__FUNC_PWM_A (MTK_PIN_NO(114) | 5) 719 + #define MT8365_PIN_114_I2S_DATA_IN__FUNC_SPDIF_IN (MTK_PIN_NO(114) | 6) 720 + #define MT8365_PIN_114_I2S_DATA_IN__FUNC_DBG_MON_B17 (MTK_PIN_NO(114) | 7) 721 + 722 + #define MT8365_PIN_115_I2S_LRCK__FUNC_GPIO115 (MTK_PIN_NO(115) | 0) 723 + #define MT8365_PIN_115_I2S_LRCK__FUNC_I2S0_LRCK (MTK_PIN_NO(115) | 1) 724 + #define MT8365_PIN_115_I2S_LRCK__FUNC_I2S1_LRCK (MTK_PIN_NO(115) | 2) 725 + #define MT8365_PIN_115_I2S_LRCK__FUNC_I2S2_LRCK (MTK_PIN_NO(115) | 3) 726 + #define MT8365_PIN_115_I2S_LRCK__FUNC_I2S3_LRCK (MTK_PIN_NO(115) | 4) 727 + #define MT8365_PIN_115_I2S_LRCK__FUNC_PWM_B (MTK_PIN_NO(115) | 5) 728 + #define MT8365_PIN_115_I2S_LRCK__FUNC_SPDIF_OUT (MTK_PIN_NO(115) | 6) 729 + #define MT8365_PIN_115_I2S_LRCK__FUNC_DBG_MON_B18 (MTK_PIN_NO(115) | 7) 730 + 731 + #define MT8365_PIN_116_I2S_BCK__FUNC_GPIO116 (MTK_PIN_NO(116) | 0) 732 + #define MT8365_PIN_116_I2S_BCK__FUNC_I2S0_BCK (MTK_PIN_NO(116) | 1) 733 + #define MT8365_PIN_116_I2S_BCK__FUNC_I2S1_BCK (MTK_PIN_NO(116) | 2) 734 + #define MT8365_PIN_116_I2S_BCK__FUNC_I2S2_BCK (MTK_PIN_NO(116) | 3) 735 + #define MT8365_PIN_116_I2S_BCK__FUNC_I2S3_BCK (MTK_PIN_NO(116) | 4) 736 + #define MT8365_PIN_116_I2S_BCK__FUNC_PWM_C (MTK_PIN_NO(116) | 5) 737 + #define MT8365_PIN_116_I2S_BCK__FUNC_IRRX (MTK_PIN_NO(116) | 6) 738 + #define MT8365_PIN_116_I2S_BCK__FUNC_DBG_MON_B19 (MTK_PIN_NO(116) | 7) 739 + 740 + #define MT8365_PIN_117_DMIC0_CLK__FUNC_GPIO117 (MTK_PIN_NO(117) | 0) 741 + #define MT8365_PIN_117_DMIC0_CLK__FUNC_DMIC0_CLK (MTK_PIN_NO(117) | 1) 742 + #define MT8365_PIN_117_DMIC0_CLK__FUNC_I2S2_BCK (MTK_PIN_NO(117) | 2) 743 + #define MT8365_PIN_117_DMIC0_CLK__FUNC_DBG_MON_B20 (MTK_PIN_NO(117) | 7) 744 + 745 + #define MT8365_PIN_118_DMIC0_DAT0__FUNC_GPIO118 (MTK_PIN_NO(118) | 0) 746 + #define MT8365_PIN_118_DMIC0_DAT0__FUNC_DMIC0_DAT0 (MTK_PIN_NO(118) | 1) 747 + #define MT8365_PIN_118_DMIC0_DAT0__FUNC_I2S2_DI (MTK_PIN_NO(118) | 2) 748 + #define MT8365_PIN_118_DMIC0_DAT0__FUNC_DBG_MON_B21 (MTK_PIN_NO(118) | 7) 749 + 750 + #define MT8365_PIN_119_DMIC0_DAT1__FUNC_GPIO119 (MTK_PIN_NO(119) | 0) 751 + #define MT8365_PIN_119_DMIC0_DAT1__FUNC_DMIC0_DAT1 (MTK_PIN_NO(119) | 1) 752 + #define MT8365_PIN_119_DMIC0_DAT1__FUNC_I2S2_LRCK (MTK_PIN_NO(119) | 2) 753 + #define MT8365_PIN_119_DMIC0_DAT1__FUNC_DBG_MON_B22 (MTK_PIN_NO(119) | 7) 754 + 755 + #define MT8365_PIN_120_DMIC1_CLK__FUNC_GPIO120 (MTK_PIN_NO(120) | 0) 756 + #define MT8365_PIN_120_DMIC1_CLK__FUNC_DMIC1_CLK (MTK_PIN_NO(120) | 1) 757 + #define MT8365_PIN_120_DMIC1_CLK__FUNC_I2S2_MCK (MTK_PIN_NO(120) | 2) 758 + #define MT8365_PIN_120_DMIC1_CLK__FUNC_DBG_MON_B23 (MTK_PIN_NO(120) | 7) 759 + 760 + #define MT8365_PIN_121_DMIC1_DAT0__FUNC_GPIO121 (MTK_PIN_NO(121) | 0) 761 + #define MT8365_PIN_121_DMIC1_DAT0__FUNC_DMIC1_DAT0 (MTK_PIN_NO(121) | 1) 762 + #define MT8365_PIN_121_DMIC1_DAT0__FUNC_I2S1_BCK (MTK_PIN_NO(121) | 2) 763 + #define MT8365_PIN_121_DMIC1_DAT0__FUNC_DBG_MON_B24 (MTK_PIN_NO(121) | 7) 764 + 765 + #define MT8365_PIN_122_DMIC1_DAT1__FUNC_GPIO122 (MTK_PIN_NO(122) | 0) 766 + #define MT8365_PIN_122_DMIC1_DAT1__FUNC_DMIC1_DAT1 (MTK_PIN_NO(122) | 1) 767 + #define MT8365_PIN_122_DMIC1_DAT1__FUNC_I2S1_LRCK (MTK_PIN_NO(122) | 2) 768 + #define MT8365_PIN_122_DMIC1_DAT1__FUNC_DBG_MON_B25 (MTK_PIN_NO(122) | 7) 769 + 770 + #define MT8365_PIN_123_DMIC2_CLK__FUNC_GPIO123 (MTK_PIN_NO(123) | 0) 771 + #define MT8365_PIN_123_DMIC2_CLK__FUNC_DMIC2_CLK (MTK_PIN_NO(123) | 1) 772 + #define MT8365_PIN_123_DMIC2_CLK__FUNC_I2S1_MCK (MTK_PIN_NO(123) | 2) 773 + #define MT8365_PIN_123_DMIC2_CLK__FUNC_DBG_MON_B26 (MTK_PIN_NO(123) | 7) 774 + 775 + #define MT8365_PIN_124_DMIC2_DAT0__FUNC_GPIO124 (MTK_PIN_NO(124) | 0) 776 + #define MT8365_PIN_124_DMIC2_DAT0__FUNC_DMIC2_DAT0 (MTK_PIN_NO(124) | 1) 777 + #define MT8365_PIN_124_DMIC2_DAT0__FUNC_I2S1_DO (MTK_PIN_NO(124) | 2) 778 + #define MT8365_PIN_124_DMIC2_DAT0__FUNC_DBG_MON_B27 (MTK_PIN_NO(124) | 7) 779 + 780 + #define MT8365_PIN_125_DMIC2_DAT1__FUNC_GPIO125 (MTK_PIN_NO(125) | 0) 781 + #define MT8365_PIN_125_DMIC2_DAT1__FUNC_DMIC2_DAT1 (MTK_PIN_NO(125) | 1) 782 + #define MT8365_PIN_125_DMIC2_DAT1__FUNC_TDM_RX_BCK (MTK_PIN_NO(125) | 2) 783 + #define MT8365_PIN_125_DMIC2_DAT1__FUNC_DBG_MON_B28 (MTK_PIN_NO(125) | 7) 784 + 785 + #define MT8365_PIN_126_DMIC3_CLK__FUNC_GPIO126 (MTK_PIN_NO(126) | 0) 786 + #define MT8365_PIN_126_DMIC3_CLK__FUNC_DMIC3_CLK (MTK_PIN_NO(126) | 1) 787 + #define MT8365_PIN_126_DMIC3_CLK__FUNC_TDM_RX_LRCK (MTK_PIN_NO(126) | 2) 788 + 789 + #define MT8365_PIN_127_DMIC3_DAT0__FUNC_GPIO127 (MTK_PIN_NO(127) | 0) 790 + #define MT8365_PIN_127_DMIC3_DAT0__FUNC_DMIC3_DAT0 (MTK_PIN_NO(127) | 1) 791 + #define MT8365_PIN_127_DMIC3_DAT0__FUNC_TDM_RX_DI (MTK_PIN_NO(127) | 2) 792 + 793 + #define MT8365_PIN_128_DMIC3_DAT1__FUNC_GPIO128 (MTK_PIN_NO(128) | 0) 794 + #define MT8365_PIN_128_DMIC3_DAT1__FUNC_DMIC3_DAT1 (MTK_PIN_NO(128) | 1) 795 + #define MT8365_PIN_128_DMIC3_DAT1__FUNC_TDM_RX_MCK (MTK_PIN_NO(128) | 2) 796 + #define MT8365_PIN_128_DMIC3_DAT1__FUNC_VAD_CLK (MTK_PIN_NO(128) | 3) 797 + 798 + #define MT8365_PIN_129_TDM_TX_BCK__FUNC_GPIO129 (MTK_PIN_NO(129) | 0) 799 + #define MT8365_PIN_129_TDM_TX_BCK__FUNC_TDM_TX_BCK (MTK_PIN_NO(129) | 1) 800 + #define MT8365_PIN_129_TDM_TX_BCK__FUNC_I2S3_BCK (MTK_PIN_NO(129) | 2) 801 + #define MT8365_PIN_129_TDM_TX_BCK__FUNC_ckmon1_ck (MTK_PIN_NO(129) | 3) 802 + 803 + #define MT8365_PIN_130_TDM_TX_LRCK__FUNC_GPIO130 (MTK_PIN_NO(130) | 0) 804 + #define MT8365_PIN_130_TDM_TX_LRCK__FUNC_TDM_TX_LRCK (MTK_PIN_NO(130) | 1) 805 + #define MT8365_PIN_130_TDM_TX_LRCK__FUNC_I2S3_LRCK (MTK_PIN_NO(130) | 2) 806 + #define MT8365_PIN_130_TDM_TX_LRCK__FUNC_ckmon2_ck (MTK_PIN_NO(130) | 3) 807 + 808 + #define MT8365_PIN_131_TDM_TX_MCK__FUNC_GPIO131 (MTK_PIN_NO(131) | 0) 809 + #define MT8365_PIN_131_TDM_TX_MCK__FUNC_TDM_TX_MCK (MTK_PIN_NO(131) | 1) 810 + #define MT8365_PIN_131_TDM_TX_MCK__FUNC_I2S3_MCK (MTK_PIN_NO(131) | 2) 811 + #define MT8365_PIN_131_TDM_TX_MCK__FUNC_ckmon3_ck (MTK_PIN_NO(131) | 3) 812 + 813 + #define MT8365_PIN_132_TDM_TX_DATA0__FUNC_GPIO132 (MTK_PIN_NO(132) | 0) 814 + #define MT8365_PIN_132_TDM_TX_DATA0__FUNC_TDM_TX_DATA0 (MTK_PIN_NO(132) | 1) 815 + #define MT8365_PIN_132_TDM_TX_DATA0__FUNC_I2S3_DO (MTK_PIN_NO(132) | 2) 816 + #define MT8365_PIN_132_TDM_TX_DATA0__FUNC_ckmon4_ck (MTK_PIN_NO(132) | 3) 817 + #define MT8365_PIN_132_TDM_TX_DATA0__FUNC_DBG_MON_B29 (MTK_PIN_NO(132) | 7) 818 + 819 + #define MT8365_PIN_133_TDM_TX_DATA1__FUNC_GPIO133 (MTK_PIN_NO(133) | 0) 820 + #define MT8365_PIN_133_TDM_TX_DATA1__FUNC_TDM_TX_DATA1 (MTK_PIN_NO(133) | 1) 821 + #define MT8365_PIN_133_TDM_TX_DATA1__FUNC_DBG_MON_B30 (MTK_PIN_NO(133) | 7) 822 + 823 + #define MT8365_PIN_134_TDM_TX_DATA2__FUNC_GPIO134 (MTK_PIN_NO(134) | 0) 824 + #define MT8365_PIN_134_TDM_TX_DATA2__FUNC_TDM_TX_DATA2 (MTK_PIN_NO(134) | 1) 825 + #define MT8365_PIN_134_TDM_TX_DATA2__FUNC_DBG_MON_B31 (MTK_PIN_NO(134) | 7) 826 + 827 + #define MT8365_PIN_135_TDM_TX_DATA3__FUNC_GPIO135 (MTK_PIN_NO(135) | 0) 828 + #define MT8365_PIN_135_TDM_TX_DATA3__FUNC_TDM_TX_DATA3 (MTK_PIN_NO(135) | 1) 829 + #define MT8365_PIN_135_TDM_TX_DATA3__FUNC_DBG_MON_B32 (MTK_PIN_NO(135) | 7) 830 + 831 + #define MT8365_PIN_136_CONN_TOP_CLK__FUNC_GPIO136 (MTK_PIN_NO(136) | 0) 832 + #define MT8365_PIN_136_CONN_TOP_CLK__FUNC_CONN_TOP_CLK (MTK_PIN_NO(136) | 1) 833 + 834 + #define MT8365_PIN_137_CONN_TOP_DATA__FUNC_GPIO137 (MTK_PIN_NO(137) | 0) 835 + #define MT8365_PIN_137_CONN_TOP_DATA__FUNC_CONN_TOP_DATA (MTK_PIN_NO(137) | 1) 836 + 837 + #define MT8365_PIN_138_CONN_HRST_B__FUNC_GPIO138 (MTK_PIN_NO(138) | 0) 838 + #define MT8365_PIN_138_CONN_HRST_B__FUNC_CONN_HRST_B (MTK_PIN_NO(138) | 1) 839 + 840 + #define MT8365_PIN_139_CONN_WB_PTA__FUNC_GPIO139 (MTK_PIN_NO(139) | 0) 841 + #define MT8365_PIN_139_CONN_WB_PTA__FUNC_CONN_WB_PTA (MTK_PIN_NO(139) | 1) 842 + 843 + #define MT8365_PIN_140_CONN_BT_CLK__FUNC_GPIO140 (MTK_PIN_NO(140) | 0) 844 + #define MT8365_PIN_140_CONN_BT_CLK__FUNC_CONN_BT_CLK (MTK_PIN_NO(140) | 1) 845 + 846 + #define MT8365_PIN_141_CONN_BT_DATA__FUNC_GPIO141 (MTK_PIN_NO(141) | 0) 847 + #define MT8365_PIN_141_CONN_BT_DATA__FUNC_CONN_BT_DATA (MTK_PIN_NO(141) | 1) 848 + 849 + #define MT8365_PIN_142_CONN_WF_CTRL0__FUNC_GPIO142 (MTK_PIN_NO(142) | 0) 850 + #define MT8365_PIN_142_CONN_WF_CTRL0__FUNC_CONN_WF_CTRL0 (MTK_PIN_NO(142) | 1) 851 + 852 + #define MT8365_PIN_143_CONN_WF_CTRL1__FUNC_GPIO143 (MTK_PIN_NO(143) | 0) 853 + #define MT8365_PIN_143_CONN_WF_CTRL1__FUNC_CONN_WF_CTRL1 (MTK_PIN_NO(143) | 1) 854 + 855 + #define MT8365_PIN_144_CONN_WF_CTRL2__FUNC_GPIO144 (MTK_PIN_NO(144) | 0) 856 + #define MT8365_PIN_144_CONN_WF_CTRL2__FUNC_CONN_WF_CTRL2 (MTK_PIN_NO(144) | 1) 857 + 858 + #endif /* __MT8365_PINFUNC_H */
+10 -10
include/linux/pinctrl/pinconf-generic.h
··· 81 81 * passed in the argument on a custom form, else just use argument 1 82 82 * to indicate low power mode, argument 0 turns low power mode off. 83 83 * @PIN_CONFIG_MODE_PWM: this will configure the pin for PWM 84 + * @PIN_CONFIG_OUTPUT: this will configure the pin as an output and drive a 85 + * value on the line. Use argument 1 to indicate high level, argument 0 to 86 + * indicate low level. (Please see Documentation/driver-api/pin-control.rst, 87 + * section "GPIO mode pitfalls" for a discussion around this parameter.) 84 88 * @PIN_CONFIG_OUTPUT_ENABLE: this will enable the pin's output mode 85 89 * without driving a value there. For most platforms this reduces to 86 90 * enable the output buffers and then let the pin controller current 87 91 * configuration (eg. the currently selected mux function) drive values on 88 92 * the line. Use argument 1 to enable output mode, argument 0 to disable 89 93 * it. 90 - * @PIN_CONFIG_OUTPUT: this will configure the pin as an output and drive a 91 - * value on the line. Use argument 1 to indicate high level, argument 0 to 92 - * indicate low level. (Please see Documentation/driver-api/pin-control.rst, 93 - * section "GPIO mode pitfalls" for a discussion around this parameter.) 94 94 * @PIN_CONFIG_PERSIST_STATE: retain pin state across sleep or controller reset 95 95 * @PIN_CONFIG_POWER_SOURCE: if the pin can select between different power 96 96 * supplies, the argument to this parameter (on a custom format) tells 97 97 * the driver which alternative power source to use. 98 - * @PIN_CONFIG_SLEEP_HARDWARE_STATE: indicate this is sleep related state. 99 - * @PIN_CONFIG_SLEW_RATE: if the pin can select slew rate, the argument to 100 - * this parameter (on a custom format) tells the driver which alternative 101 - * slew rate to use. 102 98 * @PIN_CONFIG_SKEW_DELAY: if the pin has programmable skew rate (on inputs) 103 99 * or latch delay (on outputs) this parameter (in a custom format) 104 100 * specifies the clock skew or latch delay. It typically controls how 105 101 * many double inverters are put in front of the line. 102 + * @PIN_CONFIG_SLEEP_HARDWARE_STATE: indicate this is sleep related state. 103 + * @PIN_CONFIG_SLEW_RATE: if the pin can select slew rate, the argument to 104 + * this parameter (on a custom format) tells the driver which alternative 105 + * slew rate to use. 106 106 * @PIN_CONFIG_END: this is the last enumerator for pin configurations, if 107 107 * you need to pass in custom configurations to the pin controller, use 108 108 * PIN_CONFIG_END+1 as the base offset. ··· 127 127 PIN_CONFIG_INPUT_SCHMITT_ENABLE, 128 128 PIN_CONFIG_MODE_LOW_POWER, 129 129 PIN_CONFIG_MODE_PWM, 130 - PIN_CONFIG_OUTPUT_ENABLE, 131 130 PIN_CONFIG_OUTPUT, 131 + PIN_CONFIG_OUTPUT_ENABLE, 132 132 PIN_CONFIG_PERSIST_STATE, 133 133 PIN_CONFIG_POWER_SOURCE, 134 + PIN_CONFIG_SKEW_DELAY, 134 135 PIN_CONFIG_SLEEP_HARDWARE_STATE, 135 136 PIN_CONFIG_SLEW_RATE, 136 - PIN_CONFIG_SKEW_DELAY, 137 137 PIN_CONFIG_END = 0x7F, 138 138 PIN_CONFIG_MAX = 0xFF, 139 139 };