diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-07-28 20:06:51 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-07-28 20:06:51 -0400 |
commit | d94ba9e7d8d5c821d0442f13b30b0140c1109c38 (patch) | |
tree | db82a38b7341fc035228d6cd1270cf4468c229c3 | |
parent | 1c88e19b0f6a8471ee50d5062721ba30b8fd4ba9 (diff) | |
parent | 9573e7923007961799beff38bc5c5a7635634eef (diff) |
Merge tag 'pinctrl-v4.8-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 v4.8 kernel cycle.
Nothing stands out as especially exiting: new drivers, new subdrivers,
lots of cleanups and incremental features.
Business as usual.
New drivers:
- New driver for Oxnas pin control and GPIO. This ARM-based chipset
is used in a few storage (NAS) type devices.
- New driver for the MAX77620/MAX20024 pin controller portions.
- New driver for the Intel Merrifield pin controller.
New subdrivers:
- New subdriver for the Qualcomm MDM9615
- New subdriver for the STM32F746 MCU
- New subdriver for the Broadcom NSP SoC.
Cleanups:
- Demodularization of bool compiled-in drivers.
Apart from this there is just regular incremental improvements to a
lot of drivers, especially Uniphier and PFC"
* tag 'pinctrl-v4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (131 commits)
pinctrl: fix pincontrol definition for marvell
pinctrl: xway: fix typo
Revert "pinctrl: amd: make it explicitly non-modular"
pinctrl: iproc: Add NSP and Stingray GPIO support
pinctrl: Update iProc GPIO DT bindings
pinctrl: bcm: add OF dependencies
pinctrl: ns2: remove redundant dev_err call in ns2_pinmux_probe()
pinctrl: Add STM32F746 MCU support
pinctrl: intel: Protect set wake flow by spin lock
pinctrl: nsp: remove redundant dev_err call in nsp_pinmux_probe()
pinctrl: uniphier: add Ethernet pin-mux settings
sh-pfc: Use PTR_ERR_OR_ZERO() to simplify the code
pinctrl: ns2: fix return value check in ns2_pinmux_probe()
pinctrl: qcom: update DT bindings with ebi2 groups
pinctrl: qcom: establish proper EBI2 pin groups
pinctrl: imx21: Remove the MODULE_DEVICE_TABLE() macro
Documentation: dt: Add new compatible to STM32 pinctrl driver bindings
includes: dt-bindings: Add STM32F746 pinctrl DT bindings
pinctrl: sunxi: fix nand0 function name for sun8i
pinctrl: uniphier: remove pointless pin-mux settings for PH1-LD11
...
119 files changed, 12550 insertions, 2698 deletions
diff --git a/Documentation/devicetree/bindings/gpio/gpio_oxnas.txt b/Documentation/devicetree/bindings/gpio/gpio_oxnas.txt new file mode 100644 index 000000000000..928ed4f43907 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio_oxnas.txt | |||
@@ -0,0 +1,47 @@ | |||
1 | * Oxford Semiconductor OXNAS SoC GPIO Controller | ||
2 | |||
3 | Please refer to gpio.txt for generic information regarding GPIO bindings. | ||
4 | |||
5 | Required properties: | ||
6 | - compatible: "oxsemi,ox810se-gpio" | ||
7 | - reg: Base address and length for the device. | ||
8 | - interrupts: The port interrupt shared by all pins. | ||
9 | - gpio-controller: Marks the port as GPIO controller. | ||
10 | - #gpio-cells: Two. The first cell is the pin number and | ||
11 | the second cell is used to specify the gpio polarity as defined in | ||
12 | defined in <dt-bindings/gpio/gpio.h>: | ||
13 | 0 = GPIO_ACTIVE_HIGH | ||
14 | 1 = GPIO_ACTIVE_LOW | ||
15 | - interrupt-controller: Marks the device node as an interrupt controller. | ||
16 | - #interrupt-cells: Two. The first cell is the GPIO number and second cell | ||
17 | is used to specify the trigger type as defined in | ||
18 | <dt-bindings/interrupt-controller/irq.h>: | ||
19 | IRQ_TYPE_EDGE_RISING | ||
20 | IRQ_TYPE_EDGE_FALLING | ||
21 | IRQ_TYPE_EDGE_BOTH | ||
22 | - gpio-ranges: Interaction with the PINCTRL subsystem, it also specifies the | ||
23 | gpio base and count, should be in the format of numeric-gpio-range as | ||
24 | specified in the gpio.txt file. | ||
25 | |||
26 | Example: | ||
27 | |||
28 | gpio0: gpio@0 { | ||
29 | compatible = "oxsemi,ox810se-gpio"; | ||
30 | reg = <0x000000 0x100000>; | ||
31 | interrupts = <21>; | ||
32 | #gpio-cells = <2>; | ||
33 | gpio-controller; | ||
34 | interrupt-controller; | ||
35 | #interrupt-cells = <2>; | ||
36 | gpio-ranges = <&pinctrl 0 0 32>; | ||
37 | }; | ||
38 | |||
39 | keys { | ||
40 | ... | ||
41 | |||
42 | button-esc { | ||
43 | label = "ESC"; | ||
44 | linux,code = <1>; | ||
45 | gpios = <&gpio0 12 0>; | ||
46 | }; | ||
47 | }; | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/brcm,iproc-gpio.txt b/Documentation/devicetree/bindings/pinctrl/brcm,iproc-gpio.txt index e4277921f3e3..a73cbeb0f309 100644 --- a/Documentation/devicetree/bindings/pinctrl/brcm,iproc-gpio.txt +++ b/Documentation/devicetree/bindings/pinctrl/brcm,iproc-gpio.txt | |||
@@ -3,8 +3,22 @@ Broadcom iProc GPIO/PINCONF Controller | |||
3 | Required properties: | 3 | Required properties: |
4 | 4 | ||
5 | - compatible: | 5 | - compatible: |
6 | Must be "brcm,cygnus-ccm-gpio", "brcm,cygnus-asiu-gpio", | 6 | "brcm,iproc-gpio" for the generic iProc based GPIO controller IP that |
7 | "brcm,cygnus-crmu-gpio" or "brcm,iproc-gpio" | 7 | supports full-featured pinctrl and GPIO functions used in various iProc |
8 | based SoCs | ||
9 | |||
10 | May contain an SoC-specific compatibility string to accommodate any | ||
11 | SoC-specific features | ||
12 | |||
13 | "brcm,cygnus-ccm-gpio", "brcm,cygnus-asiu-gpio", or | ||
14 | "brcm,cygnus-crmu-gpio" for Cygnus SoCs | ||
15 | |||
16 | "brcm,iproc-nsp-gpio" for the iProc NSP SoC that has drive strength support | ||
17 | disabled | ||
18 | |||
19 | "brcm,iproc-stingray-gpio" for the iProc Stingray SoC that has the general | ||
20 | pinctrl support completely disabled in this IP block. In Stingray, a | ||
21 | different IP block is used to handle pinctrl related functions | ||
8 | 22 | ||
9 | - reg: | 23 | - reg: |
10 | Define the base and range of the I/O address space that contains SoC | 24 | Define the base and range of the I/O address space that contains SoC |
diff --git a/Documentation/devicetree/bindings/pinctrl/brcm,nsp-pinmux.txt b/Documentation/devicetree/bindings/pinctrl/brcm,nsp-pinmux.txt new file mode 100644 index 000000000000..603564e5fe6f --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/brcm,nsp-pinmux.txt | |||
@@ -0,0 +1,79 @@ | |||
1 | Broadcom NSP (Northstar plus) IOMUX Controller | ||
2 | |||
3 | The NSP IOMUX controller supports group based mux configuration. In | ||
4 | addition, certain pins can be muxed to GPIO function individually. | ||
5 | |||
6 | Required properties: | ||
7 | - compatible: | ||
8 | Must be "brcm,nsp-pinmux" | ||
9 | |||
10 | - reg: | ||
11 | Should contain the register physical address and length for each of | ||
12 | GPIO_CONTROL0, GP_AUX_SEL and IPROC_CONFIG IOMUX registers | ||
13 | |||
14 | Properties in subnodes: | ||
15 | - function: | ||
16 | The mux function to select | ||
17 | |||
18 | - groups: | ||
19 | The list of groups to select with a given function | ||
20 | |||
21 | For more details, refer to | ||
22 | Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt | ||
23 | |||
24 | For example: | ||
25 | |||
26 | pinmux: pinmux@1803f1c0 { | ||
27 | compatible = "brcm,nsp-pinmux"; | ||
28 | reg = <0x1803f1c0 0x04>, | ||
29 | <0x18030028 0x04>, | ||
30 | <0x1803f408 0x04>; | ||
31 | |||
32 | pinctrl-names = "default"; | ||
33 | pinctrl-0 = <&pwm &gpio_b &nand_sel>; | ||
34 | |||
35 | pwm: pwm { | ||
36 | function = "pwm"; | ||
37 | groups = "pwm0_grp", "pwm1_grp"; | ||
38 | }; | ||
39 | |||
40 | gpio_b: gpio_b { | ||
41 | function = "gpio_b"; | ||
42 | groups = "gpio_b_0_grp", "gpio_b_1_grp"; | ||
43 | }; | ||
44 | |||
45 | nand_sel: nand_sel { | ||
46 | function = "nand"; | ||
47 | groups = "nand_grp"; | ||
48 | }; | ||
49 | }; | ||
50 | |||
51 | List of supported functions and groups in Northstar Plus: | ||
52 | |||
53 | "spi": "spi_grp" | ||
54 | |||
55 | "i2c": "i2c_grp" | ||
56 | |||
57 | "mdio": "mdio_grp" | ||
58 | |||
59 | "pwm": "pwm0_grp", "pwm1_grp", "pwm2_grp", "pwm3_grp" | ||
60 | |||
61 | "gpio_b": "gpio_b_0_grp", "gpio_b_1_grp", "gpio_b_2_grp", "gpio_b_3_grp" | ||
62 | |||
63 | "uart1": "uart1_grp" | ||
64 | |||
65 | "uart2": "uart2_grp" | ||
66 | |||
67 | "synce": "synce_grp" | ||
68 | |||
69 | "sata_led_grps": "sata0_led_grp", "sata1_led_grp" | ||
70 | |||
71 | "xtal_out": "xtal_out_grp" | ||
72 | |||
73 | "sdio": "sdio_pwr_grp", "sdio_1p8v_grp" | ||
74 | |||
75 | "switch_led": "switch_p05_led0_grp", "switch_p05_led1_grp" | ||
76 | |||
77 | "nand": "nand_grp" | ||
78 | |||
79 | "emmc": "emmc_grp" | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/oxnas,pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/oxnas,pinctrl.txt new file mode 100644 index 000000000000..d6074321f730 --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/oxnas,pinctrl.txt | |||
@@ -0,0 +1,57 @@ | |||
1 | * Oxford Semiconductor OXNAS SoC Family Pin Controller | ||
2 | |||
3 | Please refer to pinctrl-bindings.txt, ../gpio/gpio.txt, and | ||
4 | ../interrupt-controller/interrupts.txt for generic information regarding | ||
5 | pin controller, GPIO, and interrupt bindings. | ||
6 | |||
7 | OXNAS 'pin configuration node' is a node of a group of pins which can be | ||
8 | used for a specific device or function. This node represents configurations of | ||
9 | pins, optional function, and optional mux related configuration. | ||
10 | |||
11 | Required properties for pin controller node: | ||
12 | - compatible: "oxsemi,ox810se-pinctrl" | ||
13 | - oxsemi,sys-ctrl: a phandle to the system controller syscon node | ||
14 | |||
15 | Required properties for pin configuration sub-nodes: | ||
16 | - pins: List of pins to which the configuration applies. | ||
17 | |||
18 | Optional properties for pin configuration sub-nodes: | ||
19 | ---------------------------------------------------- | ||
20 | - function: Mux function for the specified pins. | ||
21 | - bias-pull-up: Enable weak pull-up. | ||
22 | |||
23 | Example: | ||
24 | |||
25 | pinctrl: pinctrl { | ||
26 | compatible = "oxsemi,ox810se-pinctrl"; | ||
27 | |||
28 | /* Regmap for sys registers */ | ||
29 | oxsemi,sys-ctrl = <&sys>; | ||
30 | |||
31 | pinctrl_uart2: pinctrl_uart2 { | ||
32 | uart2a { | ||
33 | pins = "gpio31"; | ||
34 | function = "fct3"; | ||
35 | }; | ||
36 | uart2b { | ||
37 | pins = "gpio32"; | ||
38 | function = "fct3"; | ||
39 | }; | ||
40 | }; | ||
41 | }; | ||
42 | |||
43 | uart2: serial@900000 { | ||
44 | compatible = "ns16550a"; | ||
45 | reg = <0x900000 0x100000>; | ||
46 | clocks = <&sysclk>; | ||
47 | interrupts = <29>; | ||
48 | reg-shift = <0>; | ||
49 | fifo-size = <16>; | ||
50 | reg-io-width = <1>; | ||
51 | current-speed = <115200>; | ||
52 | no-loopback-test; | ||
53 | status = "disabled"; | ||
54 | resets = <&reset 22>; | ||
55 | pinctrl-names = "default"; | ||
56 | pinctrl-0 = <&pinctrl_uart2>; | ||
57 | }; | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-max77620.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-max77620.txt new file mode 100644 index 000000000000..ad4fce3552bb --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-max77620.txt | |||
@@ -0,0 +1,127 @@ | |||
1 | Pincontrol driver for MAX77620 Power management IC from Maxim Semiconductor. | ||
2 | |||
3 | Device has 8 GPIO pins which can be configured as GPIO as well as the | ||
4 | special IO functions. | ||
5 | |||
6 | Please refer file <devicetree/bindings/pinctrl/pinctrl-bindings.txt> | ||
7 | for details of the common pinctrl bindings used by client devices, | ||
8 | including the meaning of the phrase "pin configuration node". | ||
9 | |||
10 | Optional Pinmux properties: | ||
11 | -------------------------- | ||
12 | Following properties are required if default setting of pins are required | ||
13 | at boot. | ||
14 | - pinctrl-names: A pinctrl state named per <pinctrl-binding.txt>. | ||
15 | - pinctrl[0...n]: Properties to contain the phandle for pinctrl states per | ||
16 | <pinctrl-binding.txt>. | ||
17 | |||
18 | The pin configurations are defined as child of the pinctrl states node. Each | ||
19 | sub-node have following properties: | ||
20 | |||
21 | Required properties: | ||
22 | ------------------ | ||
23 | - pins: List of pins. Valid values of pins properties are: | ||
24 | gpio0, gpio1, gpio2, gpio3, gpio4, gpio5, gpio6, gpio7. | ||
25 | |||
26 | Optional properties: | ||
27 | ------------------- | ||
28 | Following are optional properties defined as pinmux DT binding document | ||
29 | <pinctrl-bindings.txt>. Absence of properties will leave the configuration | ||
30 | on default. | ||
31 | function, | ||
32 | drive-push-pull, | ||
33 | drive-open-drain, | ||
34 | bias-pull-up, | ||
35 | bias-pull-down. | ||
36 | |||
37 | Valid values for function properties are: | ||
38 | gpio, lpm-control-in, fps-out, 32k-out, sd0-dvs-in, sd1-dvs-in, | ||
39 | reference-out | ||
40 | |||
41 | Theres is also customised properties for the GPIO1, GPIO2 and GPIO3. These | ||
42 | customised properties are required to configure FPS configuration parameters | ||
43 | of these GPIOs. Please refer <devicetree/bindings/mfd/max77620.txt> for more | ||
44 | detail of Flexible Power Sequence (FPS). | ||
45 | |||
46 | - maxim,active-fps-source: FPS source for the GPIOs to get | ||
47 | enabled/disabled when system is in | ||
48 | active state. Valid values are: | ||
49 | - MAX77620_FPS_SRC_0, | ||
50 | FPS source is FPS0. | ||
51 | - MAX77620_FPS_SRC_1, | ||
52 | FPS source is FPS1 | ||
53 | - MAX77620_FPS_SRC_2 and | ||
54 | FPS source is FPS2 | ||
55 | - MAX77620_FPS_SRC_NONE. | ||
56 | GPIO is not controlled | ||
57 | by FPS events and it gets | ||
58 | enabled/disabled by register | ||
59 | access. | ||
60 | Absence of this property will leave | ||
61 | the FPS configuration register for that | ||
62 | GPIO to default configuration. | ||
63 | |||
64 | - maxim,active-fps-power-up-slot: Sequencing event slot number on which | ||
65 | the GPIO get enabled when | ||
66 | master FPS input event set to HIGH. | ||
67 | Valid values are 0 to 7. | ||
68 | This is applicable if FPS source is | ||
69 | selected as FPS0, FPS1 or FPS2. | ||
70 | |||
71 | - maxim,active-fps-power-down-slot: Sequencing event slot number on which | ||
72 | the GPIO get disabled when master | ||
73 | FPS input event set to LOW. | ||
74 | Valid values are 0 to 7. | ||
75 | This is applicable if FPS source is | ||
76 | selected as FPS0, FPS1 or FPS2. | ||
77 | |||
78 | - maxim,suspend-fps-source: This is same as property | ||
79 | "maxim,active-fps-source" but value | ||
80 | get configured when system enters in | ||
81 | to suspend state. | ||
82 | |||
83 | - maxim,suspend-fps-power-up-slot: This is same as property | ||
84 | "maxim,active-fps-power-up-slot" but | ||
85 | this value get configured into FPS | ||
86 | configuration register when system | ||
87 | enters into suspend. | ||
88 | This is applicable if suspend state | ||
89 | FPS source is selected as FPS0, FPS1 or | ||
90 | |||
91 | - maxim,suspend-fps-power-down-slot: This is same as property | ||
92 | "maxim,active-fps-power-down-slot" but | ||
93 | this value get configured into FPS | ||
94 | configuration register when system | ||
95 | enters into suspend. | ||
96 | This is applicable if suspend state | ||
97 | FPS source is selected as FPS0, FPS1 or | ||
98 | FPS2. | ||
99 | |||
100 | Example: | ||
101 | -------- | ||
102 | #include <dt-bindings/mfd/max77620.h> | ||
103 | ... | ||
104 | max77620@3c { | ||
105 | |||
106 | pinctrl-names = "default"; | ||
107 | pinctrl-0 = <&spmic_default>; | ||
108 | |||
109 | spmic_default: pinmux@0 { | ||
110 | pin_gpio0 { | ||
111 | pins = "gpio0"; | ||
112 | function = "gpio"; | ||
113 | }; | ||
114 | |||
115 | pin_gpio1 { | ||
116 | pins = "gpio1"; | ||
117 | function = "fps-out"; | ||
118 | maxim,active-fps-source = <MAX77620_FPS_SRC_0>; | ||
119 | }; | ||
120 | |||
121 | pin_gpio2 { | ||
122 | pins = "gpio2"; | ||
123 | function = "fps-out"; | ||
124 | maxim,active-fps-source = <MAX77620_FPS_SRC_1>; | ||
125 | }; | ||
126 | }; | ||
127 | }; | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,mdm9615-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/qcom,mdm9615-pinctrl.txt new file mode 100644 index 000000000000..1b52f01ddcb7 --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/qcom,mdm9615-pinctrl.txt | |||
@@ -0,0 +1,152 @@ | |||
1 | Qualcomm MDM9615 TLMM block | ||
2 | |||
3 | This binding describes the Top Level Mode Multiplexer block found in the | ||
4 | MDM9615 platform. | ||
5 | |||
6 | - compatible: | ||
7 | Usage: required | ||
8 | Value type: <string> | ||
9 | Definition: must be "qcom,mdm9615-pinctrl" | ||
10 | |||
11 | - reg: | ||
12 | Usage: required | ||
13 | Value type: <prop-encoded-array> | ||
14 | Definition: the base address and size of the TLMM register space. | ||
15 | |||
16 | - interrupts: | ||
17 | Usage: required | ||
18 | Value type: <prop-encoded-array> | ||
19 | Definition: should specify the TLMM summary IRQ. | ||
20 | |||
21 | - interrupt-controller: | ||
22 | Usage: required | ||
23 | Value type: <none> | ||
24 | Definition: identifies this node as an interrupt controller | ||
25 | |||
26 | - #interrupt-cells: | ||
27 | Usage: required | ||
28 | Value type: <u32> | ||
29 | Definition: must be 2. Specifying the pin number and flags, as defined | ||
30 | in <dt-bindings/interrupt-controller/irq.h> | ||
31 | |||
32 | - gpio-controller: | ||
33 | Usage: required | ||
34 | Value type: <none> | ||
35 | Definition: identifies this node as a gpio controller | ||
36 | |||
37 | - #gpio-cells: | ||
38 | Usage: required | ||
39 | Value type: <u32> | ||
40 | Definition: must be 2. Specifying the pin number and flags, as defined | ||
41 | in <dt-bindings/gpio/gpio.h> | ||
42 | |||
43 | Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for | ||
44 | a general description of GPIO and interrupt bindings. | ||
45 | |||
46 | Please refer to pinctrl-bindings.txt in this directory for details of the | ||
47 | common pinctrl bindings used by client devices, including the meaning of the | ||
48 | phrase "pin configuration node". | ||
49 | |||
50 | The pin configuration nodes act as a container for an arbitrary number of | ||
51 | subnodes. Each of these subnodes represents some desired configuration for a | ||
52 | pin, a group, or a list of pins or groups. This configuration can include the | ||
53 | mux function to select on those pin(s)/group(s), and various pin configuration | ||
54 | parameters, such as pull-up, drive strength, etc. | ||
55 | |||
56 | |||
57 | PIN CONFIGURATION NODES: | ||
58 | |||
59 | The name of each subnode is not important; all subnodes should be enumerated | ||
60 | and processed purely based on their content. | ||
61 | |||
62 | Each subnode only affects those parameters that are explicitly listed. In | ||
63 | other words, a subnode that lists a mux function but no pin configuration | ||
64 | parameters implies no information about any pin configuration parameters. | ||
65 | Similarly, a pin subnode that describes a pullup parameter implies no | ||
66 | information about e.g. the mux function. | ||
67 | |||
68 | |||
69 | The following generic properties as defined in pinctrl-bindings.txt are valid | ||
70 | to specify in a pin configuration subnode: | ||
71 | |||
72 | - pins: | ||
73 | Usage: required | ||
74 | Value type: <string-array> | ||
75 | Definition: List of gpio pins affected by the properties specified in | ||
76 | this subnode. Valid pins are: | ||
77 | gpio0-gpio87 | ||
78 | |||
79 | - function: | ||
80 | Usage: required | ||
81 | Value type: <string> | ||
82 | Definition: Specify the alternative function to be configured for the | ||
83 | specified pins. | ||
84 | Valid values are: | ||
85 | gpio, gsbi2_i2c, gsbi3, gsbi4, gsbi5_i2c, gsbi5_uart, | ||
86 | sdc2, ebi2_lcdc, ps_hold, prim_audio, sec_audio, | ||
87 | cdc_mclk | ||
88 | |||
89 | - bias-disable: | ||
90 | Usage: optional | ||
91 | Value type: <none> | ||
92 | Definition: The specified pins should be configued as no pull. | ||
93 | |||
94 | - bias-pull-down: | ||
95 | Usage: optional | ||
96 | Value type: <none> | ||
97 | Definition: The specified pins should be configued as pull down. | ||
98 | |||
99 | - bias-pull-up: | ||
100 | Usage: optional | ||
101 | Value type: <none> | ||
102 | Definition: The specified pins should be configued as pull up. | ||
103 | |||
104 | - output-high: | ||
105 | Usage: optional | ||
106 | Value type: <none> | ||
107 | Definition: The specified pins are configured in output mode, driven | ||
108 | high. | ||
109 | |||
110 | - output-low: | ||
111 | Usage: optional | ||
112 | Value type: <none> | ||
113 | Definition: The specified pins are configured in output mode, driven | ||
114 | low. | ||
115 | |||
116 | - drive-strength: | ||
117 | Usage: optional | ||
118 | Value type: <u32> | ||
119 | Definition: Selects the drive strength for the specified pins, in mA. | ||
120 | Valid values are: 2, 4, 6, 8, 10, 12, 14 and 16 | ||
121 | |||
122 | Example: | ||
123 | |||
124 | msmgpio: pinctrl@800000 { | ||
125 | compatible = "qcom,mdm9615-pinctrl"; | ||
126 | reg = <0x800000 0x4000>; | ||
127 | |||
128 | gpio-controller; | ||
129 | #gpio-cells = <2>; | ||
130 | interrupt-controller; | ||
131 | #interrupt-cells = <2>; | ||
132 | interrupts = <0 16 0x4>; | ||
133 | |||
134 | gsbi8_uart: gsbi8-uart { | ||
135 | mux { | ||
136 | pins = "gpio34", "gpio35"; | ||
137 | function = "gsbi8"; | ||
138 | }; | ||
139 | |||
140 | tx { | ||
141 | pins = "gpio34"; | ||
142 | drive-strength = <4>; | ||
143 | bias-disable; | ||
144 | }; | ||
145 | |||
146 | rx { | ||
147 | pins = "gpio35"; | ||
148 | drive-strength = <2>; | ||
149 | bias-pull-up; | ||
150 | }; | ||
151 | }; | ||
152 | }; | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,msm8660-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/qcom,msm8660-pinctrl.txt index 77aa11790163..df9a838ec5f9 100644 --- a/Documentation/devicetree/bindings/pinctrl/qcom,msm8660-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/qcom,msm8660-pinctrl.txt | |||
@@ -52,7 +52,7 @@ Valid values for function are: | |||
52 | gsbi2_spi_cs3_n, gsbi3, gsbi3_spi_cs1_n, gsbi3_spi_cs2_n, gsbi3_spi_cs3_n, | 52 | gsbi2_spi_cs3_n, gsbi3, gsbi3_spi_cs1_n, gsbi3_spi_cs2_n, gsbi3_spi_cs3_n, |
53 | gsbi4, gsbi5, gsbi6, gsbi7, gsbi8, gsbi9, gsbi10, gsbi11, gsbi12, hdmi, i2s, | 53 | gsbi4, gsbi5, gsbi6, gsbi7, gsbi8, gsbi9, gsbi10, gsbi11, gsbi12, hdmi, i2s, |
54 | lcdc, mdp_vsync, mi2s, pcm, ps_hold, sdc1, sdc2, sdc5, tsif1, tsif2, usb_fs1, | 54 | lcdc, mdp_vsync, mi2s, pcm, ps_hold, sdc1, sdc2, sdc5, tsif1, tsif2, usb_fs1, |
55 | usb_fs1_oe_n, usb_fs2, usb_fs2_oe_n, vfe, vsens_alarm, | 55 | usb_fs1_oe_n, usb_fs2, usb_fs2_oe_n, vfe, vsens_alarm, ebi2, ebi2cs |
56 | 56 | ||
57 | Example: | 57 | Example: |
58 | 58 | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.txt index e4d6a9d20f7d..453bd7c76d6b 100644 --- a/Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.txt | |||
@@ -49,6 +49,9 @@ Valid values for pins are: | |||
49 | sdc1_clk, sdc1_cmd, sdc1_data, sdc2_clk, sdc2_cmd, sdc2_data | 49 | sdc1_clk, sdc1_cmd, sdc1_data, sdc2_clk, sdc2_cmd, sdc2_data |
50 | Supports bias and drive-strength | 50 | Supports bias and drive-strength |
51 | 51 | ||
52 | hsic_data, hsic_strobe | ||
53 | Supports only mux | ||
54 | |||
52 | Valid values for function are: | 55 | Valid values for function are: |
53 | cci_i2c0, cci_i2c1, uim1, uim2, uim_batt_alarm, | 56 | cci_i2c0, cci_i2c1, uim1, uim2, uim_batt_alarm, |
54 | blsp_uim1, blsp_uart1, blsp_i2c1, blsp_spi1, | 57 | blsp_uim1, blsp_uart1, blsp_i2c1, blsp_spi1, |
@@ -70,7 +73,7 @@ Valid values for function are: | |||
70 | cam_mckl0, cam_mclk1, cam_mclk2, cam_mclk3, mdp_vsync, hdmi_cec, hdmi_ddc, | 73 | cam_mckl0, cam_mclk1, cam_mclk2, cam_mclk3, mdp_vsync, hdmi_cec, hdmi_ddc, |
71 | hdmi_hpd, edp_hpd, gp_pdm0, gp_pdm1, gp_pdm2, gp_pdm3, gp0_clk, gp1_clk, | 74 | hdmi_hpd, edp_hpd, gp_pdm0, gp_pdm1, gp_pdm2, gp_pdm3, gp0_clk, gp1_clk, |
72 | gp_mn, tsif1, tsif2, hsic, grfc, audio_ref_clk, qua_mi2s, pri_mi2s, spkr_mi2s, | 75 | gp_mn, tsif1, tsif2, hsic, grfc, audio_ref_clk, qua_mi2s, pri_mi2s, spkr_mi2s, |
73 | ter_mi2s, sec_mi2s, bt, fm, wlan, slimbus, gpio | 76 | ter_mi2s, sec_mi2s, bt, fm, wlan, slimbus, hsic_ctl, gpio |
74 | 77 | ||
75 | (Note that this is not yet the complete list of functions) | 78 | (Note that this is not yet the complete list of functions) |
76 | 79 | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.txt b/Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.txt index d74e631e10da..b484ba1af78c 100644 --- a/Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.txt +++ b/Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.txt | |||
@@ -9,6 +9,7 @@ of PMIC's from Qualcomm. | |||
9 | Definition: Should contain one of: | 9 | Definition: Should contain one of: |
10 | "qcom,pm8018-mpp", | 10 | "qcom,pm8018-mpp", |
11 | "qcom,pm8038-mpp", | 11 | "qcom,pm8038-mpp", |
12 | "qcom,pm8058-mpp", | ||
12 | "qcom,pm8821-mpp", | 13 | "qcom,pm8821-mpp", |
13 | "qcom,pm8841-mpp", | 14 | "qcom,pm8841-mpp", |
14 | "qcom,pm8916-mpp", | 15 | "qcom,pm8916-mpp", |
diff --git a/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt index 74e6ec0339d6..e4cf022c992e 100644 --- a/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt | |||
@@ -72,7 +72,7 @@ Pin Configuration Node Properties: | |||
72 | 72 | ||
73 | The pin configuration parameters use the generic pinconf bindings defined in | 73 | The pin configuration parameters use the generic pinconf bindings defined in |
74 | pinctrl-bindings.txt in this directory. The supported parameters are | 74 | pinctrl-bindings.txt in this directory. The supported parameters are |
75 | bias-disable, bias-pull-up, bias-pull-down, drive strength and power-source. For | 75 | bias-disable, bias-pull-up, bias-pull-down, drive-strength and power-source. For |
76 | pins that have a configurable I/O voltage, the power-source value should be the | 76 | pins that have a configurable I/O voltage, the power-source value should be the |
77 | nominal I/O voltage in millivolts. | 77 | nominal I/O voltage in millivolts. |
78 | 78 | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.txt index 7b4800cc251e..587bffb9cbc6 100644 --- a/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.txt | |||
@@ -9,6 +9,7 @@ Pin controller node: | |||
9 | Required properies: | 9 | Required properies: |
10 | - compatible: value should be one of the following: | 10 | - compatible: value should be one of the following: |
11 | (a) "st,stm32f429-pinctrl" | 11 | (a) "st,stm32f429-pinctrl" |
12 | (b) "st,stm32f746-pinctrl" | ||
12 | - #address-cells: The value of this property must be 1 | 13 | - #address-cells: The value of this property must be 1 |
13 | - #size-cells : The value of this property must be 1 | 14 | - #size-cells : The value of this property must be 1 |
14 | - ranges : defines mapping between pin controller node (parent) to | 15 | - ranges : defines mapping between pin controller node (parent) to |
diff --git a/Documentation/pinctrl.txt b/Documentation/pinctrl.txt index 4976389e432d..0d3b9ce0a0b9 100644 --- a/Documentation/pinctrl.txt +++ b/Documentation/pinctrl.txt | |||
@@ -286,13 +286,13 @@ see the section named "pin control requests from drivers" and | |||
286 | "drivers needing both pin control and GPIOs" below for details. But in some | 286 | "drivers needing both pin control and GPIOs" below for details. But in some |
287 | situations a cross-subsystem mapping between pins and GPIOs is needed. | 287 | situations a cross-subsystem mapping between pins and GPIOs is needed. |
288 | 288 | ||
289 | Since the pin controller subsystem have its pinspace local to the pin | 289 | Since the pin controller subsystem has its pinspace local to the pin controller |
290 | controller we need a mapping so that the pin control subsystem can figure out | 290 | we need a mapping so that the pin control subsystem can figure out which pin |
291 | which pin controller handles control of a certain GPIO pin. Since a single | 291 | controller handles control of a certain GPIO pin. Since a single pin controller |
292 | pin controller may be muxing several GPIO ranges (typically SoCs that have | 292 | may be muxing several GPIO ranges (typically SoCs that have one set of pins, |
293 | one set of pins, but internally several GPIO silicon blocks, each modelled as | 293 | but internally several GPIO silicon blocks, each modelled as a struct |
294 | a struct gpio_chip) any number of GPIO ranges can be added to a pin controller | 294 | gpio_chip) any number of GPIO ranges can be added to a pin controller instance |
295 | instance like this: | 295 | like this: |
296 | 296 | ||
297 | struct gpio_chip chip_a; | 297 | struct gpio_chip chip_a; |
298 | struct gpio_chip chip_b; | 298 | struct gpio_chip chip_b; |
@@ -493,12 +493,12 @@ Definitions: | |||
493 | - The combination of a FUNCTION and a PIN GROUP determine a certain function | 493 | - The combination of a FUNCTION and a PIN GROUP determine a certain function |
494 | for a certain set of pins. The knowledge of the functions and pin groups | 494 | for a certain set of pins. The knowledge of the functions and pin groups |
495 | and their machine-specific particulars are kept inside the pinmux driver, | 495 | and their machine-specific particulars are kept inside the pinmux driver, |
496 | from the outside only the enumerators are known, and the driver core can: | 496 | from the outside only the enumerators are known, and the driver core can |
497 | request: | ||
497 | 498 | ||
498 | - Request the name of a function with a certain selector (>= 0) | 499 | - The name of a function with a certain selector (>= 0) |
499 | - A list of groups associated with a certain function | 500 | - A list of groups associated with a certain function |
500 | - Request that a certain group in that list to be activated for a certain | 501 | - That a certain group in that list to be activated for a certain function |
501 | function | ||
502 | 502 | ||
503 | As already described above, pin groups are in turn self-descriptive, so | 503 | As already described above, pin groups are in turn self-descriptive, so |
504 | the core will retrieve the actual pin range in a certain group from the | 504 | the core will retrieve the actual pin range in a certain group from the |
@@ -831,7 +831,7 @@ separate memory range only intended for GPIO driving, and the register | |||
831 | range dealing with pin config and pin multiplexing get placed into a | 831 | range dealing with pin config and pin multiplexing get placed into a |
832 | different memory range and a separate section of the data sheet. | 832 | different memory range and a separate section of the data sheet. |
833 | 833 | ||
834 | A flag "strict" in struct pinctrl_desc is available to check and deny | 834 | A flag "strict" in struct pinmux_ops is available to check and deny |
835 | simultaneous access to the same pin from GPIO and pin multiplexing | 835 | simultaneous access to the same pin from GPIO and pin multiplexing |
836 | consumers on hardware of this type. The pinctrl driver should set this flag | 836 | consumers on hardware of this type. The pinctrl driver should set this flag |
837 | accordingly. | 837 | accordingly. |
diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig index fb8200b8e8ec..b3fe1d339632 100644 --- a/drivers/pinctrl/Kconfig +++ b/drivers/pinctrl/Kconfig | |||
@@ -35,7 +35,7 @@ config PINCTRL_ADI2 | |||
35 | machine and arch are selected to build. | 35 | machine and arch are selected to build. |
36 | 36 | ||
37 | config PINCTRL_AS3722 | 37 | config PINCTRL_AS3722 |
38 | bool "Pinctrl and GPIO driver for ams AS3722 PMIC" | 38 | tristate "Pinctrl and GPIO driver for ams AS3722 PMIC" |
39 | depends on MFD_AS3722 && GPIOLIB | 39 | depends on MFD_AS3722 && GPIOLIB |
40 | select PINMUX | 40 | select PINMUX |
41 | select GENERIC_PINCONF | 41 | select GENERIC_PINCONF |
@@ -129,6 +129,17 @@ config PINCTRL_MESON | |||
129 | select OF_GPIO | 129 | select OF_GPIO |
130 | select REGMAP_MMIO | 130 | select REGMAP_MMIO |
131 | 131 | ||
132 | config PINCTRL_OXNAS | ||
133 | bool | ||
134 | depends on OF | ||
135 | select PINMUX | ||
136 | select PINCONF | ||
137 | select GENERIC_PINCONF | ||
138 | select GPIOLIB | ||
139 | select OF_GPIO | ||
140 | select GPIOLIB_IRQCHIP | ||
141 | select MFD_SYSCON | ||
142 | |||
132 | config PINCTRL_ROCKCHIP | 143 | config PINCTRL_ROCKCHIP |
133 | bool | 144 | bool |
134 | select PINMUX | 145 | select PINMUX |
@@ -196,8 +207,19 @@ config PINCTRL_COH901 | |||
196 | COH 901 335 and COH 901 571/3. They contain 3, 5 or 7 | 207 | COH 901 335 and COH 901 571/3. They contain 3, 5 or 7 |
197 | ports of 8 GPIO pins each. | 208 | ports of 8 GPIO pins each. |
198 | 209 | ||
210 | config PINCTRL_MAX77620 | ||
211 | tristate "MAX77620/MAX20024 Pincontrol support" | ||
212 | depends on MFD_MAX77620 | ||
213 | select PINMUX | ||
214 | select GENERIC_PINCONF | ||
215 | help | ||
216 | Say Yes here to enable Pin control support for Maxim PMIC MAX77620. | ||
217 | This PMIC has 8 GPIO pins that work as GPIO as well as special | ||
218 | function in alternate mode. This driver also configure push-pull, | ||
219 | open drain, FPS slots etc. | ||
220 | |||
199 | config PINCTRL_PALMAS | 221 | config PINCTRL_PALMAS |
200 | bool "Pinctrl driver for the PALMAS Series MFD devices" | 222 | tristate "Pinctrl driver for the PALMAS Series MFD devices" |
201 | depends on OF && MFD_PALMAS | 223 | depends on OF && MFD_PALMAS |
202 | select PINMUX | 224 | select PINMUX |
203 | select GENERIC_PINCONF | 225 | select GENERIC_PINCONF |
diff --git a/drivers/pinctrl/Makefile b/drivers/pinctrl/Makefile index 42a5c1dddfef..8ebd7b8e1621 100644 --- a/drivers/pinctrl/Makefile +++ b/drivers/pinctrl/Makefile | |||
@@ -16,7 +16,9 @@ obj-$(CONFIG_PINCTRL_AT91PIO4) += pinctrl-at91-pio4.o | |||
16 | obj-$(CONFIG_PINCTRL_AMD) += pinctrl-amd.o | 16 | obj-$(CONFIG_PINCTRL_AMD) += pinctrl-amd.o |
17 | obj-$(CONFIG_PINCTRL_DIGICOLOR) += pinctrl-digicolor.o | 17 | obj-$(CONFIG_PINCTRL_DIGICOLOR) += pinctrl-digicolor.o |
18 | obj-$(CONFIG_PINCTRL_FALCON) += pinctrl-falcon.o | 18 | obj-$(CONFIG_PINCTRL_FALCON) += pinctrl-falcon.o |
19 | obj-$(CONFIG_PINCTRL_MAX77620) += pinctrl-max77620.o | ||
19 | obj-$(CONFIG_PINCTRL_MESON) += meson/ | 20 | obj-$(CONFIG_PINCTRL_MESON) += meson/ |
21 | obj-$(CONFIG_PINCTRL_OXNAS) += pinctrl-oxnas.o | ||
20 | obj-$(CONFIG_PINCTRL_PALMAS) += pinctrl-palmas.o | 22 | obj-$(CONFIG_PINCTRL_PALMAS) += pinctrl-palmas.o |
21 | obj-$(CONFIG_PINCTRL_PIC32) += pinctrl-pic32.o | 23 | obj-$(CONFIG_PINCTRL_PIC32) += pinctrl-pic32.o |
22 | obj-$(CONFIG_PINCTRL_PISTACHIO) += pinctrl-pistachio.o | 24 | obj-$(CONFIG_PINCTRL_PISTACHIO) += pinctrl-pistachio.o |
@@ -35,7 +37,7 @@ obj-$(CONFIG_PINCTRL_TB10X) += pinctrl-tb10x.o | |||
35 | obj-$(CONFIG_PINCTRL_ST) += pinctrl-st.o | 37 | obj-$(CONFIG_PINCTRL_ST) += pinctrl-st.o |
36 | obj-$(CONFIG_PINCTRL_ZYNQ) += pinctrl-zynq.o | 38 | obj-$(CONFIG_PINCTRL_ZYNQ) += pinctrl-zynq.o |
37 | 39 | ||
38 | obj-$(CONFIG_ARCH_BCM) += bcm/ | 40 | obj-y += bcm/ |
39 | obj-$(CONFIG_PINCTRL_BERLIN) += berlin/ | 41 | obj-$(CONFIG_PINCTRL_BERLIN) += berlin/ |
40 | obj-y += freescale/ | 42 | obj-y += freescale/ |
41 | obj-$(CONFIG_X86) += intel/ | 43 | obj-$(CONFIG_X86) += intel/ |
diff --git a/drivers/pinctrl/bcm/Kconfig b/drivers/pinctrl/bcm/Kconfig index c356223e1c9c..63246770bd74 100644 --- a/drivers/pinctrl/bcm/Kconfig +++ b/drivers/pinctrl/bcm/Kconfig | |||
@@ -60,6 +60,7 @@ config PINCTRL_IPROC_GPIO | |||
60 | config PINCTRL_CYGNUS_MUX | 60 | config PINCTRL_CYGNUS_MUX |
61 | bool "Broadcom Cygnus IOMUX driver" | 61 | bool "Broadcom Cygnus IOMUX driver" |
62 | depends on (ARCH_BCM_CYGNUS || COMPILE_TEST) | 62 | depends on (ARCH_BCM_CYGNUS || COMPILE_TEST) |
63 | depends on OF | ||
63 | select PINMUX | 64 | select PINMUX |
64 | select GENERIC_PINCONF | 65 | select GENERIC_PINCONF |
65 | default ARCH_BCM_CYGNUS | 66 | default ARCH_BCM_CYGNUS |
@@ -99,3 +100,17 @@ config PINCTRL_NS2_MUX | |||
99 | 100 | ||
100 | The Broadcom Northstar2 IOMUX driver supports group based IOMUX | 101 | The Broadcom Northstar2 IOMUX driver supports group based IOMUX |
101 | configuration. | 102 | configuration. |
103 | |||
104 | config PINCTRL_NSP_MUX | ||
105 | bool "Broadcom NSP IOMUX driver" | ||
106 | depends on (ARCH_BCM_NSP || COMPILE_TEST) | ||
107 | depends on OF | ||
108 | select PINMUX | ||
109 | select GENERIC_PINCONF | ||
110 | default ARCH_BCM_NSP | ||
111 | help | ||
112 | Say yes here to enable the Broadcom NSP SOC IOMUX driver. | ||
113 | |||
114 | The Broadcom Northstar Plus IOMUX driver supports pin based IOMUX | ||
115 | configuration, with certain individual pins can be overridden | ||
116 | to GPIO function. | ||
diff --git a/drivers/pinctrl/bcm/Makefile b/drivers/pinctrl/bcm/Makefile index 3861a1c1f8ff..2a65111f3c70 100644 --- a/drivers/pinctrl/bcm/Makefile +++ b/drivers/pinctrl/bcm/Makefile | |||
@@ -6,3 +6,4 @@ obj-$(CONFIG_PINCTRL_IPROC_GPIO) += pinctrl-iproc-gpio.o | |||
6 | obj-$(CONFIG_PINCTRL_CYGNUS_MUX) += pinctrl-cygnus-mux.o | 6 | obj-$(CONFIG_PINCTRL_CYGNUS_MUX) += pinctrl-cygnus-mux.o |
7 | obj-$(CONFIG_PINCTRL_NSP_GPIO) += pinctrl-nsp-gpio.o | 7 | obj-$(CONFIG_PINCTRL_NSP_GPIO) += pinctrl-nsp-gpio.o |
8 | obj-$(CONFIG_PINCTRL_NS2_MUX) += pinctrl-ns2-mux.o | 8 | obj-$(CONFIG_PINCTRL_NS2_MUX) += pinctrl-ns2-mux.o |
9 | obj-$(CONFIG_PINCTRL_NSP_MUX) += pinctrl-nsp-mux.o | ||
diff --git a/drivers/pinctrl/bcm/pinctrl-iproc-gpio.c b/drivers/pinctrl/bcm/pinctrl-iproc-gpio.c index 3670f5ea7a12..7f7700716398 100644 --- a/drivers/pinctrl/bcm/pinctrl-iproc-gpio.c +++ b/drivers/pinctrl/bcm/pinctrl-iproc-gpio.c | |||
@@ -66,6 +66,14 @@ | |||
66 | #define GPIO_DRV_STRENGTH_BITS 3 | 66 | #define GPIO_DRV_STRENGTH_BITS 3 |
67 | #define GPIO_DRV_STRENGTH_BIT_MASK ((1 << GPIO_DRV_STRENGTH_BITS) - 1) | 67 | #define GPIO_DRV_STRENGTH_BIT_MASK ((1 << GPIO_DRV_STRENGTH_BITS) - 1) |
68 | 68 | ||
69 | enum iproc_pinconf_param { | ||
70 | IPROC_PINCONF_DRIVE_STRENGTH = 0, | ||
71 | IPROC_PINCONF_BIAS_DISABLE, | ||
72 | IPROC_PINCONF_BIAS_PULL_UP, | ||
73 | IPROC_PINCONF_BIAS_PULL_DOWN, | ||
74 | IPROC_PINCON_MAX, | ||
75 | }; | ||
76 | |||
69 | /* | 77 | /* |
70 | * Iproc GPIO core | 78 | * Iproc GPIO core |
71 | * | 79 | * |
@@ -78,6 +86,10 @@ | |||
78 | * @num_banks: number of GPIO banks, each bank supports up to 32 GPIOs | 86 | * @num_banks: number of GPIO banks, each bank supports up to 32 GPIOs |
79 | * @pinmux_is_supported: flag to indicate this GPIO controller contains pins | 87 | * @pinmux_is_supported: flag to indicate this GPIO controller contains pins |
80 | * that can be individually muxed to GPIO | 88 | * that can be individually muxed to GPIO |
89 | * @pinconf_disable: contains a list of PINCONF parameters that need to be | ||
90 | * disabled | ||
91 | * @nr_pinconf_disable: total number of PINCONF parameters that need to be | ||
92 | * disabled | ||
81 | * @pctl: pointer to pinctrl_dev | 93 | * @pctl: pointer to pinctrl_dev |
82 | * @pctldesc: pinctrl descriptor | 94 | * @pctldesc: pinctrl descriptor |
83 | */ | 95 | */ |
@@ -94,6 +106,9 @@ struct iproc_gpio { | |||
94 | 106 | ||
95 | bool pinmux_is_supported; | 107 | bool pinmux_is_supported; |
96 | 108 | ||
109 | enum pin_config_param *pinconf_disable; | ||
110 | unsigned int nr_pinconf_disable; | ||
111 | |||
97 | struct pinctrl_dev *pctl; | 112 | struct pinctrl_dev *pctl; |
98 | struct pinctrl_desc pctldesc; | 113 | struct pinctrl_desc pctldesc; |
99 | }; | 114 | }; |
@@ -360,6 +375,65 @@ static int iproc_gpio_get(struct gpio_chip *gc, unsigned gpio) | |||
360 | return !!(readl(chip->base + offset) & BIT(shift)); | 375 | return !!(readl(chip->base + offset) & BIT(shift)); |
361 | } | 376 | } |
362 | 377 | ||
378 | /* | ||
379 | * Mapping of the iProc PINCONF parameters to the generic pin configuration | ||
380 | * parameters | ||
381 | */ | ||
382 | static const enum pin_config_param iproc_pinconf_disable_map[] = { | ||
383 | [IPROC_PINCONF_DRIVE_STRENGTH] = PIN_CONFIG_DRIVE_STRENGTH, | ||
384 | [IPROC_PINCONF_BIAS_DISABLE] = PIN_CONFIG_BIAS_DISABLE, | ||
385 | [IPROC_PINCONF_BIAS_PULL_UP] = PIN_CONFIG_BIAS_PULL_UP, | ||
386 | [IPROC_PINCONF_BIAS_PULL_DOWN] = PIN_CONFIG_BIAS_PULL_DOWN, | ||
387 | }; | ||
388 | |||
389 | static bool iproc_pinconf_param_is_disabled(struct iproc_gpio *chip, | ||
390 | enum pin_config_param param) | ||
391 | { | ||
392 | unsigned int i; | ||
393 | |||
394 | if (!chip->nr_pinconf_disable) | ||
395 | return false; | ||
396 | |||
397 | for (i = 0; i < chip->nr_pinconf_disable; i++) | ||
398 | if (chip->pinconf_disable[i] == param) | ||
399 | return true; | ||
400 | |||
401 | return false; | ||
402 | } | ||
403 | |||
404 | static int iproc_pinconf_disable_map_create(struct iproc_gpio *chip, | ||
405 | unsigned long disable_mask) | ||
406 | { | ||
407 | unsigned int map_size = ARRAY_SIZE(iproc_pinconf_disable_map); | ||
408 | unsigned int bit, nbits = 0; | ||
409 | |||
410 | /* figure out total number of PINCONF parameters to disable */ | ||
411 | for_each_set_bit(bit, &disable_mask, map_size) | ||
412 | nbits++; | ||
413 | |||
414 | if (!nbits) | ||
415 | return 0; | ||
416 | |||
417 | /* | ||
418 | * Allocate an array to store PINCONF parameters that need to be | ||
419 | * disabled | ||
420 | */ | ||
421 | chip->pinconf_disable = devm_kcalloc(chip->dev, nbits, | ||
422 | sizeof(*chip->pinconf_disable), | ||
423 | GFP_KERNEL); | ||
424 | if (!chip->pinconf_disable) | ||
425 | return -ENOMEM; | ||
426 | |||
427 | chip->nr_pinconf_disable = nbits; | ||
428 | |||
429 | /* now store these parameters */ | ||
430 | nbits = 0; | ||
431 | for_each_set_bit(bit, &disable_mask, map_size) | ||
432 | chip->pinconf_disable[nbits++] = iproc_pinconf_disable_map[bit]; | ||
433 | |||
434 | return 0; | ||
435 | } | ||
436 | |||
363 | static int iproc_get_groups_count(struct pinctrl_dev *pctldev) | 437 | static int iproc_get_groups_count(struct pinctrl_dev *pctldev) |
364 | { | 438 | { |
365 | return 1; | 439 | return 1; |
@@ -500,6 +574,9 @@ static int iproc_pin_config_get(struct pinctrl_dev *pctldev, unsigned pin, | |||
500 | bool disable, pull_up; | 574 | bool disable, pull_up; |
501 | int ret; | 575 | int ret; |
502 | 576 | ||
577 | if (iproc_pinconf_param_is_disabled(chip, param)) | ||
578 | return -ENOTSUPP; | ||
579 | |||
503 | switch (param) { | 580 | switch (param) { |
504 | case PIN_CONFIG_BIAS_DISABLE: | 581 | case PIN_CONFIG_BIAS_DISABLE: |
505 | iproc_gpio_get_pull(chip, gpio, &disable, &pull_up); | 582 | iproc_gpio_get_pull(chip, gpio, &disable, &pull_up); |
@@ -548,6 +625,10 @@ static int iproc_pin_config_set(struct pinctrl_dev *pctldev, unsigned pin, | |||
548 | 625 | ||
549 | for (i = 0; i < num_configs; i++) { | 626 | for (i = 0; i < num_configs; i++) { |
550 | param = pinconf_to_config_param(configs[i]); | 627 | param = pinconf_to_config_param(configs[i]); |
628 | |||
629 | if (iproc_pinconf_param_is_disabled(chip, param)) | ||
630 | return -ENOTSUPP; | ||
631 | |||
551 | arg = pinconf_to_config_argument(configs[i]); | 632 | arg = pinconf_to_config_argument(configs[i]); |
552 | 633 | ||
553 | switch (param) { | 634 | switch (param) { |
@@ -633,11 +714,13 @@ static int iproc_gpio_register_pinconf(struct iproc_gpio *chip) | |||
633 | } | 714 | } |
634 | 715 | ||
635 | static const struct of_device_id iproc_gpio_of_match[] = { | 716 | static const struct of_device_id iproc_gpio_of_match[] = { |
717 | { .compatible = "brcm,iproc-gpio" }, | ||
636 | { .compatible = "brcm,cygnus-ccm-gpio" }, | 718 | { .compatible = "brcm,cygnus-ccm-gpio" }, |
637 | { .compatible = "brcm,cygnus-asiu-gpio" }, | 719 | { .compatible = "brcm,cygnus-asiu-gpio" }, |
638 | { .compatible = "brcm,cygnus-crmu-gpio" }, | 720 | { .compatible = "brcm,cygnus-crmu-gpio" }, |
639 | { .compatible = "brcm,iproc-gpio" }, | 721 | { .compatible = "brcm,iproc-nsp-gpio" }, |
640 | { } | 722 | { .compatible = "brcm,iproc-stingray-gpio" }, |
723 | { /* sentinel */ } | ||
641 | }; | 724 | }; |
642 | 725 | ||
643 | static int iproc_gpio_probe(struct platform_device *pdev) | 726 | static int iproc_gpio_probe(struct platform_device *pdev) |
@@ -646,8 +729,17 @@ static int iproc_gpio_probe(struct platform_device *pdev) | |||
646 | struct resource *res; | 729 | struct resource *res; |
647 | struct iproc_gpio *chip; | 730 | struct iproc_gpio *chip; |
648 | struct gpio_chip *gc; | 731 | struct gpio_chip *gc; |
649 | u32 ngpios; | 732 | u32 ngpios, pinconf_disable_mask = 0; |
650 | int irq, ret; | 733 | int irq, ret; |
734 | bool no_pinconf = false; | ||
735 | |||
736 | /* NSP does not support drive strength config */ | ||
737 | if (of_device_is_compatible(dev->of_node, "brcm,iproc-nsp-gpio")) | ||
738 | pinconf_disable_mask = BIT(IPROC_PINCONF_DRIVE_STRENGTH); | ||
739 | /* Stingray does not support pinconf in this controller */ | ||
740 | else if (of_device_is_compatible(dev->of_node, | ||
741 | "brcm,iproc-stingray-gpio")) | ||
742 | no_pinconf = true; | ||
651 | 743 | ||
652 | chip = devm_kzalloc(dev, sizeof(*chip), GFP_KERNEL); | 744 | chip = devm_kzalloc(dev, sizeof(*chip), GFP_KERNEL); |
653 | if (!chip) | 745 | if (!chip) |
@@ -702,10 +794,22 @@ static int iproc_gpio_probe(struct platform_device *pdev) | |||
702 | return ret; | 794 | return ret; |
703 | } | 795 | } |
704 | 796 | ||
705 | ret = iproc_gpio_register_pinconf(chip); | 797 | if (!no_pinconf) { |
706 | if (ret) { | 798 | ret = iproc_gpio_register_pinconf(chip); |
707 | dev_err(dev, "unable to register pinconf\n"); | 799 | if (ret) { |
708 | goto err_rm_gpiochip; | 800 | dev_err(dev, "unable to register pinconf\n"); |
801 | goto err_rm_gpiochip; | ||
802 | } | ||
803 | |||
804 | if (pinconf_disable_mask) { | ||
805 | ret = iproc_pinconf_disable_map_create(chip, | ||
806 | pinconf_disable_mask); | ||
807 | if (ret) { | ||
808 | dev_err(dev, | ||
809 | "unable to create pinconf disable map\n"); | ||
810 | goto err_rm_gpiochip; | ||
811 | } | ||
812 | } | ||
709 | } | 813 | } |
710 | 814 | ||
711 | /* optional GPIO interrupt support */ | 815 | /* optional GPIO interrupt support */ |
diff --git a/drivers/pinctrl/bcm/pinctrl-ns2-mux.c b/drivers/pinctrl/bcm/pinctrl-ns2-mux.c index 3fefd14acc3e..ca817896ed24 100644 --- a/drivers/pinctrl/bcm/pinctrl-ns2-mux.c +++ b/drivers/pinctrl/bcm/pinctrl-ns2-mux.c | |||
@@ -1044,10 +1044,8 @@ static int ns2_pinmux_probe(struct platform_device *pdev) | |||
1044 | 1044 | ||
1045 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 1045 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
1046 | pinctrl->base0 = devm_ioremap_resource(&pdev->dev, res); | 1046 | pinctrl->base0 = devm_ioremap_resource(&pdev->dev, res); |
1047 | if (IS_ERR(pinctrl->base0)) { | 1047 | if (IS_ERR(pinctrl->base0)) |
1048 | dev_err(&pdev->dev, "unable to map I/O space\n"); | ||
1049 | return PTR_ERR(pinctrl->base0); | 1048 | return PTR_ERR(pinctrl->base0); |
1050 | } | ||
1051 | 1049 | ||
1052 | res = platform_get_resource(pdev, IORESOURCE_MEM, 1); | 1050 | res = platform_get_resource(pdev, IORESOURCE_MEM, 1); |
1053 | pinctrl->base1 = devm_ioremap_nocache(&pdev->dev, res->start, | 1051 | pinctrl->base1 = devm_ioremap_nocache(&pdev->dev, res->start, |
@@ -1059,10 +1057,8 @@ static int ns2_pinmux_probe(struct platform_device *pdev) | |||
1059 | 1057 | ||
1060 | res = platform_get_resource(pdev, IORESOURCE_MEM, 2); | 1058 | res = platform_get_resource(pdev, IORESOURCE_MEM, 2); |
1061 | pinctrl->pinconf_base = devm_ioremap_resource(&pdev->dev, res); | 1059 | pinctrl->pinconf_base = devm_ioremap_resource(&pdev->dev, res); |
1062 | if (IS_ERR(pinctrl->pinconf_base)) { | 1060 | if (IS_ERR(pinctrl->pinconf_base)) |
1063 | dev_err(&pdev->dev, "unable to map I/O space\n"); | ||
1064 | return PTR_ERR(pinctrl->pinconf_base); | 1061 | return PTR_ERR(pinctrl->pinconf_base); |
1065 | } | ||
1066 | 1062 | ||
1067 | ret = ns2_mux_log_init(pinctrl); | 1063 | ret = ns2_mux_log_init(pinctrl); |
1068 | if (ret) { | 1064 | if (ret) { |
@@ -1089,9 +1085,9 @@ static int ns2_pinmux_probe(struct platform_device *pdev) | |||
1089 | 1085 | ||
1090 | pinctrl->pctl = pinctrl_register(&ns2_pinctrl_desc, &pdev->dev, | 1086 | pinctrl->pctl = pinctrl_register(&ns2_pinctrl_desc, &pdev->dev, |
1091 | pinctrl); | 1087 | pinctrl); |
1092 | if (!pinctrl->pctl) { | 1088 | if (IS_ERR(pinctrl->pctl)) { |
1093 | dev_err(&pdev->dev, "unable to register IOMUX pinctrl\n"); | 1089 | dev_err(&pdev->dev, "unable to register IOMUX pinctrl\n"); |
1094 | return -EINVAL; | 1090 | return PTR_ERR(pinctrl->pctl); |
1095 | } | 1091 | } |
1096 | 1092 | ||
1097 | return 0; | 1093 | return 0; |
diff --git a/drivers/pinctrl/bcm/pinctrl-nsp-gpio.c b/drivers/pinctrl/bcm/pinctrl-nsp-gpio.c index a8b37a9a8230..35783db1c10b 100644 --- a/drivers/pinctrl/bcm/pinctrl-nsp-gpio.c +++ b/drivers/pinctrl/bcm/pinctrl-nsp-gpio.c | |||
@@ -458,13 +458,15 @@ static int nsp_gpio_get_strength(struct nsp_gpio *chip, unsigned gpio, | |||
458 | return 0; | 458 | return 0; |
459 | } | 459 | } |
460 | 460 | ||
461 | int nsp_pin_config_group_get(struct pinctrl_dev *pctldev, unsigned selector, | 461 | static int nsp_pin_config_group_get(struct pinctrl_dev *pctldev, |
462 | unsigned selector, | ||
462 | unsigned long *config) | 463 | unsigned long *config) |
463 | { | 464 | { |
464 | return 0; | 465 | return 0; |
465 | } | 466 | } |
466 | 467 | ||
467 | int nsp_pin_config_group_set(struct pinctrl_dev *pctldev, unsigned selector, | 468 | static int nsp_pin_config_group_set(struct pinctrl_dev *pctldev, |
469 | unsigned selector, | ||
468 | unsigned long *configs, unsigned num_configs) | 470 | unsigned long *configs, unsigned num_configs) |
469 | { | 471 | { |
470 | return 0; | 472 | return 0; |
diff --git a/drivers/pinctrl/bcm/pinctrl-nsp-mux.c b/drivers/pinctrl/bcm/pinctrl-nsp-mux.c new file mode 100644 index 000000000000..4149db309c8b --- /dev/null +++ b/drivers/pinctrl/bcm/pinctrl-nsp-mux.c | |||
@@ -0,0 +1,642 @@ | |||
1 | /* Copyright (C) 2015 Broadcom Corporation | ||
2 | * | ||
3 | * This program is free software; you can redistribute it and/or | ||
4 | * modify it under the terms of the GNU General Public License as | ||
5 | * published by the Free Software Foundation version 2. | ||
6 | * | ||
7 | * This program is distributed "as is" WITHOUT ANY WARRANTY of any | ||
8 | * kind, whether express or implied; without even the implied warranty | ||
9 | * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
10 | * GNU General Public License for more details. | ||
11 | * | ||
12 | * This file contains the Northstar plus (NSP) IOMUX driver that supports | ||
13 | * group based PINMUX configuration. The Northstar plus IOMUX controller | ||
14 | * allows pins to be individually muxed to GPIO function. The NAND and MMC is | ||
15 | * a group based selection. The gpio_a 8 - 11 are muxed with gpio_b and pwm. | ||
16 | * To select PWM, one need to enable the corresponding gpio_b as well. | ||
17 | * | ||
18 | * gpio_a (8 - 11) | ||
19 | * +---------- | ||
20 | * | | ||
21 | * gpio_a (8-11) | gpio_b (0 - 3) | ||
22 | * ------------------------+-------+---------- | ||
23 | * | | ||
24 | * | pwm (0 - 3) | ||
25 | * +---------- | ||
26 | */ | ||
27 | |||
28 | #include <linux/err.h> | ||
29 | #include <linux/io.h> | ||
30 | #include <linux/of.h> | ||
31 | #include <linux/pinctrl/pinconf.h> | ||
32 | #include <linux/pinctrl/pinconf-generic.h> | ||
33 | #include <linux/pinctrl/pinctrl.h> | ||
34 | #include <linux/pinctrl/pinmux.h> | ||
35 | #include <linux/platform_device.h> | ||
36 | #include <linux/slab.h> | ||
37 | |||
38 | #include "../core.h" | ||
39 | #include "../pinctrl-utils.h" | ||
40 | |||
41 | #define NSP_MUX_BASE0 0x00 | ||
42 | #define NSP_MUX_BASE1 0x01 | ||
43 | #define NSP_MUX_BASE2 0x02 | ||
44 | /* | ||
45 | * nsp IOMUX register description | ||
46 | * | ||
47 | * @base: base 0 or base 1 | ||
48 | * @shift: bit shift for mux configuration of a group | ||
49 | * @mask: bit mask of the function | ||
50 | * @alt: alternate function to set to | ||
51 | */ | ||
52 | struct nsp_mux { | ||
53 | unsigned int base; | ||
54 | unsigned int shift; | ||
55 | unsigned int mask; | ||
56 | unsigned int alt; | ||
57 | }; | ||
58 | |||
59 | /* | ||
60 | * Keep track of nsp IOMUX configuration and prevent double configuration | ||
61 | * | ||
62 | * @nsp_mux: nsp IOMUX register description | ||
63 | * @is_configured: flag to indicate whether a mux setting has already been | ||
64 | * configured | ||
65 | */ | ||
66 | struct nsp_mux_log { | ||
67 | struct nsp_mux mux; | ||
68 | bool is_configured; | ||
69 | }; | ||
70 | |||
71 | /* | ||
72 | * Group based IOMUX configuration | ||
73 | * | ||
74 | * @name: name of the group | ||
75 | * @pins: array of pins used by this group | ||
76 | * @num_pins: total number of pins used by this group | ||
77 | * @mux: nsp group based IOMUX configuration | ||
78 | */ | ||
79 | struct nsp_pin_group { | ||
80 | const char *name; | ||
81 | const unsigned int *pins; | ||
82 | const unsigned int num_pins; | ||
83 | const struct nsp_mux mux; | ||
84 | }; | ||
85 | |||
86 | /* | ||
87 | * nsp mux function and supported pin groups | ||
88 | * | ||
89 | * @name: name of the function | ||
90 | * @groups: array of groups that can be supported by this function | ||
91 | * @num_groups: total number of groups that can be supported by this function | ||
92 | */ | ||
93 | struct nsp_pin_function { | ||
94 | const char *name; | ||
95 | const char * const *groups; | ||
96 | const unsigned int num_groups; | ||
97 | }; | ||
98 | |||
99 | /* | ||
100 | * nsp IOMUX pinctrl core | ||
101 | * | ||
102 | * @pctl: pointer to pinctrl_dev | ||
103 | * @dev: pointer to device | ||
104 | * @base0: first mux register | ||
105 | * @base1: second mux register | ||
106 | * @base2: third mux register | ||
107 | * @groups: pointer to array of groups | ||
108 | * @num_groups: total number of groups | ||
109 | * @functions: pointer to array of functions | ||
110 | * @num_functions: total number of functions | ||
111 | * @mux_log: pointer to the array of mux logs | ||
112 | * @lock: lock to protect register access | ||
113 | */ | ||
114 | struct nsp_pinctrl { | ||
115 | struct pinctrl_dev *pctl; | ||
116 | struct device *dev; | ||
117 | void __iomem *base0; | ||
118 | void __iomem *base1; | ||
119 | void __iomem *base2; | ||
120 | const struct nsp_pin_group *groups; | ||
121 | unsigned int num_groups; | ||
122 | const struct nsp_pin_function *functions; | ||
123 | unsigned int num_functions; | ||
124 | struct nsp_mux_log *mux_log; | ||
125 | spinlock_t lock; | ||
126 | }; | ||
127 | |||
128 | /* | ||
129 | * Description of a pin in nsp | ||
130 | * | ||
131 | * @pin: pin number | ||
132 | * @name: pin name | ||
133 | * @gpio_select: reg data to select GPIO | ||
134 | */ | ||
135 | struct nsp_pin { | ||
136 | unsigned int pin; | ||
137 | char *name; | ||
138 | unsigned int gpio_select; | ||
139 | }; | ||
140 | |||
141 | #define NSP_PIN_DESC(p, n, g) \ | ||
142 | { \ | ||
143 | .pin = p, \ | ||
144 | .name = n, \ | ||
145 | .gpio_select = g, \ | ||
146 | } | ||
147 | |||
148 | /* | ||
149 | * List of muxable pins in nsp | ||
150 | */ | ||
151 | static struct nsp_pin nsp_pins[] = { | ||
152 | NSP_PIN_DESC(0, "spi_clk", 1), | ||
153 | NSP_PIN_DESC(1, "spi_ss", 1), | ||
154 | NSP_PIN_DESC(2, "spi_mosi", 1), | ||
155 | NSP_PIN_DESC(3, "spi_miso", 1), | ||
156 | NSP_PIN_DESC(4, "scl", 1), | ||
157 | NSP_PIN_DESC(5, "sda", 1), | ||
158 | NSP_PIN_DESC(6, "mdc", 1), | ||
159 | NSP_PIN_DESC(7, "mdio", 1), | ||
160 | NSP_PIN_DESC(8, "pwm0", 1), | ||
161 | NSP_PIN_DESC(9, "pwm1", 1), | ||
162 | NSP_PIN_DESC(10, "pwm2", 1), | ||
163 | NSP_PIN_DESC(11, "pwm3", 1), | ||
164 | NSP_PIN_DESC(12, "uart1_rx", 1), | ||
165 | NSP_PIN_DESC(13, "uart1_tx", 1), | ||
166 | NSP_PIN_DESC(14, "uart1_cts", 1), | ||
167 | NSP_PIN_DESC(15, "uart1_rts", 1), | ||
168 | NSP_PIN_DESC(16, "uart2_rx", 1), | ||
169 | NSP_PIN_DESC(17, "uart2_tx", 1), | ||
170 | NSP_PIN_DESC(18, "synce", 0), | ||
171 | NSP_PIN_DESC(19, "sata0_led", 0), | ||
172 | NSP_PIN_DESC(20, "sata1_led", 0), | ||
173 | NSP_PIN_DESC(21, "xtal_out", 1), | ||
174 | NSP_PIN_DESC(22, "sdio_pwr", 1), | ||
175 | NSP_PIN_DESC(23, "sdio_en_1p8v", 1), | ||
176 | NSP_PIN_DESC(24, "gpio_24", 1), | ||
177 | NSP_PIN_DESC(25, "gpio_25", 1), | ||
178 | NSP_PIN_DESC(26, "p5_led0", 0), | ||
179 | NSP_PIN_DESC(27, "p5_led1", 0), | ||
180 | NSP_PIN_DESC(28, "gpio_28", 1), | ||
181 | NSP_PIN_DESC(29, "gpio_29", 1), | ||
182 | NSP_PIN_DESC(30, "gpio_30", 1), | ||
183 | NSP_PIN_DESC(31, "gpio_31", 1), | ||
184 | NSP_PIN_DESC(32, "nand_ale", 0), | ||
185 | NSP_PIN_DESC(33, "nand_ce0", 0), | ||
186 | NSP_PIN_DESC(34, "nand_r/b", 0), | ||
187 | NSP_PIN_DESC(35, "nand_dq0", 0), | ||
188 | NSP_PIN_DESC(36, "nand_dq1", 0), | ||
189 | NSP_PIN_DESC(37, "nand_dq2", 0), | ||
190 | NSP_PIN_DESC(38, "nand_dq3", 0), | ||
191 | NSP_PIN_DESC(39, "nand_dq4", 0), | ||
192 | NSP_PIN_DESC(40, "nand_dq5", 0), | ||
193 | NSP_PIN_DESC(41, "nand_dq6", 0), | ||
194 | NSP_PIN_DESC(42, "nand_dq7", 0), | ||
195 | }; | ||
196 | |||
197 | /* | ||
198 | * List of groups of pins | ||
199 | */ | ||
200 | |||
201 | static const unsigned int spi_pins[] = {0, 1, 2, 3}; | ||
202 | static const unsigned int i2c_pins[] = {4, 5}; | ||
203 | static const unsigned int mdio_pins[] = {6, 7}; | ||
204 | static const unsigned int pwm0_pins[] = {8}; | ||
205 | static const unsigned int gpio_b_0_pins[] = {8}; | ||
206 | static const unsigned int pwm1_pins[] = {9}; | ||
207 | static const unsigned int gpio_b_1_pins[] = {9}; | ||
208 | static const unsigned int pwm2_pins[] = {10}; | ||
209 | static const unsigned int gpio_b_2_pins[] = {10}; | ||
210 | static const unsigned int pwm3_pins[] = {11}; | ||
211 | static const unsigned int gpio_b_3_pins[] = {11}; | ||
212 | static const unsigned int uart1_pins[] = {12, 13, 14, 15}; | ||
213 | static const unsigned int uart2_pins[] = {16, 17}; | ||
214 | static const unsigned int synce_pins[] = {18}; | ||
215 | static const unsigned int sata0_led_pins[] = {19}; | ||
216 | static const unsigned int sata1_led_pins[] = {20}; | ||
217 | static const unsigned int xtal_out_pins[] = {21}; | ||
218 | static const unsigned int sdio_pwr_pins[] = {22}; | ||
219 | static const unsigned int sdio_1p8v_pins[] = {23}; | ||
220 | static const unsigned int switch_p05_led0_pins[] = {26}; | ||
221 | static const unsigned int switch_p05_led1_pins[] = {27}; | ||
222 | static const unsigned int nand_pins[] = {32, 33, 34, 35, 36, 37, 38, 39, | ||
223 | 40, 41, 42}; | ||
224 | static const unsigned int emmc_pins[] = {32, 33, 34, 35, 36, 37, 38, 39, | ||
225 | 40, 41, 42}; | ||
226 | |||
227 | #define NSP_PIN_GROUP(group_name, ba, sh, ma, al) \ | ||
228 | { \ | ||
229 | .name = __stringify(group_name) "_grp", \ | ||
230 | .pins = group_name ## _pins, \ | ||
231 | .num_pins = ARRAY_SIZE(group_name ## _pins), \ | ||
232 | .mux = { \ | ||
233 | .base = ba, \ | ||
234 | .shift = sh, \ | ||
235 | .mask = ma, \ | ||
236 | .alt = al, \ | ||
237 | } \ | ||
238 | } | ||
239 | |||
240 | /* | ||
241 | * List of nsp pin groups | ||
242 | */ | ||
243 | static const struct nsp_pin_group nsp_pin_groups[] = { | ||
244 | NSP_PIN_GROUP(spi, NSP_MUX_BASE0, 0, 0x0f, 0x00), | ||
245 | NSP_PIN_GROUP(i2c, NSP_MUX_BASE0, 3, 0x03, 0x00), | ||
246 | NSP_PIN_GROUP(mdio, NSP_MUX_BASE0, 5, 0x03, 0x00), | ||
247 | NSP_PIN_GROUP(gpio_b_0, NSP_MUX_BASE0, 7, 0x01, 0x00), | ||
248 | NSP_PIN_GROUP(pwm0, NSP_MUX_BASE1, 0, 0x01, 0x01), | ||
249 | NSP_PIN_GROUP(gpio_b_1, NSP_MUX_BASE0, 8, 0x01, 0x00), | ||
250 | NSP_PIN_GROUP(pwm1, NSP_MUX_BASE1, 1, 0x01, 0x01), | ||
251 | NSP_PIN_GROUP(gpio_b_2, NSP_MUX_BASE0, 9, 0x01, 0x00), | ||
252 | NSP_PIN_GROUP(pwm2, NSP_MUX_BASE1, 2, 0x01, 0x01), | ||
253 | NSP_PIN_GROUP(gpio_b_3, NSP_MUX_BASE0, 10, 0x01, 0x00), | ||
254 | NSP_PIN_GROUP(pwm3, NSP_MUX_BASE1, 3, 0x01, 0x01), | ||
255 | NSP_PIN_GROUP(uart1, NSP_MUX_BASE0, 11, 0x0f, 0x00), | ||
256 | NSP_PIN_GROUP(uart2, NSP_MUX_BASE0, 15, 0x03, 0x00), | ||
257 | NSP_PIN_GROUP(synce, NSP_MUX_BASE0, 17, 0x01, 0x01), | ||
258 | NSP_PIN_GROUP(sata0_led, NSP_MUX_BASE0, 18, 0x01, 0x01), | ||
259 | NSP_PIN_GROUP(sata1_led, NSP_MUX_BASE0, 19, 0x01, 0x01), | ||
260 | NSP_PIN_GROUP(xtal_out, NSP_MUX_BASE0, 20, 0x01, 0x00), | ||
261 | NSP_PIN_GROUP(sdio_pwr, NSP_MUX_BASE0, 21, 0x01, 0x00), | ||
262 | NSP_PIN_GROUP(sdio_1p8v, NSP_MUX_BASE0, 22, 0x01, 0x00), | ||
263 | NSP_PIN_GROUP(switch_p05_led0, NSP_MUX_BASE0, 26, 0x01, 0x01), | ||
264 | NSP_PIN_GROUP(switch_p05_led1, NSP_MUX_BASE0, 27, 0x01, 0x01), | ||
265 | NSP_PIN_GROUP(nand, NSP_MUX_BASE2, 0, 0x01, 0x00), | ||
266 | NSP_PIN_GROUP(emmc, NSP_MUX_BASE2, 0, 0x01, 0x01) | ||
267 | }; | ||
268 | |||
269 | /* | ||
270 | * List of groups supported by functions | ||
271 | */ | ||
272 | |||
273 | static const char * const spi_grps[] = {"spi_grp"}; | ||
274 | static const char * const i2c_grps[] = {"i2c_grp"}; | ||
275 | static const char * const mdio_grps[] = {"mdio_grp"}; | ||
276 | static const char * const pwm_grps[] = {"pwm0_grp", "pwm1_grp", "pwm2_grp" | ||
277 | , "pwm3_grp"}; | ||
278 | static const char * const gpio_b_grps[] = {"gpio_b_0_grp", "gpio_b_1_grp", | ||
279 | "gpio_b_2_grp", "gpio_b_3_grp"}; | ||
280 | static const char * const uart1_grps[] = {"uart1_grp"}; | ||
281 | static const char * const uart2_grps[] = {"uart2_grp"}; | ||
282 | static const char * const synce_grps[] = {"synce_grp"}; | ||
283 | static const char * const sata_led_grps[] = {"sata0_led_grp", "sata1_led_grp"}; | ||
284 | static const char * const xtal_out_grps[] = {"xtal_out_grp"}; | ||
285 | static const char * const sdio_grps[] = {"sdio_pwr_grp", "sdio_1p8v_grp"}; | ||
286 | static const char * const switch_led_grps[] = {"switch_p05_led0_grp", | ||
287 | "switch_p05_led1_grp"}; | ||
288 | static const char * const nand_grps[] = {"nand_grp"}; | ||
289 | static const char * const emmc_grps[] = {"emmc_grp"}; | ||
290 | |||
291 | #define NSP_PIN_FUNCTION(func) \ | ||
292 | { \ | ||
293 | .name = #func, \ | ||
294 | .groups = func ## _grps, \ | ||
295 | .num_groups = ARRAY_SIZE(func ## _grps), \ | ||
296 | } | ||
297 | |||
298 | /* | ||
299 | * List of supported functions in nsp | ||
300 | */ | ||
301 | static const struct nsp_pin_function nsp_pin_functions[] = { | ||
302 | NSP_PIN_FUNCTION(spi), | ||
303 | NSP_PIN_FUNCTION(i2c), | ||
304 | NSP_PIN_FUNCTION(mdio), | ||
305 | NSP_PIN_FUNCTION(pwm), | ||
306 | NSP_PIN_FUNCTION(gpio_b), | ||
307 | NSP_PIN_FUNCTION(uart1), | ||
308 | NSP_PIN_FUNCTION(uart2), | ||
309 | NSP_PIN_FUNCTION(synce), | ||
310 | NSP_PIN_FUNCTION(sata_led), | ||
311 | NSP_PIN_FUNCTION(xtal_out), | ||
312 | NSP_PIN_FUNCTION(sdio), | ||
313 | NSP_PIN_FUNCTION(switch_led), | ||
314 | NSP_PIN_FUNCTION(nand), | ||
315 | NSP_PIN_FUNCTION(emmc) | ||
316 | }; | ||
317 | |||
318 | static int nsp_get_groups_count(struct pinctrl_dev *pctrl_dev) | ||
319 | { | ||
320 | struct nsp_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); | ||
321 | |||
322 | return pinctrl->num_groups; | ||
323 | } | ||
324 | |||
325 | static const char *nsp_get_group_name(struct pinctrl_dev *pctrl_dev, | ||
326 | unsigned int selector) | ||
327 | { | ||
328 | struct nsp_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); | ||
329 | |||
330 | return pinctrl->groups[selector].name; | ||
331 | } | ||
332 | |||
333 | static int nsp_get_group_pins(struct pinctrl_dev *pctrl_dev, | ||
334 | unsigned int selector, const unsigned int **pins, | ||
335 | unsigned int *num_pins) | ||
336 | { | ||
337 | struct nsp_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); | ||
338 | |||
339 | *pins = pinctrl->groups[selector].pins; | ||
340 | *num_pins = pinctrl->groups[selector].num_pins; | ||
341 | |||
342 | return 0; | ||
343 | } | ||
344 | |||
345 | static void nsp_pin_dbg_show(struct pinctrl_dev *pctrl_dev, | ||
346 | struct seq_file *s, unsigned int offset) | ||
347 | { | ||
348 | seq_printf(s, " %s", dev_name(pctrl_dev->dev)); | ||
349 | } | ||
350 | |||
351 | static struct pinctrl_ops nsp_pinctrl_ops = { | ||
352 | .get_groups_count = nsp_get_groups_count, | ||
353 | .get_group_name = nsp_get_group_name, | ||
354 | .get_group_pins = nsp_get_group_pins, | ||
355 | .pin_dbg_show = nsp_pin_dbg_show, | ||
356 | .dt_node_to_map = pinconf_generic_dt_node_to_map_group, | ||
357 | .dt_free_map = pinctrl_utils_free_map, | ||
358 | }; | ||
359 | |||
360 | static int nsp_get_functions_count(struct pinctrl_dev *pctrl_dev) | ||
361 | { | ||
362 | struct nsp_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); | ||
363 | |||
364 | return pinctrl->num_functions; | ||
365 | } | ||
366 | |||
367 | static const char *nsp_get_function_name(struct pinctrl_dev *pctrl_dev, | ||
368 | unsigned int selector) | ||
369 | { | ||
370 | struct nsp_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); | ||
371 | |||
372 | return pinctrl->functions[selector].name; | ||
373 | } | ||
374 | |||
375 | static int nsp_get_function_groups(struct pinctrl_dev *pctrl_dev, | ||
376 | unsigned int selector, | ||
377 | const char * const **groups, | ||
378 | unsigned * const num_groups) | ||
379 | { | ||
380 | struct nsp_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); | ||
381 | |||
382 | *groups = pinctrl->functions[selector].groups; | ||
383 | *num_groups = pinctrl->functions[selector].num_groups; | ||
384 | |||
385 | return 0; | ||
386 | } | ||
387 | |||
388 | static int nsp_pinmux_set(struct nsp_pinctrl *pinctrl, | ||
389 | const struct nsp_pin_function *func, | ||
390 | const struct nsp_pin_group *grp, | ||
391 | struct nsp_mux_log *mux_log) | ||
392 | { | ||
393 | const struct nsp_mux *mux = &grp->mux; | ||
394 | int i; | ||
395 | u32 val, mask; | ||
396 | unsigned long flags; | ||
397 | void __iomem *base_address; | ||
398 | |||
399 | for (i = 0; i < pinctrl->num_groups; i++) { | ||
400 | if ((mux->shift != mux_log[i].mux.shift) || | ||
401 | (mux->base != mux_log[i].mux.base)) | ||
402 | continue; | ||
403 | |||
404 | /* if this is a new configuration, just do it! */ | ||
405 | if (!mux_log[i].is_configured) | ||
406 | break; | ||
407 | |||
408 | /* | ||
409 | * IOMUX has been configured previously and one is trying to | ||
410 | * configure it to a different function | ||
411 | */ | ||
412 | if (mux_log[i].mux.alt != mux->alt) { | ||
413 | dev_err(pinctrl->dev, | ||
414 | "double configuration error detected!\n"); | ||
415 | dev_err(pinctrl->dev, "func:%s grp:%s\n", | ||
416 | func->name, grp->name); | ||
417 | return -EINVAL; | ||
418 | } | ||
419 | |||
420 | return 0; | ||
421 | } | ||
422 | if (i == pinctrl->num_groups) | ||
423 | return -EINVAL; | ||
424 | |||
425 | mask = mux->mask; | ||
426 | mux_log[i].mux.alt = mux->alt; | ||
427 | mux_log[i].is_configured = true; | ||
428 | |||
429 | switch (mux->base) { | ||
430 | case NSP_MUX_BASE0: | ||
431 | base_address = pinctrl->base0; | ||
432 | break; | ||
433 | |||
434 | case NSP_MUX_BASE1: | ||
435 | base_address = pinctrl->base1; | ||
436 | break; | ||
437 | |||
438 | case NSP_MUX_BASE2: | ||
439 | base_address = pinctrl->base2; | ||
440 | break; | ||
441 | |||
442 | default: | ||
443 | return -EINVAL; | ||
444 | } | ||
445 | |||
446 | spin_lock_irqsave(&pinctrl->lock, flags); | ||
447 | val = readl(base_address); | ||
448 | val &= ~(mask << grp->mux.shift); | ||
449 | val |= grp->mux.alt << grp->mux.shift; | ||
450 | writel(val, base_address); | ||
451 | spin_unlock_irqrestore(&pinctrl->lock, flags); | ||
452 | |||
453 | return 0; | ||
454 | } | ||
455 | |||
456 | static int nsp_pinmux_enable(struct pinctrl_dev *pctrl_dev, | ||
457 | unsigned int func_select, unsigned int grp_select) | ||
458 | { | ||
459 | struct nsp_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); | ||
460 | const struct nsp_pin_function *func; | ||
461 | const struct nsp_pin_group *grp; | ||
462 | |||
463 | if (grp_select > pinctrl->num_groups || | ||
464 | func_select > pinctrl->num_functions) | ||
465 | return -EINVAL; | ||
466 | |||
467 | func = &pinctrl->functions[func_select]; | ||
468 | grp = &pinctrl->groups[grp_select]; | ||
469 | |||
470 | dev_dbg(pctrl_dev->dev, "func:%u name:%s grp:%u name:%s\n", | ||
471 | func_select, func->name, grp_select, grp->name); | ||
472 | |||
473 | dev_dbg(pctrl_dev->dev, "shift:%u alt:%u\n", grp->mux.shift, | ||
474 | grp->mux.alt); | ||
475 | |||
476 | return nsp_pinmux_set(pinctrl, func, grp, pinctrl->mux_log); | ||
477 | } | ||
478 | |||
479 | |||
480 | static int nsp_gpio_request_enable(struct pinctrl_dev *pctrl_dev, | ||
481 | struct pinctrl_gpio_range *range, | ||
482 | unsigned int pin) | ||
483 | { | ||
484 | struct nsp_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); | ||
485 | u32 *gpio_select = pctrl_dev->desc->pins[pin].drv_data; | ||
486 | u32 val; | ||
487 | unsigned long flags; | ||
488 | |||
489 | spin_lock_irqsave(&pinctrl->lock, flags); | ||
490 | val = readl(pinctrl->base0); | ||
491 | if ((val & BIT(pin)) != (*gpio_select << pin)) { | ||
492 | val &= ~BIT(pin); | ||
493 | val |= *gpio_select << pin; | ||
494 | writel(val, pinctrl->base0); | ||
495 | } | ||
496 | spin_unlock_irqrestore(&pinctrl->lock, flags); | ||
497 | |||
498 | return 0; | ||
499 | } | ||
500 | |||
501 | static void nsp_gpio_disable_free(struct pinctrl_dev *pctrl_dev, | ||
502 | struct pinctrl_gpio_range *range, | ||
503 | unsigned int pin) | ||
504 | { | ||
505 | struct nsp_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); | ||
506 | u32 *gpio_select = pctrl_dev->desc->pins[pin].drv_data; | ||
507 | u32 val; | ||
508 | unsigned long flags; | ||
509 | |||
510 | spin_lock_irqsave(&pinctrl->lock, flags); | ||
511 | val = readl(pinctrl->base0); | ||
512 | if ((val & (1 << pin)) == (*gpio_select << pin)) { | ||
513 | val &= ~(1 << pin); | ||
514 | if (!(*gpio_select)) | ||
515 | val |= (1 << pin); | ||
516 | writel(val, pinctrl->base0); | ||
517 | } | ||
518 | spin_unlock_irqrestore(&pinctrl->lock, flags); | ||
519 | } | ||
520 | |||
521 | static struct pinmux_ops nsp_pinmux_ops = { | ||
522 | .get_functions_count = nsp_get_functions_count, | ||
523 | .get_function_name = nsp_get_function_name, | ||
524 | .get_function_groups = nsp_get_function_groups, | ||
525 | .set_mux = nsp_pinmux_enable, | ||
526 | .gpio_request_enable = nsp_gpio_request_enable, | ||
527 | .gpio_disable_free = nsp_gpio_disable_free, | ||
528 | }; | ||
529 | |||
530 | static struct pinctrl_desc nsp_pinctrl_desc = { | ||
531 | .name = "nsp-pinmux", | ||
532 | .pctlops = &nsp_pinctrl_ops, | ||
533 | .pmxops = &nsp_pinmux_ops, | ||
534 | }; | ||
535 | |||
536 | static int nsp_mux_log_init(struct nsp_pinctrl *pinctrl) | ||
537 | { | ||
538 | struct nsp_mux_log *log; | ||
539 | unsigned int i; | ||
540 | u32 no_of_groups = ARRAY_SIZE(nsp_pin_groups); | ||
541 | |||
542 | pinctrl->mux_log = devm_kcalloc(pinctrl->dev, no_of_groups, | ||
543 | sizeof(struct nsp_mux_log), | ||
544 | GFP_KERNEL); | ||
545 | if (!pinctrl->mux_log) | ||
546 | return -ENOMEM; | ||
547 | |||
548 | for (i = 0; i < no_of_groups; i++) { | ||
549 | log = &pinctrl->mux_log[i]; | ||
550 | log->mux.base = nsp_pin_groups[i].mux.base; | ||
551 | log->mux.shift = nsp_pin_groups[i].mux.shift; | ||
552 | log->mux.alt = 0; | ||
553 | log->is_configured = false; | ||
554 | } | ||
555 | |||
556 | return 0; | ||
557 | } | ||
558 | |||
559 | static int nsp_pinmux_probe(struct platform_device *pdev) | ||
560 | { | ||
561 | struct nsp_pinctrl *pinctrl; | ||
562 | struct resource *res; | ||
563 | int i, ret; | ||
564 | struct pinctrl_pin_desc *pins; | ||
565 | unsigned int num_pins = ARRAY_SIZE(nsp_pins); | ||
566 | |||
567 | pinctrl = devm_kzalloc(&pdev->dev, sizeof(*pinctrl), GFP_KERNEL); | ||
568 | if (!pinctrl) | ||
569 | return -ENOMEM; | ||
570 | pinctrl->dev = &pdev->dev; | ||
571 | platform_set_drvdata(pdev, pinctrl); | ||
572 | spin_lock_init(&pinctrl->lock); | ||
573 | |||
574 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | ||
575 | pinctrl->base0 = devm_ioremap_resource(&pdev->dev, res); | ||
576 | if (IS_ERR(pinctrl->base0)) | ||
577 | return PTR_ERR(pinctrl->base0); | ||
578 | |||
579 | res = platform_get_resource(pdev, IORESOURCE_MEM, 1); | ||
580 | pinctrl->base1 = devm_ioremap_nocache(&pdev->dev, res->start, | ||
581 | resource_size(res)); | ||
582 | if (!pinctrl->base1) { | ||
583 | dev_err(&pdev->dev, "unable to map I/O space\n"); | ||
584 | return -ENOMEM; | ||
585 | } | ||
586 | |||
587 | res = platform_get_resource(pdev, IORESOURCE_MEM, 2); | ||
588 | pinctrl->base2 = devm_ioremap_resource(&pdev->dev, res); | ||
589 | if (IS_ERR(pinctrl->base2)) | ||
590 | return PTR_ERR(pinctrl->base2); | ||
591 | |||
592 | ret = nsp_mux_log_init(pinctrl); | ||
593 | if (ret) { | ||
594 | dev_err(&pdev->dev, "unable to initialize IOMUX log\n"); | ||
595 | return ret; | ||
596 | } | ||
597 | |||
598 | pins = devm_kcalloc(&pdev->dev, num_pins, sizeof(*pins), GFP_KERNEL); | ||
599 | if (!pins) | ||
600 | return -ENOMEM; | ||
601 | |||
602 | for (i = 0; i < num_pins; i++) { | ||
603 | pins[i].number = nsp_pins[i].pin; | ||
604 | pins[i].name = nsp_pins[i].name; | ||
605 | pins[i].drv_data = &nsp_pins[i].gpio_select; | ||
606 | } | ||
607 | |||
608 | pinctrl->groups = nsp_pin_groups; | ||
609 | pinctrl->num_groups = ARRAY_SIZE(nsp_pin_groups); | ||
610 | pinctrl->functions = nsp_pin_functions; | ||
611 | pinctrl->num_functions = ARRAY_SIZE(nsp_pin_functions); | ||
612 | nsp_pinctrl_desc.pins = pins; | ||
613 | nsp_pinctrl_desc.npins = num_pins; | ||
614 | |||
615 | pinctrl->pctl = devm_pinctrl_register(&pdev->dev, &nsp_pinctrl_desc, | ||
616 | pinctrl); | ||
617 | if (IS_ERR(pinctrl->pctl)) { | ||
618 | dev_err(&pdev->dev, "unable to register nsp IOMUX pinctrl\n"); | ||
619 | return PTR_ERR(pinctrl->pctl); | ||
620 | } | ||
621 | |||
622 | return 0; | ||
623 | } | ||
624 | |||
625 | static const struct of_device_id nsp_pinmux_of_match[] = { | ||
626 | { .compatible = "brcm,nsp-pinmux" }, | ||
627 | { } | ||
628 | }; | ||
629 | |||
630 | static struct platform_driver nsp_pinmux_driver = { | ||
631 | .driver = { | ||
632 | .name = "nsp-pinmux", | ||
633 | .of_match_table = nsp_pinmux_of_match, | ||
634 | }, | ||
635 | .probe = nsp_pinmux_probe, | ||
636 | }; | ||
637 | |||
638 | static int __init nsp_pinmux_init(void) | ||
639 | { | ||
640 | return platform_driver_register(&nsp_pinmux_driver); | ||
641 | } | ||
642 | arch_initcall(nsp_pinmux_init); | ||
diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c index 98d2a1bb44cb..fb38e208f32d 100644 --- a/drivers/pinctrl/core.c +++ b/drivers/pinctrl/core.c | |||
@@ -225,13 +225,14 @@ static void pinctrl_free_pindescs(struct pinctrl_dev *pctldev, | |||
225 | } | 225 | } |
226 | 226 | ||
227 | static int pinctrl_register_one_pin(struct pinctrl_dev *pctldev, | 227 | static int pinctrl_register_one_pin(struct pinctrl_dev *pctldev, |
228 | unsigned number, const char *name) | 228 | const struct pinctrl_pin_desc *pin) |
229 | { | 229 | { |
230 | struct pin_desc *pindesc; | 230 | struct pin_desc *pindesc; |
231 | 231 | ||
232 | pindesc = pin_desc_get(pctldev, number); | 232 | pindesc = pin_desc_get(pctldev, pin->number); |
233 | if (pindesc != NULL) { | 233 | if (pindesc != NULL) { |
234 | dev_err(pctldev->dev, "pin %d already registered\n", number); | 234 | dev_err(pctldev->dev, "pin %d already registered\n", |
235 | pin->number); | ||
235 | return -EINVAL; | 236 | return -EINVAL; |
236 | } | 237 | } |
237 | 238 | ||
@@ -245,10 +246,10 @@ static int pinctrl_register_one_pin(struct pinctrl_dev *pctldev, | |||
245 | pindesc->pctldev = pctldev; | 246 | pindesc->pctldev = pctldev; |
246 | 247 | ||
247 | /* Copy basic pin info */ | 248 | /* Copy basic pin info */ |
248 | if (name) { | 249 | if (pin->name) { |
249 | pindesc->name = name; | 250 | pindesc->name = pin->name; |
250 | } else { | 251 | } else { |
251 | pindesc->name = kasprintf(GFP_KERNEL, "PIN%u", number); | 252 | pindesc->name = kasprintf(GFP_KERNEL, "PIN%u", pin->number); |
252 | if (pindesc->name == NULL) { | 253 | if (pindesc->name == NULL) { |
253 | kfree(pindesc); | 254 | kfree(pindesc); |
254 | return -ENOMEM; | 255 | return -ENOMEM; |
@@ -256,9 +257,11 @@ static int pinctrl_register_one_pin(struct pinctrl_dev *pctldev, | |||
256 | pindesc->dynamic_name = true; | 257 | pindesc->dynamic_name = true; |
257 | } | 258 | } |
258 | 259 | ||
259 | radix_tree_insert(&pctldev->pin_desc_tree, number, pindesc); | 260 | pindesc->drv_data = pin->drv_data; |
261 | |||
262 | radix_tree_insert(&pctldev->pin_desc_tree, pin->number, pindesc); | ||
260 | pr_debug("registered pin %d (%s) on %s\n", | 263 | pr_debug("registered pin %d (%s) on %s\n", |
261 | number, pindesc->name, pctldev->desc->name); | 264 | pin->number, pindesc->name, pctldev->desc->name); |
262 | return 0; | 265 | return 0; |
263 | } | 266 | } |
264 | 267 | ||
@@ -270,8 +273,7 @@ static int pinctrl_register_pins(struct pinctrl_dev *pctldev, | |||
270 | int ret = 0; | 273 | int ret = 0; |
271 | 274 | ||
272 | for (i = 0; i < num_descs; i++) { | 275 | for (i = 0; i < num_descs; i++) { |
273 | ret = pinctrl_register_one_pin(pctldev, | 276 | ret = pinctrl_register_one_pin(pctldev, &pins[i]); |
274 | pins[i].number, pins[i].name); | ||
275 | if (ret) | 277 | if (ret) |
276 | return ret; | 278 | return ret; |
277 | } | 279 | } |
@@ -1367,8 +1369,7 @@ static int pinctrl_pins_show(struct seq_file *s, void *what) | |||
1367 | if (desc == NULL) | 1369 | if (desc == NULL) |
1368 | continue; | 1370 | continue; |
1369 | 1371 | ||
1370 | seq_printf(s, "pin %d (%s) ", pin, | 1372 | seq_printf(s, "pin %d (%s) ", pin, desc->name); |
1371 | desc->name ? desc->name : "unnamed"); | ||
1372 | 1373 | ||
1373 | /* Driver-specific info per pin */ | 1374 | /* Driver-specific info per pin */ |
1374 | if (ops->pin_dbg_show) | 1375 | if (ops->pin_dbg_show) |
diff --git a/drivers/pinctrl/core.h b/drivers/pinctrl/core.h index ca08723b9ee1..747c423c11f3 100644 --- a/drivers/pinctrl/core.h +++ b/drivers/pinctrl/core.h | |||
@@ -134,6 +134,7 @@ struct pinctrl_setting { | |||
134 | * @name: a name for the pin, e.g. the name of the pin/pad/finger on a | 134 | * @name: a name for the pin, e.g. the name of the pin/pad/finger on a |
135 | * datasheet or such | 135 | * datasheet or such |
136 | * @dynamic_name: if the name of this pin was dynamically allocated | 136 | * @dynamic_name: if the name of this pin was dynamically allocated |
137 | * @drv_data: driver-defined per-pin data. pinctrl core does not touch this | ||
137 | * @mux_usecount: If zero, the pin is not claimed, and @owner should be NULL. | 138 | * @mux_usecount: If zero, the pin is not claimed, and @owner should be NULL. |
138 | * If non-zero, this pin is claimed by @owner. This field is an integer | 139 | * If non-zero, this pin is claimed by @owner. This field is an integer |
139 | * rather than a boolean, since pinctrl_get() might process multiple | 140 | * rather than a boolean, since pinctrl_get() might process multiple |
@@ -148,6 +149,7 @@ struct pin_desc { | |||
148 | struct pinctrl_dev *pctldev; | 149 | struct pinctrl_dev *pctldev; |
149 | const char *name; | 150 | const char *name; |
150 | bool dynamic_name; | 151 | bool dynamic_name; |
152 | void *drv_data; | ||
151 | /* These fields only added when supporting pinmux drivers */ | 153 | /* These fields only added when supporting pinmux drivers */ |
152 | #ifdef CONFIG_PINMUX | 154 | #ifdef CONFIG_PINMUX |
153 | unsigned mux_usecount; | 155 | unsigned mux_usecount; |
diff --git a/drivers/pinctrl/devicetree.c b/drivers/pinctrl/devicetree.c index fe04e748dfe4..54dad89fc9bf 100644 --- a/drivers/pinctrl/devicetree.c +++ b/drivers/pinctrl/devicetree.c | |||
@@ -195,8 +195,13 @@ int pinctrl_dt_to_map(struct pinctrl *p) | |||
195 | propname = kasprintf(GFP_KERNEL, "pinctrl-%d", state); | 195 | propname = kasprintf(GFP_KERNEL, "pinctrl-%d", state); |
196 | prop = of_find_property(np, propname, &size); | 196 | prop = of_find_property(np, propname, &size); |
197 | kfree(propname); | 197 | kfree(propname); |
198 | if (!prop) | 198 | if (!prop) { |
199 | if (state == 0) { | ||
200 | of_node_put(np); | ||
201 | return -ENODEV; | ||
202 | } | ||
199 | break; | 203 | break; |
204 | } | ||
200 | list = prop->value; | 205 | list = prop->value; |
201 | size /= sizeof(*list); | 206 | size /= sizeof(*list); |
202 | 207 | ||
diff --git a/drivers/pinctrl/freescale/pinctrl-imx.c b/drivers/pinctrl/freescale/pinctrl-imx.c index eccb47480e1d..71391757938b 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx.c +++ b/drivers/pinctrl/freescale/pinctrl-imx.c | |||
@@ -16,7 +16,6 @@ | |||
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/io.h> | 17 | #include <linux/io.h> |
18 | #include <linux/mfd/syscon.h> | 18 | #include <linux/mfd/syscon.h> |
19 | #include <linux/module.h> | ||
20 | #include <linux/of.h> | 19 | #include <linux/of.h> |
21 | #include <linux/of_device.h> | 20 | #include <linux/of_device.h> |
22 | #include <linux/of_address.h> | 21 | #include <linux/of_address.h> |
@@ -46,7 +45,7 @@ struct imx_pinctrl { | |||
46 | const struct imx_pinctrl_soc_info *info; | 45 | const struct imx_pinctrl_soc_info *info; |
47 | }; | 46 | }; |
48 | 47 | ||
49 | static const inline struct imx_pin_group *imx_pinctrl_find_group_by_name( | 48 | static inline const struct imx_pin_group *imx_pinctrl_find_group_by_name( |
50 | const struct imx_pinctrl_soc_info *info, | 49 | const struct imx_pinctrl_soc_info *info, |
51 | const char *name) | 50 | const char *name) |
52 | { | 51 | { |
@@ -513,13 +512,6 @@ static const struct pinconf_ops imx_pinconf_ops = { | |||
513 | .pin_config_group_dbg_show = imx_pinconf_group_dbg_show, | 512 | .pin_config_group_dbg_show = imx_pinconf_group_dbg_show, |
514 | }; | 513 | }; |
515 | 514 | ||
516 | static struct pinctrl_desc imx_pinctrl_desc = { | ||
517 | .pctlops = &imx_pctrl_ops, | ||
518 | .pmxops = &imx_pmx_ops, | ||
519 | .confops = &imx_pinconf_ops, | ||
520 | .owner = THIS_MODULE, | ||
521 | }; | ||
522 | |||
523 | /* | 515 | /* |
524 | * Each pin represented in fsl,pins consists of 5 u32 PIN_FUNC_ID and | 516 | * Each pin represented in fsl,pins consists of 5 u32 PIN_FUNC_ID and |
525 | * 1 u32 CONFIG, so 24 types in total for each pin. | 517 | * 1 u32 CONFIG, so 24 types in total for each pin. |
@@ -722,6 +714,7 @@ int imx_pinctrl_probe(struct platform_device *pdev, | |||
722 | { | 714 | { |
723 | struct regmap_config config = { .name = "gpr" }; | 715 | struct regmap_config config = { .name = "gpr" }; |
724 | struct device_node *dev_np = pdev->dev.of_node; | 716 | struct device_node *dev_np = pdev->dev.of_node; |
717 | struct pinctrl_desc *imx_pinctrl_desc; | ||
725 | struct device_node *np; | 718 | struct device_node *np; |
726 | struct imx_pinctrl *ipctl; | 719 | struct imx_pinctrl *ipctl; |
727 | struct resource *res; | 720 | struct resource *res; |
@@ -776,9 +769,18 @@ int imx_pinctrl_probe(struct platform_device *pdev, | |||
776 | } | 769 | } |
777 | } | 770 | } |
778 | 771 | ||
779 | imx_pinctrl_desc.name = dev_name(&pdev->dev); | 772 | imx_pinctrl_desc = devm_kzalloc(&pdev->dev, sizeof(*imx_pinctrl_desc), |
780 | imx_pinctrl_desc.pins = info->pins; | 773 | GFP_KERNEL); |
781 | imx_pinctrl_desc.npins = info->npins; | 774 | if (!imx_pinctrl_desc) |
775 | return -ENOMEM; | ||
776 | |||
777 | imx_pinctrl_desc->name = dev_name(&pdev->dev); | ||
778 | imx_pinctrl_desc->pins = info->pins; | ||
779 | imx_pinctrl_desc->npins = info->npins; | ||
780 | imx_pinctrl_desc->pctlops = &imx_pctrl_ops, | ||
781 | imx_pinctrl_desc->pmxops = &imx_pmx_ops, | ||
782 | imx_pinctrl_desc->confops = &imx_pinconf_ops, | ||
783 | imx_pinctrl_desc->owner = THIS_MODULE, | ||
782 | 784 | ||
783 | ret = imx_pinctrl_probe_dt(pdev, info); | 785 | ret = imx_pinctrl_probe_dt(pdev, info); |
784 | if (ret) { | 786 | if (ret) { |
@@ -789,7 +791,8 @@ int imx_pinctrl_probe(struct platform_device *pdev, | |||
789 | ipctl->info = info; | 791 | ipctl->info = info; |
790 | ipctl->dev = info->dev; | 792 | ipctl->dev = info->dev; |
791 | platform_set_drvdata(pdev, ipctl); | 793 | platform_set_drvdata(pdev, ipctl); |
792 | ipctl->pctl = devm_pinctrl_register(&pdev->dev, &imx_pinctrl_desc, ipctl); | 794 | ipctl->pctl = devm_pinctrl_register(&pdev->dev, |
795 | imx_pinctrl_desc, ipctl); | ||
793 | if (IS_ERR(ipctl->pctl)) { | 796 | if (IS_ERR(ipctl->pctl)) { |
794 | dev_err(&pdev->dev, "could not register IMX pinctrl driver\n"); | 797 | dev_err(&pdev->dev, "could not register IMX pinctrl driver\n"); |
795 | return PTR_ERR(ipctl->pctl); | 798 | return PTR_ERR(ipctl->pctl); |
diff --git a/drivers/pinctrl/freescale/pinctrl-imx1-core.c b/drivers/pinctrl/freescale/pinctrl-imx1-core.c index b4400cb19b61..a4e9f430d452 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx1-core.c +++ b/drivers/pinctrl/freescale/pinctrl-imx1-core.c | |||
@@ -19,7 +19,6 @@ | |||
19 | #include <linux/err.h> | 19 | #include <linux/err.h> |
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/io.h> | 21 | #include <linux/io.h> |
22 | #include <linux/module.h> | ||
23 | #include <linux/of.h> | 22 | #include <linux/of.h> |
24 | #include <linux/of_device.h> | 23 | #include <linux/of_device.h> |
25 | #include <linux/pinctrl/machine.h> | 24 | #include <linux/pinctrl/machine.h> |
@@ -157,7 +156,7 @@ static int imx1_read_bit(struct imx1_pinctrl *ipctl, unsigned int pin_id, | |||
157 | return !!(readl(reg) & BIT(offset)); | 156 | return !!(readl(reg) & BIT(offset)); |
158 | } | 157 | } |
159 | 158 | ||
160 | static const inline struct imx1_pin_group *imx1_pinctrl_find_group_by_name( | 159 | static inline const struct imx1_pin_group *imx1_pinctrl_find_group_by_name( |
161 | const struct imx1_pinctrl_soc_info *info, | 160 | const struct imx1_pinctrl_soc_info *info, |
162 | const char *name) | 161 | const char *name) |
163 | { | 162 | { |
diff --git a/drivers/pinctrl/freescale/pinctrl-imx1.c b/drivers/pinctrl/freescale/pinctrl-imx1.c index 04723455db58..fc8efc748734 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx1.c +++ b/drivers/pinctrl/freescale/pinctrl-imx1.c | |||
@@ -9,7 +9,7 @@ | |||
9 | * (at your option) any later version. | 9 | * (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/module.h> | 12 | #include <linux/init.h> |
13 | #include <linux/of.h> | 13 | #include <linux/of.h> |
14 | #include <linux/platform_device.h> | 14 | #include <linux/platform_device.h> |
15 | #include <linux/pinctrl/pinctrl.h> | 15 | #include <linux/pinctrl/pinctrl.h> |
@@ -262,7 +262,6 @@ static const struct of_device_id imx1_pinctrl_of_match[] = { | |||
262 | { .compatible = "fsl,imx1-iomuxc", }, | 262 | { .compatible = "fsl,imx1-iomuxc", }, |
263 | { } | 263 | { } |
264 | }; | 264 | }; |
265 | MODULE_DEVICE_TABLE(of, imx1_pinctrl_of_match); | ||
266 | 265 | ||
267 | static struct platform_driver imx1_pinctrl_driver = { | 266 | static struct platform_driver imx1_pinctrl_driver = { |
268 | .driver = { | 267 | .driver = { |
@@ -270,8 +269,4 @@ static struct platform_driver imx1_pinctrl_driver = { | |||
270 | .of_match_table = imx1_pinctrl_of_match, | 269 | .of_match_table = imx1_pinctrl_of_match, |
271 | }, | 270 | }, |
272 | }; | 271 | }; |
273 | module_platform_driver_probe(imx1_pinctrl_driver, imx1_pinctrl_probe); | 272 | builtin_platform_driver_probe(imx1_pinctrl_driver, imx1_pinctrl_probe); |
274 | |||
275 | MODULE_AUTHOR("Alexander Shiyan <shc_work@mail.ru>"); | ||
276 | MODULE_DESCRIPTION("Freescale i.MX1 pinctrl driver"); | ||
277 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/pinctrl/freescale/pinctrl-imx21.c b/drivers/pinctrl/freescale/pinctrl-imx21.c index aa1221f4dbb7..73e26bc12f09 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx21.c +++ b/drivers/pinctrl/freescale/pinctrl-imx21.c | |||
@@ -9,7 +9,7 @@ | |||
9 | * (at your option) any later version. | 9 | * (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/module.h> | 12 | #include <linux/init.h> |
13 | #include <linux/of.h> | 13 | #include <linux/of.h> |
14 | #include <linux/platform_device.h> | 14 | #include <linux/platform_device.h> |
15 | #include <linux/pinctrl/pinctrl.h> | 15 | #include <linux/pinctrl/pinctrl.h> |
@@ -325,7 +325,6 @@ static const struct of_device_id imx21_pinctrl_of_match[] = { | |||
325 | { .compatible = "fsl,imx21-iomuxc", }, | 325 | { .compatible = "fsl,imx21-iomuxc", }, |
326 | { } | 326 | { } |
327 | }; | 327 | }; |
328 | MODULE_DEVICE_TABLE(of, imx21_pinctrl_of_match); | ||
329 | 328 | ||
330 | static struct platform_driver imx21_pinctrl_driver = { | 329 | static struct platform_driver imx21_pinctrl_driver = { |
331 | .driver = { | 330 | .driver = { |
@@ -333,8 +332,4 @@ static struct platform_driver imx21_pinctrl_driver = { | |||
333 | .of_match_table = imx21_pinctrl_of_match, | 332 | .of_match_table = imx21_pinctrl_of_match, |
334 | }, | 333 | }, |
335 | }; | 334 | }; |
336 | module_platform_driver_probe(imx21_pinctrl_driver, imx21_pinctrl_probe); | 335 | builtin_platform_driver_probe(imx21_pinctrl_driver, imx21_pinctrl_probe); |
337 | |||
338 | MODULE_AUTHOR("Alexander Shiyan <shc_work@mail.ru>"); | ||
339 | MODULE_DESCRIPTION("Freescale i.MX21 pinctrl driver"); | ||
340 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/pinctrl/freescale/pinctrl-imx23.c b/drivers/pinctrl/freescale/pinctrl-imx23.c index 955cbf4f094f..89b4f160138f 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx23.c +++ b/drivers/pinctrl/freescale/pinctrl-imx23.c | |||
@@ -1,4 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Freescale i.MX23 pinctrl driver | ||
3 | * | ||
4 | * Author: Shawn Guo <shawn.guo@linaro.org> | ||
2 | * Copyright 2012 Freescale Semiconductor, Inc. | 5 | * Copyright 2012 Freescale Semiconductor, Inc. |
3 | * | 6 | * |
4 | * The code contained herein is licensed under the GNU General Public | 7 | * The code contained herein is licensed under the GNU General Public |
@@ -10,7 +13,6 @@ | |||
10 | */ | 13 | */ |
11 | 14 | ||
12 | #include <linux/init.h> | 15 | #include <linux/init.h> |
13 | #include <linux/module.h> | ||
14 | #include <linux/of_device.h> | 16 | #include <linux/of_device.h> |
15 | #include <linux/pinctrl/pinctrl.h> | 17 | #include <linux/pinctrl/pinctrl.h> |
16 | #include "pinctrl-mxs.h" | 18 | #include "pinctrl-mxs.h" |
@@ -276,15 +278,14 @@ static const struct of_device_id imx23_pinctrl_of_match[] = { | |||
276 | { .compatible = "fsl,imx23-pinctrl", }, | 278 | { .compatible = "fsl,imx23-pinctrl", }, |
277 | { /* sentinel */ } | 279 | { /* sentinel */ } |
278 | }; | 280 | }; |
279 | MODULE_DEVICE_TABLE(of, imx23_pinctrl_of_match); | ||
280 | 281 | ||
281 | static struct platform_driver imx23_pinctrl_driver = { | 282 | static struct platform_driver imx23_pinctrl_driver = { |
282 | .driver = { | 283 | .driver = { |
283 | .name = "imx23-pinctrl", | 284 | .name = "imx23-pinctrl", |
285 | .suppress_bind_attrs = true, | ||
284 | .of_match_table = imx23_pinctrl_of_match, | 286 | .of_match_table = imx23_pinctrl_of_match, |
285 | }, | 287 | }, |
286 | .probe = imx23_pinctrl_probe, | 288 | .probe = imx23_pinctrl_probe, |
287 | .remove = mxs_pinctrl_remove, | ||
288 | }; | 289 | }; |
289 | 290 | ||
290 | static int __init imx23_pinctrl_init(void) | 291 | static int __init imx23_pinctrl_init(void) |
@@ -292,13 +293,3 @@ static int __init imx23_pinctrl_init(void) | |||
292 | return platform_driver_register(&imx23_pinctrl_driver); | 293 | return platform_driver_register(&imx23_pinctrl_driver); |
293 | } | 294 | } |
294 | postcore_initcall(imx23_pinctrl_init); | 295 | postcore_initcall(imx23_pinctrl_init); |
295 | |||
296 | static void __exit imx23_pinctrl_exit(void) | ||
297 | { | ||
298 | platform_driver_unregister(&imx23_pinctrl_driver); | ||
299 | } | ||
300 | module_exit(imx23_pinctrl_exit); | ||
301 | |||
302 | MODULE_AUTHOR("Shawn Guo <shawn.guo@linaro.org>"); | ||
303 | MODULE_DESCRIPTION("Freescale i.MX23 pinctrl driver"); | ||
304 | MODULE_LICENSE("GPL v2"); | ||
diff --git a/drivers/pinctrl/freescale/pinctrl-imx25.c b/drivers/pinctrl/freescale/pinctrl-imx25.c index 81ad546d74bb..d7367fabe712 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx25.c +++ b/drivers/pinctrl/freescale/pinctrl-imx25.c | |||
@@ -18,7 +18,6 @@ | |||
18 | #include <linux/err.h> | 18 | #include <linux/err.h> |
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/io.h> | 20 | #include <linux/io.h> |
21 | #include <linux/module.h> | ||
22 | #include <linux/of.h> | 21 | #include <linux/of.h> |
23 | #include <linux/of_device.h> | 22 | #include <linux/of_device.h> |
24 | #include <linux/pinctrl/pinctrl.h> | 23 | #include <linux/pinctrl/pinctrl.h> |
@@ -338,12 +337,3 @@ static int __init imx25_pinctrl_init(void) | |||
338 | return platform_driver_register(&imx25_pinctrl_driver); | 337 | return platform_driver_register(&imx25_pinctrl_driver); |
339 | } | 338 | } |
340 | arch_initcall(imx25_pinctrl_init); | 339 | arch_initcall(imx25_pinctrl_init); |
341 | |||
342 | static void __exit imx25_pinctrl_exit(void) | ||
343 | { | ||
344 | platform_driver_unregister(&imx25_pinctrl_driver); | ||
345 | } | ||
346 | module_exit(imx25_pinctrl_exit); | ||
347 | MODULE_AUTHOR("Denis Carikli <denis@eukrea.com>"); | ||
348 | MODULE_DESCRIPTION("Freescale IMX25 pinctrl driver"); | ||
349 | MODULE_LICENSE("GPL v2"); | ||
diff --git a/drivers/pinctrl/freescale/pinctrl-imx27.c b/drivers/pinctrl/freescale/pinctrl-imx27.c index f828fbbba4b9..e5992036fc6c 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx27.c +++ b/drivers/pinctrl/freescale/pinctrl-imx27.c | |||
@@ -14,7 +14,6 @@ | |||
14 | #include <linux/err.h> | 14 | #include <linux/err.h> |
15 | #include <linux/init.h> | 15 | #include <linux/init.h> |
16 | #include <linux/io.h> | 16 | #include <linux/io.h> |
17 | #include <linux/module.h> | ||
18 | #include <linux/of.h> | 17 | #include <linux/of.h> |
19 | #include <linux/of_device.h> | 18 | #include <linux/of_device.h> |
20 | #include <linux/pinctrl/pinctrl.h> | 19 | #include <linux/pinctrl/pinctrl.h> |
@@ -412,12 +411,3 @@ static int __init imx27_pinctrl_init(void) | |||
412 | return platform_driver_register(&imx27_pinctrl_driver); | 411 | return platform_driver_register(&imx27_pinctrl_driver); |
413 | } | 412 | } |
414 | arch_initcall(imx27_pinctrl_init); | 413 | arch_initcall(imx27_pinctrl_init); |
415 | |||
416 | static void __exit imx27_pinctrl_exit(void) | ||
417 | { | ||
418 | platform_driver_unregister(&imx27_pinctrl_driver); | ||
419 | } | ||
420 | module_exit(imx27_pinctrl_exit); | ||
421 | MODULE_AUTHOR("Markus Pargmann <mpa@pengutronix.de>"); | ||
422 | MODULE_DESCRIPTION("Freescale IMX27 pinctrl driver"); | ||
423 | MODULE_LICENSE("GPL v2"); | ||
diff --git a/drivers/pinctrl/freescale/pinctrl-imx28.c b/drivers/pinctrl/freescale/pinctrl-imx28.c index 5082efec4f72..295236dfb0bc 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx28.c +++ b/drivers/pinctrl/freescale/pinctrl-imx28.c | |||
@@ -1,4 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Freescale i.MX28 pinctrl driver | ||
3 | * | ||
4 | * Author: Shawn Guo <shawn.guo@linaro.org> | ||
2 | * Copyright 2012 Freescale Semiconductor, Inc. | 5 | * Copyright 2012 Freescale Semiconductor, Inc. |
3 | * | 6 | * |
4 | * The code contained herein is licensed under the GNU General Public | 7 | * The code contained herein is licensed under the GNU General Public |
@@ -10,7 +13,6 @@ | |||
10 | */ | 13 | */ |
11 | 14 | ||
12 | #include <linux/init.h> | 15 | #include <linux/init.h> |
13 | #include <linux/module.h> | ||
14 | #include <linux/of_device.h> | 16 | #include <linux/of_device.h> |
15 | #include <linux/pinctrl/pinctrl.h> | 17 | #include <linux/pinctrl/pinctrl.h> |
16 | #include "pinctrl-mxs.h" | 18 | #include "pinctrl-mxs.h" |
@@ -392,15 +394,14 @@ static const struct of_device_id imx28_pinctrl_of_match[] = { | |||
392 | { .compatible = "fsl,imx28-pinctrl", }, | 394 | { .compatible = "fsl,imx28-pinctrl", }, |
393 | { /* sentinel */ } | 395 | { /* sentinel */ } |
394 | }; | 396 | }; |
395 | MODULE_DEVICE_TABLE(of, imx28_pinctrl_of_match); | ||
396 | 397 | ||
397 | static struct platform_driver imx28_pinctrl_driver = { | 398 | static struct platform_driver imx28_pinctrl_driver = { |
398 | .driver = { | 399 | .driver = { |
399 | .name = "imx28-pinctrl", | 400 | .name = "imx28-pinctrl", |
401 | .suppress_bind_attrs = true, | ||
400 | .of_match_table = imx28_pinctrl_of_match, | 402 | .of_match_table = imx28_pinctrl_of_match, |
401 | }, | 403 | }, |
402 | .probe = imx28_pinctrl_probe, | 404 | .probe = imx28_pinctrl_probe, |
403 | .remove = mxs_pinctrl_remove, | ||
404 | }; | 405 | }; |
405 | 406 | ||
406 | static int __init imx28_pinctrl_init(void) | 407 | static int __init imx28_pinctrl_init(void) |
@@ -408,13 +409,3 @@ static int __init imx28_pinctrl_init(void) | |||
408 | return platform_driver_register(&imx28_pinctrl_driver); | 409 | return platform_driver_register(&imx28_pinctrl_driver); |
409 | } | 410 | } |
410 | postcore_initcall(imx28_pinctrl_init); | 411 | postcore_initcall(imx28_pinctrl_init); |
411 | |||
412 | static void __exit imx28_pinctrl_exit(void) | ||
413 | { | ||
414 | platform_driver_unregister(&imx28_pinctrl_driver); | ||
415 | } | ||
416 | module_exit(imx28_pinctrl_exit); | ||
417 | |||
418 | MODULE_AUTHOR("Shawn Guo <shawn.guo@linaro.org>"); | ||
419 | MODULE_DESCRIPTION("Freescale i.MX28 pinctrl driver"); | ||
420 | MODULE_LICENSE("GPL v2"); | ||
diff --git a/drivers/pinctrl/freescale/pinctrl-imx35.c b/drivers/pinctrl/freescale/pinctrl-imx35.c index 13eb224a29a9..6315ba6af431 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx35.c +++ b/drivers/pinctrl/freescale/pinctrl-imx35.c | |||
@@ -16,7 +16,6 @@ | |||
16 | #include <linux/err.h> | 16 | #include <linux/err.h> |
17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
18 | #include <linux/io.h> | 18 | #include <linux/io.h> |
19 | #include <linux/module.h> | ||
20 | #include <linux/of.h> | 19 | #include <linux/of.h> |
21 | #include <linux/of_device.h> | 20 | #include <linux/of_device.h> |
22 | #include <linux/pinctrl/pinctrl.h> | 21 | #include <linux/pinctrl/pinctrl.h> |
@@ -1028,12 +1027,3 @@ static int __init imx35_pinctrl_init(void) | |||
1028 | return platform_driver_register(&imx35_pinctrl_driver); | 1027 | return platform_driver_register(&imx35_pinctrl_driver); |
1029 | } | 1028 | } |
1030 | arch_initcall(imx35_pinctrl_init); | 1029 | arch_initcall(imx35_pinctrl_init); |
1031 | |||
1032 | static void __exit imx35_pinctrl_exit(void) | ||
1033 | { | ||
1034 | platform_driver_unregister(&imx35_pinctrl_driver); | ||
1035 | } | ||
1036 | module_exit(imx35_pinctrl_exit); | ||
1037 | MODULE_AUTHOR("Dong Aisheng <dong.aisheng@linaro.org>"); | ||
1038 | MODULE_DESCRIPTION("Freescale IMX35 pinctrl driver"); | ||
1039 | MODULE_LICENSE("GPL v2"); | ||
diff --git a/drivers/pinctrl/freescale/pinctrl-imx50.c b/drivers/pinctrl/freescale/pinctrl-imx50.c index 95a36c88b66a..8e3a17df5c5d 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx50.c +++ b/drivers/pinctrl/freescale/pinctrl-imx50.c | |||
@@ -14,7 +14,6 @@ | |||
14 | #include <linux/err.h> | 14 | #include <linux/err.h> |
15 | #include <linux/init.h> | 15 | #include <linux/init.h> |
16 | #include <linux/io.h> | 16 | #include <linux/io.h> |
17 | #include <linux/module.h> | ||
18 | #include <linux/of.h> | 17 | #include <linux/of.h> |
19 | #include <linux/of_device.h> | 18 | #include <linux/of_device.h> |
20 | #include <linux/pinctrl/pinctrl.h> | 19 | #include <linux/pinctrl/pinctrl.h> |
@@ -415,11 +414,3 @@ static int __init imx50_pinctrl_init(void) | |||
415 | return platform_driver_register(&imx50_pinctrl_driver); | 414 | return platform_driver_register(&imx50_pinctrl_driver); |
416 | } | 415 | } |
417 | arch_initcall(imx50_pinctrl_init); | 416 | arch_initcall(imx50_pinctrl_init); |
418 | |||
419 | static void __exit imx50_pinctrl_exit(void) | ||
420 | { | ||
421 | platform_driver_unregister(&imx50_pinctrl_driver); | ||
422 | } | ||
423 | module_exit(imx50_pinctrl_exit); | ||
424 | MODULE_DESCRIPTION("Freescale IMX50 pinctrl driver"); | ||
425 | MODULE_LICENSE("GPL v2"); | ||
diff --git a/drivers/pinctrl/freescale/pinctrl-imx51.c b/drivers/pinctrl/freescale/pinctrl-imx51.c index 0863e5279896..eeac64ba2709 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx51.c +++ b/drivers/pinctrl/freescale/pinctrl-imx51.c | |||
@@ -15,7 +15,6 @@ | |||
15 | #include <linux/err.h> | 15 | #include <linux/err.h> |
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/io.h> | 17 | #include <linux/io.h> |
18 | #include <linux/module.h> | ||
19 | #include <linux/of.h> | 18 | #include <linux/of.h> |
20 | #include <linux/of_device.h> | 19 | #include <linux/of_device.h> |
21 | #include <linux/pinctrl/pinctrl.h> | 20 | #include <linux/pinctrl/pinctrl.h> |
@@ -791,12 +790,3 @@ static int __init imx51_pinctrl_init(void) | |||
791 | return platform_driver_register(&imx51_pinctrl_driver); | 790 | return platform_driver_register(&imx51_pinctrl_driver); |
792 | } | 791 | } |
793 | arch_initcall(imx51_pinctrl_init); | 792 | arch_initcall(imx51_pinctrl_init); |
794 | |||
795 | static void __exit imx51_pinctrl_exit(void) | ||
796 | { | ||
797 | platform_driver_unregister(&imx51_pinctrl_driver); | ||
798 | } | ||
799 | module_exit(imx51_pinctrl_exit); | ||
800 | MODULE_AUTHOR("Dong Aisheng <dong.aisheng@linaro.org>"); | ||
801 | MODULE_DESCRIPTION("Freescale IMX51 pinctrl driver"); | ||
802 | MODULE_LICENSE("GPL v2"); | ||
diff --git a/drivers/pinctrl/freescale/pinctrl-imx53.c b/drivers/pinctrl/freescale/pinctrl-imx53.c index 64c9cbe2a5df..46a9572f3473 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx53.c +++ b/drivers/pinctrl/freescale/pinctrl-imx53.c | |||
@@ -15,7 +15,6 @@ | |||
15 | #include <linux/err.h> | 15 | #include <linux/err.h> |
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/io.h> | 17 | #include <linux/io.h> |
18 | #include <linux/module.h> | ||
19 | #include <linux/of.h> | 18 | #include <linux/of.h> |
20 | #include <linux/of_device.h> | 19 | #include <linux/of_device.h> |
21 | #include <linux/pinctrl/pinctrl.h> | 20 | #include <linux/pinctrl/pinctrl.h> |
@@ -478,12 +477,3 @@ static int __init imx53_pinctrl_init(void) | |||
478 | return platform_driver_register(&imx53_pinctrl_driver); | 477 | return platform_driver_register(&imx53_pinctrl_driver); |
479 | } | 478 | } |
480 | arch_initcall(imx53_pinctrl_init); | 479 | arch_initcall(imx53_pinctrl_init); |
481 | |||
482 | static void __exit imx53_pinctrl_exit(void) | ||
483 | { | ||
484 | platform_driver_unregister(&imx53_pinctrl_driver); | ||
485 | } | ||
486 | module_exit(imx53_pinctrl_exit); | ||
487 | MODULE_AUTHOR("Dong Aisheng <dong.aisheng@linaro.org>"); | ||
488 | MODULE_DESCRIPTION("Freescale IMX53 pinctrl driver"); | ||
489 | MODULE_LICENSE("GPL v2"); | ||
diff --git a/drivers/pinctrl/freescale/pinctrl-imx6dl.c b/drivers/pinctrl/freescale/pinctrl-imx6dl.c index de17bac8ad89..3f25ca5867cc 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx6dl.c +++ b/drivers/pinctrl/freescale/pinctrl-imx6dl.c | |||
@@ -1,4 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Freescale imx6dl pinctrl driver | ||
3 | * | ||
4 | * Author: Shawn Guo <shawn.guo@linaro.org> | ||
2 | * Copyright (C) 2013 Freescale Semiconductor, Inc. | 5 | * Copyright (C) 2013 Freescale Semiconductor, Inc. |
3 | * | 6 | * |
4 | * This program is free software; you can redistribute it and/or modify | 7 | * This program is free software; you can redistribute it and/or modify |
@@ -9,7 +12,6 @@ | |||
9 | #include <linux/err.h> | 12 | #include <linux/err.h> |
10 | #include <linux/init.h> | 13 | #include <linux/init.h> |
11 | #include <linux/io.h> | 14 | #include <linux/io.h> |
12 | #include <linux/module.h> | ||
13 | #include <linux/of.h> | 15 | #include <linux/of.h> |
14 | #include <linux/of_device.h> | 16 | #include <linux/of_device.h> |
15 | #include <linux/pinctrl/pinctrl.h> | 17 | #include <linux/pinctrl/pinctrl.h> |
@@ -484,13 +486,3 @@ static int __init imx6dl_pinctrl_init(void) | |||
484 | return platform_driver_register(&imx6dl_pinctrl_driver); | 486 | return platform_driver_register(&imx6dl_pinctrl_driver); |
485 | } | 487 | } |
486 | arch_initcall(imx6dl_pinctrl_init); | 488 | arch_initcall(imx6dl_pinctrl_init); |
487 | |||
488 | static void __exit imx6dl_pinctrl_exit(void) | ||
489 | { | ||
490 | platform_driver_unregister(&imx6dl_pinctrl_driver); | ||
491 | } | ||
492 | module_exit(imx6dl_pinctrl_exit); | ||
493 | |||
494 | MODULE_AUTHOR("Shawn Guo <shawn.guo@linaro.org>"); | ||
495 | MODULE_DESCRIPTION("Freescale imx6dl pinctrl driver"); | ||
496 | MODULE_LICENSE("GPL v2"); | ||
diff --git a/drivers/pinctrl/freescale/pinctrl-imx6q.c b/drivers/pinctrl/freescale/pinctrl-imx6q.c index 55cd8a0e367d..d61651c40458 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx6q.c +++ b/drivers/pinctrl/freescale/pinctrl-imx6q.c | |||
@@ -15,7 +15,6 @@ | |||
15 | #include <linux/err.h> | 15 | #include <linux/err.h> |
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/io.h> | 17 | #include <linux/io.h> |
18 | #include <linux/module.h> | ||
19 | #include <linux/of.h> | 18 | #include <linux/of.h> |
20 | #include <linux/of_device.h> | 19 | #include <linux/of_device.h> |
21 | #include <linux/pinctrl/pinctrl.h> | 20 | #include <linux/pinctrl/pinctrl.h> |
@@ -490,12 +489,3 @@ static int __init imx6q_pinctrl_init(void) | |||
490 | return platform_driver_register(&imx6q_pinctrl_driver); | 489 | return platform_driver_register(&imx6q_pinctrl_driver); |
491 | } | 490 | } |
492 | arch_initcall(imx6q_pinctrl_init); | 491 | arch_initcall(imx6q_pinctrl_init); |
493 | |||
494 | static void __exit imx6q_pinctrl_exit(void) | ||
495 | { | ||
496 | platform_driver_unregister(&imx6q_pinctrl_driver); | ||
497 | } | ||
498 | module_exit(imx6q_pinctrl_exit); | ||
499 | MODULE_AUTHOR("Dong Aisheng <dong.aisheng@linaro.org>"); | ||
500 | MODULE_DESCRIPTION("Freescale IMX6Q pinctrl driver"); | ||
501 | MODULE_LICENSE("GPL v2"); | ||
diff --git a/drivers/pinctrl/freescale/pinctrl-imx6sl.c b/drivers/pinctrl/freescale/pinctrl-imx6sl.c index bf455b8e73fc..d023f6b00623 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx6sl.c +++ b/drivers/pinctrl/freescale/pinctrl-imx6sl.c | |||
@@ -1,4 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Freescale imx6sl pinctrl driver | ||
3 | * | ||
4 | * Author: Shawn Guo <shawn.guo@linaro.org> | ||
2 | * Copyright (C) 2013 Freescale Semiconductor, Inc. | 5 | * Copyright (C) 2013 Freescale Semiconductor, Inc. |
3 | * | 6 | * |
4 | * This program is free software; you can redistribute it and/or modify | 7 | * This program is free software; you can redistribute it and/or modify |
@@ -9,7 +12,6 @@ | |||
9 | #include <linux/err.h> | 12 | #include <linux/err.h> |
10 | #include <linux/init.h> | 13 | #include <linux/init.h> |
11 | #include <linux/io.h> | 14 | #include <linux/io.h> |
12 | #include <linux/module.h> | ||
13 | #include <linux/of.h> | 15 | #include <linux/of.h> |
14 | #include <linux/of_device.h> | 16 | #include <linux/of_device.h> |
15 | #include <linux/pinctrl/pinctrl.h> | 17 | #include <linux/pinctrl/pinctrl.h> |
@@ -371,7 +373,6 @@ static const struct of_device_id imx6sl_pinctrl_of_match[] = { | |||
371 | { .compatible = "fsl,imx6sl-iomuxc", }, | 373 | { .compatible = "fsl,imx6sl-iomuxc", }, |
372 | { /* sentinel */ } | 374 | { /* sentinel */ } |
373 | }; | 375 | }; |
374 | MODULE_DEVICE_TABLE(of, imx6sl_pinctrl_of_match); | ||
375 | 376 | ||
376 | static int imx6sl_pinctrl_probe(struct platform_device *pdev) | 377 | static int imx6sl_pinctrl_probe(struct platform_device *pdev) |
377 | { | 378 | { |
@@ -391,13 +392,3 @@ static int __init imx6sl_pinctrl_init(void) | |||
391 | return platform_driver_register(&imx6sl_pinctrl_driver); | 392 | return platform_driver_register(&imx6sl_pinctrl_driver); |
392 | } | 393 | } |
393 | arch_initcall(imx6sl_pinctrl_init); | 394 | arch_initcall(imx6sl_pinctrl_init); |
394 | |||
395 | static void __exit imx6sl_pinctrl_exit(void) | ||
396 | { | ||
397 | platform_driver_unregister(&imx6sl_pinctrl_driver); | ||
398 | } | ||
399 | module_exit(imx6sl_pinctrl_exit); | ||
400 | |||
401 | MODULE_AUTHOR("Shawn Guo <shawn.guo@linaro.org>"); | ||
402 | MODULE_DESCRIPTION("Freescale imx6sl pinctrl driver"); | ||
403 | MODULE_LICENSE("GPL v2"); | ||
diff --git a/drivers/pinctrl/freescale/pinctrl-imx6sx.c b/drivers/pinctrl/freescale/pinctrl-imx6sx.c index 84118c388cc5..898b781701e6 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx6sx.c +++ b/drivers/pinctrl/freescale/pinctrl-imx6sx.c | |||
@@ -1,4 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Freescale imx6sx pinctrl driver | ||
3 | * | ||
4 | * Author: Anson Huang <Anson.Huang@freescale.com> | ||
2 | * Copyright (C) 2014 Freescale Semiconductor, Inc. | 5 | * Copyright (C) 2014 Freescale Semiconductor, Inc. |
3 | * | 6 | * |
4 | * This program is free software; you can redistribute it and/or modify | 7 | * This program is free software; you can redistribute it and/or modify |
@@ -9,7 +12,6 @@ | |||
9 | #include <linux/err.h> | 12 | #include <linux/err.h> |
10 | #include <linux/init.h> | 13 | #include <linux/init.h> |
11 | #include <linux/io.h> | 14 | #include <linux/io.h> |
12 | #include <linux/module.h> | ||
13 | #include <linux/of.h> | 15 | #include <linux/of.h> |
14 | #include <linux/of_device.h> | 16 | #include <linux/of_device.h> |
15 | #include <linux/pinctrl/pinctrl.h> | 17 | #include <linux/pinctrl/pinctrl.h> |
@@ -394,13 +396,3 @@ static int __init imx6sx_pinctrl_init(void) | |||
394 | return platform_driver_register(&imx6sx_pinctrl_driver); | 396 | return platform_driver_register(&imx6sx_pinctrl_driver); |
395 | } | 397 | } |
396 | arch_initcall(imx6sx_pinctrl_init); | 398 | arch_initcall(imx6sx_pinctrl_init); |
397 | |||
398 | static void __exit imx6sx_pinctrl_exit(void) | ||
399 | { | ||
400 | platform_driver_unregister(&imx6sx_pinctrl_driver); | ||
401 | } | ||
402 | module_exit(imx6sx_pinctrl_exit); | ||
403 | |||
404 | MODULE_AUTHOR("Anson Huang <Anson.Huang@freescale.com>"); | ||
405 | MODULE_DESCRIPTION("Freescale imx6sx pinctrl driver"); | ||
406 | MODULE_LICENSE("GPL v2"); | ||
diff --git a/drivers/pinctrl/freescale/pinctrl-imx6ul.c b/drivers/pinctrl/freescale/pinctrl-imx6ul.c index c707fdd933ec..1aeb840aae1d 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx6ul.c +++ b/drivers/pinctrl/freescale/pinctrl-imx6ul.c | |||
@@ -1,4 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Freescale imx6ul pinctrl driver | ||
3 | * | ||
4 | * Author: Anson Huang <Anson.Huang@freescale.com> | ||
2 | * Copyright (C) 2015 Freescale Semiconductor, Inc. | 5 | * Copyright (C) 2015 Freescale Semiconductor, Inc. |
3 | * | 6 | * |
4 | * This program is free software; you can redistribute it and/or modify | 7 | * This program is free software; you can redistribute it and/or modify |
@@ -9,7 +12,6 @@ | |||
9 | #include <linux/err.h> | 12 | #include <linux/err.h> |
10 | #include <linux/init.h> | 13 | #include <linux/init.h> |
11 | #include <linux/io.h> | 14 | #include <linux/io.h> |
12 | #include <linux/module.h> | ||
13 | #include <linux/of.h> | 15 | #include <linux/of.h> |
14 | #include <linux/of_device.h> | 16 | #include <linux/of_device.h> |
15 | #include <linux/pinctrl/pinctrl.h> | 17 | #include <linux/pinctrl/pinctrl.h> |
@@ -310,13 +312,3 @@ static int __init imx6ul_pinctrl_init(void) | |||
310 | return platform_driver_register(&imx6ul_pinctrl_driver); | 312 | return platform_driver_register(&imx6ul_pinctrl_driver); |
311 | } | 313 | } |
312 | arch_initcall(imx6ul_pinctrl_init); | 314 | arch_initcall(imx6ul_pinctrl_init); |
313 | |||
314 | static void __exit imx6ul_pinctrl_exit(void) | ||
315 | { | ||
316 | platform_driver_unregister(&imx6ul_pinctrl_driver); | ||
317 | } | ||
318 | module_exit(imx6ul_pinctrl_exit); | ||
319 | |||
320 | MODULE_AUTHOR("Anson Huang <Anson.Huang@freescale.com>"); | ||
321 | MODULE_DESCRIPTION("Freescale imx6ul pinctrl driver"); | ||
322 | MODULE_LICENSE("GPL v2"); | ||
diff --git a/drivers/pinctrl/freescale/pinctrl-imx7d.c b/drivers/pinctrl/freescale/pinctrl-imx7d.c index d30d91f80dfd..a465a66c3ef4 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx7d.c +++ b/drivers/pinctrl/freescale/pinctrl-imx7d.c | |||
@@ -1,4 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Freescale imx7d pinctrl driver | ||
3 | * | ||
4 | * Author: Anson Huang <Anson.Huang@freescale.com> | ||
2 | * Copyright (C) 2014-2015 Freescale Semiconductor, Inc. | 5 | * Copyright (C) 2014-2015 Freescale Semiconductor, Inc. |
3 | * | 6 | * |
4 | * This program is free software; you can redistribute it and/or modify | 7 | * This program is free software; you can redistribute it and/or modify |
@@ -9,7 +12,6 @@ | |||
9 | #include <linux/err.h> | 12 | #include <linux/err.h> |
10 | #include <linux/init.h> | 13 | #include <linux/init.h> |
11 | #include <linux/io.h> | 14 | #include <linux/io.h> |
12 | #include <linux/module.h> | ||
13 | #include <linux/of.h> | 15 | #include <linux/of.h> |
14 | #include <linux/of_device.h> | 16 | #include <linux/of_device.h> |
15 | #include <linux/pinctrl/pinctrl.h> | 17 | #include <linux/pinctrl/pinctrl.h> |
@@ -402,13 +404,3 @@ static int __init imx7d_pinctrl_init(void) | |||
402 | return platform_driver_register(&imx7d_pinctrl_driver); | 404 | return platform_driver_register(&imx7d_pinctrl_driver); |
403 | } | 405 | } |
404 | arch_initcall(imx7d_pinctrl_init); | 406 | arch_initcall(imx7d_pinctrl_init); |
405 | |||
406 | static void __exit imx7d_pinctrl_exit(void) | ||
407 | { | ||
408 | platform_driver_unregister(&imx7d_pinctrl_driver); | ||
409 | } | ||
410 | module_exit(imx7d_pinctrl_exit); | ||
411 | |||
412 | MODULE_AUTHOR("Anson Huang <Anson.Huang@freescale.com>"); | ||
413 | MODULE_DESCRIPTION("Freescale imx7d pinctrl driver"); | ||
414 | MODULE_LICENSE("GPL v2"); | ||
diff --git a/drivers/pinctrl/freescale/pinctrl-mxs.c b/drivers/pinctrl/freescale/pinctrl-mxs.c index 6bbda6b4ab50..41b5b07d5a2b 100644 --- a/drivers/pinctrl/freescale/pinctrl-mxs.c +++ b/drivers/pinctrl/freescale/pinctrl-mxs.c | |||
@@ -12,7 +12,6 @@ | |||
12 | #include <linux/err.h> | 12 | #include <linux/err.h> |
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | #include <linux/io.h> | 14 | #include <linux/io.h> |
15 | #include <linux/module.h> | ||
16 | #include <linux/of.h> | 15 | #include <linux/of.h> |
17 | #include <linux/of_address.h> | 16 | #include <linux/of_address.h> |
18 | #include <linux/pinctrl/machine.h> | 17 | #include <linux/pinctrl/machine.h> |
@@ -553,14 +552,3 @@ err: | |||
553 | return ret; | 552 | return ret; |
554 | } | 553 | } |
555 | EXPORT_SYMBOL_GPL(mxs_pinctrl_probe); | 554 | EXPORT_SYMBOL_GPL(mxs_pinctrl_probe); |
556 | |||
557 | int mxs_pinctrl_remove(struct platform_device *pdev) | ||
558 | { | ||
559 | struct mxs_pinctrl_data *d = platform_get_drvdata(pdev); | ||
560 | |||
561 | pinctrl_unregister(d->pctl); | ||
562 | iounmap(d->base); | ||
563 | |||
564 | return 0; | ||
565 | } | ||
566 | EXPORT_SYMBOL_GPL(mxs_pinctrl_remove); | ||
diff --git a/drivers/pinctrl/freescale/pinctrl-mxs.h b/drivers/pinctrl/freescale/pinctrl-mxs.h index fdd88d0bae22..34dbf75208dc 100644 --- a/drivers/pinctrl/freescale/pinctrl-mxs.h +++ b/drivers/pinctrl/freescale/pinctrl-mxs.h | |||
@@ -86,6 +86,5 @@ struct mxs_pinctrl_soc_data { | |||
86 | 86 | ||
87 | int mxs_pinctrl_probe(struct platform_device *pdev, | 87 | int mxs_pinctrl_probe(struct platform_device *pdev, |
88 | struct mxs_pinctrl_soc_data *soc); | 88 | struct mxs_pinctrl_soc_data *soc); |
89 | int mxs_pinctrl_remove(struct platform_device *pdev); | ||
90 | 89 | ||
91 | #endif /* __PINCTRL_MXS_H */ | 90 | #endif /* __PINCTRL_MXS_H */ |
diff --git a/drivers/pinctrl/freescale/pinctrl-vf610.c b/drivers/pinctrl/freescale/pinctrl-vf610.c index 6d81be096bc0..2b1e198e3092 100644 --- a/drivers/pinctrl/freescale/pinctrl-vf610.c +++ b/drivers/pinctrl/freescale/pinctrl-vf610.c | |||
@@ -12,7 +12,6 @@ | |||
12 | #include <linux/err.h> | 12 | #include <linux/err.h> |
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | #include <linux/io.h> | 14 | #include <linux/io.h> |
15 | #include <linux/module.h> | ||
16 | #include <linux/of.h> | 15 | #include <linux/of.h> |
17 | #include <linux/of_device.h> | 16 | #include <linux/of_device.h> |
18 | #include <linux/pinctrl/pinctrl.h> | 17 | #include <linux/pinctrl/pinctrl.h> |
@@ -325,12 +324,3 @@ static int __init vf610_pinctrl_init(void) | |||
325 | return platform_driver_register(&vf610_pinctrl_driver); | 324 | return platform_driver_register(&vf610_pinctrl_driver); |
326 | } | 325 | } |
327 | arch_initcall(vf610_pinctrl_init); | 326 | arch_initcall(vf610_pinctrl_init); |
328 | |||
329 | static void __exit vf610_pinctrl_exit(void) | ||
330 | { | ||
331 | platform_driver_unregister(&vf610_pinctrl_driver); | ||
332 | } | ||
333 | module_exit(vf610_pinctrl_exit); | ||
334 | |||
335 | MODULE_DESCRIPTION("Freescale VF610 pinctrl driver"); | ||
336 | MODULE_LICENSE("GPL v2"); | ||
diff --git a/drivers/pinctrl/intel/Kconfig b/drivers/pinctrl/intel/Kconfig index 1c74e038b7b0..00fb055a4897 100644 --- a/drivers/pinctrl/intel/Kconfig +++ b/drivers/pinctrl/intel/Kconfig | |||
@@ -29,6 +29,17 @@ config PINCTRL_CHERRYVIEW | |||
29 | Cherryview/Braswell pinctrl driver provides an interface that | 29 | Cherryview/Braswell pinctrl driver provides an interface that |
30 | allows configuring of SoC pins and using them as GPIOs. | 30 | allows configuring of SoC pins and using them as GPIOs. |
31 | 31 | ||
32 | config PINCTRL_MERRIFIELD | ||
33 | tristate "Intel Merrifield pinctrl driver" | ||
34 | depends on X86_INTEL_MID | ||
35 | select PINMUX | ||
36 | select PINCONF | ||
37 | select GENERIC_PINCONF | ||
38 | help | ||
39 | Merrifield Family-Level Interface Shim (FLIS) driver provides an | ||
40 | interface that allows configuring of SoC pins and using them as | ||
41 | GPIOs. | ||
42 | |||
32 | config PINCTRL_INTEL | 43 | config PINCTRL_INTEL |
33 | tristate | 44 | tristate |
34 | select PINMUX | 45 | select PINMUX |
diff --git a/drivers/pinctrl/intel/Makefile b/drivers/pinctrl/intel/Makefile index 03bc68e3546c..30803078f09e 100644 --- a/drivers/pinctrl/intel/Makefile +++ b/drivers/pinctrl/intel/Makefile | |||
@@ -2,6 +2,7 @@ | |||
2 | 2 | ||
3 | obj-$(CONFIG_PINCTRL_BAYTRAIL) += pinctrl-baytrail.o | 3 | obj-$(CONFIG_PINCTRL_BAYTRAIL) += pinctrl-baytrail.o |
4 | obj-$(CONFIG_PINCTRL_CHERRYVIEW) += pinctrl-cherryview.o | 4 | obj-$(CONFIG_PINCTRL_CHERRYVIEW) += pinctrl-cherryview.o |
5 | obj-$(CONFIG_PINCTRL_MERRIFIELD) += pinctrl-merrifield.o | ||
5 | obj-$(CONFIG_PINCTRL_INTEL) += pinctrl-intel.o | 6 | obj-$(CONFIG_PINCTRL_INTEL) += pinctrl-intel.o |
6 | obj-$(CONFIG_PINCTRL_BROXTON) += pinctrl-broxton.o | 7 | obj-$(CONFIG_PINCTRL_BROXTON) += pinctrl-broxton.o |
7 | obj-$(CONFIG_PINCTRL_SUNRISEPOINT) += pinctrl-sunrisepoint.o | 8 | obj-$(CONFIG_PINCTRL_SUNRISEPOINT) += pinctrl-sunrisepoint.o |
diff --git a/drivers/pinctrl/intel/pinctrl-baytrail.c b/drivers/pinctrl/intel/pinctrl-baytrail.c index 7abfd42e8ffd..d22a9fe2e6df 100644 --- a/drivers/pinctrl/intel/pinctrl-baytrail.c +++ b/drivers/pinctrl/intel/pinctrl-baytrail.c | |||
@@ -15,7 +15,6 @@ | |||
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
18 | #include <linux/module.h> | ||
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <linux/types.h> | 19 | #include <linux/types.h> |
21 | #include <linux/bitops.h> | 20 | #include <linux/bitops.h> |
@@ -1822,17 +1821,6 @@ static int byt_pinctrl_probe(struct platform_device *pdev) | |||
1822 | return 0; | 1821 | return 0; |
1823 | } | 1822 | } |
1824 | 1823 | ||
1825 | static int byt_pinctrl_remove(struct platform_device *pdev) | ||
1826 | { | ||
1827 | struct byt_gpio *vg = platform_get_drvdata(pdev); | ||
1828 | |||
1829 | pm_runtime_disable(&pdev->dev); | ||
1830 | gpiochip_remove(&vg->chip); | ||
1831 | pinctrl_unregister(vg->pctl_dev); | ||
1832 | |||
1833 | return 0; | ||
1834 | } | ||
1835 | |||
1836 | #ifdef CONFIG_PM_SLEEP | 1824 | #ifdef CONFIG_PM_SLEEP |
1837 | static int byt_gpio_suspend(struct device *dev) | 1825 | static int byt_gpio_suspend(struct device *dev) |
1838 | { | 1826 | { |
@@ -1930,10 +1918,11 @@ static const struct dev_pm_ops byt_gpio_pm_ops = { | |||
1930 | 1918 | ||
1931 | static struct platform_driver byt_gpio_driver = { | 1919 | static struct platform_driver byt_gpio_driver = { |
1932 | .probe = byt_pinctrl_probe, | 1920 | .probe = byt_pinctrl_probe, |
1933 | .remove = byt_pinctrl_remove, | ||
1934 | .driver = { | 1921 | .driver = { |
1935 | .name = "byt_gpio", | 1922 | .name = "byt_gpio", |
1936 | .pm = &byt_gpio_pm_ops, | 1923 | .pm = &byt_gpio_pm_ops, |
1924 | .suppress_bind_attrs = true, | ||
1925 | |||
1937 | .acpi_match_table = ACPI_PTR(byt_gpio_acpi_match), | 1926 | .acpi_match_table = ACPI_PTR(byt_gpio_acpi_match), |
1938 | }, | 1927 | }, |
1939 | }; | 1928 | }; |
@@ -1943,9 +1932,3 @@ static int __init byt_gpio_init(void) | |||
1943 | return platform_driver_register(&byt_gpio_driver); | 1932 | return platform_driver_register(&byt_gpio_driver); |
1944 | } | 1933 | } |
1945 | subsys_initcall(byt_gpio_init); | 1934 | subsys_initcall(byt_gpio_init); |
1946 | |||
1947 | static void __exit byt_gpio_exit(void) | ||
1948 | { | ||
1949 | platform_driver_unregister(&byt_gpio_driver); | ||
1950 | } | ||
1951 | module_exit(byt_gpio_exit); | ||
diff --git a/drivers/pinctrl/intel/pinctrl-broxton.c b/drivers/pinctrl/intel/pinctrl-broxton.c index 5979d38c46b2..59cb7a6fc5be 100644 --- a/drivers/pinctrl/intel/pinctrl-broxton.c +++ b/drivers/pinctrl/intel/pinctrl-broxton.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Intel Broxton SoC pinctrl/GPIO driver | 2 | * Intel Broxton SoC pinctrl/GPIO driver |
3 | * | 3 | * |
4 | * Copyright (C) 2015, Intel Corporation | 4 | * Copyright (C) 2015, 2016 Intel Corporation |
5 | * Author: Mika Westerberg <mika.westerberg@linux.intel.com> | 5 | * Author: Mika Westerberg <mika.westerberg@linux.intel.com> |
6 | * | 6 | * |
7 | * This program is free software; you can redistribute it and/or modify | 7 | * This program is free software; you can redistribute it and/or modify |
@@ -1003,29 +1003,46 @@ static const struct acpi_device_id bxt_pinctrl_acpi_match[] = { | |||
1003 | }; | 1003 | }; |
1004 | MODULE_DEVICE_TABLE(acpi, bxt_pinctrl_acpi_match); | 1004 | MODULE_DEVICE_TABLE(acpi, bxt_pinctrl_acpi_match); |
1005 | 1005 | ||
1006 | static const struct platform_device_id bxt_pinctrl_platform_ids[] = { | ||
1007 | { "apl-pinctrl", (kernel_ulong_t)&apl_pinctrl_soc_data }, | ||
1008 | { "broxton-pinctrl", (kernel_ulong_t)&bxt_pinctrl_soc_data }, | ||
1009 | { }, | ||
1010 | }; | ||
1011 | |||
1006 | static int bxt_pinctrl_probe(struct platform_device *pdev) | 1012 | static int bxt_pinctrl_probe(struct platform_device *pdev) |
1007 | { | 1013 | { |
1008 | const struct intel_pinctrl_soc_data *soc_data = NULL; | 1014 | const struct intel_pinctrl_soc_data *soc_data = NULL; |
1009 | const struct intel_pinctrl_soc_data **soc_table; | 1015 | const struct intel_pinctrl_soc_data **soc_table; |
1010 | const struct acpi_device_id *id; | ||
1011 | struct acpi_device *adev; | 1016 | struct acpi_device *adev; |
1012 | int i; | 1017 | int i; |
1013 | 1018 | ||
1014 | adev = ACPI_COMPANION(&pdev->dev); | 1019 | adev = ACPI_COMPANION(&pdev->dev); |
1015 | if (!adev) | 1020 | if (adev) { |
1016 | return -ENODEV; | 1021 | const struct acpi_device_id *id; |
1017 | 1022 | ||
1018 | id = acpi_match_device(bxt_pinctrl_acpi_match, &pdev->dev); | 1023 | id = acpi_match_device(bxt_pinctrl_acpi_match, &pdev->dev); |
1019 | if (!id) | 1024 | if (!id) |
1020 | return -ENODEV; | 1025 | return -ENODEV; |
1021 | 1026 | ||
1022 | soc_table = (const struct intel_pinctrl_soc_data **)id->driver_data; | 1027 | soc_table = (const struct intel_pinctrl_soc_data **) |
1028 | id->driver_data; | ||
1023 | 1029 | ||
1024 | for (i = 0; soc_table[i]; i++) { | 1030 | for (i = 0; soc_table[i]; i++) { |
1025 | if (!strcmp(adev->pnp.unique_id, soc_table[i]->uid)) { | 1031 | if (!strcmp(adev->pnp.unique_id, soc_table[i]->uid)) { |
1026 | soc_data = soc_table[i]; | 1032 | soc_data = soc_table[i]; |
1027 | break; | 1033 | break; |
1034 | } | ||
1028 | } | 1035 | } |
1036 | } else { | ||
1037 | const struct platform_device_id *pid; | ||
1038 | |||
1039 | pid = platform_get_device_id(pdev); | ||
1040 | if (!pid) | ||
1041 | return -ENODEV; | ||
1042 | |||
1043 | soc_table = (const struct intel_pinctrl_soc_data **) | ||
1044 | pid->driver_data; | ||
1045 | soc_data = soc_table[pdev->id]; | ||
1029 | } | 1046 | } |
1030 | 1047 | ||
1031 | if (!soc_data) | 1048 | if (!soc_data) |
@@ -1047,6 +1064,7 @@ static struct platform_driver bxt_pinctrl_driver = { | |||
1047 | .acpi_match_table = bxt_pinctrl_acpi_match, | 1064 | .acpi_match_table = bxt_pinctrl_acpi_match, |
1048 | .pm = &bxt_pinctrl_pm_ops, | 1065 | .pm = &bxt_pinctrl_pm_ops, |
1049 | }, | 1066 | }, |
1067 | .id_table = bxt_pinctrl_platform_ids, | ||
1050 | }; | 1068 | }; |
1051 | 1069 | ||
1052 | static int __init bxt_pinctrl_init(void) | 1070 | static int __init bxt_pinctrl_init(void) |
@@ -1064,3 +1082,4 @@ module_exit(bxt_pinctrl_exit); | |||
1064 | MODULE_AUTHOR("Mika Westerberg <mika.westerberg@linux.intel.com>"); | 1082 | MODULE_AUTHOR("Mika Westerberg <mika.westerberg@linux.intel.com>"); |
1065 | MODULE_DESCRIPTION("Intel Broxton SoC pinctrl/GPIO driver"); | 1083 | MODULE_DESCRIPTION("Intel Broxton SoC pinctrl/GPIO driver"); |
1066 | MODULE_LICENSE("GPL v2"); | 1084 | MODULE_LICENSE("GPL v2"); |
1085 | MODULE_ALIAS("platform:broxton-pinctrl"); | ||
diff --git a/drivers/pinctrl/intel/pinctrl-cherryview.c b/drivers/pinctrl/intel/pinctrl-cherryview.c index ac4f564f1c3e..5749a4eee746 100644 --- a/drivers/pinctrl/intel/pinctrl-cherryview.c +++ b/drivers/pinctrl/intel/pinctrl-cherryview.c | |||
@@ -160,7 +160,6 @@ struct chv_pin_context { | |||
160 | * @pctldev: Pointer to the pin controller device | 160 | * @pctldev: Pointer to the pin controller device |
161 | * @chip: GPIO chip in this pin controller | 161 | * @chip: GPIO chip in this pin controller |
162 | * @regs: MMIO registers | 162 | * @regs: MMIO registers |
163 | * @lock: Lock to serialize register accesses | ||
164 | * @intr_lines: Stores mapping between 16 HW interrupt wires and GPIO | 163 | * @intr_lines: Stores mapping between 16 HW interrupt wires and GPIO |
165 | * offset (in GPIO number space) | 164 | * offset (in GPIO number space) |
166 | * @community: Community this pinctrl instance represents | 165 | * @community: Community this pinctrl instance represents |
@@ -174,7 +173,6 @@ struct chv_pinctrl { | |||
174 | struct pinctrl_dev *pctldev; | 173 | struct pinctrl_dev *pctldev; |
175 | struct gpio_chip chip; | 174 | struct gpio_chip chip; |
176 | void __iomem *regs; | 175 | void __iomem *regs; |
177 | raw_spinlock_t lock; | ||
178 | unsigned intr_lines[16]; | 176 | unsigned intr_lines[16]; |
179 | const struct chv_community *community; | 177 | const struct chv_community *community; |
180 | u32 saved_intmask; | 178 | u32 saved_intmask; |
@@ -657,6 +655,17 @@ static const struct chv_community *chv_communities[] = { | |||
657 | &southeast_community, | 655 | &southeast_community, |
658 | }; | 656 | }; |
659 | 657 | ||
658 | /* | ||
659 | * Lock to serialize register accesses | ||
660 | * | ||
661 | * Due to a silicon issue, a shared lock must be used to prevent | ||
662 | * concurrent accesses across the 4 GPIO controllers. | ||
663 | * | ||
664 | * See Intel Atom Z8000 Processor Series Specification Update (Rev. 005), | ||
665 | * errata #CHT34, for further information. | ||
666 | */ | ||
667 | static DEFINE_RAW_SPINLOCK(chv_lock); | ||
668 | |||
660 | static void __iomem *chv_padreg(struct chv_pinctrl *pctrl, unsigned offset, | 669 | static void __iomem *chv_padreg(struct chv_pinctrl *pctrl, unsigned offset, |
661 | unsigned reg) | 670 | unsigned reg) |
662 | { | 671 | { |
@@ -718,13 +727,13 @@ static void chv_pin_dbg_show(struct pinctrl_dev *pctldev, struct seq_file *s, | |||
718 | u32 ctrl0, ctrl1; | 727 | u32 ctrl0, ctrl1; |
719 | bool locked; | 728 | bool locked; |
720 | 729 | ||
721 | raw_spin_lock_irqsave(&pctrl->lock, flags); | 730 | raw_spin_lock_irqsave(&chv_lock, flags); |
722 | 731 | ||
723 | ctrl0 = readl(chv_padreg(pctrl, offset, CHV_PADCTRL0)); | 732 | ctrl0 = readl(chv_padreg(pctrl, offset, CHV_PADCTRL0)); |
724 | ctrl1 = readl(chv_padreg(pctrl, offset, CHV_PADCTRL1)); | 733 | ctrl1 = readl(chv_padreg(pctrl, offset, CHV_PADCTRL1)); |
725 | locked = chv_pad_locked(pctrl, offset); | 734 | locked = chv_pad_locked(pctrl, offset); |
726 | 735 | ||
727 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); | 736 | raw_spin_unlock_irqrestore(&chv_lock, flags); |
728 | 737 | ||
729 | if (ctrl0 & CHV_PADCTRL0_GPIOEN) { | 738 | if (ctrl0 & CHV_PADCTRL0_GPIOEN) { |
730 | seq_puts(s, "GPIO "); | 739 | seq_puts(s, "GPIO "); |
@@ -787,14 +796,14 @@ static int chv_pinmux_set_mux(struct pinctrl_dev *pctldev, unsigned function, | |||
787 | 796 | ||
788 | grp = &pctrl->community->groups[group]; | 797 | grp = &pctrl->community->groups[group]; |
789 | 798 | ||
790 | raw_spin_lock_irqsave(&pctrl->lock, flags); | 799 | raw_spin_lock_irqsave(&chv_lock, flags); |
791 | 800 | ||
792 | /* Check first that the pad is not locked */ | 801 | /* Check first that the pad is not locked */ |
793 | for (i = 0; i < grp->npins; i++) { | 802 | for (i = 0; i < grp->npins; i++) { |
794 | if (chv_pad_locked(pctrl, grp->pins[i])) { | 803 | if (chv_pad_locked(pctrl, grp->pins[i])) { |
795 | dev_warn(pctrl->dev, "unable to set mode for locked pin %u\n", | 804 | dev_warn(pctrl->dev, "unable to set mode for locked pin %u\n", |
796 | grp->pins[i]); | 805 | grp->pins[i]); |
797 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); | 806 | raw_spin_unlock_irqrestore(&chv_lock, flags); |
798 | return -EBUSY; | 807 | return -EBUSY; |
799 | } | 808 | } |
800 | } | 809 | } |
@@ -837,7 +846,7 @@ static int chv_pinmux_set_mux(struct pinctrl_dev *pctldev, unsigned function, | |||
837 | pin, altfunc->mode, altfunc->invert_oe ? "" : "not "); | 846 | pin, altfunc->mode, altfunc->invert_oe ? "" : "not "); |
838 | } | 847 | } |
839 | 848 | ||
840 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); | 849 | raw_spin_unlock_irqrestore(&chv_lock, flags); |
841 | 850 | ||
842 | return 0; | 851 | return 0; |
843 | } | 852 | } |
@@ -851,13 +860,13 @@ static int chv_gpio_request_enable(struct pinctrl_dev *pctldev, | |||
851 | void __iomem *reg; | 860 | void __iomem *reg; |
852 | u32 value; | 861 | u32 value; |
853 | 862 | ||
854 | raw_spin_lock_irqsave(&pctrl->lock, flags); | 863 | raw_spin_lock_irqsave(&chv_lock, flags); |
855 | 864 | ||
856 | if (chv_pad_locked(pctrl, offset)) { | 865 | if (chv_pad_locked(pctrl, offset)) { |
857 | value = readl(chv_padreg(pctrl, offset, CHV_PADCTRL0)); | 866 | value = readl(chv_padreg(pctrl, offset, CHV_PADCTRL0)); |
858 | if (!(value & CHV_PADCTRL0_GPIOEN)) { | 867 | if (!(value & CHV_PADCTRL0_GPIOEN)) { |
859 | /* Locked so cannot enable */ | 868 | /* Locked so cannot enable */ |
860 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); | 869 | raw_spin_unlock_irqrestore(&chv_lock, flags); |
861 | return -EBUSY; | 870 | return -EBUSY; |
862 | } | 871 | } |
863 | } else { | 872 | } else { |
@@ -897,7 +906,7 @@ static int chv_gpio_request_enable(struct pinctrl_dev *pctldev, | |||
897 | chv_writel(value, reg); | 906 | chv_writel(value, reg); |
898 | } | 907 | } |
899 | 908 | ||
900 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); | 909 | raw_spin_unlock_irqrestore(&chv_lock, flags); |
901 | 910 | ||
902 | return 0; | 911 | return 0; |
903 | } | 912 | } |
@@ -911,13 +920,13 @@ static void chv_gpio_disable_free(struct pinctrl_dev *pctldev, | |||
911 | void __iomem *reg; | 920 | void __iomem *reg; |
912 | u32 value; | 921 | u32 value; |
913 | 922 | ||
914 | raw_spin_lock_irqsave(&pctrl->lock, flags); | 923 | raw_spin_lock_irqsave(&chv_lock, flags); |
915 | 924 | ||
916 | reg = chv_padreg(pctrl, offset, CHV_PADCTRL0); | 925 | reg = chv_padreg(pctrl, offset, CHV_PADCTRL0); |
917 | value = readl(reg) & ~CHV_PADCTRL0_GPIOEN; | 926 | value = readl(reg) & ~CHV_PADCTRL0_GPIOEN; |
918 | chv_writel(value, reg); | 927 | chv_writel(value, reg); |
919 | 928 | ||
920 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); | 929 | raw_spin_unlock_irqrestore(&chv_lock, flags); |
921 | } | 930 | } |
922 | 931 | ||
923 | static int chv_gpio_set_direction(struct pinctrl_dev *pctldev, | 932 | static int chv_gpio_set_direction(struct pinctrl_dev *pctldev, |
@@ -929,7 +938,7 @@ static int chv_gpio_set_direction(struct pinctrl_dev *pctldev, | |||
929 | unsigned long flags; | 938 | unsigned long flags; |
930 | u32 ctrl0; | 939 | u32 ctrl0; |
931 | 940 | ||
932 | raw_spin_lock_irqsave(&pctrl->lock, flags); | 941 | raw_spin_lock_irqsave(&chv_lock, flags); |
933 | 942 | ||
934 | ctrl0 = readl(reg) & ~CHV_PADCTRL0_GPIOCFG_MASK; | 943 | ctrl0 = readl(reg) & ~CHV_PADCTRL0_GPIOCFG_MASK; |
935 | if (input) | 944 | if (input) |
@@ -938,7 +947,7 @@ static int chv_gpio_set_direction(struct pinctrl_dev *pctldev, | |||
938 | ctrl0 |= CHV_PADCTRL0_GPIOCFG_GPO << CHV_PADCTRL0_GPIOCFG_SHIFT; | 947 | ctrl0 |= CHV_PADCTRL0_GPIOCFG_GPO << CHV_PADCTRL0_GPIOCFG_SHIFT; |
939 | chv_writel(ctrl0, reg); | 948 | chv_writel(ctrl0, reg); |
940 | 949 | ||
941 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); | 950 | raw_spin_unlock_irqrestore(&chv_lock, flags); |
942 | 951 | ||
943 | return 0; | 952 | return 0; |
944 | } | 953 | } |
@@ -963,10 +972,10 @@ static int chv_config_get(struct pinctrl_dev *pctldev, unsigned pin, | |||
963 | u16 arg = 0; | 972 | u16 arg = 0; |
964 | u32 term; | 973 | u32 term; |
965 | 974 | ||
966 | raw_spin_lock_irqsave(&pctrl->lock, flags); | 975 | raw_spin_lock_irqsave(&chv_lock, flags); |
967 | ctrl0 = readl(chv_padreg(pctrl, pin, CHV_PADCTRL0)); | 976 | ctrl0 = readl(chv_padreg(pctrl, pin, CHV_PADCTRL0)); |
968 | ctrl1 = readl(chv_padreg(pctrl, pin, CHV_PADCTRL1)); | 977 | ctrl1 = readl(chv_padreg(pctrl, pin, CHV_PADCTRL1)); |
969 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); | 978 | raw_spin_unlock_irqrestore(&chv_lock, flags); |
970 | 979 | ||
971 | term = (ctrl0 & CHV_PADCTRL0_TERM_MASK) >> CHV_PADCTRL0_TERM_SHIFT; | 980 | term = (ctrl0 & CHV_PADCTRL0_TERM_MASK) >> CHV_PADCTRL0_TERM_SHIFT; |
972 | 981 | ||
@@ -1040,7 +1049,7 @@ static int chv_config_set_pull(struct chv_pinctrl *pctrl, unsigned pin, | |||
1040 | unsigned long flags; | 1049 | unsigned long flags; |
1041 | u32 ctrl0, pull; | 1050 | u32 ctrl0, pull; |
1042 | 1051 | ||
1043 | raw_spin_lock_irqsave(&pctrl->lock, flags); | 1052 | raw_spin_lock_irqsave(&chv_lock, flags); |
1044 | ctrl0 = readl(reg); | 1053 | ctrl0 = readl(reg); |
1045 | 1054 | ||
1046 | switch (param) { | 1055 | switch (param) { |
@@ -1063,7 +1072,7 @@ static int chv_config_set_pull(struct chv_pinctrl *pctrl, unsigned pin, | |||
1063 | pull = CHV_PADCTRL0_TERM_20K << CHV_PADCTRL0_TERM_SHIFT; | 1072 | pull = CHV_PADCTRL0_TERM_20K << CHV_PADCTRL0_TERM_SHIFT; |
1064 | break; | 1073 | break; |
1065 | default: | 1074 | default: |
1066 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); | 1075 | raw_spin_unlock_irqrestore(&chv_lock, flags); |
1067 | return -EINVAL; | 1076 | return -EINVAL; |
1068 | } | 1077 | } |
1069 | 1078 | ||
@@ -1081,7 +1090,7 @@ static int chv_config_set_pull(struct chv_pinctrl *pctrl, unsigned pin, | |||
1081 | pull = CHV_PADCTRL0_TERM_20K << CHV_PADCTRL0_TERM_SHIFT; | 1090 | pull = CHV_PADCTRL0_TERM_20K << CHV_PADCTRL0_TERM_SHIFT; |
1082 | break; | 1091 | break; |
1083 | default: | 1092 | default: |
1084 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); | 1093 | raw_spin_unlock_irqrestore(&chv_lock, flags); |
1085 | return -EINVAL; | 1094 | return -EINVAL; |
1086 | } | 1095 | } |
1087 | 1096 | ||
@@ -1089,12 +1098,33 @@ static int chv_config_set_pull(struct chv_pinctrl *pctrl, unsigned pin, | |||
1089 | break; | 1098 | break; |
1090 | 1099 | ||
1091 | default: | 1100 | default: |
1092 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); | 1101 | raw_spin_unlock_irqrestore(&chv_lock, flags); |
1093 | return -EINVAL; | 1102 | return -EINVAL; |
1094 | } | 1103 | } |
1095 | 1104 | ||
1096 | chv_writel(ctrl0, reg); | 1105 | chv_writel(ctrl0, reg); |
1097 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); | 1106 | raw_spin_unlock_irqrestore(&chv_lock, flags); |
1107 | |||
1108 | return 0; | ||
1109 | } | ||
1110 | |||
1111 | static int chv_config_set_oden(struct chv_pinctrl *pctrl, unsigned int pin, | ||
1112 | bool enable) | ||
1113 | { | ||
1114 | void __iomem *reg = chv_padreg(pctrl, pin, CHV_PADCTRL1); | ||
1115 | unsigned long flags; | ||
1116 | u32 ctrl1; | ||
1117 | |||
1118 | raw_spin_lock_irqsave(&chv_lock, flags); | ||
1119 | ctrl1 = readl(reg); | ||
1120 | |||
1121 | if (enable) | ||
1122 | ctrl1 |= CHV_PADCTRL1_ODEN; | ||
1123 | else | ||
1124 | ctrl1 &= ~CHV_PADCTRL1_ODEN; | ||
1125 | |||
1126 | chv_writel(ctrl1, reg); | ||
1127 | raw_spin_unlock_irqrestore(&chv_lock, flags); | ||
1098 | 1128 | ||
1099 | return 0; | 1129 | return 0; |
1100 | } | 1130 | } |
@@ -1123,6 +1153,18 @@ static int chv_config_set(struct pinctrl_dev *pctldev, unsigned pin, | |||
1123 | return ret; | 1153 | return ret; |
1124 | break; | 1154 | break; |
1125 | 1155 | ||
1156 | case PIN_CONFIG_DRIVE_PUSH_PULL: | ||
1157 | ret = chv_config_set_oden(pctrl, pin, false); | ||
1158 | if (ret) | ||
1159 | return ret; | ||
1160 | break; | ||
1161 | |||
1162 | case PIN_CONFIG_DRIVE_OPEN_DRAIN: | ||
1163 | ret = chv_config_set_oden(pctrl, pin, true); | ||
1164 | if (ret) | ||
1165 | return ret; | ||
1166 | break; | ||
1167 | |||
1126 | default: | 1168 | default: |
1127 | return -ENOTSUPP; | 1169 | return -ENOTSUPP; |
1128 | } | 1170 | } |
@@ -1134,10 +1176,52 @@ static int chv_config_set(struct pinctrl_dev *pctldev, unsigned pin, | |||
1134 | return 0; | 1176 | return 0; |
1135 | } | 1177 | } |
1136 | 1178 | ||
1179 | static int chv_config_group_get(struct pinctrl_dev *pctldev, | ||
1180 | unsigned int group, | ||
1181 | unsigned long *config) | ||
1182 | { | ||
1183 | const unsigned int *pins; | ||
1184 | unsigned int npins; | ||
1185 | int ret; | ||
1186 | |||
1187 | ret = chv_get_group_pins(pctldev, group, &pins, &npins); | ||
1188 | if (ret) | ||
1189 | return ret; | ||
1190 | |||
1191 | ret = chv_config_get(pctldev, pins[0], config); | ||
1192 | if (ret) | ||
1193 | return ret; | ||
1194 | |||
1195 | return 0; | ||
1196 | } | ||
1197 | |||
1198 | static int chv_config_group_set(struct pinctrl_dev *pctldev, | ||
1199 | unsigned int group, unsigned long *configs, | ||
1200 | unsigned int num_configs) | ||
1201 | { | ||
1202 | const unsigned int *pins; | ||
1203 | unsigned int npins; | ||
1204 | int i, ret; | ||
1205 | |||
1206 | ret = chv_get_group_pins(pctldev, group, &pins, &npins); | ||
1207 | if (ret) | ||
1208 | return ret; | ||
1209 | |||
1210 | for (i = 0; i < npins; i++) { | ||
1211 | ret = chv_config_set(pctldev, pins[i], configs, num_configs); | ||
1212 | if (ret) | ||
1213 | return ret; | ||
1214 | } | ||
1215 | |||
1216 | return 0; | ||
1217 | } | ||
1218 | |||
1137 | static const struct pinconf_ops chv_pinconf_ops = { | 1219 | static const struct pinconf_ops chv_pinconf_ops = { |
1138 | .is_generic = true, | 1220 | .is_generic = true, |
1139 | .pin_config_set = chv_config_set, | 1221 | .pin_config_set = chv_config_set, |
1140 | .pin_config_get = chv_config_get, | 1222 | .pin_config_get = chv_config_get, |
1223 | .pin_config_group_get = chv_config_group_get, | ||
1224 | .pin_config_group_set = chv_config_group_set, | ||
1141 | }; | 1225 | }; |
1142 | 1226 | ||
1143 | static struct pinctrl_desc chv_pinctrl_desc = { | 1227 | static struct pinctrl_desc chv_pinctrl_desc = { |
@@ -1160,9 +1244,9 @@ static int chv_gpio_get(struct gpio_chip *chip, unsigned offset) | |||
1160 | unsigned long flags; | 1244 | unsigned long flags; |
1161 | u32 ctrl0, cfg; | 1245 | u32 ctrl0, cfg; |
1162 | 1246 | ||
1163 | raw_spin_lock_irqsave(&pctrl->lock, flags); | 1247 | raw_spin_lock_irqsave(&chv_lock, flags); |
1164 | ctrl0 = readl(chv_padreg(pctrl, pin, CHV_PADCTRL0)); | 1248 | ctrl0 = readl(chv_padreg(pctrl, pin, CHV_PADCTRL0)); |
1165 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); | 1249 | raw_spin_unlock_irqrestore(&chv_lock, flags); |
1166 | 1250 | ||
1167 | cfg = ctrl0 & CHV_PADCTRL0_GPIOCFG_MASK; | 1251 | cfg = ctrl0 & CHV_PADCTRL0_GPIOCFG_MASK; |
1168 | cfg >>= CHV_PADCTRL0_GPIOCFG_SHIFT; | 1252 | cfg >>= CHV_PADCTRL0_GPIOCFG_SHIFT; |
@@ -1180,7 +1264,7 @@ static void chv_gpio_set(struct gpio_chip *chip, unsigned offset, int value) | |||
1180 | void __iomem *reg; | 1264 | void __iomem *reg; |
1181 | u32 ctrl0; | 1265 | u32 ctrl0; |
1182 | 1266 | ||
1183 | raw_spin_lock_irqsave(&pctrl->lock, flags); | 1267 | raw_spin_lock_irqsave(&chv_lock, flags); |
1184 | 1268 | ||
1185 | reg = chv_padreg(pctrl, pin, CHV_PADCTRL0); | 1269 | reg = chv_padreg(pctrl, pin, CHV_PADCTRL0); |
1186 | ctrl0 = readl(reg); | 1270 | ctrl0 = readl(reg); |
@@ -1192,7 +1276,7 @@ static void chv_gpio_set(struct gpio_chip *chip, unsigned offset, int value) | |||
1192 | 1276 | ||
1193 | chv_writel(ctrl0, reg); | 1277 | chv_writel(ctrl0, reg); |
1194 | 1278 | ||
1195 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); | 1279 | raw_spin_unlock_irqrestore(&chv_lock, flags); |
1196 | } | 1280 | } |
1197 | 1281 | ||
1198 | static int chv_gpio_get_direction(struct gpio_chip *chip, unsigned offset) | 1282 | static int chv_gpio_get_direction(struct gpio_chip *chip, unsigned offset) |
@@ -1202,9 +1286,9 @@ static int chv_gpio_get_direction(struct gpio_chip *chip, unsigned offset) | |||
1202 | u32 ctrl0, direction; | 1286 | u32 ctrl0, direction; |
1203 | unsigned long flags; | 1287 | unsigned long flags; |
1204 | 1288 | ||
1205 | raw_spin_lock_irqsave(&pctrl->lock, flags); | 1289 | raw_spin_lock_irqsave(&chv_lock, flags); |
1206 | ctrl0 = readl(chv_padreg(pctrl, pin, CHV_PADCTRL0)); | 1290 | ctrl0 = readl(chv_padreg(pctrl, pin, CHV_PADCTRL0)); |
1207 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); | 1291 | raw_spin_unlock_irqrestore(&chv_lock, flags); |
1208 | 1292 | ||
1209 | direction = ctrl0 & CHV_PADCTRL0_GPIOCFG_MASK; | 1293 | direction = ctrl0 & CHV_PADCTRL0_GPIOCFG_MASK; |
1210 | direction >>= CHV_PADCTRL0_GPIOCFG_SHIFT; | 1294 | direction >>= CHV_PADCTRL0_GPIOCFG_SHIFT; |
@@ -1242,14 +1326,14 @@ static void chv_gpio_irq_ack(struct irq_data *d) | |||
1242 | int pin = chv_gpio_offset_to_pin(pctrl, irqd_to_hwirq(d)); | 1326 | int pin = chv_gpio_offset_to_pin(pctrl, irqd_to_hwirq(d)); |
1243 | u32 intr_line; | 1327 | u32 intr_line; |
1244 | 1328 | ||
1245 | raw_spin_lock(&pctrl->lock); | 1329 | raw_spin_lock(&chv_lock); |
1246 | 1330 | ||
1247 | intr_line = readl(chv_padreg(pctrl, pin, CHV_PADCTRL0)); | 1331 | intr_line = readl(chv_padreg(pctrl, pin, CHV_PADCTRL0)); |
1248 | intr_line &= CHV_PADCTRL0_INTSEL_MASK; | 1332 | intr_line &= CHV_PADCTRL0_INTSEL_MASK; |
1249 | intr_line >>= CHV_PADCTRL0_INTSEL_SHIFT; | 1333 | intr_line >>= CHV_PADCTRL0_INTSEL_SHIFT; |
1250 | chv_writel(BIT(intr_line), pctrl->regs + CHV_INTSTAT); | 1334 | chv_writel(BIT(intr_line), pctrl->regs + CHV_INTSTAT); |
1251 | 1335 | ||
1252 | raw_spin_unlock(&pctrl->lock); | 1336 | raw_spin_unlock(&chv_lock); |
1253 | } | 1337 | } |
1254 | 1338 | ||
1255 | static void chv_gpio_irq_mask_unmask(struct irq_data *d, bool mask) | 1339 | static void chv_gpio_irq_mask_unmask(struct irq_data *d, bool mask) |
@@ -1260,7 +1344,7 @@ static void chv_gpio_irq_mask_unmask(struct irq_data *d, bool mask) | |||
1260 | u32 value, intr_line; | 1344 | u32 value, intr_line; |
1261 | unsigned long flags; | 1345 | unsigned long flags; |
1262 | 1346 | ||
1263 | raw_spin_lock_irqsave(&pctrl->lock, flags); | 1347 | raw_spin_lock_irqsave(&chv_lock, flags); |
1264 | 1348 | ||
1265 | intr_line = readl(chv_padreg(pctrl, pin, CHV_PADCTRL0)); | 1349 | intr_line = readl(chv_padreg(pctrl, pin, CHV_PADCTRL0)); |
1266 | intr_line &= CHV_PADCTRL0_INTSEL_MASK; | 1350 | intr_line &= CHV_PADCTRL0_INTSEL_MASK; |
@@ -1273,7 +1357,7 @@ static void chv_gpio_irq_mask_unmask(struct irq_data *d, bool mask) | |||
1273 | value |= BIT(intr_line); | 1357 | value |= BIT(intr_line); |
1274 | chv_writel(value, pctrl->regs + CHV_INTMASK); | 1358 | chv_writel(value, pctrl->regs + CHV_INTMASK); |
1275 | 1359 | ||
1276 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); | 1360 | raw_spin_unlock_irqrestore(&chv_lock, flags); |
1277 | } | 1361 | } |
1278 | 1362 | ||
1279 | static void chv_gpio_irq_mask(struct irq_data *d) | 1363 | static void chv_gpio_irq_mask(struct irq_data *d) |
@@ -1307,7 +1391,7 @@ static unsigned chv_gpio_irq_startup(struct irq_data *d) | |||
1307 | unsigned long flags; | 1391 | unsigned long flags; |
1308 | u32 intsel, value; | 1392 | u32 intsel, value; |
1309 | 1393 | ||
1310 | raw_spin_lock_irqsave(&pctrl->lock, flags); | 1394 | raw_spin_lock_irqsave(&chv_lock, flags); |
1311 | intsel = readl(chv_padreg(pctrl, pin, CHV_PADCTRL0)); | 1395 | intsel = readl(chv_padreg(pctrl, pin, CHV_PADCTRL0)); |
1312 | intsel &= CHV_PADCTRL0_INTSEL_MASK; | 1396 | intsel &= CHV_PADCTRL0_INTSEL_MASK; |
1313 | intsel >>= CHV_PADCTRL0_INTSEL_SHIFT; | 1397 | intsel >>= CHV_PADCTRL0_INTSEL_SHIFT; |
@@ -1322,7 +1406,7 @@ static unsigned chv_gpio_irq_startup(struct irq_data *d) | |||
1322 | irq_set_handler_locked(d, handler); | 1406 | irq_set_handler_locked(d, handler); |
1323 | pctrl->intr_lines[intsel] = offset; | 1407 | pctrl->intr_lines[intsel] = offset; |
1324 | } | 1408 | } |
1325 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); | 1409 | raw_spin_unlock_irqrestore(&chv_lock, flags); |
1326 | } | 1410 | } |
1327 | 1411 | ||
1328 | chv_gpio_irq_unmask(d); | 1412 | chv_gpio_irq_unmask(d); |
@@ -1338,7 +1422,7 @@ static int chv_gpio_irq_type(struct irq_data *d, unsigned type) | |||
1338 | unsigned long flags; | 1422 | unsigned long flags; |
1339 | u32 value; | 1423 | u32 value; |
1340 | 1424 | ||
1341 | raw_spin_lock_irqsave(&pctrl->lock, flags); | 1425 | raw_spin_lock_irqsave(&chv_lock, flags); |
1342 | 1426 | ||
1343 | /* | 1427 | /* |
1344 | * Pins which can be used as shared interrupt are configured in | 1428 | * Pins which can be used as shared interrupt are configured in |
@@ -1387,7 +1471,7 @@ static int chv_gpio_irq_type(struct irq_data *d, unsigned type) | |||
1387 | else if (type & IRQ_TYPE_LEVEL_MASK) | 1471 | else if (type & IRQ_TYPE_LEVEL_MASK) |
1388 | irq_set_handler_locked(d, handle_level_irq); | 1472 | irq_set_handler_locked(d, handle_level_irq); |
1389 | 1473 | ||
1390 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); | 1474 | raw_spin_unlock_irqrestore(&chv_lock, flags); |
1391 | 1475 | ||
1392 | return 0; | 1476 | return 0; |
1393 | } | 1477 | } |
@@ -1499,7 +1583,6 @@ static int chv_pinctrl_probe(struct platform_device *pdev) | |||
1499 | if (i == ARRAY_SIZE(chv_communities)) | 1583 | if (i == ARRAY_SIZE(chv_communities)) |
1500 | return -ENODEV; | 1584 | return -ENODEV; |
1501 | 1585 | ||
1502 | raw_spin_lock_init(&pctrl->lock); | ||
1503 | pctrl->dev = &pdev->dev; | 1586 | pctrl->dev = &pdev->dev; |
1504 | 1587 | ||
1505 | #ifdef CONFIG_PM_SLEEP | 1588 | #ifdef CONFIG_PM_SLEEP |
diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c index 3584e50fa2c6..257cab129692 100644 --- a/drivers/pinctrl/intel/pinctrl-intel.c +++ b/drivers/pinctrl/intel/pinctrl-intel.c | |||
@@ -89,7 +89,7 @@ struct intel_pinctrl_context { | |||
89 | */ | 89 | */ |
90 | struct intel_pinctrl { | 90 | struct intel_pinctrl { |
91 | struct device *dev; | 91 | struct device *dev; |
92 | spinlock_t lock; | 92 | raw_spinlock_t lock; |
93 | struct pinctrl_desc pctldesc; | 93 | struct pinctrl_desc pctldesc; |
94 | struct pinctrl_dev *pctldev; | 94 | struct pinctrl_dev *pctldev; |
95 | struct gpio_chip chip; | 95 | struct gpio_chip chip; |
@@ -318,7 +318,7 @@ static int intel_pinmux_set_mux(struct pinctrl_dev *pctldev, unsigned function, | |||
318 | unsigned long flags; | 318 | unsigned long flags; |
319 | int i; | 319 | int i; |
320 | 320 | ||
321 | spin_lock_irqsave(&pctrl->lock, flags); | 321 | raw_spin_lock_irqsave(&pctrl->lock, flags); |
322 | 322 | ||
323 | /* | 323 | /* |
324 | * All pins in the groups needs to be accessible and writable | 324 | * All pins in the groups needs to be accessible and writable |
@@ -326,7 +326,7 @@ static int intel_pinmux_set_mux(struct pinctrl_dev *pctldev, unsigned function, | |||
326 | */ | 326 | */ |
327 | for (i = 0; i < grp->npins; i++) { | 327 | for (i = 0; i < grp->npins; i++) { |
328 | if (!intel_pad_usable(pctrl, grp->pins[i])) { | 328 | if (!intel_pad_usable(pctrl, grp->pins[i])) { |
329 | spin_unlock_irqrestore(&pctrl->lock, flags); | 329 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); |
330 | return -EBUSY; | 330 | return -EBUSY; |
331 | } | 331 | } |
332 | } | 332 | } |
@@ -345,7 +345,7 @@ static int intel_pinmux_set_mux(struct pinctrl_dev *pctldev, unsigned function, | |||
345 | writel(value, padcfg0); | 345 | writel(value, padcfg0); |
346 | } | 346 | } |
347 | 347 | ||
348 | spin_unlock_irqrestore(&pctrl->lock, flags); | 348 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); |
349 | 349 | ||
350 | return 0; | 350 | return 0; |
351 | } | 351 | } |
@@ -359,10 +359,10 @@ static int intel_gpio_request_enable(struct pinctrl_dev *pctldev, | |||
359 | unsigned long flags; | 359 | unsigned long flags; |
360 | u32 value; | 360 | u32 value; |
361 | 361 | ||
362 | spin_lock_irqsave(&pctrl->lock, flags); | 362 | raw_spin_lock_irqsave(&pctrl->lock, flags); |
363 | 363 | ||
364 | if (!intel_pad_usable(pctrl, pin)) { | 364 | if (!intel_pad_usable(pctrl, pin)) { |
365 | spin_unlock_irqrestore(&pctrl->lock, flags); | 365 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); |
366 | return -EBUSY; | 366 | return -EBUSY; |
367 | } | 367 | } |
368 | 368 | ||
@@ -377,7 +377,7 @@ static int intel_gpio_request_enable(struct pinctrl_dev *pctldev, | |||
377 | value |= PADCFG0_GPIOTXDIS; | 377 | value |= PADCFG0_GPIOTXDIS; |
378 | writel(value, padcfg0); | 378 | writel(value, padcfg0); |
379 | 379 | ||
380 | spin_unlock_irqrestore(&pctrl->lock, flags); | 380 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); |
381 | 381 | ||
382 | return 0; | 382 | return 0; |
383 | } | 383 | } |
@@ -391,7 +391,7 @@ static int intel_gpio_set_direction(struct pinctrl_dev *pctldev, | |||
391 | unsigned long flags; | 391 | unsigned long flags; |
392 | u32 value; | 392 | u32 value; |
393 | 393 | ||
394 | spin_lock_irqsave(&pctrl->lock, flags); | 394 | raw_spin_lock_irqsave(&pctrl->lock, flags); |
395 | 395 | ||
396 | padcfg0 = intel_get_padcfg(pctrl, pin, PADCFG0); | 396 | padcfg0 = intel_get_padcfg(pctrl, pin, PADCFG0); |
397 | 397 | ||
@@ -402,7 +402,7 @@ static int intel_gpio_set_direction(struct pinctrl_dev *pctldev, | |||
402 | value &= ~PADCFG0_GPIOTXDIS; | 402 | value &= ~PADCFG0_GPIOTXDIS; |
403 | writel(value, padcfg0); | 403 | writel(value, padcfg0); |
404 | 404 | ||
405 | spin_unlock_irqrestore(&pctrl->lock, flags); | 405 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); |
406 | 406 | ||
407 | return 0; | 407 | return 0; |
408 | } | 408 | } |
@@ -490,7 +490,7 @@ static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned pin, | |||
490 | int ret = 0; | 490 | int ret = 0; |
491 | u32 value; | 491 | u32 value; |
492 | 492 | ||
493 | spin_lock_irqsave(&pctrl->lock, flags); | 493 | raw_spin_lock_irqsave(&pctrl->lock, flags); |
494 | 494 | ||
495 | padcfg1 = intel_get_padcfg(pctrl, pin, PADCFG1); | 495 | padcfg1 = intel_get_padcfg(pctrl, pin, PADCFG1); |
496 | value = readl(padcfg1); | 496 | value = readl(padcfg1); |
@@ -544,7 +544,7 @@ static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned pin, | |||
544 | if (!ret) | 544 | if (!ret) |
545 | writel(value, padcfg1); | 545 | writel(value, padcfg1); |
546 | 546 | ||
547 | spin_unlock_irqrestore(&pctrl->lock, flags); | 547 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); |
548 | 548 | ||
549 | return ret; | 549 | return ret; |
550 | } | 550 | } |
@@ -611,14 +611,14 @@ static void intel_gpio_set(struct gpio_chip *chip, unsigned offset, int value) | |||
611 | unsigned long flags; | 611 | unsigned long flags; |
612 | u32 padcfg0; | 612 | u32 padcfg0; |
613 | 613 | ||
614 | spin_lock_irqsave(&pctrl->lock, flags); | 614 | raw_spin_lock_irqsave(&pctrl->lock, flags); |
615 | padcfg0 = readl(reg); | 615 | padcfg0 = readl(reg); |
616 | if (value) | 616 | if (value) |
617 | padcfg0 |= PADCFG0_GPIOTXSTATE; | 617 | padcfg0 |= PADCFG0_GPIOTXSTATE; |
618 | else | 618 | else |
619 | padcfg0 &= ~PADCFG0_GPIOTXSTATE; | 619 | padcfg0 &= ~PADCFG0_GPIOTXSTATE; |
620 | writel(padcfg0, reg); | 620 | writel(padcfg0, reg); |
621 | spin_unlock_irqrestore(&pctrl->lock, flags); | 621 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); |
622 | } | 622 | } |
623 | } | 623 | } |
624 | 624 | ||
@@ -651,7 +651,7 @@ static void intel_gpio_irq_ack(struct irq_data *d) | |||
651 | const struct intel_community *community; | 651 | const struct intel_community *community; |
652 | unsigned pin = irqd_to_hwirq(d); | 652 | unsigned pin = irqd_to_hwirq(d); |
653 | 653 | ||
654 | spin_lock(&pctrl->lock); | 654 | raw_spin_lock(&pctrl->lock); |
655 | 655 | ||
656 | community = intel_get_community(pctrl, pin); | 656 | community = intel_get_community(pctrl, pin); |
657 | if (community) { | 657 | if (community) { |
@@ -662,7 +662,7 @@ static void intel_gpio_irq_ack(struct irq_data *d) | |||
662 | writel(BIT(gpp_offset), community->regs + GPI_IS + gpp * 4); | 662 | writel(BIT(gpp_offset), community->regs + GPI_IS + gpp * 4); |
663 | } | 663 | } |
664 | 664 | ||
665 | spin_unlock(&pctrl->lock); | 665 | raw_spin_unlock(&pctrl->lock); |
666 | } | 666 | } |
667 | 667 | ||
668 | static void intel_gpio_irq_enable(struct irq_data *d) | 668 | static void intel_gpio_irq_enable(struct irq_data *d) |
@@ -673,7 +673,7 @@ static void intel_gpio_irq_enable(struct irq_data *d) | |||
673 | unsigned pin = irqd_to_hwirq(d); | 673 | unsigned pin = irqd_to_hwirq(d); |
674 | unsigned long flags; | 674 | unsigned long flags; |
675 | 675 | ||
676 | spin_lock_irqsave(&pctrl->lock, flags); | 676 | raw_spin_lock_irqsave(&pctrl->lock, flags); |
677 | 677 | ||
678 | community = intel_get_community(pctrl, pin); | 678 | community = intel_get_community(pctrl, pin); |
679 | if (community) { | 679 | if (community) { |
@@ -691,7 +691,7 @@ static void intel_gpio_irq_enable(struct irq_data *d) | |||
691 | writel(value, community->regs + community->ie_offset + gpp * 4); | 691 | writel(value, community->regs + community->ie_offset + gpp * 4); |
692 | } | 692 | } |
693 | 693 | ||
694 | spin_unlock_irqrestore(&pctrl->lock, flags); | 694 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); |
695 | } | 695 | } |
696 | 696 | ||
697 | static void intel_gpio_irq_mask_unmask(struct irq_data *d, bool mask) | 697 | static void intel_gpio_irq_mask_unmask(struct irq_data *d, bool mask) |
@@ -702,7 +702,7 @@ static void intel_gpio_irq_mask_unmask(struct irq_data *d, bool mask) | |||
702 | unsigned pin = irqd_to_hwirq(d); | 702 | unsigned pin = irqd_to_hwirq(d); |
703 | unsigned long flags; | 703 | unsigned long flags; |
704 | 704 | ||
705 | spin_lock_irqsave(&pctrl->lock, flags); | 705 | raw_spin_lock_irqsave(&pctrl->lock, flags); |
706 | 706 | ||
707 | community = intel_get_community(pctrl, pin); | 707 | community = intel_get_community(pctrl, pin); |
708 | if (community) { | 708 | if (community) { |
@@ -721,7 +721,7 @@ static void intel_gpio_irq_mask_unmask(struct irq_data *d, bool mask) | |||
721 | writel(value, reg); | 721 | writel(value, reg); |
722 | } | 722 | } |
723 | 723 | ||
724 | spin_unlock_irqrestore(&pctrl->lock, flags); | 724 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); |
725 | } | 725 | } |
726 | 726 | ||
727 | static void intel_gpio_irq_mask(struct irq_data *d) | 727 | static void intel_gpio_irq_mask(struct irq_data *d) |
@@ -757,7 +757,7 @@ static int intel_gpio_irq_type(struct irq_data *d, unsigned type) | |||
757 | return -EPERM; | 757 | return -EPERM; |
758 | } | 758 | } |
759 | 759 | ||
760 | spin_lock_irqsave(&pctrl->lock, flags); | 760 | raw_spin_lock_irqsave(&pctrl->lock, flags); |
761 | 761 | ||
762 | value = readl(reg); | 762 | value = readl(reg); |
763 | 763 | ||
@@ -784,7 +784,7 @@ static int intel_gpio_irq_type(struct irq_data *d, unsigned type) | |||
784 | else if (type & IRQ_TYPE_LEVEL_MASK) | 784 | else if (type & IRQ_TYPE_LEVEL_MASK) |
785 | irq_set_handler_locked(d, handle_level_irq); | 785 | irq_set_handler_locked(d, handle_level_irq); |
786 | 786 | ||
787 | spin_unlock_irqrestore(&pctrl->lock, flags); | 787 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); |
788 | 788 | ||
789 | return 0; | 789 | return 0; |
790 | } | 790 | } |
@@ -796,12 +796,15 @@ static int intel_gpio_irq_wake(struct irq_data *d, unsigned int on) | |||
796 | const struct intel_community *community; | 796 | const struct intel_community *community; |
797 | unsigned pin = irqd_to_hwirq(d); | 797 | unsigned pin = irqd_to_hwirq(d); |
798 | unsigned padno, gpp, gpp_offset; | 798 | unsigned padno, gpp, gpp_offset; |
799 | unsigned long flags; | ||
799 | u32 gpe_en; | 800 | u32 gpe_en; |
800 | 801 | ||
801 | community = intel_get_community(pctrl, pin); | 802 | community = intel_get_community(pctrl, pin); |
802 | if (!community) | 803 | if (!community) |
803 | return -EINVAL; | 804 | return -EINVAL; |
804 | 805 | ||
806 | raw_spin_lock_irqsave(&pctrl->lock, flags); | ||
807 | |||
805 | padno = pin_to_padno(community, pin); | 808 | padno = pin_to_padno(community, pin); |
806 | gpp = padno / community->gpp_size; | 809 | gpp = padno / community->gpp_size; |
807 | gpp_offset = padno % community->gpp_size; | 810 | gpp_offset = padno % community->gpp_size; |
@@ -821,6 +824,8 @@ static int intel_gpio_irq_wake(struct irq_data *d, unsigned int on) | |||
821 | gpe_en &= ~BIT(gpp_offset); | 824 | gpe_en &= ~BIT(gpp_offset); |
822 | writel(gpe_en, community->regs + GPI_GPE_EN + gpp * 4); | 825 | writel(gpe_en, community->regs + GPI_GPE_EN + gpp * 4); |
823 | 826 | ||
827 | raw_spin_unlock_irqrestore(&pctrl->lock, flags); | ||
828 | |||
824 | dev_dbg(pctrl->dev, "%sable wake for pin %u\n", on ? "en" : "dis", pin); | 829 | dev_dbg(pctrl->dev, "%sable wake for pin %u\n", on ? "en" : "dis", pin); |
825 | return 0; | 830 | return 0; |
826 | } | 831 | } |
@@ -919,7 +924,8 @@ static int intel_gpio_probe(struct intel_pinctrl *pctrl, int irq) | |||
919 | * to the irq directly) because on some platforms several GPIO | 924 | * to the irq directly) because on some platforms several GPIO |
920 | * controllers share the same interrupt line. | 925 | * controllers share the same interrupt line. |
921 | */ | 926 | */ |
922 | ret = devm_request_irq(pctrl->dev, irq, intel_gpio_irq, IRQF_SHARED, | 927 | ret = devm_request_irq(pctrl->dev, irq, intel_gpio_irq, |
928 | IRQF_SHARED | IRQF_NO_THREAD, | ||
923 | dev_name(pctrl->dev), pctrl); | 929 | dev_name(pctrl->dev), pctrl); |
924 | if (ret) { | 930 | if (ret) { |
925 | dev_err(pctrl->dev, "failed to request interrupt\n"); | 931 | dev_err(pctrl->dev, "failed to request interrupt\n"); |
@@ -995,7 +1001,7 @@ int intel_pinctrl_probe(struct platform_device *pdev, | |||
995 | 1001 | ||
996 | pctrl->dev = &pdev->dev; | 1002 | pctrl->dev = &pdev->dev; |
997 | pctrl->soc = soc_data; | 1003 | pctrl->soc = soc_data; |
998 | spin_lock_init(&pctrl->lock); | 1004 | raw_spin_lock_init(&pctrl->lock); |
999 | 1005 | ||
1000 | /* | 1006 | /* |
1001 | * Make a copy of the communities which we can use to hold pointers | 1007 | * Make a copy of the communities which we can use to hold pointers |
diff --git a/drivers/pinctrl/intel/pinctrl-merrifield.c b/drivers/pinctrl/intel/pinctrl-merrifield.c new file mode 100644 index 000000000000..eb4990ff26ca --- /dev/null +++ b/drivers/pinctrl/intel/pinctrl-merrifield.c | |||
@@ -0,0 +1,911 @@ | |||
1 | /* | ||
2 | * Intel Merrifield SoC pinctrl driver | ||
3 | * | ||
4 | * Copyright (C) 2016, Intel Corporation | ||
5 | * Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License version 2 as | ||
9 | * published by the Free Software Foundation. | ||
10 | */ | ||
11 | |||
12 | #include <linux/bitops.h> | ||
13 | #include <linux/err.h> | ||
14 | #include <linux/module.h> | ||
15 | #include <linux/platform_device.h> | ||
16 | #include <linux/pinctrl/pinconf.h> | ||
17 | #include <linux/pinctrl/pinconf-generic.h> | ||
18 | #include <linux/pinctrl/pinctrl.h> | ||
19 | #include <linux/pinctrl/pinmux.h> | ||
20 | |||
21 | #include "pinctrl-intel.h" | ||
22 | |||
23 | #define MRFLD_FAMILY_NR 64 | ||
24 | #define MRFLD_FAMILY_LEN 0x400 | ||
25 | |||
26 | #define SLEW_OFFSET 0x000 | ||
27 | #define BUFCFG_OFFSET 0x100 | ||
28 | #define MISC_OFFSET 0x300 | ||
29 | |||
30 | #define BUFCFG_PINMODE_SHIFT 0 | ||
31 | #define BUFCFG_PINMODE_MASK GENMASK(2, 0) | ||
32 | #define BUFCFG_PINMODE_GPIO 0 | ||
33 | #define BUFCFG_PUPD_VAL_SHIFT 4 | ||
34 | #define BUFCFG_PUPD_VAL_MASK GENMASK(5, 4) | ||
35 | #define BUFCFG_PUPD_VAL_2K 0 | ||
36 | #define BUFCFG_PUPD_VAL_20K 1 | ||
37 | #define BUFCFG_PUPD_VAL_50K 2 | ||
38 | #define BUFCFG_PUPD_VAL_910 3 | ||
39 | #define BUFCFG_PU_EN BIT(8) | ||
40 | #define BUFCFG_PD_EN BIT(9) | ||
41 | #define BUFCFG_Px_EN_MASK GENMASK(9, 8) | ||
42 | #define BUFCFG_SLEWSEL BIT(10) | ||
43 | #define BUFCFG_OVINEN BIT(12) | ||
44 | #define BUFCFG_OVINEN_EN BIT(13) | ||
45 | #define BUFCFG_OVINEN_MASK GENMASK(13, 12) | ||
46 | #define BUFCFG_OVOUTEN BIT(14) | ||
47 | #define BUFCFG_OVOUTEN_EN BIT(15) | ||
48 | #define BUFCFG_OVOUTEN_MASK GENMASK(15, 14) | ||
49 | #define BUFCFG_INDATAOV_VAL BIT(16) | ||
50 | #define BUFCFG_INDATAOV_EN BIT(17) | ||
51 | #define BUFCFG_INDATAOV_MASK GENMASK(17, 16) | ||
52 | #define BUFCFG_OUTDATAOV_VAL BIT(18) | ||
53 | #define BUFCFG_OUTDATAOV_EN BIT(19) | ||
54 | #define BUFCFG_OUTDATAOV_MASK GENMASK(19, 18) | ||
55 | #define BUFCFG_OD_EN BIT(21) | ||
56 | |||
57 | /** | ||
58 | * struct mrfld_family - Intel pin family description | ||
59 | * @barno: MMIO BAR number where registers for this family reside | ||
60 | * @pin_base: Starting pin of pins in this family | ||
61 | * @npins: Number of pins in this family | ||
62 | * @protected: True if family is protected by access | ||
63 | * @regs: family specific common registers | ||
64 | */ | ||
65 | struct mrfld_family { | ||
66 | unsigned int barno; | ||
67 | unsigned int pin_base; | ||
68 | size_t npins; | ||
69 | bool protected; | ||
70 | void __iomem *regs; | ||
71 | }; | ||
72 | |||
73 | #define MRFLD_FAMILY(b, s, e) \ | ||
74 | { \ | ||
75 | .barno = (b), \ | ||
76 | .pin_base = (s), \ | ||
77 | .npins = (e) - (s) + 1, \ | ||
78 | } | ||
79 | |||
80 | #define MRFLD_FAMILY_PROTECTED(b, s, e) \ | ||
81 | { \ | ||
82 | .barno = (b), \ | ||
83 | .pin_base = (s), \ | ||
84 | .npins = (e) - (s) + 1, \ | ||
85 | .protected = true, \ | ||
86 | } | ||
87 | |||
88 | static const struct pinctrl_pin_desc mrfld_pins[] = { | ||
89 | /* Family 0: OCP2SSC (0 pins) */ | ||
90 | /* Family 1: ULPI (13 pins) */ | ||
91 | PINCTRL_PIN(0, "ULPI_CLK"), | ||
92 | PINCTRL_PIN(1, "ULPI_D0"), | ||
93 | PINCTRL_PIN(2, "ULPI_D1"), | ||
94 | PINCTRL_PIN(3, "ULPI_D2"), | ||
95 | PINCTRL_PIN(4, "ULPI_D3"), | ||
96 | PINCTRL_PIN(5, "ULPI_D4"), | ||
97 | PINCTRL_PIN(6, "ULPI_D5"), | ||
98 | PINCTRL_PIN(7, "ULPI_D6"), | ||
99 | PINCTRL_PIN(8, "ULPI_D7"), | ||
100 | PINCTRL_PIN(9, "ULPI_DIR"), | ||
101 | PINCTRL_PIN(10, "ULPI_NXT"), | ||
102 | PINCTRL_PIN(11, "ULPI_REFCLK"), | ||
103 | PINCTRL_PIN(12, "ULPI_STP"), | ||
104 | /* Family 2: eMMC (24 pins) */ | ||
105 | PINCTRL_PIN(13, "EMMC_CLK"), | ||
106 | PINCTRL_PIN(14, "EMMC_CMD"), | ||
107 | PINCTRL_PIN(15, "EMMC_D0"), | ||
108 | PINCTRL_PIN(16, "EMMC_D1"), | ||
109 | PINCTRL_PIN(17, "EMMC_D2"), | ||
110 | PINCTRL_PIN(18, "EMMC_D3"), | ||
111 | PINCTRL_PIN(19, "EMMC_D4"), | ||
112 | PINCTRL_PIN(20, "EMMC_D5"), | ||
113 | PINCTRL_PIN(21, "EMMC_D6"), | ||
114 | PINCTRL_PIN(22, "EMMC_D7"), | ||
115 | PINCTRL_PIN(23, "EMMC_RST_N"), | ||
116 | PINCTRL_PIN(24, "GP154"), | ||
117 | PINCTRL_PIN(25, "GP155"), | ||
118 | PINCTRL_PIN(26, "GP156"), | ||
119 | PINCTRL_PIN(27, "GP157"), | ||
120 | PINCTRL_PIN(28, "GP158"), | ||
121 | PINCTRL_PIN(29, "GP159"), | ||
122 | PINCTRL_PIN(30, "GP160"), | ||
123 | PINCTRL_PIN(31, "GP161"), | ||
124 | PINCTRL_PIN(32, "GP162"), | ||
125 | PINCTRL_PIN(33, "GP163"), | ||
126 | PINCTRL_PIN(34, "GP97"), | ||
127 | PINCTRL_PIN(35, "GP14"), | ||
128 | PINCTRL_PIN(36, "GP15"), | ||
129 | /* Family 3: SDIO (20 pins) */ | ||
130 | PINCTRL_PIN(37, "GP77_SD_CD"), | ||
131 | PINCTRL_PIN(38, "GP78_SD_CLK"), | ||
132 | PINCTRL_PIN(39, "GP79_SD_CMD"), | ||
133 | PINCTRL_PIN(40, "GP80_SD_D0"), | ||
134 | PINCTRL_PIN(41, "GP81_SD_D1"), | ||
135 | PINCTRL_PIN(42, "GP82_SD_D2"), | ||
136 | PINCTRL_PIN(43, "GP83_SD_D3"), | ||
137 | PINCTRL_PIN(44, "GP84_SD_LS_CLK_FB"), | ||
138 | PINCTRL_PIN(45, "GP85_SD_LS_CMD_DIR"), | ||
139 | PINCTRL_PIN(46, "GP86_SD_LVL_D_DIR"), | ||
140 | PINCTRL_PIN(47, "GP88_SD_LS_SEL"), | ||
141 | PINCTRL_PIN(48, "GP87_SD_PD"), | ||
142 | PINCTRL_PIN(49, "GP89_SD_WP"), | ||
143 | PINCTRL_PIN(50, "GP90_SDIO_CLK"), | ||
144 | PINCTRL_PIN(51, "GP91_SDIO_CMD"), | ||
145 | PINCTRL_PIN(52, "GP92_SDIO_D0"), | ||
146 | PINCTRL_PIN(53, "GP93_SDIO_D1"), | ||
147 | PINCTRL_PIN(54, "GP94_SDIO_D2"), | ||
148 | PINCTRL_PIN(55, "GP95_SDIO_D3"), | ||
149 | PINCTRL_PIN(56, "GP96_SDIO_PD"), | ||
150 | /* Family 4: HSI (8 pins) */ | ||
151 | PINCTRL_PIN(57, "HSI_ACDATA"), | ||
152 | PINCTRL_PIN(58, "HSI_ACFLAG"), | ||
153 | PINCTRL_PIN(59, "HSI_ACREADY"), | ||
154 | PINCTRL_PIN(60, "HSI_ACWAKE"), | ||
155 | PINCTRL_PIN(61, "HSI_CADATA"), | ||
156 | PINCTRL_PIN(62, "HSI_CAFLAG"), | ||
157 | PINCTRL_PIN(63, "HSI_CAREADY"), | ||
158 | PINCTRL_PIN(64, "HSI_CAWAKE"), | ||
159 | /* Family 5: SSP Audio (14 pins) */ | ||
160 | PINCTRL_PIN(65, "GP70"), | ||
161 | PINCTRL_PIN(66, "GP71"), | ||
162 | PINCTRL_PIN(67, "GP32_I2S_0_CLK"), | ||
163 | PINCTRL_PIN(68, "GP33_I2S_0_FS"), | ||
164 | PINCTRL_PIN(69, "GP34_I2S_0_RXD"), | ||
165 | PINCTRL_PIN(70, "GP35_I2S_0_TXD"), | ||
166 | PINCTRL_PIN(71, "GP36_I2S_1_CLK"), | ||
167 | PINCTRL_PIN(72, "GP37_I2S_1_FS"), | ||
168 | PINCTRL_PIN(73, "GP38_I2S_1_RXD"), | ||
169 | PINCTRL_PIN(74, "GP39_I2S_1_TXD"), | ||
170 | PINCTRL_PIN(75, "GP40_I2S_2_CLK"), | ||
171 | PINCTRL_PIN(76, "GP41_I2S_2_FS"), | ||
172 | PINCTRL_PIN(77, "GP42_I2S_2_RXD"), | ||
173 | PINCTRL_PIN(78, "GP43_I2S_2_TXD"), | ||
174 | /* Family 6: GP SSP (22 pins) */ | ||
175 | PINCTRL_PIN(79, "GP120_SPI_3_CLK"), | ||
176 | PINCTRL_PIN(80, "GP121_SPI_3_SS"), | ||
177 | PINCTRL_PIN(81, "GP122_SPI_3_RXD"), | ||
178 | PINCTRL_PIN(82, "GP123_SPI_3_TXD"), | ||
179 | PINCTRL_PIN(83, "GP102_SPI_4_CLK"), | ||
180 | PINCTRL_PIN(84, "GP103_SPI_4_SS_0"), | ||
181 | PINCTRL_PIN(85, "GP104_SPI_4_SS_1"), | ||
182 | PINCTRL_PIN(86, "GP105_SPI_4_SS_2"), | ||
183 | PINCTRL_PIN(87, "GP106_SPI_4_SS_3"), | ||
184 | PINCTRL_PIN(88, "GP107_SPI_4_RXD"), | ||
185 | PINCTRL_PIN(89, "GP108_SPI_4_TXD"), | ||
186 | PINCTRL_PIN(90, "GP109_SPI_5_CLK"), | ||
187 | PINCTRL_PIN(91, "GP110_SPI_5_SS_0"), | ||
188 | PINCTRL_PIN(92, "GP111_SPI_5_SS_1"), | ||
189 | PINCTRL_PIN(93, "GP112_SPI_5_SS_2"), | ||
190 | PINCTRL_PIN(94, "GP113_SPI_5_SS_3"), | ||
191 | PINCTRL_PIN(95, "GP114_SPI_5_RXD"), | ||
192 | PINCTRL_PIN(96, "GP115_SPI_5_TXD"), | ||
193 | PINCTRL_PIN(97, "GP116_SPI_6_CLK"), | ||
194 | PINCTRL_PIN(98, "GP117_SPI_6_SS"), | ||
195 | PINCTRL_PIN(99, "GP118_SPI_6_RXD"), | ||
196 | PINCTRL_PIN(100, "GP119_SPI_6_TXD"), | ||
197 | /* Family 7: I2C (14 pins) */ | ||
198 | PINCTRL_PIN(101, "GP19_I2C_1_SCL"), | ||
199 | PINCTRL_PIN(102, "GP20_I2C_1_SDA"), | ||
200 | PINCTRL_PIN(103, "GP21_I2C_2_SCL"), | ||
201 | PINCTRL_PIN(104, "GP22_I2C_2_SDA"), | ||
202 | PINCTRL_PIN(105, "GP17_I2C_3_SCL_HDMI"), | ||
203 | PINCTRL_PIN(106, "GP18_I2C_3_SDA_HDMI"), | ||
204 | PINCTRL_PIN(107, "GP23_I2C_4_SCL"), | ||
205 | PINCTRL_PIN(108, "GP24_I2C_4_SDA"), | ||
206 | PINCTRL_PIN(109, "GP25_I2C_5_SCL"), | ||
207 | PINCTRL_PIN(110, "GP26_I2C_5_SDA"), | ||
208 | PINCTRL_PIN(111, "GP27_I2C_6_SCL"), | ||
209 | PINCTRL_PIN(112, "GP28_I2C_6_SDA"), | ||
210 | PINCTRL_PIN(113, "GP29_I2C_7_SCL"), | ||
211 | PINCTRL_PIN(114, "GP30_I2C_7_SDA"), | ||
212 | /* Family 8: UART (12 pins) */ | ||
213 | PINCTRL_PIN(115, "GP124_UART_0_CTS"), | ||
214 | PINCTRL_PIN(116, "GP125_UART_0_RTS"), | ||
215 | PINCTRL_PIN(117, "GP126_UART_0_RX"), | ||
216 | PINCTRL_PIN(118, "GP127_UART_0_TX"), | ||
217 | PINCTRL_PIN(119, "GP128_UART_1_CTS"), | ||
218 | PINCTRL_PIN(120, "GP129_UART_1_RTS"), | ||
219 | PINCTRL_PIN(121, "GP130_UART_1_RX"), | ||
220 | PINCTRL_PIN(122, "GP131_UART_1_TX"), | ||
221 | PINCTRL_PIN(123, "GP132_UART_2_CTS"), | ||
222 | PINCTRL_PIN(124, "GP133_UART_2_RTS"), | ||
223 | PINCTRL_PIN(125, "GP134_UART_2_RX"), | ||
224 | PINCTRL_PIN(126, "GP135_UART_2_TX"), | ||
225 | /* Family 9: GPIO South (19 pins) */ | ||
226 | PINCTRL_PIN(127, "GP177"), | ||
227 | PINCTRL_PIN(128, "GP178"), | ||
228 | PINCTRL_PIN(129, "GP179"), | ||
229 | PINCTRL_PIN(130, "GP180"), | ||
230 | PINCTRL_PIN(131, "GP181"), | ||
231 | PINCTRL_PIN(132, "GP182_PWM2"), | ||
232 | PINCTRL_PIN(133, "GP183_PWM3"), | ||
233 | PINCTRL_PIN(134, "GP184"), | ||
234 | PINCTRL_PIN(135, "GP185"), | ||
235 | PINCTRL_PIN(136, "GP186"), | ||
236 | PINCTRL_PIN(137, "GP187"), | ||
237 | PINCTRL_PIN(138, "GP188"), | ||
238 | PINCTRL_PIN(139, "GP189"), | ||
239 | PINCTRL_PIN(140, "GP64_FAST_INT0"), | ||
240 | PINCTRL_PIN(141, "GP65_FAST_INT1"), | ||
241 | PINCTRL_PIN(142, "GP66_FAST_INT2"), | ||
242 | PINCTRL_PIN(143, "GP67_FAST_INT3"), | ||
243 | PINCTRL_PIN(144, "GP12_PWM0"), | ||
244 | PINCTRL_PIN(145, "GP13_PWM1"), | ||
245 | /* Family 10: Camera Sideband (12 pins) */ | ||
246 | PINCTRL_PIN(146, "GP0"), | ||
247 | PINCTRL_PIN(147, "GP1"), | ||
248 | PINCTRL_PIN(148, "GP2"), | ||
249 | PINCTRL_PIN(149, "GP3"), | ||
250 | PINCTRL_PIN(150, "GP4"), | ||
251 | PINCTRL_PIN(151, "GP5"), | ||
252 | PINCTRL_PIN(152, "GP6"), | ||
253 | PINCTRL_PIN(153, "GP7"), | ||
254 | PINCTRL_PIN(154, "GP8"), | ||
255 | PINCTRL_PIN(155, "GP9"), | ||
256 | PINCTRL_PIN(156, "GP10"), | ||
257 | PINCTRL_PIN(157, "GP11"), | ||
258 | /* Family 11: Clock (22 pins) */ | ||
259 | PINCTRL_PIN(158, "GP137"), | ||
260 | PINCTRL_PIN(159, "GP138"), | ||
261 | PINCTRL_PIN(160, "GP139"), | ||
262 | PINCTRL_PIN(161, "GP140"), | ||
263 | PINCTRL_PIN(162, "GP141"), | ||
264 | PINCTRL_PIN(163, "GP142"), | ||
265 | PINCTRL_PIN(164, "GP16_HDMI_HPD"), | ||
266 | PINCTRL_PIN(165, "GP68_DSI_A_TE"), | ||
267 | PINCTRL_PIN(166, "GP69_DSI_C_TE"), | ||
268 | PINCTRL_PIN(167, "OSC_CLK_CTRL0"), | ||
269 | PINCTRL_PIN(168, "OSC_CLK_CTRL1"), | ||
270 | PINCTRL_PIN(169, "OSC_CLK0"), | ||
271 | PINCTRL_PIN(170, "OSC_CLK1"), | ||
272 | PINCTRL_PIN(171, "OSC_CLK2"), | ||
273 | PINCTRL_PIN(172, "OSC_CLK3"), | ||
274 | PINCTRL_PIN(173, "OSC_CLK4"), | ||
275 | PINCTRL_PIN(174, "RESETOUT"), | ||
276 | PINCTRL_PIN(175, "PMODE"), | ||
277 | PINCTRL_PIN(176, "PRDY"), | ||
278 | PINCTRL_PIN(177, "PREQ"), | ||
279 | PINCTRL_PIN(178, "GP190"), | ||
280 | PINCTRL_PIN(179, "GP191"), | ||
281 | /* Family 12: MSIC (15 pins) */ | ||
282 | PINCTRL_PIN(180, "I2C_0_SCL"), | ||
283 | PINCTRL_PIN(181, "I2C_0_SDA"), | ||
284 | PINCTRL_PIN(182, "IERR"), | ||
285 | PINCTRL_PIN(183, "JTAG_TCK"), | ||
286 | PINCTRL_PIN(184, "JTAG_TDI"), | ||
287 | PINCTRL_PIN(185, "JTAG_TDO"), | ||
288 | PINCTRL_PIN(186, "JTAG_TMS"), | ||
289 | PINCTRL_PIN(187, "JTAG_TRST"), | ||
290 | PINCTRL_PIN(188, "PROCHOT"), | ||
291 | PINCTRL_PIN(189, "RTC_CLK"), | ||
292 | PINCTRL_PIN(190, "SVID_ALERT"), | ||
293 | PINCTRL_PIN(191, "SVID_CLK"), | ||
294 | PINCTRL_PIN(192, "SVID_D"), | ||
295 | PINCTRL_PIN(193, "THERMTRIP"), | ||
296 | PINCTRL_PIN(194, "STANDBY"), | ||
297 | /* Family 13: Keyboard (20 pins) */ | ||
298 | PINCTRL_PIN(195, "GP44"), | ||
299 | PINCTRL_PIN(196, "GP45"), | ||
300 | PINCTRL_PIN(197, "GP46"), | ||
301 | PINCTRL_PIN(198, "GP47"), | ||
302 | PINCTRL_PIN(199, "GP48"), | ||
303 | PINCTRL_PIN(200, "GP49"), | ||
304 | PINCTRL_PIN(201, "GP50"), | ||
305 | PINCTRL_PIN(202, "GP51"), | ||
306 | PINCTRL_PIN(203, "GP52"), | ||
307 | PINCTRL_PIN(204, "GP53"), | ||
308 | PINCTRL_PIN(205, "GP54"), | ||
309 | PINCTRL_PIN(206, "GP55"), | ||
310 | PINCTRL_PIN(207, "GP56"), | ||
311 | PINCTRL_PIN(208, "GP57"), | ||
312 | PINCTRL_PIN(209, "GP58"), | ||
313 | PINCTRL_PIN(210, "GP59"), | ||
314 | PINCTRL_PIN(211, "GP60"), | ||
315 | PINCTRL_PIN(212, "GP61"), | ||
316 | PINCTRL_PIN(213, "GP62"), | ||
317 | PINCTRL_PIN(214, "GP63"), | ||
318 | /* Family 14: GPIO North (13 pins) */ | ||
319 | PINCTRL_PIN(215, "GP164"), | ||
320 | PINCTRL_PIN(216, "GP165"), | ||
321 | PINCTRL_PIN(217, "GP166"), | ||
322 | PINCTRL_PIN(218, "GP167"), | ||
323 | PINCTRL_PIN(219, "GP168_MJTAG_TCK"), | ||
324 | PINCTRL_PIN(220, "GP169_MJTAG_TDI"), | ||
325 | PINCTRL_PIN(221, "GP170_MJTAG_TDO"), | ||
326 | PINCTRL_PIN(222, "GP171_MJTAG_TMS"), | ||
327 | PINCTRL_PIN(223, "GP172_MJTAG_TRST"), | ||
328 | PINCTRL_PIN(224, "GP173"), | ||
329 | PINCTRL_PIN(225, "GP174"), | ||
330 | PINCTRL_PIN(226, "GP175"), | ||
331 | PINCTRL_PIN(227, "GP176"), | ||
332 | /* Family 15: PTI (5 pins) */ | ||
333 | PINCTRL_PIN(228, "GP72_PTI_CLK"), | ||
334 | PINCTRL_PIN(229, "GP73_PTI_D0"), | ||
335 | PINCTRL_PIN(230, "GP74_PTI_D1"), | ||
336 | PINCTRL_PIN(231, "GP75_PTI_D2"), | ||
337 | PINCTRL_PIN(232, "GP76_PTI_D3"), | ||
338 | /* Family 16: USB3 (0 pins) */ | ||
339 | /* Family 17: HSIC (0 pins) */ | ||
340 | /* Family 18: Broadcast (0 pins) */ | ||
341 | }; | ||
342 | |||
343 | static const unsigned int mrfld_sdio_pins[] = { 50, 51, 52, 53, 54, 55, 56 }; | ||
344 | static const unsigned int mrfld_spi5_pins[] = { 90, 91, 92, 93, 94, 95, 96 }; | ||
345 | static const unsigned int mrfld_uart0_pins[] = { 124, 125, 126, 127 }; | ||
346 | static const unsigned int mrfld_uart1_pins[] = { 128, 129, 130, 131 }; | ||
347 | static const unsigned int mrfld_uart2_pins[] = { 132, 133, 134, 135 }; | ||
348 | static const unsigned int mrfld_pwm0_pins[] = { 144 }; | ||
349 | static const unsigned int mrfld_pwm1_pins[] = { 145 }; | ||
350 | static const unsigned int mrfld_pwm2_pins[] = { 132 }; | ||
351 | static const unsigned int mrfld_pwm3_pins[] = { 133 }; | ||
352 | |||
353 | static const struct intel_pingroup mrfld_groups[] = { | ||
354 | PIN_GROUP("sdio_grp", mrfld_sdio_pins, 1), | ||
355 | PIN_GROUP("spi5_grp", mrfld_spi5_pins, 1), | ||
356 | PIN_GROUP("uart0_grp", mrfld_uart0_pins, 1), | ||
357 | PIN_GROUP("uart1_grp", mrfld_uart1_pins, 1), | ||
358 | PIN_GROUP("uart2_grp", mrfld_uart2_pins, 1), | ||
359 | PIN_GROUP("pwm0_grp", mrfld_pwm0_pins, 1), | ||
360 | PIN_GROUP("pwm1_grp", mrfld_pwm1_pins, 1), | ||
361 | PIN_GROUP("pwm2_grp", mrfld_pwm2_pins, 1), | ||
362 | PIN_GROUP("pwm3_grp", mrfld_pwm3_pins, 1), | ||
363 | }; | ||
364 | |||
365 | static const char * const mrfld_sdio_groups[] = { "sdio_grp" }; | ||
366 | static const char * const mrfld_spi5_groups[] = { "spi5_grp" }; | ||
367 | static const char * const mrfld_uart0_groups[] = { "uart0_grp" }; | ||
368 | static const char * const mrfld_uart1_groups[] = { "uart1_grp" }; | ||
369 | static const char * const mrfld_uart2_groups[] = { "uart2_grp" }; | ||
370 | static const char * const mrfld_pwm0_groups[] = { "pwm0_grp" }; | ||
371 | static const char * const mrfld_pwm1_groups[] = { "pwm1_grp" }; | ||
372 | static const char * const mrfld_pwm2_groups[] = { "pwm2_grp" }; | ||
373 | static const char * const mrfld_pwm3_groups[] = { "pwm3_grp" }; | ||
374 | |||
375 | static const struct intel_function mrfld_functions[] = { | ||
376 | FUNCTION("sdio", mrfld_sdio_groups), | ||
377 | FUNCTION("spi5", mrfld_spi5_groups), | ||
378 | FUNCTION("uart0", mrfld_uart0_groups), | ||
379 | FUNCTION("uart1", mrfld_uart1_groups), | ||
380 | FUNCTION("uart2", mrfld_uart2_groups), | ||
381 | FUNCTION("pwm0", mrfld_pwm0_groups), | ||
382 | FUNCTION("pwm1", mrfld_pwm1_groups), | ||
383 | FUNCTION("pwm2", mrfld_pwm2_groups), | ||
384 | FUNCTION("pwm3", mrfld_pwm3_groups), | ||
385 | }; | ||
386 | |||
387 | static const struct mrfld_family mrfld_families[] = { | ||
388 | MRFLD_FAMILY(1, 0, 12), | ||
389 | MRFLD_FAMILY(2, 13, 36), | ||
390 | MRFLD_FAMILY(3, 37, 56), | ||
391 | MRFLD_FAMILY(4, 57, 64), | ||
392 | MRFLD_FAMILY(5, 65, 78), | ||
393 | MRFLD_FAMILY(6, 79, 100), | ||
394 | MRFLD_FAMILY_PROTECTED(7, 101, 114), | ||
395 | MRFLD_FAMILY(8, 115, 126), | ||
396 | MRFLD_FAMILY(9, 127, 145), | ||
397 | MRFLD_FAMILY(10, 146, 157), | ||
398 | MRFLD_FAMILY(11, 158, 179), | ||
399 | MRFLD_FAMILY_PROTECTED(12, 180, 194), | ||
400 | MRFLD_FAMILY(13, 195, 214), | ||
401 | MRFLD_FAMILY(14, 215, 227), | ||
402 | MRFLD_FAMILY(15, 228, 232), | ||
403 | }; | ||
404 | |||
405 | /** | ||
406 | * struct mrfld_pinctrl - Intel Merrifield pinctrl private structure | ||
407 | * @dev: Pointer to the device structure | ||
408 | * @lock: Lock to serialize register access | ||
409 | * @pctldesc: Pin controller description | ||
410 | * @pctldev: Pointer to the pin controller device | ||
411 | * @families: Array of families this pinctrl handles | ||
412 | * @nfamilies: Number of families in the array | ||
413 | * @functions: Array of functions | ||
414 | * @nfunctions: Number of functions in the array | ||
415 | * @groups: Array of pin groups | ||
416 | * @ngroups: Number of groups in the array | ||
417 | * @pins: Array of pins this pinctrl controls | ||
418 | * @npins: Number of pins in the array | ||
419 | */ | ||
420 | struct mrfld_pinctrl { | ||
421 | struct device *dev; | ||
422 | raw_spinlock_t lock; | ||
423 | struct pinctrl_desc pctldesc; | ||
424 | struct pinctrl_dev *pctldev; | ||
425 | |||
426 | /* Pin controller configuration */ | ||
427 | const struct mrfld_family *families; | ||
428 | size_t nfamilies; | ||
429 | const struct intel_function *functions; | ||
430 | size_t nfunctions; | ||
431 | const struct intel_pingroup *groups; | ||
432 | size_t ngroups; | ||
433 | const struct pinctrl_pin_desc *pins; | ||
434 | size_t npins; | ||
435 | }; | ||
436 | |||
437 | #define pin_to_bufno(f, p) ((p) - (f)->pin_base) | ||
438 | |||
439 | static const struct mrfld_family *mrfld_get_family(struct mrfld_pinctrl *mp, | ||
440 | unsigned int pin) | ||
441 | { | ||
442 | const struct mrfld_family *family; | ||
443 | unsigned int i; | ||
444 | |||
445 | for (i = 0; i < mp->nfamilies; i++) { | ||
446 | family = &mp->families[i]; | ||
447 | if (pin >= family->pin_base && | ||
448 | pin < family->pin_base + family->npins) | ||
449 | return family; | ||
450 | } | ||
451 | |||
452 | dev_warn(mp->dev, "failed to find family for pin %u\n", pin); | ||
453 | return NULL; | ||
454 | } | ||
455 | |||
456 | static bool mrfld_buf_available(struct mrfld_pinctrl *mp, unsigned int pin) | ||
457 | { | ||
458 | const struct mrfld_family *family; | ||
459 | |||
460 | family = mrfld_get_family(mp, pin); | ||
461 | if (!family) | ||
462 | return false; | ||
463 | |||
464 | return !family->protected; | ||
465 | } | ||
466 | |||
467 | static void __iomem *mrfld_get_bufcfg(struct mrfld_pinctrl *mp, unsigned int pin) | ||
468 | { | ||
469 | const struct mrfld_family *family; | ||
470 | unsigned int bufno; | ||
471 | |||
472 | family = mrfld_get_family(mp, pin); | ||
473 | if (!family) | ||
474 | return NULL; | ||
475 | |||
476 | bufno = pin_to_bufno(family, pin); | ||
477 | return family->regs + BUFCFG_OFFSET + bufno * 4; | ||
478 | } | ||
479 | |||
480 | static int mrfld_get_groups_count(struct pinctrl_dev *pctldev) | ||
481 | { | ||
482 | struct mrfld_pinctrl *mp = pinctrl_dev_get_drvdata(pctldev); | ||
483 | |||
484 | return mp->ngroups; | ||
485 | } | ||
486 | |||
487 | static const char *mrfld_get_group_name(struct pinctrl_dev *pctldev, | ||
488 | unsigned int group) | ||
489 | { | ||
490 | struct mrfld_pinctrl *mp = pinctrl_dev_get_drvdata(pctldev); | ||
491 | |||
492 | return mp->groups[group].name; | ||
493 | } | ||
494 | |||
495 | static int mrfld_get_group_pins(struct pinctrl_dev *pctldev, unsigned int group, | ||
496 | const unsigned int **pins, unsigned int *npins) | ||
497 | { | ||
498 | struct mrfld_pinctrl *mp = pinctrl_dev_get_drvdata(pctldev); | ||
499 | |||
500 | *pins = mp->groups[group].pins; | ||
501 | *npins = mp->groups[group].npins; | ||
502 | return 0; | ||
503 | } | ||
504 | |||
505 | static void mrfld_pin_dbg_show(struct pinctrl_dev *pctldev, struct seq_file *s, | ||
506 | unsigned int pin) | ||
507 | { | ||
508 | struct mrfld_pinctrl *mp = pinctrl_dev_get_drvdata(pctldev); | ||
509 | void __iomem *bufcfg; | ||
510 | u32 value, mode; | ||
511 | |||
512 | if (!mrfld_buf_available(mp, pin)) { | ||
513 | seq_puts(s, "not available"); | ||
514 | return; | ||
515 | } | ||
516 | |||
517 | bufcfg = mrfld_get_bufcfg(mp, pin); | ||
518 | value = readl(bufcfg); | ||
519 | |||
520 | mode = (value & BUFCFG_PINMODE_MASK) >> BUFCFG_PINMODE_SHIFT; | ||
521 | if (!mode) | ||
522 | seq_puts(s, "GPIO "); | ||
523 | else | ||
524 | seq_printf(s, "mode %d ", mode); | ||
525 | |||
526 | seq_printf(s, "0x%08x", value); | ||
527 | } | ||
528 | |||
529 | static const struct pinctrl_ops mrfld_pinctrl_ops = { | ||
530 | .get_groups_count = mrfld_get_groups_count, | ||
531 | .get_group_name = mrfld_get_group_name, | ||
532 | .get_group_pins = mrfld_get_group_pins, | ||
533 | .pin_dbg_show = mrfld_pin_dbg_show, | ||
534 | }; | ||
535 | |||
536 | static int mrfld_get_functions_count(struct pinctrl_dev *pctldev) | ||
537 | { | ||
538 | struct mrfld_pinctrl *mp = pinctrl_dev_get_drvdata(pctldev); | ||
539 | |||
540 | return mp->nfunctions; | ||
541 | } | ||
542 | |||
543 | static const char *mrfld_get_function_name(struct pinctrl_dev *pctldev, | ||
544 | unsigned int function) | ||
545 | { | ||
546 | struct mrfld_pinctrl *mp = pinctrl_dev_get_drvdata(pctldev); | ||
547 | |||
548 | return mp->functions[function].name; | ||
549 | } | ||
550 | |||
551 | static int mrfld_get_function_groups(struct pinctrl_dev *pctldev, | ||
552 | unsigned int function, | ||
553 | const char * const **groups, | ||
554 | unsigned int * const ngroups) | ||
555 | { | ||
556 | struct mrfld_pinctrl *mp = pinctrl_dev_get_drvdata(pctldev); | ||
557 | |||
558 | *groups = mp->functions[function].groups; | ||
559 | *ngroups = mp->functions[function].ngroups; | ||
560 | return 0; | ||
561 | } | ||
562 | |||
563 | static void mrfld_update_bufcfg(struct mrfld_pinctrl *mp, unsigned int pin, | ||
564 | u32 bits, u32 mask) | ||
565 | { | ||
566 | void __iomem *bufcfg; | ||
567 | u32 value; | ||
568 | |||
569 | bufcfg = mrfld_get_bufcfg(mp, pin); | ||
570 | value = readl(bufcfg); | ||
571 | |||
572 | value &= ~mask; | ||
573 | value |= bits & mask; | ||
574 | |||
575 | writel(value, bufcfg); | ||
576 | } | ||
577 | |||
578 | static int mrfld_pinmux_set_mux(struct pinctrl_dev *pctldev, | ||
579 | unsigned int function, | ||
580 | unsigned int group) | ||
581 | { | ||
582 | struct mrfld_pinctrl *mp = pinctrl_dev_get_drvdata(pctldev); | ||
583 | const struct intel_pingroup *grp = &mp->groups[group]; | ||
584 | u32 bits = grp->mode << BUFCFG_PINMODE_SHIFT; | ||
585 | u32 mask = BUFCFG_PINMODE_MASK; | ||
586 | unsigned long flags; | ||
587 | unsigned int i; | ||
588 | |||
589 | /* | ||
590 | * All pins in the groups needs to be accessible and writable | ||
591 | * before we can enable the mux for this group. | ||
592 | */ | ||
593 | for (i = 0; i < grp->npins; i++) { | ||
594 | if (!mrfld_buf_available(mp, grp->pins[i])) | ||
595 | return -EBUSY; | ||
596 | } | ||
597 | |||
598 | /* Now enable the mux setting for each pin in the group */ | ||
599 | raw_spin_lock_irqsave(&mp->lock, flags); | ||
600 | for (i = 0; i < grp->npins; i++) | ||
601 | mrfld_update_bufcfg(mp, grp->pins[i], bits, mask); | ||
602 | raw_spin_unlock_irqrestore(&mp->lock, flags); | ||
603 | |||
604 | return 0; | ||
605 | } | ||
606 | |||
607 | static int mrfld_gpio_request_enable(struct pinctrl_dev *pctldev, | ||
608 | struct pinctrl_gpio_range *range, | ||
609 | unsigned int pin) | ||
610 | { | ||
611 | struct mrfld_pinctrl *mp = pinctrl_dev_get_drvdata(pctldev); | ||
612 | u32 bits = BUFCFG_PINMODE_GPIO << BUFCFG_PINMODE_SHIFT; | ||
613 | u32 mask = BUFCFG_PINMODE_MASK; | ||
614 | unsigned long flags; | ||
615 | |||
616 | if (!mrfld_buf_available(mp, pin)) | ||
617 | return -EBUSY; | ||
618 | |||
619 | raw_spin_lock_irqsave(&mp->lock, flags); | ||
620 | mrfld_update_bufcfg(mp, pin, bits, mask); | ||
621 | raw_spin_unlock_irqrestore(&mp->lock, flags); | ||
622 | |||
623 | return 0; | ||
624 | } | ||
625 | |||
626 | static const struct pinmux_ops mrfld_pinmux_ops = { | ||
627 | .get_functions_count = mrfld_get_functions_count, | ||
628 | .get_function_name = mrfld_get_function_name, | ||
629 | .get_function_groups = mrfld_get_function_groups, | ||
630 | .set_mux = mrfld_pinmux_set_mux, | ||
631 | .gpio_request_enable = mrfld_gpio_request_enable, | ||
632 | }; | ||
633 | |||
634 | static int mrfld_config_get(struct pinctrl_dev *pctldev, unsigned int pin, | ||
635 | unsigned long *config) | ||
636 | { | ||
637 | struct mrfld_pinctrl *mp = pinctrl_dev_get_drvdata(pctldev); | ||
638 | enum pin_config_param param = pinconf_to_config_param(*config); | ||
639 | u32 value, term; | ||
640 | u16 arg = 0; | ||
641 | |||
642 | if (!mrfld_buf_available(mp, pin)) | ||
643 | return -ENOTSUPP; | ||
644 | |||
645 | value = readl(mrfld_get_bufcfg(mp, pin)); | ||
646 | term = (value & BUFCFG_PUPD_VAL_MASK) >> BUFCFG_PUPD_VAL_SHIFT; | ||
647 | |||
648 | switch (param) { | ||
649 | case PIN_CONFIG_BIAS_DISABLE: | ||
650 | if (value & BUFCFG_Px_EN_MASK) | ||
651 | return -EINVAL; | ||
652 | break; | ||
653 | |||
654 | case PIN_CONFIG_BIAS_PULL_UP: | ||
655 | if ((value & BUFCFG_Px_EN_MASK) != BUFCFG_PU_EN) | ||
656 | return -EINVAL; | ||
657 | |||
658 | switch (term) { | ||
659 | case BUFCFG_PUPD_VAL_910: | ||
660 | arg = 910; | ||
661 | break; | ||
662 | case BUFCFG_PUPD_VAL_2K: | ||
663 | arg = 2000; | ||
664 | break; | ||
665 | case BUFCFG_PUPD_VAL_20K: | ||
666 | arg = 20000; | ||
667 | break; | ||
668 | case BUFCFG_PUPD_VAL_50K: | ||
669 | arg = 50000; | ||
670 | break; | ||
671 | } | ||
672 | |||
673 | break; | ||
674 | |||
675 | case PIN_CONFIG_BIAS_PULL_DOWN: | ||
676 | if ((value & BUFCFG_Px_EN_MASK) != BUFCFG_PD_EN) | ||
677 | return -EINVAL; | ||
678 | |||
679 | switch (term) { | ||
680 | case BUFCFG_PUPD_VAL_910: | ||
681 | arg = 910; | ||
682 | break; | ||
683 | case BUFCFG_PUPD_VAL_2K: | ||
684 | arg = 2000; | ||
685 | break; | ||
686 | case BUFCFG_PUPD_VAL_20K: | ||
687 | arg = 20000; | ||
688 | break; | ||
689 | case BUFCFG_PUPD_VAL_50K: | ||
690 | arg = 50000; | ||
691 | break; | ||
692 | } | ||
693 | |||
694 | break; | ||
695 | |||
696 | case PIN_CONFIG_DRIVE_OPEN_DRAIN: | ||
697 | if (!(value & BUFCFG_OD_EN)) | ||
698 | return -EINVAL; | ||
699 | break; | ||
700 | |||
701 | case PIN_CONFIG_SLEW_RATE: | ||
702 | if (!(value & BUFCFG_SLEWSEL)) | ||
703 | arg = 0; | ||
704 | else | ||
705 | arg = 1; | ||
706 | break; | ||
707 | |||
708 | default: | ||
709 | return -ENOTSUPP; | ||
710 | } | ||
711 | |||
712 | *config = pinconf_to_config_packed(param, arg); | ||
713 | return 0; | ||
714 | } | ||
715 | |||
716 | static int mrfld_config_set_pin(struct mrfld_pinctrl *mp, unsigned int pin, | ||
717 | unsigned long config) | ||
718 | { | ||
719 | unsigned int param = pinconf_to_config_param(config); | ||
720 | unsigned int arg = pinconf_to_config_argument(config); | ||
721 | u32 bits = 0, mask = 0; | ||
722 | unsigned long flags; | ||
723 | |||
724 | switch (param) { | ||
725 | case PIN_CONFIG_BIAS_DISABLE: | ||
726 | mask |= BUFCFG_Px_EN_MASK | BUFCFG_PUPD_VAL_MASK; | ||
727 | break; | ||
728 | |||
729 | case PIN_CONFIG_BIAS_PULL_UP: | ||
730 | mask |= BUFCFG_Px_EN_MASK | BUFCFG_PUPD_VAL_MASK; | ||
731 | bits |= BUFCFG_PU_EN; | ||
732 | |||
733 | switch (arg) { | ||
734 | case 50000: | ||
735 | bits |= BUFCFG_PUPD_VAL_50K << BUFCFG_PUPD_VAL_SHIFT; | ||
736 | break; | ||
737 | case 20000: | ||
738 | bits |= BUFCFG_PUPD_VAL_20K << BUFCFG_PUPD_VAL_SHIFT; | ||
739 | break; | ||
740 | case 2000: | ||
741 | bits |= BUFCFG_PUPD_VAL_2K << BUFCFG_PUPD_VAL_SHIFT; | ||
742 | break; | ||
743 | default: | ||
744 | return -EINVAL; | ||
745 | } | ||
746 | |||
747 | break; | ||
748 | |||
749 | case PIN_CONFIG_BIAS_PULL_DOWN: | ||
750 | mask |= BUFCFG_Px_EN_MASK | BUFCFG_PUPD_VAL_MASK; | ||
751 | bits |= BUFCFG_PD_EN; | ||
752 | |||
753 | switch (arg) { | ||
754 | case 50000: | ||
755 | bits |= BUFCFG_PUPD_VAL_50K << BUFCFG_PUPD_VAL_SHIFT; | ||
756 | break; | ||
757 | case 20000: | ||
758 | bits |= BUFCFG_PUPD_VAL_20K << BUFCFG_PUPD_VAL_SHIFT; | ||
759 | break; | ||
760 | case 2000: | ||
761 | bits |= BUFCFG_PUPD_VAL_2K << BUFCFG_PUPD_VAL_SHIFT; | ||
762 | break; | ||
763 | default: | ||
764 | return -EINVAL; | ||
765 | } | ||
766 | |||
767 | break; | ||
768 | |||
769 | case PIN_CONFIG_DRIVE_OPEN_DRAIN: | ||
770 | mask |= BUFCFG_OD_EN; | ||
771 | if (arg) | ||
772 | bits |= BUFCFG_OD_EN; | ||
773 | break; | ||
774 | |||
775 | case PIN_CONFIG_SLEW_RATE: | ||
776 | mask |= BUFCFG_SLEWSEL; | ||
777 | if (arg) | ||
778 | bits |= BUFCFG_SLEWSEL; | ||
779 | break; | ||
780 | } | ||
781 | |||
782 | raw_spin_lock_irqsave(&mp->lock, flags); | ||
783 | mrfld_update_bufcfg(mp, pin, bits, mask); | ||
784 | raw_spin_unlock_irqrestore(&mp->lock, flags); | ||
785 | |||
786 | return 0; | ||
787 | } | ||
788 | |||
789 | static int mrfld_config_set(struct pinctrl_dev *pctldev, unsigned int pin, | ||
790 | unsigned long *configs, unsigned int nconfigs) | ||
791 | { | ||
792 | struct mrfld_pinctrl *mp = pinctrl_dev_get_drvdata(pctldev); | ||
793 | unsigned int i; | ||
794 | int ret; | ||
795 | |||
796 | for (i = 0; i < nconfigs; i++) { | ||
797 | switch (pinconf_to_config_param(configs[i])) { | ||
798 | case PIN_CONFIG_BIAS_DISABLE: | ||
799 | case PIN_CONFIG_BIAS_PULL_UP: | ||
800 | case PIN_CONFIG_BIAS_PULL_DOWN: | ||
801 | case PIN_CONFIG_DRIVE_OPEN_DRAIN: | ||
802 | case PIN_CONFIG_SLEW_RATE: | ||
803 | ret = mrfld_config_set_pin(mp, pin, configs[i]); | ||
804 | if (ret) | ||
805 | return ret; | ||
806 | break; | ||
807 | |||
808 | default: | ||
809 | return -ENOTSUPP; | ||
810 | } | ||
811 | } | ||
812 | |||
813 | return 0; | ||
814 | } | ||
815 | |||
816 | static const struct pinconf_ops mrfld_pinconf_ops = { | ||
817 | .is_generic = true, | ||
818 | .pin_config_get = mrfld_config_get, | ||
819 | .pin_config_set = mrfld_config_set, | ||
820 | }; | ||
821 | |||
822 | static const struct pinctrl_desc mrfld_pinctrl_desc = { | ||
823 | .pctlops = &mrfld_pinctrl_ops, | ||
824 | .pmxops = &mrfld_pinmux_ops, | ||
825 | .confops = &mrfld_pinconf_ops, | ||
826 | .owner = THIS_MODULE, | ||
827 | }; | ||
828 | |||
829 | static int mrfld_pinctrl_probe(struct platform_device *pdev) | ||
830 | { | ||
831 | struct mrfld_family *families; | ||
832 | struct mrfld_pinctrl *mp; | ||
833 | struct resource *mem; | ||
834 | void __iomem *regs; | ||
835 | size_t nfamilies; | ||
836 | unsigned int i; | ||
837 | |||
838 | mp = devm_kzalloc(&pdev->dev, sizeof(*mp), GFP_KERNEL); | ||
839 | if (!mp) | ||
840 | return -ENOMEM; | ||
841 | |||
842 | mp->dev = &pdev->dev; | ||
843 | raw_spin_lock_init(&mp->lock); | ||
844 | |||
845 | mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); | ||
846 | regs = devm_ioremap_resource(&pdev->dev, mem); | ||
847 | if (IS_ERR(regs)) | ||
848 | return PTR_ERR(regs); | ||
849 | |||
850 | /* | ||
851 | * Make a copy of the families which we can use to hold pointers | ||
852 | * to the registers. | ||
853 | */ | ||
854 | nfamilies = ARRAY_SIZE(mrfld_families), | ||
855 | families = devm_kmemdup(&pdev->dev, mrfld_families, | ||
856 | nfamilies * sizeof(mrfld_families), | ||
857 | GFP_KERNEL); | ||
858 | if (!families) | ||
859 | return -ENOMEM; | ||
860 | |||
861 | /* Splice memory resource by chunk per family */ | ||
862 | for (i = 0; i < nfamilies; i++) { | ||
863 | struct mrfld_family *family = &families[i]; | ||
864 | |||
865 | family->regs = regs + family->barno * MRFLD_FAMILY_LEN; | ||
866 | } | ||
867 | |||
868 | mp->families = families; | ||
869 | mp->nfamilies = nfamilies; | ||
870 | mp->functions = mrfld_functions; | ||
871 | mp->nfunctions = ARRAY_SIZE(mrfld_functions); | ||
872 | mp->groups = mrfld_groups; | ||
873 | mp->ngroups = ARRAY_SIZE(mrfld_groups); | ||
874 | mp->pctldesc = mrfld_pinctrl_desc; | ||
875 | mp->pctldesc.name = dev_name(&pdev->dev); | ||
876 | mp->pctldesc.pins = mrfld_pins; | ||
877 | mp->pctldesc.npins = ARRAY_SIZE(mrfld_pins); | ||
878 | |||
879 | mp->pctldev = devm_pinctrl_register(&pdev->dev, &mp->pctldesc, mp); | ||
880 | if (IS_ERR(mp->pctldev)) { | ||
881 | dev_err(&pdev->dev, "failed to register pinctrl driver\n"); | ||
882 | return PTR_ERR(mp->pctldev); | ||
883 | } | ||
884 | |||
885 | platform_set_drvdata(pdev, mp); | ||
886 | return 0; | ||
887 | } | ||
888 | |||
889 | static struct platform_driver mrfld_pinctrl_driver = { | ||
890 | .probe = mrfld_pinctrl_probe, | ||
891 | .driver = { | ||
892 | .name = "pinctrl-merrifield", | ||
893 | }, | ||
894 | }; | ||
895 | |||
896 | static int __init mrfld_pinctrl_init(void) | ||
897 | { | ||
898 | return platform_driver_register(&mrfld_pinctrl_driver); | ||
899 | } | ||
900 | subsys_initcall(mrfld_pinctrl_init); | ||
901 | |||
902 | static void __exit mrfld_pinctrl_exit(void) | ||
903 | { | ||
904 | platform_driver_unregister(&mrfld_pinctrl_driver); | ||
905 | } | ||
906 | module_exit(mrfld_pinctrl_exit); | ||
907 | |||
908 | MODULE_AUTHOR("Andy Shevchenko <andriy.shevchenko@linux.intel.com>"); | ||
909 | MODULE_DESCRIPTION("Intel Merrifield SoC pinctrl driver"); | ||
910 | MODULE_LICENSE("GPL v2"); | ||
911 | MODULE_ALIAS("platform:pinctrl-merrifield"); | ||
diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c index a607655d7830..ce554e0d6979 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c +++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c | |||
@@ -1183,8 +1183,8 @@ static int mtk_eint_resume(struct device *device) | |||
1183 | } | 1183 | } |
1184 | 1184 | ||
1185 | const struct dev_pm_ops mtk_eint_pm_ops = { | 1185 | const struct dev_pm_ops mtk_eint_pm_ops = { |
1186 | .suspend = mtk_eint_suspend, | 1186 | .suspend_noirq = mtk_eint_suspend, |
1187 | .resume = mtk_eint_resume, | 1187 | .resume_noirq = mtk_eint_resume, |
1188 | }; | 1188 | }; |
1189 | 1189 | ||
1190 | static void mtk_eint_ack(struct irq_data *d) | 1190 | static void mtk_eint_ack(struct irq_data *d) |
diff --git a/drivers/pinctrl/meson/pinctrl-meson-gxbb.c b/drivers/pinctrl/meson/pinctrl-meson-gxbb.c index eeabafbbf598..cb4d6ad30530 100644 --- a/drivers/pinctrl/meson/pinctrl-meson-gxbb.c +++ b/drivers/pinctrl/meson/pinctrl-meson-gxbb.c | |||
@@ -147,6 +147,52 @@ static const struct pinctrl_pin_desc meson_gxbb_periphs_pins[] = { | |||
147 | MESON_PIN(GPIO_TEST_N, EE_OFF), | 147 | MESON_PIN(GPIO_TEST_N, EE_OFF), |
148 | }; | 148 | }; |
149 | 149 | ||
150 | static const unsigned int emmc_nand_d07_pins[] = { | ||
151 | PIN(BOOT_0, EE_OFF), PIN(BOOT_1, EE_OFF), PIN(BOOT_2, EE_OFF), | ||
152 | PIN(BOOT_3, EE_OFF), PIN(BOOT_4, EE_OFF), PIN(BOOT_5, EE_OFF), | ||
153 | PIN(BOOT_6, EE_OFF), PIN(BOOT_7, EE_OFF), | ||
154 | }; | ||
155 | static const unsigned int emmc_clk_pins[] = { PIN(BOOT_8, EE_OFF) }; | ||
156 | static const unsigned int emmc_cmd_pins[] = { PIN(BOOT_10, EE_OFF) }; | ||
157 | static const unsigned int emmc_ds_pins[] = { PIN(BOOT_15, EE_OFF) }; | ||
158 | |||
159 | static const unsigned int sdcard_d0_pins[] = { PIN(CARD_1, EE_OFF) }; | ||
160 | static const unsigned int sdcard_d1_pins[] = { PIN(CARD_0, EE_OFF) }; | ||
161 | static const unsigned int sdcard_d2_pins[] = { PIN(CARD_5, EE_OFF) }; | ||
162 | static const unsigned int sdcard_d3_pins[] = { PIN(CARD_4, EE_OFF) }; | ||
163 | static const unsigned int sdcard_cmd_pins[] = { PIN(CARD_3, EE_OFF) }; | ||
164 | static const unsigned int sdcard_clk_pins[] = { PIN(CARD_2, EE_OFF) }; | ||
165 | |||
166 | static const unsigned int uart_tx_a_pins[] = { PIN(GPIOX_12, EE_OFF) }; | ||
167 | static const unsigned int uart_rx_a_pins[] = { PIN(GPIOX_13, EE_OFF) }; | ||
168 | static const unsigned int uart_cts_a_pins[] = { PIN(GPIOX_14, EE_OFF) }; | ||
169 | static const unsigned int uart_rts_a_pins[] = { PIN(GPIOX_15, EE_OFF) }; | ||
170 | |||
171 | static const unsigned int uart_tx_b_pins[] = { PIN(GPIODV_24, EE_OFF) }; | ||
172 | static const unsigned int uart_rx_b_pins[] = { PIN(GPIODV_25, EE_OFF) }; | ||
173 | static const unsigned int uart_cts_b_pins[] = { PIN(GPIODV_26, EE_OFF) }; | ||
174 | static const unsigned int uart_rts_b_pins[] = { PIN(GPIODV_27, EE_OFF) }; | ||
175 | |||
176 | static const unsigned int uart_tx_c_pins[] = { PIN(GPIOY_13, EE_OFF) }; | ||
177 | static const unsigned int uart_rx_c_pins[] = { PIN(GPIOY_14, EE_OFF) }; | ||
178 | static const unsigned int uart_cts_c_pins[] = { PIN(GPIOX_11, EE_OFF) }; | ||
179 | static const unsigned int uart_rts_c_pins[] = { PIN(GPIOX_12, EE_OFF) }; | ||
180 | |||
181 | static const unsigned int eth_mdio_pins[] = { PIN(GPIOZ_0, EE_OFF) }; | ||
182 | static const unsigned int eth_mdc_pins[] = { PIN(GPIOZ_1, EE_OFF) }; | ||
183 | static const unsigned int eth_clk_rx_clk_pins[] = { PIN(GPIOZ_2, EE_OFF) }; | ||
184 | static const unsigned int eth_rx_dv_pins[] = { PIN(GPIOZ_3, EE_OFF) }; | ||
185 | static const unsigned int eth_rxd0_pins[] = { PIN(GPIOZ_4, EE_OFF) }; | ||
186 | static const unsigned int eth_rxd1_pins[] = { PIN(GPIOZ_5, EE_OFF) }; | ||
187 | static const unsigned int eth_rxd2_pins[] = { PIN(GPIOZ_6, EE_OFF) }; | ||
188 | static const unsigned int eth_rxd3_pins[] = { PIN(GPIOZ_7, EE_OFF) }; | ||
189 | static const unsigned int eth_rgmii_tx_clk_pins[] = { PIN(GPIOZ_8, EE_OFF) }; | ||
190 | static const unsigned int eth_tx_en_pins[] = { PIN(GPIOZ_9, EE_OFF) }; | ||
191 | static const unsigned int eth_txd0_pins[] = { PIN(GPIOZ_10, EE_OFF) }; | ||
192 | static const unsigned int eth_txd1_pins[] = { PIN(GPIOZ_11, EE_OFF) }; | ||
193 | static const unsigned int eth_txd2_pins[] = { PIN(GPIOZ_12, EE_OFF) }; | ||
194 | static const unsigned int eth_txd3_pins[] = { PIN(GPIOZ_13, EE_OFF) }; | ||
195 | |||
150 | static const struct pinctrl_pin_desc meson_gxbb_aobus_pins[] = { | 196 | static const struct pinctrl_pin_desc meson_gxbb_aobus_pins[] = { |
151 | MESON_PIN(GPIOAO_0, 0), | 197 | MESON_PIN(GPIOAO_0, 0), |
152 | MESON_PIN(GPIOAO_1, 0), | 198 | MESON_PIN(GPIOAO_1, 0), |
@@ -168,6 +214,16 @@ static const unsigned int uart_tx_ao_a_pins[] = { PIN(GPIOAO_0, 0) }; | |||
168 | static const unsigned int uart_rx_ao_a_pins[] = { PIN(GPIOAO_1, 0) }; | 214 | static const unsigned int uart_rx_ao_a_pins[] = { PIN(GPIOAO_1, 0) }; |
169 | static const unsigned int uart_cts_ao_a_pins[] = { PIN(GPIOAO_2, 0) }; | 215 | static const unsigned int uart_cts_ao_a_pins[] = { PIN(GPIOAO_2, 0) }; |
170 | static const unsigned int uart_rts_ao_a_pins[] = { PIN(GPIOAO_3, 0) }; | 216 | static const unsigned int uart_rts_ao_a_pins[] = { PIN(GPIOAO_3, 0) }; |
217 | static const unsigned int uart_tx_ao_b_pins[] = { PIN(GPIOAO_0, 0) }; | ||
218 | static const unsigned int uart_rx_ao_b_pins[] = { PIN(GPIOAO_1, 0), | ||
219 | PIN(GPIOAO_5, 0) }; | ||
220 | static const unsigned int uart_cts_ao_b_pins[] = { PIN(GPIOAO_2, 0) }; | ||
221 | static const unsigned int uart_rts_ao_b_pins[] = { PIN(GPIOAO_3, 0) }; | ||
222 | |||
223 | static const unsigned int i2c_sck_ao_pins[] = {PIN(GPIOAO_4, 0) }; | ||
224 | static const unsigned int i2c_sda_ao_pins[] = {PIN(GPIOAO_5, 0) }; | ||
225 | static const unsigned int i2c_slave_sck_ao_pins[] = {PIN(GPIOAO_4, 0) }; | ||
226 | static const unsigned int i2c_slave_sda_ao_pins[] = {PIN(GPIOAO_5, 0) }; | ||
171 | 227 | ||
172 | static struct meson_pmx_group meson_gxbb_periphs_groups[] = { | 228 | static struct meson_pmx_group meson_gxbb_periphs_groups[] = { |
173 | GPIO_GROUP(GPIOZ_0, EE_OFF), | 229 | GPIO_GROUP(GPIOZ_0, EE_OFF), |
@@ -297,6 +353,54 @@ static struct meson_pmx_group meson_gxbb_periphs_groups[] = { | |||
297 | GPIO_GROUP(GPIOCLK_3, EE_OFF), | 353 | GPIO_GROUP(GPIOCLK_3, EE_OFF), |
298 | 354 | ||
299 | GPIO_GROUP(GPIO_TEST_N, EE_OFF), | 355 | GPIO_GROUP(GPIO_TEST_N, EE_OFF), |
356 | |||
357 | /* Bank X */ | ||
358 | GROUP(uart_tx_a, 4, 13), | ||
359 | GROUP(uart_rx_a, 4, 12), | ||
360 | GROUP(uart_cts_a, 4, 11), | ||
361 | GROUP(uart_rts_a, 4, 10), | ||
362 | |||
363 | /* Bank Y */ | ||
364 | GROUP(uart_cts_c, 1, 19), | ||
365 | GROUP(uart_rts_c, 1, 18), | ||
366 | GROUP(uart_tx_c, 1, 17), | ||
367 | GROUP(uart_rx_c, 1, 16), | ||
368 | |||
369 | /* Bank Z */ | ||
370 | GROUP(eth_mdio, 6, 1), | ||
371 | GROUP(eth_mdc, 6, 0), | ||
372 | GROUP(eth_clk_rx_clk, 6, 13), | ||
373 | GROUP(eth_rx_dv, 6, 12), | ||
374 | GROUP(eth_rxd0, 6, 11), | ||
375 | GROUP(eth_rxd1, 6, 10), | ||
376 | GROUP(eth_rxd2, 6, 9), | ||
377 | GROUP(eth_rxd3, 6, 8), | ||
378 | GROUP(eth_rgmii_tx_clk, 6, 7), | ||
379 | GROUP(eth_tx_en, 6, 6), | ||
380 | GROUP(eth_txd0, 6, 5), | ||
381 | GROUP(eth_txd1, 6, 4), | ||
382 | GROUP(eth_txd2, 6, 3), | ||
383 | GROUP(eth_txd3, 6, 2), | ||
384 | |||
385 | /* Bank DV */ | ||
386 | GROUP(uart_tx_b, 2, 29), | ||
387 | GROUP(uart_rx_b, 2, 28), | ||
388 | GROUP(uart_cts_b, 2, 27), | ||
389 | GROUP(uart_rts_b, 2, 26), | ||
390 | |||
391 | /* Bank BOOT */ | ||
392 | GROUP(emmc_nand_d07, 4, 30), | ||
393 | GROUP(emmc_clk, 4, 18), | ||
394 | GROUP(emmc_cmd, 4, 19), | ||
395 | GROUP(emmc_ds, 4, 31), | ||
396 | |||
397 | /* Bank CARD */ | ||
398 | GROUP(sdcard_d1, 2, 14), | ||
399 | GROUP(sdcard_d0, 2, 15), | ||
400 | GROUP(sdcard_d3, 2, 12), | ||
401 | GROUP(sdcard_d2, 2, 13), | ||
402 | GROUP(sdcard_cmd, 2, 10), | ||
403 | GROUP(sdcard_clk, 2, 11), | ||
300 | }; | 404 | }; |
301 | 405 | ||
302 | static struct meson_pmx_group meson_gxbb_aobus_groups[] = { | 406 | static struct meson_pmx_group meson_gxbb_aobus_groups[] = { |
@@ -316,10 +420,18 @@ static struct meson_pmx_group meson_gxbb_aobus_groups[] = { | |||
316 | GPIO_GROUP(GPIOAO_13, 0), | 420 | GPIO_GROUP(GPIOAO_13, 0), |
317 | 421 | ||
318 | /* bank AO */ | 422 | /* bank AO */ |
423 | GROUP(uart_tx_ao_b, 0, 26), | ||
424 | GROUP(uart_rx_ao_b, 0, 25), | ||
319 | GROUP(uart_tx_ao_a, 0, 12), | 425 | GROUP(uart_tx_ao_a, 0, 12), |
320 | GROUP(uart_rx_ao_a, 0, 11), | 426 | GROUP(uart_rx_ao_a, 0, 11), |
321 | GROUP(uart_cts_ao_a, 0, 10), | 427 | GROUP(uart_cts_ao_a, 0, 10), |
322 | GROUP(uart_rts_ao_a, 0, 9), | 428 | GROUP(uart_rts_ao_a, 0, 9), |
429 | GROUP(uart_cts_ao_b, 0, 8), | ||
430 | GROUP(uart_rts_ao_b, 0, 7), | ||
431 | GROUP(i2c_sck_ao, 0, 6), | ||
432 | GROUP(i2c_sda_ao, 0, 5), | ||
433 | GROUP(i2c_slave_sck_ao, 0, 2), | ||
434 | GROUP(i2c_slave_sda_ao, 0, 1), | ||
323 | }; | 435 | }; |
324 | 436 | ||
325 | static const char * const gpio_periphs_groups[] = { | 437 | static const char * const gpio_periphs_groups[] = { |
@@ -359,6 +471,34 @@ static const char * const gpio_periphs_groups[] = { | |||
359 | "GPIO_TEST_N", | 471 | "GPIO_TEST_N", |
360 | }; | 472 | }; |
361 | 473 | ||
474 | static const char * const emmc_groups[] = { | ||
475 | "emmc_nand_d07", "emmc_clk", "emmc_cmd", "emmc_ds", | ||
476 | }; | ||
477 | |||
478 | static const char * const sdcard_groups[] = { | ||
479 | "sdcard_d0", "sdcard_d1", "sdcard_d2", "sdcard_d3", | ||
480 | "sdcard_cmd", "sdcard_clk", | ||
481 | }; | ||
482 | |||
483 | static const char * const uart_a_groups[] = { | ||
484 | "uart_tx_a", "uart_rx_a", "uart_cts_a", "uart_rts_a", | ||
485 | }; | ||
486 | |||
487 | static const char * const uart_b_groups[] = { | ||
488 | "uart_tx_b", "uart_rx_b", "uart_cts_b", "uart_rts_b", | ||
489 | }; | ||
490 | |||
491 | static const char * const uart_c_groups[] = { | ||
492 | "uart_tx_c", "uart_rx_c", "uart_cts_c", "uart_rts_c", | ||
493 | }; | ||
494 | |||
495 | static const char * const eth_groups[] = { | ||
496 | "eth_mdio", "eth_mdc", "eth_clk_rx_clk", "eth_rx_dv", | ||
497 | "eth_rxd0", "eth_rxd1", "eth_rxd2", "eth_rxd3", | ||
498 | "eth_rgmii_tx_clk", "eth_tx_en", | ||
499 | "eth_txd0", "eth_txd1", "eth_txd2", "eth_txd3", | ||
500 | }; | ||
501 | |||
362 | static const char * const gpio_aobus_groups[] = { | 502 | static const char * const gpio_aobus_groups[] = { |
363 | "GPIOAO_0", "GPIOAO_1", "GPIOAO_2", "GPIOAO_3", "GPIOAO_4", | 503 | "GPIOAO_0", "GPIOAO_1", "GPIOAO_2", "GPIOAO_3", "GPIOAO_4", |
364 | "GPIOAO_5", "GPIOAO_6", "GPIOAO_7", "GPIOAO_8", "GPIOAO_9", | 504 | "GPIOAO_5", "GPIOAO_6", "GPIOAO_7", "GPIOAO_8", "GPIOAO_9", |
@@ -366,16 +506,37 @@ static const char * const gpio_aobus_groups[] = { | |||
366 | }; | 506 | }; |
367 | 507 | ||
368 | static const char * const uart_ao_groups[] = { | 508 | static const char * const uart_ao_groups[] = { |
369 | "uart_tx_ao_a", "uart_rx_ao_a", "uart_cts_ao_a", "uart_rts_ao_a" | 509 | "uart_tx_ao_a", "uart_rx_ao_a", "uart_cts_ao_a", "uart_rts_ao_a", |
510 | }; | ||
511 | |||
512 | static const char * const uart_ao_b_groups[] = { | ||
513 | "uart_tx_ao_b", "uart_rx_ao_b", "uart_cts_ao_b", "uart_rts_ao_b", | ||
514 | }; | ||
515 | |||
516 | static const char * const i2c_ao_groups[] = { | ||
517 | "i2c_sdk_ao", "i2c_sda_ao", | ||
518 | }; | ||
519 | |||
520 | static const char * const i2c_slave_ao_groups[] = { | ||
521 | "i2c_slave_sdk_ao", "i2c_slave_sda_ao", | ||
370 | }; | 522 | }; |
371 | 523 | ||
372 | static struct meson_pmx_func meson_gxbb_periphs_functions[] = { | 524 | static struct meson_pmx_func meson_gxbb_periphs_functions[] = { |
373 | FUNCTION(gpio_periphs), | 525 | FUNCTION(gpio_periphs), |
526 | FUNCTION(emmc), | ||
527 | FUNCTION(sdcard), | ||
528 | FUNCTION(uart_a), | ||
529 | FUNCTION(uart_b), | ||
530 | FUNCTION(uart_c), | ||
531 | FUNCTION(eth), | ||
374 | }; | 532 | }; |
375 | 533 | ||
376 | static struct meson_pmx_func meson_gxbb_aobus_functions[] = { | 534 | static struct meson_pmx_func meson_gxbb_aobus_functions[] = { |
377 | FUNCTION(gpio_aobus), | 535 | FUNCTION(gpio_aobus), |
378 | FUNCTION(uart_ao), | 536 | FUNCTION(uart_ao), |
537 | FUNCTION(uart_ao_b), | ||
538 | FUNCTION(i2c_ao), | ||
539 | FUNCTION(i2c_slave_ao), | ||
379 | }; | 540 | }; |
380 | 541 | ||
381 | static struct meson_bank meson_gxbb_periphs_banks[] = { | 542 | static struct meson_bank meson_gxbb_periphs_banks[] = { |
diff --git a/drivers/pinctrl/mvebu/pinctrl-kirkwood.c b/drivers/pinctrl/mvebu/pinctrl-kirkwood.c index a78e9a4997ba..5f89c26f3292 100644 --- a/drivers/pinctrl/mvebu/pinctrl-kirkwood.c +++ b/drivers/pinctrl/mvebu/pinctrl-kirkwood.c | |||
@@ -168,87 +168,87 @@ static struct mvebu_mpp_mode mv88f6xxx_mpp_modes[] = { | |||
168 | MPP_VAR_FUNCTION(0x0, "gpo", NULL, V(1, 1, 1, 1, 1, 1)), | 168 | MPP_VAR_FUNCTION(0x0, "gpo", NULL, V(1, 1, 1, 1, 1, 1)), |
169 | MPP_VAR_FUNCTION(0x1, "nand", "io1", V(1, 1, 1, 1, 1, 1))), | 169 | MPP_VAR_FUNCTION(0x1, "nand", "io1", V(1, 1, 1, 1, 1, 1))), |
170 | MPP_MODE(20, | 170 | MPP_MODE(20, |
171 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 0)), | 171 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 1, 1, 1, 1, 0)), |
172 | MPP_VAR_FUNCTION(0x1, "ts", "mp0", V(0, 0, 1, 1, 1, 0)), | 172 | MPP_VAR_FUNCTION(0x1, "ts", "mp0", V(0, 0, 1, 1, 1, 0)), |
173 | MPP_VAR_FUNCTION(0x2, "tdm", "tx0ql", V(0, 0, 1, 1, 1, 0)), | 173 | MPP_VAR_FUNCTION(0x2, "tdm", "tx0ql", V(0, 0, 1, 1, 1, 0)), |
174 | MPP_VAR_FUNCTION(0x3, "ge1", "txd0", V(0, 1, 1, 1, 1, 0)), | 174 | MPP_VAR_FUNCTION(0x3, "ge1", "txd0", V(0, 1, 1, 1, 1, 0)), |
175 | MPP_VAR_FUNCTION(0x4, "audio", "spdifi", V(0, 0, 1, 1, 1, 0)), | 175 | MPP_VAR_FUNCTION(0x4, "audio", "spdifi", V(0, 0, 1, 1, 1, 0)), |
176 | MPP_VAR_FUNCTION(0x5, "sata1", "act", V(0, 0, 1, 1, 1, 0)), | 176 | MPP_VAR_FUNCTION(0x5, "sata1", "act", V(0, 0, 1, 1, 1, 0)), |
177 | MPP_VAR_FUNCTION(0xb, "lcd", "d0", V(0, 0, 0, 0, 1, 0)), | 177 | MPP_VAR_FUNCTION(0xb, "lcd", "d0", V(0, 0, 0, 0, 1, 0)), |
178 | MPP_VAR_FUNCTION(0xc, "mii", "rxerr", V(1, 0, 0, 0, 0, 0))), | 178 | MPP_VAR_FUNCTION(0xc, "mii", "rxerr", V(0, 0, 0, 0, 0, 0))), |
179 | MPP_MODE(21, | 179 | MPP_MODE(21, |
180 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 0)), | 180 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 1, 1, 1, 1, 0)), |
181 | MPP_VAR_FUNCTION(0x1, "ts", "mp1", V(0, 0, 1, 1, 1, 0)), | 181 | MPP_VAR_FUNCTION(0x1, "ts", "mp1", V(0, 0, 1, 1, 1, 0)), |
182 | MPP_VAR_FUNCTION(0x2, "tdm", "rx0ql", V(0, 0, 1, 1, 1, 0)), | 182 | MPP_VAR_FUNCTION(0x2, "tdm", "rx0ql", V(0, 0, 1, 1, 1, 0)), |
183 | MPP_VAR_FUNCTION(0x3, "ge1", "txd1", V(0, 1, 1, 1, 1, 0)), | 183 | MPP_VAR_FUNCTION(0x3, "ge1", "txd1", V(0, 1, 1, 1, 1, 0)), |
184 | MPP_VAR_FUNCTION(0x4, "audio", "spdifi", V(1, 0, 0, 0, 0, 0)), | 184 | MPP_VAR_FUNCTION(0x4, "audio", "spdifi", V(0, 0, 0, 0, 0, 0)), |
185 | MPP_VAR_FUNCTION(0x4, "audio", "spdifo", V(0, 0, 1, 1, 1, 0)), | 185 | MPP_VAR_FUNCTION(0x4, "audio", "spdifo", V(0, 0, 1, 1, 1, 0)), |
186 | MPP_VAR_FUNCTION(0x5, "sata0", "act", V(0, 1, 1, 1, 1, 0)), | 186 | MPP_VAR_FUNCTION(0x5, "sata0", "act", V(0, 1, 1, 1, 1, 0)), |
187 | MPP_VAR_FUNCTION(0xb, "lcd", "d1", V(0, 0, 0, 0, 1, 0))), | 187 | MPP_VAR_FUNCTION(0xb, "lcd", "d1", V(0, 0, 0, 0, 1, 0))), |
188 | MPP_MODE(22, | 188 | MPP_MODE(22, |
189 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 0)), | 189 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 1, 1, 1, 1, 0)), |
190 | MPP_VAR_FUNCTION(0x1, "ts", "mp2", V(0, 0, 1, 1, 1, 0)), | 190 | MPP_VAR_FUNCTION(0x1, "ts", "mp2", V(0, 0, 1, 1, 1, 0)), |
191 | MPP_VAR_FUNCTION(0x2, "tdm", "tx2ql", V(0, 0, 1, 1, 1, 0)), | 191 | MPP_VAR_FUNCTION(0x2, "tdm", "tx2ql", V(0, 0, 1, 1, 1, 0)), |
192 | MPP_VAR_FUNCTION(0x3, "ge1", "txd2", V(0, 1, 1, 1, 1, 0)), | 192 | MPP_VAR_FUNCTION(0x3, "ge1", "txd2", V(0, 1, 1, 1, 1, 0)), |
193 | MPP_VAR_FUNCTION(0x4, "audio", "spdifo", V(1, 0, 0, 0, 0, 0)), | 193 | MPP_VAR_FUNCTION(0x4, "audio", "spdifo", V(0, 0, 0, 0, 0, 0)), |
194 | MPP_VAR_FUNCTION(0x4, "audio", "rmclk", V(0, 0, 1, 1, 1, 0)), | 194 | MPP_VAR_FUNCTION(0x4, "audio", "rmclk", V(0, 0, 1, 1, 1, 0)), |
195 | MPP_VAR_FUNCTION(0x5, "sata1", "prsnt", V(0, 0, 1, 1, 1, 0)), | 195 | MPP_VAR_FUNCTION(0x5, "sata1", "prsnt", V(0, 0, 1, 1, 1, 0)), |
196 | MPP_VAR_FUNCTION(0xb, "lcd", "d2", V(0, 0, 0, 0, 1, 0))), | 196 | MPP_VAR_FUNCTION(0xb, "lcd", "d2", V(0, 0, 0, 0, 1, 0))), |
197 | MPP_MODE(23, | 197 | MPP_MODE(23, |
198 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 0)), | 198 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 1, 1, 1, 1, 0)), |
199 | MPP_VAR_FUNCTION(0x1, "ts", "mp3", V(0, 0, 1, 1, 1, 0)), | 199 | MPP_VAR_FUNCTION(0x1, "ts", "mp3", V(0, 0, 1, 1, 1, 0)), |
200 | MPP_VAR_FUNCTION(0x2, "tdm", "rx2ql", V(0, 0, 1, 1, 1, 0)), | 200 | MPP_VAR_FUNCTION(0x2, "tdm", "rx2ql", V(0, 0, 1, 1, 1, 0)), |
201 | MPP_VAR_FUNCTION(0x3, "ge1", "txd3", V(0, 1, 1, 1, 1, 0)), | 201 | MPP_VAR_FUNCTION(0x3, "ge1", "txd3", V(0, 1, 1, 1, 1, 0)), |
202 | MPP_VAR_FUNCTION(0x4, "audio", "rmclk", V(1, 0, 0, 0, 0, 0)), | 202 | MPP_VAR_FUNCTION(0x4, "audio", "rmclk", V(0, 0, 0, 0, 0, 0)), |
203 | MPP_VAR_FUNCTION(0x4, "audio", "bclk", V(0, 0, 1, 1, 1, 0)), | 203 | MPP_VAR_FUNCTION(0x4, "audio", "bclk", V(0, 0, 1, 1, 1, 0)), |
204 | MPP_VAR_FUNCTION(0x5, "sata0", "prsnt", V(0, 1, 1, 1, 1, 0)), | 204 | MPP_VAR_FUNCTION(0x5, "sata0", "prsnt", V(0, 1, 1, 1, 1, 0)), |
205 | MPP_VAR_FUNCTION(0xb, "lcd", "d3", V(0, 0, 0, 0, 1, 0))), | 205 | MPP_VAR_FUNCTION(0xb, "lcd", "d3", V(0, 0, 0, 0, 1, 0))), |
206 | MPP_MODE(24, | 206 | MPP_MODE(24, |
207 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 0)), | 207 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 1, 1, 1, 1, 0)), |
208 | MPP_VAR_FUNCTION(0x1, "ts", "mp4", V(0, 0, 1, 1, 1, 0)), | 208 | MPP_VAR_FUNCTION(0x1, "ts", "mp4", V(0, 0, 1, 1, 1, 0)), |
209 | MPP_VAR_FUNCTION(0x2, "tdm", "spi-cs0", V(0, 0, 1, 1, 1, 0)), | 209 | MPP_VAR_FUNCTION(0x2, "tdm", "spi-cs0", V(0, 0, 1, 1, 1, 0)), |
210 | MPP_VAR_FUNCTION(0x3, "ge1", "rxd0", V(0, 1, 1, 1, 1, 0)), | 210 | MPP_VAR_FUNCTION(0x3, "ge1", "rxd0", V(0, 1, 1, 1, 1, 0)), |
211 | MPP_VAR_FUNCTION(0x4, "audio", "bclk", V(1, 0, 0, 0, 0, 0)), | 211 | MPP_VAR_FUNCTION(0x4, "audio", "bclk", V(0, 0, 0, 0, 0, 0)), |
212 | MPP_VAR_FUNCTION(0x4, "audio", "sdo", V(0, 0, 1, 1, 1, 0)), | 212 | MPP_VAR_FUNCTION(0x4, "audio", "sdo", V(0, 0, 1, 1, 1, 0)), |
213 | MPP_VAR_FUNCTION(0xb, "lcd", "d4", V(0, 0, 0, 0, 1, 0))), | 213 | MPP_VAR_FUNCTION(0xb, "lcd", "d4", V(0, 0, 0, 0, 1, 0))), |
214 | MPP_MODE(25, | 214 | MPP_MODE(25, |
215 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 0)), | 215 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 1, 1, 1, 1, 0)), |
216 | MPP_VAR_FUNCTION(0x1, "ts", "mp5", V(0, 0, 1, 1, 1, 0)), | 216 | MPP_VAR_FUNCTION(0x1, "ts", "mp5", V(0, 0, 1, 1, 1, 0)), |
217 | MPP_VAR_FUNCTION(0x2, "tdm", "spi-sck", V(0, 0, 1, 1, 1, 0)), | 217 | MPP_VAR_FUNCTION(0x2, "tdm", "spi-sck", V(0, 0, 1, 1, 1, 0)), |
218 | MPP_VAR_FUNCTION(0x3, "ge1", "rxd1", V(0, 1, 1, 1, 1, 0)), | 218 | MPP_VAR_FUNCTION(0x3, "ge1", "rxd1", V(0, 1, 1, 1, 1, 0)), |
219 | MPP_VAR_FUNCTION(0x4, "audio", "sdo", V(1, 0, 0, 0, 0, 0)), | 219 | MPP_VAR_FUNCTION(0x4, "audio", "sdo", V(0, 0, 0, 0, 0, 0)), |
220 | MPP_VAR_FUNCTION(0x4, "audio", "lrclk", V(0, 0, 1, 1, 1, 0)), | 220 | MPP_VAR_FUNCTION(0x4, "audio", "lrclk", V(0, 0, 1, 1, 1, 0)), |
221 | MPP_VAR_FUNCTION(0xb, "lcd", "d5", V(0, 0, 0, 0, 1, 0))), | 221 | MPP_VAR_FUNCTION(0xb, "lcd", "d5", V(0, 0, 0, 0, 1, 0))), |
222 | MPP_MODE(26, | 222 | MPP_MODE(26, |
223 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 0)), | 223 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 1, 1, 1, 1, 0)), |
224 | MPP_VAR_FUNCTION(0x1, "ts", "mp6", V(0, 0, 1, 1, 1, 0)), | 224 | MPP_VAR_FUNCTION(0x1, "ts", "mp6", V(0, 0, 1, 1, 1, 0)), |
225 | MPP_VAR_FUNCTION(0x2, "tdm", "spi-miso", V(0, 0, 1, 1, 1, 0)), | 225 | MPP_VAR_FUNCTION(0x2, "tdm", "spi-miso", V(0, 0, 1, 1, 1, 0)), |
226 | MPP_VAR_FUNCTION(0x3, "ge1", "rxd2", V(0, 1, 1, 1, 1, 0)), | 226 | MPP_VAR_FUNCTION(0x3, "ge1", "rxd2", V(0, 1, 1, 1, 1, 0)), |
227 | MPP_VAR_FUNCTION(0x4, "audio", "lrclk", V(1, 0, 0, 0, 0, 0)), | 227 | MPP_VAR_FUNCTION(0x4, "audio", "lrclk", V(0, 0, 0, 0, 0, 0)), |
228 | MPP_VAR_FUNCTION(0x4, "audio", "mclk", V(0, 0, 1, 1, 1, 0)), | 228 | MPP_VAR_FUNCTION(0x4, "audio", "mclk", V(0, 0, 1, 1, 1, 0)), |
229 | MPP_VAR_FUNCTION(0xb, "lcd", "d6", V(0, 0, 0, 0, 1, 0))), | 229 | MPP_VAR_FUNCTION(0xb, "lcd", "d6", V(0, 0, 0, 0, 1, 0))), |
230 | MPP_MODE(27, | 230 | MPP_MODE(27, |
231 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 0)), | 231 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 1, 1, 1, 1, 0)), |
232 | MPP_VAR_FUNCTION(0x1, "ts", "mp7", V(0, 0, 1, 1, 1, 0)), | 232 | MPP_VAR_FUNCTION(0x1, "ts", "mp7", V(0, 0, 1, 1, 1, 0)), |
233 | MPP_VAR_FUNCTION(0x2, "tdm", "spi-mosi", V(0, 0, 1, 1, 1, 0)), | 233 | MPP_VAR_FUNCTION(0x2, "tdm", "spi-mosi", V(0, 0, 1, 1, 1, 0)), |
234 | MPP_VAR_FUNCTION(0x3, "ge1", "rxd3", V(0, 1, 1, 1, 1, 0)), | 234 | MPP_VAR_FUNCTION(0x3, "ge1", "rxd3", V(0, 1, 1, 1, 1, 0)), |
235 | MPP_VAR_FUNCTION(0x4, "audio", "mclk", V(1, 0, 0, 0, 0, 0)), | 235 | MPP_VAR_FUNCTION(0x4, "audio", "mclk", V(0, 0, 0, 0, 0, 0)), |
236 | MPP_VAR_FUNCTION(0x4, "audio", "sdi", V(0, 0, 1, 1, 1, 0)), | 236 | MPP_VAR_FUNCTION(0x4, "audio", "sdi", V(0, 0, 1, 1, 1, 0)), |
237 | MPP_VAR_FUNCTION(0xb, "lcd", "d7", V(0, 0, 0, 0, 1, 0))), | 237 | MPP_VAR_FUNCTION(0xb, "lcd", "d7", V(0, 0, 0, 0, 1, 0))), |
238 | MPP_MODE(28, | 238 | MPP_MODE(28, |
239 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 0)), | 239 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 1, 1, 1, 1, 0)), |
240 | MPP_VAR_FUNCTION(0x1, "ts", "mp8", V(0, 0, 1, 1, 1, 0)), | 240 | MPP_VAR_FUNCTION(0x1, "ts", "mp8", V(0, 0, 1, 1, 1, 0)), |
241 | MPP_VAR_FUNCTION(0x2, "tdm", "int", V(0, 0, 1, 1, 1, 0)), | 241 | MPP_VAR_FUNCTION(0x2, "tdm", "int", V(0, 0, 1, 1, 1, 0)), |
242 | MPP_VAR_FUNCTION(0x3, "ge1", "col", V(0, 1, 1, 1, 1, 0)), | 242 | MPP_VAR_FUNCTION(0x3, "ge1", "col", V(0, 1, 1, 1, 1, 0)), |
243 | MPP_VAR_FUNCTION(0x4, "audio", "sdi", V(1, 0, 0, 0, 0, 0)), | 243 | MPP_VAR_FUNCTION(0x4, "audio", "sdi", V(0, 0, 0, 0, 0, 0)), |
244 | MPP_VAR_FUNCTION(0x4, "audio", "extclk", V(0, 0, 1, 1, 1, 0)), | 244 | MPP_VAR_FUNCTION(0x4, "audio", "extclk", V(0, 0, 1, 1, 1, 0)), |
245 | MPP_VAR_FUNCTION(0xb, "lcd", "d8", V(0, 0, 0, 0, 1, 0))), | 245 | MPP_VAR_FUNCTION(0xb, "lcd", "d8", V(0, 0, 0, 0, 1, 0))), |
246 | MPP_MODE(29, | 246 | MPP_MODE(29, |
247 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 0)), | 247 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 1, 1, 1, 1, 0)), |
248 | MPP_VAR_FUNCTION(0x1, "ts", "mp9", V(0, 0, 1, 1, 1, 0)), | 248 | MPP_VAR_FUNCTION(0x1, "ts", "mp9", V(0, 0, 1, 1, 1, 0)), |
249 | MPP_VAR_FUNCTION(0x2, "tdm", "rst", V(0, 0, 1, 1, 1, 0)), | 249 | MPP_VAR_FUNCTION(0x2, "tdm", "rst", V(0, 0, 1, 1, 1, 0)), |
250 | MPP_VAR_FUNCTION(0x3, "ge1", "txclk", V(0, 1, 1, 1, 1, 0)), | 250 | MPP_VAR_FUNCTION(0x3, "ge1", "txclk", V(0, 1, 1, 1, 1, 0)), |
251 | MPP_VAR_FUNCTION(0x4, "audio", "extclk", V(1, 0, 0, 0, 0, 0)), | 251 | MPP_VAR_FUNCTION(0x4, "audio", "extclk", V(0, 0, 0, 0, 0, 0)), |
252 | MPP_VAR_FUNCTION(0xb, "lcd", "d9", V(0, 0, 0, 0, 1, 0))), | 252 | MPP_VAR_FUNCTION(0xb, "lcd", "d9", V(0, 0, 0, 0, 1, 0))), |
253 | MPP_MODE(30, | 253 | MPP_MODE(30, |
254 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 1, 1, 1, 1, 0)), | 254 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 1, 1, 1, 1, 0)), |
@@ -280,65 +280,65 @@ static struct mvebu_mpp_mode mv88f6xxx_mpp_modes[] = { | |||
280 | MPP_VAR_FUNCTION(0x5, "sata1", "act", V(0, 0, 0, 1, 1, 0)), | 280 | MPP_VAR_FUNCTION(0x5, "sata1", "act", V(0, 0, 0, 1, 1, 0)), |
281 | MPP_VAR_FUNCTION(0xb, "lcd", "d14", V(0, 0, 0, 0, 1, 0))), | 281 | MPP_VAR_FUNCTION(0xb, "lcd", "d14", V(0, 0, 0, 0, 1, 0))), |
282 | MPP_MODE(35, | 282 | MPP_MODE(35, |
283 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 1, 1, 1, 1, 1)), | 283 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 1, 1, 1, 1, 1)), |
284 | MPP_VAR_FUNCTION(0x2, "tdm", "tx0ql", V(0, 0, 1, 1, 1, 0)), | 284 | MPP_VAR_FUNCTION(0x2, "tdm", "tx0ql", V(0, 0, 1, 1, 1, 0)), |
285 | MPP_VAR_FUNCTION(0x3, "ge1", "rxerr", V(0, 1, 1, 1, 1, 0)), | 285 | MPP_VAR_FUNCTION(0x3, "ge1", "rxerr", V(0, 1, 1, 1, 1, 0)), |
286 | MPP_VAR_FUNCTION(0x5, "sata0", "act", V(0, 1, 1, 1, 1, 0)), | 286 | MPP_VAR_FUNCTION(0x5, "sata0", "act", V(0, 1, 1, 1, 1, 0)), |
287 | MPP_VAR_FUNCTION(0xb, "lcd", "d15", V(0, 0, 0, 0, 1, 0)), | 287 | MPP_VAR_FUNCTION(0xb, "lcd", "d15", V(0, 0, 0, 0, 1, 0)), |
288 | MPP_VAR_FUNCTION(0xc, "mii", "rxerr", V(0, 1, 1, 1, 1, 0))), | 288 | MPP_VAR_FUNCTION(0xc, "mii", "rxerr", V(1, 1, 1, 1, 1, 0))), |
289 | MPP_MODE(36, | 289 | MPP_MODE(36, |
290 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 1)), | 290 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 0, 0, 1, 1, 1)), |
291 | MPP_VAR_FUNCTION(0x1, "ts", "mp0", V(0, 0, 0, 1, 1, 0)), | 291 | MPP_VAR_FUNCTION(0x1, "ts", "mp0", V(0, 0, 0, 1, 1, 0)), |
292 | MPP_VAR_FUNCTION(0x2, "tdm", "spi-cs1", V(0, 0, 0, 1, 1, 0)), | 292 | MPP_VAR_FUNCTION(0x2, "tdm", "spi-cs1", V(0, 0, 0, 1, 1, 0)), |
293 | MPP_VAR_FUNCTION(0x4, "audio", "spdifi", V(0, 0, 0, 1, 1, 0)), | 293 | MPP_VAR_FUNCTION(0x4, "audio", "spdifi", V(1, 0, 0, 1, 1, 0)), |
294 | MPP_VAR_FUNCTION(0xb, "twsi1", "sda", V(0, 0, 0, 0, 1, 0))), | 294 | MPP_VAR_FUNCTION(0xb, "twsi1", "sda", V(0, 0, 0, 0, 1, 0))), |
295 | MPP_MODE(37, | 295 | MPP_MODE(37, |
296 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 1)), | 296 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 0, 0, 1, 1, 1)), |
297 | MPP_VAR_FUNCTION(0x1, "ts", "mp1", V(0, 0, 0, 1, 1, 0)), | 297 | MPP_VAR_FUNCTION(0x1, "ts", "mp1", V(0, 0, 0, 1, 1, 0)), |
298 | MPP_VAR_FUNCTION(0x2, "tdm", "tx2ql", V(0, 0, 0, 1, 1, 0)), | 298 | MPP_VAR_FUNCTION(0x2, "tdm", "tx2ql", V(0, 0, 0, 1, 1, 0)), |
299 | MPP_VAR_FUNCTION(0x4, "audio", "spdifo", V(0, 0, 0, 1, 1, 0)), | 299 | MPP_VAR_FUNCTION(0x4, "audio", "spdifo", V(1, 0, 0, 1, 1, 0)), |
300 | MPP_VAR_FUNCTION(0xb, "twsi1", "sck", V(0, 0, 0, 0, 1, 0))), | 300 | MPP_VAR_FUNCTION(0xb, "twsi1", "sck", V(0, 0, 0, 0, 1, 0))), |
301 | MPP_MODE(38, | 301 | MPP_MODE(38, |
302 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 1)), | 302 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 0, 0, 1, 1, 1)), |
303 | MPP_VAR_FUNCTION(0x1, "ts", "mp2", V(0, 0, 0, 1, 1, 0)), | 303 | MPP_VAR_FUNCTION(0x1, "ts", "mp2", V(0, 0, 0, 1, 1, 0)), |
304 | MPP_VAR_FUNCTION(0x2, "tdm", "rx2ql", V(0, 0, 0, 1, 1, 0)), | 304 | MPP_VAR_FUNCTION(0x2, "tdm", "rx2ql", V(0, 0, 0, 1, 1, 0)), |
305 | MPP_VAR_FUNCTION(0x4, "audio", "rmclk", V(0, 0, 0, 1, 1, 0)), | 305 | MPP_VAR_FUNCTION(0x4, "audio", "rmclk", V(1, 0, 0, 1, 1, 0)), |
306 | MPP_VAR_FUNCTION(0xb, "lcd", "d18", V(0, 0, 0, 0, 1, 0))), | 306 | MPP_VAR_FUNCTION(0xb, "lcd", "d18", V(0, 0, 0, 0, 1, 0))), |
307 | MPP_MODE(39, | 307 | MPP_MODE(39, |
308 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 1)), | 308 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 0, 0, 1, 1, 1)), |
309 | MPP_VAR_FUNCTION(0x1, "ts", "mp3", V(0, 0, 0, 1, 1, 0)), | 309 | MPP_VAR_FUNCTION(0x1, "ts", "mp3", V(0, 0, 0, 1, 1, 0)), |
310 | MPP_VAR_FUNCTION(0x2, "tdm", "spi-cs0", V(0, 0, 0, 1, 1, 0)), | 310 | MPP_VAR_FUNCTION(0x2, "tdm", "spi-cs0", V(0, 0, 0, 1, 1, 0)), |
311 | MPP_VAR_FUNCTION(0x4, "audio", "bclk", V(0, 0, 0, 1, 1, 0)), | 311 | MPP_VAR_FUNCTION(0x4, "audio", "bclk", V(1, 0, 0, 1, 1, 0)), |
312 | MPP_VAR_FUNCTION(0xb, "lcd", "d19", V(0, 0, 0, 0, 1, 0))), | 312 | MPP_VAR_FUNCTION(0xb, "lcd", "d19", V(0, 0, 0, 0, 1, 0))), |
313 | MPP_MODE(40, | 313 | MPP_MODE(40, |
314 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 1)), | 314 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 0, 0, 1, 1, 1)), |
315 | MPP_VAR_FUNCTION(0x1, "ts", "mp4", V(0, 0, 0, 1, 1, 0)), | 315 | MPP_VAR_FUNCTION(0x1, "ts", "mp4", V(0, 0, 0, 1, 1, 0)), |
316 | MPP_VAR_FUNCTION(0x2, "tdm", "spi-sck", V(0, 0, 0, 1, 1, 0)), | 316 | MPP_VAR_FUNCTION(0x2, "tdm", "spi-sck", V(0, 0, 0, 1, 1, 0)), |
317 | MPP_VAR_FUNCTION(0x4, "audio", "sdo", V(0, 0, 0, 1, 1, 0)), | 317 | MPP_VAR_FUNCTION(0x4, "audio", "sdo", V(1, 0, 0, 1, 1, 0)), |
318 | MPP_VAR_FUNCTION(0xb, "lcd", "d20", V(0, 0, 0, 0, 1, 0))), | 318 | MPP_VAR_FUNCTION(0xb, "lcd", "d20", V(0, 0, 0, 0, 1, 0))), |
319 | MPP_MODE(41, | 319 | MPP_MODE(41, |
320 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 1)), | 320 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 0, 0, 1, 1, 1)), |
321 | MPP_VAR_FUNCTION(0x1, "ts", "mp5", V(0, 0, 0, 1, 1, 0)), | 321 | MPP_VAR_FUNCTION(0x1, "ts", "mp5", V(0, 0, 0, 1, 1, 0)), |
322 | MPP_VAR_FUNCTION(0x2, "tdm", "spi-miso", V(0, 0, 0, 1, 1, 0)), | 322 | MPP_VAR_FUNCTION(0x2, "tdm", "spi-miso", V(0, 0, 0, 1, 1, 0)), |
323 | MPP_VAR_FUNCTION(0x4, "audio", "lrclk", V(0, 0, 0, 1, 1, 0)), | 323 | MPP_VAR_FUNCTION(0x4, "audio", "lrclk", V(1, 0, 0, 1, 1, 0)), |
324 | MPP_VAR_FUNCTION(0xb, "lcd", "d21", V(0, 0, 0, 0, 1, 0))), | 324 | MPP_VAR_FUNCTION(0xb, "lcd", "d21", V(0, 0, 0, 0, 1, 0))), |
325 | MPP_MODE(42, | 325 | MPP_MODE(42, |
326 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 1)), | 326 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 0, 0, 1, 1, 1)), |
327 | MPP_VAR_FUNCTION(0x1, "ts", "mp6", V(0, 0, 0, 1, 1, 0)), | 327 | MPP_VAR_FUNCTION(0x1, "ts", "mp6", V(0, 0, 0, 1, 1, 0)), |
328 | MPP_VAR_FUNCTION(0x2, "tdm", "spi-mosi", V(0, 0, 0, 1, 1, 0)), | 328 | MPP_VAR_FUNCTION(0x2, "tdm", "spi-mosi", V(0, 0, 0, 1, 1, 0)), |
329 | MPP_VAR_FUNCTION(0x4, "audio", "mclk", V(0, 0, 0, 1, 1, 0)), | 329 | MPP_VAR_FUNCTION(0x4, "audio", "mclk", V(1, 0, 0, 1, 1, 0)), |
330 | MPP_VAR_FUNCTION(0xb, "lcd", "d22", V(0, 0, 0, 0, 1, 0))), | 330 | MPP_VAR_FUNCTION(0xb, "lcd", "d22", V(0, 0, 0, 0, 1, 0))), |
331 | MPP_MODE(43, | 331 | MPP_MODE(43, |
332 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 1)), | 332 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 0, 0, 1, 1, 1)), |
333 | MPP_VAR_FUNCTION(0x1, "ts", "mp7", V(0, 0, 0, 1, 1, 0)), | 333 | MPP_VAR_FUNCTION(0x1, "ts", "mp7", V(0, 0, 0, 1, 1, 0)), |
334 | MPP_VAR_FUNCTION(0x2, "tdm", "int", V(0, 0, 0, 1, 1, 0)), | 334 | MPP_VAR_FUNCTION(0x2, "tdm", "int", V(0, 0, 0, 1, 1, 0)), |
335 | MPP_VAR_FUNCTION(0x4, "audio", "sdi", V(0, 0, 0, 1, 1, 0)), | 335 | MPP_VAR_FUNCTION(0x4, "audio", "sdi", V(1, 0, 0, 1, 1, 0)), |
336 | MPP_VAR_FUNCTION(0xb, "lcd", "d23", V(0, 0, 0, 0, 1, 0))), | 336 | MPP_VAR_FUNCTION(0xb, "lcd", "d23", V(0, 0, 0, 0, 1, 0))), |
337 | MPP_MODE(44, | 337 | MPP_MODE(44, |
338 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 1)), | 338 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(1, 0, 0, 1, 1, 1)), |
339 | MPP_VAR_FUNCTION(0x1, "ts", "mp8", V(0, 0, 0, 1, 1, 0)), | 339 | MPP_VAR_FUNCTION(0x1, "ts", "mp8", V(0, 0, 0, 1, 1, 0)), |
340 | MPP_VAR_FUNCTION(0x2, "tdm", "rst", V(0, 0, 0, 1, 1, 0)), | 340 | MPP_VAR_FUNCTION(0x2, "tdm", "rst", V(0, 0, 0, 1, 1, 0)), |
341 | MPP_VAR_FUNCTION(0x4, "audio", "extclk", V(0, 0, 0, 1, 1, 0)), | 341 | MPP_VAR_FUNCTION(0x4, "audio", "extclk", V(1, 0, 0, 1, 1, 0)), |
342 | MPP_VAR_FUNCTION(0xb, "lcd", "clk", V(0, 0, 0, 0, 1, 0))), | 342 | MPP_VAR_FUNCTION(0xb, "lcd", "clk", V(0, 0, 0, 0, 1, 0))), |
343 | MPP_MODE(45, | 343 | MPP_MODE(45, |
344 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 1)), | 344 | MPP_VAR_FUNCTION(0x0, "gpio", NULL, V(0, 0, 0, 1, 1, 1)), |
@@ -371,11 +371,12 @@ static struct mvebu_mpp_mode mv88f6xxx_mpp_modes[] = { | |||
371 | }; | 371 | }; |
372 | 372 | ||
373 | static struct mvebu_mpp_ctrl mv88f6180_mpp_controls[] = { | 373 | static struct mvebu_mpp_ctrl mv88f6180_mpp_controls[] = { |
374 | MPP_FUNC_CTRL(0, 29, NULL, kirkwood_mpp_ctrl), | 374 | MPP_FUNC_CTRL(0, 44, NULL, kirkwood_mpp_ctrl), |
375 | }; | 375 | }; |
376 | 376 | ||
377 | static struct pinctrl_gpio_range mv88f6180_gpio_ranges[] = { | 377 | static struct pinctrl_gpio_range mv88f6180_gpio_ranges[] = { |
378 | MPP_GPIO_RANGE(0, 0, 0, 30), | 378 | MPP_GPIO_RANGE(0, 0, 0, 20), |
379 | MPP_GPIO_RANGE(1, 35, 35, 10), | ||
379 | }; | 380 | }; |
380 | 381 | ||
381 | static struct mvebu_mpp_ctrl mv88f619x_mpp_controls[] = { | 382 | static struct mvebu_mpp_ctrl mv88f619x_mpp_controls[] = { |
diff --git a/drivers/pinctrl/nomadik/pinctrl-nomadik.c b/drivers/pinctrl/nomadik/pinctrl-nomadik.c index 38faceff2f08..35f62180db4e 100644 --- a/drivers/pinctrl/nomadik/pinctrl-nomadik.c +++ b/drivers/pinctrl/nomadik/pinctrl-nomadik.c | |||
@@ -1033,102 +1033,6 @@ static inline void nmk_gpio_dbg_show_one(struct seq_file *s, | |||
1033 | #define nmk_gpio_dbg_show NULL | 1033 | #define nmk_gpio_dbg_show NULL |
1034 | #endif | 1034 | #endif |
1035 | 1035 | ||
1036 | void nmk_gpio_clocks_enable(void) | ||
1037 | { | ||
1038 | int i; | ||
1039 | |||
1040 | for (i = 0; i < NUM_BANKS; i++) { | ||
1041 | struct nmk_gpio_chip *chip = nmk_gpio_chips[i]; | ||
1042 | |||
1043 | if (!chip) | ||
1044 | continue; | ||
1045 | |||
1046 | clk_enable(chip->clk); | ||
1047 | } | ||
1048 | } | ||
1049 | |||
1050 | void nmk_gpio_clocks_disable(void) | ||
1051 | { | ||
1052 | int i; | ||
1053 | |||
1054 | for (i = 0; i < NUM_BANKS; i++) { | ||
1055 | struct nmk_gpio_chip *chip = nmk_gpio_chips[i]; | ||
1056 | |||
1057 | if (!chip) | ||
1058 | continue; | ||
1059 | |||
1060 | clk_disable(chip->clk); | ||
1061 | } | ||
1062 | } | ||
1063 | |||
1064 | /* | ||
1065 | * Called from the suspend/resume path to only keep the real wakeup interrupts | ||
1066 | * (those that have had set_irq_wake() called on them) as wakeup interrupts, | ||
1067 | * and not the rest of the interrupts which we needed to have as wakeups for | ||
1068 | * cpuidle. | ||
1069 | * | ||
1070 | * PM ops are not used since this needs to be done at the end, after all the | ||
1071 | * other drivers are done with their suspend callbacks. | ||
1072 | */ | ||
1073 | void nmk_gpio_wakeups_suspend(void) | ||
1074 | { | ||
1075 | int i; | ||
1076 | |||
1077 | for (i = 0; i < NUM_BANKS; i++) { | ||
1078 | struct nmk_gpio_chip *chip = nmk_gpio_chips[i]; | ||
1079 | |||
1080 | if (!chip) | ||
1081 | break; | ||
1082 | |||
1083 | clk_enable(chip->clk); | ||
1084 | |||
1085 | writel(chip->rwimsc & chip->real_wake, | ||
1086 | chip->addr + NMK_GPIO_RWIMSC); | ||
1087 | writel(chip->fwimsc & chip->real_wake, | ||
1088 | chip->addr + NMK_GPIO_FWIMSC); | ||
1089 | |||
1090 | clk_disable(chip->clk); | ||
1091 | } | ||
1092 | } | ||
1093 | |||
1094 | void nmk_gpio_wakeups_resume(void) | ||
1095 | { | ||
1096 | int i; | ||
1097 | |||
1098 | for (i = 0; i < NUM_BANKS; i++) { | ||
1099 | struct nmk_gpio_chip *chip = nmk_gpio_chips[i]; | ||
1100 | |||
1101 | if (!chip) | ||
1102 | break; | ||
1103 | |||
1104 | clk_enable(chip->clk); | ||
1105 | |||
1106 | writel(chip->rwimsc, chip->addr + NMK_GPIO_RWIMSC); | ||
1107 | writel(chip->fwimsc, chip->addr + NMK_GPIO_FWIMSC); | ||
1108 | |||
1109 | clk_disable(chip->clk); | ||
1110 | } | ||
1111 | } | ||
1112 | |||
1113 | /* | ||
1114 | * Read the pull up/pull down status. | ||
1115 | * A bit set in 'pull_up' means that pull up | ||
1116 | * is selected if pull is enabled in PDIS register. | ||
1117 | * Note: only pull up/down set via this driver can | ||
1118 | * be detected due to HW limitations. | ||
1119 | */ | ||
1120 | void nmk_gpio_read_pull(int gpio_bank, u32 *pull_up) | ||
1121 | { | ||
1122 | if (gpio_bank < NUM_BANKS) { | ||
1123 | struct nmk_gpio_chip *chip = nmk_gpio_chips[gpio_bank]; | ||
1124 | |||
1125 | if (!chip) | ||
1126 | return; | ||
1127 | |||
1128 | *pull_up = chip->pull_up; | ||
1129 | } | ||
1130 | } | ||
1131 | |||
1132 | /* | 1036 | /* |
1133 | * We will allocate memory for the state container using devm* allocators | 1037 | * We will allocate memory for the state container using devm* allocators |
1134 | * binding to the first device reaching this point, it doesn't matter if | 1038 | * binding to the first device reaching this point, it doesn't matter if |
diff --git a/drivers/pinctrl/pinconf-generic.c b/drivers/pinctrl/pinconf-generic.c index d5bf9fae2ddd..5020ae534479 100644 --- a/drivers/pinctrl/pinconf-generic.c +++ b/drivers/pinctrl/pinconf-generic.c | |||
@@ -53,7 +53,7 @@ static void pinconf_generic_dump_one(struct pinctrl_dev *pctldev, | |||
53 | struct seq_file *s, const char *gname, | 53 | struct seq_file *s, const char *gname, |
54 | unsigned pin, | 54 | unsigned pin, |
55 | const struct pin_config_item *items, | 55 | const struct pin_config_item *items, |
56 | int nitems) | 56 | int nitems, int *print_sep) |
57 | { | 57 | { |
58 | int i; | 58 | int i; |
59 | 59 | ||
@@ -75,8 +75,10 @@ static void pinconf_generic_dump_one(struct pinctrl_dev *pctldev, | |||
75 | seq_printf(s, "ERROR READING CONFIG SETTING %d ", i); | 75 | seq_printf(s, "ERROR READING CONFIG SETTING %d ", i); |
76 | continue; | 76 | continue; |
77 | } | 77 | } |
78 | /* Space between multiple configs */ | 78 | /* comma between multiple configs */ |
79 | seq_puts(s, " "); | 79 | if (*print_sep) |
80 | seq_puts(s, ", "); | ||
81 | *print_sep = 1; | ||
80 | seq_puts(s, items[i].display); | 82 | seq_puts(s, items[i].display); |
81 | /* Print unit if available */ | 83 | /* Print unit if available */ |
82 | if (items[i].has_arg) { | 84 | if (items[i].has_arg) { |
@@ -105,19 +107,21 @@ void pinconf_generic_dump_pins(struct pinctrl_dev *pctldev, struct seq_file *s, | |||
105 | const char *gname, unsigned pin) | 107 | const char *gname, unsigned pin) |
106 | { | 108 | { |
107 | const struct pinconf_ops *ops = pctldev->desc->confops; | 109 | const struct pinconf_ops *ops = pctldev->desc->confops; |
110 | int print_sep = 0; | ||
108 | 111 | ||
109 | if (!ops->is_generic) | 112 | if (!ops->is_generic) |
110 | return; | 113 | return; |
111 | 114 | ||
112 | /* generic parameters */ | 115 | /* generic parameters */ |
113 | pinconf_generic_dump_one(pctldev, s, gname, pin, conf_items, | 116 | pinconf_generic_dump_one(pctldev, s, gname, pin, conf_items, |
114 | ARRAY_SIZE(conf_items)); | 117 | ARRAY_SIZE(conf_items), &print_sep); |
115 | /* driver-specific parameters */ | 118 | /* driver-specific parameters */ |
116 | if (pctldev->desc->num_custom_params && | 119 | if (pctldev->desc->num_custom_params && |
117 | pctldev->desc->custom_conf_items) | 120 | pctldev->desc->custom_conf_items) |
118 | pinconf_generic_dump_one(pctldev, s, gname, pin, | 121 | pinconf_generic_dump_one(pctldev, s, gname, pin, |
119 | pctldev->desc->custom_conf_items, | 122 | pctldev->desc->custom_conf_items, |
120 | pctldev->desc->num_custom_params); | 123 | pctldev->desc->num_custom_params, |
124 | &print_sep); | ||
121 | } | 125 | } |
122 | 126 | ||
123 | void pinconf_generic_dump_config(struct pinctrl_dev *pctldev, | 127 | void pinconf_generic_dump_config(struct pinctrl_dev *pctldev, |
@@ -391,4 +395,12 @@ exit: | |||
391 | } | 395 | } |
392 | EXPORT_SYMBOL_GPL(pinconf_generic_dt_node_to_map); | 396 | EXPORT_SYMBOL_GPL(pinconf_generic_dt_node_to_map); |
393 | 397 | ||
398 | void pinconf_generic_dt_free_map(struct pinctrl_dev *pctldev, | ||
399 | struct pinctrl_map *map, | ||
400 | unsigned num_maps) | ||
401 | { | ||
402 | pinctrl_utils_free_map(pctldev, map, num_maps); | ||
403 | } | ||
404 | EXPORT_SYMBOL_GPL(pinconf_generic_dt_free_map); | ||
405 | |||
394 | #endif | 406 | #endif |
diff --git a/drivers/pinctrl/pinconf.c b/drivers/pinctrl/pinconf.c index 4dd7722f9935..799048f3c8d4 100644 --- a/drivers/pinctrl/pinconf.c +++ b/drivers/pinctrl/pinconf.c | |||
@@ -258,8 +258,7 @@ void pinconf_show_setting(struct seq_file *s, | |||
258 | case PIN_MAP_TYPE_CONFIGS_PIN: | 258 | case PIN_MAP_TYPE_CONFIGS_PIN: |
259 | desc = pin_desc_get(setting->pctldev, | 259 | desc = pin_desc_get(setting->pctldev, |
260 | setting->data.configs.group_or_pin); | 260 | setting->data.configs.group_or_pin); |
261 | seq_printf(s, "pin %s (%d)", | 261 | seq_printf(s, "pin %s (%d)", desc->name, |
262 | desc->name ? desc->name : "unnamed", | ||
263 | setting->data.configs.group_or_pin); | 262 | setting->data.configs.group_or_pin); |
264 | break; | 263 | break; |
265 | case PIN_MAP_TYPE_CONFIGS_GROUP: | 264 | case PIN_MAP_TYPE_CONFIGS_GROUP: |
@@ -311,8 +310,7 @@ static int pinconf_pins_show(struct seq_file *s, void *what) | |||
311 | if (desc == NULL) | 310 | if (desc == NULL) |
312 | continue; | 311 | continue; |
313 | 312 | ||
314 | seq_printf(s, "pin %d (%s):", pin, | 313 | seq_printf(s, "pin %d (%s): ", pin, desc->name); |
315 | desc->name ? desc->name : "unnamed"); | ||
316 | 314 | ||
317 | pinconf_dump_pin(pctldev, s, pin); | 315 | pinconf_dump_pin(pctldev, s, pin); |
318 | 316 | ||
@@ -349,7 +347,7 @@ static int pinconf_groups_show(struct seq_file *s, void *what) | |||
349 | while (selector < ngroups) { | 347 | while (selector < ngroups) { |
350 | const char *gname = pctlops->get_group_name(pctldev, selector); | 348 | const char *gname = pctlops->get_group_name(pctldev, selector); |
351 | 349 | ||
352 | seq_printf(s, "%u (%s):", selector, gname); | 350 | seq_printf(s, "%u (%s): ", selector, gname); |
353 | pinconf_dump_group(pctldev, s, selector, gname); | 351 | pinconf_dump_group(pctldev, s, selector, gname); |
354 | seq_printf(s, "\n"); | 352 | seq_printf(s, "\n"); |
355 | 353 | ||
diff --git a/drivers/pinctrl/pinctrl-at91-pio4.c b/drivers/pinctrl/pinctrl-at91-pio4.c index a025b40d246b..28bbc1bb9e6c 100644 --- a/drivers/pinctrl/pinctrl-at91-pio4.c +++ b/drivers/pinctrl/pinctrl-at91-pio4.c | |||
@@ -20,7 +20,7 @@ | |||
20 | #include <linux/gpio.h> | 20 | #include <linux/gpio.h> |
21 | #include <linux/interrupt.h> | 21 | #include <linux/interrupt.h> |
22 | #include <linux/io.h> | 22 | #include <linux/io.h> |
23 | #include <linux/module.h> | 23 | #include <linux/init.h> |
24 | #include <linux/of.h> | 24 | #include <linux/of.h> |
25 | #include <linux/platform_device.h> | 25 | #include <linux/platform_device.h> |
26 | #include <linux/pinctrl/pinconf.h> | 26 | #include <linux/pinctrl/pinconf.h> |
@@ -421,8 +421,8 @@ static int atmel_pctl_get_group_pins(struct pinctrl_dev *pctldev, | |||
421 | return 0; | 421 | return 0; |
422 | } | 422 | } |
423 | 423 | ||
424 | struct atmel_group *atmel_pctl_find_group_by_pin(struct pinctrl_dev *pctldev, | 424 | static struct atmel_group * |
425 | unsigned pin) | 425 | atmel_pctl_find_group_by_pin(struct pinctrl_dev *pctldev, unsigned pin) |
426 | { | 426 | { |
427 | struct atmel_pioctrl *atmel_pioctrl = pinctrl_dev_get_drvdata(pctldev); | 427 | struct atmel_pioctrl *atmel_pioctrl = pinctrl_dev_get_drvdata(pctldev); |
428 | int i; | 428 | int i; |
@@ -879,7 +879,6 @@ static const struct of_device_id atmel_pctrl_of_match[] = { | |||
879 | /* sentinel */ | 879 | /* sentinel */ |
880 | } | 880 | } |
881 | }; | 881 | }; |
882 | MODULE_DEVICE_TABLE(of, atmel_pctrl_of_match); | ||
883 | 882 | ||
884 | static int atmel_pinctrl_probe(struct platform_device *pdev) | 883 | static int atmel_pinctrl_probe(struct platform_device *pdev) |
885 | { | 884 | { |
@@ -1074,28 +1073,13 @@ clk_prepare_enable_error: | |||
1074 | return ret; | 1073 | return ret; |
1075 | } | 1074 | } |
1076 | 1075 | ||
1077 | int atmel_pinctrl_remove(struct platform_device *pdev) | ||
1078 | { | ||
1079 | struct atmel_pioctrl *atmel_pioctrl = platform_get_drvdata(pdev); | ||
1080 | |||
1081 | irq_domain_remove(atmel_pioctrl->irq_domain); | ||
1082 | clk_disable_unprepare(atmel_pioctrl->clk); | ||
1083 | gpiochip_remove(atmel_pioctrl->gpio_chip); | ||
1084 | |||
1085 | return 0; | ||
1086 | } | ||
1087 | |||
1088 | static struct platform_driver atmel_pinctrl_driver = { | 1076 | static struct platform_driver atmel_pinctrl_driver = { |
1089 | .driver = { | 1077 | .driver = { |
1090 | .name = "pinctrl-at91-pio4", | 1078 | .name = "pinctrl-at91-pio4", |
1091 | .of_match_table = atmel_pctrl_of_match, | 1079 | .of_match_table = atmel_pctrl_of_match, |
1092 | .pm = &atmel_pctrl_pm_ops, | 1080 | .pm = &atmel_pctrl_pm_ops, |
1081 | .suppress_bind_attrs = true, | ||
1093 | }, | 1082 | }, |
1094 | .probe = atmel_pinctrl_probe, | 1083 | .probe = atmel_pinctrl_probe, |
1095 | .remove = atmel_pinctrl_remove, | ||
1096 | }; | 1084 | }; |
1097 | module_platform_driver(atmel_pinctrl_driver); | 1085 | builtin_platform_driver(atmel_pinctrl_driver); |
1098 | |||
1099 | MODULE_AUTHOR(Ludovic Desroches <ludovic.desroches@atmel.com>); | ||
1100 | MODULE_DESCRIPTION("Atmel PIO4 pinctrl driver"); | ||
1101 | MODULE_LICENSE("GPL v2"); | ||
diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c index b7c0d6f7c046..80daead3a5a1 100644 --- a/drivers/pinctrl/pinctrl-at91.c +++ b/drivers/pinctrl/pinctrl-at91.c | |||
@@ -9,7 +9,6 @@ | |||
9 | #include <linux/clk.h> | 9 | #include <linux/clk.h> |
10 | #include <linux/err.h> | 10 | #include <linux/err.h> |
11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
12 | #include <linux/module.h> | ||
13 | #include <linux/of.h> | 12 | #include <linux/of.h> |
14 | #include <linux/of_device.h> | 13 | #include <linux/of_device.h> |
15 | #include <linux/of_address.h> | 14 | #include <linux/of_address.h> |
@@ -189,7 +188,7 @@ struct at91_pinctrl { | |||
189 | struct at91_pinctrl_mux_ops *ops; | 188 | struct at91_pinctrl_mux_ops *ops; |
190 | }; | 189 | }; |
191 | 190 | ||
192 | static const inline struct at91_pin_group *at91_pinctrl_find_group_by_name( | 191 | static inline const struct at91_pin_group *at91_pinctrl_find_group_by_name( |
193 | const struct at91_pinctrl *info, | 192 | const struct at91_pinctrl *info, |
194 | const char *name) | 193 | const char *name) |
195 | { | 194 | { |
@@ -1818,13 +1817,3 @@ static int __init at91_pinctrl_init(void) | |||
1818 | return platform_register_drivers(drivers, ARRAY_SIZE(drivers)); | 1817 | return platform_register_drivers(drivers, ARRAY_SIZE(drivers)); |
1819 | } | 1818 | } |
1820 | arch_initcall(at91_pinctrl_init); | 1819 | arch_initcall(at91_pinctrl_init); |
1821 | |||
1822 | static void __exit at91_pinctrl_exit(void) | ||
1823 | { | ||
1824 | platform_unregister_drivers(drivers, ARRAY_SIZE(drivers)); | ||
1825 | } | ||
1826 | |||
1827 | module_exit(at91_pinctrl_exit); | ||
1828 | MODULE_AUTHOR("Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>"); | ||
1829 | MODULE_DESCRIPTION("Atmel AT91 pinctrl driver"); | ||
1830 | MODULE_LICENSE("GPL v2"); | ||
diff --git a/drivers/pinctrl/pinctrl-digicolor.c b/drivers/pinctrl/pinctrl-digicolor.c index 30ee56427f56..639a57ecc7c2 100644 --- a/drivers/pinctrl/pinctrl-digicolor.c +++ b/drivers/pinctrl/pinctrl-digicolor.c | |||
@@ -15,7 +15,7 @@ | |||
15 | * - Pin pad configuration (pull up/down, strength) | 15 | * - Pin pad configuration (pull up/down, strength) |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/module.h> | 18 | #include <linux/init.h> |
19 | #include <linux/platform_device.h> | 19 | #include <linux/platform_device.h> |
20 | #include <linux/of.h> | 20 | #include <linux/of.h> |
21 | #include <linux/of_device.h> | 21 | #include <linux/of_device.h> |
@@ -335,27 +335,17 @@ static int dc_pinctrl_probe(struct platform_device *pdev) | |||
335 | return dc_gpiochip_add(pmap, pdev->dev.of_node); | 335 | return dc_gpiochip_add(pmap, pdev->dev.of_node); |
336 | } | 336 | } |
337 | 337 | ||
338 | static int dc_pinctrl_remove(struct platform_device *pdev) | ||
339 | { | ||
340 | struct dc_pinmap *pmap = platform_get_drvdata(pdev); | ||
341 | |||
342 | gpiochip_remove(&pmap->chip); | ||
343 | |||
344 | return 0; | ||
345 | } | ||
346 | |||
347 | static const struct of_device_id dc_pinctrl_ids[] = { | 338 | static const struct of_device_id dc_pinctrl_ids[] = { |
348 | { .compatible = "cnxt,cx92755-pinctrl" }, | 339 | { .compatible = "cnxt,cx92755-pinctrl" }, |
349 | { /* sentinel */ } | 340 | { /* sentinel */ } |
350 | }; | 341 | }; |
351 | MODULE_DEVICE_TABLE(of, dc_pinctrl_ids); | ||
352 | 342 | ||
353 | static struct platform_driver dc_pinctrl_driver = { | 343 | static struct platform_driver dc_pinctrl_driver = { |
354 | .driver = { | 344 | .driver = { |
355 | .name = DRIVER_NAME, | 345 | .name = DRIVER_NAME, |
356 | .of_match_table = dc_pinctrl_ids, | 346 | .of_match_table = dc_pinctrl_ids, |
347 | .suppress_bind_attrs = true, | ||
357 | }, | 348 | }, |
358 | .probe = dc_pinctrl_probe, | 349 | .probe = dc_pinctrl_probe, |
359 | .remove = dc_pinctrl_remove, | ||
360 | }; | 350 | }; |
361 | module_platform_driver(dc_pinctrl_driver); | 351 | builtin_platform_driver(dc_pinctrl_driver); |
diff --git a/drivers/pinctrl/pinctrl-lpc18xx.c b/drivers/pinctrl/pinctrl-lpc18xx.c index 8a931c7ba2ff..e053f1fa5512 100644 --- a/drivers/pinctrl/pinctrl-lpc18xx.c +++ b/drivers/pinctrl/pinctrl-lpc18xx.c | |||
@@ -11,7 +11,7 @@ | |||
11 | #include <linux/bitops.h> | 11 | #include <linux/bitops.h> |
12 | #include <linux/clk.h> | 12 | #include <linux/clk.h> |
13 | #include <linux/io.h> | 13 | #include <linux/io.h> |
14 | #include <linux/module.h> | 14 | #include <linux/init.h> |
15 | #include <linux/of.h> | 15 | #include <linux/of.h> |
16 | #include <linux/of_device.h> | 16 | #include <linux/of_device.h> |
17 | #include <linux/pinctrl/pinctrl.h> | 17 | #include <linux/pinctrl/pinctrl.h> |
@@ -1365,31 +1365,17 @@ static int lpc18xx_scu_probe(struct platform_device *pdev) | |||
1365 | return 0; | 1365 | return 0; |
1366 | } | 1366 | } |
1367 | 1367 | ||
1368 | static int lpc18xx_scu_remove(struct platform_device *pdev) | ||
1369 | { | ||
1370 | struct lpc18xx_scu_data *scu = platform_get_drvdata(pdev); | ||
1371 | |||
1372 | clk_disable_unprepare(scu->clk); | ||
1373 | |||
1374 | return 0; | ||
1375 | } | ||
1376 | |||
1377 | static const struct of_device_id lpc18xx_scu_match[] = { | 1368 | static const struct of_device_id lpc18xx_scu_match[] = { |
1378 | { .compatible = "nxp,lpc1850-scu" }, | 1369 | { .compatible = "nxp,lpc1850-scu" }, |
1379 | {}, | 1370 | {}, |
1380 | }; | 1371 | }; |
1381 | MODULE_DEVICE_TABLE(of, lpc18xx_scu_match); | ||
1382 | 1372 | ||
1383 | static struct platform_driver lpc18xx_scu_driver = { | 1373 | static struct platform_driver lpc18xx_scu_driver = { |
1384 | .probe = lpc18xx_scu_probe, | 1374 | .probe = lpc18xx_scu_probe, |
1385 | .remove = lpc18xx_scu_remove, | ||
1386 | .driver = { | 1375 | .driver = { |
1387 | .name = "lpc18xx-scu", | 1376 | .name = "lpc18xx-scu", |
1388 | .of_match_table = lpc18xx_scu_match, | 1377 | .of_match_table = lpc18xx_scu_match, |
1378 | .suppress_bind_attrs = true, | ||
1389 | }, | 1379 | }, |
1390 | }; | 1380 | }; |
1391 | module_platform_driver(lpc18xx_scu_driver); | 1381 | builtin_platform_driver(lpc18xx_scu_driver); |
1392 | |||
1393 | MODULE_AUTHOR("Joachim Eastwood <manabian@gmail.com>"); | ||
1394 | MODULE_DESCRIPTION("Pinctrl driver for NXP LPC18xx/43xx SCU"); | ||
1395 | MODULE_LICENSE("GPL v2"); | ||
diff --git a/drivers/pinctrl/pinctrl-max77620.c b/drivers/pinctrl/pinctrl-max77620.c new file mode 100644 index 000000000000..d9ff53e8f715 --- /dev/null +++ b/drivers/pinctrl/pinctrl-max77620.c | |||
@@ -0,0 +1,673 @@ | |||
1 | /* | ||
2 | * MAX77620 pin control driver. | ||
3 | * | ||
4 | * Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved. | ||
5 | * | ||
6 | * Author: | ||
7 | * Chaitanya Bandi <bandik@nvidia.com> | ||
8 | * Laxman Dewangan <ldewangan@nvidia.com> | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify it | ||
11 | * under the terms and conditions of the GNU General Public License, | ||
12 | * version 2, as published by the Free Software Foundation. | ||
13 | */ | ||
14 | |||
15 | #include <linux/mfd/max77620.h> | ||
16 | #include <linux/module.h> | ||
17 | #include <linux/of.h> | ||
18 | #include <linux/pinctrl/pinctrl.h> | ||
19 | #include <linux/pinctrl/pinconf-generic.h> | ||
20 | #include <linux/pinctrl/pinconf.h> | ||
21 | #include <linux/pinctrl/pinmux.h> | ||
22 | #include <linux/platform_device.h> | ||
23 | #include <linux/regmap.h> | ||
24 | |||
25 | #include "core.h" | ||
26 | #include "pinconf.h" | ||
27 | #include "pinctrl-utils.h" | ||
28 | |||
29 | #define MAX77620_PIN_NUM 8 | ||
30 | |||
31 | enum max77620_pin_ppdrv { | ||
32 | MAX77620_PIN_UNCONFIG_DRV, | ||
33 | MAX77620_PIN_OD_DRV, | ||
34 | MAX77620_PIN_PP_DRV, | ||
35 | }; | ||
36 | |||
37 | enum max77620_pinconf_param { | ||
38 | MAX77620_ACTIVE_FPS_SOURCE = PIN_CONFIG_END + 1, | ||
39 | MAX77620_ACTIVE_FPS_POWER_ON_SLOTS, | ||
40 | MAX77620_ACTIVE_FPS_POWER_DOWN_SLOTS, | ||
41 | MAX77620_SUSPEND_FPS_SOURCE, | ||
42 | MAX77620_SUSPEND_FPS_POWER_ON_SLOTS, | ||
43 | MAX77620_SUSPEND_FPS_POWER_DOWN_SLOTS, | ||
44 | }; | ||
45 | |||
46 | struct max77620_pin_function { | ||
47 | const char *name; | ||
48 | const char * const *groups; | ||
49 | unsigned int ngroups; | ||
50 | int mux_option; | ||
51 | }; | ||
52 | |||
53 | static const struct pinconf_generic_params max77620_cfg_params[] = { | ||
54 | { | ||
55 | .property = "maxim,active-fps-source", | ||
56 | .param = MAX77620_ACTIVE_FPS_SOURCE, | ||
57 | }, { | ||
58 | .property = "maxim,active-fps-power-up-slot", | ||
59 | .param = MAX77620_ACTIVE_FPS_POWER_ON_SLOTS, | ||
60 | }, { | ||
61 | .property = "maxim,active-fps-power-down-slot", | ||
62 | .param = MAX77620_ACTIVE_FPS_POWER_DOWN_SLOTS, | ||
63 | }, { | ||
64 | .property = "maxim,suspend-fps-source", | ||
65 | .param = MAX77620_SUSPEND_FPS_SOURCE, | ||
66 | }, { | ||
67 | .property = "maxim,suspend-fps-power-up-slot", | ||
68 | .param = MAX77620_SUSPEND_FPS_POWER_ON_SLOTS, | ||
69 | }, { | ||
70 | .property = "maxim,suspend-fps-power-down-slot", | ||
71 | .param = MAX77620_SUSPEND_FPS_POWER_DOWN_SLOTS, | ||
72 | }, | ||
73 | }; | ||
74 | |||
75 | enum max77620_alternate_pinmux_option { | ||
76 | MAX77620_PINMUX_GPIO = 0, | ||
77 | MAX77620_PINMUX_LOW_POWER_MODE_CONTROL_IN = 1, | ||
78 | MAX77620_PINMUX_FLEXIBLE_POWER_SEQUENCER_OUT = 2, | ||
79 | MAX77620_PINMUX_32K_OUT1 = 3, | ||
80 | MAX77620_PINMUX_SD0_DYNAMIC_VOLTAGE_SCALING_IN = 4, | ||
81 | MAX77620_PINMUX_SD1_DYNAMIC_VOLTAGE_SCALING_IN = 5, | ||
82 | MAX77620_PINMUX_REFERENCE_OUT = 6, | ||
83 | }; | ||
84 | |||
85 | struct max77620_pingroup { | ||
86 | const char *name; | ||
87 | const unsigned int pins[1]; | ||
88 | unsigned int npins; | ||
89 | enum max77620_alternate_pinmux_option alt_option; | ||
90 | }; | ||
91 | |||
92 | struct max77620_pin_info { | ||
93 | enum max77620_pin_ppdrv drv_type; | ||
94 | int pull_config; | ||
95 | }; | ||
96 | |||
97 | struct max77620_fps_config { | ||
98 | int active_fps_src; | ||
99 | int active_power_up_slots; | ||
100 | int active_power_down_slots; | ||
101 | int suspend_fps_src; | ||
102 | int suspend_power_up_slots; | ||
103 | int suspend_power_down_slots; | ||
104 | }; | ||
105 | |||
106 | struct max77620_pctrl_info { | ||
107 | struct device *dev; | ||
108 | struct pinctrl_dev *pctl; | ||
109 | struct regmap *rmap; | ||
110 | int pins_current_opt[MAX77620_GPIO_NR]; | ||
111 | const struct max77620_pin_function *functions; | ||
112 | unsigned int num_functions; | ||
113 | const struct max77620_pingroup *pin_groups; | ||
114 | int num_pin_groups; | ||
115 | const struct pinctrl_pin_desc *pins; | ||
116 | unsigned int num_pins; | ||
117 | struct max77620_pin_info pin_info[MAX77620_PIN_NUM]; | ||
118 | struct max77620_fps_config fps_config[MAX77620_PIN_NUM]; | ||
119 | }; | ||
120 | |||
121 | static const struct pinctrl_pin_desc max77620_pins_desc[] = { | ||
122 | PINCTRL_PIN(MAX77620_GPIO0, "gpio0"), | ||
123 | PINCTRL_PIN(MAX77620_GPIO1, "gpio1"), | ||
124 | PINCTRL_PIN(MAX77620_GPIO2, "gpio2"), | ||
125 | PINCTRL_PIN(MAX77620_GPIO3, "gpio3"), | ||
126 | PINCTRL_PIN(MAX77620_GPIO4, "gpio4"), | ||
127 | PINCTRL_PIN(MAX77620_GPIO5, "gpio5"), | ||
128 | PINCTRL_PIN(MAX77620_GPIO6, "gpio6"), | ||
129 | PINCTRL_PIN(MAX77620_GPIO7, "gpio7"), | ||
130 | }; | ||
131 | |||
132 | static const char * const gpio_groups[] = { | ||
133 | "gpio0", | ||
134 | "gpio1", | ||
135 | "gpio2", | ||
136 | "gpio3", | ||
137 | "gpio4", | ||
138 | "gpio5", | ||
139 | "gpio6", | ||
140 | "gpio7", | ||
141 | }; | ||
142 | |||
143 | #define FUNCTION_GROUP(fname, mux) \ | ||
144 | { \ | ||
145 | .name = fname, \ | ||
146 | .groups = gpio_groups, \ | ||
147 | .ngroups = ARRAY_SIZE(gpio_groups), \ | ||
148 | .mux_option = MAX77620_PINMUX_##mux, \ | ||
149 | } | ||
150 | |||
151 | static const struct max77620_pin_function max77620_pin_function[] = { | ||
152 | FUNCTION_GROUP("gpio", GPIO), | ||
153 | FUNCTION_GROUP("lpm-control-in", LOW_POWER_MODE_CONTROL_IN), | ||
154 | FUNCTION_GROUP("fps-out", FLEXIBLE_POWER_SEQUENCER_OUT), | ||
155 | FUNCTION_GROUP("32k-out1", 32K_OUT1), | ||
156 | FUNCTION_GROUP("sd0-dvs-in", SD0_DYNAMIC_VOLTAGE_SCALING_IN), | ||
157 | FUNCTION_GROUP("sd1-dvs-in", SD1_DYNAMIC_VOLTAGE_SCALING_IN), | ||
158 | FUNCTION_GROUP("reference-out", REFERENCE_OUT), | ||
159 | }; | ||
160 | |||
161 | #define MAX77620_PINGROUP(pg_name, pin_id, option) \ | ||
162 | { \ | ||
163 | .name = #pg_name, \ | ||
164 | .pins = {MAX77620_##pin_id}, \ | ||
165 | .npins = 1, \ | ||
166 | .alt_option = MAX77620_PINMUX_##option, \ | ||
167 | } | ||
168 | |||
169 | static const struct max77620_pingroup max77620_pingroups[] = { | ||
170 | MAX77620_PINGROUP(gpio0, GPIO0, LOW_POWER_MODE_CONTROL_IN), | ||
171 | MAX77620_PINGROUP(gpio1, GPIO1, FLEXIBLE_POWER_SEQUENCER_OUT), | ||
172 | MAX77620_PINGROUP(gpio2, GPIO2, FLEXIBLE_POWER_SEQUENCER_OUT), | ||
173 | MAX77620_PINGROUP(gpio3, GPIO3, FLEXIBLE_POWER_SEQUENCER_OUT), | ||
174 | MAX77620_PINGROUP(gpio4, GPIO4, 32K_OUT1), | ||
175 | MAX77620_PINGROUP(gpio5, GPIO5, SD0_DYNAMIC_VOLTAGE_SCALING_IN), | ||
176 | MAX77620_PINGROUP(gpio6, GPIO6, SD1_DYNAMIC_VOLTAGE_SCALING_IN), | ||
177 | MAX77620_PINGROUP(gpio7, GPIO7, REFERENCE_OUT), | ||
178 | }; | ||
179 | |||
180 | static int max77620_pinctrl_get_groups_count(struct pinctrl_dev *pctldev) | ||
181 | { | ||
182 | struct max77620_pctrl_info *mpci = pinctrl_dev_get_drvdata(pctldev); | ||
183 | |||
184 | return mpci->num_pin_groups; | ||
185 | } | ||
186 | |||
187 | static const char *max77620_pinctrl_get_group_name( | ||
188 | struct pinctrl_dev *pctldev, unsigned int group) | ||
189 | { | ||
190 | struct max77620_pctrl_info *mpci = pinctrl_dev_get_drvdata(pctldev); | ||
191 | |||
192 | return mpci->pin_groups[group].name; | ||
193 | } | ||
194 | |||
195 | static int max77620_pinctrl_get_group_pins( | ||
196 | struct pinctrl_dev *pctldev, unsigned int group, | ||
197 | const unsigned int **pins, unsigned int *num_pins) | ||
198 | { | ||
199 | struct max77620_pctrl_info *mpci = pinctrl_dev_get_drvdata(pctldev); | ||
200 | |||
201 | *pins = mpci->pin_groups[group].pins; | ||
202 | *num_pins = mpci->pin_groups[group].npins; | ||
203 | |||
204 | return 0; | ||
205 | } | ||
206 | |||
207 | static const struct pinctrl_ops max77620_pinctrl_ops = { | ||
208 | .get_groups_count = max77620_pinctrl_get_groups_count, | ||
209 | .get_group_name = max77620_pinctrl_get_group_name, | ||
210 | .get_group_pins = max77620_pinctrl_get_group_pins, | ||
211 | .dt_node_to_map = pinconf_generic_dt_node_to_map_pin, | ||
212 | .dt_free_map = pinctrl_utils_free_map, | ||
213 | }; | ||
214 | |||
215 | static int max77620_pinctrl_get_funcs_count(struct pinctrl_dev *pctldev) | ||
216 | { | ||
217 | struct max77620_pctrl_info *mpci = pinctrl_dev_get_drvdata(pctldev); | ||
218 | |||
219 | return mpci->num_functions; | ||
220 | } | ||
221 | |||
222 | static const char *max77620_pinctrl_get_func_name(struct pinctrl_dev *pctldev, | ||
223 | unsigned int function) | ||
224 | { | ||
225 | struct max77620_pctrl_info *mpci = pinctrl_dev_get_drvdata(pctldev); | ||
226 | |||
227 | return mpci->functions[function].name; | ||
228 | } | ||
229 | |||
230 | static int max77620_pinctrl_get_func_groups(struct pinctrl_dev *pctldev, | ||
231 | unsigned int function, | ||
232 | const char * const **groups, | ||
233 | unsigned int * const num_groups) | ||
234 | { | ||
235 | struct max77620_pctrl_info *mpci = pinctrl_dev_get_drvdata(pctldev); | ||
236 | |||
237 | *groups = mpci->functions[function].groups; | ||
238 | *num_groups = mpci->functions[function].ngroups; | ||
239 | |||
240 | return 0; | ||
241 | } | ||
242 | |||
243 | static int max77620_pinctrl_enable(struct pinctrl_dev *pctldev, | ||
244 | unsigned int function, unsigned int group) | ||
245 | { | ||
246 | struct max77620_pctrl_info *mpci = pinctrl_dev_get_drvdata(pctldev); | ||
247 | u8 val; | ||
248 | int ret; | ||
249 | |||
250 | if (function == MAX77620_PINMUX_GPIO) { | ||
251 | val = 0; | ||
252 | } else if (function == mpci->pin_groups[group].alt_option) { | ||
253 | val = 1 << group; | ||
254 | } else { | ||
255 | dev_err(mpci->dev, "GPIO %u doesn't have function %u\n", | ||
256 | group, function); | ||
257 | return -EINVAL; | ||
258 | } | ||
259 | ret = regmap_update_bits(mpci->rmap, MAX77620_REG_AME_GPIO, | ||
260 | BIT(group), val); | ||
261 | if (ret < 0) | ||
262 | dev_err(mpci->dev, "REG AME GPIO update failed: %d\n", ret); | ||
263 | |||
264 | return ret; | ||
265 | } | ||
266 | |||
267 | static const struct pinmux_ops max77620_pinmux_ops = { | ||
268 | .get_functions_count = max77620_pinctrl_get_funcs_count, | ||
269 | .get_function_name = max77620_pinctrl_get_func_name, | ||
270 | .get_function_groups = max77620_pinctrl_get_func_groups, | ||
271 | .set_mux = max77620_pinctrl_enable, | ||
272 | }; | ||
273 | |||
274 | static int max77620_pinconf_get(struct pinctrl_dev *pctldev, | ||
275 | unsigned int pin, unsigned long *config) | ||
276 | { | ||
277 | struct max77620_pctrl_info *mpci = pinctrl_dev_get_drvdata(pctldev); | ||
278 | struct device *dev = mpci->dev; | ||
279 | enum pin_config_param param = pinconf_to_config_param(*config); | ||
280 | unsigned int val; | ||
281 | int arg = 0; | ||
282 | int ret; | ||
283 | |||
284 | switch (param) { | ||
285 | case PIN_CONFIG_DRIVE_OPEN_DRAIN: | ||
286 | if (mpci->pin_info[pin].drv_type == MAX77620_PIN_OD_DRV) | ||
287 | arg = 1; | ||
288 | break; | ||
289 | |||
290 | case PIN_CONFIG_DRIVE_PUSH_PULL: | ||
291 | if (mpci->pin_info[pin].drv_type == MAX77620_PIN_PP_DRV) | ||
292 | arg = 1; | ||
293 | break; | ||
294 | |||
295 | case PIN_CONFIG_BIAS_PULL_UP: | ||
296 | ret = regmap_read(mpci->rmap, MAX77620_REG_PUE_GPIO, &val); | ||
297 | if (ret < 0) { | ||
298 | dev_err(dev, "Reg PUE_GPIO read failed: %d\n", ret); | ||
299 | return ret; | ||
300 | } | ||
301 | if (val & BIT(pin)) | ||
302 | arg = 1; | ||
303 | break; | ||
304 | |||
305 | case PIN_CONFIG_BIAS_PULL_DOWN: | ||
306 | ret = regmap_read(mpci->rmap, MAX77620_REG_PDE_GPIO, &val); | ||
307 | if (ret < 0) { | ||
308 | dev_err(dev, "Reg PDE_GPIO read failed: %d\n", ret); | ||
309 | return ret; | ||
310 | } | ||
311 | if (val & BIT(pin)) | ||
312 | arg = 1; | ||
313 | break; | ||
314 | |||
315 | default: | ||
316 | dev_err(dev, "Properties not supported\n"); | ||
317 | return -ENOTSUPP; | ||
318 | } | ||
319 | |||
320 | *config = pinconf_to_config_packed(param, (u16)arg); | ||
321 | |||
322 | return 0; | ||
323 | } | ||
324 | |||
325 | static int max77620_get_default_fps(struct max77620_pctrl_info *mpci, | ||
326 | int addr, int *fps) | ||
327 | { | ||
328 | unsigned int val; | ||
329 | int ret; | ||
330 | |||
331 | ret = regmap_read(mpci->rmap, addr, &val); | ||
332 | if (ret < 0) { | ||
333 | dev_err(mpci->dev, "Reg PUE_GPIO read failed: %d\n", ret); | ||
334 | return ret; | ||
335 | } | ||
336 | *fps = (val & MAX77620_FPS_SRC_MASK) >> MAX77620_FPS_SRC_SHIFT; | ||
337 | |||
338 | return 0; | ||
339 | } | ||
340 | |||
341 | static int max77620_set_fps_param(struct max77620_pctrl_info *mpci, | ||
342 | int pin, int param) | ||
343 | { | ||
344 | struct max77620_fps_config *fps_config = &mpci->fps_config[pin]; | ||
345 | int addr, ret; | ||
346 | int param_val; | ||
347 | int mask, shift; | ||
348 | |||
349 | if ((pin < MAX77620_GPIO1) || (pin > MAX77620_GPIO3)) | ||
350 | return 0; | ||
351 | |||
352 | addr = MAX77620_REG_FPS_GPIO1 + pin - 1; | ||
353 | switch (param) { | ||
354 | case MAX77620_ACTIVE_FPS_SOURCE: | ||
355 | case MAX77620_SUSPEND_FPS_SOURCE: | ||
356 | mask = MAX77620_FPS_SRC_MASK; | ||
357 | shift = MAX77620_FPS_SRC_SHIFT; | ||
358 | param_val = fps_config->active_fps_src; | ||
359 | if (param == MAX77620_SUSPEND_FPS_SOURCE) | ||
360 | param_val = fps_config->suspend_fps_src; | ||
361 | break; | ||
362 | |||
363 | case MAX77620_ACTIVE_FPS_POWER_ON_SLOTS: | ||
364 | case MAX77620_SUSPEND_FPS_POWER_ON_SLOTS: | ||
365 | mask = MAX77620_FPS_PU_PERIOD_MASK; | ||
366 | shift = MAX77620_FPS_PU_PERIOD_SHIFT; | ||
367 | param_val = fps_config->active_power_up_slots; | ||
368 | if (param == MAX77620_SUSPEND_FPS_POWER_ON_SLOTS) | ||
369 | param_val = fps_config->suspend_power_up_slots; | ||
370 | break; | ||
371 | |||
372 | case MAX77620_ACTIVE_FPS_POWER_DOWN_SLOTS: | ||
373 | case MAX77620_SUSPEND_FPS_POWER_DOWN_SLOTS: | ||
374 | mask = MAX77620_FPS_PD_PERIOD_MASK; | ||
375 | shift = MAX77620_FPS_PD_PERIOD_SHIFT; | ||
376 | param_val = fps_config->active_power_down_slots; | ||
377 | if (param == MAX77620_SUSPEND_FPS_POWER_DOWN_SLOTS) | ||
378 | param_val = fps_config->suspend_power_down_slots; | ||
379 | break; | ||
380 | |||
381 | default: | ||
382 | dev_err(mpci->dev, "Invalid parameter %d for pin %d\n", | ||
383 | param, pin); | ||
384 | return -EINVAL; | ||
385 | } | ||
386 | |||
387 | if (param_val < 0) | ||
388 | return 0; | ||
389 | |||
390 | ret = regmap_update_bits(mpci->rmap, addr, mask, param_val << shift); | ||
391 | if (ret < 0) | ||
392 | dev_err(mpci->dev, "Reg 0x%02x update failed %d\n", addr, ret); | ||
393 | |||
394 | return ret; | ||
395 | } | ||
396 | |||
397 | static int max77620_pinconf_set(struct pinctrl_dev *pctldev, | ||
398 | unsigned int pin, unsigned long *configs, | ||
399 | unsigned int num_configs) | ||
400 | { | ||
401 | struct max77620_pctrl_info *mpci = pinctrl_dev_get_drvdata(pctldev); | ||
402 | struct device *dev = mpci->dev; | ||
403 | struct max77620_fps_config *fps_config; | ||
404 | int param; | ||
405 | u16 param_val; | ||
406 | unsigned int val; | ||
407 | unsigned int pu_val; | ||
408 | unsigned int pd_val; | ||
409 | int addr, ret; | ||
410 | int i; | ||
411 | |||
412 | for (i = 0; i < num_configs; i++) { | ||
413 | param = pinconf_to_config_param(configs[i]); | ||
414 | param_val = pinconf_to_config_argument(configs[i]); | ||
415 | |||
416 | switch (param) { | ||
417 | case PIN_CONFIG_DRIVE_OPEN_DRAIN: | ||
418 | val = param_val ? 0 : 1; | ||
419 | ret = regmap_update_bits(mpci->rmap, | ||
420 | MAX77620_REG_GPIO0 + pin, | ||
421 | MAX77620_CNFG_GPIO_DRV_MASK, | ||
422 | val); | ||
423 | if (ret < 0) { | ||
424 | dev_err(dev, "Reg 0x%02x update failed %d\n", | ||
425 | MAX77620_REG_GPIO0 + pin, ret); | ||
426 | return ret; | ||
427 | } | ||
428 | mpci->pin_info[pin].drv_type = val ? | ||
429 | MAX77620_PIN_PP_DRV : MAX77620_PIN_OD_DRV; | ||
430 | break; | ||
431 | |||
432 | case PIN_CONFIG_DRIVE_PUSH_PULL: | ||
433 | val = param_val ? 1 : 0; | ||
434 | ret = regmap_update_bits(mpci->rmap, | ||
435 | MAX77620_REG_GPIO0 + pin, | ||
436 | MAX77620_CNFG_GPIO_DRV_MASK, | ||
437 | val); | ||
438 | if (ret < 0) { | ||
439 | dev_err(dev, "Reg 0x%02x update failed %d\n", | ||
440 | MAX77620_REG_GPIO0 + pin, ret); | ||
441 | return ret; | ||
442 | } | ||
443 | mpci->pin_info[pin].drv_type = val ? | ||
444 | MAX77620_PIN_PP_DRV : MAX77620_PIN_OD_DRV; | ||
445 | break; | ||
446 | |||
447 | case MAX77620_ACTIVE_FPS_SOURCE: | ||
448 | case MAX77620_ACTIVE_FPS_POWER_ON_SLOTS: | ||
449 | case MAX77620_ACTIVE_FPS_POWER_DOWN_SLOTS: | ||
450 | if ((pin < MAX77620_GPIO1) || (pin > MAX77620_GPIO3)) | ||
451 | return -EINVAL; | ||
452 | |||
453 | fps_config = &mpci->fps_config[pin]; | ||
454 | |||
455 | if ((param == MAX77620_ACTIVE_FPS_SOURCE) && | ||
456 | (param_val == MAX77620_FPS_SRC_DEF)) { | ||
457 | addr = MAX77620_REG_FPS_GPIO1 + pin - 1; | ||
458 | ret = max77620_get_default_fps( | ||
459 | mpci, addr, | ||
460 | &fps_config->active_fps_src); | ||
461 | if (ret < 0) | ||
462 | return ret; | ||
463 | break; | ||
464 | } | ||
465 | |||
466 | if (param == MAX77620_ACTIVE_FPS_SOURCE) | ||
467 | fps_config->active_fps_src = param_val; | ||
468 | else if (param == MAX77620_ACTIVE_FPS_POWER_ON_SLOTS) | ||
469 | fps_config->active_power_up_slots = param_val; | ||
470 | else | ||
471 | fps_config->active_power_down_slots = param_val; | ||
472 | |||
473 | ret = max77620_set_fps_param(mpci, pin, param); | ||
474 | if (ret < 0) | ||
475 | return ret; | ||
476 | break; | ||
477 | |||
478 | case MAX77620_SUSPEND_FPS_SOURCE: | ||
479 | case MAX77620_SUSPEND_FPS_POWER_ON_SLOTS: | ||
480 | case MAX77620_SUSPEND_FPS_POWER_DOWN_SLOTS: | ||
481 | if ((pin < MAX77620_GPIO1) || (pin > MAX77620_GPIO3)) | ||
482 | return -EINVAL; | ||
483 | |||
484 | fps_config = &mpci->fps_config[pin]; | ||
485 | |||
486 | if ((param == MAX77620_SUSPEND_FPS_SOURCE) && | ||
487 | (param_val == MAX77620_FPS_SRC_DEF)) { | ||
488 | addr = MAX77620_REG_FPS_GPIO1 + pin - 1; | ||
489 | ret = max77620_get_default_fps( | ||
490 | mpci, addr, | ||
491 | &fps_config->suspend_fps_src); | ||
492 | if (ret < 0) | ||
493 | return ret; | ||
494 | break; | ||
495 | } | ||
496 | |||
497 | if (param == MAX77620_SUSPEND_FPS_SOURCE) | ||
498 | fps_config->suspend_fps_src = param_val; | ||
499 | else if (param == MAX77620_SUSPEND_FPS_POWER_ON_SLOTS) | ||
500 | fps_config->suspend_power_up_slots = param_val; | ||
501 | else | ||
502 | fps_config->suspend_power_down_slots = | ||
503 | param_val; | ||
504 | break; | ||
505 | |||
506 | case PIN_CONFIG_BIAS_PULL_UP: | ||
507 | case PIN_CONFIG_BIAS_PULL_DOWN: | ||
508 | pu_val = (param == PIN_CONFIG_BIAS_PULL_UP) ? | ||
509 | BIT(pin) : 0; | ||
510 | pd_val = (param == PIN_CONFIG_BIAS_PULL_DOWN) ? | ||
511 | BIT(pin) : 0; | ||
512 | |||
513 | ret = regmap_update_bits(mpci->rmap, | ||
514 | MAX77620_REG_PUE_GPIO, | ||
515 | BIT(pin), pu_val); | ||
516 | if (ret < 0) { | ||
517 | dev_err(dev, "PUE_GPIO update failed: %d\n", | ||
518 | ret); | ||
519 | return ret; | ||
520 | } | ||
521 | |||
522 | ret = regmap_update_bits(mpci->rmap, | ||
523 | MAX77620_REG_PDE_GPIO, | ||
524 | BIT(pin), pd_val); | ||
525 | if (ret < 0) { | ||
526 | dev_err(dev, "PDE_GPIO update failed: %d\n", | ||
527 | ret); | ||
528 | return ret; | ||
529 | } | ||
530 | break; | ||
531 | |||
532 | default: | ||
533 | dev_err(dev, "Properties not supported\n"); | ||
534 | return -ENOTSUPP; | ||
535 | } | ||
536 | } | ||
537 | |||
538 | return 0; | ||
539 | } | ||
540 | |||
541 | static const struct pinconf_ops max77620_pinconf_ops = { | ||
542 | .pin_config_get = max77620_pinconf_get, | ||
543 | .pin_config_set = max77620_pinconf_set, | ||
544 | }; | ||
545 | |||
546 | static struct pinctrl_desc max77620_pinctrl_desc = { | ||
547 | .pctlops = &max77620_pinctrl_ops, | ||
548 | .pmxops = &max77620_pinmux_ops, | ||
549 | .confops = &max77620_pinconf_ops, | ||
550 | }; | ||
551 | |||
552 | static int max77620_pinctrl_probe(struct platform_device *pdev) | ||
553 | { | ||
554 | struct max77620_chip *max77620 = dev_get_drvdata(pdev->dev.parent); | ||
555 | struct max77620_pctrl_info *mpci; | ||
556 | int i; | ||
557 | |||
558 | mpci = devm_kzalloc(&pdev->dev, sizeof(*mpci), GFP_KERNEL); | ||
559 | if (!mpci) | ||
560 | return -ENOMEM; | ||
561 | |||
562 | mpci->dev = &pdev->dev; | ||
563 | mpci->dev->of_node = pdev->dev.parent->of_node; | ||
564 | mpci->rmap = max77620->rmap; | ||
565 | |||
566 | mpci->pins = max77620_pins_desc; | ||
567 | mpci->num_pins = ARRAY_SIZE(max77620_pins_desc); | ||
568 | mpci->functions = max77620_pin_function; | ||
569 | mpci->num_functions = ARRAY_SIZE(max77620_pin_function); | ||
570 | mpci->pin_groups = max77620_pingroups; | ||
571 | mpci->num_pin_groups = ARRAY_SIZE(max77620_pingroups); | ||
572 | platform_set_drvdata(pdev, mpci); | ||
573 | |||
574 | max77620_pinctrl_desc.name = dev_name(&pdev->dev); | ||
575 | max77620_pinctrl_desc.pins = max77620_pins_desc; | ||
576 | max77620_pinctrl_desc.npins = ARRAY_SIZE(max77620_pins_desc); | ||
577 | max77620_pinctrl_desc.num_custom_params = | ||
578 | ARRAY_SIZE(max77620_cfg_params); | ||
579 | max77620_pinctrl_desc.custom_params = max77620_cfg_params; | ||
580 | |||
581 | for (i = 0; i < MAX77620_PIN_NUM; ++i) { | ||
582 | mpci->fps_config[i].active_fps_src = -1; | ||
583 | mpci->fps_config[i].active_power_up_slots = -1; | ||
584 | mpci->fps_config[i].active_power_down_slots = -1; | ||
585 | mpci->fps_config[i].suspend_fps_src = -1; | ||
586 | mpci->fps_config[i].suspend_power_up_slots = -1; | ||
587 | mpci->fps_config[i].suspend_power_down_slots = -1; | ||
588 | } | ||
589 | |||
590 | mpci->pctl = devm_pinctrl_register(&pdev->dev, &max77620_pinctrl_desc, | ||
591 | mpci); | ||
592 | if (IS_ERR(mpci->pctl)) { | ||
593 | dev_err(&pdev->dev, "Couldn't register pinctrl driver\n"); | ||
594 | return PTR_ERR(mpci->pctl); | ||
595 | } | ||
596 | |||
597 | return 0; | ||
598 | } | ||
599 | |||
600 | #ifdef CONFIG_PM_SLEEP | ||
601 | static int max77620_suspend_fps_param[] = { | ||
602 | MAX77620_SUSPEND_FPS_SOURCE, | ||
603 | MAX77620_SUSPEND_FPS_POWER_ON_SLOTS, | ||
604 | MAX77620_SUSPEND_FPS_POWER_DOWN_SLOTS, | ||
605 | }; | ||
606 | |||
607 | static int max77620_active_fps_param[] = { | ||
608 | MAX77620_ACTIVE_FPS_SOURCE, | ||
609 | MAX77620_ACTIVE_FPS_POWER_ON_SLOTS, | ||
610 | MAX77620_ACTIVE_FPS_POWER_DOWN_SLOTS, | ||
611 | }; | ||
612 | |||
613 | static int max77620_pinctrl_suspend(struct device *dev) | ||
614 | { | ||
615 | struct max77620_pctrl_info *mpci = dev_get_drvdata(dev); | ||
616 | int pin, p; | ||
617 | |||
618 | for (pin = 0; pin < MAX77620_PIN_NUM; ++pin) { | ||
619 | if ((pin < MAX77620_GPIO1) || (pin > MAX77620_GPIO3)) | ||
620 | continue; | ||
621 | for (p = 0; p < 3; ++p) | ||
622 | max77620_set_fps_param( | ||
623 | mpci, pin, max77620_suspend_fps_param[p]); | ||
624 | } | ||
625 | |||
626 | return 0; | ||
627 | }; | ||
628 | |||
629 | static int max77620_pinctrl_resume(struct device *dev) | ||
630 | { | ||
631 | struct max77620_pctrl_info *mpci = dev_get_drvdata(dev); | ||
632 | int pin, p; | ||
633 | |||
634 | for (pin = 0; pin < MAX77620_PIN_NUM; ++pin) { | ||
635 | if ((pin < MAX77620_GPIO1) || (pin > MAX77620_GPIO3)) | ||
636 | continue; | ||
637 | for (p = 0; p < 3; ++p) | ||
638 | max77620_set_fps_param( | ||
639 | mpci, pin, max77620_active_fps_param[p]); | ||
640 | } | ||
641 | |||
642 | return 0; | ||
643 | } | ||
644 | #endif | ||
645 | |||
646 | static const struct dev_pm_ops max77620_pinctrl_pm_ops = { | ||
647 | SET_SYSTEM_SLEEP_PM_OPS( | ||
648 | max77620_pinctrl_suspend, max77620_pinctrl_resume) | ||
649 | }; | ||
650 | |||
651 | static const struct platform_device_id max77620_pinctrl_devtype[] = { | ||
652 | { .name = "max77620-pinctrl", }, | ||
653 | { .name = "max20024-pinctrl", }, | ||
654 | {}, | ||
655 | }; | ||
656 | MODULE_DEVICE_TABLE(platform, max77620_pinctrl_devtype); | ||
657 | |||
658 | static struct platform_driver max77620_pinctrl_driver = { | ||
659 | .driver = { | ||
660 | .name = "max77620-pinctrl", | ||
661 | .pm = &max77620_pinctrl_pm_ops, | ||
662 | }, | ||
663 | .probe = max77620_pinctrl_probe, | ||
664 | .id_table = max77620_pinctrl_devtype, | ||
665 | }; | ||
666 | |||
667 | module_platform_driver(max77620_pinctrl_driver); | ||
668 | |||
669 | MODULE_DESCRIPTION("MAX77620/MAX20024 pin control driver"); | ||
670 | MODULE_AUTHOR("Chaitanya Bandi<bandik@nvidia.com>"); | ||
671 | MODULE_AUTHOR("Laxman Dewangan<ldewangan@nvidia.com>"); | ||
672 | MODULE_ALIAS("platform:max77620-pinctrl"); | ||
673 | MODULE_LICENSE("GPL v2"); | ||
diff --git a/drivers/pinctrl/pinctrl-oxnas.c b/drivers/pinctrl/pinctrl-oxnas.c new file mode 100644 index 000000000000..917a7d2535d7 --- /dev/null +++ b/drivers/pinctrl/pinctrl-oxnas.c | |||
@@ -0,0 +1,846 @@ | |||
1 | /* | ||
2 | * Oxford Semiconductor OXNAS SoC Family pinctrl driver | ||
3 | * | ||
4 | * Copyright (C) 2016 Neil Armstrong <narmstrong@baylibre.com> | ||
5 | * | ||
6 | * Based on pinctrl-pic32.c | ||
7 | * Joshua Henderson, <joshua.henderson@microchip.com> | ||
8 | * Copyright (C) 2015 Microchip Technology Inc. All rights reserved. | ||
9 | * | ||
10 | * This program is free software; you can distribute it and/or modify it | ||
11 | * under the terms of the GNU General Public License (Version 2) as | ||
12 | * published by the Free Software Foundation. | ||
13 | * | ||
14 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
15 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
16 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
17 | * for more details. | ||
18 | */ | ||
19 | #include <linux/gpio/driver.h> | ||
20 | #include <linux/interrupt.h> | ||
21 | #include <linux/io.h> | ||
22 | #include <linux/irq.h> | ||
23 | #include <linux/of.h> | ||
24 | #include <linux/of_device.h> | ||
25 | #include <linux/pinctrl/pinconf.h> | ||
26 | #include <linux/pinctrl/pinconf-generic.h> | ||
27 | #include <linux/pinctrl/pinctrl.h> | ||
28 | #include <linux/pinctrl/pinmux.h> | ||
29 | #include <linux/platform_device.h> | ||
30 | #include <linux/slab.h> | ||
31 | #include <linux/regmap.h> | ||
32 | #include <linux/mfd/syscon.h> | ||
33 | |||
34 | #include "pinctrl-utils.h" | ||
35 | |||
36 | #define PINS_PER_BANK 32 | ||
37 | |||
38 | #define GPIO_BANK_START(bank) ((bank) * PINS_PER_BANK) | ||
39 | |||
40 | /* Regmap Offsets */ | ||
41 | #define PINMUX_PRIMARY_SEL0 0x0c | ||
42 | #define PINMUX_SECONDARY_SEL0 0x14 | ||
43 | #define PINMUX_TERTIARY_SEL0 0x8c | ||
44 | #define PINMUX_PRIMARY_SEL1 0x10 | ||
45 | #define PINMUX_SECONDARY_SEL1 0x18 | ||
46 | #define PINMUX_TERTIARY_SEL1 0x90 | ||
47 | #define PINMUX_PULLUP_CTRL0 0xac | ||
48 | #define PINMUX_PULLUP_CTRL1 0xb0 | ||
49 | |||
50 | /* GPIO Registers */ | ||
51 | #define INPUT_VALUE 0x00 | ||
52 | #define OUTPUT_EN 0x04 | ||
53 | #define IRQ_PENDING 0x0c | ||
54 | #define OUTPUT_SET 0x14 | ||
55 | #define OUTPUT_CLEAR 0x18 | ||
56 | #define OUTPUT_EN_SET 0x1c | ||
57 | #define OUTPUT_EN_CLEAR 0x20 | ||
58 | #define RE_IRQ_ENABLE 0x28 | ||
59 | #define FE_IRQ_ENABLE 0x2c | ||
60 | |||
61 | struct oxnas_function { | ||
62 | const char *name; | ||
63 | const char * const *groups; | ||
64 | unsigned int ngroups; | ||
65 | }; | ||
66 | |||
67 | struct oxnas_pin_group { | ||
68 | const char *name; | ||
69 | unsigned int pin; | ||
70 | unsigned int bank; | ||
71 | struct oxnas_desc_function *functions; | ||
72 | }; | ||
73 | |||
74 | struct oxnas_desc_function { | ||
75 | const char *name; | ||
76 | unsigned int fct; | ||
77 | }; | ||
78 | |||
79 | struct oxnas_gpio_bank { | ||
80 | void __iomem *reg_base; | ||
81 | struct gpio_chip gpio_chip; | ||
82 | struct irq_chip irq_chip; | ||
83 | unsigned int id; | ||
84 | }; | ||
85 | |||
86 | struct oxnas_pinctrl { | ||
87 | struct regmap *regmap; | ||
88 | struct device *dev; | ||
89 | struct pinctrl_dev *pctldev; | ||
90 | const struct pinctrl_pin_desc *pins; | ||
91 | unsigned int npins; | ||
92 | const struct oxnas_function *functions; | ||
93 | unsigned int nfunctions; | ||
94 | const struct oxnas_pin_group *groups; | ||
95 | unsigned int ngroups; | ||
96 | struct oxnas_gpio_bank *gpio_banks; | ||
97 | unsigned int nbanks; | ||
98 | }; | ||
99 | |||
100 | static const struct pinctrl_pin_desc oxnas_pins[] = { | ||
101 | PINCTRL_PIN(0, "gpio0"), | ||
102 | PINCTRL_PIN(1, "gpio1"), | ||
103 | PINCTRL_PIN(2, "gpio2"), | ||
104 | PINCTRL_PIN(3, "gpio3"), | ||
105 | PINCTRL_PIN(4, "gpio4"), | ||
106 | PINCTRL_PIN(5, "gpio5"), | ||
107 | PINCTRL_PIN(6, "gpio6"), | ||
108 | PINCTRL_PIN(7, "gpio7"), | ||
109 | PINCTRL_PIN(8, "gpio8"), | ||
110 | PINCTRL_PIN(9, "gpio9"), | ||
111 | PINCTRL_PIN(10, "gpio10"), | ||
112 | PINCTRL_PIN(11, "gpio11"), | ||
113 | PINCTRL_PIN(12, "gpio12"), | ||
114 | PINCTRL_PIN(13, "gpio13"), | ||
115 | PINCTRL_PIN(14, "gpio14"), | ||
116 | PINCTRL_PIN(15, "gpio15"), | ||
117 | PINCTRL_PIN(16, "gpio16"), | ||
118 | PINCTRL_PIN(17, "gpio17"), | ||
119 | PINCTRL_PIN(18, "gpio18"), | ||
120 | PINCTRL_PIN(19, "gpio19"), | ||
121 | PINCTRL_PIN(20, "gpio20"), | ||
122 | PINCTRL_PIN(21, "gpio21"), | ||
123 | PINCTRL_PIN(22, "gpio22"), | ||
124 | PINCTRL_PIN(23, "gpio23"), | ||
125 | PINCTRL_PIN(24, "gpio24"), | ||
126 | PINCTRL_PIN(25, "gpio25"), | ||
127 | PINCTRL_PIN(26, "gpio26"), | ||
128 | PINCTRL_PIN(27, "gpio27"), | ||
129 | PINCTRL_PIN(28, "gpio28"), | ||
130 | PINCTRL_PIN(29, "gpio29"), | ||
131 | PINCTRL_PIN(30, "gpio30"), | ||
132 | PINCTRL_PIN(31, "gpio31"), | ||
133 | PINCTRL_PIN(32, "gpio32"), | ||
134 | PINCTRL_PIN(33, "gpio33"), | ||
135 | PINCTRL_PIN(34, "gpio34"), | ||
136 | }; | ||
137 | |||
138 | static const char * const oxnas_fct0_group[] = { | ||
139 | "gpio0", "gpio1", "gpio2", "gpio3", | ||
140 | "gpio4", "gpio5", "gpio6", "gpio7", | ||
141 | "gpio8", "gpio9", "gpio10", "gpio11", | ||
142 | "gpio12", "gpio13", "gpio14", "gpio15", | ||
143 | "gpio16", "gpio17", "gpio18", "gpio19", | ||
144 | "gpio20", "gpio21", "gpio22", "gpio23", | ||
145 | "gpio24", "gpio25", "gpio26", "gpio27", | ||
146 | "gpio28", "gpio29", "gpio30", "gpio31", | ||
147 | "gpio32", "gpio33", "gpio34" | ||
148 | }; | ||
149 | |||
150 | static const char * const oxnas_fct3_group[] = { | ||
151 | "gpio0", "gpio1", "gpio2", "gpio3", | ||
152 | "gpio4", "gpio5", "gpio6", "gpio7", | ||
153 | "gpio8", "gpio9", | ||
154 | "gpio20", | ||
155 | "gpio22", "gpio23", "gpio24", "gpio25", | ||
156 | "gpio26", "gpio27", "gpio28", "gpio29", | ||
157 | "gpio30", "gpio31", "gpio32", "gpio33", | ||
158 | "gpio34" | ||
159 | }; | ||
160 | |||
161 | #define FUNCTION(_name, _gr) \ | ||
162 | { \ | ||
163 | .name = #_name, \ | ||
164 | .groups = oxnas_##_gr##_group, \ | ||
165 | .ngroups = ARRAY_SIZE(oxnas_##_gr##_group), \ | ||
166 | } | ||
167 | |||
168 | static const struct oxnas_function oxnas_functions[] = { | ||
169 | FUNCTION(gpio, fct0), | ||
170 | FUNCTION(fct3, fct3), | ||
171 | }; | ||
172 | |||
173 | #define OXNAS_PINCTRL_GROUP(_pin, _name, ...) \ | ||
174 | { \ | ||
175 | .name = #_name, \ | ||
176 | .pin = _pin, \ | ||
177 | .bank = _pin / PINS_PER_BANK, \ | ||
178 | .functions = (struct oxnas_desc_function[]){ \ | ||
179 | __VA_ARGS__, { } }, \ | ||
180 | } | ||
181 | |||
182 | #define OXNAS_PINCTRL_FUNCTION(_name, _fct) \ | ||
183 | { \ | ||
184 | .name = #_name, \ | ||
185 | .fct = _fct, \ | ||
186 | } | ||
187 | |||
188 | static const struct oxnas_pin_group oxnas_groups[] = { | ||
189 | OXNAS_PINCTRL_GROUP(0, gpio0, | ||
190 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
191 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
192 | OXNAS_PINCTRL_GROUP(1, gpio1, | ||
193 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
194 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
195 | OXNAS_PINCTRL_GROUP(2, gpio2, | ||
196 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
197 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
198 | OXNAS_PINCTRL_GROUP(3, gpio3, | ||
199 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
200 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
201 | OXNAS_PINCTRL_GROUP(4, gpio4, | ||
202 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
203 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
204 | OXNAS_PINCTRL_GROUP(5, gpio5, | ||
205 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
206 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
207 | OXNAS_PINCTRL_GROUP(6, gpio6, | ||
208 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
209 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
210 | OXNAS_PINCTRL_GROUP(7, gpio7, | ||
211 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
212 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
213 | OXNAS_PINCTRL_GROUP(8, gpio8, | ||
214 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
215 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
216 | OXNAS_PINCTRL_GROUP(9, gpio9, | ||
217 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
218 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
219 | OXNAS_PINCTRL_GROUP(10, gpio10, | ||
220 | OXNAS_PINCTRL_FUNCTION(gpio, 0)), | ||
221 | OXNAS_PINCTRL_GROUP(11, gpio11, | ||
222 | OXNAS_PINCTRL_FUNCTION(gpio, 0)), | ||
223 | OXNAS_PINCTRL_GROUP(12, gpio12, | ||
224 | OXNAS_PINCTRL_FUNCTION(gpio, 0)), | ||
225 | OXNAS_PINCTRL_GROUP(13, gpio13, | ||
226 | OXNAS_PINCTRL_FUNCTION(gpio, 0)), | ||
227 | OXNAS_PINCTRL_GROUP(14, gpio14, | ||
228 | OXNAS_PINCTRL_FUNCTION(gpio, 0)), | ||
229 | OXNAS_PINCTRL_GROUP(15, gpio15, | ||
230 | OXNAS_PINCTRL_FUNCTION(gpio, 0)), | ||
231 | OXNAS_PINCTRL_GROUP(16, gpio16, | ||
232 | OXNAS_PINCTRL_FUNCTION(gpio, 0)), | ||
233 | OXNAS_PINCTRL_GROUP(17, gpio17, | ||
234 | OXNAS_PINCTRL_FUNCTION(gpio, 0)), | ||
235 | OXNAS_PINCTRL_GROUP(18, gpio18, | ||
236 | OXNAS_PINCTRL_FUNCTION(gpio, 0)), | ||
237 | OXNAS_PINCTRL_GROUP(19, gpio19, | ||
238 | OXNAS_PINCTRL_FUNCTION(gpio, 0)), | ||
239 | OXNAS_PINCTRL_GROUP(20, gpio20, | ||
240 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
241 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
242 | OXNAS_PINCTRL_GROUP(21, gpio21, | ||
243 | OXNAS_PINCTRL_FUNCTION(gpio, 0)), | ||
244 | OXNAS_PINCTRL_GROUP(22, gpio22, | ||
245 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
246 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
247 | OXNAS_PINCTRL_GROUP(23, gpio23, | ||
248 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
249 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
250 | OXNAS_PINCTRL_GROUP(24, gpio24, | ||
251 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
252 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
253 | OXNAS_PINCTRL_GROUP(25, gpio25, | ||
254 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
255 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
256 | OXNAS_PINCTRL_GROUP(26, gpio26, | ||
257 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
258 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
259 | OXNAS_PINCTRL_GROUP(27, gpio27, | ||
260 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
261 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
262 | OXNAS_PINCTRL_GROUP(28, gpio28, | ||
263 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
264 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
265 | OXNAS_PINCTRL_GROUP(29, gpio29, | ||
266 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
267 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
268 | OXNAS_PINCTRL_GROUP(30, gpio30, | ||
269 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
270 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
271 | OXNAS_PINCTRL_GROUP(31, gpio31, | ||
272 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
273 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
274 | OXNAS_PINCTRL_GROUP(32, gpio32, | ||
275 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
276 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
277 | OXNAS_PINCTRL_GROUP(33, gpio33, | ||
278 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
279 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
280 | OXNAS_PINCTRL_GROUP(34, gpio34, | ||
281 | OXNAS_PINCTRL_FUNCTION(gpio, 0), | ||
282 | OXNAS_PINCTRL_FUNCTION(fct3, 3)), | ||
283 | }; | ||
284 | |||
285 | static inline struct oxnas_gpio_bank *pctl_to_bank(struct oxnas_pinctrl *pctl, | ||
286 | unsigned int pin) | ||
287 | { | ||
288 | return &pctl->gpio_banks[pin / PINS_PER_BANK]; | ||
289 | } | ||
290 | |||
291 | static int oxnas_pinctrl_get_groups_count(struct pinctrl_dev *pctldev) | ||
292 | { | ||
293 | struct oxnas_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); | ||
294 | |||
295 | return pctl->ngroups; | ||
296 | } | ||
297 | |||
298 | static const char *oxnas_pinctrl_get_group_name(struct pinctrl_dev *pctldev, | ||
299 | unsigned int group) | ||
300 | { | ||
301 | struct oxnas_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); | ||
302 | |||
303 | return pctl->groups[group].name; | ||
304 | } | ||
305 | |||
306 | static int oxnas_pinctrl_get_group_pins(struct pinctrl_dev *pctldev, | ||
307 | unsigned int group, | ||
308 | const unsigned int **pins, | ||
309 | unsigned int *num_pins) | ||
310 | { | ||
311 | struct oxnas_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); | ||
312 | |||
313 | *pins = &pctl->groups[group].pin; | ||
314 | *num_pins = 1; | ||
315 | |||
316 | return 0; | ||
317 | } | ||
318 | |||
319 | static const struct pinctrl_ops oxnas_pinctrl_ops = { | ||
320 | .get_groups_count = oxnas_pinctrl_get_groups_count, | ||
321 | .get_group_name = oxnas_pinctrl_get_group_name, | ||
322 | .get_group_pins = oxnas_pinctrl_get_group_pins, | ||
323 | .dt_node_to_map = pinconf_generic_dt_node_to_map_pin, | ||
324 | .dt_free_map = pinctrl_utils_free_map, | ||
325 | }; | ||
326 | |||
327 | static int oxnas_pinmux_get_functions_count(struct pinctrl_dev *pctldev) | ||
328 | { | ||
329 | struct oxnas_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); | ||
330 | |||
331 | return pctl->nfunctions; | ||
332 | } | ||
333 | |||
334 | static const char * | ||
335 | oxnas_pinmux_get_function_name(struct pinctrl_dev *pctldev, unsigned int func) | ||
336 | { | ||
337 | struct oxnas_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); | ||
338 | |||
339 | return pctl->functions[func].name; | ||
340 | } | ||
341 | |||
342 | static int oxnas_pinmux_get_function_groups(struct pinctrl_dev *pctldev, | ||
343 | unsigned int func, | ||
344 | const char * const **groups, | ||
345 | unsigned int * const num_groups) | ||
346 | { | ||
347 | struct oxnas_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); | ||
348 | |||
349 | *groups = pctl->functions[func].groups; | ||
350 | *num_groups = pctl->functions[func].ngroups; | ||
351 | |||
352 | return 0; | ||
353 | } | ||
354 | |||
355 | static int oxnas_pinmux_enable(struct pinctrl_dev *pctldev, | ||
356 | unsigned int func, unsigned int group) | ||
357 | { | ||
358 | struct oxnas_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); | ||
359 | const struct oxnas_pin_group *pg = &pctl->groups[group]; | ||
360 | const struct oxnas_function *pf = &pctl->functions[func]; | ||
361 | const char *fname = pf->name; | ||
362 | struct oxnas_desc_function *functions = pg->functions; | ||
363 | u32 mask = BIT(pg->pin); | ||
364 | |||
365 | while (functions->name) { | ||
366 | if (!strcmp(functions->name, fname)) { | ||
367 | dev_dbg(pctl->dev, | ||
368 | "setting function %s bank %d pin %d fct %d mask %x\n", | ||
369 | fname, pg->bank, pg->pin, | ||
370 | functions->fct, mask); | ||
371 | |||
372 | regmap_write_bits(pctl->regmap, | ||
373 | (pg->bank ? | ||
374 | PINMUX_PRIMARY_SEL1 : | ||
375 | PINMUX_PRIMARY_SEL0), | ||
376 | mask, | ||
377 | (functions->fct == 1 ? | ||
378 | mask : 0)); | ||
379 | regmap_write_bits(pctl->regmap, | ||
380 | (pg->bank ? | ||
381 | PINMUX_SECONDARY_SEL1 : | ||
382 | PINMUX_SECONDARY_SEL0), | ||
383 | mask, | ||
384 | (functions->fct == 2 ? | ||
385 | mask : 0)); | ||
386 | regmap_write_bits(pctl->regmap, | ||
387 | (pg->bank ? | ||
388 | PINMUX_TERTIARY_SEL1 : | ||
389 | PINMUX_TERTIARY_SEL0), | ||
390 | mask, | ||
391 | (functions->fct == 3 ? | ||
392 | mask : 0)); | ||
393 | |||
394 | return 0; | ||
395 | } | ||
396 | |||
397 | functions++; | ||
398 | } | ||
399 | |||
400 | dev_err(pctl->dev, "cannot mux pin %u to function %u\n", group, func); | ||
401 | |||
402 | return -EINVAL; | ||
403 | } | ||
404 | |||
405 | static int oxnas_gpio_request_enable(struct pinctrl_dev *pctldev, | ||
406 | struct pinctrl_gpio_range *range, | ||
407 | unsigned int offset) | ||
408 | { | ||
409 | struct oxnas_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); | ||
410 | struct oxnas_gpio_bank *bank = gpiochip_get_data(range->gc); | ||
411 | u32 mask = BIT(offset - bank->gpio_chip.base); | ||
412 | |||
413 | dev_dbg(pctl->dev, "requesting gpio %d in bank %d (id %d) with mask 0x%x\n", | ||
414 | offset, bank->gpio_chip.base, bank->id, mask); | ||
415 | |||
416 | regmap_write_bits(pctl->regmap, | ||
417 | (bank->id ? | ||
418 | PINMUX_PRIMARY_SEL1 : | ||
419 | PINMUX_PRIMARY_SEL0), | ||
420 | mask, 0); | ||
421 | regmap_write_bits(pctl->regmap, | ||
422 | (bank->id ? | ||
423 | PINMUX_SECONDARY_SEL1 : | ||
424 | PINMUX_SECONDARY_SEL0), | ||
425 | mask, 0); | ||
426 | regmap_write_bits(pctl->regmap, | ||
427 | (bank->id ? | ||
428 | PINMUX_TERTIARY_SEL1 : | ||
429 | PINMUX_TERTIARY_SEL0), | ||
430 | mask, 0); | ||
431 | |||
432 | return 0; | ||
433 | } | ||
434 | |||
435 | static int oxnas_gpio_get_direction(struct gpio_chip *chip, | ||
436 | unsigned int offset) | ||
437 | { | ||
438 | struct oxnas_gpio_bank *bank = gpiochip_get_data(chip); | ||
439 | u32 mask = BIT(offset); | ||
440 | |||
441 | return !(readl_relaxed(bank->reg_base + OUTPUT_EN) & mask); | ||
442 | } | ||
443 | |||
444 | static int oxnas_gpio_direction_input(struct gpio_chip *chip, | ||
445 | unsigned int offset) | ||
446 | { | ||
447 | struct oxnas_gpio_bank *bank = gpiochip_get_data(chip); | ||
448 | u32 mask = BIT(offset); | ||
449 | |||
450 | writel_relaxed(mask, bank->reg_base + OUTPUT_EN_CLEAR); | ||
451 | |||
452 | return 0; | ||
453 | } | ||
454 | |||
455 | static int oxnas_gpio_get(struct gpio_chip *chip, unsigned int offset) | ||
456 | { | ||
457 | struct oxnas_gpio_bank *bank = gpiochip_get_data(chip); | ||
458 | u32 mask = BIT(offset); | ||
459 | |||
460 | return (readl_relaxed(bank->reg_base + INPUT_VALUE) & mask) != 0; | ||
461 | } | ||
462 | |||
463 | static void oxnas_gpio_set(struct gpio_chip *chip, unsigned int offset, | ||
464 | int value) | ||
465 | { | ||
466 | struct oxnas_gpio_bank *bank = gpiochip_get_data(chip); | ||
467 | u32 mask = BIT(offset); | ||
468 | |||
469 | if (value) | ||
470 | writel_relaxed(mask, bank->reg_base + OUTPUT_SET); | ||
471 | else | ||
472 | writel_relaxed(mask, bank->reg_base + OUTPUT_CLEAR); | ||
473 | } | ||
474 | |||
475 | static int oxnas_gpio_direction_output(struct gpio_chip *chip, | ||
476 | unsigned int offset, int value) | ||
477 | { | ||
478 | struct oxnas_gpio_bank *bank = gpiochip_get_data(chip); | ||
479 | u32 mask = BIT(offset); | ||
480 | |||
481 | oxnas_gpio_set(chip, offset, value); | ||
482 | writel_relaxed(mask, bank->reg_base + OUTPUT_EN_SET); | ||
483 | |||
484 | return 0; | ||
485 | } | ||
486 | |||
487 | static int oxnas_gpio_set_direction(struct pinctrl_dev *pctldev, | ||
488 | struct pinctrl_gpio_range *range, | ||
489 | unsigned int offset, bool input) | ||
490 | { | ||
491 | struct gpio_chip *chip = range->gc; | ||
492 | |||
493 | if (input) | ||
494 | oxnas_gpio_direction_input(chip, offset); | ||
495 | else | ||
496 | oxnas_gpio_direction_output(chip, offset, 0); | ||
497 | |||
498 | return 0; | ||
499 | } | ||
500 | |||
501 | static const struct pinmux_ops oxnas_pinmux_ops = { | ||
502 | .get_functions_count = oxnas_pinmux_get_functions_count, | ||
503 | .get_function_name = oxnas_pinmux_get_function_name, | ||
504 | .get_function_groups = oxnas_pinmux_get_function_groups, | ||
505 | .set_mux = oxnas_pinmux_enable, | ||
506 | .gpio_request_enable = oxnas_gpio_request_enable, | ||
507 | .gpio_set_direction = oxnas_gpio_set_direction, | ||
508 | }; | ||
509 | |||
510 | static int oxnas_pinconf_get(struct pinctrl_dev *pctldev, unsigned int pin, | ||
511 | unsigned long *config) | ||
512 | { | ||
513 | struct oxnas_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); | ||
514 | struct oxnas_gpio_bank *bank = pctl_to_bank(pctl, pin); | ||
515 | unsigned int param = pinconf_to_config_param(*config); | ||
516 | u32 mask = BIT(pin - bank->gpio_chip.base); | ||
517 | int ret; | ||
518 | u32 arg; | ||
519 | |||
520 | switch (param) { | ||
521 | case PIN_CONFIG_BIAS_PULL_UP: | ||
522 | ret = regmap_read(pctl->regmap, | ||
523 | (bank->id ? | ||
524 | PINMUX_PULLUP_CTRL1 : | ||
525 | PINMUX_PULLUP_CTRL0), | ||
526 | &arg); | ||
527 | if (ret) | ||
528 | return ret; | ||
529 | |||
530 | arg = !!(arg & mask); | ||
531 | break; | ||
532 | default: | ||
533 | return -ENOTSUPP; | ||
534 | } | ||
535 | |||
536 | *config = pinconf_to_config_packed(param, arg); | ||
537 | |||
538 | return 0; | ||
539 | } | ||
540 | |||
541 | static int oxnas_pinconf_set(struct pinctrl_dev *pctldev, unsigned int pin, | ||
542 | unsigned long *configs, unsigned int num_configs) | ||
543 | { | ||
544 | struct oxnas_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); | ||
545 | struct oxnas_gpio_bank *bank = pctl_to_bank(pctl, pin); | ||
546 | unsigned int param; | ||
547 | u32 arg; | ||
548 | unsigned int i; | ||
549 | u32 offset = pin - bank->gpio_chip.base; | ||
550 | u32 mask = BIT(offset); | ||
551 | |||
552 | dev_dbg(pctl->dev, "setting pin %d bank %d mask 0x%x\n", | ||
553 | pin, bank->gpio_chip.base, mask); | ||
554 | |||
555 | for (i = 0; i < num_configs; i++) { | ||
556 | param = pinconf_to_config_param(configs[i]); | ||
557 | arg = pinconf_to_config_argument(configs[i]); | ||
558 | |||
559 | switch (param) { | ||
560 | case PIN_CONFIG_BIAS_PULL_UP: | ||
561 | dev_dbg(pctl->dev, " pullup\n"); | ||
562 | regmap_write_bits(pctl->regmap, | ||
563 | (bank->id ? | ||
564 | PINMUX_PULLUP_CTRL1 : | ||
565 | PINMUX_PULLUP_CTRL0), | ||
566 | mask, mask); | ||
567 | break; | ||
568 | default: | ||
569 | dev_err(pctl->dev, "Property %u not supported\n", | ||
570 | param); | ||
571 | return -ENOTSUPP; | ||
572 | } | ||
573 | } | ||
574 | |||
575 | return 0; | ||
576 | } | ||
577 | |||
578 | static const struct pinconf_ops oxnas_pinconf_ops = { | ||
579 | .pin_config_get = oxnas_pinconf_get, | ||
580 | .pin_config_set = oxnas_pinconf_set, | ||
581 | .is_generic = true, | ||
582 | }; | ||
583 | |||
584 | static struct pinctrl_desc oxnas_pinctrl_desc = { | ||
585 | .name = "oxnas-pinctrl", | ||
586 | .pctlops = &oxnas_pinctrl_ops, | ||
587 | .pmxops = &oxnas_pinmux_ops, | ||
588 | .confops = &oxnas_pinconf_ops, | ||
589 | .owner = THIS_MODULE, | ||
590 | }; | ||
591 | |||
592 | static void oxnas_gpio_irq_ack(struct irq_data *data) | ||
593 | { | ||
594 | struct gpio_chip *chip = irq_data_get_irq_chip_data(data); | ||
595 | struct oxnas_gpio_bank *bank = gpiochip_get_data(chip); | ||
596 | u32 mask = BIT(data->hwirq); | ||
597 | |||
598 | writel(mask, bank->reg_base + IRQ_PENDING); | ||
599 | } | ||
600 | |||
601 | static void oxnas_gpio_irq_mask(struct irq_data *data) | ||
602 | { | ||
603 | struct gpio_chip *chip = irq_data_get_irq_chip_data(data); | ||
604 | struct oxnas_gpio_bank *bank = gpiochip_get_data(chip); | ||
605 | unsigned int type = irqd_get_trigger_type(data); | ||
606 | u32 mask = BIT(data->hwirq); | ||
607 | |||
608 | if (type & IRQ_TYPE_EDGE_RISING) | ||
609 | writel(readl(bank->reg_base + RE_IRQ_ENABLE) & ~mask, | ||
610 | bank->reg_base + RE_IRQ_ENABLE); | ||
611 | |||
612 | if (type & IRQ_TYPE_EDGE_FALLING) | ||
613 | writel(readl(bank->reg_base + FE_IRQ_ENABLE) & ~mask, | ||
614 | bank->reg_base + FE_IRQ_ENABLE); | ||
615 | } | ||
616 | |||
617 | static void oxnas_gpio_irq_unmask(struct irq_data *data) | ||
618 | { | ||
619 | struct gpio_chip *chip = irq_data_get_irq_chip_data(data); | ||
620 | struct oxnas_gpio_bank *bank = gpiochip_get_data(chip); | ||
621 | unsigned int type = irqd_get_trigger_type(data); | ||
622 | u32 mask = BIT(data->hwirq); | ||
623 | |||
624 | if (type & IRQ_TYPE_EDGE_RISING) | ||
625 | writel(readl(bank->reg_base + RE_IRQ_ENABLE) | mask, | ||
626 | bank->reg_base + RE_IRQ_ENABLE); | ||
627 | |||
628 | if (type & IRQ_TYPE_EDGE_FALLING) | ||
629 | writel(readl(bank->reg_base + FE_IRQ_ENABLE) | mask, | ||
630 | bank->reg_base + FE_IRQ_ENABLE); | ||
631 | } | ||
632 | |||
633 | static unsigned int oxnas_gpio_irq_startup(struct irq_data *data) | ||
634 | { | ||
635 | struct gpio_chip *chip = irq_data_get_irq_chip_data(data); | ||
636 | |||
637 | oxnas_gpio_direction_input(chip, data->hwirq); | ||
638 | oxnas_gpio_irq_unmask(data); | ||
639 | |||
640 | return 0; | ||
641 | } | ||
642 | |||
643 | static int oxnas_gpio_irq_set_type(struct irq_data *data, unsigned int type) | ||
644 | { | ||
645 | if ((type & (IRQ_TYPE_EDGE_RISING|IRQ_TYPE_EDGE_FALLING)) == 0) | ||
646 | return -EINVAL; | ||
647 | |||
648 | irq_set_handler_locked(data, handle_edge_irq); | ||
649 | |||
650 | return 0; | ||
651 | } | ||
652 | |||
653 | static void oxnas_gpio_irq_handler(struct irq_desc *desc) | ||
654 | { | ||
655 | struct gpio_chip *gc = irq_desc_get_handler_data(desc); | ||
656 | struct oxnas_gpio_bank *bank = gpiochip_get_data(gc); | ||
657 | struct irq_chip *chip = irq_desc_get_chip(desc); | ||
658 | unsigned long stat; | ||
659 | unsigned int pin; | ||
660 | |||
661 | chained_irq_enter(chip, desc); | ||
662 | |||
663 | stat = readl(bank->reg_base + IRQ_PENDING); | ||
664 | |||
665 | for_each_set_bit(pin, &stat, BITS_PER_LONG) | ||
666 | generic_handle_irq(irq_linear_revmap(gc->irqdomain, pin)); | ||
667 | |||
668 | chained_irq_exit(chip, desc); | ||
669 | } | ||
670 | |||
671 | #define GPIO_BANK(_bank) \ | ||
672 | { \ | ||
673 | .gpio_chip = { \ | ||
674 | .label = "GPIO" #_bank, \ | ||
675 | .request = gpiochip_generic_request, \ | ||
676 | .free = gpiochip_generic_free, \ | ||
677 | .get_direction = oxnas_gpio_get_direction, \ | ||
678 | .direction_input = oxnas_gpio_direction_input, \ | ||
679 | .direction_output = oxnas_gpio_direction_output, \ | ||
680 | .get = oxnas_gpio_get, \ | ||
681 | .set = oxnas_gpio_set, \ | ||
682 | .ngpio = PINS_PER_BANK, \ | ||
683 | .base = GPIO_BANK_START(_bank), \ | ||
684 | .owner = THIS_MODULE, \ | ||
685 | .can_sleep = 0, \ | ||
686 | }, \ | ||
687 | .irq_chip = { \ | ||
688 | .name = "GPIO" #_bank, \ | ||
689 | .irq_startup = oxnas_gpio_irq_startup, \ | ||
690 | .irq_ack = oxnas_gpio_irq_ack, \ | ||
691 | .irq_mask = oxnas_gpio_irq_mask, \ | ||
692 | .irq_unmask = oxnas_gpio_irq_unmask, \ | ||
693 | .irq_set_type = oxnas_gpio_irq_set_type, \ | ||
694 | }, \ | ||
695 | } | ||
696 | |||
697 | static struct oxnas_gpio_bank oxnas_gpio_banks[] = { | ||
698 | GPIO_BANK(0), | ||
699 | GPIO_BANK(1), | ||
700 | }; | ||
701 | |||
702 | static int oxnas_pinctrl_probe(struct platform_device *pdev) | ||
703 | { | ||
704 | struct oxnas_pinctrl *pctl; | ||
705 | |||
706 | pctl = devm_kzalloc(&pdev->dev, sizeof(*pctl), GFP_KERNEL); | ||
707 | if (!pctl) | ||
708 | return -ENOMEM; | ||
709 | pctl->dev = &pdev->dev; | ||
710 | dev_set_drvdata(&pdev->dev, pctl); | ||
711 | |||
712 | pctl->regmap = syscon_regmap_lookup_by_phandle(pdev->dev.of_node, | ||
713 | "oxsemi,sys-ctrl"); | ||
714 | if (IS_ERR(pctl->regmap)) { | ||
715 | dev_err(&pdev->dev, "failed to get sys ctrl regmap\n"); | ||
716 | return -ENODEV; | ||
717 | } | ||
718 | |||
719 | pctl->pins = oxnas_pins; | ||
720 | pctl->npins = ARRAY_SIZE(oxnas_pins); | ||
721 | pctl->functions = oxnas_functions; | ||
722 | pctl->nfunctions = ARRAY_SIZE(oxnas_functions); | ||
723 | pctl->groups = oxnas_groups; | ||
724 | pctl->ngroups = ARRAY_SIZE(oxnas_groups); | ||
725 | pctl->gpio_banks = oxnas_gpio_banks; | ||
726 | pctl->nbanks = ARRAY_SIZE(oxnas_gpio_banks); | ||
727 | |||
728 | oxnas_pinctrl_desc.pins = pctl->pins; | ||
729 | oxnas_pinctrl_desc.npins = pctl->npins; | ||
730 | |||
731 | pctl->pctldev = pinctrl_register(&oxnas_pinctrl_desc, | ||
732 | &pdev->dev, pctl); | ||
733 | if (IS_ERR(pctl->pctldev)) { | ||
734 | dev_err(&pdev->dev, "Failed to register pinctrl device\n"); | ||
735 | return PTR_ERR(pctl->pctldev); | ||
736 | } | ||
737 | |||
738 | return 0; | ||
739 | } | ||
740 | |||
741 | static int oxnas_gpio_probe(struct platform_device *pdev) | ||
742 | { | ||
743 | struct device_node *np = pdev->dev.of_node; | ||
744 | struct of_phandle_args pinspec; | ||
745 | struct oxnas_gpio_bank *bank; | ||
746 | unsigned int id, ngpios; | ||
747 | int irq, ret; | ||
748 | struct resource *res; | ||
749 | |||
750 | if (of_parse_phandle_with_fixed_args(np, "gpio-ranges", | ||
751 | 3, 0, &pinspec)) { | ||
752 | dev_err(&pdev->dev, "gpio-ranges property not found\n"); | ||
753 | return -EINVAL; | ||
754 | } | ||
755 | |||
756 | id = pinspec.args[1] / PINS_PER_BANK; | ||
757 | ngpios = pinspec.args[2]; | ||
758 | |||
759 | if (id >= ARRAY_SIZE(oxnas_gpio_banks)) { | ||
760 | dev_err(&pdev->dev, "invalid gpio-ranges base arg\n"); | ||
761 | return -EINVAL; | ||
762 | } | ||
763 | |||
764 | if (ngpios > PINS_PER_BANK) { | ||
765 | dev_err(&pdev->dev, "invalid gpio-ranges count arg\n"); | ||
766 | return -EINVAL; | ||
767 | } | ||
768 | |||
769 | bank = &oxnas_gpio_banks[id]; | ||
770 | |||
771 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | ||
772 | bank->reg_base = devm_ioremap_resource(&pdev->dev, res); | ||
773 | if (IS_ERR(bank->reg_base)) | ||
774 | return PTR_ERR(bank->reg_base); | ||
775 | |||
776 | irq = platform_get_irq(pdev, 0); | ||
777 | if (irq < 0) { | ||
778 | dev_err(&pdev->dev, "irq get failed\n"); | ||
779 | return irq; | ||
780 | } | ||
781 | |||
782 | bank->id = id; | ||
783 | bank->gpio_chip.parent = &pdev->dev; | ||
784 | bank->gpio_chip.of_node = np; | ||
785 | bank->gpio_chip.ngpio = ngpios; | ||
786 | ret = gpiochip_add_data(&bank->gpio_chip, bank); | ||
787 | if (ret < 0) { | ||
788 | dev_err(&pdev->dev, "Failed to add GPIO chip %u: %d\n", | ||
789 | id, ret); | ||
790 | return ret; | ||
791 | } | ||
792 | |||
793 | ret = gpiochip_irqchip_add(&bank->gpio_chip, &bank->irq_chip, | ||
794 | 0, handle_level_irq, IRQ_TYPE_NONE); | ||
795 | if (ret < 0) { | ||
796 | dev_err(&pdev->dev, "Failed to add IRQ chip %u: %d\n", | ||
797 | id, ret); | ||
798 | gpiochip_remove(&bank->gpio_chip); | ||
799 | return ret; | ||
800 | } | ||
801 | |||
802 | gpiochip_set_chained_irqchip(&bank->gpio_chip, &bank->irq_chip, | ||
803 | irq, oxnas_gpio_irq_handler); | ||
804 | |||
805 | return 0; | ||
806 | } | ||
807 | |||
808 | static const struct of_device_id oxnas_pinctrl_of_match[] = { | ||
809 | { .compatible = "oxsemi,ox810se-pinctrl", }, | ||
810 | { }, | ||
811 | }; | ||
812 | |||
813 | static struct platform_driver oxnas_pinctrl_driver = { | ||
814 | .driver = { | ||
815 | .name = "oxnas-pinctrl", | ||
816 | .of_match_table = oxnas_pinctrl_of_match, | ||
817 | .suppress_bind_attrs = true, | ||
818 | }, | ||
819 | .probe = oxnas_pinctrl_probe, | ||
820 | }; | ||
821 | |||
822 | static const struct of_device_id oxnas_gpio_of_match[] = { | ||
823 | { .compatible = "oxsemi,ox810se-gpio", }, | ||
824 | { }, | ||
825 | }; | ||
826 | |||
827 | static struct platform_driver oxnas_gpio_driver = { | ||
828 | .driver = { | ||
829 | .name = "oxnas-gpio", | ||
830 | .of_match_table = oxnas_gpio_of_match, | ||
831 | .suppress_bind_attrs = true, | ||
832 | }, | ||
833 | .probe = oxnas_gpio_probe, | ||
834 | }; | ||
835 | |||
836 | static int __init oxnas_gpio_register(void) | ||
837 | { | ||
838 | return platform_driver_register(&oxnas_gpio_driver); | ||
839 | } | ||
840 | arch_initcall(oxnas_gpio_register); | ||
841 | |||
842 | static int __init oxnas_pinctrl_register(void) | ||
843 | { | ||
844 | return platform_driver_register(&oxnas_pinctrl_driver); | ||
845 | } | ||
846 | arch_initcall(oxnas_pinctrl_register); | ||
diff --git a/drivers/pinctrl/pinctrl-rockchip.c b/drivers/pinctrl/pinctrl-rockchip.c index a91026e8cd7c..44902c63f507 100644 --- a/drivers/pinctrl/pinctrl-rockchip.c +++ b/drivers/pinctrl/pinctrl-rockchip.c | |||
@@ -360,7 +360,7 @@ static struct regmap_config rockchip_regmap_config = { | |||
360 | .reg_stride = 4, | 360 | .reg_stride = 4, |
361 | }; | 361 | }; |
362 | 362 | ||
363 | static const inline struct rockchip_pin_group *pinctrl_name_to_group( | 363 | static inline const struct rockchip_pin_group *pinctrl_name_to_group( |
364 | const struct rockchip_pinctrl *info, | 364 | const struct rockchip_pinctrl *info, |
365 | const char *name) | 365 | const char *name) |
366 | { | 366 | { |
@@ -2007,7 +2007,7 @@ static void rockchip_irq_gc_mask_clr_bit(struct irq_data *d) | |||
2007 | irq_gc_mask_clr_bit(d); | 2007 | irq_gc_mask_clr_bit(d); |
2008 | } | 2008 | } |
2009 | 2009 | ||
2010 | void rockchip_irq_gc_mask_set_bit(struct irq_data *d) | 2010 | static void rockchip_irq_gc_mask_set_bit(struct irq_data *d) |
2011 | { | 2011 | { |
2012 | struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d); | 2012 | struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d); |
2013 | struct rockchip_pin_bank *bank = gc->private; | 2013 | struct rockchip_pin_bank *bank = gc->private; |
diff --git a/drivers/pinctrl/pinctrl-st.c b/drivers/pinctrl/pinctrl-st.c index d0ba968af5bb..0de1c67dfb94 100644 --- a/drivers/pinctrl/pinctrl-st.c +++ b/drivers/pinctrl/pinctrl-st.c | |||
@@ -844,7 +844,7 @@ static int st_pctl_get_group_pins(struct pinctrl_dev *pctldev, | |||
844 | return 0; | 844 | return 0; |
845 | } | 845 | } |
846 | 846 | ||
847 | static const inline struct st_pctl_group *st_pctl_find_group_by_name( | 847 | static inline const struct st_pctl_group *st_pctl_find_group_by_name( |
848 | const struct st_pinctrl *info, const char *name) | 848 | const struct st_pinctrl *info, const char *name) |
849 | { | 849 | { |
850 | int i; | 850 | int i; |
diff --git a/drivers/pinctrl/pinctrl-u300.c b/drivers/pinctrl/pinctrl-u300.c index d1af908a7060..9cc80a500880 100644 --- a/drivers/pinctrl/pinctrl-u300.c +++ b/drivers/pinctrl/pinctrl-u300.c | |||
@@ -670,7 +670,7 @@ struct u300_pmx { | |||
670 | * u300_pmx_registers - the array of registers read/written for each pinmux | 670 | * u300_pmx_registers - the array of registers read/written for each pinmux |
671 | * shunt setting | 671 | * shunt setting |
672 | */ | 672 | */ |
673 | const u32 u300_pmx_registers[] = { | 673 | static const u32 u300_pmx_registers[] = { |
674 | U300_SYSCON_PMC1LR, | 674 | U300_SYSCON_PMC1LR, |
675 | U300_SYSCON_PMC1HR, | 675 | U300_SYSCON_PMC1HR, |
676 | U300_SYSCON_PMC2R, | 676 | U300_SYSCON_PMC2R, |
diff --git a/drivers/pinctrl/pinctrl-xway.c b/drivers/pinctrl/pinctrl-xway.c index b9375544dff0..dd85ad1807f5 100644 --- a/drivers/pinctrl/pinctrl-xway.c +++ b/drivers/pinctrl/pinctrl-xway.c | |||
@@ -1616,50 +1616,74 @@ struct pinctrl_xway_soc { | |||
1616 | 1616 | ||
1617 | /* xway xr9 series (DEPRECATED: Use XWAY xRX100/xRX200 Family) */ | 1617 | /* xway xr9 series (DEPRECATED: Use XWAY xRX100/xRX200 Family) */ |
1618 | static struct pinctrl_xway_soc xr9_pinctrl = { | 1618 | static struct pinctrl_xway_soc xr9_pinctrl = { |
1619 | XR9_MAX_PIN, xway_mfp, | 1619 | .pin_count = XR9_MAX_PIN, |
1620 | xway_grps, ARRAY_SIZE(xway_grps), | 1620 | .mfp = xway_mfp, |
1621 | xrx_funcs, ARRAY_SIZE(xrx_funcs), | 1621 | .grps = xway_grps, |
1622 | xway_exin_pin_map, 6 | 1622 | .num_grps = ARRAY_SIZE(xway_grps), |
1623 | .funcs = xrx_funcs, | ||
1624 | .num_funcs = ARRAY_SIZE(xrx_funcs), | ||
1625 | .exin = xway_exin_pin_map, | ||
1626 | .num_exin = 6 | ||
1623 | }; | 1627 | }; |
1624 | 1628 | ||
1625 | /* XWAY AMAZON Family */ | 1629 | /* XWAY AMAZON Family */ |
1626 | static struct pinctrl_xway_soc ase_pinctrl = { | 1630 | static struct pinctrl_xway_soc ase_pinctrl = { |
1627 | ASE_MAX_PIN, ase_mfp, | 1631 | .pin_count = ASE_MAX_PIN, |
1628 | ase_grps, ARRAY_SIZE(ase_grps), | 1632 | .mfp = ase_mfp, |
1629 | ase_funcs, ARRAY_SIZE(ase_funcs), | 1633 | .grps = ase_grps, |
1630 | ase_exin_pin_map, 3 | 1634 | .num_grps = ARRAY_SIZE(ase_grps), |
1635 | .funcs = ase_funcs, | ||
1636 | .num_funcs = ARRAY_SIZE(ase_funcs), | ||
1637 | .exin = ase_exin_pin_map, | ||
1638 | .num_exin = 3 | ||
1631 | }; | 1639 | }; |
1632 | 1640 | ||
1633 | /* XWAY DANUBE Family */ | 1641 | /* XWAY DANUBE Family */ |
1634 | static struct pinctrl_xway_soc danube_pinctrl = { | 1642 | static struct pinctrl_xway_soc danube_pinctrl = { |
1635 | DANUBE_MAX_PIN, danube_mfp, | 1643 | .pin_count = DANUBE_MAX_PIN, |
1636 | danube_grps, ARRAY_SIZE(danube_grps), | 1644 | .mfp = danube_mfp, |
1637 | danube_funcs, ARRAY_SIZE(danube_funcs), | 1645 | .grps = danube_grps, |
1638 | danube_exin_pin_map, 3 | 1646 | .num_grps = ARRAY_SIZE(danube_grps), |
1647 | .funcs = danube_funcs, | ||
1648 | .num_funcs = ARRAY_SIZE(danube_funcs), | ||
1649 | .exin = danube_exin_pin_map, | ||
1650 | .num_exin = 3 | ||
1639 | }; | 1651 | }; |
1640 | 1652 | ||
1641 | /* XWAY xRX100 Family */ | 1653 | /* XWAY xRX100 Family */ |
1642 | static struct pinctrl_xway_soc xrx100_pinctrl = { | 1654 | static struct pinctrl_xway_soc xrx100_pinctrl = { |
1643 | XRX100_MAX_PIN, xrx100_mfp, | 1655 | .pin_count = XRX100_MAX_PIN, |
1644 | xrx100_grps, ARRAY_SIZE(xrx100_grps), | 1656 | .mfp = xrx100_mfp, |
1645 | xrx100_funcs, ARRAY_SIZE(xrx100_funcs), | 1657 | .grps = xrx100_grps, |
1646 | xrx100_exin_pin_map, 6 | 1658 | .num_grps = ARRAY_SIZE(xrx100_grps), |
1659 | .funcs = xrx100_funcs, | ||
1660 | .num_funcs = ARRAY_SIZE(xrx100_funcs), | ||
1661 | .exin = xrx100_exin_pin_map, | ||
1662 | .num_exin = 6 | ||
1647 | }; | 1663 | }; |
1648 | 1664 | ||
1649 | /* XWAY xRX200 Family */ | 1665 | /* XWAY xRX200 Family */ |
1650 | static struct pinctrl_xway_soc xrx200_pinctrl = { | 1666 | static struct pinctrl_xway_soc xrx200_pinctrl = { |
1651 | XRX200_MAX_PIN, xrx200_mfp, | 1667 | .pin_count = XRX200_MAX_PIN, |
1652 | xrx200_grps, ARRAY_SIZE(xrx200_grps), | 1668 | .mfp = xrx200_mfp, |
1653 | xrx200_funcs, ARRAY_SIZE(xrx200_funcs), | 1669 | .grps = xrx200_grps, |
1654 | xrx200_exin_pin_map, 6 | 1670 | .num_grps = ARRAY_SIZE(xrx200_grps), |
1671 | .funcs = xrx200_funcs, | ||
1672 | .num_funcs = ARRAY_SIZE(xrx200_funcs), | ||
1673 | .exin = xrx200_exin_pin_map, | ||
1674 | .num_exin = 6 | ||
1655 | }; | 1675 | }; |
1656 | 1676 | ||
1657 | /* XWAY xRX300 Family */ | 1677 | /* XWAY xRX300 Family */ |
1658 | static struct pinctrl_xway_soc xrx300_pinctrl = { | 1678 | static struct pinctrl_xway_soc xrx300_pinctrl = { |
1659 | XRX300_MAX_PIN, xrx300_mfp, | 1679 | .pin_count = XRX300_MAX_PIN, |
1660 | xrx300_grps, ARRAY_SIZE(xrx300_grps), | 1680 | .mfp = xrx300_mfp, |
1661 | xrx300_funcs, ARRAY_SIZE(xrx300_funcs), | 1681 | .grps = xrx300_grps, |
1662 | xrx300_exin_pin_map, 5 | 1682 | .num_grps = ARRAY_SIZE(xrx300_grps), |
1683 | .funcs = xrx300_funcs, | ||
1684 | .num_funcs = ARRAY_SIZE(xrx300_funcs), | ||
1685 | .exin = xrx300_exin_pin_map, | ||
1686 | .num_exin = 5 | ||
1663 | }; | 1687 | }; |
1664 | 1688 | ||
1665 | static struct pinctrl_gpio_range xway_gpio_range = { | 1689 | static struct pinctrl_gpio_range xway_gpio_range = { |
diff --git a/drivers/pinctrl/pinctrl-zynq.c b/drivers/pinctrl/pinctrl-zynq.c index 8fdc60c5aeaf..7afdbede6823 100644 --- a/drivers/pinctrl/pinctrl-zynq.c +++ b/drivers/pinctrl/pinctrl-zynq.c | |||
@@ -20,7 +20,7 @@ | |||
20 | */ | 20 | */ |
21 | #include <linux/io.h> | 21 | #include <linux/io.h> |
22 | #include <linux/mfd/syscon.h> | 22 | #include <linux/mfd/syscon.h> |
23 | #include <linux/module.h> | 23 | #include <linux/init.h> |
24 | #include <linux/of.h> | 24 | #include <linux/of.h> |
25 | #include <linux/platform_device.h> | 25 | #include <linux/platform_device.h> |
26 | #include <linux/pinctrl/pinctrl.h> | 26 | #include <linux/pinctrl/pinctrl.h> |
@@ -1210,7 +1210,6 @@ static const struct of_device_id zynq_pinctrl_of_match[] = { | |||
1210 | { .compatible = "xlnx,pinctrl-zynq" }, | 1210 | { .compatible = "xlnx,pinctrl-zynq" }, |
1211 | { } | 1211 | { } |
1212 | }; | 1212 | }; |
1213 | MODULE_DEVICE_TABLE(of, zynq_pinctrl_of_match); | ||
1214 | 1213 | ||
1215 | static struct platform_driver zynq_pinctrl_driver = { | 1214 | static struct platform_driver zynq_pinctrl_driver = { |
1216 | .driver = { | 1215 | .driver = { |
@@ -1225,13 +1224,3 @@ static int __init zynq_pinctrl_init(void) | |||
1225 | return platform_driver_register(&zynq_pinctrl_driver); | 1224 | return platform_driver_register(&zynq_pinctrl_driver); |
1226 | } | 1225 | } |
1227 | arch_initcall(zynq_pinctrl_init); | 1226 | arch_initcall(zynq_pinctrl_init); |
1228 | |||
1229 | static void __exit zynq_pinctrl_exit(void) | ||
1230 | { | ||
1231 | platform_driver_unregister(&zynq_pinctrl_driver); | ||
1232 | } | ||
1233 | module_exit(zynq_pinctrl_exit); | ||
1234 | |||
1235 | MODULE_AUTHOR("Sören Brinkmann <soren.brinkmann@xilinx.com>"); | ||
1236 | MODULE_DESCRIPTION("Xilinx Zynq pinctrl driver"); | ||
1237 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/pinctrl/pinmux.c b/drivers/pinctrl/pinmux.c index c223a9ef1fe1..ece702881946 100644 --- a/drivers/pinctrl/pinmux.c +++ b/drivers/pinctrl/pinmux.c | |||
@@ -256,7 +256,7 @@ int pinmux_request_gpio(struct pinctrl_dev *pctldev, | |||
256 | /* Conjure some name stating what chip and pin this is taken by */ | 256 | /* Conjure some name stating what chip and pin this is taken by */ |
257 | owner = kasprintf(GFP_KERNEL, "%s:%d", range->name, gpio); | 257 | owner = kasprintf(GFP_KERNEL, "%s:%d", range->name, gpio); |
258 | if (!owner) | 258 | if (!owner) |
259 | return -EINVAL; | 259 | return -ENOMEM; |
260 | 260 | ||
261 | ret = pin_request(pctldev, pin, owner, range); | 261 | ret = pin_request(pctldev, pin, owner, range); |
262 | if (ret < 0) | 262 | if (ret < 0) |
@@ -606,23 +606,17 @@ static int pinmux_pins_show(struct seq_file *s, void *what) | |||
606 | if (pmxops->strict) { | 606 | if (pmxops->strict) { |
607 | if (desc->mux_owner) | 607 | if (desc->mux_owner) |
608 | seq_printf(s, "pin %d (%s): device %s%s", | 608 | seq_printf(s, "pin %d (%s): device %s%s", |
609 | pin, | 609 | pin, desc->name, desc->mux_owner, |
610 | desc->name ? desc->name : "unnamed", | ||
611 | desc->mux_owner, | ||
612 | is_hog ? " (HOG)" : ""); | 610 | is_hog ? " (HOG)" : ""); |
613 | else if (desc->gpio_owner) | 611 | else if (desc->gpio_owner) |
614 | seq_printf(s, "pin %d (%s): GPIO %s", | 612 | seq_printf(s, "pin %d (%s): GPIO %s", |
615 | pin, | 613 | pin, desc->name, desc->gpio_owner); |
616 | desc->name ? desc->name : "unnamed", | ||
617 | desc->gpio_owner); | ||
618 | else | 614 | else |
619 | seq_printf(s, "pin %d (%s): UNCLAIMED", | 615 | seq_printf(s, "pin %d (%s): UNCLAIMED", |
620 | pin, | 616 | pin, desc->name); |
621 | desc->name ? desc->name : "unnamed"); | ||
622 | } else { | 617 | } else { |
623 | /* For non-strict controllers */ | 618 | /* For non-strict controllers */ |
624 | seq_printf(s, "pin %d (%s): %s %s%s", pin, | 619 | seq_printf(s, "pin %d (%s): %s %s%s", pin, desc->name, |
625 | desc->name ? desc->name : "unnamed", | ||
626 | desc->mux_owner ? desc->mux_owner | 620 | desc->mux_owner ? desc->mux_owner |
627 | : "(MUX UNCLAIMED)", | 621 | : "(MUX UNCLAIMED)", |
628 | desc->gpio_owner ? desc->gpio_owner | 622 | desc->gpio_owner ? desc->gpio_owner |
diff --git a/drivers/pinctrl/qcom/Kconfig b/drivers/pinctrl/qcom/Kconfig index 67bc70dcda64..93ef268d5ccd 100644 --- a/drivers/pinctrl/qcom/Kconfig +++ b/drivers/pinctrl/qcom/Kconfig | |||
@@ -55,6 +55,14 @@ config PINCTRL_MSM8960 | |||
55 | This is the pinctrl, pinmux, pinconf and gpiolib driver for the | 55 | This is the pinctrl, pinmux, pinconf and gpiolib driver for the |
56 | Qualcomm TLMM block found in the Qualcomm 8960 platform. | 56 | Qualcomm TLMM block found in the Qualcomm 8960 platform. |
57 | 57 | ||
58 | config PINCTRL_MDM9615 | ||
59 | tristate "Qualcomm 9615 pin controller driver" | ||
60 | depends on GPIOLIB && OF | ||
61 | select PINCTRL_MSM | ||
62 | help | ||
63 | This is the pinctrl, pinmux, pinconf and gpiolib driver for the | ||
64 | Qualcomm TLMM block found in the Qualcomm 9615 platform. | ||
65 | |||
58 | config PINCTRL_MSM8X74 | 66 | config PINCTRL_MSM8X74 |
59 | tristate "Qualcomm 8x74 pin controller driver" | 67 | tristate "Qualcomm 8x74 pin controller driver" |
60 | depends on GPIOLIB && OF | 68 | depends on GPIOLIB && OF |
diff --git a/drivers/pinctrl/qcom/Makefile b/drivers/pinctrl/qcom/Makefile index c964a2c4b90a..8319e11cecb5 100644 --- a/drivers/pinctrl/qcom/Makefile +++ b/drivers/pinctrl/qcom/Makefile | |||
@@ -10,6 +10,7 @@ obj-$(CONFIG_PINCTRL_MSM8X74) += pinctrl-msm8x74.o | |||
10 | obj-$(CONFIG_PINCTRL_MSM8916) += pinctrl-msm8916.o | 10 | obj-$(CONFIG_PINCTRL_MSM8916) += pinctrl-msm8916.o |
11 | obj-$(CONFIG_PINCTRL_MSM8996) += pinctrl-msm8996.o | 11 | obj-$(CONFIG_PINCTRL_MSM8996) += pinctrl-msm8996.o |
12 | obj-$(CONFIG_PINCTRL_QDF2XXX) += pinctrl-qdf2xxx.o | 12 | obj-$(CONFIG_PINCTRL_QDF2XXX) += pinctrl-qdf2xxx.o |
13 | obj-$(CONFIG_PINCTRL_MDM9615) += pinctrl-mdm9615.o | ||
13 | obj-$(CONFIG_PINCTRL_QCOM_SPMI_PMIC) += pinctrl-spmi-gpio.o | 14 | obj-$(CONFIG_PINCTRL_QCOM_SPMI_PMIC) += pinctrl-spmi-gpio.o |
14 | obj-$(CONFIG_PINCTRL_QCOM_SPMI_PMIC) += pinctrl-spmi-mpp.o | 15 | obj-$(CONFIG_PINCTRL_QCOM_SPMI_PMIC) += pinctrl-spmi-mpp.o |
15 | obj-$(CONFIG_PINCTRL_QCOM_SSBI_PMIC) += pinctrl-ssbi-gpio.o | 16 | obj-$(CONFIG_PINCTRL_QCOM_SSBI_PMIC) += pinctrl-ssbi-gpio.o |
diff --git a/drivers/pinctrl/qcom/pinctrl-mdm9615.c b/drivers/pinctrl/qcom/pinctrl-mdm9615.c new file mode 100644 index 000000000000..2b8f4521692c --- /dev/null +++ b/drivers/pinctrl/qcom/pinctrl-mdm9615.c | |||
@@ -0,0 +1,483 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2014, Sony Mobile Communications AB. | ||
3 | * Copyright (c) 2016 BayLibre, SAS. | ||
4 | * Author : Neil Armstrong <narmstrong@baylibre.com> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 and | ||
8 | * only version 2 as published by the Free Software Foundation. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | */ | ||
15 | |||
16 | #include <linux/module.h> | ||
17 | #include <linux/of.h> | ||
18 | #include <linux/platform_device.h> | ||
19 | #include <linux/pinctrl/pinctrl.h> | ||
20 | #include <linux/pinctrl/pinmux.h> | ||
21 | |||
22 | #include "pinctrl-msm.h" | ||
23 | |||
24 | static const struct pinctrl_pin_desc mdm9615_pins[] = { | ||
25 | PINCTRL_PIN(0, "GPIO_0"), | ||
26 | PINCTRL_PIN(1, "GPIO_1"), | ||
27 | PINCTRL_PIN(2, "GPIO_2"), | ||
28 | PINCTRL_PIN(3, "GPIO_3"), | ||
29 | PINCTRL_PIN(4, "GPIO_4"), | ||
30 | PINCTRL_PIN(5, "GPIO_5"), | ||
31 | PINCTRL_PIN(6, "GPIO_6"), | ||
32 | PINCTRL_PIN(7, "GPIO_7"), | ||
33 | PINCTRL_PIN(8, "GPIO_8"), | ||
34 | PINCTRL_PIN(9, "GPIO_9"), | ||
35 | PINCTRL_PIN(10, "GPIO_10"), | ||
36 | PINCTRL_PIN(11, "GPIO_11"), | ||
37 | PINCTRL_PIN(12, "GPIO_12"), | ||
38 | PINCTRL_PIN(13, "GPIO_13"), | ||
39 | PINCTRL_PIN(14, "GPIO_14"), | ||
40 | PINCTRL_PIN(15, "GPIO_15"), | ||
41 | PINCTRL_PIN(16, "GPIO_16"), | ||
42 | PINCTRL_PIN(17, "GPIO_17"), | ||
43 | PINCTRL_PIN(18, "GPIO_18"), | ||
44 | PINCTRL_PIN(19, "GPIO_19"), | ||
45 | PINCTRL_PIN(20, "GPIO_20"), | ||
46 | PINCTRL_PIN(21, "GPIO_21"), | ||
47 | PINCTRL_PIN(22, "GPIO_22"), | ||
48 | PINCTRL_PIN(23, "GPIO_23"), | ||
49 | PINCTRL_PIN(24, "GPIO_24"), | ||
50 | PINCTRL_PIN(25, "GPIO_25"), | ||
51 | PINCTRL_PIN(26, "GPIO_26"), | ||
52 | PINCTRL_PIN(27, "GPIO_27"), | ||
53 | PINCTRL_PIN(28, "GPIO_28"), | ||
54 | PINCTRL_PIN(29, "GPIO_29"), | ||
55 | PINCTRL_PIN(30, "GPIO_30"), | ||
56 | PINCTRL_PIN(31, "GPIO_31"), | ||
57 | PINCTRL_PIN(32, "GPIO_32"), | ||
58 | PINCTRL_PIN(33, "GPIO_33"), | ||
59 | PINCTRL_PIN(34, "GPIO_34"), | ||
60 | PINCTRL_PIN(35, "GPIO_35"), | ||
61 | PINCTRL_PIN(36, "GPIO_36"), | ||
62 | PINCTRL_PIN(37, "GPIO_37"), | ||
63 | PINCTRL_PIN(38, "GPIO_38"), | ||
64 | PINCTRL_PIN(39, "GPIO_39"), | ||
65 | PINCTRL_PIN(40, "GPIO_40"), | ||
66 | PINCTRL_PIN(41, "GPIO_41"), | ||
67 | PINCTRL_PIN(42, "GPIO_42"), | ||
68 | PINCTRL_PIN(43, "GPIO_43"), | ||
69 | PINCTRL_PIN(44, "GPIO_44"), | ||
70 | PINCTRL_PIN(45, "GPIO_45"), | ||
71 | PINCTRL_PIN(46, "GPIO_46"), | ||
72 | PINCTRL_PIN(47, "GPIO_47"), | ||
73 | PINCTRL_PIN(48, "GPIO_48"), | ||
74 | PINCTRL_PIN(49, "GPIO_49"), | ||
75 | PINCTRL_PIN(50, "GPIO_50"), | ||
76 | PINCTRL_PIN(51, "GPIO_51"), | ||
77 | PINCTRL_PIN(52, "GPIO_52"), | ||
78 | PINCTRL_PIN(53, "GPIO_53"), | ||
79 | PINCTRL_PIN(54, "GPIO_54"), | ||
80 | PINCTRL_PIN(55, "GPIO_55"), | ||
81 | PINCTRL_PIN(56, "GPIO_56"), | ||
82 | PINCTRL_PIN(57, "GPIO_57"), | ||
83 | PINCTRL_PIN(58, "GPIO_58"), | ||
84 | PINCTRL_PIN(59, "GPIO_59"), | ||
85 | PINCTRL_PIN(60, "GPIO_60"), | ||
86 | PINCTRL_PIN(61, "GPIO_61"), | ||
87 | PINCTRL_PIN(62, "GPIO_62"), | ||
88 | PINCTRL_PIN(63, "GPIO_63"), | ||
89 | PINCTRL_PIN(64, "GPIO_64"), | ||
90 | PINCTRL_PIN(65, "GPIO_65"), | ||
91 | PINCTRL_PIN(66, "GPIO_66"), | ||
92 | PINCTRL_PIN(67, "GPIO_67"), | ||
93 | PINCTRL_PIN(68, "GPIO_68"), | ||
94 | PINCTRL_PIN(69, "GPIO_69"), | ||
95 | PINCTRL_PIN(70, "GPIO_70"), | ||
96 | PINCTRL_PIN(71, "GPIO_71"), | ||
97 | PINCTRL_PIN(72, "GPIO_72"), | ||
98 | PINCTRL_PIN(73, "GPIO_73"), | ||
99 | PINCTRL_PIN(74, "GPIO_74"), | ||
100 | PINCTRL_PIN(75, "GPIO_75"), | ||
101 | PINCTRL_PIN(76, "GPIO_76"), | ||
102 | PINCTRL_PIN(77, "GPIO_77"), | ||
103 | PINCTRL_PIN(78, "GPIO_78"), | ||
104 | PINCTRL_PIN(79, "GPIO_79"), | ||
105 | PINCTRL_PIN(80, "GPIO_80"), | ||
106 | PINCTRL_PIN(81, "GPIO_81"), | ||
107 | PINCTRL_PIN(82, "GPIO_82"), | ||
108 | PINCTRL_PIN(83, "GPIO_83"), | ||
109 | PINCTRL_PIN(84, "GPIO_84"), | ||
110 | PINCTRL_PIN(85, "GPIO_85"), | ||
111 | PINCTRL_PIN(86, "GPIO_86"), | ||
112 | PINCTRL_PIN(87, "GPIO_87"), | ||
113 | }; | ||
114 | |||
115 | #define DECLARE_MSM_GPIO_PINS(pin) \ | ||
116 | static const unsigned int gpio##pin##_pins[] = { pin } | ||
117 | DECLARE_MSM_GPIO_PINS(0); | ||
118 | DECLARE_MSM_GPIO_PINS(1); | ||
119 | DECLARE_MSM_GPIO_PINS(2); | ||
120 | DECLARE_MSM_GPIO_PINS(3); | ||
121 | DECLARE_MSM_GPIO_PINS(4); | ||
122 | DECLARE_MSM_GPIO_PINS(5); | ||
123 | DECLARE_MSM_GPIO_PINS(6); | ||
124 | DECLARE_MSM_GPIO_PINS(7); | ||
125 | DECLARE_MSM_GPIO_PINS(8); | ||
126 | DECLARE_MSM_GPIO_PINS(9); | ||
127 | DECLARE_MSM_GPIO_PINS(10); | ||
128 | DECLARE_MSM_GPIO_PINS(11); | ||
129 | DECLARE_MSM_GPIO_PINS(12); | ||
130 | DECLARE_MSM_GPIO_PINS(13); | ||
131 | DECLARE_MSM_GPIO_PINS(14); | ||
132 | DECLARE_MSM_GPIO_PINS(15); | ||
133 | DECLARE_MSM_GPIO_PINS(16); | ||
134 | DECLARE_MSM_GPIO_PINS(17); | ||
135 | DECLARE_MSM_GPIO_PINS(18); | ||
136 | DECLARE_MSM_GPIO_PINS(19); | ||
137 | DECLARE_MSM_GPIO_PINS(20); | ||
138 | DECLARE_MSM_GPIO_PINS(21); | ||
139 | DECLARE_MSM_GPIO_PINS(22); | ||
140 | DECLARE_MSM_GPIO_PINS(23); | ||
141 | DECLARE_MSM_GPIO_PINS(24); | ||
142 | DECLARE_MSM_GPIO_PINS(25); | ||
143 | DECLARE_MSM_GPIO_PINS(26); | ||
144 | DECLARE_MSM_GPIO_PINS(27); | ||
145 | DECLARE_MSM_GPIO_PINS(28); | ||
146 | DECLARE_MSM_GPIO_PINS(29); | ||
147 | DECLARE_MSM_GPIO_PINS(30); | ||
148 | DECLARE_MSM_GPIO_PINS(31); | ||
149 | DECLARE_MSM_GPIO_PINS(32); | ||
150 | DECLARE_MSM_GPIO_PINS(33); | ||
151 | DECLARE_MSM_GPIO_PINS(34); | ||
152 | DECLARE_MSM_GPIO_PINS(35); | ||
153 | DECLARE_MSM_GPIO_PINS(36); | ||
154 | DECLARE_MSM_GPIO_PINS(37); | ||
155 | DECLARE_MSM_GPIO_PINS(38); | ||
156 | DECLARE_MSM_GPIO_PINS(39); | ||
157 | DECLARE_MSM_GPIO_PINS(40); | ||
158 | DECLARE_MSM_GPIO_PINS(41); | ||
159 | DECLARE_MSM_GPIO_PINS(42); | ||
160 | DECLARE_MSM_GPIO_PINS(43); | ||
161 | DECLARE_MSM_GPIO_PINS(44); | ||
162 | DECLARE_MSM_GPIO_PINS(45); | ||
163 | DECLARE_MSM_GPIO_PINS(46); | ||
164 | DECLARE_MSM_GPIO_PINS(47); | ||
165 | DECLARE_MSM_GPIO_PINS(48); | ||
166 | DECLARE_MSM_GPIO_PINS(49); | ||
167 | DECLARE_MSM_GPIO_PINS(50); | ||
168 | DECLARE_MSM_GPIO_PINS(51); | ||
169 | DECLARE_MSM_GPIO_PINS(52); | ||
170 | DECLARE_MSM_GPIO_PINS(53); | ||
171 | DECLARE_MSM_GPIO_PINS(54); | ||
172 | DECLARE_MSM_GPIO_PINS(55); | ||
173 | DECLARE_MSM_GPIO_PINS(56); | ||
174 | DECLARE_MSM_GPIO_PINS(57); | ||
175 | DECLARE_MSM_GPIO_PINS(58); | ||
176 | DECLARE_MSM_GPIO_PINS(59); | ||
177 | DECLARE_MSM_GPIO_PINS(60); | ||
178 | DECLARE_MSM_GPIO_PINS(61); | ||
179 | DECLARE_MSM_GPIO_PINS(62); | ||
180 | DECLARE_MSM_GPIO_PINS(63); | ||
181 | DECLARE_MSM_GPIO_PINS(64); | ||
182 | DECLARE_MSM_GPIO_PINS(65); | ||
183 | DECLARE_MSM_GPIO_PINS(66); | ||
184 | DECLARE_MSM_GPIO_PINS(67); | ||
185 | DECLARE_MSM_GPIO_PINS(68); | ||
186 | DECLARE_MSM_GPIO_PINS(69); | ||
187 | DECLARE_MSM_GPIO_PINS(70); | ||
188 | DECLARE_MSM_GPIO_PINS(71); | ||
189 | DECLARE_MSM_GPIO_PINS(72); | ||
190 | DECLARE_MSM_GPIO_PINS(73); | ||
191 | DECLARE_MSM_GPIO_PINS(74); | ||
192 | DECLARE_MSM_GPIO_PINS(75); | ||
193 | DECLARE_MSM_GPIO_PINS(76); | ||
194 | DECLARE_MSM_GPIO_PINS(77); | ||
195 | DECLARE_MSM_GPIO_PINS(78); | ||
196 | DECLARE_MSM_GPIO_PINS(79); | ||
197 | DECLARE_MSM_GPIO_PINS(80); | ||
198 | DECLARE_MSM_GPIO_PINS(81); | ||
199 | DECLARE_MSM_GPIO_PINS(82); | ||
200 | DECLARE_MSM_GPIO_PINS(83); | ||
201 | DECLARE_MSM_GPIO_PINS(84); | ||
202 | DECLARE_MSM_GPIO_PINS(85); | ||
203 | DECLARE_MSM_GPIO_PINS(86); | ||
204 | DECLARE_MSM_GPIO_PINS(87); | ||
205 | |||
206 | #define FUNCTION(fname) \ | ||
207 | [MSM_MUX_##fname] = { \ | ||
208 | .name = #fname, \ | ||
209 | .groups = fname##_groups, \ | ||
210 | .ngroups = ARRAY_SIZE(fname##_groups), \ | ||
211 | } | ||
212 | |||
213 | #define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11) \ | ||
214 | { \ | ||
215 | .name = "gpio" #id, \ | ||
216 | .pins = gpio##id##_pins, \ | ||
217 | .npins = ARRAY_SIZE(gpio##id##_pins), \ | ||
218 | .funcs = (int[]){ \ | ||
219 | MSM_MUX_gpio, \ | ||
220 | MSM_MUX_##f1, \ | ||
221 | MSM_MUX_##f2, \ | ||
222 | MSM_MUX_##f3, \ | ||
223 | MSM_MUX_##f4, \ | ||
224 | MSM_MUX_##f5, \ | ||
225 | MSM_MUX_##f6, \ | ||
226 | MSM_MUX_##f7, \ | ||
227 | MSM_MUX_##f8, \ | ||
228 | MSM_MUX_##f9, \ | ||
229 | MSM_MUX_##f10, \ | ||
230 | MSM_MUX_##f11 \ | ||
231 | }, \ | ||
232 | .nfuncs = 12, \ | ||
233 | .ctl_reg = 0x1000 + 0x10 * id, \ | ||
234 | .io_reg = 0x1004 + 0x10 * id, \ | ||
235 | .intr_cfg_reg = 0x1008 + 0x10 * id, \ | ||
236 | .intr_status_reg = 0x100c + 0x10 * id, \ | ||
237 | .intr_target_reg = 0x400 + 0x4 * id, \ | ||
238 | .mux_bit = 2, \ | ||
239 | .pull_bit = 0, \ | ||
240 | .drv_bit = 6, \ | ||
241 | .oe_bit = 9, \ | ||
242 | .in_bit = 0, \ | ||
243 | .out_bit = 1, \ | ||
244 | .intr_enable_bit = 0, \ | ||
245 | .intr_status_bit = 0, \ | ||
246 | .intr_ack_high = 1, \ | ||
247 | .intr_target_bit = 0, \ | ||
248 | .intr_target_kpss_val = 4, \ | ||
249 | .intr_raw_status_bit = 3, \ | ||
250 | .intr_polarity_bit = 1, \ | ||
251 | .intr_detection_bit = 2, \ | ||
252 | .intr_detection_width = 1, \ | ||
253 | } | ||
254 | |||
255 | enum mdm9615_functions { | ||
256 | MSM_MUX_gpio, | ||
257 | MSM_MUX_gsbi2_i2c, | ||
258 | MSM_MUX_gsbi3, | ||
259 | MSM_MUX_gsbi4, | ||
260 | MSM_MUX_gsbi5_i2c, | ||
261 | MSM_MUX_gsbi5_uart, | ||
262 | MSM_MUX_sdc2, | ||
263 | MSM_MUX_ebi2_lcdc, | ||
264 | MSM_MUX_ps_hold, | ||
265 | MSM_MUX_prim_audio, | ||
266 | MSM_MUX_sec_audio, | ||
267 | MSM_MUX_cdc_mclk, | ||
268 | MSM_MUX_NA, | ||
269 | }; | ||
270 | |||
271 | static const char * const gpio_groups[] = { | ||
272 | "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7", | ||
273 | "gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14", | ||
274 | "gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21", | ||
275 | "gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28", | ||
276 | "gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35", | ||
277 | "gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42", | ||
278 | "gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49", | ||
279 | "gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56", | ||
280 | "gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63", | ||
281 | "gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70", | ||
282 | "gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77", | ||
283 | "gpio78", "gpio79", "gpio80", "gpio81", "gpio82", "gpio83", "gpio84", | ||
284 | "gpio85", "gpio86", "gpio87" | ||
285 | }; | ||
286 | |||
287 | static const char * const gsbi2_i2c_groups[] = { | ||
288 | "gpio4", "gpio5" | ||
289 | }; | ||
290 | |||
291 | static const char * const gsbi3_groups[] = { | ||
292 | "gpio8", "gpio9", "gpio10", "gpio11" | ||
293 | }; | ||
294 | |||
295 | static const char * const gsbi4_groups[] = { | ||
296 | "gpio12", "gpio13", "gpio14", "gpio15" | ||
297 | }; | ||
298 | |||
299 | static const char * const gsbi5_i2c_groups[] = { | ||
300 | "gpio16", "gpio17" | ||
301 | }; | ||
302 | |||
303 | static const char * const gsbi5_uart_groups[] = { | ||
304 | "gpio18", "gpio19" | ||
305 | }; | ||
306 | |||
307 | static const char * const sdc2_groups[] = { | ||
308 | "gpio25", "gpio26", "gpio27", "gpio28", "gpio29", "gpio30", | ||
309 | }; | ||
310 | |||
311 | static const char * const ebi2_lcdc_groups[] = { | ||
312 | "gpio21", "gpio22", "gpio24", | ||
313 | }; | ||
314 | |||
315 | static const char * const ps_hold_groups[] = { | ||
316 | "gpio83", | ||
317 | }; | ||
318 | |||
319 | static const char * const prim_audio_groups[] = { | ||
320 | "gpio20", "gpio21", "gpio22", "gpio23", | ||
321 | }; | ||
322 | |||
323 | static const char * const sec_audio_groups[] = { | ||
324 | "gpio25", "gpio26", "gpio27", "gpio28", | ||
325 | }; | ||
326 | |||
327 | static const char * const cdc_mclk_groups[] = { | ||
328 | "gpio24", | ||
329 | }; | ||
330 | |||
331 | static const struct msm_function mdm9615_functions[] = { | ||
332 | FUNCTION(gpio), | ||
333 | FUNCTION(gsbi2_i2c), | ||
334 | FUNCTION(gsbi3), | ||
335 | FUNCTION(gsbi4), | ||
336 | FUNCTION(gsbi5_i2c), | ||
337 | FUNCTION(gsbi5_uart), | ||
338 | FUNCTION(sdc2), | ||
339 | FUNCTION(ebi2_lcdc), | ||
340 | FUNCTION(ps_hold), | ||
341 | FUNCTION(prim_audio), | ||
342 | FUNCTION(sec_audio), | ||
343 | FUNCTION(cdc_mclk), | ||
344 | }; | ||
345 | |||
346 | static const struct msm_pingroup mdm9615_groups[] = { | ||
347 | PINGROUP(0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
348 | PINGROUP(1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
349 | PINGROUP(2, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
350 | PINGROUP(3, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
351 | PINGROUP(4, gsbi2_i2c, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
352 | PINGROUP(5, gsbi2_i2c, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
353 | PINGROUP(6, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
354 | PINGROUP(7, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
355 | PINGROUP(8, gsbi3, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
356 | PINGROUP(9, gsbi3, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
357 | PINGROUP(10, gsbi3, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
358 | PINGROUP(11, gsbi3, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
359 | PINGROUP(12, gsbi4, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
360 | PINGROUP(13, gsbi4, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
361 | PINGROUP(14, gsbi4, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
362 | PINGROUP(15, gsbi4, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
363 | PINGROUP(16, gsbi5_i2c, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
364 | PINGROUP(17, gsbi5_i2c, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
365 | PINGROUP(18, gsbi5_uart, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
366 | PINGROUP(19, gsbi5_uart, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
367 | PINGROUP(20, prim_audio, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
368 | PINGROUP(21, prim_audio, ebi2_lcdc, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
369 | PINGROUP(22, prim_audio, ebi2_lcdc, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
370 | PINGROUP(23, prim_audio, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
371 | PINGROUP(24, cdc_mclk, NA, ebi2_lcdc, NA, NA, NA, NA, NA, NA, NA, NA), | ||
372 | PINGROUP(25, sdc2, sec_audio, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
373 | PINGROUP(26, sdc2, sec_audio, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
374 | PINGROUP(27, sdc2, sec_audio, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
375 | PINGROUP(28, sdc2, sec_audio, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
376 | PINGROUP(29, sdc2, sec_audio, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
377 | PINGROUP(30, sdc2, sec_audio, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
378 | PINGROUP(31, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
379 | PINGROUP(32, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
380 | PINGROUP(33, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
381 | PINGROUP(34, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
382 | PINGROUP(35, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
383 | PINGROUP(36, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
384 | PINGROUP(37, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
385 | PINGROUP(38, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
386 | PINGROUP(39, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
387 | PINGROUP(40, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
388 | PINGROUP(41, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
389 | PINGROUP(42, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
390 | PINGROUP(43, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
391 | PINGROUP(44, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
392 | PINGROUP(45, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
393 | PINGROUP(46, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
394 | PINGROUP(47, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
395 | PINGROUP(48, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
396 | PINGROUP(49, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
397 | PINGROUP(50, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
398 | PINGROUP(51, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
399 | PINGROUP(52, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
400 | PINGROUP(53, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
401 | PINGROUP(54, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
402 | PINGROUP(55, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
403 | PINGROUP(56, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
404 | PINGROUP(57, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
405 | PINGROUP(58, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
406 | PINGROUP(59, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
407 | PINGROUP(60, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
408 | PINGROUP(61, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
409 | PINGROUP(62, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
410 | PINGROUP(63, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
411 | PINGROUP(64, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
412 | PINGROUP(65, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
413 | PINGROUP(66, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
414 | PINGROUP(67, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
415 | PINGROUP(68, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
416 | PINGROUP(69, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
417 | PINGROUP(70, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
418 | PINGROUP(71, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
419 | PINGROUP(72, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
420 | PINGROUP(73, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
421 | PINGROUP(74, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
422 | PINGROUP(75, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
423 | PINGROUP(76, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
424 | PINGROUP(77, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
425 | PINGROUP(78, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
426 | PINGROUP(79, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
427 | PINGROUP(80, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
428 | PINGROUP(81, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
429 | PINGROUP(82, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
430 | PINGROUP(83, ps_hold, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
431 | PINGROUP(84, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
432 | PINGROUP(85, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
433 | PINGROUP(86, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
434 | PINGROUP(87, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), | ||
435 | }; | ||
436 | |||
437 | #define NUM_GPIO_PINGROUPS 88 | ||
438 | |||
439 | static const struct msm_pinctrl_soc_data mdm9615_pinctrl = { | ||
440 | .pins = mdm9615_pins, | ||
441 | .npins = ARRAY_SIZE(mdm9615_pins), | ||
442 | .functions = mdm9615_functions, | ||
443 | .nfunctions = ARRAY_SIZE(mdm9615_functions), | ||
444 | .groups = mdm9615_groups, | ||
445 | .ngroups = ARRAY_SIZE(mdm9615_groups), | ||
446 | .ngpios = NUM_GPIO_PINGROUPS, | ||
447 | }; | ||
448 | |||
449 | static int mdm9615_pinctrl_probe(struct platform_device *pdev) | ||
450 | { | ||
451 | return msm_pinctrl_probe(pdev, &mdm9615_pinctrl); | ||
452 | } | ||
453 | |||
454 | static const struct of_device_id mdm9615_pinctrl_of_match[] = { | ||
455 | { .compatible = "qcom,mdm9615-pinctrl", }, | ||
456 | { }, | ||
457 | }; | ||
458 | |||
459 | static struct platform_driver mdm9615_pinctrl_driver = { | ||
460 | .driver = { | ||
461 | .name = "mdm9615-pinctrl", | ||
462 | .of_match_table = mdm9615_pinctrl_of_match, | ||
463 | }, | ||
464 | .probe = mdm9615_pinctrl_probe, | ||
465 | .remove = msm_pinctrl_remove, | ||
466 | }; | ||
467 | |||
468 | static int __init mdm9615_pinctrl_init(void) | ||
469 | { | ||
470 | return platform_driver_register(&mdm9615_pinctrl_driver); | ||
471 | } | ||
472 | arch_initcall(mdm9615_pinctrl_init); | ||
473 | |||
474 | static void __exit mdm9615_pinctrl_exit(void) | ||
475 | { | ||
476 | platform_driver_unregister(&mdm9615_pinctrl_driver); | ||
477 | } | ||
478 | module_exit(mdm9615_pinctrl_exit); | ||
479 | |||
480 | MODULE_AUTHOR("Neil Armstrong <narmstrong@baylibre.com>"); | ||
481 | MODULE_DESCRIPTION("Qualcomm MDM9615 pinctrl driver"); | ||
482 | MODULE_LICENSE("GPL v2"); | ||
483 | MODULE_DEVICE_TABLE(of, mdm9615_pinctrl_of_match); | ||
diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinctrl-msm.c index 1a44e1d03390..51c42d746883 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm.c +++ b/drivers/pinctrl/qcom/pinctrl-msm.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include <linux/spinlock.h> | 29 | #include <linux/spinlock.h> |
30 | #include <linux/reboot.h> | 30 | #include <linux/reboot.h> |
31 | #include <linux/pm.h> | 31 | #include <linux/pm.h> |
32 | #include <linux/log2.h> | ||
32 | 33 | ||
33 | #include "../core.h" | 34 | #include "../core.h" |
34 | #include "../pinconf.h" | 35 | #include "../pinconf.h" |
@@ -138,10 +139,11 @@ static int msm_pinmux_set_mux(struct pinctrl_dev *pctldev, | |||
138 | struct msm_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); | 139 | struct msm_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); |
139 | const struct msm_pingroup *g; | 140 | const struct msm_pingroup *g; |
140 | unsigned long flags; | 141 | unsigned long flags; |
141 | u32 val; | 142 | u32 val, mask; |
142 | int i; | 143 | int i; |
143 | 144 | ||
144 | g = &pctrl->soc->groups[group]; | 145 | g = &pctrl->soc->groups[group]; |
146 | mask = GENMASK(g->mux_bit + order_base_2(g->nfuncs) - 1, g->mux_bit); | ||
145 | 147 | ||
146 | for (i = 0; i < g->nfuncs; i++) { | 148 | for (i = 0; i < g->nfuncs; i++) { |
147 | if (g->funcs[i] == function) | 149 | if (g->funcs[i] == function) |
@@ -154,7 +156,7 @@ static int msm_pinmux_set_mux(struct pinctrl_dev *pctldev, | |||
154 | spin_lock_irqsave(&pctrl->lock, flags); | 156 | spin_lock_irqsave(&pctrl->lock, flags); |
155 | 157 | ||
156 | val = readl(pctrl->regs + g->ctl_reg); | 158 | val = readl(pctrl->regs + g->ctl_reg); |
157 | val &= ~(0x7 << g->mux_bit); | 159 | val &= mask; |
158 | val |= i << g->mux_bit; | 160 | val |= i << g->mux_bit; |
159 | writel(val, pctrl->regs + g->ctl_reg); | 161 | writel(val, pctrl->regs + g->ctl_reg); |
160 | 162 | ||
diff --git a/drivers/pinctrl/qcom/pinctrl-msm8660.c b/drivers/pinctrl/qcom/pinctrl-msm8660.c index 3e8f7ac2ac8a..5591d093bf78 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm8660.c +++ b/drivers/pinctrl/qcom/pinctrl-msm8660.c | |||
@@ -506,6 +506,8 @@ enum msm8660_functions { | |||
506 | MSM_MUX_usb_fs2_oe_n, | 506 | MSM_MUX_usb_fs2_oe_n, |
507 | MSM_MUX_vfe, | 507 | MSM_MUX_vfe, |
508 | MSM_MUX_vsens_alarm, | 508 | MSM_MUX_vsens_alarm, |
509 | MSM_MUX_ebi2cs, | ||
510 | MSM_MUX_ebi2, | ||
509 | MSM_MUX__, | 511 | MSM_MUX__, |
510 | }; | 512 | }; |
511 | 513 | ||
@@ -696,6 +698,36 @@ static const char * const vfe_groups[] = { | |||
696 | static const char * const vsens_alarm_groups[] = { | 698 | static const char * const vsens_alarm_groups[] = { |
697 | "gpio127" | 699 | "gpio127" |
698 | }; | 700 | }; |
701 | static const char * const ebi2cs_groups[] = { | ||
702 | "gpio39", /* CS1A */ | ||
703 | "gpio40", /* CS2A */ | ||
704 | "gpio123", /* CS1B */ | ||
705 | "gpio124", /* CS2B */ | ||
706 | "gpio131", /* CS5 */ | ||
707 | "gpio132", /* CS4 */ | ||
708 | "gpio133", /* CS3 */ | ||
709 | "gpio134", /* CS0 */ | ||
710 | }; | ||
711 | static const char * const ebi2_groups[] = { | ||
712 | /* ADDR9 & ADDR8 */ | ||
713 | "gpio37", "gpio38", | ||
714 | /* ADDR7 - ADDR 0 */ | ||
715 | "gpio123", "gpio124", "gpio125", "gpio126", | ||
716 | "gpio127", "gpio128", "gpio129", "gpio130", | ||
717 | /* (muxed address+data) AD15 - AD0 */ | ||
718 | "gpio135", "gpio136", "gpio137", "gpio138", "gpio139", | ||
719 | "gpio140", "gpio141", "gpio142", "gpio143", "gpio144", | ||
720 | "gpio145", "gpio146", "gpio147", "gpio148", "gpio149", | ||
721 | "gpio150", | ||
722 | "gpio151", /* OE output enable */ | ||
723 | "gpio152", /* clock */ | ||
724 | "gpio153", /* ADV */ | ||
725 | "gpio154", /* WAIT (input) */ | ||
726 | "gpio155", /* UB Upper Byte Enable */ | ||
727 | "gpio156", /* LB Lower Byte Enable */ | ||
728 | "gpio157", /* WE Write Enable */ | ||
729 | "gpio158", /* busy */ | ||
730 | }; | ||
699 | 731 | ||
700 | static const struct msm_function msm8660_functions[] = { | 732 | static const struct msm_function msm8660_functions[] = { |
701 | FUNCTION(gpio), | 733 | FUNCTION(gpio), |
@@ -749,6 +781,8 @@ static const struct msm_function msm8660_functions[] = { | |||
749 | FUNCTION(usb_fs2_oe_n), | 781 | FUNCTION(usb_fs2_oe_n), |
750 | FUNCTION(vfe), | 782 | FUNCTION(vfe), |
751 | FUNCTION(vsens_alarm), | 783 | FUNCTION(vsens_alarm), |
784 | FUNCTION(ebi2cs), /* for EBI2 chip selects */ | ||
785 | FUNCTION(ebi2), /* for general EBI2 pins */ | ||
752 | }; | 786 | }; |
753 | 787 | ||
754 | static const struct msm_pingroup msm8660_groups[] = { | 788 | static const struct msm_pingroup msm8660_groups[] = { |
@@ -789,10 +823,10 @@ static const struct msm_pingroup msm8660_groups[] = { | |||
789 | PINGROUP(34, gsbi1, _, _, _, _, _, _), | 823 | PINGROUP(34, gsbi1, _, _, _, _, _, _), |
790 | PINGROUP(35, gsbi1, _, _, _, _, _, _), | 824 | PINGROUP(35, gsbi1, _, _, _, _, _, _), |
791 | PINGROUP(36, gsbi1, _, _, _, _, _, _), | 825 | PINGROUP(36, gsbi1, _, _, _, _, _, _), |
792 | PINGROUP(37, gsbi2, _, _, _, _, _, _), | 826 | PINGROUP(37, gsbi2, ebi2, _, _, _, _, _), |
793 | PINGROUP(38, gsbi2, _, _, _, _, _, _), | 827 | PINGROUP(38, gsbi2, ebi2, _, _, _, _, _), |
794 | PINGROUP(39, gsbi2, _, mdp_vsync, _, _, _, _), | 828 | PINGROUP(39, gsbi2, ebi2cs, mdp_vsync, _, _, _, _), |
795 | PINGROUP(40, gsbi2, _, _, _, _, _, _), | 829 | PINGROUP(40, gsbi2, ebi2cs, _, _, _, _, _), |
796 | PINGROUP(41, gsbi3, mdp_vsync, _, _, _, _, _), | 830 | PINGROUP(41, gsbi3, mdp_vsync, _, _, _, _, _), |
797 | PINGROUP(42, gsbi3, vfe, _, _, _, _, _), | 831 | PINGROUP(42, gsbi3, vfe, _, _, _, _, _), |
798 | PINGROUP(43, gsbi3, _, _, _, _, _, _), | 832 | PINGROUP(43, gsbi3, _, _, _, _, _, _), |
@@ -875,42 +909,42 @@ static const struct msm_pingroup msm8660_groups[] = { | |||
875 | PINGROUP(120, i2s, _, _, _, _, _, _), | 909 | PINGROUP(120, i2s, _, _, _, _, _, _), |
876 | PINGROUP(121, i2s, _, _, _, _, _, _), | 910 | PINGROUP(121, i2s, _, _, _, _, _, _), |
877 | PINGROUP(122, i2s, gp_clk_1b, _, _, _, _, _), | 911 | PINGROUP(122, i2s, gp_clk_1b, _, _, _, _, _), |
878 | PINGROUP(123, _, gsbi2_spi_cs1_n, _, _, _, _, _), | 912 | PINGROUP(123, ebi2, gsbi2_spi_cs1_n, ebi2cs, _, _, _, _), |
879 | PINGROUP(124, _, gsbi2_spi_cs2_n, _, _, _, _, _), | 913 | PINGROUP(124, ebi2, gsbi2_spi_cs2_n, ebi2cs, _, _, _, _), |
880 | PINGROUP(125, _, gsbi2_spi_cs3_n, _, _, _, _, _), | 914 | PINGROUP(125, ebi2, gsbi2_spi_cs3_n, _, _, _, _, _), |
881 | PINGROUP(126, _, _, _, _, _, _, _), | 915 | PINGROUP(126, ebi2, _, _, _, _, _, _), |
882 | PINGROUP(127, _, vsens_alarm, _, _, _, _, _), | 916 | PINGROUP(127, ebi2, vsens_alarm, _, _, _, _, _), |
883 | PINGROUP(128, _, _, _, _, _, _, _), | 917 | PINGROUP(128, ebi2, _, _, _, _, _, _), |
884 | PINGROUP(129, _, _, _, _, _, _, _), | 918 | PINGROUP(129, ebi2, _, _, _, _, _, _), |
885 | PINGROUP(130, _, _, _, _, _, _, _), | 919 | PINGROUP(130, ebi2, _, _, _, _, _, _), |
886 | PINGROUP(131, _, _, _, _, _, _, _), | 920 | PINGROUP(131, ebi2cs, _, _, _, _, _, _), |
887 | PINGROUP(132, _, _, _, _, _, _, _), | 921 | PINGROUP(132, ebi2cs, _, _, _, _, _, _), |
888 | PINGROUP(133, _, _, _, _, _, _, _), | 922 | PINGROUP(133, ebi2cs, _, _, _, _, _, _), |
889 | PINGROUP(134, _, _, _, _, _, _, _), | 923 | PINGROUP(134, ebi2cs, _, _, _, _, _, _), |
890 | PINGROUP(135, _, _, _, _, _, _, _), | 924 | PINGROUP(135, ebi2, _, _, _, _, _, _), |
891 | PINGROUP(136, _, _, _, _, _, _, _), | 925 | PINGROUP(136, ebi2, _, _, _, _, _, _), |
892 | PINGROUP(137, _, _, _, _, _, _, _), | 926 | PINGROUP(137, ebi2, _, _, _, _, _, _), |
893 | PINGROUP(138, _, _, _, _, _, _, _), | 927 | PINGROUP(138, ebi2, _, _, _, _, _, _), |
894 | PINGROUP(139, _, _, _, _, _, _, _), | 928 | PINGROUP(139, ebi2, _, _, _, _, _, _), |
895 | PINGROUP(140, _, _, _, _, _, _, _), | 929 | PINGROUP(140, ebi2, _, _, _, _, _, _), |
896 | PINGROUP(141, _, _, _, _, _, _, _), | 930 | PINGROUP(141, ebi2, _, _, _, _, _, _), |
897 | PINGROUP(142, _, _, _, _, _, _, _), | 931 | PINGROUP(142, ebi2, _, _, _, _, _, _), |
898 | PINGROUP(143, _, sdc2, _, _, _, _, _), | 932 | PINGROUP(143, ebi2, sdc2, _, _, _, _, _), |
899 | PINGROUP(144, _, sdc2, _, _, _, _, _), | 933 | PINGROUP(144, ebi2, sdc2, _, _, _, _, _), |
900 | PINGROUP(145, _, sdc2, _, _, _, _, _), | 934 | PINGROUP(145, ebi2, sdc2, _, _, _, _, _), |
901 | PINGROUP(146, _, sdc2, _, _, _, _, _), | 935 | PINGROUP(146, ebi2, sdc2, _, _, _, _, _), |
902 | PINGROUP(147, _, sdc2, _, _, _, _, _), | 936 | PINGROUP(147, ebi2, sdc2, _, _, _, _, _), |
903 | PINGROUP(148, _, sdc2, _, _, _, _, _), | 937 | PINGROUP(148, ebi2, sdc2, _, _, _, _, _), |
904 | PINGROUP(149, _, sdc2, _, _, _, _, _), | 938 | PINGROUP(149, ebi2, sdc2, _, _, _, _, _), |
905 | PINGROUP(150, _, sdc2, _, _, _, _, _), | 939 | PINGROUP(150, ebi2, sdc2, _, _, _, _, _), |
906 | PINGROUP(151, _, sdc2, _, _, _, _, _), | 940 | PINGROUP(151, ebi2, sdc2, _, _, _, _, _), |
907 | PINGROUP(152, _, sdc2, _, _, _, _, _), | 941 | PINGROUP(152, ebi2, sdc2, _, _, _, _, _), |
908 | PINGROUP(153, _, _, _, _, _, _, _), | 942 | PINGROUP(153, ebi2, _, _, _, _, _, _), |
909 | PINGROUP(154, _, _, _, _, _, _, _), | 943 | PINGROUP(154, ebi2, _, _, _, _, _, _), |
910 | PINGROUP(155, _, _, _, _, _, _, _), | 944 | PINGROUP(155, ebi2, _, _, _, _, _, _), |
911 | PINGROUP(156, _, _, _, _, _, _, _), | 945 | PINGROUP(156, ebi2, _, _, _, _, _, _), |
912 | PINGROUP(157, _, _, _, _, _, _, _), | 946 | PINGROUP(157, ebi2, _, _, _, _, _, _), |
913 | PINGROUP(158, _, _, _, _, _, _, _), | 947 | PINGROUP(158, ebi2, _, _, _, _, _, _), |
914 | PINGROUP(159, sdc1, _, _, _, _, _, _), | 948 | PINGROUP(159, sdc1, _, _, _, _, _, _), |
915 | PINGROUP(160, sdc1, _, _, _, _, _, _), | 949 | PINGROUP(160, sdc1, _, _, _, _, _, _), |
916 | PINGROUP(161, sdc1, _, _, _, _, _, _), | 950 | PINGROUP(161, sdc1, _, _, _, _, _, _), |
diff --git a/drivers/pinctrl/qcom/pinctrl-msm8x74.c b/drivers/pinctrl/qcom/pinctrl-msm8x74.c index 46fe6ad5f97e..9eb63d3403d4 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm8x74.c +++ b/drivers/pinctrl/qcom/pinctrl-msm8x74.c | |||
@@ -172,6 +172,8 @@ static const struct pinctrl_pin_desc msm8x74_pins[] = { | |||
172 | PINCTRL_PIN(149, "SDC2_CLK"), | 172 | PINCTRL_PIN(149, "SDC2_CLK"), |
173 | PINCTRL_PIN(150, "SDC2_CMD"), | 173 | PINCTRL_PIN(150, "SDC2_CMD"), |
174 | PINCTRL_PIN(151, "SDC2_DATA"), | 174 | PINCTRL_PIN(151, "SDC2_DATA"), |
175 | PINCTRL_PIN(152, "HSIC_STROBE"), | ||
176 | PINCTRL_PIN(153, "HSIC_DATA"), | ||
175 | }; | 177 | }; |
176 | 178 | ||
177 | #define DECLARE_MSM_GPIO_PINS(pin) static const unsigned int gpio##pin##_pins[] = { pin } | 179 | #define DECLARE_MSM_GPIO_PINS(pin) static const unsigned int gpio##pin##_pins[] = { pin } |
@@ -328,6 +330,8 @@ static const unsigned int sdc1_data_pins[] = { 148 }; | |||
328 | static const unsigned int sdc2_clk_pins[] = { 149 }; | 330 | static const unsigned int sdc2_clk_pins[] = { 149 }; |
329 | static const unsigned int sdc2_cmd_pins[] = { 150 }; | 331 | static const unsigned int sdc2_cmd_pins[] = { 150 }; |
330 | static const unsigned int sdc2_data_pins[] = { 151 }; | 332 | static const unsigned int sdc2_data_pins[] = { 151 }; |
333 | static const unsigned int hsic_strobe_pins[] = { 152 }; | ||
334 | static const unsigned int hsic_data_pins[] = { 153 }; | ||
331 | 335 | ||
332 | #define FUNCTION(fname) \ | 336 | #define FUNCTION(fname) \ |
333 | [MSM_MUX_##fname] = { \ | 337 | [MSM_MUX_##fname] = { \ |
@@ -399,6 +403,37 @@ static const unsigned int sdc2_data_pins[] = { 151 }; | |||
399 | .intr_detection_width = -1, \ | 403 | .intr_detection_width = -1, \ |
400 | } | 404 | } |
401 | 405 | ||
406 | #define HSIC_PINGROUP(pg_name, ctl) \ | ||
407 | { \ | ||
408 | .name = #pg_name, \ | ||
409 | .pins = pg_name##_pins, \ | ||
410 | .npins = ARRAY_SIZE(pg_name##_pins), \ | ||
411 | .funcs = (int[]){ \ | ||
412 | MSM_MUX_gpio, \ | ||
413 | MSM_MUX_hsic_ctl, \ | ||
414 | }, \ | ||
415 | .nfuncs = 2, \ | ||
416 | .ctl_reg = ctl, \ | ||
417 | .io_reg = 0, \ | ||
418 | .intr_cfg_reg = 0, \ | ||
419 | .intr_status_reg = 0, \ | ||
420 | .intr_target_reg = 0, \ | ||
421 | .mux_bit = 25, \ | ||
422 | .pull_bit = -1, \ | ||
423 | .drv_bit = -1, \ | ||
424 | .oe_bit = -1, \ | ||
425 | .in_bit = -1, \ | ||
426 | .out_bit = -1, \ | ||
427 | .intr_enable_bit = -1, \ | ||
428 | .intr_status_bit = -1, \ | ||
429 | .intr_target_bit = -1, \ | ||
430 | .intr_target_kpss_val = -1, \ | ||
431 | .intr_raw_status_bit = -1, \ | ||
432 | .intr_polarity_bit = -1, \ | ||
433 | .intr_detection_bit = -1, \ | ||
434 | .intr_detection_width = -1, \ | ||
435 | } | ||
436 | |||
402 | /* | 437 | /* |
403 | * TODO: Add the rest of the possible functions and fill out | 438 | * TODO: Add the rest of the possible functions and fill out |
404 | * the pingroup table below. | 439 | * the pingroup table below. |
@@ -509,6 +544,7 @@ enum msm8x74_functions { | |||
509 | MSM_MUX_fm, | 544 | MSM_MUX_fm, |
510 | MSM_MUX_wlan, | 545 | MSM_MUX_wlan, |
511 | MSM_MUX_slimbus, | 546 | MSM_MUX_slimbus, |
547 | MSM_MUX_hsic_ctl, | ||
512 | MSM_MUX_NA, | 548 | MSM_MUX_NA, |
513 | }; | 549 | }; |
514 | 550 | ||
@@ -534,7 +570,8 @@ static const char * const gpio_groups[] = { | |||
534 | "gpio123", "gpio124", "gpio125", "gpio126", "gpio127", "gpio128", | 570 | "gpio123", "gpio124", "gpio125", "gpio126", "gpio127", "gpio128", |
535 | "gpio129", "gpio130", "gpio131", "gpio132", "gpio133", "gpio134", | 571 | "gpio129", "gpio130", "gpio131", "gpio132", "gpio133", "gpio134", |
536 | "gpio135", "gpio136", "gpio137", "gpio138", "gpio139", "gpio140", | 572 | "gpio135", "gpio136", "gpio137", "gpio138", "gpio139", "gpio140", |
537 | "gpio141", "gpio142", "gpio143", "gpio144", "gpio145" | 573 | "gpio141", "gpio142", "gpio143", "gpio144", "gpio145", "hsic_data", |
574 | "hsic_strobe", | ||
538 | }; | 575 | }; |
539 | 576 | ||
540 | static const char * const blsp_uart1_groups[] = { | 577 | static const char * const blsp_uart1_groups[] = { |
@@ -754,6 +791,7 @@ static const char * const wlan_groups[] = { | |||
754 | }; | 791 | }; |
755 | 792 | ||
756 | static const char * const slimbus_groups[] = { "gpio70", "gpio71" }; | 793 | static const char * const slimbus_groups[] = { "gpio70", "gpio71" }; |
794 | static const char * const hsic_ctl_groups[] = { "hsic_strobe", "hsic_data" }; | ||
757 | 795 | ||
758 | static const struct msm_function msm8x74_functions[] = { | 796 | static const struct msm_function msm8x74_functions[] = { |
759 | FUNCTION(gpio), | 797 | FUNCTION(gpio), |
@@ -861,6 +899,7 @@ static const struct msm_function msm8x74_functions[] = { | |||
861 | FUNCTION(fm), | 899 | FUNCTION(fm), |
862 | FUNCTION(wlan), | 900 | FUNCTION(wlan), |
863 | FUNCTION(slimbus), | 901 | FUNCTION(slimbus), |
902 | FUNCTION(hsic_ctl), | ||
864 | }; | 903 | }; |
865 | 904 | ||
866 | static const struct msm_pingroup msm8x74_groups[] = { | 905 | static const struct msm_pingroup msm8x74_groups[] = { |
@@ -1016,6 +1055,8 @@ static const struct msm_pingroup msm8x74_groups[] = { | |||
1016 | SDC_PINGROUP(sdc2_clk, 0x2048, 14, 6), | 1055 | SDC_PINGROUP(sdc2_clk, 0x2048, 14, 6), |
1017 | SDC_PINGROUP(sdc2_cmd, 0x2048, 11, 3), | 1056 | SDC_PINGROUP(sdc2_cmd, 0x2048, 11, 3), |
1018 | SDC_PINGROUP(sdc2_data, 0x2048, 9, 0), | 1057 | SDC_PINGROUP(sdc2_data, 0x2048, 9, 0), |
1058 | HSIC_PINGROUP(hsic_strobe, 0x2050), | ||
1059 | HSIC_PINGROUP(hsic_data, 0x2054), | ||
1019 | }; | 1060 | }; |
1020 | 1061 | ||
1021 | #define NUM_GPIO_PINGROUPS 146 | 1062 | #define NUM_GPIO_PINGROUPS 146 |
diff --git a/drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c b/drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c index 9191727aff5e..0d1392fc32dd 100644 --- a/drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c +++ b/drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c | |||
@@ -744,6 +744,7 @@ static int pm8xxx_pin_populate(struct pm8xxx_mpp *pctrl, | |||
744 | static const struct of_device_id pm8xxx_mpp_of_match[] = { | 744 | static const struct of_device_id pm8xxx_mpp_of_match[] = { |
745 | { .compatible = "qcom,pm8018-mpp" }, | 745 | { .compatible = "qcom,pm8018-mpp" }, |
746 | { .compatible = "qcom,pm8038-mpp" }, | 746 | { .compatible = "qcom,pm8038-mpp" }, |
747 | { .compatible = "qcom,pm8058-mpp" }, | ||
747 | { .compatible = "qcom,pm8917-mpp" }, | 748 | { .compatible = "qcom,pm8917-mpp" }, |
748 | { .compatible = "qcom,pm8821-mpp" }, | 749 | { .compatible = "qcom,pm8821-mpp" }, |
749 | { .compatible = "qcom,pm8921-mpp" }, | 750 | { .compatible = "qcom,pm8921-mpp" }, |
diff --git a/drivers/pinctrl/samsung/pinctrl-exynos5440.c b/drivers/pinctrl/samsung/pinctrl-exynos5440.c index fb71fc3e5aa0..3000df80709f 100644 --- a/drivers/pinctrl/samsung/pinctrl-exynos5440.c +++ b/drivers/pinctrl/samsung/pinctrl-exynos5440.c | |||
@@ -998,6 +998,7 @@ static struct platform_driver exynos5440_pinctrl_driver = { | |||
998 | .driver = { | 998 | .driver = { |
999 | .name = "exynos5440-pinctrl", | 999 | .name = "exynos5440-pinctrl", |
1000 | .of_match_table = exynos5440_pinctrl_dt_match, | 1000 | .of_match_table = exynos5440_pinctrl_dt_match, |
1001 | .suppress_bind_attrs = true, | ||
1001 | }, | 1002 | }, |
1002 | }; | 1003 | }; |
1003 | 1004 | ||
diff --git a/drivers/pinctrl/samsung/pinctrl-samsung.c b/drivers/pinctrl/samsung/pinctrl-samsung.c index ed0b70881e19..513fe6b23248 100644 --- a/drivers/pinctrl/samsung/pinctrl-samsung.c +++ b/drivers/pinctrl/samsung/pinctrl-samsung.c | |||
@@ -1274,6 +1274,7 @@ static struct platform_driver samsung_pinctrl_driver = { | |||
1274 | .driver = { | 1274 | .driver = { |
1275 | .name = "samsung-pinctrl", | 1275 | .name = "samsung-pinctrl", |
1276 | .of_match_table = samsung_pinctrl_dt_match, | 1276 | .of_match_table = samsung_pinctrl_dt_match, |
1277 | .suppress_bind_attrs = true, | ||
1277 | }, | 1278 | }, |
1278 | }; | 1279 | }; |
1279 | 1280 | ||
diff --git a/drivers/pinctrl/sh-pfc/core.c b/drivers/pinctrl/sh-pfc/core.c index 9b9cee06ec59..a3b82041b6a2 100644 --- a/drivers/pinctrl/sh-pfc/core.c +++ b/drivers/pinctrl/sh-pfc/core.c | |||
@@ -598,15 +598,6 @@ static int sh_pfc_probe(struct platform_device *pdev) | |||
598 | return 0; | 598 | return 0; |
599 | } | 599 | } |
600 | 600 | ||
601 | static int sh_pfc_remove(struct platform_device *pdev) | ||
602 | { | ||
603 | #ifdef CONFIG_PINCTRL_SH_PFC_GPIO | ||
604 | sh_pfc_unregister_gpiochip(platform_get_drvdata(pdev)); | ||
605 | #endif | ||
606 | |||
607 | return 0; | ||
608 | } | ||
609 | |||
610 | static const struct platform_device_id sh_pfc_id_table[] = { | 601 | static const struct platform_device_id sh_pfc_id_table[] = { |
611 | #ifdef CONFIG_PINCTRL_PFC_SH7203 | 602 | #ifdef CONFIG_PINCTRL_PFC_SH7203 |
612 | { "pfc-sh7203", (kernel_ulong_t)&sh7203_pinmux_info }, | 603 | { "pfc-sh7203", (kernel_ulong_t)&sh7203_pinmux_info }, |
@@ -650,7 +641,6 @@ static const struct platform_device_id sh_pfc_id_table[] = { | |||
650 | 641 | ||
651 | static struct platform_driver sh_pfc_driver = { | 642 | static struct platform_driver sh_pfc_driver = { |
652 | .probe = sh_pfc_probe, | 643 | .probe = sh_pfc_probe, |
653 | .remove = sh_pfc_remove, | ||
654 | .id_table = sh_pfc_id_table, | 644 | .id_table = sh_pfc_id_table, |
655 | .driver = { | 645 | .driver = { |
656 | .name = DRV_NAME, | 646 | .name = DRV_NAME, |
diff --git a/drivers/pinctrl/sh-pfc/core.h b/drivers/pinctrl/sh-pfc/core.h index dc1b2adb24c5..0bbdea5849f4 100644 --- a/drivers/pinctrl/sh-pfc/core.h +++ b/drivers/pinctrl/sh-pfc/core.h | |||
@@ -10,50 +10,16 @@ | |||
10 | #ifndef __SH_PFC_CORE_H__ | 10 | #ifndef __SH_PFC_CORE_H__ |
11 | #define __SH_PFC_CORE_H__ | 11 | #define __SH_PFC_CORE_H__ |
12 | 12 | ||
13 | #include <linux/compiler.h> | ||
14 | #include <linux/spinlock.h> | ||
15 | #include <linux/types.h> | 13 | #include <linux/types.h> |
16 | 14 | ||
17 | #include "sh_pfc.h" | 15 | #include "sh_pfc.h" |
18 | 16 | ||
19 | struct sh_pfc_window { | ||
20 | phys_addr_t phys; | ||
21 | void __iomem *virt; | ||
22 | unsigned long size; | ||
23 | }; | ||
24 | |||
25 | struct sh_pfc_chip; | ||
26 | struct sh_pfc_pinctrl; | ||
27 | |||
28 | struct sh_pfc_pin_range { | 17 | struct sh_pfc_pin_range { |
29 | u16 start; | 18 | u16 start; |
30 | u16 end; | 19 | u16 end; |
31 | }; | 20 | }; |
32 | 21 | ||
33 | struct sh_pfc { | ||
34 | struct device *dev; | ||
35 | const struct sh_pfc_soc_info *info; | ||
36 | spinlock_t lock; | ||
37 | |||
38 | unsigned int num_windows; | ||
39 | struct sh_pfc_window *windows; | ||
40 | unsigned int num_irqs; | ||
41 | unsigned int *irqs; | ||
42 | |||
43 | struct sh_pfc_pin_range *ranges; | ||
44 | unsigned int nr_ranges; | ||
45 | |||
46 | unsigned int nr_gpio_pins; | ||
47 | |||
48 | struct sh_pfc_chip *gpio; | ||
49 | #ifdef CONFIG_SUPERH | ||
50 | struct sh_pfc_chip *func; | ||
51 | #endif | ||
52 | |||
53 | }; | ||
54 | |||
55 | int sh_pfc_register_gpiochip(struct sh_pfc *pfc); | 22 | int sh_pfc_register_gpiochip(struct sh_pfc *pfc); |
56 | int sh_pfc_unregister_gpiochip(struct sh_pfc *pfc); | ||
57 | 23 | ||
58 | int sh_pfc_register_pinctrl(struct sh_pfc *pfc); | 24 | int sh_pfc_register_pinctrl(struct sh_pfc *pfc); |
59 | 25 | ||
@@ -67,28 +33,4 @@ void sh_pfc_write_reg(struct sh_pfc *pfc, u32 reg, unsigned int width, | |||
67 | int sh_pfc_get_pin_index(struct sh_pfc *pfc, unsigned int pin); | 33 | int sh_pfc_get_pin_index(struct sh_pfc *pfc, unsigned int pin); |
68 | int sh_pfc_config_mux(struct sh_pfc *pfc, unsigned mark, int pinmux_type); | 34 | int sh_pfc_config_mux(struct sh_pfc *pfc, unsigned mark, int pinmux_type); |
69 | 35 | ||
70 | extern const struct sh_pfc_soc_info emev2_pinmux_info; | ||
71 | extern const struct sh_pfc_soc_info r8a73a4_pinmux_info; | ||
72 | extern const struct sh_pfc_soc_info r8a7740_pinmux_info; | ||
73 | extern const struct sh_pfc_soc_info r8a7778_pinmux_info; | ||
74 | extern const struct sh_pfc_soc_info r8a7779_pinmux_info; | ||
75 | extern const struct sh_pfc_soc_info r8a7790_pinmux_info; | ||
76 | extern const struct sh_pfc_soc_info r8a7791_pinmux_info; | ||
77 | extern const struct sh_pfc_soc_info r8a7793_pinmux_info; | ||
78 | extern const struct sh_pfc_soc_info r8a7794_pinmux_info; | ||
79 | extern const struct sh_pfc_soc_info r8a7795_pinmux_info; | ||
80 | extern const struct sh_pfc_soc_info sh7203_pinmux_info; | ||
81 | extern const struct sh_pfc_soc_info sh7264_pinmux_info; | ||
82 | extern const struct sh_pfc_soc_info sh7269_pinmux_info; | ||
83 | extern const struct sh_pfc_soc_info sh73a0_pinmux_info; | ||
84 | extern const struct sh_pfc_soc_info sh7720_pinmux_info; | ||
85 | extern const struct sh_pfc_soc_info sh7722_pinmux_info; | ||
86 | extern const struct sh_pfc_soc_info sh7723_pinmux_info; | ||
87 | extern const struct sh_pfc_soc_info sh7724_pinmux_info; | ||
88 | extern const struct sh_pfc_soc_info sh7734_pinmux_info; | ||
89 | extern const struct sh_pfc_soc_info sh7757_pinmux_info; | ||
90 | extern const struct sh_pfc_soc_info sh7785_pinmux_info; | ||
91 | extern const struct sh_pfc_soc_info sh7786_pinmux_info; | ||
92 | extern const struct sh_pfc_soc_info shx3_pinmux_info; | ||
93 | |||
94 | #endif /* __SH_PFC_CORE_H__ */ | 36 | #endif /* __SH_PFC_CORE_H__ */ |
diff --git a/drivers/pinctrl/sh-pfc/gpio.c b/drivers/pinctrl/sh-pfc/gpio.c index 97dff6a09ff0..6b5422766f13 100644 --- a/drivers/pinctrl/sh-pfc/gpio.c +++ b/drivers/pinctrl/sh-pfc/gpio.c | |||
@@ -318,7 +318,7 @@ sh_pfc_add_gpiochip(struct sh_pfc *pfc, int(*setup)(struct sh_pfc_chip *), | |||
318 | if (ret < 0) | 318 | if (ret < 0) |
319 | return ERR_PTR(ret); | 319 | return ERR_PTR(ret); |
320 | 320 | ||
321 | ret = gpiochip_add_data(&chip->gpio_chip, chip); | 321 | ret = devm_gpiochip_add_data(pfc->dev, &chip->gpio_chip, chip); |
322 | if (unlikely(ret < 0)) | 322 | if (unlikely(ret < 0)) |
323 | return ERR_PTR(ret); | 323 | return ERR_PTR(ret); |
324 | 324 | ||
@@ -399,18 +399,7 @@ int sh_pfc_register_gpiochip(struct sh_pfc *pfc) | |||
399 | chip = sh_pfc_add_gpiochip(pfc, gpio_function_setup, NULL); | 399 | chip = sh_pfc_add_gpiochip(pfc, gpio_function_setup, NULL); |
400 | if (IS_ERR(chip)) | 400 | if (IS_ERR(chip)) |
401 | return PTR_ERR(chip); | 401 | return PTR_ERR(chip); |
402 | |||
403 | pfc->func = chip; | ||
404 | #endif /* CONFIG_SUPERH */ | 402 | #endif /* CONFIG_SUPERH */ |
405 | 403 | ||
406 | return 0; | 404 | return 0; |
407 | } | 405 | } |
408 | |||
409 | int sh_pfc_unregister_gpiochip(struct sh_pfc *pfc) | ||
410 | { | ||
411 | gpiochip_remove(&pfc->gpio->gpio_chip); | ||
412 | #ifdef CONFIG_SUPERH | ||
413 | gpiochip_remove(&pfc->func->gpio_chip); | ||
414 | #endif | ||
415 | return 0; | ||
416 | } | ||
diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a73a4.c b/drivers/pinctrl/sh-pfc/pfc-r8a73a4.c index d9d9228b15fa..ff5655dee67e 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a73a4.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a73a4.c | |||
@@ -21,7 +21,6 @@ | |||
21 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
22 | #include <linux/pinctrl/pinconf-generic.h> | 22 | #include <linux/pinctrl/pinconf-generic.h> |
23 | 23 | ||
24 | #include "core.h" | ||
25 | #include "sh_pfc.h" | 24 | #include "sh_pfc.h" |
26 | 25 | ||
27 | #define CPU_ALL_PORT(fn, pfx, sfx) \ | 26 | #define CPU_ALL_PORT(fn, pfx, sfx) \ |
diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7740.c b/drivers/pinctrl/sh-pfc/pfc-r8a7740.c index 7f7c8a6e76e8..35f436bcb849 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7740.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7740.c | |||
@@ -22,7 +22,6 @@ | |||
22 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
23 | #include <linux/pinctrl/pinconf-generic.h> | 23 | #include <linux/pinctrl/pinconf-generic.h> |
24 | 24 | ||
25 | #include "core.h" | ||
26 | #include "sh_pfc.h" | 25 | #include "sh_pfc.h" |
27 | 26 | ||
28 | #define CPU_ALL_PORT(fn, pfx, sfx) \ | 27 | #define CPU_ALL_PORT(fn, pfx, sfx) \ |
diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7778.c b/drivers/pinctrl/sh-pfc/pfc-r8a7778.c index 411d0887ba19..18ef7042b3d1 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7778.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7778.c | |||
@@ -23,7 +23,7 @@ | |||
23 | #include <linux/io.h> | 23 | #include <linux/io.h> |
24 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
25 | #include <linux/pinctrl/pinconf-generic.h> | 25 | #include <linux/pinctrl/pinconf-generic.h> |
26 | #include "core.h" | 26 | |
27 | #include "sh_pfc.h" | 27 | #include "sh_pfc.h" |
28 | 28 | ||
29 | #define PORT_GP_PUP_1(bank, pin, fn, sfx) \ | 29 | #define PORT_GP_PUP_1(bank, pin, fn, sfx) \ |
diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c index eed8daa464cc..b769c05480da 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c | |||
@@ -24,7 +24,6 @@ | |||
24 | #include <linux/io.h> | 24 | #include <linux/io.h> |
25 | #include <linux/kernel.h> | 25 | #include <linux/kernel.h> |
26 | 26 | ||
27 | #include "core.h" | ||
28 | #include "sh_pfc.h" | 27 | #include "sh_pfc.h" |
29 | 28 | ||
30 | /* | 29 | /* |
@@ -4696,47 +4695,6 @@ static const char * const vin3_groups[] = { | |||
4696 | "vin3_clk", | 4695 | "vin3_clk", |
4697 | }; | 4696 | }; |
4698 | 4697 | ||
4699 | #define IOCTRL6 0x8c | ||
4700 | |||
4701 | static int r8a7790_get_io_voltage(struct sh_pfc *pfc, unsigned int pin) | ||
4702 | { | ||
4703 | u32 data, mask; | ||
4704 | |||
4705 | if (WARN(pin < RCAR_GP_PIN(3, 0) || pin > RCAR_GP_PIN(3, 31), "invalid pin %#x", pin)) | ||
4706 | return -EINVAL; | ||
4707 | |||
4708 | data = ioread32(pfc->windows->virt + IOCTRL6), | ||
4709 | /* Bits in IOCTRL6 are numbered in opposite order to pins */ | ||
4710 | mask = 0x80000000 >> (pin & 0x1f); | ||
4711 | |||
4712 | return (data & mask) ? 3300 : 1800; | ||
4713 | } | ||
4714 | |||
4715 | static int r8a7790_set_io_voltage(struct sh_pfc *pfc, unsigned int pin, u16 mV) | ||
4716 | { | ||
4717 | u32 data, mask; | ||
4718 | |||
4719 | if (WARN(pin < RCAR_GP_PIN(3, 0) || pin > RCAR_GP_PIN(3, 31), "invalid pin %#x", pin)) | ||
4720 | return -EINVAL; | ||
4721 | |||
4722 | if (mV != 1800 && mV != 3300) | ||
4723 | return -EINVAL; | ||
4724 | |||
4725 | data = ioread32(pfc->windows->virt + IOCTRL6); | ||
4726 | /* Bits in IOCTRL6 are numbered in opposite order to pins */ | ||
4727 | mask = 0x80000000 >> (pin & 0x1f); | ||
4728 | |||
4729 | if (mV == 3300) | ||
4730 | data |= mask; | ||
4731 | else | ||
4732 | data &= ~mask; | ||
4733 | |||
4734 | iowrite32(~data, pfc->windows->virt); /* unlock reg */ | ||
4735 | iowrite32(data, pfc->windows->virt + IOCTRL6); | ||
4736 | |||
4737 | return 0; | ||
4738 | } | ||
4739 | |||
4740 | static const struct sh_pfc_function pinmux_functions[] = { | 4698 | static const struct sh_pfc_function pinmux_functions[] = { |
4741 | SH_PFC_FUNCTION(audio_clk), | 4699 | SH_PFC_FUNCTION(audio_clk), |
4742 | SH_PFC_FUNCTION(avb), | 4700 | SH_PFC_FUNCTION(avb), |
@@ -5736,14 +5694,23 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = { | |||
5736 | { }, | 5694 | { }, |
5737 | }; | 5695 | }; |
5738 | 5696 | ||
5739 | static const struct sh_pfc_soc_operations pinmux_ops = { | 5697 | static int r8a7790_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin, u32 *pocctrl) |
5740 | .get_io_voltage = r8a7790_get_io_voltage, | 5698 | { |
5741 | .set_io_voltage = r8a7790_set_io_voltage, | 5699 | if (pin < RCAR_GP_PIN(3, 0) || pin > RCAR_GP_PIN(3, 31)) |
5700 | return -EINVAL; | ||
5701 | |||
5702 | *pocctrl = 0xe606008c; | ||
5703 | |||
5704 | return 31 - (pin & 0x1f); | ||
5705 | } | ||
5706 | |||
5707 | static const struct sh_pfc_soc_operations r8a7790_pinmux_ops = { | ||
5708 | .pin_to_pocctrl = r8a7790_pin_to_pocctrl, | ||
5742 | }; | 5709 | }; |
5743 | 5710 | ||
5744 | const struct sh_pfc_soc_info r8a7790_pinmux_info = { | 5711 | const struct sh_pfc_soc_info r8a7790_pinmux_info = { |
5745 | .name = "r8a77900_pfc", | 5712 | .name = "r8a77900_pfc", |
5746 | .ops = &pinmux_ops, | 5713 | .ops = &r8a7790_pinmux_ops, |
5747 | .unlock_reg = 0xe6060000, /* PMMR */ | 5714 | .unlock_reg = 0xe6060000, /* PMMR */ |
5748 | 5715 | ||
5749 | .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, | 5716 | .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, |
diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c index 01abbd5b4e49..0c1a60c9a844 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c | |||
@@ -11,7 +11,6 @@ | |||
11 | 11 | ||
12 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
13 | 13 | ||
14 | #include "core.h" | ||
15 | #include "sh_pfc.h" | 14 | #include "sh_pfc.h" |
16 | 15 | ||
17 | #define CPU_ALL_PORT(fn, sfx) \ | 16 | #define CPU_ALL_PORT(fn, sfx) \ |
diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7795.c b/drivers/pinctrl/sh-pfc/pfc-r8a7795.c index 44632b1a5c97..b74cdd310d83 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7795.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7795.c | |||
@@ -17,8 +17,12 @@ | |||
17 | PORT_GP_CFG_16(0, fn, sfx, SH_PFC_PIN_CFG_DRIVE_STRENGTH), \ | 17 | PORT_GP_CFG_16(0, fn, sfx, SH_PFC_PIN_CFG_DRIVE_STRENGTH), \ |
18 | PORT_GP_CFG_28(1, fn, sfx, SH_PFC_PIN_CFG_DRIVE_STRENGTH), \ | 18 | PORT_GP_CFG_28(1, fn, sfx, SH_PFC_PIN_CFG_DRIVE_STRENGTH), \ |
19 | PORT_GP_CFG_15(2, fn, sfx, SH_PFC_PIN_CFG_DRIVE_STRENGTH), \ | 19 | PORT_GP_CFG_15(2, fn, sfx, SH_PFC_PIN_CFG_DRIVE_STRENGTH), \ |
20 | PORT_GP_CFG_16(3, fn, sfx, SH_PFC_PIN_CFG_DRIVE_STRENGTH), \ | 20 | PORT_GP_CFG_12(3, fn, sfx, SH_PFC_PIN_CFG_DRIVE_STRENGTH | SH_PFC_PIN_CFG_IO_VOLTAGE), \ |
21 | PORT_GP_CFG_18(4, fn, sfx, SH_PFC_PIN_CFG_DRIVE_STRENGTH), \ | 21 | PORT_GP_CFG_1(3, 12, fn, sfx, SH_PFC_PIN_CFG_DRIVE_STRENGTH), \ |
22 | PORT_GP_CFG_1(3, 13, fn, sfx, SH_PFC_PIN_CFG_DRIVE_STRENGTH), \ | ||
23 | PORT_GP_CFG_1(3, 14, fn, sfx, SH_PFC_PIN_CFG_DRIVE_STRENGTH), \ | ||
24 | PORT_GP_CFG_1(3, 15, fn, sfx, SH_PFC_PIN_CFG_DRIVE_STRENGTH), \ | ||
25 | PORT_GP_CFG_18(4, fn, sfx, SH_PFC_PIN_CFG_DRIVE_STRENGTH | SH_PFC_PIN_CFG_IO_VOLTAGE), \ | ||
22 | PORT_GP_CFG_26(5, fn, sfx, SH_PFC_PIN_CFG_DRIVE_STRENGTH), \ | 26 | PORT_GP_CFG_26(5, fn, sfx, SH_PFC_PIN_CFG_DRIVE_STRENGTH), \ |
23 | PORT_GP_CFG_32(6, fn, sfx, SH_PFC_PIN_CFG_DRIVE_STRENGTH), \ | 27 | PORT_GP_CFG_32(6, fn, sfx, SH_PFC_PIN_CFG_DRIVE_STRENGTH), \ |
24 | PORT_GP_CFG_4(7, fn, sfx, SH_PFC_PIN_CFG_DRIVE_STRENGTH) | 28 | PORT_GP_CFG_4(7, fn, sfx, SH_PFC_PIN_CFG_DRIVE_STRENGTH) |
@@ -552,6 +556,9 @@ static const u16 pinmux_data[] = { | |||
552 | PINMUX_SINGLE(AVS2), | 556 | PINMUX_SINGLE(AVS2), |
553 | PINMUX_SINGLE(HDMI0_CEC), | 557 | PINMUX_SINGLE(HDMI0_CEC), |
554 | PINMUX_SINGLE(HDMI1_CEC), | 558 | PINMUX_SINGLE(HDMI1_CEC), |
559 | PINMUX_SINGLE(I2C_SEL_0_1), | ||
560 | PINMUX_SINGLE(I2C_SEL_3_1), | ||
561 | PINMUX_SINGLE(I2C_SEL_5_1), | ||
555 | PINMUX_SINGLE(MSIOF0_RXD), | 562 | PINMUX_SINGLE(MSIOF0_RXD), |
556 | PINMUX_SINGLE(MSIOF0_SCK), | 563 | PINMUX_SINGLE(MSIOF0_SCK), |
557 | PINMUX_SINGLE(MSIOF0_TXD), | 564 | PINMUX_SINGLE(MSIOF0_TXD), |
@@ -1401,11 +1408,6 @@ static const u16 pinmux_data[] = { | |||
1401 | PINMUX_IPSR_MSEL(IP17_7_4, STP_ISSYNC_0_E, SEL_SSP1_0_4), | 1408 | PINMUX_IPSR_MSEL(IP17_7_4, STP_ISSYNC_0_E, SEL_SSP1_0_4), |
1402 | PINMUX_IPSR_MSEL(IP17_7_4, RIF2_D1_B, SEL_DRIF2_1), | 1409 | PINMUX_IPSR_MSEL(IP17_7_4, RIF2_D1_B, SEL_DRIF2_1), |
1403 | PINMUX_IPSR_GPSR(IP17_7_4, TPU0TO3), | 1410 | PINMUX_IPSR_GPSR(IP17_7_4, TPU0TO3), |
1404 | |||
1405 | /* I2C */ | ||
1406 | PINMUX_IPSR_NOGP(0, I2C_SEL_0_1), | ||
1407 | PINMUX_IPSR_NOGP(0, I2C_SEL_3_1), | ||
1408 | PINMUX_IPSR_NOGP(0, I2C_SEL_5_1), | ||
1409 | }; | 1411 | }; |
1410 | 1412 | ||
1411 | static const struct sh_pfc_pin pinmux_pins[] = { | 1413 | static const struct sh_pfc_pin pinmux_pins[] = { |
@@ -1654,6 +1656,221 @@ static const unsigned int canfd1_data_mux[] = { | |||
1654 | CANFD1_TX_MARK, CANFD1_RX_MARK, | 1656 | CANFD1_TX_MARK, CANFD1_RX_MARK, |
1655 | }; | 1657 | }; |
1656 | 1658 | ||
1659 | /* - DRIF0 --------------------------------------------------------------- */ | ||
1660 | static const unsigned int drif0_ctrl_a_pins[] = { | ||
1661 | /* CLK, SYNC */ | ||
1662 | RCAR_GP_PIN(6, 8), RCAR_GP_PIN(6, 9), | ||
1663 | }; | ||
1664 | static const unsigned int drif0_ctrl_a_mux[] = { | ||
1665 | RIF0_CLK_A_MARK, RIF0_SYNC_A_MARK, | ||
1666 | }; | ||
1667 | static const unsigned int drif0_data0_a_pins[] = { | ||
1668 | /* D0 */ | ||
1669 | RCAR_GP_PIN(6, 10), | ||
1670 | }; | ||
1671 | static const unsigned int drif0_data0_a_mux[] = { | ||
1672 | RIF0_D0_A_MARK, | ||
1673 | }; | ||
1674 | static const unsigned int drif0_data1_a_pins[] = { | ||
1675 | /* D1 */ | ||
1676 | RCAR_GP_PIN(6, 7), | ||
1677 | }; | ||
1678 | static const unsigned int drif0_data1_a_mux[] = { | ||
1679 | RIF0_D1_A_MARK, | ||
1680 | }; | ||
1681 | static const unsigned int drif0_ctrl_b_pins[] = { | ||
1682 | /* CLK, SYNC */ | ||
1683 | RCAR_GP_PIN(5, 0), RCAR_GP_PIN(5, 4), | ||
1684 | }; | ||
1685 | static const unsigned int drif0_ctrl_b_mux[] = { | ||
1686 | RIF0_CLK_B_MARK, RIF0_SYNC_B_MARK, | ||
1687 | }; | ||
1688 | static const unsigned int drif0_data0_b_pins[] = { | ||
1689 | /* D0 */ | ||
1690 | RCAR_GP_PIN(5, 1), | ||
1691 | }; | ||
1692 | static const unsigned int drif0_data0_b_mux[] = { | ||
1693 | RIF0_D0_B_MARK, | ||
1694 | }; | ||
1695 | static const unsigned int drif0_data1_b_pins[] = { | ||
1696 | /* D1 */ | ||
1697 | RCAR_GP_PIN(5, 2), | ||
1698 | }; | ||
1699 | static const unsigned int drif0_data1_b_mux[] = { | ||
1700 | RIF0_D1_B_MARK, | ||
1701 | }; | ||
1702 | static const unsigned int drif0_ctrl_c_pins[] = { | ||
1703 | /* CLK, SYNC */ | ||
1704 | RCAR_GP_PIN(5, 12), RCAR_GP_PIN(5, 15), | ||
1705 | }; | ||
1706 | static const unsigned int drif0_ctrl_c_mux[] = { | ||
1707 | RIF0_CLK_C_MARK, RIF0_SYNC_C_MARK, | ||
1708 | }; | ||
1709 | static const unsigned int drif0_data0_c_pins[] = { | ||
1710 | /* D0 */ | ||
1711 | RCAR_GP_PIN(5, 13), | ||
1712 | }; | ||
1713 | static const unsigned int drif0_data0_c_mux[] = { | ||
1714 | RIF0_D0_C_MARK, | ||
1715 | }; | ||
1716 | static const unsigned int drif0_data1_c_pins[] = { | ||
1717 | /* D1 */ | ||
1718 | RCAR_GP_PIN(5, 14), | ||
1719 | }; | ||
1720 | static const unsigned int drif0_data1_c_mux[] = { | ||
1721 | RIF0_D1_C_MARK, | ||
1722 | }; | ||
1723 | /* - DRIF1 --------------------------------------------------------------- */ | ||
1724 | static const unsigned int drif1_ctrl_a_pins[] = { | ||
1725 | /* CLK, SYNC */ | ||
1726 | RCAR_GP_PIN(6, 17), RCAR_GP_PIN(6, 18), | ||
1727 | }; | ||
1728 | static const unsigned int drif1_ctrl_a_mux[] = { | ||
1729 | RIF1_CLK_A_MARK, RIF1_SYNC_A_MARK, | ||
1730 | }; | ||
1731 | static const unsigned int drif1_data0_a_pins[] = { | ||
1732 | /* D0 */ | ||
1733 | RCAR_GP_PIN(6, 19), | ||
1734 | }; | ||
1735 | static const unsigned int drif1_data0_a_mux[] = { | ||
1736 | RIF1_D0_A_MARK, | ||
1737 | }; | ||
1738 | static const unsigned int drif1_data1_a_pins[] = { | ||
1739 | /* D1 */ | ||
1740 | RCAR_GP_PIN(6, 20), | ||
1741 | }; | ||
1742 | static const unsigned int drif1_data1_a_mux[] = { | ||
1743 | RIF1_D1_A_MARK, | ||
1744 | }; | ||
1745 | static const unsigned int drif1_ctrl_b_pins[] = { | ||
1746 | /* CLK, SYNC */ | ||
1747 | RCAR_GP_PIN(5, 9), RCAR_GP_PIN(5, 3), | ||
1748 | }; | ||
1749 | static const unsigned int drif1_ctrl_b_mux[] = { | ||
1750 | RIF1_CLK_B_MARK, RIF1_SYNC_B_MARK, | ||
1751 | }; | ||
1752 | static const unsigned int drif1_data0_b_pins[] = { | ||
1753 | /* D0 */ | ||
1754 | RCAR_GP_PIN(5, 7), | ||
1755 | }; | ||
1756 | static const unsigned int drif1_data0_b_mux[] = { | ||
1757 | RIF1_D0_B_MARK, | ||
1758 | }; | ||
1759 | static const unsigned int drif1_data1_b_pins[] = { | ||
1760 | /* D1 */ | ||
1761 | RCAR_GP_PIN(5, 8), | ||
1762 | }; | ||
1763 | static const unsigned int drif1_data1_b_mux[] = { | ||
1764 | RIF1_D1_B_MARK, | ||
1765 | }; | ||
1766 | static const unsigned int drif1_ctrl_c_pins[] = { | ||
1767 | /* CLK, SYNC */ | ||
1768 | RCAR_GP_PIN(5, 5), RCAR_GP_PIN(5, 11), | ||
1769 | }; | ||
1770 | static const unsigned int drif1_ctrl_c_mux[] = { | ||
1771 | RIF1_CLK_C_MARK, RIF1_SYNC_C_MARK, | ||
1772 | }; | ||
1773 | static const unsigned int drif1_data0_c_pins[] = { | ||
1774 | /* D0 */ | ||
1775 | RCAR_GP_PIN(5, 6), | ||
1776 | }; | ||
1777 | static const unsigned int drif1_data0_c_mux[] = { | ||
1778 | RIF1_D0_C_MARK, | ||
1779 | }; | ||
1780 | static const unsigned int drif1_data1_c_pins[] = { | ||
1781 | /* D1 */ | ||
1782 | RCAR_GP_PIN(5, 10), | ||
1783 | }; | ||
1784 | static const unsigned int drif1_data1_c_mux[] = { | ||
1785 | RIF1_D1_C_MARK, | ||
1786 | }; | ||
1787 | /* - DRIF2 --------------------------------------------------------------- */ | ||
1788 | static const unsigned int drif2_ctrl_a_pins[] = { | ||
1789 | /* CLK, SYNC */ | ||
1790 | RCAR_GP_PIN(6, 8), RCAR_GP_PIN(6, 9), | ||
1791 | }; | ||
1792 | static const unsigned int drif2_ctrl_a_mux[] = { | ||
1793 | RIF2_CLK_A_MARK, RIF2_SYNC_A_MARK, | ||
1794 | }; | ||
1795 | static const unsigned int drif2_data0_a_pins[] = { | ||
1796 | /* D0 */ | ||
1797 | RCAR_GP_PIN(6, 7), | ||
1798 | }; | ||
1799 | static const unsigned int drif2_data0_a_mux[] = { | ||
1800 | RIF2_D0_A_MARK, | ||
1801 | }; | ||
1802 | static const unsigned int drif2_data1_a_pins[] = { | ||
1803 | /* D1 */ | ||
1804 | RCAR_GP_PIN(6, 10), | ||
1805 | }; | ||
1806 | static const unsigned int drif2_data1_a_mux[] = { | ||
1807 | RIF2_D1_A_MARK, | ||
1808 | }; | ||
1809 | static const unsigned int drif2_ctrl_b_pins[] = { | ||
1810 | /* CLK, SYNC */ | ||
1811 | RCAR_GP_PIN(6, 26), RCAR_GP_PIN(6, 27), | ||
1812 | }; | ||
1813 | static const unsigned int drif2_ctrl_b_mux[] = { | ||
1814 | RIF2_CLK_B_MARK, RIF2_SYNC_B_MARK, | ||
1815 | }; | ||
1816 | static const unsigned int drif2_data0_b_pins[] = { | ||
1817 | /* D0 */ | ||
1818 | RCAR_GP_PIN(6, 30), | ||
1819 | }; | ||
1820 | static const unsigned int drif2_data0_b_mux[] = { | ||
1821 | RIF2_D0_B_MARK, | ||
1822 | }; | ||
1823 | static const unsigned int drif2_data1_b_pins[] = { | ||
1824 | /* D1 */ | ||
1825 | RCAR_GP_PIN(6, 31), | ||
1826 | }; | ||
1827 | static const unsigned int drif2_data1_b_mux[] = { | ||
1828 | RIF2_D1_B_MARK, | ||
1829 | }; | ||
1830 | /* - DRIF3 --------------------------------------------------------------- */ | ||
1831 | static const unsigned int drif3_ctrl_a_pins[] = { | ||
1832 | /* CLK, SYNC */ | ||
1833 | RCAR_GP_PIN(6, 17), RCAR_GP_PIN(6, 18), | ||
1834 | }; | ||
1835 | static const unsigned int drif3_ctrl_a_mux[] = { | ||
1836 | RIF3_CLK_A_MARK, RIF3_SYNC_A_MARK, | ||
1837 | }; | ||
1838 | static const unsigned int drif3_data0_a_pins[] = { | ||
1839 | /* D0 */ | ||
1840 | RCAR_GP_PIN(6, 19), | ||
1841 | }; | ||
1842 | static const unsigned int drif3_data0_a_mux[] = { | ||
1843 | RIF3_D0_A_MARK, | ||
1844 | }; | ||
1845 | static const unsigned int drif3_data1_a_pins[] = { | ||
1846 | /* D1 */ | ||
1847 | RCAR_GP_PIN(6, 20), | ||
1848 | }; | ||
1849 | static const unsigned int drif3_data1_a_mux[] = { | ||
1850 | RIF3_D1_A_MARK, | ||
1851 | }; | ||
1852 | static const unsigned int drif3_ctrl_b_pins[] = { | ||
1853 | /* CLK, SYNC */ | ||
1854 | RCAR_GP_PIN(6, 24), RCAR_GP_PIN(6, 25), | ||
1855 | }; | ||
1856 | static const unsigned int drif3_ctrl_b_mux[] = { | ||
1857 | RIF3_CLK_B_MARK, RIF3_SYNC_B_MARK, | ||
1858 | }; | ||
1859 | static const unsigned int drif3_data0_b_pins[] = { | ||
1860 | /* D0 */ | ||
1861 | RCAR_GP_PIN(6, 28), | ||
1862 | }; | ||
1863 | static const unsigned int drif3_data0_b_mux[] = { | ||
1864 | RIF3_D0_B_MARK, | ||
1865 | }; | ||
1866 | static const unsigned int drif3_data1_b_pins[] = { | ||
1867 | /* D1 */ | ||
1868 | RCAR_GP_PIN(6, 29), | ||
1869 | }; | ||
1870 | static const unsigned int drif3_data1_b_mux[] = { | ||
1871 | RIF3_D1_B_MARK, | ||
1872 | }; | ||
1873 | |||
1657 | /* - HSCIF0 ----------------------------------------------------------------- */ | 1874 | /* - HSCIF0 ----------------------------------------------------------------- */ |
1658 | static const unsigned int hscif0_data_pins[] = { | 1875 | static const unsigned int hscif0_data_pins[] = { |
1659 | /* RX, TX */ | 1876 | /* RX, TX */ |
@@ -3346,6 +3563,36 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { | |||
3346 | SH_PFC_PIN_GROUP(canfd0_data_a), | 3563 | SH_PFC_PIN_GROUP(canfd0_data_a), |
3347 | SH_PFC_PIN_GROUP(canfd0_data_b), | 3564 | SH_PFC_PIN_GROUP(canfd0_data_b), |
3348 | SH_PFC_PIN_GROUP(canfd1_data), | 3565 | SH_PFC_PIN_GROUP(canfd1_data), |
3566 | SH_PFC_PIN_GROUP(drif0_ctrl_a), | ||
3567 | SH_PFC_PIN_GROUP(drif0_data0_a), | ||
3568 | SH_PFC_PIN_GROUP(drif0_data1_a), | ||
3569 | SH_PFC_PIN_GROUP(drif0_ctrl_b), | ||
3570 | SH_PFC_PIN_GROUP(drif0_data0_b), | ||
3571 | SH_PFC_PIN_GROUP(drif0_data1_b), | ||
3572 | SH_PFC_PIN_GROUP(drif0_ctrl_c), | ||
3573 | SH_PFC_PIN_GROUP(drif0_data0_c), | ||
3574 | SH_PFC_PIN_GROUP(drif0_data1_c), | ||
3575 | SH_PFC_PIN_GROUP(drif1_ctrl_a), | ||
3576 | SH_PFC_PIN_GROUP(drif1_data0_a), | ||
3577 | SH_PFC_PIN_GROUP(drif1_data1_a), | ||
3578 | SH_PFC_PIN_GROUP(drif1_ctrl_b), | ||
3579 | SH_PFC_PIN_GROUP(drif1_data0_b), | ||
3580 | SH_PFC_PIN_GROUP(drif1_data1_b), | ||
3581 | SH_PFC_PIN_GROUP(drif1_ctrl_c), | ||
3582 | SH_PFC_PIN_GROUP(drif1_data0_c), | ||
3583 | SH_PFC_PIN_GROUP(drif1_data1_c), | ||
3584 | SH_PFC_PIN_GROUP(drif2_ctrl_a), | ||
3585 | SH_PFC_PIN_GROUP(drif2_data0_a), | ||
3586 | SH_PFC_PIN_GROUP(drif2_data1_a), | ||
3587 | SH_PFC_PIN_GROUP(drif2_ctrl_b), | ||
3588 | SH_PFC_PIN_GROUP(drif2_data0_b), | ||
3589 | SH_PFC_PIN_GROUP(drif2_data1_b), | ||
3590 | SH_PFC_PIN_GROUP(drif3_ctrl_a), | ||
3591 | SH_PFC_PIN_GROUP(drif3_data0_a), | ||
3592 | SH_PFC_PIN_GROUP(drif3_data1_a), | ||
3593 | SH_PFC_PIN_GROUP(drif3_ctrl_b), | ||
3594 | SH_PFC_PIN_GROUP(drif3_data0_b), | ||
3595 | SH_PFC_PIN_GROUP(drif3_data1_b), | ||
3349 | SH_PFC_PIN_GROUP(hscif0_data), | 3596 | SH_PFC_PIN_GROUP(hscif0_data), |
3350 | SH_PFC_PIN_GROUP(hscif0_clk), | 3597 | SH_PFC_PIN_GROUP(hscif0_clk), |
3351 | SH_PFC_PIN_GROUP(hscif0_ctrl), | 3598 | SH_PFC_PIN_GROUP(hscif0_ctrl), |
@@ -3629,6 +3876,48 @@ static const char * const canfd1_groups[] = { | |||
3629 | "canfd1_data", | 3876 | "canfd1_data", |
3630 | }; | 3877 | }; |
3631 | 3878 | ||
3879 | static const char * const drif0_groups[] = { | ||
3880 | "drif0_ctrl_a", | ||
3881 | "drif0_data0_a", | ||
3882 | "drif0_data1_a", | ||
3883 | "drif0_ctrl_b", | ||
3884 | "drif0_data0_b", | ||
3885 | "drif0_data1_b", | ||
3886 | "drif0_ctrl_c", | ||
3887 | "drif0_data0_c", | ||
3888 | "drif0_data1_c", | ||
3889 | }; | ||
3890 | |||
3891 | static const char * const drif1_groups[] = { | ||
3892 | "drif1_ctrl_a", | ||
3893 | "drif1_data0_a", | ||
3894 | "drif1_data1_a", | ||
3895 | "drif1_ctrl_b", | ||
3896 | "drif1_data0_b", | ||
3897 | "drif1_data1_b", | ||
3898 | "drif1_ctrl_c", | ||
3899 | "drif1_data0_c", | ||
3900 | "drif1_data1_c", | ||
3901 | }; | ||
3902 | |||
3903 | static const char * const drif2_groups[] = { | ||
3904 | "drif2_ctrl_a", | ||
3905 | "drif2_data0_a", | ||
3906 | "drif2_data1_a", | ||
3907 | "drif2_ctrl_b", | ||
3908 | "drif2_data0_b", | ||
3909 | "drif2_data1_b", | ||
3910 | }; | ||
3911 | |||
3912 | static const char * const drif3_groups[] = { | ||
3913 | "drif3_ctrl_a", | ||
3914 | "drif3_data0_a", | ||
3915 | "drif3_data1_a", | ||
3916 | "drif3_ctrl_b", | ||
3917 | "drif3_data0_b", | ||
3918 | "drif3_data1_b", | ||
3919 | }; | ||
3920 | |||
3632 | static const char * const hscif0_groups[] = { | 3921 | static const char * const hscif0_groups[] = { |
3633 | "hscif0_data", | 3922 | "hscif0_data", |
3634 | "hscif0_clk", | 3923 | "hscif0_clk", |
@@ -3972,6 +4261,10 @@ static const struct sh_pfc_function pinmux_functions[] = { | |||
3972 | SH_PFC_FUNCTION(can_clk), | 4261 | SH_PFC_FUNCTION(can_clk), |
3973 | SH_PFC_FUNCTION(canfd0), | 4262 | SH_PFC_FUNCTION(canfd0), |
3974 | SH_PFC_FUNCTION(canfd1), | 4263 | SH_PFC_FUNCTION(canfd1), |
4264 | SH_PFC_FUNCTION(drif0), | ||
4265 | SH_PFC_FUNCTION(drif1), | ||
4266 | SH_PFC_FUNCTION(drif2), | ||
4267 | SH_PFC_FUNCTION(drif3), | ||
3975 | SH_PFC_FUNCTION(hscif0), | 4268 | SH_PFC_FUNCTION(hscif0), |
3976 | SH_PFC_FUNCTION(hscif1), | 4269 | SH_PFC_FUNCTION(hscif1), |
3977 | SH_PFC_FUNCTION(hscif2), | 4270 | SH_PFC_FUNCTION(hscif2), |
@@ -4765,8 +5058,28 @@ static const struct pinmux_drive_reg pinmux_drive_regs[] = { | |||
4765 | { }, | 5058 | { }, |
4766 | }; | 5059 | }; |
4767 | 5060 | ||
5061 | static int r8a7795_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin, u32 *pocctrl) | ||
5062 | { | ||
5063 | int bit = -EINVAL; | ||
5064 | |||
5065 | *pocctrl = 0xe6060380; | ||
5066 | |||
5067 | if (pin >= RCAR_GP_PIN(3, 0) && pin <= RCAR_GP_PIN(3, 11)) | ||
5068 | bit = pin & 0x1f; | ||
5069 | |||
5070 | if (pin >= RCAR_GP_PIN(4, 0) && pin <= RCAR_GP_PIN(4, 17)) | ||
5071 | bit = (pin & 0x1f) + 12; | ||
5072 | |||
5073 | return bit; | ||
5074 | } | ||
5075 | |||
5076 | static const struct sh_pfc_soc_operations r8a7795_pinmux_ops = { | ||
5077 | .pin_to_pocctrl = r8a7795_pin_to_pocctrl, | ||
5078 | }; | ||
5079 | |||
4768 | const struct sh_pfc_soc_info r8a7795_pinmux_info = { | 5080 | const struct sh_pfc_soc_info r8a7795_pinmux_info = { |
4769 | .name = "r8a77950_pfc", | 5081 | .name = "r8a77950_pfc", |
5082 | .ops = &r8a7795_pinmux_ops, | ||
4770 | .unlock_reg = 0xe6060000, /* PMMR */ | 5083 | .unlock_reg = 0xe6060000, /* PMMR */ |
4771 | 5084 | ||
4772 | .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, | 5085 | .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, |
diff --git a/drivers/pinctrl/sh-pfc/pfc-sh7757.c b/drivers/pinctrl/sh-pfc/pfc-sh7757.c index 0555a1fe076e..6d8c31caefc1 100644 --- a/drivers/pinctrl/sh-pfc/pfc-sh7757.c +++ b/drivers/pinctrl/sh-pfc/pfc-sh7757.c | |||
@@ -1625,7 +1625,6 @@ static const struct pinmux_func pinmux_func_gpios[] = { | |||
1625 | GPIO_FN(VBIOS_CS), | 1625 | GPIO_FN(VBIOS_CS), |
1626 | 1626 | ||
1627 | /* PTW (mobule: LBSC, EVC, SCIF) */ | 1627 | /* PTW (mobule: LBSC, EVC, SCIF) */ |
1628 | GPIO_FN(A16), | ||
1629 | GPIO_FN(A15), | 1628 | GPIO_FN(A15), |
1630 | GPIO_FN(A14), | 1629 | GPIO_FN(A14), |
1631 | GPIO_FN(A13), | 1630 | GPIO_FN(A13), |
diff --git a/drivers/pinctrl/sh-pfc/pinctrl.c b/drivers/pinctrl/sh-pfc/pinctrl.c index fdb445d68b9a..e208ee04a9f4 100644 --- a/drivers/pinctrl/sh-pfc/pinctrl.c +++ b/drivers/pinctrl/sh-pfc/pinctrl.c | |||
@@ -632,19 +632,21 @@ static int sh_pfc_pinconf_get(struct pinctrl_dev *pctldev, unsigned _pin, | |||
632 | } | 632 | } |
633 | 633 | ||
634 | case PIN_CONFIG_POWER_SOURCE: { | 634 | case PIN_CONFIG_POWER_SOURCE: { |
635 | int ret; | 635 | u32 pocctrl, val; |
636 | int bit; | ||
636 | 637 | ||
637 | if (!pfc->info->ops || !pfc->info->ops->get_io_voltage) | 638 | if (!pfc->info->ops || !pfc->info->ops->pin_to_pocctrl) |
638 | return -ENOTSUPP; | 639 | return -ENOTSUPP; |
639 | 640 | ||
641 | bit = pfc->info->ops->pin_to_pocctrl(pfc, _pin, &pocctrl); | ||
642 | if (WARN(bit < 0, "invalid pin %#x", _pin)) | ||
643 | return bit; | ||
644 | |||
640 | spin_lock_irqsave(&pfc->lock, flags); | 645 | spin_lock_irqsave(&pfc->lock, flags); |
641 | ret = pfc->info->ops->get_io_voltage(pfc, _pin); | 646 | val = sh_pfc_read_reg(pfc, pocctrl, 32); |
642 | spin_unlock_irqrestore(&pfc->lock, flags); | 647 | spin_unlock_irqrestore(&pfc->lock, flags); |
643 | 648 | ||
644 | if (ret < 0) | 649 | *config = (val & BIT(bit)) ? 3300 : 1800; |
645 | return ret; | ||
646 | |||
647 | *config = ret; | ||
648 | break; | 650 | break; |
649 | } | 651 | } |
650 | 652 | ||
@@ -696,20 +698,29 @@ static int sh_pfc_pinconf_set(struct pinctrl_dev *pctldev, unsigned _pin, | |||
696 | } | 698 | } |
697 | 699 | ||
698 | case PIN_CONFIG_POWER_SOURCE: { | 700 | case PIN_CONFIG_POWER_SOURCE: { |
699 | unsigned int arg = | 701 | unsigned int mV = pinconf_to_config_argument(configs[i]); |
700 | pinconf_to_config_argument(configs[i]); | 702 | u32 pocctrl, val; |
701 | int ret; | 703 | int bit; |
702 | 704 | ||
703 | if (!pfc->info->ops || !pfc->info->ops->set_io_voltage) | 705 | if (!pfc->info->ops || !pfc->info->ops->pin_to_pocctrl) |
704 | return -ENOTSUPP; | 706 | return -ENOTSUPP; |
705 | 707 | ||
708 | bit = pfc->info->ops->pin_to_pocctrl(pfc, _pin, &pocctrl); | ||
709 | if (WARN(bit < 0, "invalid pin %#x", _pin)) | ||
710 | return bit; | ||
711 | |||
712 | if (mV != 1800 && mV != 3300) | ||
713 | return -EINVAL; | ||
714 | |||
706 | spin_lock_irqsave(&pfc->lock, flags); | 715 | spin_lock_irqsave(&pfc->lock, flags); |
707 | ret = pfc->info->ops->set_io_voltage(pfc, _pin, arg); | 716 | val = sh_pfc_read_reg(pfc, pocctrl, 32); |
717 | if (mV == 3300) | ||
718 | val |= BIT(bit); | ||
719 | else | ||
720 | val &= ~BIT(bit); | ||
721 | sh_pfc_write_reg(pfc, pocctrl, 32, val); | ||
708 | spin_unlock_irqrestore(&pfc->lock, flags); | 722 | spin_unlock_irqrestore(&pfc->lock, flags); |
709 | 723 | ||
710 | if (ret) | ||
711 | return ret; | ||
712 | |||
713 | break; | 724 | break; |
714 | } | 725 | } |
715 | 726 | ||
@@ -803,8 +814,5 @@ int sh_pfc_register_pinctrl(struct sh_pfc *pfc) | |||
803 | pmx->pctl_desc.npins = pfc->info->nr_pins; | 814 | pmx->pctl_desc.npins = pfc->info->nr_pins; |
804 | 815 | ||
805 | pmx->pctl = devm_pinctrl_register(pfc->dev, &pmx->pctl_desc, pmx); | 816 | pmx->pctl = devm_pinctrl_register(pfc->dev, &pmx->pctl_desc, pmx); |
806 | if (IS_ERR(pmx->pctl)) | 817 | return PTR_ERR_OR_ZERO(pmx->pctl); |
807 | return PTR_ERR(pmx->pctl); | ||
808 | |||
809 | return 0; | ||
810 | } | 818 | } |
diff --git a/drivers/pinctrl/sh-pfc/sh_pfc.h b/drivers/pinctrl/sh-pfc/sh_pfc.h index 656ea32f776c..5e966c09434d 100644 --- a/drivers/pinctrl/sh-pfc/sh_pfc.h +++ b/drivers/pinctrl/sh-pfc/sh_pfc.h | |||
@@ -13,6 +13,7 @@ | |||
13 | 13 | ||
14 | #include <linux/bug.h> | 14 | #include <linux/bug.h> |
15 | #include <linux/pinctrl/pinconf-generic.h> | 15 | #include <linux/pinctrl/pinconf-generic.h> |
16 | #include <linux/spinlock.h> | ||
16 | #include <linux/stringify.h> | 17 | #include <linux/stringify.h> |
17 | 18 | ||
18 | enum { | 19 | enum { |
@@ -182,16 +183,38 @@ struct pinmux_range { | |||
182 | u16 force; | 183 | u16 force; |
183 | }; | 184 | }; |
184 | 185 | ||
185 | struct sh_pfc; | 186 | struct sh_pfc_window { |
187 | phys_addr_t phys; | ||
188 | void __iomem *virt; | ||
189 | unsigned long size; | ||
190 | }; | ||
191 | |||
192 | struct sh_pfc_pin_range; | ||
193 | |||
194 | struct sh_pfc { | ||
195 | struct device *dev; | ||
196 | const struct sh_pfc_soc_info *info; | ||
197 | spinlock_t lock; | ||
198 | |||
199 | unsigned int num_windows; | ||
200 | struct sh_pfc_window *windows; | ||
201 | unsigned int num_irqs; | ||
202 | unsigned int *irqs; | ||
203 | |||
204 | struct sh_pfc_pin_range *ranges; | ||
205 | unsigned int nr_ranges; | ||
206 | |||
207 | unsigned int nr_gpio_pins; | ||
208 | |||
209 | struct sh_pfc_chip *gpio; | ||
210 | }; | ||
186 | 211 | ||
187 | struct sh_pfc_soc_operations { | 212 | struct sh_pfc_soc_operations { |
188 | int (*init)(struct sh_pfc *pfc); | 213 | int (*init)(struct sh_pfc *pfc); |
189 | unsigned int (*get_bias)(struct sh_pfc *pfc, unsigned int pin); | 214 | unsigned int (*get_bias)(struct sh_pfc *pfc, unsigned int pin); |
190 | void (*set_bias)(struct sh_pfc *pfc, unsigned int pin, | 215 | void (*set_bias)(struct sh_pfc *pfc, unsigned int pin, |
191 | unsigned int bias); | 216 | unsigned int bias); |
192 | int (*get_io_voltage)(struct sh_pfc *pfc, unsigned int pin); | 217 | int (*pin_to_pocctrl)(struct sh_pfc *pfc, unsigned int pin, u32 *pocctrl); |
193 | int (*set_io_voltage)(struct sh_pfc *pfc, unsigned int pin, | ||
194 | u16 voltage_mV); | ||
195 | }; | 218 | }; |
196 | 219 | ||
197 | struct sh_pfc_soc_info { | 220 | struct sh_pfc_soc_info { |
@@ -227,6 +250,30 @@ struct sh_pfc_soc_info { | |||
227 | u32 unlock_reg; | 250 | u32 unlock_reg; |
228 | }; | 251 | }; |
229 | 252 | ||
253 | extern const struct sh_pfc_soc_info emev2_pinmux_info; | ||
254 | extern const struct sh_pfc_soc_info r8a73a4_pinmux_info; | ||
255 | extern const struct sh_pfc_soc_info r8a7740_pinmux_info; | ||
256 | extern const struct sh_pfc_soc_info r8a7778_pinmux_info; | ||
257 | extern const struct sh_pfc_soc_info r8a7779_pinmux_info; | ||
258 | extern const struct sh_pfc_soc_info r8a7790_pinmux_info; | ||
259 | extern const struct sh_pfc_soc_info r8a7791_pinmux_info; | ||
260 | extern const struct sh_pfc_soc_info r8a7793_pinmux_info; | ||
261 | extern const struct sh_pfc_soc_info r8a7794_pinmux_info; | ||
262 | extern const struct sh_pfc_soc_info r8a7795_pinmux_info; | ||
263 | extern const struct sh_pfc_soc_info sh7203_pinmux_info; | ||
264 | extern const struct sh_pfc_soc_info sh7264_pinmux_info; | ||
265 | extern const struct sh_pfc_soc_info sh7269_pinmux_info; | ||
266 | extern const struct sh_pfc_soc_info sh73a0_pinmux_info; | ||
267 | extern const struct sh_pfc_soc_info sh7720_pinmux_info; | ||
268 | extern const struct sh_pfc_soc_info sh7722_pinmux_info; | ||
269 | extern const struct sh_pfc_soc_info sh7723_pinmux_info; | ||
270 | extern const struct sh_pfc_soc_info sh7724_pinmux_info; | ||
271 | extern const struct sh_pfc_soc_info sh7734_pinmux_info; | ||
272 | extern const struct sh_pfc_soc_info sh7757_pinmux_info; | ||
273 | extern const struct sh_pfc_soc_info sh7785_pinmux_info; | ||
274 | extern const struct sh_pfc_soc_info sh7786_pinmux_info; | ||
275 | extern const struct sh_pfc_soc_info shx3_pinmux_info; | ||
276 | |||
230 | /* ----------------------------------------------------------------------------- | 277 | /* ----------------------------------------------------------------------------- |
231 | * Helper macros to create pin and port lists | 278 | * Helper macros to create pin and port lists |
232 | */ | 279 | */ |
diff --git a/drivers/pinctrl/sirf/pinctrl-atlas7.c b/drivers/pinctrl/sirf/pinctrl-atlas7.c index 168c0f5d4079..19952f73fa8c 100644 --- a/drivers/pinctrl/sirf/pinctrl-atlas7.c +++ b/drivers/pinctrl/sirf/pinctrl-atlas7.c | |||
@@ -5424,8 +5424,10 @@ static int atlas7_pinmux_probe(struct platform_device *pdev) | |||
5424 | if (ret) | 5424 | if (ret) |
5425 | return ret; | 5425 | return ret; |
5426 | pmx->sys2pci_base = devm_ioremap_resource(&pdev->dev, &res); | 5426 | pmx->sys2pci_base = devm_ioremap_resource(&pdev->dev, &res); |
5427 | if (IS_ERR(pmx->sys2pci_base)) | 5427 | if (IS_ERR(pmx->sys2pci_base)) { |
5428 | of_node_put(sys2pci_np); | ||
5428 | return -ENOMEM; | 5429 | return -ENOMEM; |
5430 | } | ||
5429 | 5431 | ||
5430 | pmx->dev = &pdev->dev; | 5432 | pmx->dev = &pdev->dev; |
5431 | 5433 | ||
diff --git a/drivers/pinctrl/stm32/Kconfig b/drivers/pinctrl/stm32/Kconfig index 0f28841b2332..4c40dae384d1 100644 --- a/drivers/pinctrl/stm32/Kconfig +++ b/drivers/pinctrl/stm32/Kconfig | |||
@@ -13,4 +13,10 @@ config PINCTRL_STM32F429 | |||
13 | default MACH_STM32F429 | 13 | default MACH_STM32F429 |
14 | select PINCTRL_STM32 | 14 | select PINCTRL_STM32 |
15 | 15 | ||
16 | config PINCTRL_STM32F746 | ||
17 | bool "STMicroelectronics STM32F746 pin control" if COMPILE_TEST && !MACH_STM32F746 | ||
18 | depends on OF | ||
19 | default MACH_STM32F746 | ||
20 | select PINCTRL_STM32 | ||
21 | |||
16 | endif | 22 | endif |
diff --git a/drivers/pinctrl/stm32/Makefile b/drivers/pinctrl/stm32/Makefile index fc17d4238845..4a1ee748441f 100644 --- a/drivers/pinctrl/stm32/Makefile +++ b/drivers/pinctrl/stm32/Makefile | |||
@@ -3,3 +3,4 @@ obj-$(CONFIG_PINCTRL_STM32) += pinctrl-stm32.o | |||
3 | 3 | ||
4 | # SoC Drivers | 4 | # SoC Drivers |
5 | obj-$(CONFIG_PINCTRL_STM32F429) += pinctrl-stm32f429.o | 5 | obj-$(CONFIG_PINCTRL_STM32F429) += pinctrl-stm32f429.o |
6 | obj-$(CONFIG_PINCTRL_STM32F746) += pinctrl-stm32f746.o | ||
diff --git a/drivers/pinctrl/stm32/pinctrl-stm32.c b/drivers/pinctrl/stm32/pinctrl-stm32.c index ae9fab82a1b9..4ae596bf19b5 100644 --- a/drivers/pinctrl/stm32/pinctrl-stm32.c +++ b/drivers/pinctrl/stm32/pinctrl-stm32.c | |||
@@ -638,8 +638,8 @@ static u32 stm32_pconf_get_bias(struct stm32_gpio_bank *bank, | |||
638 | return (val >> (offset * 2)); | 638 | return (val >> (offset * 2)); |
639 | } | 639 | } |
640 | 640 | ||
641 | static bool stm32_pconf_input_get(struct stm32_gpio_bank *bank, | 641 | static bool stm32_pconf_get(struct stm32_gpio_bank *bank, |
642 | unsigned int offset) | 642 | unsigned int offset, bool dir) |
643 | { | 643 | { |
644 | unsigned long flags; | 644 | unsigned long flags; |
645 | u32 val; | 645 | u32 val; |
@@ -647,23 +647,12 @@ static bool stm32_pconf_input_get(struct stm32_gpio_bank *bank, | |||
647 | clk_enable(bank->clk); | 647 | clk_enable(bank->clk); |
648 | spin_lock_irqsave(&bank->lock, flags); | 648 | spin_lock_irqsave(&bank->lock, flags); |
649 | 649 | ||
650 | val = !!(readl_relaxed(bank->base + STM32_GPIO_IDR) & BIT(offset)); | 650 | if (dir) |
651 | 651 | val = !!(readl_relaxed(bank->base + STM32_GPIO_IDR) & | |
652 | spin_unlock_irqrestore(&bank->lock, flags); | 652 | BIT(offset)); |
653 | clk_disable(bank->clk); | 653 | else |
654 | 654 | val = !!(readl_relaxed(bank->base + STM32_GPIO_ODR) & | |
655 | return val; | 655 | BIT(offset)); |
656 | } | ||
657 | |||
658 | static bool stm32_pconf_output_get(struct stm32_gpio_bank *bank, | ||
659 | unsigned int offset) | ||
660 | { | ||
661 | unsigned long flags; | ||
662 | u32 val; | ||
663 | |||
664 | clk_enable(bank->clk); | ||
665 | spin_lock_irqsave(&bank->lock, flags); | ||
666 | val = !!(readl_relaxed(bank->base + STM32_GPIO_ODR) & BIT(offset)); | ||
667 | 656 | ||
668 | spin_unlock_irqrestore(&bank->lock, flags); | 657 | spin_unlock_irqrestore(&bank->lock, flags); |
669 | clk_disable(bank->clk); | 658 | clk_disable(bank->clk); |
@@ -772,7 +761,7 @@ static void stm32_pconf_dbg_show(struct pinctrl_dev *pctldev, | |||
772 | switch (mode) { | 761 | switch (mode) { |
773 | /* input */ | 762 | /* input */ |
774 | case 0: | 763 | case 0: |
775 | val = stm32_pconf_input_get(bank, offset); | 764 | val = stm32_pconf_get(bank, offset, true); |
776 | seq_printf(s, "- %s - %s", | 765 | seq_printf(s, "- %s - %s", |
777 | val ? "high" : "low", | 766 | val ? "high" : "low", |
778 | biasing[bias]); | 767 | biasing[bias]); |
@@ -782,7 +771,7 @@ static void stm32_pconf_dbg_show(struct pinctrl_dev *pctldev, | |||
782 | case 1: | 771 | case 1: |
783 | drive = stm32_pconf_get_driving(bank, offset); | 772 | drive = stm32_pconf_get_driving(bank, offset); |
784 | speed = stm32_pconf_get_speed(bank, offset); | 773 | speed = stm32_pconf_get_speed(bank, offset); |
785 | val = stm32_pconf_output_get(bank, offset); | 774 | val = stm32_pconf_get(bank, offset, false); |
786 | seq_printf(s, "- %s - %s - %s - %s %s", | 775 | seq_printf(s, "- %s - %s - %s - %s %s", |
787 | val ? "high" : "low", | 776 | val ? "high" : "low", |
788 | drive ? "open drain" : "push pull", | 777 | drive ? "open drain" : "push pull", |
diff --git a/drivers/pinctrl/stm32/pinctrl-stm32f746.c b/drivers/pinctrl/stm32/pinctrl-stm32f746.c new file mode 100644 index 000000000000..c0b4462ce97e --- /dev/null +++ b/drivers/pinctrl/stm32/pinctrl-stm32f746.c | |||
@@ -0,0 +1,1681 @@ | |||
1 | /* | ||
2 | * Copyright (C) Maxime Coquelin 2015 | ||
3 | * Author: Maxime Coquelin <mcoquelin.stm32@gmail.com> | ||
4 | * License terms: GNU General Public License (GPL), version 2 | ||
5 | */ | ||
6 | #include <linux/init.h> | ||
7 | #include <linux/of.h> | ||
8 | #include <linux/platform_device.h> | ||
9 | |||
10 | #include "pinctrl-stm32.h" | ||
11 | |||
12 | static const struct stm32_desc_pin stm32f746_pins[] = { | ||
13 | STM32_PIN( | ||
14 | PINCTRL_PIN(0, "PA0"), | ||
15 | STM32_FUNCTION(0, "GPIOA0"), | ||
16 | STM32_FUNCTION(2, "TIM2_CH1 TIM2_ETR"), | ||
17 | STM32_FUNCTION(3, "TIM5_CH1"), | ||
18 | STM32_FUNCTION(4, "TIM8_ETR"), | ||
19 | STM32_FUNCTION(8, "USART2_CTS"), | ||
20 | STM32_FUNCTION(9, "UART4_TX"), | ||
21 | STM32_FUNCTION(11, "SAI2_SD_B"), | ||
22 | STM32_FUNCTION(12, "ETH_MII_CRS"), | ||
23 | STM32_FUNCTION(16, "EVENTOUT"), | ||
24 | STM32_FUNCTION(17, "ANALOG") | ||
25 | ), | ||
26 | STM32_PIN( | ||
27 | PINCTRL_PIN(1, "PA1"), | ||
28 | STM32_FUNCTION(0, "GPIOA1"), | ||
29 | STM32_FUNCTION(2, "TIM2_CH2"), | ||
30 | STM32_FUNCTION(3, "TIM5_CH2"), | ||
31 | STM32_FUNCTION(8, "USART2_RTS"), | ||
32 | STM32_FUNCTION(9, "UART4_RX"), | ||
33 | STM32_FUNCTION(10, "QUADSPI_BK1_IO3"), | ||
34 | STM32_FUNCTION(11, "SAI2_MCLK_B"), | ||
35 | STM32_FUNCTION(12, "ETH_MII_RX_CLK ETH_RMII_REF_CLK"), | ||
36 | STM32_FUNCTION(15, "LCD_R2"), | ||
37 | STM32_FUNCTION(16, "EVENTOUT"), | ||
38 | STM32_FUNCTION(17, "ANALOG") | ||
39 | ), | ||
40 | STM32_PIN( | ||
41 | PINCTRL_PIN(2, "PA2"), | ||
42 | STM32_FUNCTION(0, "GPIOA2"), | ||
43 | STM32_FUNCTION(2, "TIM2_CH3"), | ||
44 | STM32_FUNCTION(3, "TIM5_CH3"), | ||
45 | STM32_FUNCTION(4, "TIM9_CH1"), | ||
46 | STM32_FUNCTION(8, "USART2_TX"), | ||
47 | STM32_FUNCTION(9, "SAI2_SCK_B"), | ||
48 | STM32_FUNCTION(12, "ETH_MDIO"), | ||
49 | STM32_FUNCTION(15, "LCD_R1"), | ||
50 | STM32_FUNCTION(16, "EVENTOUT"), | ||
51 | STM32_FUNCTION(17, "ANALOG") | ||
52 | ), | ||
53 | STM32_PIN( | ||
54 | PINCTRL_PIN(3, "PA3"), | ||
55 | STM32_FUNCTION(0, "GPIOA3"), | ||
56 | STM32_FUNCTION(2, "TIM2_CH4"), | ||
57 | STM32_FUNCTION(3, "TIM5_CH4"), | ||
58 | STM32_FUNCTION(4, "TIM9_CH2"), | ||
59 | STM32_FUNCTION(8, "USART2_RX"), | ||
60 | STM32_FUNCTION(11, "OTG_HS_ULPI_D0"), | ||
61 | STM32_FUNCTION(12, "ETH_MII_COL"), | ||
62 | STM32_FUNCTION(15, "LCD_B5"), | ||
63 | STM32_FUNCTION(16, "EVENTOUT"), | ||
64 | STM32_FUNCTION(17, "ANALOG") | ||
65 | ), | ||
66 | STM32_PIN( | ||
67 | PINCTRL_PIN(4, "PA4"), | ||
68 | STM32_FUNCTION(0, "GPIOA4"), | ||
69 | STM32_FUNCTION(6, "SPI1_NSS I2S1_WS"), | ||
70 | STM32_FUNCTION(7, "SPI3_NSS I2S3_WS"), | ||
71 | STM32_FUNCTION(8, "USART2_CK"), | ||
72 | STM32_FUNCTION(13, "OTG_HS_SOF"), | ||
73 | STM32_FUNCTION(14, "DCMI_HSYNC"), | ||
74 | STM32_FUNCTION(15, "LCD_VSYNC"), | ||
75 | STM32_FUNCTION(16, "EVENTOUT"), | ||
76 | STM32_FUNCTION(17, "ANALOG") | ||
77 | ), | ||
78 | STM32_PIN( | ||
79 | PINCTRL_PIN(5, "PA5"), | ||
80 | STM32_FUNCTION(0, "GPIOA5"), | ||
81 | STM32_FUNCTION(2, "TIM2_CH1 TIM2_ETR"), | ||
82 | STM32_FUNCTION(4, "TIM8_CH1N"), | ||
83 | STM32_FUNCTION(6, "SPI1_SCK I2S1_CK"), | ||
84 | STM32_FUNCTION(11, "OTG_HS_ULPI_CK"), | ||
85 | STM32_FUNCTION(15, "LCD_R4"), | ||
86 | STM32_FUNCTION(16, "EVENTOUT"), | ||
87 | STM32_FUNCTION(17, "ANALOG") | ||
88 | ), | ||
89 | STM32_PIN( | ||
90 | PINCTRL_PIN(6, "PA6"), | ||
91 | STM32_FUNCTION(0, "GPIOA6"), | ||
92 | STM32_FUNCTION(2, "TIM1_BKIN"), | ||
93 | STM32_FUNCTION(3, "TIM3_CH1"), | ||
94 | STM32_FUNCTION(4, "TIM8_BKIN"), | ||
95 | STM32_FUNCTION(6, "SPI1_MISO"), | ||
96 | STM32_FUNCTION(10, "TIM13_CH1"), | ||
97 | STM32_FUNCTION(14, "DCMI_PIXCLK"), | ||
98 | STM32_FUNCTION(15, "LCD_G2"), | ||
99 | STM32_FUNCTION(16, "EVENTOUT"), | ||
100 | STM32_FUNCTION(17, "ANALOG") | ||
101 | ), | ||
102 | STM32_PIN( | ||
103 | PINCTRL_PIN(7, "PA7"), | ||
104 | STM32_FUNCTION(0, "GPIOA7"), | ||
105 | STM32_FUNCTION(2, "TIM1_CH1N"), | ||
106 | STM32_FUNCTION(3, "TIM3_CH2"), | ||
107 | STM32_FUNCTION(4, "TIM8_CH1N"), | ||
108 | STM32_FUNCTION(6, "SPI1_MOSI I2S1_SD"), | ||
109 | STM32_FUNCTION(10, "TIM14_CH1"), | ||
110 | STM32_FUNCTION(12, "ETH_MII_RX_DV ETH_RMII_CRS_DV"), | ||
111 | STM32_FUNCTION(13, "FMC_SDNWE"), | ||
112 | STM32_FUNCTION(16, "EVENTOUT"), | ||
113 | STM32_FUNCTION(17, "ANALOG") | ||
114 | ), | ||
115 | STM32_PIN( | ||
116 | PINCTRL_PIN(8, "PA8"), | ||
117 | STM32_FUNCTION(0, "GPIOA8"), | ||
118 | STM32_FUNCTION(1, "MCO1"), | ||
119 | STM32_FUNCTION(2, "TIM1_CH1"), | ||
120 | STM32_FUNCTION(4, "TIM8_BKIN2"), | ||
121 | STM32_FUNCTION(5, "I2C3_SCL"), | ||
122 | STM32_FUNCTION(8, "USART1_CK"), | ||
123 | STM32_FUNCTION(11, "OTG_FS_SOF"), | ||
124 | STM32_FUNCTION(15, "LCD_R6"), | ||
125 | STM32_FUNCTION(16, "EVENTOUT"), | ||
126 | STM32_FUNCTION(17, "ANALOG") | ||
127 | ), | ||
128 | STM32_PIN( | ||
129 | PINCTRL_PIN(9, "PA9"), | ||
130 | STM32_FUNCTION(0, "GPIOA9"), | ||
131 | STM32_FUNCTION(2, "TIM1_CH2"), | ||
132 | STM32_FUNCTION(5, "I2C3_SMBA"), | ||
133 | STM32_FUNCTION(6, "SPI2_SCK I2S2_CK"), | ||
134 | STM32_FUNCTION(8, "USART1_TX"), | ||
135 | STM32_FUNCTION(14, "DCMI_D0"), | ||
136 | STM32_FUNCTION(16, "EVENTOUT"), | ||
137 | STM32_FUNCTION(17, "ANALOG") | ||
138 | ), | ||
139 | STM32_PIN( | ||
140 | PINCTRL_PIN(10, "PA10"), | ||
141 | STM32_FUNCTION(0, "GPIOA10"), | ||
142 | STM32_FUNCTION(2, "TIM1_CH3"), | ||
143 | STM32_FUNCTION(8, "USART1_RX"), | ||
144 | STM32_FUNCTION(11, "OTG_FS_ID"), | ||
145 | STM32_FUNCTION(14, "DCMI_D1"), | ||
146 | STM32_FUNCTION(16, "EVENTOUT"), | ||
147 | STM32_FUNCTION(17, "ANALOG") | ||
148 | ), | ||
149 | STM32_PIN( | ||
150 | PINCTRL_PIN(11, "PA11"), | ||
151 | STM32_FUNCTION(0, "GPIOA11"), | ||
152 | STM32_FUNCTION(2, "TIM1_CH4"), | ||
153 | STM32_FUNCTION(8, "USART1_CTS"), | ||
154 | STM32_FUNCTION(10, "CAN1_RX"), | ||
155 | STM32_FUNCTION(11, "OTG_FS_DM"), | ||
156 | STM32_FUNCTION(15, "LCD_R4"), | ||
157 | STM32_FUNCTION(16, "EVENTOUT"), | ||
158 | STM32_FUNCTION(17, "ANALOG") | ||
159 | ), | ||
160 | STM32_PIN( | ||
161 | PINCTRL_PIN(12, "PA12"), | ||
162 | STM32_FUNCTION(0, "GPIOA12"), | ||
163 | STM32_FUNCTION(2, "TIM1_ETR"), | ||
164 | STM32_FUNCTION(8, "USART1_RTS"), | ||
165 | STM32_FUNCTION(9, "SAI2_FS_B"), | ||
166 | STM32_FUNCTION(10, "CAN1_TX"), | ||
167 | STM32_FUNCTION(11, "OTG_FS_DP"), | ||
168 | STM32_FUNCTION(15, "LCD_R5"), | ||
169 | STM32_FUNCTION(16, "EVENTOUT"), | ||
170 | STM32_FUNCTION(17, "ANALOG") | ||
171 | ), | ||
172 | STM32_PIN( | ||
173 | PINCTRL_PIN(13, "PA13"), | ||
174 | STM32_FUNCTION(0, "GPIOA13"), | ||
175 | STM32_FUNCTION(1, "JTMS SWDIO"), | ||
176 | STM32_FUNCTION(16, "EVENTOUT"), | ||
177 | STM32_FUNCTION(17, "ANALOG") | ||
178 | ), | ||
179 | STM32_PIN( | ||
180 | PINCTRL_PIN(14, "PA14"), | ||
181 | STM32_FUNCTION(0, "GPIOA14"), | ||
182 | STM32_FUNCTION(1, "JTCK SWCLK"), | ||
183 | STM32_FUNCTION(16, "EVENTOUT"), | ||
184 | STM32_FUNCTION(17, "ANALOG") | ||
185 | ), | ||
186 | STM32_PIN( | ||
187 | PINCTRL_PIN(15, "PA15"), | ||
188 | STM32_FUNCTION(0, "GPIOA15"), | ||
189 | STM32_FUNCTION(1, "JTDI"), | ||
190 | STM32_FUNCTION(2, "TIM2_CH1 TIM2_ETR"), | ||
191 | STM32_FUNCTION(5, "HDMI_CEC"), | ||
192 | STM32_FUNCTION(6, "SPI1_NSS I2S1_WS"), | ||
193 | STM32_FUNCTION(7, "SPI3_NSS I2S3_WS"), | ||
194 | STM32_FUNCTION(9, "UART4_RTS"), | ||
195 | STM32_FUNCTION(16, "EVENTOUT"), | ||
196 | STM32_FUNCTION(17, "ANALOG") | ||
197 | ), | ||
198 | STM32_PIN( | ||
199 | PINCTRL_PIN(16, "PB0"), | ||
200 | STM32_FUNCTION(0, "GPIOB0"), | ||
201 | STM32_FUNCTION(2, "TIM1_CH2N"), | ||
202 | STM32_FUNCTION(3, "TIM3_CH3"), | ||
203 | STM32_FUNCTION(4, "TIM8_CH2N"), | ||
204 | STM32_FUNCTION(9, "UART4_CTS"), | ||
205 | STM32_FUNCTION(10, "LCD_R3"), | ||
206 | STM32_FUNCTION(11, "OTG_HS_ULPI_D1"), | ||
207 | STM32_FUNCTION(12, "ETH_MII_RXD2"), | ||
208 | STM32_FUNCTION(16, "EVENTOUT"), | ||
209 | STM32_FUNCTION(17, "ANALOG") | ||
210 | ), | ||
211 | STM32_PIN( | ||
212 | PINCTRL_PIN(17, "PB1"), | ||
213 | STM32_FUNCTION(0, "GPIOB1"), | ||
214 | STM32_FUNCTION(2, "TIM1_CH3N"), | ||
215 | STM32_FUNCTION(3, "TIM3_CH4"), | ||
216 | STM32_FUNCTION(4, "TIM8_CH3N"), | ||
217 | STM32_FUNCTION(10, "LCD_R6"), | ||
218 | STM32_FUNCTION(11, "OTG_HS_ULPI_D2"), | ||
219 | STM32_FUNCTION(12, "ETH_MII_RXD3"), | ||
220 | STM32_FUNCTION(16, "EVENTOUT"), | ||
221 | STM32_FUNCTION(17, "ANALOG") | ||
222 | ), | ||
223 | STM32_PIN( | ||
224 | PINCTRL_PIN(18, "PB2"), | ||
225 | STM32_FUNCTION(0, "GPIOB2"), | ||
226 | STM32_FUNCTION(7, "SAI1_SD_A"), | ||
227 | STM32_FUNCTION(8, "SPI3_MOSI I2S3_SD"), | ||
228 | STM32_FUNCTION(10, "QUADSPI_CLK"), | ||
229 | STM32_FUNCTION(16, "EVENTOUT"), | ||
230 | STM32_FUNCTION(17, "ANALOG") | ||
231 | ), | ||
232 | STM32_PIN( | ||
233 | PINCTRL_PIN(19, "PB3"), | ||
234 | STM32_FUNCTION(0, "GPIOB3"), | ||
235 | STM32_FUNCTION(1, "JTDO TRACESWO"), | ||
236 | STM32_FUNCTION(2, "TIM2_CH2"), | ||
237 | STM32_FUNCTION(6, "SPI1_SCK I2S1_CK"), | ||
238 | STM32_FUNCTION(7, "SPI3_SCK I2S3_CK"), | ||
239 | STM32_FUNCTION(16, "EVENTOUT"), | ||
240 | STM32_FUNCTION(17, "ANALOG") | ||
241 | ), | ||
242 | STM32_PIN( | ||
243 | PINCTRL_PIN(20, "PB4"), | ||
244 | STM32_FUNCTION(0, "GPIOB4"), | ||
245 | STM32_FUNCTION(1, "NJTRST"), | ||
246 | STM32_FUNCTION(3, "TIM3_CH1"), | ||
247 | STM32_FUNCTION(6, "SPI1_MISO"), | ||
248 | STM32_FUNCTION(7, "SPI3_MISO"), | ||
249 | STM32_FUNCTION(8, "SPI2_NSS I2S2_WS"), | ||
250 | STM32_FUNCTION(16, "EVENTOUT"), | ||
251 | STM32_FUNCTION(17, "ANALOG") | ||
252 | ), | ||
253 | STM32_PIN( | ||
254 | PINCTRL_PIN(21, "PB5"), | ||
255 | STM32_FUNCTION(0, "GPIOB5"), | ||
256 | STM32_FUNCTION(3, "TIM3_CH2"), | ||
257 | STM32_FUNCTION(5, "I2C1_SMBA"), | ||
258 | STM32_FUNCTION(6, "SPI1_MOSI I2S1_SD"), | ||
259 | STM32_FUNCTION(7, "SPI3_MOSI I2S3_SD"), | ||
260 | STM32_FUNCTION(10, "CAN2_RX"), | ||
261 | STM32_FUNCTION(11, "OTG_HS_ULPI_D7"), | ||
262 | STM32_FUNCTION(12, "ETH_PPS_OUT"), | ||
263 | STM32_FUNCTION(13, "FMC_SDCKE1"), | ||
264 | STM32_FUNCTION(14, "DCMI_D10"), | ||
265 | STM32_FUNCTION(16, "EVENTOUT"), | ||
266 | STM32_FUNCTION(17, "ANALOG") | ||
267 | ), | ||
268 | STM32_PIN( | ||
269 | PINCTRL_PIN(22, "PB6"), | ||
270 | STM32_FUNCTION(0, "GPIOB6"), | ||
271 | STM32_FUNCTION(3, "TIM4_CH1"), | ||
272 | STM32_FUNCTION(4, "HDMI_CEC"), | ||
273 | STM32_FUNCTION(5, "I2C1_SCL"), | ||
274 | STM32_FUNCTION(8, "USART1_TX"), | ||
275 | STM32_FUNCTION(10, "CAN2_TX"), | ||
276 | STM32_FUNCTION(11, "QUADSPI_BK1_NCS"), | ||
277 | STM32_FUNCTION(13, "FMC_SDNE1"), | ||
278 | STM32_FUNCTION(14, "DCMI_D5"), | ||
279 | STM32_FUNCTION(16, "EVENTOUT"), | ||
280 | STM32_FUNCTION(17, "ANALOG") | ||
281 | ), | ||
282 | STM32_PIN( | ||
283 | PINCTRL_PIN(23, "PB7"), | ||
284 | STM32_FUNCTION(0, "GPIOB7"), | ||
285 | STM32_FUNCTION(3, "TIM4_CH2"), | ||
286 | STM32_FUNCTION(5, "I2C1_SDA"), | ||
287 | STM32_FUNCTION(8, "USART1_RX"), | ||
288 | STM32_FUNCTION(13, "FMC_NL"), | ||
289 | STM32_FUNCTION(14, "DCMI_VSYNC"), | ||
290 | STM32_FUNCTION(16, "EVENTOUT"), | ||
291 | STM32_FUNCTION(17, "ANALOG") | ||
292 | ), | ||
293 | STM32_PIN( | ||
294 | PINCTRL_PIN(24, "PB8"), | ||
295 | STM32_FUNCTION(0, "GPIOB8"), | ||
296 | STM32_FUNCTION(3, "TIM4_CH3"), | ||
297 | STM32_FUNCTION(4, "TIM10_CH1"), | ||
298 | STM32_FUNCTION(5, "I2C1_SCL"), | ||
299 | STM32_FUNCTION(10, "CAN1_RX"), | ||
300 | STM32_FUNCTION(12, "ETH_MII_TXD3"), | ||
301 | STM32_FUNCTION(13, "SDMMC1_D4"), | ||
302 | STM32_FUNCTION(14, "DCMI_D6"), | ||
303 | STM32_FUNCTION(15, "LCD_B6"), | ||
304 | STM32_FUNCTION(16, "EVENTOUT"), | ||
305 | STM32_FUNCTION(17, "ANALOG") | ||
306 | ), | ||
307 | STM32_PIN( | ||
308 | PINCTRL_PIN(25, "PB9"), | ||
309 | STM32_FUNCTION(0, "GPIOB9"), | ||
310 | STM32_FUNCTION(3, "TIM4_CH4"), | ||
311 | STM32_FUNCTION(4, "TIM11_CH1"), | ||
312 | STM32_FUNCTION(5, "I2C1_SDA"), | ||
313 | STM32_FUNCTION(6, "SPI2_NSS I2S2_WS"), | ||
314 | STM32_FUNCTION(10, "CAN1_TX"), | ||
315 | STM32_FUNCTION(13, "SDMMC1_D5"), | ||
316 | STM32_FUNCTION(14, "DCMI_D7"), | ||
317 | STM32_FUNCTION(15, "LCD_B7"), | ||
318 | STM32_FUNCTION(16, "EVENTOUT"), | ||
319 | STM32_FUNCTION(17, "ANALOG") | ||
320 | ), | ||
321 | STM32_PIN( | ||
322 | PINCTRL_PIN(26, "PB10"), | ||
323 | STM32_FUNCTION(0, "GPIOB10"), | ||
324 | STM32_FUNCTION(2, "TIM2_CH3"), | ||
325 | STM32_FUNCTION(5, "I2C2_SCL"), | ||
326 | STM32_FUNCTION(6, "SPI2_SCK I2S2_CK"), | ||
327 | STM32_FUNCTION(8, "USART3_TX"), | ||
328 | STM32_FUNCTION(11, "OTG_HS_ULPI_D3"), | ||
329 | STM32_FUNCTION(12, "ETH_MII_RX_ER"), | ||
330 | STM32_FUNCTION(15, "LCD_G4"), | ||
331 | STM32_FUNCTION(16, "EVENTOUT"), | ||
332 | STM32_FUNCTION(17, "ANALOG") | ||
333 | ), | ||
334 | STM32_PIN( | ||
335 | PINCTRL_PIN(27, "PB11"), | ||
336 | STM32_FUNCTION(0, "GPIOB11"), | ||
337 | STM32_FUNCTION(2, "TIM2_CH4"), | ||
338 | STM32_FUNCTION(5, "I2C2_SDA"), | ||
339 | STM32_FUNCTION(8, "USART3_RX"), | ||
340 | STM32_FUNCTION(11, "OTG_HS_ULPI_D4"), | ||
341 | STM32_FUNCTION(12, "ETH_MII_TX_EN ETH_RMII_TX_EN"), | ||
342 | STM32_FUNCTION(15, "LCD_G5"), | ||
343 | STM32_FUNCTION(16, "EVENTOUT"), | ||
344 | STM32_FUNCTION(17, "ANALOG") | ||
345 | ), | ||
346 | STM32_PIN( | ||
347 | PINCTRL_PIN(28, "PB12"), | ||
348 | STM32_FUNCTION(0, "GPIOB12"), | ||
349 | STM32_FUNCTION(2, "TIM1_BKIN"), | ||
350 | STM32_FUNCTION(5, "I2C2_SMBA"), | ||
351 | STM32_FUNCTION(6, "SPI2_NSS I2S2_WS"), | ||
352 | STM32_FUNCTION(8, "USART3_CK"), | ||
353 | STM32_FUNCTION(10, "CAN2_RX"), | ||
354 | STM32_FUNCTION(11, "OTG_HS_ULPI_D5"), | ||
355 | STM32_FUNCTION(12, "ETH_MII_TXD0 ETH_RMII_TXD0"), | ||
356 | STM32_FUNCTION(13, "OTG_HS_ID"), | ||
357 | STM32_FUNCTION(16, "EVENTOUT"), | ||
358 | STM32_FUNCTION(17, "ANALOG") | ||
359 | ), | ||
360 | STM32_PIN( | ||
361 | PINCTRL_PIN(29, "PB13"), | ||
362 | STM32_FUNCTION(0, "GPIOB13"), | ||
363 | STM32_FUNCTION(2, "TIM1_CH1N"), | ||
364 | STM32_FUNCTION(6, "SPI2_SCK I2S2_CK"), | ||
365 | STM32_FUNCTION(8, "USART3_CTS"), | ||
366 | STM32_FUNCTION(10, "CAN2_TX"), | ||
367 | STM32_FUNCTION(11, "OTG_HS_ULPI_D6"), | ||
368 | STM32_FUNCTION(12, "ETH_MII_TXD1 ETH_RMII_TXD1"), | ||
369 | STM32_FUNCTION(16, "EVENTOUT"), | ||
370 | STM32_FUNCTION(17, "ANALOG") | ||
371 | ), | ||
372 | STM32_PIN( | ||
373 | PINCTRL_PIN(30, "PB14"), | ||
374 | STM32_FUNCTION(0, "GPIOB14"), | ||
375 | STM32_FUNCTION(2, "TIM1_CH2N"), | ||
376 | STM32_FUNCTION(4, "TIM8_CH2N"), | ||
377 | STM32_FUNCTION(6, "SPI2_MISO"), | ||
378 | STM32_FUNCTION(8, "USART3_RTS"), | ||
379 | STM32_FUNCTION(10, "TIM12_CH1"), | ||
380 | STM32_FUNCTION(13, "OTG_HS_DM"), | ||
381 | STM32_FUNCTION(16, "EVENTOUT"), | ||
382 | STM32_FUNCTION(17, "ANALOG") | ||
383 | ), | ||
384 | STM32_PIN( | ||
385 | PINCTRL_PIN(31, "PB15"), | ||
386 | STM32_FUNCTION(0, "GPIOB15"), | ||
387 | STM32_FUNCTION(1, "RTC_REFIN"), | ||
388 | STM32_FUNCTION(2, "TIM1_CH3N"), | ||
389 | STM32_FUNCTION(4, "TIM8_CH3N"), | ||
390 | STM32_FUNCTION(6, "SPI2_MOSI I2S2_SD"), | ||
391 | STM32_FUNCTION(10, "TIM12_CH2"), | ||
392 | STM32_FUNCTION(13, "OTG_HS_DP"), | ||
393 | STM32_FUNCTION(16, "EVENTOUT"), | ||
394 | STM32_FUNCTION(17, "ANALOG") | ||
395 | ), | ||
396 | STM32_PIN( | ||
397 | PINCTRL_PIN(32, "PC0"), | ||
398 | STM32_FUNCTION(0, "GPIOC0"), | ||
399 | STM32_FUNCTION(9, "SAI2_FS_B"), | ||
400 | STM32_FUNCTION(11, "OTG_HS_ULPI_STP"), | ||
401 | STM32_FUNCTION(13, "FMC_SDNWE"), | ||
402 | STM32_FUNCTION(15, "LCD_R5"), | ||
403 | STM32_FUNCTION(16, "EVENTOUT"), | ||
404 | STM32_FUNCTION(17, "ANALOG") | ||
405 | ), | ||
406 | STM32_PIN( | ||
407 | PINCTRL_PIN(33, "PC1"), | ||
408 | STM32_FUNCTION(0, "GPIOC1"), | ||
409 | STM32_FUNCTION(1, "TRACED0"), | ||
410 | STM32_FUNCTION(6, "SPI2_MOSI I2S2_SD"), | ||
411 | STM32_FUNCTION(7, "SAI1_SD_A"), | ||
412 | STM32_FUNCTION(12, "ETH_MDC"), | ||
413 | STM32_FUNCTION(16, "EVENTOUT"), | ||
414 | STM32_FUNCTION(17, "ANALOG") | ||
415 | ), | ||
416 | STM32_PIN( | ||
417 | PINCTRL_PIN(34, "PC2"), | ||
418 | STM32_FUNCTION(0, "GPIOC2"), | ||
419 | STM32_FUNCTION(6, "SPI2_MISO"), | ||
420 | STM32_FUNCTION(11, "OTG_HS_ULPI_DIR"), | ||
421 | STM32_FUNCTION(12, "ETH_MII_TXD2"), | ||
422 | STM32_FUNCTION(13, "FMC_SDNE0"), | ||
423 | STM32_FUNCTION(16, "EVENTOUT"), | ||
424 | STM32_FUNCTION(17, "ANALOG") | ||
425 | ), | ||
426 | STM32_PIN( | ||
427 | PINCTRL_PIN(35, "PC3"), | ||
428 | STM32_FUNCTION(0, "GPIOC3"), | ||
429 | STM32_FUNCTION(6, "SPI2_MOSI I2S2_SD"), | ||
430 | STM32_FUNCTION(11, "OTG_HS_ULPI_NXT"), | ||
431 | STM32_FUNCTION(12, "ETH_MII_TX_CLK"), | ||
432 | STM32_FUNCTION(13, "FMC_SDCKE0"), | ||
433 | STM32_FUNCTION(16, "EVENTOUT"), | ||
434 | STM32_FUNCTION(17, "ANALOG") | ||
435 | ), | ||
436 | STM32_PIN( | ||
437 | PINCTRL_PIN(36, "PC4"), | ||
438 | STM32_FUNCTION(0, "GPIOC4"), | ||
439 | STM32_FUNCTION(6, "I2S1_MCK"), | ||
440 | STM32_FUNCTION(9, "SPDIFRX_IN2"), | ||
441 | STM32_FUNCTION(12, "ETH_MII_RXD0 ETH_RMII_RXD0"), | ||
442 | STM32_FUNCTION(13, "FMC_SDNE0"), | ||
443 | STM32_FUNCTION(16, "EVENTOUT"), | ||
444 | STM32_FUNCTION(17, "ANALOG") | ||
445 | ), | ||
446 | STM32_PIN( | ||
447 | PINCTRL_PIN(37, "PC5"), | ||
448 | STM32_FUNCTION(0, "GPIOC5"), | ||
449 | STM32_FUNCTION(9, "SPDIFRX_IN3"), | ||
450 | STM32_FUNCTION(12, "ETH_MII_RXD1 ETH_RMII_RXD1"), | ||
451 | STM32_FUNCTION(13, "FMC_SDCKE0"), | ||
452 | STM32_FUNCTION(16, "EVENTOUT"), | ||
453 | STM32_FUNCTION(17, "ANALOG") | ||
454 | ), | ||
455 | STM32_PIN( | ||
456 | PINCTRL_PIN(38, "PC6"), | ||
457 | STM32_FUNCTION(0, "GPIOC6"), | ||
458 | STM32_FUNCTION(3, "TIM3_CH1"), | ||
459 | STM32_FUNCTION(4, "TIM8_CH1"), | ||
460 | STM32_FUNCTION(6, "I2S2_MCK"), | ||
461 | STM32_FUNCTION(9, "USART6_TX"), | ||
462 | STM32_FUNCTION(13, "SDMMC1_D6"), | ||
463 | STM32_FUNCTION(14, "DCMI_D0"), | ||
464 | STM32_FUNCTION(15, "LCD_HSYNC"), | ||
465 | STM32_FUNCTION(16, "EVENTOUT"), | ||
466 | STM32_FUNCTION(17, "ANALOG") | ||
467 | ), | ||
468 | STM32_PIN( | ||
469 | PINCTRL_PIN(39, "PC7"), | ||
470 | STM32_FUNCTION(0, "GPIOC7"), | ||
471 | STM32_FUNCTION(3, "TIM3_CH2"), | ||
472 | STM32_FUNCTION(4, "TIM8_CH2"), | ||
473 | STM32_FUNCTION(7, "I2S3_MCK"), | ||
474 | STM32_FUNCTION(9, "USART6_RX"), | ||
475 | STM32_FUNCTION(13, "SDMMC1_D7"), | ||
476 | STM32_FUNCTION(14, "DCMI_D1"), | ||
477 | STM32_FUNCTION(15, "LCD_G6"), | ||
478 | STM32_FUNCTION(16, "EVENTOUT"), | ||
479 | STM32_FUNCTION(17, "ANALOG") | ||
480 | ), | ||
481 | STM32_PIN( | ||
482 | PINCTRL_PIN(40, "PC8"), | ||
483 | STM32_FUNCTION(0, "GPIOC8"), | ||
484 | STM32_FUNCTION(1, "TRACED1"), | ||
485 | STM32_FUNCTION(3, "TIM3_CH3"), | ||
486 | STM32_FUNCTION(4, "TIM8_CH3"), | ||
487 | STM32_FUNCTION(8, "UART5_RTS"), | ||
488 | STM32_FUNCTION(9, "USART6_CK"), | ||
489 | STM32_FUNCTION(13, "SDMMC1_D0"), | ||
490 | STM32_FUNCTION(14, "DCMI_D2"), | ||
491 | STM32_FUNCTION(16, "EVENTOUT"), | ||
492 | STM32_FUNCTION(17, "ANALOG") | ||
493 | ), | ||
494 | STM32_PIN( | ||
495 | PINCTRL_PIN(41, "PC9"), | ||
496 | STM32_FUNCTION(0, "GPIOC9"), | ||
497 | STM32_FUNCTION(1, "MCO2"), | ||
498 | STM32_FUNCTION(3, "TIM3_CH4"), | ||
499 | STM32_FUNCTION(4, "TIM8_CH4"), | ||
500 | STM32_FUNCTION(5, "I2C3_SDA"), | ||
501 | STM32_FUNCTION(6, "I2S_CKIN"), | ||
502 | STM32_FUNCTION(8, "UART5_CTS"), | ||
503 | STM32_FUNCTION(10, "QUADSPI_BK1_IO0"), | ||
504 | STM32_FUNCTION(13, "SDMMC1_D1"), | ||
505 | STM32_FUNCTION(14, "DCMI_D3"), | ||
506 | STM32_FUNCTION(16, "EVENTOUT"), | ||
507 | STM32_FUNCTION(17, "ANALOG") | ||
508 | ), | ||
509 | STM32_PIN( | ||
510 | PINCTRL_PIN(42, "PC10"), | ||
511 | STM32_FUNCTION(0, "GPIOC10"), | ||
512 | STM32_FUNCTION(7, "SPI3_SCK I2S3_CK"), | ||
513 | STM32_FUNCTION(8, "USART3_TX"), | ||
514 | STM32_FUNCTION(9, "UART4_TX"), | ||
515 | STM32_FUNCTION(10, "QUADSPI_BK1_IO1"), | ||
516 | STM32_FUNCTION(13, "SDMMC1_D2"), | ||
517 | STM32_FUNCTION(14, "DCMI_D8"), | ||
518 | STM32_FUNCTION(15, "LCD_R2"), | ||
519 | STM32_FUNCTION(16, "EVENTOUT"), | ||
520 | STM32_FUNCTION(17, "ANALOG") | ||
521 | ), | ||
522 | STM32_PIN( | ||
523 | PINCTRL_PIN(43, "PC11"), | ||
524 | STM32_FUNCTION(0, "GPIOC11"), | ||
525 | STM32_FUNCTION(7, "SPI3_MISO"), | ||
526 | STM32_FUNCTION(8, "USART3_RX"), | ||
527 | STM32_FUNCTION(9, "UART4_RX"), | ||
528 | STM32_FUNCTION(10, "QUADSPI_BK2_NCS"), | ||
529 | STM32_FUNCTION(13, "SDMMC1_D3"), | ||
530 | STM32_FUNCTION(14, "DCMI_D4"), | ||
531 | STM32_FUNCTION(16, "EVENTOUT"), | ||
532 | STM32_FUNCTION(17, "ANALOG") | ||
533 | ), | ||
534 | STM32_PIN( | ||
535 | PINCTRL_PIN(44, "PC12"), | ||
536 | STM32_FUNCTION(0, "GPIOC12"), | ||
537 | STM32_FUNCTION(1, "TRACED3"), | ||
538 | STM32_FUNCTION(7, "SPI3_MOSI I2S3_SD"), | ||
539 | STM32_FUNCTION(8, "USART3_CK"), | ||
540 | STM32_FUNCTION(9, "UART5_TX"), | ||
541 | STM32_FUNCTION(13, "SDMMC1_CK"), | ||
542 | STM32_FUNCTION(14, "DCMI_D9"), | ||
543 | STM32_FUNCTION(16, "EVENTOUT"), | ||
544 | STM32_FUNCTION(17, "ANALOG") | ||
545 | ), | ||
546 | STM32_PIN( | ||
547 | PINCTRL_PIN(45, "PC13"), | ||
548 | STM32_FUNCTION(0, "GPIOC13"), | ||
549 | STM32_FUNCTION(16, "EVENTOUT"), | ||
550 | STM32_FUNCTION(17, "ANALOG") | ||
551 | ), | ||
552 | STM32_PIN( | ||
553 | PINCTRL_PIN(46, "PC14"), | ||
554 | STM32_FUNCTION(0, "GPIOC14"), | ||
555 | STM32_FUNCTION(16, "EVENTOUT"), | ||
556 | STM32_FUNCTION(17, "ANALOG") | ||
557 | ), | ||
558 | STM32_PIN( | ||
559 | PINCTRL_PIN(47, "PC15"), | ||
560 | STM32_FUNCTION(0, "GPIOC15"), | ||
561 | STM32_FUNCTION(16, "EVENTOUT"), | ||
562 | STM32_FUNCTION(17, "ANALOG") | ||
563 | ), | ||
564 | STM32_PIN( | ||
565 | PINCTRL_PIN(48, "PD0"), | ||
566 | STM32_FUNCTION(0, "GPIOD0"), | ||
567 | STM32_FUNCTION(10, "CAN1_RX"), | ||
568 | STM32_FUNCTION(13, "FMC_D2"), | ||
569 | STM32_FUNCTION(16, "EVENTOUT"), | ||
570 | STM32_FUNCTION(17, "ANALOG") | ||
571 | ), | ||
572 | STM32_PIN( | ||
573 | PINCTRL_PIN(49, "PD1"), | ||
574 | STM32_FUNCTION(0, "GPIOD1"), | ||
575 | STM32_FUNCTION(10, "CAN1_TX"), | ||
576 | STM32_FUNCTION(13, "FMC_D3"), | ||
577 | STM32_FUNCTION(16, "EVENTOUT"), | ||
578 | STM32_FUNCTION(17, "ANALOG") | ||
579 | ), | ||
580 | STM32_PIN( | ||
581 | PINCTRL_PIN(50, "PD2"), | ||
582 | STM32_FUNCTION(0, "GPIOD2"), | ||
583 | STM32_FUNCTION(1, "TRACED2"), | ||
584 | STM32_FUNCTION(3, "TIM3_ETR"), | ||
585 | STM32_FUNCTION(9, "UART5_RX"), | ||
586 | STM32_FUNCTION(13, "SDMMC1_CMD"), | ||
587 | STM32_FUNCTION(14, "DCMI_D11"), | ||
588 | STM32_FUNCTION(16, "EVENTOUT"), | ||
589 | STM32_FUNCTION(17, "ANALOG") | ||
590 | ), | ||
591 | STM32_PIN( | ||
592 | PINCTRL_PIN(51, "PD3"), | ||
593 | STM32_FUNCTION(0, "GPIOD3"), | ||
594 | STM32_FUNCTION(6, "SPI2_SCK I2S2_CK"), | ||
595 | STM32_FUNCTION(8, "USART2_CTS"), | ||
596 | STM32_FUNCTION(13, "FMC_CLK"), | ||
597 | STM32_FUNCTION(14, "DCMI_D5"), | ||
598 | STM32_FUNCTION(15, "LCD_G7"), | ||
599 | STM32_FUNCTION(16, "EVENTOUT"), | ||
600 | STM32_FUNCTION(17, "ANALOG") | ||
601 | ), | ||
602 | STM32_PIN( | ||
603 | PINCTRL_PIN(52, "PD4"), | ||
604 | STM32_FUNCTION(0, "GPIOD4"), | ||
605 | STM32_FUNCTION(8, "USART2_RTS"), | ||
606 | STM32_FUNCTION(13, "FMC_NOE"), | ||
607 | STM32_FUNCTION(16, "EVENTOUT"), | ||
608 | STM32_FUNCTION(17, "ANALOG") | ||
609 | ), | ||
610 | STM32_PIN( | ||
611 | PINCTRL_PIN(53, "PD5"), | ||
612 | STM32_FUNCTION(0, "GPIOD5"), | ||
613 | STM32_FUNCTION(8, "USART2_TX"), | ||
614 | STM32_FUNCTION(13, "FMC_NWE"), | ||
615 | STM32_FUNCTION(16, "EVENTOUT"), | ||
616 | STM32_FUNCTION(17, "ANALOG") | ||
617 | ), | ||
618 | STM32_PIN( | ||
619 | PINCTRL_PIN(54, "PD6"), | ||
620 | STM32_FUNCTION(0, "GPIOD6"), | ||
621 | STM32_FUNCTION(6, "SPI3_MOSI I2S3_SD"), | ||
622 | STM32_FUNCTION(7, "SAI1_SD_A"), | ||
623 | STM32_FUNCTION(8, "USART2_RX"), | ||
624 | STM32_FUNCTION(13, "FMC_NWAIT"), | ||
625 | STM32_FUNCTION(14, "DCMI_D10"), | ||
626 | STM32_FUNCTION(15, "LCD_B2"), | ||
627 | STM32_FUNCTION(16, "EVENTOUT"), | ||
628 | STM32_FUNCTION(17, "ANALOG") | ||
629 | ), | ||
630 | STM32_PIN( | ||
631 | PINCTRL_PIN(55, "PD7"), | ||
632 | STM32_FUNCTION(0, "GPIOD7"), | ||
633 | STM32_FUNCTION(8, "USART2_CK"), | ||
634 | STM32_FUNCTION(9, "SPDIFRX_IN0"), | ||
635 | STM32_FUNCTION(13, "FMC_NE1"), | ||
636 | STM32_FUNCTION(16, "EVENTOUT"), | ||
637 | STM32_FUNCTION(17, "ANALOG") | ||
638 | ), | ||
639 | STM32_PIN( | ||
640 | PINCTRL_PIN(56, "PD8"), | ||
641 | STM32_FUNCTION(0, "GPIOD8"), | ||
642 | STM32_FUNCTION(8, "USART3_TX"), | ||
643 | STM32_FUNCTION(9, "SPDIFRX_IN1"), | ||
644 | STM32_FUNCTION(13, "FMC_D13"), | ||
645 | STM32_FUNCTION(16, "EVENTOUT"), | ||
646 | STM32_FUNCTION(17, "ANALOG") | ||
647 | ), | ||
648 | STM32_PIN( | ||
649 | PINCTRL_PIN(57, "PD9"), | ||
650 | STM32_FUNCTION(0, "GPIOD9"), | ||
651 | STM32_FUNCTION(8, "USART3_RX"), | ||
652 | STM32_FUNCTION(13, "FMC_D14"), | ||
653 | STM32_FUNCTION(16, "EVENTOUT"), | ||
654 | STM32_FUNCTION(17, "ANALOG") | ||
655 | ), | ||
656 | STM32_PIN( | ||
657 | PINCTRL_PIN(58, "PD10"), | ||
658 | STM32_FUNCTION(0, "GPIOD10"), | ||
659 | STM32_FUNCTION(8, "USART3_CK"), | ||
660 | STM32_FUNCTION(13, "FMC_D15"), | ||
661 | STM32_FUNCTION(15, "LCD_B3"), | ||
662 | STM32_FUNCTION(16, "EVENTOUT"), | ||
663 | STM32_FUNCTION(17, "ANALOG") | ||
664 | ), | ||
665 | STM32_PIN( | ||
666 | PINCTRL_PIN(59, "PD11"), | ||
667 | STM32_FUNCTION(0, "GPIOD11"), | ||
668 | STM32_FUNCTION(5, "I2C4_SMBA"), | ||
669 | STM32_FUNCTION(8, "USART3_CTS"), | ||
670 | STM32_FUNCTION(10, "QUADSPI_BK1_IO0"), | ||
671 | STM32_FUNCTION(11, "SAI2_SD_A"), | ||
672 | STM32_FUNCTION(13, "FMC_A16 FMC_CLE"), | ||
673 | STM32_FUNCTION(16, "EVENTOUT"), | ||
674 | STM32_FUNCTION(17, "ANALOG") | ||
675 | ), | ||
676 | STM32_PIN( | ||
677 | PINCTRL_PIN(60, "PD12"), | ||
678 | STM32_FUNCTION(0, "GPIOD12"), | ||
679 | STM32_FUNCTION(3, "TIM4_CH1"), | ||
680 | STM32_FUNCTION(4, "LPTIM1_IN1"), | ||
681 | STM32_FUNCTION(5, "I2C4_SCL"), | ||
682 | STM32_FUNCTION(8, "USART3_RTS"), | ||
683 | STM32_FUNCTION(10, "QUADSPI_BK1_IO1"), | ||
684 | STM32_FUNCTION(11, "SAI2_FS_A"), | ||
685 | STM32_FUNCTION(13, "FMC_A17 FMC_ALE"), | ||
686 | STM32_FUNCTION(16, "EVENTOUT"), | ||
687 | STM32_FUNCTION(17, "ANALOG") | ||
688 | ), | ||
689 | STM32_PIN( | ||
690 | PINCTRL_PIN(61, "PD13"), | ||
691 | STM32_FUNCTION(0, "GPIOD13"), | ||
692 | STM32_FUNCTION(3, "TIM4_CH2"), | ||
693 | STM32_FUNCTION(4, "LPTIM1_OUT"), | ||
694 | STM32_FUNCTION(5, "I2C4_SDA"), | ||
695 | STM32_FUNCTION(10, "QUADSPI_BK1_IO3"), | ||
696 | STM32_FUNCTION(11, "SAI2_SCK_A"), | ||
697 | STM32_FUNCTION(13, "FMC_A18"), | ||
698 | STM32_FUNCTION(16, "EVENTOUT"), | ||
699 | STM32_FUNCTION(17, "ANALOG") | ||
700 | ), | ||
701 | STM32_PIN( | ||
702 | PINCTRL_PIN(62, "PD14"), | ||
703 | STM32_FUNCTION(0, "GPIOD14"), | ||
704 | STM32_FUNCTION(3, "TIM4_CH3"), | ||
705 | STM32_FUNCTION(9, "UART8_CTS"), | ||
706 | STM32_FUNCTION(13, "FMC_D0"), | ||
707 | STM32_FUNCTION(16, "EVENTOUT"), | ||
708 | STM32_FUNCTION(17, "ANALOG") | ||
709 | ), | ||
710 | STM32_PIN( | ||
711 | PINCTRL_PIN(63, "PD15"), | ||
712 | STM32_FUNCTION(0, "GPIOD15"), | ||
713 | STM32_FUNCTION(3, "TIM4_CH4"), | ||
714 | STM32_FUNCTION(9, "UART8_RTS"), | ||
715 | STM32_FUNCTION(13, "FMC_D1"), | ||
716 | STM32_FUNCTION(16, "EVENTOUT"), | ||
717 | STM32_FUNCTION(17, "ANALOG") | ||
718 | ), | ||
719 | STM32_PIN( | ||
720 | PINCTRL_PIN(64, "PE0"), | ||
721 | STM32_FUNCTION(0, "GPIOE0"), | ||
722 | STM32_FUNCTION(3, "TIM4_ETR"), | ||
723 | STM32_FUNCTION(4, "LPTIM1_ETR"), | ||
724 | STM32_FUNCTION(9, "UART8_RX"), | ||
725 | STM32_FUNCTION(11, "SAI2_MCLK_A"), | ||
726 | STM32_FUNCTION(13, "FMC_NBL0"), | ||
727 | STM32_FUNCTION(14, "DCMI_D2"), | ||
728 | STM32_FUNCTION(16, "EVENTOUT"), | ||
729 | STM32_FUNCTION(17, "ANALOG") | ||
730 | ), | ||
731 | STM32_PIN( | ||
732 | PINCTRL_PIN(65, "PE1"), | ||
733 | STM32_FUNCTION(0, "GPIOE1"), | ||
734 | STM32_FUNCTION(4, "LPTIM1_IN2"), | ||
735 | STM32_FUNCTION(9, "UART8_TX"), | ||
736 | STM32_FUNCTION(13, "FMC_NBL1"), | ||
737 | STM32_FUNCTION(14, "DCMI_D3"), | ||
738 | STM32_FUNCTION(16, "EVENTOUT"), | ||
739 | STM32_FUNCTION(17, "ANALOG") | ||
740 | ), | ||
741 | STM32_PIN( | ||
742 | PINCTRL_PIN(66, "PE2"), | ||
743 | STM32_FUNCTION(0, "GPIOE2"), | ||
744 | STM32_FUNCTION(1, "TRACECLK"), | ||
745 | STM32_FUNCTION(6, "SPI4_SCK"), | ||
746 | STM32_FUNCTION(7, "SAI1_MCLK_A"), | ||
747 | STM32_FUNCTION(10, "QUADSPI_BK1_IO2"), | ||
748 | STM32_FUNCTION(12, "ETH_MII_TXD3"), | ||
749 | STM32_FUNCTION(13, "FMC_A23"), | ||
750 | STM32_FUNCTION(16, "EVENTOUT"), | ||
751 | STM32_FUNCTION(17, "ANALOG") | ||
752 | ), | ||
753 | STM32_PIN( | ||
754 | PINCTRL_PIN(67, "PE3"), | ||
755 | STM32_FUNCTION(0, "GPIOE3"), | ||
756 | STM32_FUNCTION(1, "TRACED0"), | ||
757 | STM32_FUNCTION(7, "SAI1_SD_B"), | ||
758 | STM32_FUNCTION(13, "FMC_A19"), | ||
759 | STM32_FUNCTION(16, "EVENTOUT"), | ||
760 | STM32_FUNCTION(17, "ANALOG") | ||
761 | ), | ||
762 | STM32_PIN( | ||
763 | PINCTRL_PIN(68, "PE4"), | ||
764 | STM32_FUNCTION(0, "GPIOE4"), | ||
765 | STM32_FUNCTION(1, "TRACED1"), | ||
766 | STM32_FUNCTION(6, "SPI4_NSS"), | ||
767 | STM32_FUNCTION(7, "SAI1_FS_A"), | ||
768 | STM32_FUNCTION(13, "FMC_A20"), | ||
769 | STM32_FUNCTION(14, "DCMI_D4"), | ||
770 | STM32_FUNCTION(15, "LCD_B0"), | ||
771 | STM32_FUNCTION(16, "EVENTOUT"), | ||
772 | STM32_FUNCTION(17, "ANALOG") | ||
773 | ), | ||
774 | STM32_PIN( | ||
775 | PINCTRL_PIN(69, "PE5"), | ||
776 | STM32_FUNCTION(0, "GPIOE5"), | ||
777 | STM32_FUNCTION(1, "TRACED2"), | ||
778 | STM32_FUNCTION(4, "TIM9_CH1"), | ||
779 | STM32_FUNCTION(6, "SPI4_MISO"), | ||
780 | STM32_FUNCTION(7, "SAI1_SCK_A"), | ||
781 | STM32_FUNCTION(13, "FMC_A21"), | ||
782 | STM32_FUNCTION(14, "DCMI_D6"), | ||
783 | STM32_FUNCTION(15, "LCD_G0"), | ||
784 | STM32_FUNCTION(16, "EVENTOUT"), | ||
785 | STM32_FUNCTION(17, "ANALOG") | ||
786 | ), | ||
787 | STM32_PIN( | ||
788 | PINCTRL_PIN(70, "PE6"), | ||
789 | STM32_FUNCTION(0, "GPIOE6"), | ||
790 | STM32_FUNCTION(1, "TRACED3"), | ||
791 | STM32_FUNCTION(2, "TIM1_BKIN2"), | ||
792 | STM32_FUNCTION(4, "TIM9_CH2"), | ||
793 | STM32_FUNCTION(6, "SPI4_MOSI"), | ||
794 | STM32_FUNCTION(7, "SAI1_SD_A"), | ||
795 | STM32_FUNCTION(11, "SAI2_MCLK_B"), | ||
796 | STM32_FUNCTION(13, "FMC_A22"), | ||
797 | STM32_FUNCTION(14, "DCMI_D7"), | ||
798 | STM32_FUNCTION(15, "LCD_G1"), | ||
799 | STM32_FUNCTION(16, "EVENTOUT"), | ||
800 | STM32_FUNCTION(17, "ANALOG") | ||
801 | ), | ||
802 | STM32_PIN( | ||
803 | PINCTRL_PIN(71, "PE7"), | ||
804 | STM32_FUNCTION(0, "GPIOE7"), | ||
805 | STM32_FUNCTION(2, "TIM1_ETR"), | ||
806 | STM32_FUNCTION(9, "UART7_RX"), | ||
807 | STM32_FUNCTION(11, "QUADSPI_BK2_IO0"), | ||
808 | STM32_FUNCTION(13, "FMC_D4"), | ||
809 | STM32_FUNCTION(16, "EVENTOUT"), | ||
810 | STM32_FUNCTION(17, "ANALOG") | ||
811 | ), | ||
812 | STM32_PIN( | ||
813 | PINCTRL_PIN(72, "PE8"), | ||
814 | STM32_FUNCTION(0, "GPIOE8"), | ||
815 | STM32_FUNCTION(2, "TIM1_CH1N"), | ||
816 | STM32_FUNCTION(9, "UART7_TX"), | ||
817 | STM32_FUNCTION(11, "QUADSPI_BK2_IO1"), | ||
818 | STM32_FUNCTION(13, "FMC_D5"), | ||
819 | STM32_FUNCTION(16, "EVENTOUT"), | ||
820 | STM32_FUNCTION(17, "ANALOG") | ||
821 | ), | ||
822 | STM32_PIN( | ||
823 | PINCTRL_PIN(73, "PE9"), | ||
824 | STM32_FUNCTION(0, "GPIOE9"), | ||
825 | STM32_FUNCTION(2, "TIM1_CH1"), | ||
826 | STM32_FUNCTION(9, "UART7_RTS"), | ||
827 | STM32_FUNCTION(11, "QUADSPI_BK2_IO2"), | ||
828 | STM32_FUNCTION(13, "FMC_D6"), | ||
829 | STM32_FUNCTION(16, "EVENTOUT"), | ||
830 | STM32_FUNCTION(17, "ANALOG") | ||
831 | ), | ||
832 | STM32_PIN( | ||
833 | PINCTRL_PIN(74, "PE10"), | ||
834 | STM32_FUNCTION(0, "GPIOE10"), | ||
835 | STM32_FUNCTION(2, "TIM1_CH2N"), | ||
836 | STM32_FUNCTION(9, "UART7_CTS"), | ||
837 | STM32_FUNCTION(11, "QUADSPI_BK2_IO3"), | ||
838 | STM32_FUNCTION(13, "FMC_D7"), | ||
839 | STM32_FUNCTION(16, "EVENTOUT"), | ||
840 | STM32_FUNCTION(17, "ANALOG") | ||
841 | ), | ||
842 | STM32_PIN( | ||
843 | PINCTRL_PIN(75, "PE11"), | ||
844 | STM32_FUNCTION(0, "GPIOE11"), | ||
845 | STM32_FUNCTION(2, "TIM1_CH2"), | ||
846 | STM32_FUNCTION(6, "SPI4_NSS"), | ||
847 | STM32_FUNCTION(11, "SAI2_SD_B"), | ||
848 | STM32_FUNCTION(13, "FMC_D8"), | ||
849 | STM32_FUNCTION(15, "LCD_G3"), | ||
850 | STM32_FUNCTION(16, "EVENTOUT"), | ||
851 | STM32_FUNCTION(17, "ANALOG") | ||
852 | ), | ||
853 | STM32_PIN( | ||
854 | PINCTRL_PIN(76, "PE12"), | ||
855 | STM32_FUNCTION(0, "GPIOE12"), | ||
856 | STM32_FUNCTION(2, "TIM1_CH3N"), | ||
857 | STM32_FUNCTION(6, "SPI4_SCK"), | ||
858 | STM32_FUNCTION(11, "SAI2_SCK_B"), | ||
859 | STM32_FUNCTION(13, "FMC_D9"), | ||
860 | STM32_FUNCTION(15, "LCD_B4"), | ||
861 | STM32_FUNCTION(16, "EVENTOUT"), | ||
862 | STM32_FUNCTION(17, "ANALOG") | ||
863 | ), | ||
864 | STM32_PIN( | ||
865 | PINCTRL_PIN(77, "PE13"), | ||
866 | STM32_FUNCTION(0, "GPIOE13"), | ||
867 | STM32_FUNCTION(2, "TIM1_CH3"), | ||
868 | STM32_FUNCTION(6, "SPI4_MISO"), | ||
869 | STM32_FUNCTION(11, "SAI2_FS_B"), | ||
870 | STM32_FUNCTION(13, "FMC_D10"), | ||
871 | STM32_FUNCTION(15, "LCD_DE"), | ||
872 | STM32_FUNCTION(16, "EVENTOUT"), | ||
873 | STM32_FUNCTION(17, "ANALOG") | ||
874 | ), | ||
875 | STM32_PIN( | ||
876 | PINCTRL_PIN(78, "PE14"), | ||
877 | STM32_FUNCTION(0, "GPIOE14"), | ||
878 | STM32_FUNCTION(2, "TIM1_CH4"), | ||
879 | STM32_FUNCTION(6, "SPI4_MOSI"), | ||
880 | STM32_FUNCTION(11, "SAI2_MCLK_B"), | ||
881 | STM32_FUNCTION(13, "FMC_D11"), | ||
882 | STM32_FUNCTION(15, "LCD_CLK"), | ||
883 | STM32_FUNCTION(16, "EVENTOUT"), | ||
884 | STM32_FUNCTION(17, "ANALOG") | ||
885 | ), | ||
886 | STM32_PIN( | ||
887 | PINCTRL_PIN(79, "PE15"), | ||
888 | STM32_FUNCTION(0, "GPIOE15"), | ||
889 | STM32_FUNCTION(2, "TIM1_BKIN"), | ||
890 | STM32_FUNCTION(13, "FMC_D12"), | ||
891 | STM32_FUNCTION(15, "LCD_R7"), | ||
892 | STM32_FUNCTION(16, "EVENTOUT"), | ||
893 | STM32_FUNCTION(17, "ANALOG") | ||
894 | ), | ||
895 | STM32_PIN( | ||
896 | PINCTRL_PIN(80, "PF0"), | ||
897 | STM32_FUNCTION(0, "GPIOF0"), | ||
898 | STM32_FUNCTION(5, "I2C2_SDA"), | ||
899 | STM32_FUNCTION(13, "FMC_A0"), | ||
900 | STM32_FUNCTION(16, "EVENTOUT"), | ||
901 | STM32_FUNCTION(17, "ANALOG") | ||
902 | ), | ||
903 | STM32_PIN( | ||
904 | PINCTRL_PIN(81, "PF1"), | ||
905 | STM32_FUNCTION(0, "GPIOF1"), | ||
906 | STM32_FUNCTION(5, "I2C2_SCL"), | ||
907 | STM32_FUNCTION(13, "FMC_A1"), | ||
908 | STM32_FUNCTION(16, "EVENTOUT"), | ||
909 | STM32_FUNCTION(17, "ANALOG") | ||
910 | ), | ||
911 | STM32_PIN( | ||
912 | PINCTRL_PIN(82, "PF2"), | ||
913 | STM32_FUNCTION(0, "GPIOF2"), | ||
914 | STM32_FUNCTION(5, "I2C2_SMBA"), | ||
915 | STM32_FUNCTION(13, "FMC_A2"), | ||
916 | STM32_FUNCTION(16, "EVENTOUT"), | ||
917 | STM32_FUNCTION(17, "ANALOG") | ||
918 | ), | ||
919 | STM32_PIN( | ||
920 | PINCTRL_PIN(83, "PF3"), | ||
921 | STM32_FUNCTION(0, "GPIOF3"), | ||
922 | STM32_FUNCTION(13, "FMC_A3"), | ||
923 | STM32_FUNCTION(16, "EVENTOUT"), | ||
924 | STM32_FUNCTION(17, "ANALOG") | ||
925 | ), | ||
926 | STM32_PIN( | ||
927 | PINCTRL_PIN(84, "PF4"), | ||
928 | STM32_FUNCTION(0, "GPIOF4"), | ||
929 | STM32_FUNCTION(13, "FMC_A4"), | ||
930 | STM32_FUNCTION(16, "EVENTOUT"), | ||
931 | STM32_FUNCTION(17, "ANALOG") | ||
932 | ), | ||
933 | STM32_PIN( | ||
934 | PINCTRL_PIN(85, "PF5"), | ||
935 | STM32_FUNCTION(0, "GPIOF5"), | ||
936 | STM32_FUNCTION(13, "FMC_A5"), | ||
937 | STM32_FUNCTION(16, "EVENTOUT"), | ||
938 | STM32_FUNCTION(17, "ANALOG") | ||
939 | ), | ||
940 | STM32_PIN( | ||
941 | PINCTRL_PIN(86, "PF6"), | ||
942 | STM32_FUNCTION(0, "GPIOF6"), | ||
943 | STM32_FUNCTION(4, "TIM10_CH1"), | ||
944 | STM32_FUNCTION(6, "SPI5_NSS"), | ||
945 | STM32_FUNCTION(7, "SAI1_SD_B"), | ||
946 | STM32_FUNCTION(9, "UART7_RX"), | ||
947 | STM32_FUNCTION(10, "QUADSPI_BK1_IO3"), | ||
948 | STM32_FUNCTION(16, "EVENTOUT"), | ||
949 | STM32_FUNCTION(17, "ANALOG") | ||
950 | ), | ||
951 | STM32_PIN( | ||
952 | PINCTRL_PIN(87, "PF7"), | ||
953 | STM32_FUNCTION(0, "GPIOF7"), | ||
954 | STM32_FUNCTION(4, "TIM11_CH1"), | ||
955 | STM32_FUNCTION(6, "SPI5_SCK"), | ||
956 | STM32_FUNCTION(7, "SAI1_MCLK_B"), | ||
957 | STM32_FUNCTION(9, "UART7_TX"), | ||
958 | STM32_FUNCTION(10, "QUADSPI_BK1_IO2"), | ||
959 | STM32_FUNCTION(16, "EVENTOUT"), | ||
960 | STM32_FUNCTION(17, "ANALOG") | ||
961 | ), | ||
962 | STM32_PIN( | ||
963 | PINCTRL_PIN(88, "PF8"), | ||
964 | STM32_FUNCTION(0, "GPIOF8"), | ||
965 | STM32_FUNCTION(6, "SPI5_MISO"), | ||
966 | STM32_FUNCTION(7, "SAI1_SCK_B"), | ||
967 | STM32_FUNCTION(9, "UART7_RTS"), | ||
968 | STM32_FUNCTION(10, "TIM13_CH1"), | ||
969 | STM32_FUNCTION(11, "QUADSPI_BK1_IO0"), | ||
970 | STM32_FUNCTION(16, "EVENTOUT"), | ||
971 | STM32_FUNCTION(17, "ANALOG") | ||
972 | ), | ||
973 | STM32_PIN( | ||
974 | PINCTRL_PIN(89, "PF9"), | ||
975 | STM32_FUNCTION(0, "GPIOF9"), | ||
976 | STM32_FUNCTION(6, "SPI5_MOSI"), | ||
977 | STM32_FUNCTION(7, "SAI1_FS_B"), | ||
978 | STM32_FUNCTION(9, "UART7_CTS"), | ||
979 | STM32_FUNCTION(10, "TIM14_CH1"), | ||
980 | STM32_FUNCTION(11, "QUADSPI_BK1_IO1"), | ||
981 | STM32_FUNCTION(16, "EVENTOUT"), | ||
982 | STM32_FUNCTION(17, "ANALOG") | ||
983 | ), | ||
984 | STM32_PIN( | ||
985 | PINCTRL_PIN(90, "PF10"), | ||
986 | STM32_FUNCTION(0, "GPIOF10"), | ||
987 | STM32_FUNCTION(14, "DCMI_D11"), | ||
988 | STM32_FUNCTION(15, "LCD_DE"), | ||
989 | STM32_FUNCTION(16, "EVENTOUT"), | ||
990 | STM32_FUNCTION(17, "ANALOG") | ||
991 | ), | ||
992 | STM32_PIN( | ||
993 | PINCTRL_PIN(91, "PF11"), | ||
994 | STM32_FUNCTION(0, "GPIOF11"), | ||
995 | STM32_FUNCTION(6, "SPI5_MOSI"), | ||
996 | STM32_FUNCTION(11, "SAI2_SD_B"), | ||
997 | STM32_FUNCTION(13, "FMC_SDNRAS"), | ||
998 | STM32_FUNCTION(14, "DCMI_D12"), | ||
999 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1000 | STM32_FUNCTION(17, "ANALOG") | ||
1001 | ), | ||
1002 | STM32_PIN( | ||
1003 | PINCTRL_PIN(92, "PF12"), | ||
1004 | STM32_FUNCTION(0, "GPIOF12"), | ||
1005 | STM32_FUNCTION(13, "FMC_A6"), | ||
1006 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1007 | STM32_FUNCTION(17, "ANALOG") | ||
1008 | ), | ||
1009 | STM32_PIN( | ||
1010 | PINCTRL_PIN(93, "PF13"), | ||
1011 | STM32_FUNCTION(0, "GPIOF13"), | ||
1012 | STM32_FUNCTION(5, "I2C4_SMBA"), | ||
1013 | STM32_FUNCTION(13, "FMC_A7"), | ||
1014 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1015 | STM32_FUNCTION(17, "ANALOG") | ||
1016 | ), | ||
1017 | STM32_PIN( | ||
1018 | PINCTRL_PIN(94, "PF14"), | ||
1019 | STM32_FUNCTION(0, "GPIOF14"), | ||
1020 | STM32_FUNCTION(5, "I2C4_SCL"), | ||
1021 | STM32_FUNCTION(13, "FMC_A8"), | ||
1022 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1023 | STM32_FUNCTION(17, "ANALOG") | ||
1024 | ), | ||
1025 | STM32_PIN( | ||
1026 | PINCTRL_PIN(95, "PF15"), | ||
1027 | STM32_FUNCTION(0, "GPIOF15"), | ||
1028 | STM32_FUNCTION(5, "I2C4_SDA"), | ||
1029 | STM32_FUNCTION(13, "FMC_A9"), | ||
1030 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1031 | STM32_FUNCTION(17, "ANALOG") | ||
1032 | ), | ||
1033 | STM32_PIN( | ||
1034 | PINCTRL_PIN(96, "PG0"), | ||
1035 | STM32_FUNCTION(0, "GPIOG0"), | ||
1036 | STM32_FUNCTION(13, "FMC_A10"), | ||
1037 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1038 | STM32_FUNCTION(17, "ANALOG") | ||
1039 | ), | ||
1040 | STM32_PIN( | ||
1041 | PINCTRL_PIN(97, "PG1"), | ||
1042 | STM32_FUNCTION(0, "GPIOG1"), | ||
1043 | STM32_FUNCTION(13, "FMC_A11"), | ||
1044 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1045 | STM32_FUNCTION(17, "ANALOG") | ||
1046 | ), | ||
1047 | STM32_PIN( | ||
1048 | PINCTRL_PIN(98, "PG2"), | ||
1049 | STM32_FUNCTION(0, "GPIOG2"), | ||
1050 | STM32_FUNCTION(13, "FMC_A12"), | ||
1051 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1052 | STM32_FUNCTION(17, "ANALOG") | ||
1053 | ), | ||
1054 | STM32_PIN( | ||
1055 | PINCTRL_PIN(99, "PG3"), | ||
1056 | STM32_FUNCTION(0, "GPIOG3"), | ||
1057 | STM32_FUNCTION(13, "FMC_A13"), | ||
1058 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1059 | STM32_FUNCTION(17, "ANALOG") | ||
1060 | ), | ||
1061 | STM32_PIN( | ||
1062 | PINCTRL_PIN(100, "PG4"), | ||
1063 | STM32_FUNCTION(0, "GPIOG4"), | ||
1064 | STM32_FUNCTION(13, "FMC_A14 FMC_BA0"), | ||
1065 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1066 | STM32_FUNCTION(17, "ANALOG") | ||
1067 | ), | ||
1068 | STM32_PIN( | ||
1069 | PINCTRL_PIN(101, "PG5"), | ||
1070 | STM32_FUNCTION(0, "GPIOG5"), | ||
1071 | STM32_FUNCTION(13, "FMC_A15 FMC_BA1"), | ||
1072 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1073 | STM32_FUNCTION(17, "ANALOG") | ||
1074 | ), | ||
1075 | STM32_PIN( | ||
1076 | PINCTRL_PIN(102, "PG6"), | ||
1077 | STM32_FUNCTION(0, "GPIOG6"), | ||
1078 | STM32_FUNCTION(14, "DCMI_D12"), | ||
1079 | STM32_FUNCTION(15, "LCD_R7"), | ||
1080 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1081 | STM32_FUNCTION(17, "ANALOG") | ||
1082 | ), | ||
1083 | STM32_PIN( | ||
1084 | PINCTRL_PIN(103, "PG7"), | ||
1085 | STM32_FUNCTION(0, "GPIOG7"), | ||
1086 | STM32_FUNCTION(9, "USART6_CK"), | ||
1087 | STM32_FUNCTION(13, "FMC_INT"), | ||
1088 | STM32_FUNCTION(14, "DCMI_D13"), | ||
1089 | STM32_FUNCTION(15, "LCD_CLK"), | ||
1090 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1091 | STM32_FUNCTION(17, "ANALOG") | ||
1092 | ), | ||
1093 | STM32_PIN( | ||
1094 | PINCTRL_PIN(104, "PG8"), | ||
1095 | STM32_FUNCTION(0, "GPIOG8"), | ||
1096 | STM32_FUNCTION(6, "SPI6_NSS"), | ||
1097 | STM32_FUNCTION(8, "SPDIFRX_IN2"), | ||
1098 | STM32_FUNCTION(9, "USART6_RTS"), | ||
1099 | STM32_FUNCTION(12, "ETH_PPS_OUT"), | ||
1100 | STM32_FUNCTION(13, "FMC_SDCLK"), | ||
1101 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1102 | STM32_FUNCTION(17, "ANALOG") | ||
1103 | ), | ||
1104 | STM32_PIN( | ||
1105 | PINCTRL_PIN(105, "PG9"), | ||
1106 | STM32_FUNCTION(0, "GPIOG9"), | ||
1107 | STM32_FUNCTION(8, "SPDIFRX_IN3"), | ||
1108 | STM32_FUNCTION(9, "USART6_RX"), | ||
1109 | STM32_FUNCTION(10, "QUADSPI_BK2_IO2"), | ||
1110 | STM32_FUNCTION(11, "SAI2_FS_B"), | ||
1111 | STM32_FUNCTION(13, "FMC_NE2 FMC_NCE"), | ||
1112 | STM32_FUNCTION(14, "DCMI_VSYNC"), | ||
1113 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1114 | STM32_FUNCTION(17, "ANALOG") | ||
1115 | ), | ||
1116 | STM32_PIN( | ||
1117 | PINCTRL_PIN(106, "PG10"), | ||
1118 | STM32_FUNCTION(0, "GPIOG10"), | ||
1119 | STM32_FUNCTION(10, "LCD_G3"), | ||
1120 | STM32_FUNCTION(11, "SAI2_SD_B"), | ||
1121 | STM32_FUNCTION(13, "FMC_NE3"), | ||
1122 | STM32_FUNCTION(14, "DCMI_D2"), | ||
1123 | STM32_FUNCTION(15, "LCD_B2"), | ||
1124 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1125 | STM32_FUNCTION(17, "ANALOG") | ||
1126 | ), | ||
1127 | STM32_PIN( | ||
1128 | PINCTRL_PIN(107, "PG11"), | ||
1129 | STM32_FUNCTION(0, "GPIOG11"), | ||
1130 | STM32_FUNCTION(8, "SPDIFRX_IN0"), | ||
1131 | STM32_FUNCTION(12, "ETH_MII_TX_EN ETH_RMII_TX_EN"), | ||
1132 | STM32_FUNCTION(14, "DCMI_D3"), | ||
1133 | STM32_FUNCTION(15, "LCD_B3"), | ||
1134 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1135 | STM32_FUNCTION(17, "ANALOG") | ||
1136 | ), | ||
1137 | STM32_PIN( | ||
1138 | PINCTRL_PIN(108, "PG12"), | ||
1139 | STM32_FUNCTION(0, "GPIOG12"), | ||
1140 | STM32_FUNCTION(4, "LPTIM1_IN1"), | ||
1141 | STM32_FUNCTION(6, "SPI6_MISO"), | ||
1142 | STM32_FUNCTION(8, "SPDIFRX_IN1"), | ||
1143 | STM32_FUNCTION(9, "USART6_RTS"), | ||
1144 | STM32_FUNCTION(10, "LCD_B4"), | ||
1145 | STM32_FUNCTION(13, "FMC_NE4"), | ||
1146 | STM32_FUNCTION(15, "LCD_B1"), | ||
1147 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1148 | STM32_FUNCTION(17, "ANALOG") | ||
1149 | ), | ||
1150 | STM32_PIN( | ||
1151 | PINCTRL_PIN(109, "PG13"), | ||
1152 | STM32_FUNCTION(0, "GPIOG13"), | ||
1153 | STM32_FUNCTION(1, "TRACED0"), | ||
1154 | STM32_FUNCTION(4, "LPTIM1_OUT"), | ||
1155 | STM32_FUNCTION(6, "SPI6_SCK"), | ||
1156 | STM32_FUNCTION(9, "USART6_CTS"), | ||
1157 | STM32_FUNCTION(12, "ETH_MII_TXD0 ETH_RMII_TXD0"), | ||
1158 | STM32_FUNCTION(13, "FMC_A24"), | ||
1159 | STM32_FUNCTION(15, "LCD_R0"), | ||
1160 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1161 | STM32_FUNCTION(17, "ANALOG") | ||
1162 | ), | ||
1163 | STM32_PIN( | ||
1164 | PINCTRL_PIN(110, "PG14"), | ||
1165 | STM32_FUNCTION(0, "GPIOG14"), | ||
1166 | STM32_FUNCTION(1, "TRACED1"), | ||
1167 | STM32_FUNCTION(4, "LPTIM1_ETR"), | ||
1168 | STM32_FUNCTION(6, "SPI6_MOSI"), | ||
1169 | STM32_FUNCTION(9, "USART6_TX"), | ||
1170 | STM32_FUNCTION(10, "QUADSPI_BK2_IO3"), | ||
1171 | STM32_FUNCTION(12, "ETH_MII_TXD1 ETH_RMII_TXD1"), | ||
1172 | STM32_FUNCTION(13, "FMC_A25"), | ||
1173 | STM32_FUNCTION(15, "LCD_B0"), | ||
1174 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1175 | STM32_FUNCTION(17, "ANALOG") | ||
1176 | ), | ||
1177 | STM32_PIN( | ||
1178 | PINCTRL_PIN(111, "PG15"), | ||
1179 | STM32_FUNCTION(0, "GPIOG15"), | ||
1180 | STM32_FUNCTION(9, "USART6_CTS"), | ||
1181 | STM32_FUNCTION(13, "FMC_SDNCAS"), | ||
1182 | STM32_FUNCTION(14, "DCMI_D13"), | ||
1183 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1184 | STM32_FUNCTION(17, "ANALOG") | ||
1185 | ), | ||
1186 | STM32_PIN( | ||
1187 | PINCTRL_PIN(112, "PH0"), | ||
1188 | STM32_FUNCTION(0, "GPIOH0"), | ||
1189 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1190 | STM32_FUNCTION(17, "ANALOG") | ||
1191 | ), | ||
1192 | STM32_PIN( | ||
1193 | PINCTRL_PIN(113, "PH1"), | ||
1194 | STM32_FUNCTION(0, "GPIOH1"), | ||
1195 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1196 | STM32_FUNCTION(17, "ANALOG") | ||
1197 | ), | ||
1198 | STM32_PIN( | ||
1199 | PINCTRL_PIN(114, "PH2"), | ||
1200 | STM32_FUNCTION(0, "GPIOH2"), | ||
1201 | STM32_FUNCTION(4, "LPTIM1_IN2"), | ||
1202 | STM32_FUNCTION(10, "QUADSPI_BK2_IO0"), | ||
1203 | STM32_FUNCTION(11, "SAI2_SCK_B"), | ||
1204 | STM32_FUNCTION(12, "ETH_MII_CRS"), | ||
1205 | STM32_FUNCTION(13, "FMC_SDCKE0"), | ||
1206 | STM32_FUNCTION(15, "LCD_R0"), | ||
1207 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1208 | STM32_FUNCTION(17, "ANALOG") | ||
1209 | ), | ||
1210 | STM32_PIN( | ||
1211 | PINCTRL_PIN(115, "PH3"), | ||
1212 | STM32_FUNCTION(0, "GPIOH3"), | ||
1213 | STM32_FUNCTION(10, "QUADSPI_BK2_IO1"), | ||
1214 | STM32_FUNCTION(11, "SAI2_MCLK_B"), | ||
1215 | STM32_FUNCTION(12, "ETH_MII_COL"), | ||
1216 | STM32_FUNCTION(13, "FMC_SDNE0"), | ||
1217 | STM32_FUNCTION(15, "LCD_R1"), | ||
1218 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1219 | STM32_FUNCTION(17, "ANALOG") | ||
1220 | ), | ||
1221 | STM32_PIN( | ||
1222 | PINCTRL_PIN(116, "PH4"), | ||
1223 | STM32_FUNCTION(0, "GPIOH4"), | ||
1224 | STM32_FUNCTION(5, "I2C2_SCL"), | ||
1225 | STM32_FUNCTION(11, "OTG_HS_ULPI_NXT"), | ||
1226 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1227 | STM32_FUNCTION(17, "ANALOG") | ||
1228 | ), | ||
1229 | STM32_PIN( | ||
1230 | PINCTRL_PIN(117, "PH5"), | ||
1231 | STM32_FUNCTION(0, "GPIOH5"), | ||
1232 | STM32_FUNCTION(5, "I2C2_SDA"), | ||
1233 | STM32_FUNCTION(6, "SPI5_NSS"), | ||
1234 | STM32_FUNCTION(13, "FMC_SDNWE"), | ||
1235 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1236 | STM32_FUNCTION(17, "ANALOG") | ||
1237 | ), | ||
1238 | STM32_PIN( | ||
1239 | PINCTRL_PIN(118, "PH6"), | ||
1240 | STM32_FUNCTION(0, "GPIOH6"), | ||
1241 | STM32_FUNCTION(5, "I2C2_SMBA"), | ||
1242 | STM32_FUNCTION(6, "SPI5_SCK"), | ||
1243 | STM32_FUNCTION(10, "TIM12_CH1"), | ||
1244 | STM32_FUNCTION(12, "ETH_MII_RXD2"), | ||
1245 | STM32_FUNCTION(13, "FMC_SDNE1"), | ||
1246 | STM32_FUNCTION(14, "DCMI_D8"), | ||
1247 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1248 | STM32_FUNCTION(17, "ANALOG") | ||
1249 | ), | ||
1250 | STM32_PIN( | ||
1251 | PINCTRL_PIN(119, "PH7"), | ||
1252 | STM32_FUNCTION(0, "GPIOH7"), | ||
1253 | STM32_FUNCTION(5, "I2C3_SCL"), | ||
1254 | STM32_FUNCTION(6, "SPI5_MISO"), | ||
1255 | STM32_FUNCTION(12, "ETH_MII_RXD3"), | ||
1256 | STM32_FUNCTION(13, "FMC_SDCKE1"), | ||
1257 | STM32_FUNCTION(14, "DCMI_D9"), | ||
1258 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1259 | STM32_FUNCTION(17, "ANALOG") | ||
1260 | ), | ||
1261 | STM32_PIN( | ||
1262 | PINCTRL_PIN(120, "PH8"), | ||
1263 | STM32_FUNCTION(0, "GPIOH8"), | ||
1264 | STM32_FUNCTION(5, "I2C3_SDA"), | ||
1265 | STM32_FUNCTION(13, "FMC_D16"), | ||
1266 | STM32_FUNCTION(14, "DCMI_HSYNC"), | ||
1267 | STM32_FUNCTION(15, "LCD_R2"), | ||
1268 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1269 | STM32_FUNCTION(17, "ANALOG") | ||
1270 | ), | ||
1271 | STM32_PIN( | ||
1272 | PINCTRL_PIN(121, "PH9"), | ||
1273 | STM32_FUNCTION(0, "GPIOH9"), | ||
1274 | STM32_FUNCTION(5, "I2C3_SMBA"), | ||
1275 | STM32_FUNCTION(10, "TIM12_CH2"), | ||
1276 | STM32_FUNCTION(13, "FMC_D17"), | ||
1277 | STM32_FUNCTION(14, "DCMI_D0"), | ||
1278 | STM32_FUNCTION(15, "LCD_R3"), | ||
1279 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1280 | STM32_FUNCTION(17, "ANALOG") | ||
1281 | ), | ||
1282 | STM32_PIN( | ||
1283 | PINCTRL_PIN(122, "PH10"), | ||
1284 | STM32_FUNCTION(0, "GPIOH10"), | ||
1285 | STM32_FUNCTION(3, "TIM5_CH1"), | ||
1286 | STM32_FUNCTION(5, "I2C4_SMBA"), | ||
1287 | STM32_FUNCTION(13, "FMC_D18"), | ||
1288 | STM32_FUNCTION(14, "DCMI_D1"), | ||
1289 | STM32_FUNCTION(15, "LCD_R4"), | ||
1290 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1291 | STM32_FUNCTION(17, "ANALOG") | ||
1292 | ), | ||
1293 | STM32_PIN( | ||
1294 | PINCTRL_PIN(123, "PH11"), | ||
1295 | STM32_FUNCTION(0, "GPIOH11"), | ||
1296 | STM32_FUNCTION(3, "TIM5_CH2"), | ||
1297 | STM32_FUNCTION(5, "I2C4_SCL"), | ||
1298 | STM32_FUNCTION(13, "FMC_D19"), | ||
1299 | STM32_FUNCTION(14, "DCMI_D2"), | ||
1300 | STM32_FUNCTION(15, "LCD_R5"), | ||
1301 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1302 | STM32_FUNCTION(17, "ANALOG") | ||
1303 | ), | ||
1304 | STM32_PIN( | ||
1305 | PINCTRL_PIN(124, "PH12"), | ||
1306 | STM32_FUNCTION(0, "GPIOH12"), | ||
1307 | STM32_FUNCTION(3, "TIM5_CH3"), | ||
1308 | STM32_FUNCTION(5, "I2C4_SDA"), | ||
1309 | STM32_FUNCTION(13, "FMC_D20"), | ||
1310 | STM32_FUNCTION(14, "DCMI_D3"), | ||
1311 | STM32_FUNCTION(15, "LCD_R6"), | ||
1312 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1313 | STM32_FUNCTION(17, "ANALOG") | ||
1314 | ), | ||
1315 | STM32_PIN( | ||
1316 | PINCTRL_PIN(125, "PH13"), | ||
1317 | STM32_FUNCTION(0, "GPIOH13"), | ||
1318 | STM32_FUNCTION(4, "TIM8_CH1N"), | ||
1319 | STM32_FUNCTION(10, "CAN1_TX"), | ||
1320 | STM32_FUNCTION(13, "FMC_D21"), | ||
1321 | STM32_FUNCTION(15, "LCD_G2"), | ||
1322 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1323 | STM32_FUNCTION(17, "ANALOG") | ||
1324 | ), | ||
1325 | STM32_PIN( | ||
1326 | PINCTRL_PIN(126, "PH14"), | ||
1327 | STM32_FUNCTION(0, "GPIOH14"), | ||
1328 | STM32_FUNCTION(4, "TIM8_CH2N"), | ||
1329 | STM32_FUNCTION(13, "FMC_D22"), | ||
1330 | STM32_FUNCTION(14, "DCMI_D4"), | ||
1331 | STM32_FUNCTION(15, "LCD_G3"), | ||
1332 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1333 | STM32_FUNCTION(17, "ANALOG") | ||
1334 | ), | ||
1335 | STM32_PIN( | ||
1336 | PINCTRL_PIN(127, "PH15"), | ||
1337 | STM32_FUNCTION(0, "GPIOH15"), | ||
1338 | STM32_FUNCTION(4, "TIM8_CH3N"), | ||
1339 | STM32_FUNCTION(13, "FMC_D23"), | ||
1340 | STM32_FUNCTION(14, "DCMI_D11"), | ||
1341 | STM32_FUNCTION(15, "LCD_G4"), | ||
1342 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1343 | STM32_FUNCTION(17, "ANALOG") | ||
1344 | ), | ||
1345 | STM32_PIN( | ||
1346 | PINCTRL_PIN(128, "PI0"), | ||
1347 | STM32_FUNCTION(0, "GPIOI0"), | ||
1348 | STM32_FUNCTION(3, "TIM5_CH4"), | ||
1349 | STM32_FUNCTION(6, "SPI2_NSS I2S2_WS"), | ||
1350 | STM32_FUNCTION(13, "FMC_D24"), | ||
1351 | STM32_FUNCTION(14, "DCMI_D13"), | ||
1352 | STM32_FUNCTION(15, "LCD_G5"), | ||
1353 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1354 | STM32_FUNCTION(17, "ANALOG") | ||
1355 | ), | ||
1356 | STM32_PIN( | ||
1357 | PINCTRL_PIN(129, "PI1"), | ||
1358 | STM32_FUNCTION(0, "GPIOI1"), | ||
1359 | STM32_FUNCTION(4, "TIM8_BKIN2"), | ||
1360 | STM32_FUNCTION(6, "SPI2_SCK I2S2_CK"), | ||
1361 | STM32_FUNCTION(13, "FMC_D25"), | ||
1362 | STM32_FUNCTION(14, "DCMI_D8"), | ||
1363 | STM32_FUNCTION(15, "LCD_G6"), | ||
1364 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1365 | STM32_FUNCTION(17, "ANALOG") | ||
1366 | ), | ||
1367 | STM32_PIN( | ||
1368 | PINCTRL_PIN(130, "PI2"), | ||
1369 | STM32_FUNCTION(0, "GPIOI2"), | ||
1370 | STM32_FUNCTION(4, "TIM8_CH4"), | ||
1371 | STM32_FUNCTION(6, "SPI2_MISO"), | ||
1372 | STM32_FUNCTION(13, "FMC_D26"), | ||
1373 | STM32_FUNCTION(14, "DCMI_D9"), | ||
1374 | STM32_FUNCTION(15, "LCD_G7"), | ||
1375 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1376 | STM32_FUNCTION(17, "ANALOG") | ||
1377 | ), | ||
1378 | STM32_PIN( | ||
1379 | PINCTRL_PIN(131, "PI3"), | ||
1380 | STM32_FUNCTION(0, "GPIOI3"), | ||
1381 | STM32_FUNCTION(4, "TIM8_ETR"), | ||
1382 | STM32_FUNCTION(6, "SPI2_MOSI I2S2_SD"), | ||
1383 | STM32_FUNCTION(13, "FMC_D27"), | ||
1384 | STM32_FUNCTION(14, "DCMI_D10"), | ||
1385 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1386 | STM32_FUNCTION(17, "ANALOG") | ||
1387 | ), | ||
1388 | STM32_PIN( | ||
1389 | PINCTRL_PIN(132, "PI4"), | ||
1390 | STM32_FUNCTION(0, "GPIOI4"), | ||
1391 | STM32_FUNCTION(4, "TIM8_BKIN"), | ||
1392 | STM32_FUNCTION(11, "SAI2_MCLK_A"), | ||
1393 | STM32_FUNCTION(13, "FMC_NBL2"), | ||
1394 | STM32_FUNCTION(14, "DCMI_D5"), | ||
1395 | STM32_FUNCTION(15, "LCD_B4"), | ||
1396 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1397 | STM32_FUNCTION(17, "ANALOG") | ||
1398 | ), | ||
1399 | STM32_PIN( | ||
1400 | PINCTRL_PIN(133, "PI5"), | ||
1401 | STM32_FUNCTION(0, "GPIOI5"), | ||
1402 | STM32_FUNCTION(4, "TIM8_CH1"), | ||
1403 | STM32_FUNCTION(11, "SAI2_SCK_A"), | ||
1404 | STM32_FUNCTION(13, "FMC_NBL3"), | ||
1405 | STM32_FUNCTION(14, "DCMI_VSYNC"), | ||
1406 | STM32_FUNCTION(15, "LCD_B5"), | ||
1407 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1408 | STM32_FUNCTION(17, "ANALOG") | ||
1409 | ), | ||
1410 | STM32_PIN( | ||
1411 | PINCTRL_PIN(134, "PI6"), | ||
1412 | STM32_FUNCTION(0, "GPIOI6"), | ||
1413 | STM32_FUNCTION(4, "TIM8_CH2"), | ||
1414 | STM32_FUNCTION(11, "SAI2_SD_A"), | ||
1415 | STM32_FUNCTION(13, "FMC_D28"), | ||
1416 | STM32_FUNCTION(14, "DCMI_D6"), | ||
1417 | STM32_FUNCTION(15, "LCD_B6"), | ||
1418 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1419 | STM32_FUNCTION(17, "ANALOG") | ||
1420 | ), | ||
1421 | STM32_PIN( | ||
1422 | PINCTRL_PIN(135, "PI7"), | ||
1423 | STM32_FUNCTION(0, "GPIOI7"), | ||
1424 | STM32_FUNCTION(4, "TIM8_CH3"), | ||
1425 | STM32_FUNCTION(11, "SAI2_FS_A"), | ||
1426 | STM32_FUNCTION(13, "FMC_D29"), | ||
1427 | STM32_FUNCTION(14, "DCMI_D7"), | ||
1428 | STM32_FUNCTION(15, "LCD_B7"), | ||
1429 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1430 | STM32_FUNCTION(17, "ANALOG") | ||
1431 | ), | ||
1432 | STM32_PIN( | ||
1433 | PINCTRL_PIN(136, "PI8"), | ||
1434 | STM32_FUNCTION(0, "GPIOI8"), | ||
1435 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1436 | STM32_FUNCTION(17, "ANALOG") | ||
1437 | ), | ||
1438 | STM32_PIN( | ||
1439 | PINCTRL_PIN(137, "PI9"), | ||
1440 | STM32_FUNCTION(0, "GPIOI9"), | ||
1441 | STM32_FUNCTION(10, "CAN1_RX"), | ||
1442 | STM32_FUNCTION(13, "FMC_D30"), | ||
1443 | STM32_FUNCTION(15, "LCD_VSYNC"), | ||
1444 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1445 | STM32_FUNCTION(17, "ANALOG") | ||
1446 | ), | ||
1447 | STM32_PIN( | ||
1448 | PINCTRL_PIN(138, "PI10"), | ||
1449 | STM32_FUNCTION(0, "GPIOI10"), | ||
1450 | STM32_FUNCTION(12, "ETH_MII_RX_ER"), | ||
1451 | STM32_FUNCTION(13, "FMC_D31"), | ||
1452 | STM32_FUNCTION(15, "LCD_HSYNC"), | ||
1453 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1454 | STM32_FUNCTION(17, "ANALOG") | ||
1455 | ), | ||
1456 | STM32_PIN( | ||
1457 | PINCTRL_PIN(139, "PI11"), | ||
1458 | STM32_FUNCTION(0, "GPIOI11"), | ||
1459 | STM32_FUNCTION(11, "OTG_HS_ULPI_DIR"), | ||
1460 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1461 | STM32_FUNCTION(17, "ANALOG") | ||
1462 | ), | ||
1463 | STM32_PIN( | ||
1464 | PINCTRL_PIN(140, "PI12"), | ||
1465 | STM32_FUNCTION(0, "GPIOI12"), | ||
1466 | STM32_FUNCTION(15, "LCD_HSYNC"), | ||
1467 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1468 | STM32_FUNCTION(17, "ANALOG") | ||
1469 | ), | ||
1470 | STM32_PIN( | ||
1471 | PINCTRL_PIN(141, "PI13"), | ||
1472 | STM32_FUNCTION(0, "GPIOI13"), | ||
1473 | STM32_FUNCTION(15, "LCD_VSYNC"), | ||
1474 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1475 | STM32_FUNCTION(17, "ANALOG") | ||
1476 | ), | ||
1477 | STM32_PIN( | ||
1478 | PINCTRL_PIN(142, "PI14"), | ||
1479 | STM32_FUNCTION(0, "GPIOI14"), | ||
1480 | STM32_FUNCTION(15, "LCD_CLK"), | ||
1481 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1482 | STM32_FUNCTION(17, "ANALOG") | ||
1483 | ), | ||
1484 | STM32_PIN( | ||
1485 | PINCTRL_PIN(143, "PI15"), | ||
1486 | STM32_FUNCTION(0, "GPIOI15"), | ||
1487 | STM32_FUNCTION(15, "LCD_R0"), | ||
1488 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1489 | STM32_FUNCTION(17, "ANALOG") | ||
1490 | ), | ||
1491 | STM32_PIN( | ||
1492 | PINCTRL_PIN(144, "PJ0"), | ||
1493 | STM32_FUNCTION(0, "GPIOJ0"), | ||
1494 | STM32_FUNCTION(15, "LCD_R1"), | ||
1495 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1496 | STM32_FUNCTION(17, "ANALOG") | ||
1497 | ), | ||
1498 | STM32_PIN( | ||
1499 | PINCTRL_PIN(145, "PJ1"), | ||
1500 | STM32_FUNCTION(0, "GPIOJ1"), | ||
1501 | STM32_FUNCTION(15, "LCD_R2"), | ||
1502 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1503 | STM32_FUNCTION(17, "ANALOG") | ||
1504 | ), | ||
1505 | STM32_PIN( | ||
1506 | PINCTRL_PIN(146, "PJ2"), | ||
1507 | STM32_FUNCTION(0, "GPIOJ2"), | ||
1508 | STM32_FUNCTION(15, "LCD_R3"), | ||
1509 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1510 | STM32_FUNCTION(17, "ANALOG") | ||
1511 | ), | ||
1512 | STM32_PIN( | ||
1513 | PINCTRL_PIN(147, "PJ3"), | ||
1514 | STM32_FUNCTION(0, "GPIOJ3"), | ||
1515 | STM32_FUNCTION(15, "LCD_R4"), | ||
1516 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1517 | STM32_FUNCTION(17, "ANALOG") | ||
1518 | ), | ||
1519 | STM32_PIN( | ||
1520 | PINCTRL_PIN(148, "PJ4"), | ||
1521 | STM32_FUNCTION(0, "GPIOJ4"), | ||
1522 | STM32_FUNCTION(15, "LCD_R5"), | ||
1523 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1524 | STM32_FUNCTION(17, "ANALOG") | ||
1525 | ), | ||
1526 | STM32_PIN( | ||
1527 | PINCTRL_PIN(149, "PJ5"), | ||
1528 | STM32_FUNCTION(0, "GPIOJ5"), | ||
1529 | STM32_FUNCTION(15, "LCD_R6"), | ||
1530 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1531 | STM32_FUNCTION(17, "ANALOG") | ||
1532 | ), | ||
1533 | STM32_PIN( | ||
1534 | PINCTRL_PIN(150, "PJ6"), | ||
1535 | STM32_FUNCTION(0, "GPIOJ6"), | ||
1536 | STM32_FUNCTION(15, "LCD_R7"), | ||
1537 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1538 | STM32_FUNCTION(17, "ANALOG") | ||
1539 | ), | ||
1540 | STM32_PIN( | ||
1541 | PINCTRL_PIN(151, "PJ7"), | ||
1542 | STM32_FUNCTION(0, "GPIOJ7"), | ||
1543 | STM32_FUNCTION(15, "LCD_G0"), | ||
1544 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1545 | STM32_FUNCTION(17, "ANALOG") | ||
1546 | ), | ||
1547 | STM32_PIN( | ||
1548 | PINCTRL_PIN(152, "PJ8"), | ||
1549 | STM32_FUNCTION(0, "GPIOJ8"), | ||
1550 | STM32_FUNCTION(15, "LCD_G1"), | ||
1551 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1552 | STM32_FUNCTION(17, "ANALOG") | ||
1553 | ), | ||
1554 | STM32_PIN( | ||
1555 | PINCTRL_PIN(153, "PJ9"), | ||
1556 | STM32_FUNCTION(0, "GPIOJ9"), | ||
1557 | STM32_FUNCTION(15, "LCD_G2"), | ||
1558 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1559 | STM32_FUNCTION(17, "ANALOG") | ||
1560 | ), | ||
1561 | STM32_PIN( | ||
1562 | PINCTRL_PIN(154, "PJ10"), | ||
1563 | STM32_FUNCTION(0, "GPIOJ10"), | ||
1564 | STM32_FUNCTION(15, "LCD_G3"), | ||
1565 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1566 | STM32_FUNCTION(17, "ANALOG") | ||
1567 | ), | ||
1568 | STM32_PIN( | ||
1569 | PINCTRL_PIN(155, "PJ11"), | ||
1570 | STM32_FUNCTION(0, "GPIOJ11"), | ||
1571 | STM32_FUNCTION(15, "LCD_G4"), | ||
1572 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1573 | STM32_FUNCTION(17, "ANALOG") | ||
1574 | ), | ||
1575 | STM32_PIN( | ||
1576 | PINCTRL_PIN(156, "PJ12"), | ||
1577 | STM32_FUNCTION(0, "GPIOJ12"), | ||
1578 | STM32_FUNCTION(15, "LCD_B0"), | ||
1579 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1580 | STM32_FUNCTION(17, "ANALOG") | ||
1581 | ), | ||
1582 | STM32_PIN( | ||
1583 | PINCTRL_PIN(157, "PJ13"), | ||
1584 | STM32_FUNCTION(0, "GPIOJ13"), | ||
1585 | STM32_FUNCTION(15, "LCD_B1"), | ||
1586 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1587 | STM32_FUNCTION(17, "ANALOG") | ||
1588 | ), | ||
1589 | STM32_PIN( | ||
1590 | PINCTRL_PIN(158, "PJ14"), | ||
1591 | STM32_FUNCTION(0, "GPIOJ14"), | ||
1592 | STM32_FUNCTION(15, "LCD_B2"), | ||
1593 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1594 | STM32_FUNCTION(17, "ANALOG") | ||
1595 | ), | ||
1596 | STM32_PIN( | ||
1597 | PINCTRL_PIN(159, "PJ15"), | ||
1598 | STM32_FUNCTION(0, "GPIOJ15"), | ||
1599 | STM32_FUNCTION(15, "LCD_B3"), | ||
1600 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1601 | STM32_FUNCTION(17, "ANALOG") | ||
1602 | ), | ||
1603 | STM32_PIN( | ||
1604 | PINCTRL_PIN(160, "PK0"), | ||
1605 | STM32_FUNCTION(0, "GPIOK0"), | ||
1606 | STM32_FUNCTION(15, "LCD_G5"), | ||
1607 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1608 | STM32_FUNCTION(17, "ANALOG") | ||
1609 | ), | ||
1610 | STM32_PIN( | ||
1611 | PINCTRL_PIN(161, "PK1"), | ||
1612 | STM32_FUNCTION(0, "GPIOK1"), | ||
1613 | STM32_FUNCTION(15, "LCD_G6"), | ||
1614 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1615 | STM32_FUNCTION(17, "ANALOG") | ||
1616 | ), | ||
1617 | STM32_PIN( | ||
1618 | PINCTRL_PIN(162, "PK2"), | ||
1619 | STM32_FUNCTION(0, "GPIOK2"), | ||
1620 | STM32_FUNCTION(15, "LCD_G7"), | ||
1621 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1622 | STM32_FUNCTION(17, "ANALOG") | ||
1623 | ), | ||
1624 | STM32_PIN( | ||
1625 | PINCTRL_PIN(163, "PK3"), | ||
1626 | STM32_FUNCTION(0, "GPIOK3"), | ||
1627 | STM32_FUNCTION(15, "LCD_B4"), | ||
1628 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1629 | STM32_FUNCTION(17, "ANALOG") | ||
1630 | ), | ||
1631 | STM32_PIN( | ||
1632 | PINCTRL_PIN(164, "PK4"), | ||
1633 | STM32_FUNCTION(0, "GPIOK4"), | ||
1634 | STM32_FUNCTION(15, "LCD_B5"), | ||
1635 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1636 | STM32_FUNCTION(17, "ANALOG") | ||
1637 | ), | ||
1638 | STM32_PIN( | ||
1639 | PINCTRL_PIN(165, "PK5"), | ||
1640 | STM32_FUNCTION(0, "GPIOK5"), | ||
1641 | STM32_FUNCTION(15, "LCD_B6"), | ||
1642 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1643 | STM32_FUNCTION(17, "ANALOG") | ||
1644 | ), | ||
1645 | STM32_PIN( | ||
1646 | PINCTRL_PIN(166, "PK6"), | ||
1647 | STM32_FUNCTION(0, "GPIOK6"), | ||
1648 | STM32_FUNCTION(15, "LCD_B7"), | ||
1649 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1650 | STM32_FUNCTION(17, "ANALOG") | ||
1651 | ), | ||
1652 | STM32_PIN( | ||
1653 | PINCTRL_PIN(167, "PK7"), | ||
1654 | STM32_FUNCTION(0, "GPIOK7"), | ||
1655 | STM32_FUNCTION(15, "LCD_DE"), | ||
1656 | STM32_FUNCTION(16, "EVENTOUT"), | ||
1657 | STM32_FUNCTION(17, "ANALOG") | ||
1658 | ), | ||
1659 | }; | ||
1660 | |||
1661 | static struct stm32_pinctrl_match_data stm32f746_match_data = { | ||
1662 | .pins = stm32f746_pins, | ||
1663 | .npins = ARRAY_SIZE(stm32f746_pins), | ||
1664 | }; | ||
1665 | |||
1666 | static const struct of_device_id stm32f746_pctrl_match[] = { | ||
1667 | { | ||
1668 | .compatible = "st,stm32f746-pinctrl", | ||
1669 | .data = &stm32f746_match_data, | ||
1670 | }, | ||
1671 | { } | ||
1672 | }; | ||
1673 | |||
1674 | static struct platform_driver stm32f746_pinctrl_driver = { | ||
1675 | .probe = stm32_pctl_probe, | ||
1676 | .driver = { | ||
1677 | .name = "stm32f746-pinctrl", | ||
1678 | .of_match_table = stm32f746_pctrl_match, | ||
1679 | }, | ||
1680 | }; | ||
1681 | builtin_platform_driver(stm32f746_pinctrl_driver); | ||
diff --git a/drivers/pinctrl/sunxi/pinctrl-sun8i-a23.c b/drivers/pinctrl/sunxi/pinctrl-sun8i-a23.c index 55083d278bb1..ce483b03a263 100644 --- a/drivers/pinctrl/sunxi/pinctrl-sun8i-a23.c +++ b/drivers/pinctrl/sunxi/pinctrl-sun8i-a23.c | |||
@@ -180,17 +180,17 @@ static const struct sunxi_desc_pin sun8i_a23_pins[] = { | |||
180 | SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 14), | 180 | SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 14), |
181 | SUNXI_FUNCTION(0x0, "gpio_in"), | 181 | SUNXI_FUNCTION(0x0, "gpio_in"), |
182 | SUNXI_FUNCTION(0x1, "gpio_out"), | 182 | SUNXI_FUNCTION(0x1, "gpio_out"), |
183 | SUNXI_FUNCTION(0x2, "nand"), /* DQ6 */ | 183 | SUNXI_FUNCTION(0x2, "nand0"), /* DQ6 */ |
184 | SUNXI_FUNCTION(0x3, "mmc2")), /* D6 */ | 184 | SUNXI_FUNCTION(0x3, "mmc2")), /* D6 */ |
185 | SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 15), | 185 | SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 15), |
186 | SUNXI_FUNCTION(0x0, "gpio_in"), | 186 | SUNXI_FUNCTION(0x0, "gpio_in"), |
187 | SUNXI_FUNCTION(0x1, "gpio_out"), | 187 | SUNXI_FUNCTION(0x1, "gpio_out"), |
188 | SUNXI_FUNCTION(0x2, "nand"), /* DQ7 */ | 188 | SUNXI_FUNCTION(0x2, "nand0"), /* DQ7 */ |
189 | SUNXI_FUNCTION(0x3, "mmc2")), /* D7 */ | 189 | SUNXI_FUNCTION(0x3, "mmc2")), /* D7 */ |
190 | SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 16), | 190 | SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 16), |
191 | SUNXI_FUNCTION(0x0, "gpio_in"), | 191 | SUNXI_FUNCTION(0x0, "gpio_in"), |
192 | SUNXI_FUNCTION(0x1, "gpio_out"), | 192 | SUNXI_FUNCTION(0x1, "gpio_out"), |
193 | SUNXI_FUNCTION(0x2, "nand"), /* DQS */ | 193 | SUNXI_FUNCTION(0x2, "nand0"), /* DQS */ |
194 | SUNXI_FUNCTION(0x3, "mmc2")), /* RST */ | 194 | SUNXI_FUNCTION(0x3, "mmc2")), /* RST */ |
195 | SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 17), | 195 | SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 17), |
196 | SUNXI_FUNCTION(0x0, "gpio_in"), | 196 | SUNXI_FUNCTION(0x0, "gpio_in"), |
diff --git a/drivers/pinctrl/sunxi/pinctrl-sun8i-a33.c b/drivers/pinctrl/sunxi/pinctrl-sun8i-a33.c index 8b381d69df86..3040abe6f73a 100644 --- a/drivers/pinctrl/sunxi/pinctrl-sun8i-a33.c +++ b/drivers/pinctrl/sunxi/pinctrl-sun8i-a33.c | |||
@@ -140,17 +140,17 @@ static const struct sunxi_desc_pin sun8i_a33_pins[] = { | |||
140 | SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 14), | 140 | SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 14), |
141 | SUNXI_FUNCTION(0x0, "gpio_in"), | 141 | SUNXI_FUNCTION(0x0, "gpio_in"), |
142 | SUNXI_FUNCTION(0x1, "gpio_out"), | 142 | SUNXI_FUNCTION(0x1, "gpio_out"), |
143 | SUNXI_FUNCTION(0x2, "nand"), /* DQ6 */ | 143 | SUNXI_FUNCTION(0x2, "nand0"), /* DQ6 */ |
144 | SUNXI_FUNCTION(0x3, "mmc2")), /* D6 */ | 144 | SUNXI_FUNCTION(0x3, "mmc2")), /* D6 */ |
145 | SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 15), | 145 | SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 15), |
146 | SUNXI_FUNCTION(0x0, "gpio_in"), | 146 | SUNXI_FUNCTION(0x0, "gpio_in"), |
147 | SUNXI_FUNCTION(0x1, "gpio_out"), | 147 | SUNXI_FUNCTION(0x1, "gpio_out"), |
148 | SUNXI_FUNCTION(0x2, "nand"), /* DQ7 */ | 148 | SUNXI_FUNCTION(0x2, "nand0"), /* DQ7 */ |
149 | SUNXI_FUNCTION(0x3, "mmc2")), /* D7 */ | 149 | SUNXI_FUNCTION(0x3, "mmc2")), /* D7 */ |
150 | SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 16), | 150 | SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 16), |
151 | SUNXI_FUNCTION(0x0, "gpio_in"), | 151 | SUNXI_FUNCTION(0x0, "gpio_in"), |
152 | SUNXI_FUNCTION(0x1, "gpio_out"), | 152 | SUNXI_FUNCTION(0x1, "gpio_out"), |
153 | SUNXI_FUNCTION(0x2, "nand"), /* DQS */ | 153 | SUNXI_FUNCTION(0x2, "nand0"), /* DQS */ |
154 | SUNXI_FUNCTION(0x3, "mmc2")), /* RST */ | 154 | SUNXI_FUNCTION(0x3, "mmc2")), /* RST */ |
155 | /* Hole */ | 155 | /* Hole */ |
156 | SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 2), | 156 | SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 2), |
diff --git a/drivers/pinctrl/sunxi/pinctrl-sun8i-h3.c b/drivers/pinctrl/sunxi/pinctrl-sun8i-h3.c index 11760bbe9d51..26a2ad3b651f 100644 --- a/drivers/pinctrl/sunxi/pinctrl-sun8i-h3.c +++ b/drivers/pinctrl/sunxi/pinctrl-sun8i-h3.c | |||
@@ -219,17 +219,17 @@ static const struct sunxi_desc_pin sun8i_h3_pins[] = { | |||
219 | SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 14), | 219 | SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 14), |
220 | SUNXI_FUNCTION(0x0, "gpio_in"), | 220 | SUNXI_FUNCTION(0x0, "gpio_in"), |
221 | SUNXI_FUNCTION(0x1, "gpio_out"), | 221 | SUNXI_FUNCTION(0x1, "gpio_out"), |
222 | SUNXI_FUNCTION(0x2, "nand"), /* DQ6 */ | 222 | SUNXI_FUNCTION(0x2, "nand0"), /* DQ6 */ |
223 | SUNXI_FUNCTION(0x3, "mmc2")), /* D6 */ | 223 | SUNXI_FUNCTION(0x3, "mmc2")), /* D6 */ |
224 | SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 15), | 224 | SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 15), |
225 | SUNXI_FUNCTION(0x0, "gpio_in"), | 225 | SUNXI_FUNCTION(0x0, "gpio_in"), |
226 | SUNXI_FUNCTION(0x1, "gpio_out"), | 226 | SUNXI_FUNCTION(0x1, "gpio_out"), |
227 | SUNXI_FUNCTION(0x2, "nand"), /* DQ7 */ | 227 | SUNXI_FUNCTION(0x2, "nand0"), /* DQ7 */ |
228 | SUNXI_FUNCTION(0x3, "mmc2")), /* D7 */ | 228 | SUNXI_FUNCTION(0x3, "mmc2")), /* D7 */ |
229 | SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 16), | 229 | SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 16), |
230 | SUNXI_FUNCTION(0x0, "gpio_in"), | 230 | SUNXI_FUNCTION(0x0, "gpio_in"), |
231 | SUNXI_FUNCTION(0x1, "gpio_out"), | 231 | SUNXI_FUNCTION(0x1, "gpio_out"), |
232 | SUNXI_FUNCTION(0x2, "nand"), /* DQS */ | 232 | SUNXI_FUNCTION(0x2, "nand0"), /* DQS */ |
233 | SUNXI_FUNCTION(0x3, "mmc2")), /* RST */ | 233 | SUNXI_FUNCTION(0x3, "mmc2")), /* RST */ |
234 | /* Hole */ | 234 | /* Hole */ |
235 | SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 0), | 235 | SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 0), |
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra.c b/drivers/pinctrl/tegra/pinctrl-tegra.c index 6e82b290cb4f..277622b4b6fb 100644 --- a/drivers/pinctrl/tegra/pinctrl-tegra.c +++ b/drivers/pinctrl/tegra/pinctrl-tegra.c | |||
@@ -632,11 +632,11 @@ static void tegra_pinctrl_clear_parked_bits(struct tegra_pmx *pmx) | |||
632 | u32 val; | 632 | u32 val; |
633 | 633 | ||
634 | for (i = 0; i < pmx->soc->ngroups; ++i) { | 634 | for (i = 0; i < pmx->soc->ngroups; ++i) { |
635 | if (pmx->soc->groups[i].parked_reg >= 0) { | 635 | g = &pmx->soc->groups[i]; |
636 | g = &pmx->soc->groups[i]; | 636 | if (g->parked_bit >= 0) { |
637 | val = pmx_readl(pmx, g->parked_bank, g->parked_reg); | 637 | val = pmx_readl(pmx, g->mux_bank, g->mux_reg); |
638 | val &= ~(1 << g->parked_bit); | 638 | val &= ~(1 << g->parked_bit); |
639 | pmx_writel(pmx, val, g->parked_bank, g->parked_reg); | 639 | pmx_writel(pmx, val, g->mux_bank, g->mux_reg); |
640 | } | 640 | } |
641 | } | 641 | } |
642 | } | 642 | } |
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra.h b/drivers/pinctrl/tegra/pinctrl-tegra.h index d2ced17382b5..33b17cb1471e 100644 --- a/drivers/pinctrl/tegra/pinctrl-tegra.h +++ b/drivers/pinctrl/tegra/pinctrl-tegra.h | |||
@@ -93,9 +93,7 @@ struct tegra_function { | |||
93 | * @tri_reg: Tri-state register offset. | 93 | * @tri_reg: Tri-state register offset. |
94 | * @tri_bank: Tri-state register bank. | 94 | * @tri_bank: Tri-state register bank. |
95 | * @tri_bit: Tri-state register bit. | 95 | * @tri_bit: Tri-state register bit. |
96 | * @parked_reg: Parked register offset. -1 if unsupported. | 96 | * @parked_bit: Parked register bit. -1 if unsupported. |
97 | * @parked_bank: Parked register bank. 0 if unsupported. | ||
98 | * @parked_bit: Parked register bit. 0 if unsupported. | ||
99 | * @einput_bit: Enable-input register bit. | 97 | * @einput_bit: Enable-input register bit. |
100 | * @odrain_bit: Open-drain register bit. | 98 | * @odrain_bit: Open-drain register bit. |
101 | * @lock_bit: Lock register bit. | 99 | * @lock_bit: Lock register bit. |
@@ -138,12 +136,10 @@ struct tegra_pingroup { | |||
138 | s16 pupd_reg; | 136 | s16 pupd_reg; |
139 | s16 tri_reg; | 137 | s16 tri_reg; |
140 | s16 drv_reg; | 138 | s16 drv_reg; |
141 | s16 parked_reg; | ||
142 | u32 mux_bank:2; | 139 | u32 mux_bank:2; |
143 | u32 pupd_bank:2; | 140 | u32 pupd_bank:2; |
144 | u32 tri_bank:2; | 141 | u32 tri_bank:2; |
145 | u32 drv_bank:2; | 142 | u32 drv_bank:2; |
146 | u32 parked_bank:2; | ||
147 | s32 mux_bit:6; | 143 | s32 mux_bit:6; |
148 | s32 pupd_bit:6; | 144 | s32 pupd_bit:6; |
149 | s32 tri_bit:6; | 145 | s32 tri_bit:6; |
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra114.c b/drivers/pinctrl/tegra/pinctrl-tegra114.c index 4851d169f4c7..952132ce5ea0 100644 --- a/drivers/pinctrl/tegra/pinctrl-tegra114.c +++ b/drivers/pinctrl/tegra/pinctrl-tegra114.c | |||
@@ -1578,7 +1578,7 @@ static struct tegra_function tegra114_functions[] = { | |||
1578 | .lock_bit = 7, \ | 1578 | .lock_bit = 7, \ |
1579 | .ioreset_bit = PINGROUP_BIT_##ior(8), \ | 1579 | .ioreset_bit = PINGROUP_BIT_##ior(8), \ |
1580 | .rcv_sel_bit = PINGROUP_BIT_##rcv_sel(9), \ | 1580 | .rcv_sel_bit = PINGROUP_BIT_##rcv_sel(9), \ |
1581 | .parked_reg = -1, \ | 1581 | .parked_bit = -1, \ |
1582 | .drv_reg = -1, \ | 1582 | .drv_reg = -1, \ |
1583 | } | 1583 | } |
1584 | 1584 | ||
@@ -1599,7 +1599,7 @@ static struct tegra_function tegra114_functions[] = { | |||
1599 | .rcv_sel_bit = -1, \ | 1599 | .rcv_sel_bit = -1, \ |
1600 | .drv_reg = DRV_PINGROUP_REG(r), \ | 1600 | .drv_reg = DRV_PINGROUP_REG(r), \ |
1601 | .drv_bank = 0, \ | 1601 | .drv_bank = 0, \ |
1602 | .parked_reg = -1, \ | 1602 | .parked_bit = -1, \ |
1603 | .hsm_bit = hsm_b, \ | 1603 | .hsm_bit = hsm_b, \ |
1604 | .schmitt_bit = schmitt_b, \ | 1604 | .schmitt_bit = schmitt_b, \ |
1605 | .lpmd_bit = lpmd_b, \ | 1605 | .lpmd_bit = lpmd_b, \ |
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra124.c b/drivers/pinctrl/tegra/pinctrl-tegra124.c index a0ce723a9482..bca239e3ae50 100644 --- a/drivers/pinctrl/tegra/pinctrl-tegra124.c +++ b/drivers/pinctrl/tegra/pinctrl-tegra124.c | |||
@@ -1747,7 +1747,7 @@ static struct tegra_function tegra124_functions[] = { | |||
1747 | .lock_bit = 7, \ | 1747 | .lock_bit = 7, \ |
1748 | .ioreset_bit = PINGROUP_BIT_##ior(8), \ | 1748 | .ioreset_bit = PINGROUP_BIT_##ior(8), \ |
1749 | .rcv_sel_bit = PINGROUP_BIT_##rcv_sel(9), \ | 1749 | .rcv_sel_bit = PINGROUP_BIT_##rcv_sel(9), \ |
1750 | .parked_reg = -1, \ | 1750 | .parked_bit = -1, \ |
1751 | .drv_reg = -1, \ | 1751 | .drv_reg = -1, \ |
1752 | } | 1752 | } |
1753 | 1753 | ||
@@ -1768,7 +1768,7 @@ static struct tegra_function tegra124_functions[] = { | |||
1768 | .rcv_sel_bit = -1, \ | 1768 | .rcv_sel_bit = -1, \ |
1769 | .drv_reg = DRV_PINGROUP_REG(r), \ | 1769 | .drv_reg = DRV_PINGROUP_REG(r), \ |
1770 | .drv_bank = 0, \ | 1770 | .drv_bank = 0, \ |
1771 | .parked_reg = -1, \ | 1771 | .parked_bit = -1, \ |
1772 | .hsm_bit = hsm_b, \ | 1772 | .hsm_bit = hsm_b, \ |
1773 | .schmitt_bit = schmitt_b, \ | 1773 | .schmitt_bit = schmitt_b, \ |
1774 | .lpmd_bit = lpmd_b, \ | 1774 | .lpmd_bit = lpmd_b, \ |
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra20.c b/drivers/pinctrl/tegra/pinctrl-tegra20.c index 09bad6980ad1..ad62451a5a9b 100644 --- a/drivers/pinctrl/tegra/pinctrl-tegra20.c +++ b/drivers/pinctrl/tegra/pinctrl-tegra20.c | |||
@@ -1994,7 +1994,7 @@ static struct tegra_function tegra20_functions[] = { | |||
1994 | .tri_reg = ((tri_r) - TRISTATE_REG_A), \ | 1994 | .tri_reg = ((tri_r) - TRISTATE_REG_A), \ |
1995 | .tri_bank = 0, \ | 1995 | .tri_bank = 0, \ |
1996 | .tri_bit = tri_b, \ | 1996 | .tri_bit = tri_b, \ |
1997 | .parked_reg = -1, \ | 1997 | .parked_bit = -1, \ |
1998 | .einput_bit = -1, \ | 1998 | .einput_bit = -1, \ |
1999 | .odrain_bit = -1, \ | 1999 | .odrain_bit = -1, \ |
2000 | .lock_bit = -1, \ | 2000 | .lock_bit = -1, \ |
@@ -2014,7 +2014,7 @@ static struct tegra_function tegra20_functions[] = { | |||
2014 | .pupd_bank = 2, \ | 2014 | .pupd_bank = 2, \ |
2015 | .pupd_bit = pupd_b, \ | 2015 | .pupd_bit = pupd_b, \ |
2016 | .drv_reg = -1, \ | 2016 | .drv_reg = -1, \ |
2017 | .parked_reg = -1, \ | 2017 | .parked_bit = -1, \ |
2018 | } | 2018 | } |
2019 | 2019 | ||
2020 | /* Pin groups for drive strength registers (configurable version) */ | 2020 | /* Pin groups for drive strength registers (configurable version) */ |
@@ -2030,7 +2030,7 @@ static struct tegra_function tegra20_functions[] = { | |||
2030 | .tri_reg = -1, \ | 2030 | .tri_reg = -1, \ |
2031 | .drv_reg = ((r) - PINGROUP_REG_A), \ | 2031 | .drv_reg = ((r) - PINGROUP_REG_A), \ |
2032 | .drv_bank = 3, \ | 2032 | .drv_bank = 3, \ |
2033 | .parked_reg = -1, \ | 2033 | .parked_bit = -1, \ |
2034 | .hsm_bit = hsm_b, \ | 2034 | .hsm_bit = hsm_b, \ |
2035 | .schmitt_bit = schmitt_b, \ | 2035 | .schmitt_bit = schmitt_b, \ |
2036 | .lpmd_bit = lpmd_b, \ | 2036 | .lpmd_bit = lpmd_b, \ |
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra210.c b/drivers/pinctrl/tegra/pinctrl-tegra210.c index 2d856af389ef..2b70e93da9db 100644 --- a/drivers/pinctrl/tegra/pinctrl-tegra210.c +++ b/drivers/pinctrl/tegra/pinctrl-tegra210.c | |||
@@ -1310,8 +1310,6 @@ static struct tegra_function tegra210_functions[] = { | |||
1310 | .lock_bit = 7, \ | 1310 | .lock_bit = 7, \ |
1311 | .ioreset_bit = -1, \ | 1311 | .ioreset_bit = -1, \ |
1312 | .rcv_sel_bit = PINGROUP_BIT_##e_io_hv(10), \ | 1312 | .rcv_sel_bit = PINGROUP_BIT_##e_io_hv(10), \ |
1313 | .parked_reg = PINGROUP_REG(r), \ | ||
1314 | .parked_bank = 1, \ | ||
1315 | .parked_bit = 5, \ | 1313 | .parked_bit = 5, \ |
1316 | .hsm_bit = PINGROUP_BIT_##hsm(9), \ | 1314 | .hsm_bit = PINGROUP_BIT_##hsm(9), \ |
1317 | .schmitt_bit = 12, \ | 1315 | .schmitt_bit = 12, \ |
@@ -1345,7 +1343,7 @@ static struct tegra_function tegra210_functions[] = { | |||
1345 | .rcv_sel_bit = -1, \ | 1343 | .rcv_sel_bit = -1, \ |
1346 | .drv_reg = DRV_PINGROUP_REG(r), \ | 1344 | .drv_reg = DRV_PINGROUP_REG(r), \ |
1347 | .drv_bank = 0, \ | 1345 | .drv_bank = 0, \ |
1348 | .parked_reg = -1, \ | 1346 | .parked_bit = -1, \ |
1349 | .hsm_bit = -1, \ | 1347 | .hsm_bit = -1, \ |
1350 | .schmitt_bit = -1, \ | 1348 | .schmitt_bit = -1, \ |
1351 | .lpmd_bit = -1, \ | 1349 | .lpmd_bit = -1, \ |
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra30.c b/drivers/pinctrl/tegra/pinctrl-tegra30.c index fb7817fea2d9..474ac6daf513 100644 --- a/drivers/pinctrl/tegra/pinctrl-tegra30.c +++ b/drivers/pinctrl/tegra/pinctrl-tegra30.c | |||
@@ -2139,7 +2139,7 @@ static struct tegra_function tegra30_functions[] = { | |||
2139 | .lock_bit = 7, \ | 2139 | .lock_bit = 7, \ |
2140 | .ioreset_bit = PINGROUP_BIT_##ior(8), \ | 2140 | .ioreset_bit = PINGROUP_BIT_##ior(8), \ |
2141 | .rcv_sel_bit = -1, \ | 2141 | .rcv_sel_bit = -1, \ |
2142 | .parked_reg = -1, \ | 2142 | .parked_bit = -1, \ |
2143 | .drv_reg = -1, \ | 2143 | .drv_reg = -1, \ |
2144 | } | 2144 | } |
2145 | 2145 | ||
@@ -2160,7 +2160,7 @@ static struct tegra_function tegra30_functions[] = { | |||
2160 | .rcv_sel_bit = -1, \ | 2160 | .rcv_sel_bit = -1, \ |
2161 | .drv_reg = DRV_PINGROUP_REG(r), \ | 2161 | .drv_reg = DRV_PINGROUP_REG(r), \ |
2162 | .drv_bank = 0, \ | 2162 | .drv_bank = 0, \ |
2163 | .parked_reg = -1, \ | 2163 | .parked_bit = -1, \ |
2164 | .hsm_bit = hsm_b, \ | 2164 | .hsm_bit = hsm_b, \ |
2165 | .schmitt_bit = schmitt_b, \ | 2165 | .schmitt_bit = schmitt_b, \ |
2166 | .lpmd_bit = lpmd_b, \ | 2166 | .lpmd_bit = lpmd_b, \ |
diff --git a/drivers/pinctrl/uniphier/Kconfig b/drivers/pinctrl/uniphier/Kconfig index 0b40ded5738f..e077a9ec23d9 100644 --- a/drivers/pinctrl/uniphier/Kconfig +++ b/drivers/pinctrl/uniphier/Kconfig | |||
@@ -10,26 +10,34 @@ if PINCTRL_UNIPHIER | |||
10 | 10 | ||
11 | config PINCTRL_UNIPHIER_LD4 | 11 | config PINCTRL_UNIPHIER_LD4 |
12 | tristate "UniPhier PH1-LD4 SoC pinctrl driver" | 12 | tristate "UniPhier PH1-LD4 SoC pinctrl driver" |
13 | default y | 13 | default ARM |
14 | 14 | ||
15 | config PINCTRL_UNIPHIER_PRO4 | 15 | config PINCTRL_UNIPHIER_PRO4 |
16 | tristate "UniPhier PH1-Pro4 SoC pinctrl driver" | 16 | tristate "UniPhier PH1-Pro4 SoC pinctrl driver" |
17 | default y | 17 | default ARM |
18 | 18 | ||
19 | config PINCTRL_UNIPHIER_SLD8 | 19 | config PINCTRL_UNIPHIER_SLD8 |
20 | tristate "UniPhier PH1-sLD8 SoC pinctrl driver" | 20 | tristate "UniPhier PH1-sLD8 SoC pinctrl driver" |
21 | default y | 21 | default ARM |
22 | 22 | ||
23 | config PINCTRL_UNIPHIER_PRO5 | 23 | config PINCTRL_UNIPHIER_PRO5 |
24 | tristate "UniPhier PH1-Pro5 SoC pinctrl driver" | 24 | tristate "UniPhier PH1-Pro5 SoC pinctrl driver" |
25 | default y | 25 | default ARM |
26 | 26 | ||
27 | config PINCTRL_UNIPHIER_PXS2 | 27 | config PINCTRL_UNIPHIER_PXS2 |
28 | tristate "UniPhier ProXstream2 SoC pinctrl driver" | 28 | tristate "UniPhier ProXstream2 SoC pinctrl driver" |
29 | default y | 29 | default ARM |
30 | 30 | ||
31 | config PINCTRL_UNIPHIER_LD6B | 31 | config PINCTRL_UNIPHIER_LD6B |
32 | tristate "UniPhier PH1-LD6b SoC pinctrl driver" | 32 | tristate "UniPhier PH1-LD6b SoC pinctrl driver" |
33 | default y | 33 | default ARM |
34 | |||
35 | config PINCTRL_UNIPHIER_LD11 | ||
36 | tristate "UniPhier PH1-LD11 SoC pinctrl driver" | ||
37 | default ARM64 | ||
38 | |||
39 | config PINCTRL_UNIPHIER_LD20 | ||
40 | tristate "UniPhier PH1-LD20 SoC pinctrl driver" | ||
41 | default ARM64 | ||
34 | 42 | ||
35 | endif | 43 | endif |
diff --git a/drivers/pinctrl/uniphier/Makefile b/drivers/pinctrl/uniphier/Makefile index 3b8f9ee0bb6f..9f4bc8aa6f68 100644 --- a/drivers/pinctrl/uniphier/Makefile +++ b/drivers/pinctrl/uniphier/Makefile | |||
@@ -6,3 +6,5 @@ obj-$(CONFIG_PINCTRL_UNIPHIER_SLD8) += pinctrl-uniphier-sld8.o | |||
6 | obj-$(CONFIG_PINCTRL_UNIPHIER_PRO5) += pinctrl-uniphier-pro5.o | 6 | obj-$(CONFIG_PINCTRL_UNIPHIER_PRO5) += pinctrl-uniphier-pro5.o |
7 | obj-$(CONFIG_PINCTRL_UNIPHIER_PXS2) += pinctrl-uniphier-pxs2.o | 7 | obj-$(CONFIG_PINCTRL_UNIPHIER_PXS2) += pinctrl-uniphier-pxs2.o |
8 | obj-$(CONFIG_PINCTRL_UNIPHIER_LD6B) += pinctrl-uniphier-ld6b.o | 8 | obj-$(CONFIG_PINCTRL_UNIPHIER_LD6B) += pinctrl-uniphier-ld6b.o |
9 | obj-$(CONFIG_PINCTRL_UNIPHIER_LD11) += pinctrl-uniphier-ld11.o | ||
10 | obj-$(CONFIG_PINCTRL_UNIPHIER_LD20) += pinctrl-uniphier-ld20.o | ||
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-core.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-core.c index 967400971d45..9b2ee717bccc 100644 --- a/drivers/pinctrl/uniphier/pinctrl-uniphier-core.c +++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-core.c | |||
@@ -14,6 +14,7 @@ | |||
14 | 14 | ||
15 | #include <linux/export.h> | 15 | #include <linux/export.h> |
16 | #include <linux/mfd/syscon.h> | 16 | #include <linux/mfd/syscon.h> |
17 | #include <linux/of.h> | ||
17 | #include <linux/pinctrl/pinconf.h> | 18 | #include <linux/pinctrl/pinconf.h> |
18 | #include <linux/pinctrl/pinconf-generic.h> | 19 | #include <linux/pinctrl/pinconf-generic.h> |
19 | #include <linux/pinctrl/pinctrl.h> | 20 | #include <linux/pinctrl/pinctrl.h> |
@@ -26,8 +27,10 @@ | |||
26 | #include "pinctrl-uniphier.h" | 27 | #include "pinctrl-uniphier.h" |
27 | 28 | ||
28 | struct uniphier_pinctrl_priv { | 29 | struct uniphier_pinctrl_priv { |
30 | struct pinctrl_desc pctldesc; | ||
29 | struct pinctrl_dev *pctldev; | 31 | struct pinctrl_dev *pctldev; |
30 | struct regmap *regmap; | 32 | struct regmap *regmap; |
33 | unsigned int regbase; | ||
31 | struct uniphier_pinctrl_socdata *socdata; | 34 | struct uniphier_pinctrl_socdata *socdata; |
32 | }; | 35 | }; |
33 | 36 | ||
@@ -63,16 +66,22 @@ static int uniphier_pctl_get_group_pins(struct pinctrl_dev *pctldev, | |||
63 | static void uniphier_pctl_pin_dbg_show(struct pinctrl_dev *pctldev, | 66 | static void uniphier_pctl_pin_dbg_show(struct pinctrl_dev *pctldev, |
64 | struct seq_file *s, unsigned offset) | 67 | struct seq_file *s, unsigned offset) |
65 | { | 68 | { |
66 | const struct pinctrl_pin_desc *pin = &pctldev->desc->pins[offset]; | 69 | const struct pin_desc *desc = pin_desc_get(pctldev, offset); |
67 | const char *pull_dir, *drv_str; | 70 | const char *pull_dir, *drv_type; |
68 | 71 | ||
69 | switch (uniphier_pin_get_pull_dir(pin->drv_data)) { | 72 | switch (uniphier_pin_get_pull_dir(desc->drv_data)) { |
70 | case UNIPHIER_PIN_PULL_UP: | 73 | case UNIPHIER_PIN_PULL_UP: |
71 | pull_dir = "UP"; | 74 | pull_dir = "UP"; |
72 | break; | 75 | break; |
73 | case UNIPHIER_PIN_PULL_DOWN: | 76 | case UNIPHIER_PIN_PULL_DOWN: |
74 | pull_dir = "DOWN"; | 77 | pull_dir = "DOWN"; |
75 | break; | 78 | break; |
79 | case UNIPHIER_PIN_PULL_UP_FIXED: | ||
80 | pull_dir = "UP(FIXED)"; | ||
81 | break; | ||
82 | case UNIPHIER_PIN_PULL_DOWN_FIXED: | ||
83 | pull_dir = "DOWN(FIXED)"; | ||
84 | break; | ||
76 | case UNIPHIER_PIN_PULL_NONE: | 85 | case UNIPHIER_PIN_PULL_NONE: |
77 | pull_dir = "NONE"; | 86 | pull_dir = "NONE"; |
78 | break; | 87 | break; |
@@ -80,30 +89,33 @@ static void uniphier_pctl_pin_dbg_show(struct pinctrl_dev *pctldev, | |||
80 | BUG(); | 89 | BUG(); |
81 | } | 90 | } |
82 | 91 | ||
83 | switch (uniphier_pin_get_drv_str(pin->drv_data)) { | 92 | switch (uniphier_pin_get_drv_type(desc->drv_data)) { |
84 | case UNIPHIER_PIN_DRV_4_8: | 93 | case UNIPHIER_PIN_DRV_1BIT: |
85 | drv_str = "4/8(mA)"; | 94 | drv_type = "4/8(mA)"; |
95 | break; | ||
96 | case UNIPHIER_PIN_DRV_2BIT: | ||
97 | drv_type = "8/12/16/20(mA)"; | ||
86 | break; | 98 | break; |
87 | case UNIPHIER_PIN_DRV_8_12_16_20: | 99 | case UNIPHIER_PIN_DRV_3BIT: |
88 | drv_str = "8/12/16/20(mA)"; | 100 | drv_type = "4/5/7/9/11/12/14/16(mA)"; |
89 | break; | 101 | break; |
90 | case UNIPHIER_PIN_DRV_FIXED_4: | 102 | case UNIPHIER_PIN_DRV_FIXED4: |
91 | drv_str = "4(mA)"; | 103 | drv_type = "4(mA)"; |
92 | break; | 104 | break; |
93 | case UNIPHIER_PIN_DRV_FIXED_5: | 105 | case UNIPHIER_PIN_DRV_FIXED5: |
94 | drv_str = "5(mA)"; | 106 | drv_type = "5(mA)"; |
95 | break; | 107 | break; |
96 | case UNIPHIER_PIN_DRV_FIXED_8: | 108 | case UNIPHIER_PIN_DRV_FIXED8: |
97 | drv_str = "8(mA)"; | 109 | drv_type = "8(mA)"; |
98 | break; | 110 | break; |
99 | case UNIPHIER_PIN_DRV_NONE: | 111 | case UNIPHIER_PIN_DRV_NONE: |
100 | drv_str = "NONE"; | 112 | drv_type = "NONE"; |
101 | break; | 113 | break; |
102 | default: | 114 | default: |
103 | BUG(); | 115 | BUG(); |
104 | } | 116 | } |
105 | 117 | ||
106 | seq_printf(s, " PULL_DIR=%s DRV_STR=%s", pull_dir, drv_str); | 118 | seq_printf(s, " PULL_DIR=%s DRV_TYPE=%s", pull_dir, drv_type); |
107 | } | 119 | } |
108 | #endif | 120 | #endif |
109 | 121 | ||
@@ -119,12 +131,12 @@ static const struct pinctrl_ops uniphier_pctlops = { | |||
119 | }; | 131 | }; |
120 | 132 | ||
121 | static int uniphier_conf_pin_bias_get(struct pinctrl_dev *pctldev, | 133 | static int uniphier_conf_pin_bias_get(struct pinctrl_dev *pctldev, |
122 | const struct pinctrl_pin_desc *pin, | 134 | const struct pin_desc *desc, |
123 | enum pin_config_param param) | 135 | enum pin_config_param param) |
124 | { | 136 | { |
125 | struct uniphier_pinctrl_priv *priv = pinctrl_dev_get_drvdata(pctldev); | 137 | struct uniphier_pinctrl_priv *priv = pinctrl_dev_get_drvdata(pctldev); |
126 | enum uniphier_pin_pull_dir pull_dir = | 138 | enum uniphier_pin_pull_dir pull_dir = |
127 | uniphier_pin_get_pull_dir(pin->drv_data); | 139 | uniphier_pin_get_pull_dir(desc->drv_data); |
128 | unsigned int pupdctrl, reg, shift, val; | 140 | unsigned int pupdctrl, reg, shift, val; |
129 | unsigned int expected = 1; | 141 | unsigned int expected = 1; |
130 | int ret; | 142 | int ret; |
@@ -154,12 +166,12 @@ static int uniphier_conf_pin_bias_get(struct pinctrl_dev *pctldev, | |||
154 | BUG(); | 166 | BUG(); |
155 | } | 167 | } |
156 | 168 | ||
157 | pupdctrl = uniphier_pin_get_pupdctrl(pin->drv_data); | 169 | pupdctrl = uniphier_pin_get_pupdctrl(desc->drv_data); |
158 | 170 | ||
159 | reg = UNIPHIER_PINCTRL_PUPDCTRL_BASE + pupdctrl / 32 * 4; | 171 | reg = UNIPHIER_PINCTRL_PUPDCTRL_BASE + pupdctrl / 32 * 4; |
160 | shift = pupdctrl % 32; | 172 | shift = pupdctrl % 32; |
161 | 173 | ||
162 | ret = regmap_read(priv->regmap, reg, &val); | 174 | ret = regmap_read(priv->regmap, priv->regbase + reg, &val); |
163 | if (ret) | 175 | if (ret) |
164 | return ret; | 176 | return ret; |
165 | 177 | ||
@@ -169,34 +181,42 @@ static int uniphier_conf_pin_bias_get(struct pinctrl_dev *pctldev, | |||
169 | } | 181 | } |
170 | 182 | ||
171 | static int uniphier_conf_pin_drive_get(struct pinctrl_dev *pctldev, | 183 | static int uniphier_conf_pin_drive_get(struct pinctrl_dev *pctldev, |
172 | const struct pinctrl_pin_desc *pin, | 184 | const struct pin_desc *desc, |
173 | u16 *strength) | 185 | u16 *strength) |
174 | { | 186 | { |
175 | struct uniphier_pinctrl_priv *priv = pinctrl_dev_get_drvdata(pctldev); | 187 | struct uniphier_pinctrl_priv *priv = pinctrl_dev_get_drvdata(pctldev); |
176 | enum uniphier_pin_drv_str drv_str = | 188 | enum uniphier_pin_drv_type type = |
177 | uniphier_pin_get_drv_str(pin->drv_data); | 189 | uniphier_pin_get_drv_type(desc->drv_data); |
178 | const unsigned int strength_4_8[] = {4, 8}; | 190 | const unsigned int strength_1bit[] = {4, 8}; |
179 | const unsigned int strength_8_12_16_20[] = {8, 12, 16, 20}; | 191 | const unsigned int strength_2bit[] = {8, 12, 16, 20}; |
192 | const unsigned int strength_3bit[] = {4, 5, 7, 9, 11, 12, 14, 16}; | ||
180 | const unsigned int *supported_strength; | 193 | const unsigned int *supported_strength; |
181 | unsigned int drvctrl, reg, shift, mask, width, val; | 194 | unsigned int drvctrl, reg, shift, mask, width, val; |
182 | int ret; | 195 | int ret; |
183 | 196 | ||
184 | switch (drv_str) { | 197 | switch (type) { |
185 | case UNIPHIER_PIN_DRV_4_8: | 198 | case UNIPHIER_PIN_DRV_1BIT: |
186 | supported_strength = strength_4_8; | 199 | supported_strength = strength_1bit; |
200 | reg = UNIPHIER_PINCTRL_DRVCTRL_BASE; | ||
187 | width = 1; | 201 | width = 1; |
188 | break; | 202 | break; |
189 | case UNIPHIER_PIN_DRV_8_12_16_20: | 203 | case UNIPHIER_PIN_DRV_2BIT: |
190 | supported_strength = strength_8_12_16_20; | 204 | supported_strength = strength_2bit; |
205 | reg = UNIPHIER_PINCTRL_DRV2CTRL_BASE; | ||
191 | width = 2; | 206 | width = 2; |
192 | break; | 207 | break; |
193 | case UNIPHIER_PIN_DRV_FIXED_4: | 208 | case UNIPHIER_PIN_DRV_3BIT: |
209 | supported_strength = strength_3bit; | ||
210 | reg = UNIPHIER_PINCTRL_DRV3CTRL_BASE; | ||
211 | width = 4; | ||
212 | break; | ||
213 | case UNIPHIER_PIN_DRV_FIXED4: | ||
194 | *strength = 4; | 214 | *strength = 4; |
195 | return 0; | 215 | return 0; |
196 | case UNIPHIER_PIN_DRV_FIXED_5: | 216 | case UNIPHIER_PIN_DRV_FIXED5: |
197 | *strength = 5; | 217 | *strength = 5; |
198 | return 0; | 218 | return 0; |
199 | case UNIPHIER_PIN_DRV_FIXED_8: | 219 | case UNIPHIER_PIN_DRV_FIXED8: |
200 | *strength = 8; | 220 | *strength = 8; |
201 | return 0; | 221 | return 0; |
202 | default: | 222 | default: |
@@ -204,17 +224,14 @@ static int uniphier_conf_pin_drive_get(struct pinctrl_dev *pctldev, | |||
204 | return -EINVAL; | 224 | return -EINVAL; |
205 | } | 225 | } |
206 | 226 | ||
207 | drvctrl = uniphier_pin_get_drvctrl(pin->drv_data); | 227 | drvctrl = uniphier_pin_get_drvctrl(desc->drv_data); |
208 | drvctrl *= width; | 228 | drvctrl *= width; |
209 | 229 | ||
210 | reg = (width == 2) ? UNIPHIER_PINCTRL_DRV2CTRL_BASE : | ||
211 | UNIPHIER_PINCTRL_DRVCTRL_BASE; | ||
212 | |||
213 | reg += drvctrl / 32 * 4; | 230 | reg += drvctrl / 32 * 4; |
214 | shift = drvctrl % 32; | 231 | shift = drvctrl % 32; |
215 | mask = (1U << width) - 1; | 232 | mask = (1U << width) - 1; |
216 | 233 | ||
217 | ret = regmap_read(priv->regmap, reg, &val); | 234 | ret = regmap_read(priv->regmap, priv->regbase + reg, &val); |
218 | if (ret) | 235 | if (ret) |
219 | return ret; | 236 | return ret; |
220 | 237 | ||
@@ -224,10 +241,10 @@ static int uniphier_conf_pin_drive_get(struct pinctrl_dev *pctldev, | |||
224 | } | 241 | } |
225 | 242 | ||
226 | static int uniphier_conf_pin_input_enable_get(struct pinctrl_dev *pctldev, | 243 | static int uniphier_conf_pin_input_enable_get(struct pinctrl_dev *pctldev, |
227 | const struct pinctrl_pin_desc *pin) | 244 | const struct pin_desc *desc) |
228 | { | 245 | { |
229 | struct uniphier_pinctrl_priv *priv = pinctrl_dev_get_drvdata(pctldev); | 246 | struct uniphier_pinctrl_priv *priv = pinctrl_dev_get_drvdata(pctldev); |
230 | unsigned int iectrl = uniphier_pin_get_iectrl(pin->drv_data); | 247 | unsigned int iectrl = uniphier_pin_get_iectrl(desc->drv_data); |
231 | unsigned int val; | 248 | unsigned int val; |
232 | int ret; | 249 | int ret; |
233 | 250 | ||
@@ -235,7 +252,8 @@ static int uniphier_conf_pin_input_enable_get(struct pinctrl_dev *pctldev, | |||
235 | /* This pin is always input-enabled. */ | 252 | /* This pin is always input-enabled. */ |
236 | return 0; | 253 | return 0; |
237 | 254 | ||
238 | ret = regmap_read(priv->regmap, UNIPHIER_PINCTRL_IECTRL, &val); | 255 | ret = regmap_read(priv->regmap, |
256 | priv->regbase + UNIPHIER_PINCTRL_IECTRL, &val); | ||
239 | if (ret) | 257 | if (ret) |
240 | return ret; | 258 | return ret; |
241 | 259 | ||
@@ -246,7 +264,7 @@ static int uniphier_conf_pin_config_get(struct pinctrl_dev *pctldev, | |||
246 | unsigned pin, | 264 | unsigned pin, |
247 | unsigned long *configs) | 265 | unsigned long *configs) |
248 | { | 266 | { |
249 | const struct pinctrl_pin_desc *pin_desc = &pctldev->desc->pins[pin]; | 267 | const struct pin_desc *desc = pin_desc_get(pctldev, pin); |
250 | enum pin_config_param param = pinconf_to_config_param(*configs); | 268 | enum pin_config_param param = pinconf_to_config_param(*configs); |
251 | bool has_arg = false; | 269 | bool has_arg = false; |
252 | u16 arg; | 270 | u16 arg; |
@@ -256,14 +274,14 @@ static int uniphier_conf_pin_config_get(struct pinctrl_dev *pctldev, | |||
256 | case PIN_CONFIG_BIAS_DISABLE: | 274 | case PIN_CONFIG_BIAS_DISABLE: |
257 | case PIN_CONFIG_BIAS_PULL_UP: | 275 | case PIN_CONFIG_BIAS_PULL_UP: |
258 | case PIN_CONFIG_BIAS_PULL_DOWN: | 276 | case PIN_CONFIG_BIAS_PULL_DOWN: |
259 | ret = uniphier_conf_pin_bias_get(pctldev, pin_desc, param); | 277 | ret = uniphier_conf_pin_bias_get(pctldev, desc, param); |
260 | break; | 278 | break; |
261 | case PIN_CONFIG_DRIVE_STRENGTH: | 279 | case PIN_CONFIG_DRIVE_STRENGTH: |
262 | ret = uniphier_conf_pin_drive_get(pctldev, pin_desc, &arg); | 280 | ret = uniphier_conf_pin_drive_get(pctldev, desc, &arg); |
263 | has_arg = true; | 281 | has_arg = true; |
264 | break; | 282 | break; |
265 | case PIN_CONFIG_INPUT_ENABLE: | 283 | case PIN_CONFIG_INPUT_ENABLE: |
266 | ret = uniphier_conf_pin_input_enable_get(pctldev, pin_desc); | 284 | ret = uniphier_conf_pin_input_enable_get(pctldev, desc); |
267 | break; | 285 | break; |
268 | default: | 286 | default: |
269 | /* unsupported parameter */ | 287 | /* unsupported parameter */ |
@@ -278,13 +296,12 @@ static int uniphier_conf_pin_config_get(struct pinctrl_dev *pctldev, | |||
278 | } | 296 | } |
279 | 297 | ||
280 | static int uniphier_conf_pin_bias_set(struct pinctrl_dev *pctldev, | 298 | static int uniphier_conf_pin_bias_set(struct pinctrl_dev *pctldev, |
281 | const struct pinctrl_pin_desc *pin, | 299 | const struct pin_desc *desc, |
282 | enum pin_config_param param, | 300 | enum pin_config_param param, u16 arg) |
283 | u16 arg) | ||
284 | { | 301 | { |
285 | struct uniphier_pinctrl_priv *priv = pinctrl_dev_get_drvdata(pctldev); | 302 | struct uniphier_pinctrl_priv *priv = pinctrl_dev_get_drvdata(pctldev); |
286 | enum uniphier_pin_pull_dir pull_dir = | 303 | enum uniphier_pin_pull_dir pull_dir = |
287 | uniphier_pin_get_pull_dir(pin->drv_data); | 304 | uniphier_pin_get_pull_dir(desc->drv_data); |
288 | unsigned int pupdctrl, reg, shift; | 305 | unsigned int pupdctrl, reg, shift; |
289 | unsigned int val = 1; | 306 | unsigned int val = 1; |
290 | 307 | ||
@@ -295,8 +312,8 @@ static int uniphier_conf_pin_bias_set(struct pinctrl_dev *pctldev, | |||
295 | if (pull_dir == UNIPHIER_PIN_PULL_UP_FIXED || | 312 | if (pull_dir == UNIPHIER_PIN_PULL_UP_FIXED || |
296 | pull_dir == UNIPHIER_PIN_PULL_DOWN_FIXED) { | 313 | pull_dir == UNIPHIER_PIN_PULL_DOWN_FIXED) { |
297 | dev_err(pctldev->dev, | 314 | dev_err(pctldev->dev, |
298 | "can not disable pull register for pin %u (%s)\n", | 315 | "can not disable pull register for pin %s\n", |
299 | pin->number, pin->name); | 316 | desc->name); |
300 | return -EINVAL; | 317 | return -EINVAL; |
301 | } | 318 | } |
302 | val = 0; | 319 | val = 0; |
@@ -306,8 +323,8 @@ static int uniphier_conf_pin_bias_set(struct pinctrl_dev *pctldev, | |||
306 | return 0; | 323 | return 0; |
307 | if (pull_dir != UNIPHIER_PIN_PULL_UP) { | 324 | if (pull_dir != UNIPHIER_PIN_PULL_UP) { |
308 | dev_err(pctldev->dev, | 325 | dev_err(pctldev->dev, |
309 | "pull-up is unsupported for pin %u (%s)\n", | 326 | "pull-up is unsupported for pin %s\n", |
310 | pin->number, pin->name); | 327 | desc->name); |
311 | return -EINVAL; | 328 | return -EINVAL; |
312 | } | 329 | } |
313 | if (arg == 0) { | 330 | if (arg == 0) { |
@@ -320,8 +337,8 @@ static int uniphier_conf_pin_bias_set(struct pinctrl_dev *pctldev, | |||
320 | return 0; | 337 | return 0; |
321 | if (pull_dir != UNIPHIER_PIN_PULL_DOWN) { | 338 | if (pull_dir != UNIPHIER_PIN_PULL_DOWN) { |
322 | dev_err(pctldev->dev, | 339 | dev_err(pctldev->dev, |
323 | "pull-down is unsupported for pin %u (%s)\n", | 340 | "pull-down is unsupported for pin %s\n", |
324 | pin->number, pin->name); | 341 | desc->name); |
325 | return -EINVAL; | 342 | return -EINVAL; |
326 | } | 343 | } |
327 | if (arg == 0) { | 344 | if (arg == 0) { |
@@ -332,8 +349,8 @@ static int uniphier_conf_pin_bias_set(struct pinctrl_dev *pctldev, | |||
332 | case PIN_CONFIG_BIAS_PULL_PIN_DEFAULT: | 349 | case PIN_CONFIG_BIAS_PULL_PIN_DEFAULT: |
333 | if (pull_dir == UNIPHIER_PIN_PULL_NONE) { | 350 | if (pull_dir == UNIPHIER_PIN_PULL_NONE) { |
334 | dev_err(pctldev->dev, | 351 | dev_err(pctldev->dev, |
335 | "pull-up/down is unsupported for pin %u (%s)\n", | 352 | "pull-up/down is unsupported for pin %s\n", |
336 | pin->number, pin->name); | 353 | desc->name); |
337 | return -EINVAL; | 354 | return -EINVAL; |
338 | } | 355 | } |
339 | 356 | ||
@@ -344,39 +361,48 @@ static int uniphier_conf_pin_bias_set(struct pinctrl_dev *pctldev, | |||
344 | BUG(); | 361 | BUG(); |
345 | } | 362 | } |
346 | 363 | ||
347 | pupdctrl = uniphier_pin_get_pupdctrl(pin->drv_data); | 364 | pupdctrl = uniphier_pin_get_pupdctrl(desc->drv_data); |
348 | 365 | ||
349 | reg = UNIPHIER_PINCTRL_PUPDCTRL_BASE + pupdctrl / 32 * 4; | 366 | reg = UNIPHIER_PINCTRL_PUPDCTRL_BASE + pupdctrl / 32 * 4; |
350 | shift = pupdctrl % 32; | 367 | shift = pupdctrl % 32; |
351 | 368 | ||
352 | return regmap_update_bits(priv->regmap, reg, 1 << shift, val << shift); | 369 | return regmap_update_bits(priv->regmap, priv->regbase + reg, |
370 | 1 << shift, val << shift); | ||
353 | } | 371 | } |
354 | 372 | ||
355 | static int uniphier_conf_pin_drive_set(struct pinctrl_dev *pctldev, | 373 | static int uniphier_conf_pin_drive_set(struct pinctrl_dev *pctldev, |
356 | const struct pinctrl_pin_desc *pin, | 374 | const struct pin_desc *desc, |
357 | u16 strength) | 375 | u16 strength) |
358 | { | 376 | { |
359 | struct uniphier_pinctrl_priv *priv = pinctrl_dev_get_drvdata(pctldev); | 377 | struct uniphier_pinctrl_priv *priv = pinctrl_dev_get_drvdata(pctldev); |
360 | enum uniphier_pin_drv_str drv_str = | 378 | enum uniphier_pin_drv_type type = |
361 | uniphier_pin_get_drv_str(pin->drv_data); | 379 | uniphier_pin_get_drv_type(desc->drv_data); |
362 | const unsigned int strength_4_8[] = {4, 8, -1}; | 380 | const unsigned int strength_1bit[] = {4, 8, -1}; |
363 | const unsigned int strength_8_12_16_20[] = {8, 12, 16, 20, -1}; | 381 | const unsigned int strength_2bit[] = {8, 12, 16, 20, -1}; |
382 | const unsigned int strength_3bit[] = {4, 5, 7, 9, 11, 12, 14, 16, -1}; | ||
364 | const unsigned int *supported_strength; | 383 | const unsigned int *supported_strength; |
365 | unsigned int drvctrl, reg, shift, mask, width, val; | 384 | unsigned int drvctrl, reg, shift, mask, width, val; |
366 | 385 | ||
367 | switch (drv_str) { | 386 | switch (type) { |
368 | case UNIPHIER_PIN_DRV_4_8: | 387 | case UNIPHIER_PIN_DRV_1BIT: |
369 | supported_strength = strength_4_8; | 388 | supported_strength = strength_1bit; |
389 | reg = UNIPHIER_PINCTRL_DRVCTRL_BASE; | ||
370 | width = 1; | 390 | width = 1; |
371 | break; | 391 | break; |
372 | case UNIPHIER_PIN_DRV_8_12_16_20: | 392 | case UNIPHIER_PIN_DRV_2BIT: |
373 | supported_strength = strength_8_12_16_20; | 393 | supported_strength = strength_2bit; |
394 | reg = UNIPHIER_PINCTRL_DRV2CTRL_BASE; | ||
374 | width = 2; | 395 | width = 2; |
375 | break; | 396 | break; |
397 | case UNIPHIER_PIN_DRV_3BIT: | ||
398 | supported_strength = strength_3bit; | ||
399 | reg = UNIPHIER_PINCTRL_DRV3CTRL_BASE; | ||
400 | width = 4; | ||
401 | break; | ||
376 | default: | 402 | default: |
377 | dev_err(pctldev->dev, | 403 | dev_err(pctldev->dev, |
378 | "cannot change drive strength for pin %u (%s)\n", | 404 | "cannot change drive strength for pin %s\n", |
379 | pin->number, pin->name); | 405 | desc->name); |
380 | return -EINVAL; | 406 | return -EINVAL; |
381 | } | 407 | } |
382 | 408 | ||
@@ -387,49 +413,48 @@ static int uniphier_conf_pin_drive_set(struct pinctrl_dev *pctldev, | |||
387 | 413 | ||
388 | if (val == 0) { | 414 | if (val == 0) { |
389 | dev_err(pctldev->dev, | 415 | dev_err(pctldev->dev, |
390 | "unsupported drive strength %u mA for pin %u (%s)\n", | 416 | "unsupported drive strength %u mA for pin %s\n", |
391 | strength, pin->number, pin->name); | 417 | strength, desc->name); |
392 | return -EINVAL; | 418 | return -EINVAL; |
393 | } | 419 | } |
394 | 420 | ||
395 | val--; | 421 | val--; |
396 | 422 | ||
397 | drvctrl = uniphier_pin_get_drvctrl(pin->drv_data); | 423 | drvctrl = uniphier_pin_get_drvctrl(desc->drv_data); |
398 | drvctrl *= width; | 424 | drvctrl *= width; |
399 | 425 | ||
400 | reg = (width == 2) ? UNIPHIER_PINCTRL_DRV2CTRL_BASE : | ||
401 | UNIPHIER_PINCTRL_DRVCTRL_BASE; | ||
402 | |||
403 | reg += drvctrl / 32 * 4; | 426 | reg += drvctrl / 32 * 4; |
404 | shift = drvctrl % 32; | 427 | shift = drvctrl % 32; |
405 | mask = (1U << width) - 1; | 428 | mask = (1U << width) - 1; |
406 | 429 | ||
407 | return regmap_update_bits(priv->regmap, reg, | 430 | return regmap_update_bits(priv->regmap, priv->regbase + reg, |
408 | mask << shift, val << shift); | 431 | mask << shift, val << shift); |
409 | } | 432 | } |
410 | 433 | ||
411 | static int uniphier_conf_pin_input_enable(struct pinctrl_dev *pctldev, | 434 | static int uniphier_conf_pin_input_enable(struct pinctrl_dev *pctldev, |
412 | const struct pinctrl_pin_desc *pin, | 435 | const struct pin_desc *desc, |
413 | u16 enable) | 436 | u16 enable) |
414 | { | 437 | { |
415 | struct uniphier_pinctrl_priv *priv = pinctrl_dev_get_drvdata(pctldev); | 438 | struct uniphier_pinctrl_priv *priv = pinctrl_dev_get_drvdata(pctldev); |
416 | unsigned int iectrl = uniphier_pin_get_iectrl(pin->drv_data); | 439 | unsigned int iectrl = uniphier_pin_get_iectrl(desc->drv_data); |
440 | unsigned int reg, mask; | ||
417 | 441 | ||
418 | if (enable == 0) { | 442 | /* |
419 | /* | 443 | * Multiple pins share one input enable, per-pin disabling is |
420 | * Multiple pins share one input enable, so per-pin disabling | 444 | * impossible. |
421 | * is impossible. | 445 | */ |
422 | */ | 446 | if (!(priv->socdata->caps & UNIPHIER_PINCTRL_CAPS_PERPIN_IECTRL) && |
423 | dev_err(pctldev->dev, "unable to disable input\n"); | 447 | !enable) |
424 | return -EINVAL; | 448 | return -EINVAL; |
425 | } | ||
426 | 449 | ||
450 | /* UNIPHIER_PIN_IECTRL_NONE means the pin is always input-enabled */ | ||
427 | if (iectrl == UNIPHIER_PIN_IECTRL_NONE) | 451 | if (iectrl == UNIPHIER_PIN_IECTRL_NONE) |
428 | /* This pin is always input-enabled. nothing to do. */ | 452 | return enable ? 0 : -EINVAL; |
429 | return 0; | 453 | |
454 | reg = priv->regbase + UNIPHIER_PINCTRL_IECTRL + iectrl / 32 * 4; | ||
455 | mask = BIT(iectrl % 32); | ||
430 | 456 | ||
431 | return regmap_update_bits(priv->regmap, UNIPHIER_PINCTRL_IECTRL, | 457 | return regmap_update_bits(priv->regmap, reg, mask, enable ? mask : 0); |
432 | BIT(iectrl), BIT(iectrl)); | ||
433 | } | 458 | } |
434 | 459 | ||
435 | static int uniphier_conf_pin_config_set(struct pinctrl_dev *pctldev, | 460 | static int uniphier_conf_pin_config_set(struct pinctrl_dev *pctldev, |
@@ -437,7 +462,7 @@ static int uniphier_conf_pin_config_set(struct pinctrl_dev *pctldev, | |||
437 | unsigned long *configs, | 462 | unsigned long *configs, |
438 | unsigned num_configs) | 463 | unsigned num_configs) |
439 | { | 464 | { |
440 | const struct pinctrl_pin_desc *pin_desc = &pctldev->desc->pins[pin]; | 465 | const struct pin_desc *desc = pin_desc_get(pctldev, pin); |
441 | int i, ret; | 466 | int i, ret; |
442 | 467 | ||
443 | for (i = 0; i < num_configs; i++) { | 468 | for (i = 0; i < num_configs; i++) { |
@@ -450,16 +475,15 @@ static int uniphier_conf_pin_config_set(struct pinctrl_dev *pctldev, | |||
450 | case PIN_CONFIG_BIAS_PULL_UP: | 475 | case PIN_CONFIG_BIAS_PULL_UP: |
451 | case PIN_CONFIG_BIAS_PULL_DOWN: | 476 | case PIN_CONFIG_BIAS_PULL_DOWN: |
452 | case PIN_CONFIG_BIAS_PULL_PIN_DEFAULT: | 477 | case PIN_CONFIG_BIAS_PULL_PIN_DEFAULT: |
453 | ret = uniphier_conf_pin_bias_set(pctldev, pin_desc, | 478 | ret = uniphier_conf_pin_bias_set(pctldev, desc, |
454 | param, arg); | 479 | param, arg); |
455 | break; | 480 | break; |
456 | case PIN_CONFIG_DRIVE_STRENGTH: | 481 | case PIN_CONFIG_DRIVE_STRENGTH: |
457 | ret = uniphier_conf_pin_drive_set(pctldev, pin_desc, | 482 | ret = uniphier_conf_pin_drive_set(pctldev, desc, arg); |
458 | arg); | ||
459 | break; | 483 | break; |
460 | case PIN_CONFIG_INPUT_ENABLE: | 484 | case PIN_CONFIG_INPUT_ENABLE: |
461 | ret = uniphier_conf_pin_input_enable(pctldev, | 485 | ret = uniphier_conf_pin_input_enable(pctldev, desc, |
462 | pin_desc, arg); | 486 | arg); |
463 | break; | 487 | break; |
464 | default: | 488 | default: |
465 | dev_err(pctldev->dev, | 489 | dev_err(pctldev->dev, |
@@ -531,20 +555,42 @@ static int uniphier_pmx_get_function_groups(struct pinctrl_dev *pctldev, | |||
531 | } | 555 | } |
532 | 556 | ||
533 | static int uniphier_pmx_set_one_mux(struct pinctrl_dev *pctldev, unsigned pin, | 557 | static int uniphier_pmx_set_one_mux(struct pinctrl_dev *pctldev, unsigned pin, |
534 | unsigned muxval) | 558 | int muxval) |
535 | { | 559 | { |
536 | struct uniphier_pinctrl_priv *priv = pinctrl_dev_get_drvdata(pctldev); | 560 | struct uniphier_pinctrl_priv *priv = pinctrl_dev_get_drvdata(pctldev); |
537 | unsigned mux_bits = priv->socdata->mux_bits; | 561 | unsigned int mux_bits, reg_stride, reg, reg_end, shift, mask; |
538 | unsigned reg_stride = priv->socdata->reg_stride; | 562 | bool load_pinctrl; |
539 | unsigned reg, reg_end, shift, mask; | ||
540 | int ret; | 563 | int ret; |
541 | 564 | ||
542 | /* some pins need input-enabling */ | 565 | /* some pins need input-enabling */ |
543 | ret = uniphier_conf_pin_input_enable(pctldev, | 566 | ret = uniphier_conf_pin_input_enable(pctldev, |
544 | &pctldev->desc->pins[pin], 1); | 567 | pin_desc_get(pctldev, pin), 1); |
545 | if (ret) | 568 | if (ret) |
546 | return ret; | 569 | return ret; |
547 | 570 | ||
571 | if (muxval < 0) | ||
572 | return 0; /* dedicated pin; nothing to do for pin-mux */ | ||
573 | |||
574 | if (priv->socdata->caps & UNIPHIER_PINCTRL_CAPS_DBGMUX_SEPARATE) { | ||
575 | /* | ||
576 | * Mode reg_offset bit_position | ||
577 | * Normal 4 * n shift+3:shift | ||
578 | * Debug 4 * n shift+7:shift+4 | ||
579 | */ | ||
580 | mux_bits = 4; | ||
581 | reg_stride = 8; | ||
582 | load_pinctrl = true; | ||
583 | } else { | ||
584 | /* | ||
585 | * Mode reg_offset bit_position | ||
586 | * Normal 8 * n shift+3:shift | ||
587 | * Debug 8 * n + 4 shift+3:shift | ||
588 | */ | ||
589 | mux_bits = 8; | ||
590 | reg_stride = 4; | ||
591 | load_pinctrl = false; | ||
592 | } | ||
593 | |||
548 | reg = UNIPHIER_PINCTRL_PINMUX_BASE + pin * mux_bits / 32 * reg_stride; | 594 | reg = UNIPHIER_PINCTRL_PINMUX_BASE + pin * mux_bits / 32 * reg_stride; |
549 | reg_end = reg + reg_stride; | 595 | reg_end = reg + reg_stride; |
550 | shift = pin * mux_bits % 32; | 596 | shift = pin * mux_bits % 32; |
@@ -555,16 +601,17 @@ static int uniphier_pmx_set_one_mux(struct pinctrl_dev *pctldev, unsigned pin, | |||
555 | * stored in the offset+4. | 601 | * stored in the offset+4. |
556 | */ | 602 | */ |
557 | for (; reg < reg_end; reg += 4) { | 603 | for (; reg < reg_end; reg += 4) { |
558 | ret = regmap_update_bits(priv->regmap, reg, | 604 | ret = regmap_update_bits(priv->regmap, priv->regbase + reg, |
559 | mask << shift, muxval << shift); | 605 | mask << shift, muxval << shift); |
560 | if (ret) | 606 | if (ret) |
561 | return ret; | 607 | return ret; |
562 | muxval >>= mux_bits; | 608 | muxval >>= mux_bits; |
563 | } | 609 | } |
564 | 610 | ||
565 | if (priv->socdata->load_pinctrl) { | 611 | if (load_pinctrl) { |
566 | ret = regmap_write(priv->regmap, | 612 | ret = regmap_write(priv->regmap, |
567 | UNIPHIER_PINCTRL_LOAD_PINMUX, 1); | 613 | priv->regbase + UNIPHIER_PINCTRL_LOAD_PINMUX, |
614 | 1); | ||
568 | if (ret) | 615 | if (ret) |
569 | return ret; | 616 | return ret; |
570 | } | 617 | } |
@@ -633,19 +680,16 @@ static const struct pinmux_ops uniphier_pmxops = { | |||
633 | }; | 680 | }; |
634 | 681 | ||
635 | int uniphier_pinctrl_probe(struct platform_device *pdev, | 682 | int uniphier_pinctrl_probe(struct platform_device *pdev, |
636 | struct pinctrl_desc *desc, | ||
637 | struct uniphier_pinctrl_socdata *socdata) | 683 | struct uniphier_pinctrl_socdata *socdata) |
638 | { | 684 | { |
639 | struct device *dev = &pdev->dev; | 685 | struct device *dev = &pdev->dev; |
640 | struct uniphier_pinctrl_priv *priv; | 686 | struct uniphier_pinctrl_priv *priv; |
687 | struct device_node *parent; | ||
641 | 688 | ||
642 | if (!socdata || | 689 | if (!socdata || |
643 | !socdata->groups || | 690 | !socdata->pins || !socdata->npins || |
644 | !socdata->groups_count || | 691 | !socdata->groups || !socdata->groups_count || |
645 | !socdata->functions || | 692 | !socdata->functions || !socdata->functions_count) { |
646 | !socdata->functions_count || | ||
647 | !socdata->mux_bits || | ||
648 | !socdata->reg_stride) { | ||
649 | dev_err(dev, "pinctrl socdata lacks necessary members\n"); | 693 | dev_err(dev, "pinctrl socdata lacks necessary members\n"); |
650 | return -EINVAL; | 694 | return -EINVAL; |
651 | } | 695 | } |
@@ -654,18 +698,36 @@ int uniphier_pinctrl_probe(struct platform_device *pdev, | |||
654 | if (!priv) | 698 | if (!priv) |
655 | return -ENOMEM; | 699 | return -ENOMEM; |
656 | 700 | ||
657 | priv->regmap = syscon_node_to_regmap(dev->of_node); | 701 | if (of_device_is_compatible(dev->of_node, "socionext,ph1-ld4-pinctrl") || |
702 | of_device_is_compatible(dev->of_node, "socionext,ph1-pro4-pinctrl") || | ||
703 | of_device_is_compatible(dev->of_node, "socionext,ph1-sld8-pinctrl") || | ||
704 | of_device_is_compatible(dev->of_node, "socionext,ph1-pro5-pinctrl") || | ||
705 | of_device_is_compatible(dev->of_node, "socionext,proxstream2-pinctrl") || | ||
706 | of_device_is_compatible(dev->of_node, "socionext,ph1-ld6b-pinctrl")) { | ||
707 | /* old binding */ | ||
708 | priv->regmap = syscon_node_to_regmap(dev->of_node); | ||
709 | } else { | ||
710 | priv->regbase = 0x1000; | ||
711 | parent = of_get_parent(dev->of_node); | ||
712 | priv->regmap = syscon_node_to_regmap(parent); | ||
713 | of_node_put(parent); | ||
714 | } | ||
715 | |||
658 | if (IS_ERR(priv->regmap)) { | 716 | if (IS_ERR(priv->regmap)) { |
659 | dev_err(dev, "failed to get regmap\n"); | 717 | dev_err(dev, "failed to get regmap\n"); |
660 | return PTR_ERR(priv->regmap); | 718 | return PTR_ERR(priv->regmap); |
661 | } | 719 | } |
662 | 720 | ||
663 | priv->socdata = socdata; | 721 | priv->socdata = socdata; |
664 | desc->pctlops = &uniphier_pctlops; | 722 | priv->pctldesc.name = dev->driver->name; |
665 | desc->pmxops = &uniphier_pmxops; | 723 | priv->pctldesc.pins = socdata->pins; |
666 | desc->confops = &uniphier_confops; | 724 | priv->pctldesc.npins = socdata->npins; |
667 | 725 | priv->pctldesc.pctlops = &uniphier_pctlops; | |
668 | priv->pctldev = devm_pinctrl_register(dev, desc, priv); | 726 | priv->pctldesc.pmxops = &uniphier_pmxops; |
727 | priv->pctldesc.confops = &uniphier_confops; | ||
728 | priv->pctldesc.owner = dev->driver->owner; | ||
729 | |||
730 | priv->pctldev = devm_pinctrl_register(dev, &priv->pctldesc, priv); | ||
669 | if (IS_ERR(priv->pctldev)) { | 731 | if (IS_ERR(priv->pctldev)) { |
670 | dev_err(dev, "failed to register UniPhier pinctrl driver\n"); | 732 | dev_err(dev, "failed to register UniPhier pinctrl driver\n"); |
671 | return PTR_ERR(priv->pctldev); | 733 | return PTR_ERR(priv->pctldev); |
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c new file mode 100644 index 000000000000..77a0236ee781 --- /dev/null +++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c | |||
@@ -0,0 +1,952 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2016 Socionext Inc. | ||
3 | * Author: Masahiro Yamada <yamada.masahiro@socionext.com> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU General Public License as published by | ||
7 | * the Free Software Foundation; either version 2 of the License, or | ||
8 | * (at your option) any later version. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | */ | ||
15 | |||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/module.h> | ||
18 | #include <linux/pinctrl/pinctrl.h> | ||
19 | #include <linux/platform_device.h> | ||
20 | |||
21 | #include "pinctrl-uniphier.h" | ||
22 | |||
23 | static const struct pinctrl_pin_desc uniphier_ld11_pins[] = { | ||
24 | UNIPHIER_PINCTRL_PIN(0, "XECS1", 0, | ||
25 | 0, UNIPHIER_PIN_DRV_1BIT, | ||
26 | 0, UNIPHIER_PIN_PULL_UP), | ||
27 | UNIPHIER_PINCTRL_PIN(1, "ERXW", UNIPHIER_PIN_IECTRL_NONE, | ||
28 | 1, UNIPHIER_PIN_DRV_1BIT, | ||
29 | 1, UNIPHIER_PIN_PULL_UP), | ||
30 | UNIPHIER_PINCTRL_PIN(2, "XERWE1", UNIPHIER_PIN_IECTRL_NONE, | ||
31 | 2, UNIPHIER_PIN_DRV_1BIT, | ||
32 | 2, UNIPHIER_PIN_PULL_UP), | ||
33 | UNIPHIER_PINCTRL_PIN(3, "XNFWP", 3, | ||
34 | 3, UNIPHIER_PIN_DRV_1BIT, | ||
35 | 3, UNIPHIER_PIN_PULL_DOWN), | ||
36 | UNIPHIER_PINCTRL_PIN(4, "XNFCE0", 4, | ||
37 | 4, UNIPHIER_PIN_DRV_1BIT, | ||
38 | 4, UNIPHIER_PIN_PULL_UP), | ||
39 | UNIPHIER_PINCTRL_PIN(5, "NFRYBY0", 5, | ||
40 | 5, UNIPHIER_PIN_DRV_1BIT, | ||
41 | 5, UNIPHIER_PIN_PULL_UP), | ||
42 | UNIPHIER_PINCTRL_PIN(6, "XNFRE", UNIPHIER_PIN_IECTRL_NONE, | ||
43 | 6, UNIPHIER_PIN_DRV_1BIT, | ||
44 | 6, UNIPHIER_PIN_PULL_UP), | ||
45 | UNIPHIER_PINCTRL_PIN(7, "XNFWE", UNIPHIER_PIN_IECTRL_NONE, | ||
46 | 7, UNIPHIER_PIN_DRV_1BIT, | ||
47 | 7, UNIPHIER_PIN_PULL_UP), | ||
48 | UNIPHIER_PINCTRL_PIN(8, "NFALE", UNIPHIER_PIN_IECTRL_NONE, | ||
49 | 8, UNIPHIER_PIN_DRV_1BIT, | ||
50 | 8, UNIPHIER_PIN_PULL_UP), | ||
51 | UNIPHIER_PINCTRL_PIN(9, "NFCLE", UNIPHIER_PIN_IECTRL_NONE, | ||
52 | 9, UNIPHIER_PIN_DRV_1BIT, | ||
53 | 9, UNIPHIER_PIN_PULL_UP), | ||
54 | UNIPHIER_PINCTRL_PIN(10, "NFD0", 10, | ||
55 | 10, UNIPHIER_PIN_DRV_1BIT, | ||
56 | 10, UNIPHIER_PIN_PULL_UP), | ||
57 | UNIPHIER_PINCTRL_PIN(11, "NFD1", 11, | ||
58 | 11, UNIPHIER_PIN_DRV_1BIT, | ||
59 | 11, UNIPHIER_PIN_PULL_UP), | ||
60 | UNIPHIER_PINCTRL_PIN(12, "NFD2", 12, | ||
61 | 12, UNIPHIER_PIN_DRV_1BIT, | ||
62 | 12, UNIPHIER_PIN_PULL_UP), | ||
63 | UNIPHIER_PINCTRL_PIN(13, "NFD3", 13, | ||
64 | 13, UNIPHIER_PIN_DRV_1BIT, | ||
65 | 13, UNIPHIER_PIN_PULL_UP), | ||
66 | UNIPHIER_PINCTRL_PIN(14, "NFD4", 14, | ||
67 | 14, UNIPHIER_PIN_DRV_1BIT, | ||
68 | 14, UNIPHIER_PIN_PULL_UP), | ||
69 | UNIPHIER_PINCTRL_PIN(15, "NFD5", 15, | ||
70 | 15, UNIPHIER_PIN_DRV_1BIT, | ||
71 | 15, UNIPHIER_PIN_PULL_UP), | ||
72 | UNIPHIER_PINCTRL_PIN(16, "NFD6", 16, | ||
73 | 16, UNIPHIER_PIN_DRV_1BIT, | ||
74 | 16, UNIPHIER_PIN_PULL_UP), | ||
75 | UNIPHIER_PINCTRL_PIN(17, "NFD7", 17, | ||
76 | 17, UNIPHIER_PIN_DRV_1BIT, | ||
77 | 17, UNIPHIER_PIN_PULL_UP), | ||
78 | UNIPHIER_PINCTRL_PIN(18, "XERST", 18, | ||
79 | 0, UNIPHIER_PIN_DRV_2BIT, | ||
80 | 18, UNIPHIER_PIN_PULL_UP), | ||
81 | UNIPHIER_PINCTRL_PIN(19, "MMCCLK", 19, | ||
82 | 1, UNIPHIER_PIN_DRV_2BIT, | ||
83 | 19, UNIPHIER_PIN_PULL_UP), | ||
84 | UNIPHIER_PINCTRL_PIN(20, "MMCCMD", 20, | ||
85 | 2, UNIPHIER_PIN_DRV_2BIT, | ||
86 | 20, UNIPHIER_PIN_PULL_UP), | ||
87 | UNIPHIER_PINCTRL_PIN(21, "MMCDS", 21, | ||
88 | 3, UNIPHIER_PIN_DRV_2BIT, | ||
89 | 21, UNIPHIER_PIN_PULL_UP), | ||
90 | UNIPHIER_PINCTRL_PIN(22, "MMCDAT0", 22, | ||
91 | 4, UNIPHIER_PIN_DRV_2BIT, | ||
92 | 22, UNIPHIER_PIN_PULL_UP), | ||
93 | UNIPHIER_PINCTRL_PIN(23, "MMCDAT1", 23, | ||
94 | 5, UNIPHIER_PIN_DRV_2BIT, | ||
95 | 23, UNIPHIER_PIN_PULL_UP), | ||
96 | UNIPHIER_PINCTRL_PIN(24, "MMCDAT2", 24, | ||
97 | 6, UNIPHIER_PIN_DRV_2BIT, | ||
98 | 24, UNIPHIER_PIN_PULL_UP), | ||
99 | UNIPHIER_PINCTRL_PIN(25, "MMCDAT3", 25, | ||
100 | 7, UNIPHIER_PIN_DRV_2BIT, | ||
101 | 25, UNIPHIER_PIN_PULL_UP), | ||
102 | UNIPHIER_PINCTRL_PIN(26, "MMCDAT4", 26, | ||
103 | 8, UNIPHIER_PIN_DRV_2BIT, | ||
104 | 26, UNIPHIER_PIN_PULL_UP), | ||
105 | UNIPHIER_PINCTRL_PIN(27, "MMCDAT5", 27, | ||
106 | 9, UNIPHIER_PIN_DRV_2BIT, | ||
107 | 27, UNIPHIER_PIN_PULL_UP), | ||
108 | UNIPHIER_PINCTRL_PIN(28, "MMCDAT6", 28, | ||
109 | 10, UNIPHIER_PIN_DRV_2BIT, | ||
110 | 28, UNIPHIER_PIN_PULL_UP), | ||
111 | UNIPHIER_PINCTRL_PIN(29, "MMCDAT7", 29, | ||
112 | 11, UNIPHIER_PIN_DRV_2BIT, | ||
113 | 29, UNIPHIER_PIN_PULL_UP), | ||
114 | UNIPHIER_PINCTRL_PIN(46, "USB0VBUS", 46, | ||
115 | 46, UNIPHIER_PIN_DRV_1BIT, | ||
116 | 46, UNIPHIER_PIN_PULL_DOWN), | ||
117 | UNIPHIER_PINCTRL_PIN(47, "USB0OD", UNIPHIER_PIN_IECTRL_NONE, | ||
118 | 47, UNIPHIER_PIN_DRV_1BIT, | ||
119 | 47, UNIPHIER_PIN_PULL_UP), | ||
120 | UNIPHIER_PINCTRL_PIN(48, "USB1VBUS", 48, | ||
121 | 48, UNIPHIER_PIN_DRV_1BIT, | ||
122 | 48, UNIPHIER_PIN_PULL_DOWN), | ||
123 | UNIPHIER_PINCTRL_PIN(49, "USB1OD", 49, | ||
124 | 49, UNIPHIER_PIN_DRV_1BIT, | ||
125 | 49, UNIPHIER_PIN_PULL_UP), | ||
126 | UNIPHIER_PINCTRL_PIN(50, "USB2VBUS", 50, | ||
127 | 50, UNIPHIER_PIN_DRV_1BIT, | ||
128 | 50, UNIPHIER_PIN_PULL_DOWN), | ||
129 | UNIPHIER_PINCTRL_PIN(51, "USB2OD", 51, | ||
130 | 51, UNIPHIER_PIN_DRV_1BIT, | ||
131 | 51, UNIPHIER_PIN_PULL_UP), | ||
132 | UNIPHIER_PINCTRL_PIN(54, "TXD0", 54, | ||
133 | 54, UNIPHIER_PIN_DRV_1BIT, | ||
134 | 54, UNIPHIER_PIN_PULL_UP), | ||
135 | UNIPHIER_PINCTRL_PIN(55, "RXD0", 55, | ||
136 | 55, UNIPHIER_PIN_DRV_1BIT, | ||
137 | 55, UNIPHIER_PIN_PULL_UP), | ||
138 | UNIPHIER_PINCTRL_PIN(56, "SPISYNC0", 56, | ||
139 | 56, UNIPHIER_PIN_DRV_1BIT, | ||
140 | 56, UNIPHIER_PIN_PULL_DOWN), | ||
141 | UNIPHIER_PINCTRL_PIN(57, "SPISCLK0", 57, | ||
142 | 57, UNIPHIER_PIN_DRV_1BIT, | ||
143 | 57, UNIPHIER_PIN_PULL_DOWN), | ||
144 | UNIPHIER_PINCTRL_PIN(58, "SPITXD0", 58, | ||
145 | 58, UNIPHIER_PIN_DRV_1BIT, | ||
146 | 58, UNIPHIER_PIN_PULL_DOWN), | ||
147 | UNIPHIER_PINCTRL_PIN(59, "SPIRXD0", 59, | ||
148 | 59, UNIPHIER_PIN_DRV_1BIT, | ||
149 | 59, UNIPHIER_PIN_PULL_DOWN), | ||
150 | UNIPHIER_PINCTRL_PIN(60, "AGCI", 60, | ||
151 | 60, UNIPHIER_PIN_DRV_1BIT, | ||
152 | 60, UNIPHIER_PIN_PULL_DOWN), | ||
153 | UNIPHIER_PINCTRL_PIN(61, "DMDSDA0", 61, | ||
154 | -1, UNIPHIER_PIN_DRV_FIXED4, | ||
155 | -1, UNIPHIER_PIN_PULL_NONE), | ||
156 | UNIPHIER_PINCTRL_PIN(62, "DMDSCL0", 62, | ||
157 | -1, UNIPHIER_PIN_DRV_FIXED4, | ||
158 | -1, UNIPHIER_PIN_PULL_NONE), | ||
159 | UNIPHIER_PINCTRL_PIN(63, "SDA0", 63, | ||
160 | -1, UNIPHIER_PIN_DRV_FIXED4, | ||
161 | -1, UNIPHIER_PIN_PULL_NONE), | ||
162 | UNIPHIER_PINCTRL_PIN(64, "SCL0", 64, | ||
163 | -1, UNIPHIER_PIN_DRV_FIXED4, | ||
164 | -1, UNIPHIER_PIN_PULL_NONE), | ||
165 | UNIPHIER_PINCTRL_PIN(65, "SDA1", 65, | ||
166 | -1, UNIPHIER_PIN_DRV_FIXED4, | ||
167 | -1, UNIPHIER_PIN_PULL_NONE), | ||
168 | UNIPHIER_PINCTRL_PIN(66, "SCL1", 66, | ||
169 | -1, UNIPHIER_PIN_DRV_FIXED4, | ||
170 | -1, UNIPHIER_PIN_PULL_NONE), | ||
171 | UNIPHIER_PINCTRL_PIN(67, "HIN", 67, | ||
172 | -1, UNIPHIER_PIN_DRV_FIXED5, | ||
173 | -1, UNIPHIER_PIN_PULL_NONE), | ||
174 | UNIPHIER_PINCTRL_PIN(68, "VIN", 68, | ||
175 | -1, UNIPHIER_PIN_DRV_FIXED5, | ||
176 | -1, UNIPHIER_PIN_PULL_NONE), | ||
177 | UNIPHIER_PINCTRL_PIN(69, "PCA00", 69, | ||
178 | 69, UNIPHIER_PIN_DRV_1BIT, | ||
179 | 69, UNIPHIER_PIN_PULL_DOWN), | ||
180 | UNIPHIER_PINCTRL_PIN(70, "PCA01", 70, | ||
181 | 70, UNIPHIER_PIN_DRV_1BIT, | ||
182 | 70, UNIPHIER_PIN_PULL_DOWN), | ||
183 | UNIPHIER_PINCTRL_PIN(71, "PCA02", 71, | ||
184 | 71, UNIPHIER_PIN_DRV_1BIT, | ||
185 | 71, UNIPHIER_PIN_PULL_DOWN), | ||
186 | UNIPHIER_PINCTRL_PIN(72, "PCA03", 72, | ||
187 | 72, UNIPHIER_PIN_DRV_1BIT, | ||
188 | 72, UNIPHIER_PIN_PULL_DOWN), | ||
189 | UNIPHIER_PINCTRL_PIN(73, "PCA04", 73, | ||
190 | 73, UNIPHIER_PIN_DRV_1BIT, | ||
191 | 73, UNIPHIER_PIN_PULL_DOWN), | ||
192 | UNIPHIER_PINCTRL_PIN(74, "PCA05", 74, | ||
193 | 74, UNIPHIER_PIN_DRV_1BIT, | ||
194 | 74, UNIPHIER_PIN_PULL_DOWN), | ||
195 | UNIPHIER_PINCTRL_PIN(75, "PCA06", 75, | ||
196 | 75, UNIPHIER_PIN_DRV_1BIT, | ||
197 | 75, UNIPHIER_PIN_PULL_DOWN), | ||
198 | UNIPHIER_PINCTRL_PIN(76, "PCA07", 76, | ||
199 | 76, UNIPHIER_PIN_DRV_1BIT, | ||
200 | 76, UNIPHIER_PIN_PULL_DOWN), | ||
201 | UNIPHIER_PINCTRL_PIN(77, "PCA08", 77, | ||
202 | 77, UNIPHIER_PIN_DRV_1BIT, | ||
203 | 77, UNIPHIER_PIN_PULL_DOWN), | ||
204 | UNIPHIER_PINCTRL_PIN(78, "PCA09", 78, | ||
205 | 78, UNIPHIER_PIN_DRV_1BIT, | ||
206 | 78, UNIPHIER_PIN_PULL_DOWN), | ||
207 | UNIPHIER_PINCTRL_PIN(79, "PCA10", 79, | ||
208 | 79, UNIPHIER_PIN_DRV_1BIT, | ||
209 | 79, UNIPHIER_PIN_PULL_DOWN), | ||
210 | UNIPHIER_PINCTRL_PIN(80, "PCA11", 80, | ||
211 | 80, UNIPHIER_PIN_DRV_1BIT, | ||
212 | 80, UNIPHIER_PIN_PULL_DOWN), | ||
213 | UNIPHIER_PINCTRL_PIN(81, "PCA12", 81, | ||
214 | 81, UNIPHIER_PIN_DRV_1BIT, | ||
215 | 81, UNIPHIER_PIN_PULL_DOWN), | ||
216 | UNIPHIER_PINCTRL_PIN(82, "PCA13", 82, | ||
217 | 82, UNIPHIER_PIN_DRV_1BIT, | ||
218 | 82, UNIPHIER_PIN_PULL_DOWN), | ||
219 | UNIPHIER_PINCTRL_PIN(83, "PCA14", 83, | ||
220 | 83, UNIPHIER_PIN_DRV_1BIT, | ||
221 | 83, UNIPHIER_PIN_PULL_DOWN), | ||
222 | UNIPHIER_PINCTRL_PIN(84, "PC0READY", 84, | ||
223 | 84, UNIPHIER_PIN_DRV_1BIT, | ||
224 | 84, UNIPHIER_PIN_PULL_DOWN), | ||
225 | UNIPHIER_PINCTRL_PIN(85, "PC0CD1", 85, | ||
226 | 85, UNIPHIER_PIN_DRV_1BIT, | ||
227 | 85, UNIPHIER_PIN_PULL_DOWN), | ||
228 | UNIPHIER_PINCTRL_PIN(86, "PC0CD2", 86, | ||
229 | 86, UNIPHIER_PIN_DRV_1BIT, | ||
230 | 86, UNIPHIER_PIN_PULL_DOWN), | ||
231 | UNIPHIER_PINCTRL_PIN(87, "PC0WAIT", 87, | ||
232 | 87, UNIPHIER_PIN_DRV_1BIT, | ||
233 | 87, UNIPHIER_PIN_PULL_DOWN), | ||
234 | UNIPHIER_PINCTRL_PIN(88, "PC0RESET", 88, | ||
235 | 88, UNIPHIER_PIN_DRV_1BIT, | ||
236 | 88, UNIPHIER_PIN_PULL_DOWN), | ||
237 | UNIPHIER_PINCTRL_PIN(89, "PC0CE1", 89, | ||
238 | 89, UNIPHIER_PIN_DRV_1BIT, | ||
239 | 89, UNIPHIER_PIN_PULL_DOWN), | ||
240 | UNIPHIER_PINCTRL_PIN(90, "PC0WE", 90, | ||
241 | 90, UNIPHIER_PIN_DRV_1BIT, | ||
242 | 90, UNIPHIER_PIN_PULL_DOWN), | ||
243 | UNIPHIER_PINCTRL_PIN(91, "PC0OE", 91, | ||
244 | 91, UNIPHIER_PIN_DRV_1BIT, | ||
245 | 91, UNIPHIER_PIN_PULL_DOWN), | ||
246 | UNIPHIER_PINCTRL_PIN(92, "PC0IOWR", 92, | ||
247 | 92, UNIPHIER_PIN_DRV_1BIT, | ||
248 | 92, UNIPHIER_PIN_PULL_DOWN), | ||
249 | UNIPHIER_PINCTRL_PIN(93, "PC0IORD", 93, | ||
250 | 93, UNIPHIER_PIN_DRV_1BIT, | ||
251 | 93, UNIPHIER_PIN_PULL_DOWN), | ||
252 | UNIPHIER_PINCTRL_PIN(94, "PCD00", 94, | ||
253 | 94, UNIPHIER_PIN_DRV_1BIT, | ||
254 | 94, UNIPHIER_PIN_PULL_DOWN), | ||
255 | UNIPHIER_PINCTRL_PIN(95, "PCD01", 95, | ||
256 | 95, UNIPHIER_PIN_DRV_1BIT, | ||
257 | 95, UNIPHIER_PIN_PULL_DOWN), | ||
258 | UNIPHIER_PINCTRL_PIN(96, "PCD02", 96, | ||
259 | 96, UNIPHIER_PIN_DRV_1BIT, | ||
260 | 96, UNIPHIER_PIN_PULL_DOWN), | ||
261 | UNIPHIER_PINCTRL_PIN(97, "PCD03", 97, | ||
262 | 97, UNIPHIER_PIN_DRV_1BIT, | ||
263 | 97, UNIPHIER_PIN_PULL_DOWN), | ||
264 | UNIPHIER_PINCTRL_PIN(98, "PCD04", 98, | ||
265 | 98, UNIPHIER_PIN_DRV_1BIT, | ||
266 | 98, UNIPHIER_PIN_PULL_DOWN), | ||
267 | UNIPHIER_PINCTRL_PIN(99, "PCD05", 99, | ||
268 | 99, UNIPHIER_PIN_DRV_1BIT, | ||
269 | 99, UNIPHIER_PIN_PULL_DOWN), | ||
270 | UNIPHIER_PINCTRL_PIN(100, "PCD06", 100, | ||
271 | 100, UNIPHIER_PIN_DRV_1BIT, | ||
272 | 100, UNIPHIER_PIN_PULL_DOWN), | ||
273 | UNIPHIER_PINCTRL_PIN(101, "PCD07", 101, | ||
274 | 101, UNIPHIER_PIN_DRV_1BIT, | ||
275 | 101, UNIPHIER_PIN_PULL_DOWN), | ||
276 | UNIPHIER_PINCTRL_PIN(102, "HS0BCLKIN", 102, | ||
277 | 102, UNIPHIER_PIN_DRV_1BIT, | ||
278 | 102, UNIPHIER_PIN_PULL_DOWN), | ||
279 | UNIPHIER_PINCTRL_PIN(103, "HS0SYNCIN", 103, | ||
280 | 103, UNIPHIER_PIN_DRV_1BIT, | ||
281 | 103, UNIPHIER_PIN_PULL_DOWN), | ||
282 | UNIPHIER_PINCTRL_PIN(104, "HS0VALIN", 104, | ||
283 | 104, UNIPHIER_PIN_DRV_1BIT, | ||
284 | 104, UNIPHIER_PIN_PULL_DOWN), | ||
285 | UNIPHIER_PINCTRL_PIN(105, "HS0DIN0", 105, | ||
286 | 105, UNIPHIER_PIN_DRV_1BIT, | ||
287 | 105, UNIPHIER_PIN_PULL_DOWN), | ||
288 | UNIPHIER_PINCTRL_PIN(106, "HS0DIN1", 106, | ||
289 | 106, UNIPHIER_PIN_DRV_1BIT, | ||
290 | 106, UNIPHIER_PIN_PULL_DOWN), | ||
291 | UNIPHIER_PINCTRL_PIN(107, "HS0DIN2", 107, | ||
292 | 107, UNIPHIER_PIN_DRV_1BIT, | ||
293 | 107, UNIPHIER_PIN_PULL_DOWN), | ||
294 | UNIPHIER_PINCTRL_PIN(108, "HS0DIN3", 108, | ||
295 | 108, UNIPHIER_PIN_DRV_1BIT, | ||
296 | 108, UNIPHIER_PIN_PULL_DOWN), | ||
297 | UNIPHIER_PINCTRL_PIN(109, "HS0DIN4", 109, | ||
298 | 109, UNIPHIER_PIN_DRV_1BIT, | ||
299 | 109, UNIPHIER_PIN_PULL_DOWN), | ||
300 | UNIPHIER_PINCTRL_PIN(110, "HS0DIN5", 110, | ||
301 | 110, UNIPHIER_PIN_DRV_1BIT, | ||
302 | 110, UNIPHIER_PIN_PULL_DOWN), | ||
303 | UNIPHIER_PINCTRL_PIN(111, "HS0DIN6", 111, | ||
304 | 111, UNIPHIER_PIN_DRV_1BIT, | ||
305 | 111, UNIPHIER_PIN_PULL_DOWN), | ||
306 | UNIPHIER_PINCTRL_PIN(112, "HS0DIN7", 112, | ||
307 | 112, UNIPHIER_PIN_DRV_1BIT, | ||
308 | 112, UNIPHIER_PIN_PULL_DOWN), | ||
309 | UNIPHIER_PINCTRL_PIN(113, "HS0BCLKOUT", 113, | ||
310 | 113, UNIPHIER_PIN_DRV_1BIT, | ||
311 | 113, UNIPHIER_PIN_PULL_DOWN), | ||
312 | UNIPHIER_PINCTRL_PIN(114, "HS0SYNCOUT", 114, | ||
313 | 114, UNIPHIER_PIN_DRV_1BIT, | ||
314 | 114, UNIPHIER_PIN_PULL_DOWN), | ||
315 | UNIPHIER_PINCTRL_PIN(115, "HS0VALOUT", 115, | ||
316 | 115, UNIPHIER_PIN_DRV_1BIT, | ||
317 | 115, UNIPHIER_PIN_PULL_DOWN), | ||
318 | UNIPHIER_PINCTRL_PIN(116, "HS0DOUT0", 116, | ||
319 | 116, UNIPHIER_PIN_DRV_1BIT, | ||
320 | 116, UNIPHIER_PIN_PULL_DOWN), | ||
321 | UNIPHIER_PINCTRL_PIN(117, "HS0DOUT1", 117, | ||
322 | 117, UNIPHIER_PIN_DRV_1BIT, | ||
323 | 117, UNIPHIER_PIN_PULL_DOWN), | ||
324 | UNIPHIER_PINCTRL_PIN(118, "HS0DOUT2", 118, | ||
325 | 118, UNIPHIER_PIN_DRV_1BIT, | ||
326 | 118, UNIPHIER_PIN_PULL_DOWN), | ||
327 | UNIPHIER_PINCTRL_PIN(119, "HS0DOUT3", 119, | ||
328 | 119, UNIPHIER_PIN_DRV_1BIT, | ||
329 | 119, UNIPHIER_PIN_PULL_DOWN), | ||
330 | UNIPHIER_PINCTRL_PIN(120, "HS0DOUT4", 120, | ||
331 | 120, UNIPHIER_PIN_DRV_1BIT, | ||
332 | 120, UNIPHIER_PIN_PULL_DOWN), | ||
333 | UNIPHIER_PINCTRL_PIN(121, "HS0DOUT5", 121, | ||
334 | 121, UNIPHIER_PIN_DRV_1BIT, | ||
335 | 121, UNIPHIER_PIN_PULL_DOWN), | ||
336 | UNIPHIER_PINCTRL_PIN(122, "HS0DOUT6", 122, | ||
337 | 122, UNIPHIER_PIN_DRV_1BIT, | ||
338 | 122, UNIPHIER_PIN_PULL_DOWN), | ||
339 | UNIPHIER_PINCTRL_PIN(123, "HS0DOUT7", 123, | ||
340 | 123, UNIPHIER_PIN_DRV_1BIT, | ||
341 | 123, UNIPHIER_PIN_PULL_DOWN), | ||
342 | UNIPHIER_PINCTRL_PIN(124, "HS1BCLKIN", 124, | ||
343 | 124, UNIPHIER_PIN_DRV_1BIT, | ||
344 | 124, UNIPHIER_PIN_PULL_DOWN), | ||
345 | UNIPHIER_PINCTRL_PIN(125, "HS1SYNCIN", 125, | ||
346 | 125, UNIPHIER_PIN_DRV_1BIT, | ||
347 | 125, UNIPHIER_PIN_PULL_DOWN), | ||
348 | UNIPHIER_PINCTRL_PIN(126, "HS1VALIN", 126, | ||
349 | 126, UNIPHIER_PIN_DRV_1BIT, | ||
350 | 126, UNIPHIER_PIN_PULL_DOWN), | ||
351 | UNIPHIER_PINCTRL_PIN(127, "HS1DIN0", 127, | ||
352 | 127, UNIPHIER_PIN_DRV_1BIT, | ||
353 | 127, UNIPHIER_PIN_PULL_DOWN), | ||
354 | UNIPHIER_PINCTRL_PIN(128, "HS1DIN1", 128, | ||
355 | 128, UNIPHIER_PIN_DRV_1BIT, | ||
356 | 128, UNIPHIER_PIN_PULL_DOWN), | ||
357 | UNIPHIER_PINCTRL_PIN(129, "HS1DIN2", 129, | ||
358 | 129, UNIPHIER_PIN_DRV_1BIT, | ||
359 | 129, UNIPHIER_PIN_PULL_DOWN), | ||
360 | UNIPHIER_PINCTRL_PIN(130, "HS1DIN3", 130, | ||
361 | 130, UNIPHIER_PIN_DRV_1BIT, | ||
362 | 130, UNIPHIER_PIN_PULL_DOWN), | ||
363 | UNIPHIER_PINCTRL_PIN(131, "HS1DIN4", 131, | ||
364 | 131, UNIPHIER_PIN_DRV_1BIT, | ||
365 | 131, UNIPHIER_PIN_PULL_DOWN), | ||
366 | UNIPHIER_PINCTRL_PIN(132, "HS1DIN5", 132, | ||
367 | 132, UNIPHIER_PIN_DRV_1BIT, | ||
368 | 132, UNIPHIER_PIN_PULL_DOWN), | ||
369 | UNIPHIER_PINCTRL_PIN(133, "HS1DIN6", 133, | ||
370 | 133, UNIPHIER_PIN_DRV_1BIT, | ||
371 | 133, UNIPHIER_PIN_PULL_DOWN), | ||
372 | UNIPHIER_PINCTRL_PIN(134, "HS1DIN7", 134, | ||
373 | 134, UNIPHIER_PIN_DRV_1BIT, | ||
374 | 134, UNIPHIER_PIN_PULL_DOWN), | ||
375 | UNIPHIER_PINCTRL_PIN(135, "AO1IEC", 135, | ||
376 | 135, UNIPHIER_PIN_DRV_1BIT, | ||
377 | 135, UNIPHIER_PIN_PULL_DOWN), | ||
378 | UNIPHIER_PINCTRL_PIN(136, "AO1ARC", 136, | ||
379 | 136, UNIPHIER_PIN_DRV_1BIT, | ||
380 | 136, UNIPHIER_PIN_PULL_DOWN), | ||
381 | UNIPHIER_PINCTRL_PIN(137, "AO1DACCK", 137, | ||
382 | 137, UNIPHIER_PIN_DRV_1BIT, | ||
383 | 137, UNIPHIER_PIN_PULL_DOWN), | ||
384 | UNIPHIER_PINCTRL_PIN(138, "AO1BCK", 138, | ||
385 | 138, UNIPHIER_PIN_DRV_1BIT, | ||
386 | 138, UNIPHIER_PIN_PULL_DOWN), | ||
387 | UNIPHIER_PINCTRL_PIN(139, "AO1LRCK", 139, | ||
388 | 139, UNIPHIER_PIN_DRV_1BIT, | ||
389 | 139, UNIPHIER_PIN_PULL_DOWN), | ||
390 | UNIPHIER_PINCTRL_PIN(140, "AO1D0", 140, | ||
391 | 140, UNIPHIER_PIN_DRV_1BIT, | ||
392 | 140, UNIPHIER_PIN_PULL_DOWN), | ||
393 | UNIPHIER_PINCTRL_PIN(141, "TCON0", 141, | ||
394 | 141, UNIPHIER_PIN_DRV_1BIT, | ||
395 | 141, UNIPHIER_PIN_PULL_DOWN), | ||
396 | UNIPHIER_PINCTRL_PIN(142, "TCON1", 142, | ||
397 | 142, UNIPHIER_PIN_DRV_1BIT, | ||
398 | 142, UNIPHIER_PIN_PULL_DOWN), | ||
399 | UNIPHIER_PINCTRL_PIN(143, "TCON2", 143, | ||
400 | 143, UNIPHIER_PIN_DRV_1BIT, | ||
401 | 143, UNIPHIER_PIN_PULL_DOWN), | ||
402 | UNIPHIER_PINCTRL_PIN(144, "TCON3", 144, | ||
403 | 144, UNIPHIER_PIN_DRV_1BIT, | ||
404 | 144, UNIPHIER_PIN_PULL_DOWN), | ||
405 | UNIPHIER_PINCTRL_PIN(145, "TCON4", 145, | ||
406 | 145, UNIPHIER_PIN_DRV_1BIT, | ||
407 | 145, UNIPHIER_PIN_PULL_DOWN), | ||
408 | UNIPHIER_PINCTRL_PIN(146, "TCON5", 146, | ||
409 | 146, UNIPHIER_PIN_DRV_1BIT, | ||
410 | 146, UNIPHIER_PIN_PULL_DOWN), | ||
411 | UNIPHIER_PINCTRL_PIN(147, "PWMA", 147, | ||
412 | 147, UNIPHIER_PIN_DRV_1BIT, | ||
413 | 147, UNIPHIER_PIN_PULL_DOWN), | ||
414 | UNIPHIER_PINCTRL_PIN(148, "LR_GOUT", 148, | ||
415 | 148, UNIPHIER_PIN_DRV_1BIT, | ||
416 | 148, UNIPHIER_PIN_PULL_DOWN), | ||
417 | UNIPHIER_PINCTRL_PIN(149, "XIRQ0", 149, | ||
418 | 149, UNIPHIER_PIN_DRV_1BIT, | ||
419 | 149, UNIPHIER_PIN_PULL_DOWN), | ||
420 | UNIPHIER_PINCTRL_PIN(150, "XIRQ1", 150, | ||
421 | 150, UNIPHIER_PIN_DRV_1BIT, | ||
422 | 150, UNIPHIER_PIN_PULL_DOWN), | ||
423 | UNIPHIER_PINCTRL_PIN(151, "XIRQ2", 151, | ||
424 | 151, UNIPHIER_PIN_DRV_1BIT, | ||
425 | 151, UNIPHIER_PIN_PULL_DOWN), | ||
426 | UNIPHIER_PINCTRL_PIN(152, "XIRQ3", 152, | ||
427 | 152, UNIPHIER_PIN_DRV_1BIT, | ||
428 | 152, UNIPHIER_PIN_PULL_DOWN), | ||
429 | UNIPHIER_PINCTRL_PIN(153, "XIRQ4", 153, | ||
430 | 153, UNIPHIER_PIN_DRV_1BIT, | ||
431 | 153, UNIPHIER_PIN_PULL_DOWN), | ||
432 | UNIPHIER_PINCTRL_PIN(154, "XIRQ5", 154, | ||
433 | 154, UNIPHIER_PIN_DRV_1BIT, | ||
434 | 154, UNIPHIER_PIN_PULL_DOWN), | ||
435 | UNIPHIER_PINCTRL_PIN(155, "XIRQ6", 155, | ||
436 | 155, UNIPHIER_PIN_DRV_1BIT, | ||
437 | 155, UNIPHIER_PIN_PULL_DOWN), | ||
438 | UNIPHIER_PINCTRL_PIN(156, "XIRQ7", 156, | ||
439 | 156, UNIPHIER_PIN_DRV_1BIT, | ||
440 | 156, UNIPHIER_PIN_PULL_DOWN), | ||
441 | UNIPHIER_PINCTRL_PIN(157, "XIRQ8", 157, | ||
442 | 157, UNIPHIER_PIN_DRV_1BIT, | ||
443 | 157, UNIPHIER_PIN_PULL_DOWN), | ||
444 | UNIPHIER_PINCTRL_PIN(158, "AGCBS", 158, | ||
445 | 158, UNIPHIER_PIN_DRV_1BIT, | ||
446 | 158, UNIPHIER_PIN_PULL_DOWN), | ||
447 | UNIPHIER_PINCTRL_PIN(159, "XIRQ21", 159, | ||
448 | 159, UNIPHIER_PIN_DRV_1BIT, | ||
449 | 159, UNIPHIER_PIN_PULL_DOWN), | ||
450 | UNIPHIER_PINCTRL_PIN(160, "XIRQ22", 160, | ||
451 | 160, UNIPHIER_PIN_DRV_1BIT, | ||
452 | 160, UNIPHIER_PIN_PULL_DOWN), | ||
453 | UNIPHIER_PINCTRL_PIN(161, "XIRQ23", 161, | ||
454 | 161, UNIPHIER_PIN_DRV_1BIT, | ||
455 | 161, UNIPHIER_PIN_PULL_DOWN), | ||
456 | UNIPHIER_PINCTRL_PIN(162, "CH2CLK", 162, | ||
457 | 162, UNIPHIER_PIN_DRV_1BIT, | ||
458 | 162, UNIPHIER_PIN_PULL_DOWN), | ||
459 | UNIPHIER_PINCTRL_PIN(163, "CH2PSYNC", 163, | ||
460 | 163, UNIPHIER_PIN_DRV_1BIT, | ||
461 | 163, UNIPHIER_PIN_PULL_DOWN), | ||
462 | UNIPHIER_PINCTRL_PIN(164, "CH2VAL", 164, | ||
463 | 164, UNIPHIER_PIN_DRV_1BIT, | ||
464 | 164, UNIPHIER_PIN_PULL_DOWN), | ||
465 | UNIPHIER_PINCTRL_PIN(165, "CH2DATA", 165, | ||
466 | 165, UNIPHIER_PIN_DRV_1BIT, | ||
467 | 165, UNIPHIER_PIN_PULL_DOWN), | ||
468 | UNIPHIER_PINCTRL_PIN(166, "CK25O", 166, | ||
469 | 166, UNIPHIER_PIN_DRV_1BIT, | ||
470 | 166, UNIPHIER_PIN_PULL_DOWN), | ||
471 | }; | ||
472 | |||
473 | static const unsigned emmc_pins[] = {18, 19, 20, 21, 22, 23, 24, 25}; | ||
474 | static const int emmc_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0}; | ||
475 | static const unsigned emmc_dat8_pins[] = {26, 27, 28, 29}; | ||
476 | static const int emmc_dat8_muxvals[] = {0, 0, 0, 0}; | ||
477 | static const unsigned ether_rmii_pins[] = {6, 7, 8, 9, 10, 11, 12, 13, 14, 15, | ||
478 | 16, 17}; | ||
479 | static const int ether_rmii_muxvals[] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}; | ||
480 | static const unsigned i2c0_pins[] = {63, 64}; | ||
481 | static const int i2c0_muxvals[] = {0, 0}; | ||
482 | static const unsigned i2c1_pins[] = {65, 66}; | ||
483 | static const int i2c1_muxvals[] = {0, 0}; | ||
484 | static const unsigned i2c3_pins[] = {67, 68}; | ||
485 | static const int i2c3_muxvals[] = {1, 1}; | ||
486 | static const unsigned i2c4_pins[] = {61, 62}; | ||
487 | static const int i2c4_muxvals[] = {1, 1}; | ||
488 | static const unsigned nand_pins[] = {3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, | ||
489 | 15, 16, 17}; | ||
490 | static const int nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; | ||
491 | static const unsigned system_bus_pins[] = {1, 2, 6, 7, 8, 9, 10, 11, 12, 13, | ||
492 | 14, 15, 16, 17}; | ||
493 | static const int system_bus_muxvals[] = {0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
494 | 2}; | ||
495 | static const unsigned system_bus_cs1_pins[] = {0}; | ||
496 | static const int system_bus_cs1_muxvals[] = {0}; | ||
497 | static const unsigned uart0_pins[] = {54, 55}; | ||
498 | static const int uart0_muxvals[] = {0, 0}; | ||
499 | static const unsigned uart1_pins[] = {58, 59}; | ||
500 | static const int uart1_muxvals[] = {1, 1}; | ||
501 | static const unsigned uart2_pins[] = {90, 91}; | ||
502 | static const int uart2_muxvals[] = {1, 1}; | ||
503 | static const unsigned uart3_pins[] = {94, 95}; | ||
504 | static const int uart3_muxvals[] = {1, 1}; | ||
505 | static const unsigned usb0_pins[] = {46, 47}; | ||
506 | static const int usb0_muxvals[] = {0, 0}; | ||
507 | static const unsigned usb1_pins[] = {48, 49}; | ||
508 | static const int usb1_muxvals[] = {0, 0}; | ||
509 | static const unsigned usb2_pins[] = {50, 51}; | ||
510 | static const int usb2_muxvals[] = {0, 0}; | ||
511 | static const unsigned port_range_pins[] = { | ||
512 | 159, 160, 161, 162, 163, 164, 165, 166, /* PORT0x */ | ||
513 | 0, 1, 2, 3, 4, 5, 6, 7, /* PORT1x */ | ||
514 | 8, 9, 10, 11, 12, 13, 14, 15, /* PORT2x */ | ||
515 | 16, 17, 18, -1, -1, -1, -1, -1, /* PORT3x */ | ||
516 | -1, -1, -1, -1, -1, -1, -1, -1, /* PORT4x */ | ||
517 | -1, -1, -1, 46, 47, 48, 49, 50, /* PORT5x */ | ||
518 | 51, -1, -1, 54, 55, 56, 57, 58, /* PORT6x */ | ||
519 | 59, 60, 69, 70, 71, 72, 73, 74, /* PORT7x */ | ||
520 | 75, 76, 77, 78, 79, 80, 81, 82, /* PORT8x */ | ||
521 | 83, 84, 85, 86, 87, 88, 89, 90, /* PORT9x */ | ||
522 | 91, 92, 93, 94, 95, 96, 97, 98, /* PORT10x */ | ||
523 | -1, -1, -1, -1, -1, -1, -1, -1, /* PORT11x */ | ||
524 | 99, 100, 101, 102, 103, 104, 105, 106, /* PORT12x */ | ||
525 | 107, 108, 109, 110, 111, 112, 113, 114, /* PORT13x */ | ||
526 | 115, 116, 117, 118, 119, 120, 121, 122, /* PORT14x */ | ||
527 | -1, -1, -1, -1, -1, -1, -1, -1, /* PORT15x */ | ||
528 | -1, -1, -1, -1, -1, -1, -1, -1, /* PORT16x */ | ||
529 | -1, -1, -1, -1, -1, -1, -1, -1, /* PORT17x */ | ||
530 | 61, 62, 63, 64, 65, 66, 67, 68, /* PORT18x */ | ||
531 | -1, -1, -1, -1, -1, -1, -1, -1, /* PORT19x */ | ||
532 | 123, 124, 125, 126, 127, 128, 129, 130, /* PORT20x */ | ||
533 | 131, 132, 133, 134, 135, 136, 137, 138, /* PORT21x */ | ||
534 | 139, 140, 141, 142, -1, -1, -1, -1, /* PORT22x */ | ||
535 | 147, 148, 149, 150, 151, 152, 153, 154, /* PORT23x */ | ||
536 | 155, 156, 157, 143, 144, 145, 146, 158, /* PORT24x */ | ||
537 | }; | ||
538 | static const int port_range_muxvals[] = { | ||
539 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT0x */ | ||
540 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT1x */ | ||
541 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT2x */ | ||
542 | 15, 15, 15, -1, -1, -1, -1, -1, /* PORT3x */ | ||
543 | -1, -1, -1, -1, -1, -1, -1, -1, /* PORT4x */ | ||
544 | -1, -1, -1, 15, 15, 15, 15, 15, /* PORT5x */ | ||
545 | 15, -1, -1, 15, 15, 15, 15, 15, /* PORT6x */ | ||
546 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT7x */ | ||
547 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT8x */ | ||
548 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT9x */ | ||
549 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT10x */ | ||
550 | -1, -1, -1, -1, -1, -1, -1, -1, /* PORT11x */ | ||
551 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT12x */ | ||
552 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT13x */ | ||
553 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT14x */ | ||
554 | -1, -1, -1, -1, -1, -1, -1, -1, /* PORT15x */ | ||
555 | -1, -1, -1, -1, -1, -1, -1, -1, /* PORT16x */ | ||
556 | -1, -1, -1, -1, -1, -1, -1, -1, /* PORT17x */ | ||
557 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT18x */ | ||
558 | -1, -1, -1, -1, -1, -1, -1, -1, /* PORT19x */ | ||
559 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT20x */ | ||
560 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT21x */ | ||
561 | 15, 15, 15, 15, -1, -1, -1, -1, /* PORT22x */ | ||
562 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT23x */ | ||
563 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT24x */ | ||
564 | }; | ||
565 | static const unsigned xirq_pins[] = { | ||
566 | 149, 150, 151, 152, 153, 154, 155, 156, /* XIRQ0-7 */ | ||
567 | 157, 143, 144, 145, 85, 146, 158, 84, /* XIRQ8-15 */ | ||
568 | 141, 142, 148, 50, 51, 159, 160, 161, /* XIRQ16-23 */ | ||
569 | }; | ||
570 | static const int xirq_muxvals[] = { | ||
571 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ0-7 */ | ||
572 | 14, 14, 14, 14, 13, 14, 14, 13, /* XIRQ8-15 */ | ||
573 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ16-23 */ | ||
574 | }; | ||
575 | static const unsigned xirq_alternatives_pins[] = { | ||
576 | 94, 95, 96, 97, 98, 99, 100, 101, /* XIRQ0-7 */ | ||
577 | 102, 103, 104, 105, 106, 107, /* XIRQ8-11,13,14 */ | ||
578 | 108, 109, 110, 111, 112, 113, 114, 115, /* XIRQ16-23 */ | ||
579 | 9, 10, 11, 12, 13, 14, 15, 16, /* XIRQ4-11 */ | ||
580 | 17, 0, 1, 2, 3, 4, 5, 6, 7, 8, /* XIRQ13,14,16-23 */ | ||
581 | 139, 140, 135, 147, /* XIRQ17,18,21,22 */ | ||
582 | }; | ||
583 | static const int xirq_alternatives_muxvals[] = { | ||
584 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ0-7 */ | ||
585 | 14, 14, 14, 14, 14, 14, /* XIRQ8-11,13,14 */ | ||
586 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ16-23 */ | ||
587 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ4-11 */ | ||
588 | 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ13,14,16-23 */ | ||
589 | 14, 14, 14, 14, /* XIRQ17,18,21,22 */ | ||
590 | }; | ||
591 | |||
592 | static const struct uniphier_pinctrl_group uniphier_ld11_groups[] = { | ||
593 | UNIPHIER_PINCTRL_GROUP(emmc), | ||
594 | UNIPHIER_PINCTRL_GROUP(emmc_dat8), | ||
595 | UNIPHIER_PINCTRL_GROUP(ether_rmii), | ||
596 | UNIPHIER_PINCTRL_GROUP(i2c0), | ||
597 | UNIPHIER_PINCTRL_GROUP(i2c1), | ||
598 | UNIPHIER_PINCTRL_GROUP(i2c3), | ||
599 | UNIPHIER_PINCTRL_GROUP(i2c4), | ||
600 | UNIPHIER_PINCTRL_GROUP(nand), | ||
601 | UNIPHIER_PINCTRL_GROUP(system_bus), | ||
602 | UNIPHIER_PINCTRL_GROUP(system_bus_cs1), | ||
603 | UNIPHIER_PINCTRL_GROUP(uart0), | ||
604 | UNIPHIER_PINCTRL_GROUP(uart1), | ||
605 | UNIPHIER_PINCTRL_GROUP(uart2), | ||
606 | UNIPHIER_PINCTRL_GROUP(uart3), | ||
607 | UNIPHIER_PINCTRL_GROUP(usb0), | ||
608 | UNIPHIER_PINCTRL_GROUP(usb1), | ||
609 | UNIPHIER_PINCTRL_GROUP(usb2), | ||
610 | UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range), | ||
611 | UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_IRQ(xirq), | ||
612 | UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_IRQ(xirq_alternatives), | ||
613 | UNIPHIER_PINCTRL_GROUP_SINGLE(port00, port_range, 0), | ||
614 | UNIPHIER_PINCTRL_GROUP_SINGLE(port01, port_range, 1), | ||
615 | UNIPHIER_PINCTRL_GROUP_SINGLE(port02, port_range, 2), | ||
616 | UNIPHIER_PINCTRL_GROUP_SINGLE(port03, port_range, 3), | ||
617 | UNIPHIER_PINCTRL_GROUP_SINGLE(port04, port_range, 4), | ||
618 | UNIPHIER_PINCTRL_GROUP_SINGLE(port05, port_range, 5), | ||
619 | UNIPHIER_PINCTRL_GROUP_SINGLE(port06, port_range, 6), | ||
620 | UNIPHIER_PINCTRL_GROUP_SINGLE(port07, port_range, 7), | ||
621 | UNIPHIER_PINCTRL_GROUP_SINGLE(port10, port_range, 8), | ||
622 | UNIPHIER_PINCTRL_GROUP_SINGLE(port11, port_range, 9), | ||
623 | UNIPHIER_PINCTRL_GROUP_SINGLE(port12, port_range, 10), | ||
624 | UNIPHIER_PINCTRL_GROUP_SINGLE(port13, port_range, 11), | ||
625 | UNIPHIER_PINCTRL_GROUP_SINGLE(port14, port_range, 12), | ||
626 | UNIPHIER_PINCTRL_GROUP_SINGLE(port15, port_range, 13), | ||
627 | UNIPHIER_PINCTRL_GROUP_SINGLE(port16, port_range, 14), | ||
628 | UNIPHIER_PINCTRL_GROUP_SINGLE(port17, port_range, 15), | ||
629 | UNIPHIER_PINCTRL_GROUP_SINGLE(port20, port_range, 16), | ||
630 | UNIPHIER_PINCTRL_GROUP_SINGLE(port21, port_range, 17), | ||
631 | UNIPHIER_PINCTRL_GROUP_SINGLE(port22, port_range, 18), | ||
632 | UNIPHIER_PINCTRL_GROUP_SINGLE(port23, port_range, 19), | ||
633 | UNIPHIER_PINCTRL_GROUP_SINGLE(port24, port_range, 20), | ||
634 | UNIPHIER_PINCTRL_GROUP_SINGLE(port25, port_range, 21), | ||
635 | UNIPHIER_PINCTRL_GROUP_SINGLE(port26, port_range, 22), | ||
636 | UNIPHIER_PINCTRL_GROUP_SINGLE(port27, port_range, 23), | ||
637 | UNIPHIER_PINCTRL_GROUP_SINGLE(port30, port_range, 24), | ||
638 | UNIPHIER_PINCTRL_GROUP_SINGLE(port31, port_range, 25), | ||
639 | UNIPHIER_PINCTRL_GROUP_SINGLE(port32, port_range, 26), | ||
640 | UNIPHIER_PINCTRL_GROUP_SINGLE(port53, port_range, 43), | ||
641 | UNIPHIER_PINCTRL_GROUP_SINGLE(port54, port_range, 44), | ||
642 | UNIPHIER_PINCTRL_GROUP_SINGLE(port55, port_range, 45), | ||
643 | UNIPHIER_PINCTRL_GROUP_SINGLE(port56, port_range, 46), | ||
644 | UNIPHIER_PINCTRL_GROUP_SINGLE(port57, port_range, 47), | ||
645 | UNIPHIER_PINCTRL_GROUP_SINGLE(port60, port_range, 48), | ||
646 | UNIPHIER_PINCTRL_GROUP_SINGLE(port63, port_range, 51), | ||
647 | UNIPHIER_PINCTRL_GROUP_SINGLE(port64, port_range, 52), | ||
648 | UNIPHIER_PINCTRL_GROUP_SINGLE(port65, port_range, 53), | ||
649 | UNIPHIER_PINCTRL_GROUP_SINGLE(port66, port_range, 54), | ||
650 | UNIPHIER_PINCTRL_GROUP_SINGLE(port67, port_range, 55), | ||
651 | UNIPHIER_PINCTRL_GROUP_SINGLE(port70, port_range, 56), | ||
652 | UNIPHIER_PINCTRL_GROUP_SINGLE(port71, port_range, 57), | ||
653 | UNIPHIER_PINCTRL_GROUP_SINGLE(port72, port_range, 58), | ||
654 | UNIPHIER_PINCTRL_GROUP_SINGLE(port73, port_range, 59), | ||
655 | UNIPHIER_PINCTRL_GROUP_SINGLE(port74, port_range, 60), | ||
656 | UNIPHIER_PINCTRL_GROUP_SINGLE(port75, port_range, 61), | ||
657 | UNIPHIER_PINCTRL_GROUP_SINGLE(port76, port_range, 62), | ||
658 | UNIPHIER_PINCTRL_GROUP_SINGLE(port77, port_range, 63), | ||
659 | UNIPHIER_PINCTRL_GROUP_SINGLE(port80, port_range, 64), | ||
660 | UNIPHIER_PINCTRL_GROUP_SINGLE(port81, port_range, 65), | ||
661 | UNIPHIER_PINCTRL_GROUP_SINGLE(port82, port_range, 66), | ||
662 | UNIPHIER_PINCTRL_GROUP_SINGLE(port83, port_range, 67), | ||
663 | UNIPHIER_PINCTRL_GROUP_SINGLE(port84, port_range, 68), | ||
664 | UNIPHIER_PINCTRL_GROUP_SINGLE(port85, port_range, 69), | ||
665 | UNIPHIER_PINCTRL_GROUP_SINGLE(port86, port_range, 70), | ||
666 | UNIPHIER_PINCTRL_GROUP_SINGLE(port87, port_range, 71), | ||
667 | UNIPHIER_PINCTRL_GROUP_SINGLE(port90, port_range, 72), | ||
668 | UNIPHIER_PINCTRL_GROUP_SINGLE(port91, port_range, 73), | ||
669 | UNIPHIER_PINCTRL_GROUP_SINGLE(port92, port_range, 74), | ||
670 | UNIPHIER_PINCTRL_GROUP_SINGLE(port93, port_range, 75), | ||
671 | UNIPHIER_PINCTRL_GROUP_SINGLE(port94, port_range, 76), | ||
672 | UNIPHIER_PINCTRL_GROUP_SINGLE(port95, port_range, 77), | ||
673 | UNIPHIER_PINCTRL_GROUP_SINGLE(port96, port_range, 78), | ||
674 | UNIPHIER_PINCTRL_GROUP_SINGLE(port97, port_range, 79), | ||
675 | UNIPHIER_PINCTRL_GROUP_SINGLE(port100, port_range, 80), | ||
676 | UNIPHIER_PINCTRL_GROUP_SINGLE(port101, port_range, 81), | ||
677 | UNIPHIER_PINCTRL_GROUP_SINGLE(port102, port_range, 82), | ||
678 | UNIPHIER_PINCTRL_GROUP_SINGLE(port103, port_range, 83), | ||
679 | UNIPHIER_PINCTRL_GROUP_SINGLE(port104, port_range, 84), | ||
680 | UNIPHIER_PINCTRL_GROUP_SINGLE(port105, port_range, 85), | ||
681 | UNIPHIER_PINCTRL_GROUP_SINGLE(port106, port_range, 86), | ||
682 | UNIPHIER_PINCTRL_GROUP_SINGLE(port107, port_range, 87), | ||
683 | UNIPHIER_PINCTRL_GROUP_SINGLE(port120, port_range, 96), | ||
684 | UNIPHIER_PINCTRL_GROUP_SINGLE(port121, port_range, 97), | ||
685 | UNIPHIER_PINCTRL_GROUP_SINGLE(port122, port_range, 98), | ||
686 | UNIPHIER_PINCTRL_GROUP_SINGLE(port123, port_range, 99), | ||
687 | UNIPHIER_PINCTRL_GROUP_SINGLE(port124, port_range, 100), | ||
688 | UNIPHIER_PINCTRL_GROUP_SINGLE(port125, port_range, 101), | ||
689 | UNIPHIER_PINCTRL_GROUP_SINGLE(port126, port_range, 102), | ||
690 | UNIPHIER_PINCTRL_GROUP_SINGLE(port127, port_range, 103), | ||
691 | UNIPHIER_PINCTRL_GROUP_SINGLE(port130, port_range, 104), | ||
692 | UNIPHIER_PINCTRL_GROUP_SINGLE(port131, port_range, 105), | ||
693 | UNIPHIER_PINCTRL_GROUP_SINGLE(port132, port_range, 106), | ||
694 | UNIPHIER_PINCTRL_GROUP_SINGLE(port133, port_range, 107), | ||
695 | UNIPHIER_PINCTRL_GROUP_SINGLE(port134, port_range, 108), | ||
696 | UNIPHIER_PINCTRL_GROUP_SINGLE(port135, port_range, 109), | ||
697 | UNIPHIER_PINCTRL_GROUP_SINGLE(port136, port_range, 110), | ||
698 | UNIPHIER_PINCTRL_GROUP_SINGLE(port137, port_range, 111), | ||
699 | UNIPHIER_PINCTRL_GROUP_SINGLE(port140, port_range, 112), | ||
700 | UNIPHIER_PINCTRL_GROUP_SINGLE(port141, port_range, 113), | ||
701 | UNIPHIER_PINCTRL_GROUP_SINGLE(port142, port_range, 114), | ||
702 | UNIPHIER_PINCTRL_GROUP_SINGLE(port143, port_range, 115), | ||
703 | UNIPHIER_PINCTRL_GROUP_SINGLE(port144, port_range, 116), | ||
704 | UNIPHIER_PINCTRL_GROUP_SINGLE(port145, port_range, 117), | ||
705 | UNIPHIER_PINCTRL_GROUP_SINGLE(port146, port_range, 118), | ||
706 | UNIPHIER_PINCTRL_GROUP_SINGLE(port147, port_range, 119), | ||
707 | UNIPHIER_PINCTRL_GROUP_SINGLE(port180, port_range, 144), | ||
708 | UNIPHIER_PINCTRL_GROUP_SINGLE(port181, port_range, 145), | ||
709 | UNIPHIER_PINCTRL_GROUP_SINGLE(port182, port_range, 146), | ||
710 | UNIPHIER_PINCTRL_GROUP_SINGLE(port183, port_range, 147), | ||
711 | UNIPHIER_PINCTRL_GROUP_SINGLE(port184, port_range, 148), | ||
712 | UNIPHIER_PINCTRL_GROUP_SINGLE(port185, port_range, 149), | ||
713 | UNIPHIER_PINCTRL_GROUP_SINGLE(port186, port_range, 150), | ||
714 | UNIPHIER_PINCTRL_GROUP_SINGLE(port187, port_range, 151), | ||
715 | UNIPHIER_PINCTRL_GROUP_SINGLE(port200, port_range, 160), | ||
716 | UNIPHIER_PINCTRL_GROUP_SINGLE(port201, port_range, 161), | ||
717 | UNIPHIER_PINCTRL_GROUP_SINGLE(port202, port_range, 162), | ||
718 | UNIPHIER_PINCTRL_GROUP_SINGLE(port203, port_range, 163), | ||
719 | UNIPHIER_PINCTRL_GROUP_SINGLE(port204, port_range, 164), | ||
720 | UNIPHIER_PINCTRL_GROUP_SINGLE(port205, port_range, 165), | ||
721 | UNIPHIER_PINCTRL_GROUP_SINGLE(port206, port_range, 166), | ||
722 | UNIPHIER_PINCTRL_GROUP_SINGLE(port207, port_range, 167), | ||
723 | UNIPHIER_PINCTRL_GROUP_SINGLE(port210, port_range, 168), | ||
724 | UNIPHIER_PINCTRL_GROUP_SINGLE(port211, port_range, 169), | ||
725 | UNIPHIER_PINCTRL_GROUP_SINGLE(port212, port_range, 170), | ||
726 | UNIPHIER_PINCTRL_GROUP_SINGLE(port213, port_range, 171), | ||
727 | UNIPHIER_PINCTRL_GROUP_SINGLE(port214, port_range, 172), | ||
728 | UNIPHIER_PINCTRL_GROUP_SINGLE(port215, port_range, 173), | ||
729 | UNIPHIER_PINCTRL_GROUP_SINGLE(port216, port_range, 174), | ||
730 | UNIPHIER_PINCTRL_GROUP_SINGLE(port217, port_range, 175), | ||
731 | UNIPHIER_PINCTRL_GROUP_SINGLE(port220, port_range, 176), | ||
732 | UNIPHIER_PINCTRL_GROUP_SINGLE(port221, port_range, 177), | ||
733 | UNIPHIER_PINCTRL_GROUP_SINGLE(port222, port_range, 178), | ||
734 | UNIPHIER_PINCTRL_GROUP_SINGLE(port223, port_range, 179), | ||
735 | UNIPHIER_PINCTRL_GROUP_SINGLE(port230, port_range, 184), | ||
736 | UNIPHIER_PINCTRL_GROUP_SINGLE(port231, port_range, 185), | ||
737 | UNIPHIER_PINCTRL_GROUP_SINGLE(port232, port_range, 186), | ||
738 | UNIPHIER_PINCTRL_GROUP_SINGLE(port233, port_range, 187), | ||
739 | UNIPHIER_PINCTRL_GROUP_SINGLE(port234, port_range, 188), | ||
740 | UNIPHIER_PINCTRL_GROUP_SINGLE(port235, port_range, 189), | ||
741 | UNIPHIER_PINCTRL_GROUP_SINGLE(port236, port_range, 190), | ||
742 | UNIPHIER_PINCTRL_GROUP_SINGLE(port237, port_range, 191), | ||
743 | UNIPHIER_PINCTRL_GROUP_SINGLE(port240, port_range, 192), | ||
744 | UNIPHIER_PINCTRL_GROUP_SINGLE(port241, port_range, 193), | ||
745 | UNIPHIER_PINCTRL_GROUP_SINGLE(port242, port_range, 194), | ||
746 | UNIPHIER_PINCTRL_GROUP_SINGLE(port243, port_range, 195), | ||
747 | UNIPHIER_PINCTRL_GROUP_SINGLE(port244, port_range, 196), | ||
748 | UNIPHIER_PINCTRL_GROUP_SINGLE(port245, port_range, 197), | ||
749 | UNIPHIER_PINCTRL_GROUP_SINGLE(port246, port_range, 198), | ||
750 | UNIPHIER_PINCTRL_GROUP_SINGLE(port247, port_range, 199), | ||
751 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq0, xirq, 0), | ||
752 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq1, xirq, 1), | ||
753 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq2, xirq, 2), | ||
754 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq3, xirq, 3), | ||
755 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq4, xirq, 4), | ||
756 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq5, xirq, 5), | ||
757 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq6, xirq, 6), | ||
758 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq7, xirq, 7), | ||
759 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq8, xirq, 8), | ||
760 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq9, xirq, 9), | ||
761 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq10, xirq, 10), | ||
762 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq11, xirq, 11), | ||
763 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq12, xirq, 12), | ||
764 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq13, xirq, 13), | ||
765 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq14, xirq, 14), | ||
766 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq15, xirq, 15), | ||
767 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq16, xirq, 16), | ||
768 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq17, xirq, 17), | ||
769 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq18, xirq, 18), | ||
770 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq19, xirq, 19), | ||
771 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq20, xirq, 20), | ||
772 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq21, xirq, 21), | ||
773 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq22, xirq, 22), | ||
774 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq23, xirq, 23), | ||
775 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq0b, xirq_alternatives, 0), | ||
776 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq1b, xirq_alternatives, 1), | ||
777 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq2b, xirq_alternatives, 2), | ||
778 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq3b, xirq_alternatives, 3), | ||
779 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq4b, xirq_alternatives, 4), | ||
780 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq5b, xirq_alternatives, 5), | ||
781 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq6b, xirq_alternatives, 6), | ||
782 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq7b, xirq_alternatives, 7), | ||
783 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq8b, xirq_alternatives, 8), | ||
784 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq9b, xirq_alternatives, 9), | ||
785 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq10b, xirq_alternatives, 10), | ||
786 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq11b, xirq_alternatives, 11), | ||
787 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq13b, xirq_alternatives, 12), | ||
788 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq14b, xirq_alternatives, 13), | ||
789 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq16b, xirq_alternatives, 14), | ||
790 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq17b, xirq_alternatives, 15), | ||
791 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq18b, xirq_alternatives, 16), | ||
792 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq19b, xirq_alternatives, 17), | ||
793 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq20b, xirq_alternatives, 18), | ||
794 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq21b, xirq_alternatives, 19), | ||
795 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq22b, xirq_alternatives, 20), | ||
796 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq23b, xirq_alternatives, 21), | ||
797 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq4c, xirq_alternatives, 22), | ||
798 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq5c, xirq_alternatives, 23), | ||
799 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq6c, xirq_alternatives, 24), | ||
800 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq7c, xirq_alternatives, 25), | ||
801 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq8c, xirq_alternatives, 26), | ||
802 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq9c, xirq_alternatives, 27), | ||
803 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq10c, xirq_alternatives, 28), | ||
804 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq11c, xirq_alternatives, 29), | ||
805 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq13c, xirq_alternatives, 30), | ||
806 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq14c, xirq_alternatives, 31), | ||
807 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq16c, xirq_alternatives, 32), | ||
808 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq17c, xirq_alternatives, 33), | ||
809 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq18c, xirq_alternatives, 34), | ||
810 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq19c, xirq_alternatives, 35), | ||
811 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq20c, xirq_alternatives, 36), | ||
812 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq21c, xirq_alternatives, 37), | ||
813 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq22c, xirq_alternatives, 38), | ||
814 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq23c, xirq_alternatives, 39), | ||
815 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq17d, xirq_alternatives, 40), | ||
816 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq18d, xirq_alternatives, 41), | ||
817 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq21d, xirq_alternatives, 42), | ||
818 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq22d, xirq_alternatives, 43), | ||
819 | }; | ||
820 | |||
821 | static const char * const emmc_groups[] = {"emmc", "emmc_dat8"}; | ||
822 | static const char * const ether_rmii_groups[] = {"ether_rmii"}; | ||
823 | static const char * const i2c0_groups[] = {"i2c0"}; | ||
824 | static const char * const i2c1_groups[] = {"i2c1"}; | ||
825 | static const char * const i2c3_groups[] = {"i2c3"}; | ||
826 | static const char * const i2c4_groups[] = {"i2c4"}; | ||
827 | static const char * const nand_groups[] = {"nand"}; | ||
828 | static const char * const system_bus_groups[] = {"system_bus", | ||
829 | "system_bus_cs1"}; | ||
830 | static const char * const uart0_groups[] = {"uart0"}; | ||
831 | static const char * const uart1_groups[] = {"uart1"}; | ||
832 | static const char * const uart2_groups[] = {"uart2"}; | ||
833 | static const char * const uart3_groups[] = {"uart3"}; | ||
834 | static const char * const usb0_groups[] = {"usb0"}; | ||
835 | static const char * const usb1_groups[] = {"usb1"}; | ||
836 | static const char * const usb2_groups[] = {"usb2"}; | ||
837 | static const char * const port_groups[] = { | ||
838 | "port00", "port01", "port02", "port03", | ||
839 | "port04", "port05", "port06", "port07", | ||
840 | "port10", "port11", "port12", "port13", | ||
841 | "port14", "port15", "port16", "port17", | ||
842 | "port20", "port21", "port22", "port23", | ||
843 | "port24", "port25", "port26", "port27", | ||
844 | "port30", "port31", "port32", | ||
845 | /* port33-52 missing */ "port53", | ||
846 | "port54", "port55", "port56", "port57", | ||
847 | "port60", /* port61-62 missing*/ "port63", | ||
848 | "port64", "port65", "port66", "port67", | ||
849 | "port70", "port71", "port72", "port73", | ||
850 | "port74", "port75", "port76", "port77", | ||
851 | "port80", "port81", "port82", "port83", | ||
852 | "port84", "port85", "port86", "port87", | ||
853 | "port90", "port91", "port92", "port93", | ||
854 | "port94", "port95", "port96", "port97", | ||
855 | "port100", "port101", "port102", "port103", | ||
856 | "port104", "port105", "port106", "port107", | ||
857 | /* port110-117 missing */ | ||
858 | "port120", "port121", "port122", "port123", | ||
859 | "port124", "port125", "port126", "port127", | ||
860 | "port130", "port131", "port132", "port133", | ||
861 | "port134", "port135", "port136", "port137", | ||
862 | "port140", "port141", "port142", "port143", | ||
863 | "port144", "port145", "port146", "port147", | ||
864 | /* port150-177 missing */ | ||
865 | "port180", "port181", "port182", "port183", | ||
866 | "port184", "port185", "port186", "port187", | ||
867 | /* port190-197 missing */ | ||
868 | "port200", "port201", "port202", "port203", | ||
869 | "port204", "port205", "port206", "port207", | ||
870 | "port210", "port211", "port212", "port213", | ||
871 | "port214", "port215", "port216", "port217", | ||
872 | "port220", "port221", "port222", "port223", | ||
873 | /* port224-227 missing */ | ||
874 | "port230", "port231", "port232", "port233", | ||
875 | "port234", "port235", "port236", "port237", | ||
876 | "port240", "port241", "port242", "port243", | ||
877 | "port244", "port245", "port246", "port247", | ||
878 | }; | ||
879 | static const char * const xirq_groups[] = { | ||
880 | "xirq0", "xirq1", "xirq2", "xirq3", | ||
881 | "xirq4", "xirq5", "xirq6", "xirq7", | ||
882 | "xirq8", "xirq9", "xirq10", "xirq11", | ||
883 | "xirq12", "xirq13", "xirq14", "xirq15", | ||
884 | "xirq16", "xirq17", "xirq18", "xirq19", | ||
885 | "xirq20", "xirq21", "xirq22", "xirq23", | ||
886 | "xirq0b", "xirq1b", "xirq2b", "xirq3b", | ||
887 | "xirq4b", "xirq5b", "xirq6b", "xirq7b", | ||
888 | "xirq8b", "xirq9b", "xirq10b", "xirq11b", | ||
889 | /* none */ "xirq13b", "xirq14b", /* none */ | ||
890 | "xirq16b", "xirq17b", "xirq18b", "xirq19b", | ||
891 | "xirq20b", "xirq21b", "xirq22b", "xirq23b", | ||
892 | "xirq4c", "xirq5c", "xirq6c", "xirq7c", | ||
893 | "xirq8c", "xirq9c", "xirq10c", "xirq11c", | ||
894 | /* none */ "xirq13c", "xirq14c", /* none */ | ||
895 | "xirq16c", "xirq17c", "xirq18c", "xirq19c", | ||
896 | "xirq20c", "xirq21c", "xirq22c", "xirq23c", | ||
897 | "xirq17d", "xirq18d", "xirq21d", "xirq22d", | ||
898 | }; | ||
899 | |||
900 | static const struct uniphier_pinmux_function uniphier_ld11_functions[] = { | ||
901 | UNIPHIER_PINMUX_FUNCTION(emmc), | ||
902 | UNIPHIER_PINMUX_FUNCTION(ether_rmii), | ||
903 | UNIPHIER_PINMUX_FUNCTION(i2c0), | ||
904 | UNIPHIER_PINMUX_FUNCTION(i2c1), | ||
905 | UNIPHIER_PINMUX_FUNCTION(i2c3), | ||
906 | UNIPHIER_PINMUX_FUNCTION(i2c4), | ||
907 | UNIPHIER_PINMUX_FUNCTION(nand), | ||
908 | UNIPHIER_PINMUX_FUNCTION(system_bus), | ||
909 | UNIPHIER_PINMUX_FUNCTION(uart0), | ||
910 | UNIPHIER_PINMUX_FUNCTION(uart1), | ||
911 | UNIPHIER_PINMUX_FUNCTION(uart2), | ||
912 | UNIPHIER_PINMUX_FUNCTION(uart3), | ||
913 | UNIPHIER_PINMUX_FUNCTION(usb0), | ||
914 | UNIPHIER_PINMUX_FUNCTION(usb1), | ||
915 | UNIPHIER_PINMUX_FUNCTION(usb2), | ||
916 | UNIPHIER_PINMUX_FUNCTION(port), | ||
917 | UNIPHIER_PINMUX_FUNCTION(xirq), | ||
918 | }; | ||
919 | |||
920 | static struct uniphier_pinctrl_socdata uniphier_ld11_pindata = { | ||
921 | .pins = uniphier_ld11_pins, | ||
922 | .npins = ARRAY_SIZE(uniphier_ld11_pins), | ||
923 | .groups = uniphier_ld11_groups, | ||
924 | .groups_count = ARRAY_SIZE(uniphier_ld11_groups), | ||
925 | .functions = uniphier_ld11_functions, | ||
926 | .functions_count = ARRAY_SIZE(uniphier_ld11_functions), | ||
927 | .caps = UNIPHIER_PINCTRL_CAPS_PERPIN_IECTRL, | ||
928 | }; | ||
929 | |||
930 | static int uniphier_ld11_pinctrl_probe(struct platform_device *pdev) | ||
931 | { | ||
932 | return uniphier_pinctrl_probe(pdev, &uniphier_ld11_pindata); | ||
933 | } | ||
934 | |||
935 | static const struct of_device_id uniphier_ld11_pinctrl_match[] = { | ||
936 | { .compatible = "socionext,uniphier-ld11-pinctrl" }, | ||
937 | { /* sentinel */ } | ||
938 | }; | ||
939 | MODULE_DEVICE_TABLE(of, uniphier_ld11_pinctrl_match); | ||
940 | |||
941 | static struct platform_driver uniphier_ld11_pinctrl_driver = { | ||
942 | .probe = uniphier_ld11_pinctrl_probe, | ||
943 | .driver = { | ||
944 | .name = "uniphier-ld11-pinctrl", | ||
945 | .of_match_table = uniphier_ld11_pinctrl_match, | ||
946 | }, | ||
947 | }; | ||
948 | module_platform_driver(uniphier_ld11_pinctrl_driver); | ||
949 | |||
950 | MODULE_AUTHOR("Masahiro Yamada <yamada.masahiro@socionext.com>"); | ||
951 | MODULE_DESCRIPTION("UniPhier PH1-LD11 pinctrl driver"); | ||
952 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c new file mode 100644 index 000000000000..aa8bd9794683 --- /dev/null +++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c | |||
@@ -0,0 +1,1050 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2016 Socionext Inc. | ||
3 | * Author: Masahiro Yamada <yamada.masahiro@socionext.com> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU General Public License as published by | ||
7 | * the Free Software Foundation; either version 2 of the License, or | ||
8 | * (at your option) any later version. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | */ | ||
15 | |||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/module.h> | ||
18 | #include <linux/pinctrl/pinctrl.h> | ||
19 | #include <linux/platform_device.h> | ||
20 | |||
21 | #include "pinctrl-uniphier.h" | ||
22 | |||
23 | static const struct pinctrl_pin_desc uniphier_ld20_pins[] = { | ||
24 | UNIPHIER_PINCTRL_PIN(0, "XECS1", 0, | ||
25 | 0, UNIPHIER_PIN_DRV_3BIT, | ||
26 | 0, UNIPHIER_PIN_PULL_UP), | ||
27 | UNIPHIER_PINCTRL_PIN(1, "ERXW", 1, | ||
28 | 1, UNIPHIER_PIN_DRV_3BIT, | ||
29 | 1, UNIPHIER_PIN_PULL_UP), | ||
30 | UNIPHIER_PINCTRL_PIN(2, "XERWE1", 2, | ||
31 | 2, UNIPHIER_PIN_DRV_3BIT, | ||
32 | 2, UNIPHIER_PIN_PULL_UP), | ||
33 | UNIPHIER_PINCTRL_PIN(3, "XNFWP", 3, | ||
34 | 3, UNIPHIER_PIN_DRV_3BIT, | ||
35 | 3, UNIPHIER_PIN_PULL_DOWN), | ||
36 | UNIPHIER_PINCTRL_PIN(4, "XNFCE0", 4, | ||
37 | 4, UNIPHIER_PIN_DRV_3BIT, | ||
38 | 4, UNIPHIER_PIN_PULL_UP), | ||
39 | UNIPHIER_PINCTRL_PIN(5, "NFRYBY0", 5, | ||
40 | 5, UNIPHIER_PIN_DRV_3BIT, | ||
41 | 5, UNIPHIER_PIN_PULL_UP), | ||
42 | UNIPHIER_PINCTRL_PIN(6, "XNFRE", 6, | ||
43 | 6, UNIPHIER_PIN_DRV_3BIT, | ||
44 | 6, UNIPHIER_PIN_PULL_UP), | ||
45 | UNIPHIER_PINCTRL_PIN(7, "XNFWE", 7, | ||
46 | 7, UNIPHIER_PIN_DRV_3BIT, | ||
47 | 7, UNIPHIER_PIN_PULL_UP), | ||
48 | UNIPHIER_PINCTRL_PIN(8, "NFALE", 8, | ||
49 | 8, UNIPHIER_PIN_DRV_3BIT, | ||
50 | 8, UNIPHIER_PIN_PULL_UP), | ||
51 | UNIPHIER_PINCTRL_PIN(9, "NFCLE", 9, | ||
52 | 9, UNIPHIER_PIN_DRV_3BIT, | ||
53 | 9, UNIPHIER_PIN_PULL_UP), | ||
54 | UNIPHIER_PINCTRL_PIN(10, "NFD0", 10, | ||
55 | 10, UNIPHIER_PIN_DRV_3BIT, | ||
56 | 10, UNIPHIER_PIN_PULL_UP), | ||
57 | UNIPHIER_PINCTRL_PIN(11, "NFD1", 11, | ||
58 | 11, UNIPHIER_PIN_DRV_3BIT, | ||
59 | 11, UNIPHIER_PIN_PULL_UP), | ||
60 | UNIPHIER_PINCTRL_PIN(12, "NFD2", 12, | ||
61 | 12, UNIPHIER_PIN_DRV_3BIT, | ||
62 | 12, UNIPHIER_PIN_PULL_UP), | ||
63 | UNIPHIER_PINCTRL_PIN(13, "NFD3", 13, | ||
64 | 13, UNIPHIER_PIN_DRV_3BIT, | ||
65 | 13, UNIPHIER_PIN_PULL_UP), | ||
66 | UNIPHIER_PINCTRL_PIN(14, "NFD4", 14, | ||
67 | 14, UNIPHIER_PIN_DRV_3BIT, | ||
68 | 14, UNIPHIER_PIN_PULL_UP), | ||
69 | UNIPHIER_PINCTRL_PIN(15, "NFD5", 15, | ||
70 | 15, UNIPHIER_PIN_DRV_3BIT, | ||
71 | 15, UNIPHIER_PIN_PULL_UP), | ||
72 | UNIPHIER_PINCTRL_PIN(16, "NFD6", 16, | ||
73 | 16, UNIPHIER_PIN_DRV_3BIT, | ||
74 | 16, UNIPHIER_PIN_PULL_UP), | ||
75 | UNIPHIER_PINCTRL_PIN(17, "NFD7", 17, | ||
76 | 17, UNIPHIER_PIN_DRV_3BIT, | ||
77 | 17, UNIPHIER_PIN_PULL_UP), | ||
78 | UNIPHIER_PINCTRL_PIN(18, "XERST", 18, | ||
79 | 0, UNIPHIER_PIN_DRV_2BIT, | ||
80 | 18, UNIPHIER_PIN_PULL_UP), | ||
81 | UNIPHIER_PINCTRL_PIN(19, "MMCCLK", 19, | ||
82 | 1, UNIPHIER_PIN_DRV_2BIT, | ||
83 | 19, UNIPHIER_PIN_PULL_UP), | ||
84 | UNIPHIER_PINCTRL_PIN(20, "MMCCMD", 20, | ||
85 | 2, UNIPHIER_PIN_DRV_2BIT, | ||
86 | 20, UNIPHIER_PIN_PULL_UP), | ||
87 | UNIPHIER_PINCTRL_PIN(21, "MMCDS", 21, | ||
88 | 3, UNIPHIER_PIN_DRV_2BIT, | ||
89 | 21, UNIPHIER_PIN_PULL_UP), | ||
90 | UNIPHIER_PINCTRL_PIN(22, "MMCDAT0", 22, | ||
91 | 4, UNIPHIER_PIN_DRV_2BIT, | ||
92 | 22, UNIPHIER_PIN_PULL_UP), | ||
93 | UNIPHIER_PINCTRL_PIN(23, "MMCDAT1", 23, | ||
94 | 5, UNIPHIER_PIN_DRV_2BIT, | ||
95 | 23, UNIPHIER_PIN_PULL_UP), | ||
96 | UNIPHIER_PINCTRL_PIN(24, "MMCDAT2", 24, | ||
97 | 6, UNIPHIER_PIN_DRV_2BIT, | ||
98 | 24, UNIPHIER_PIN_PULL_UP), | ||
99 | UNIPHIER_PINCTRL_PIN(25, "MMCDAT3", 25, | ||
100 | 7, UNIPHIER_PIN_DRV_2BIT, | ||
101 | 25, UNIPHIER_PIN_PULL_UP), | ||
102 | UNIPHIER_PINCTRL_PIN(26, "MMCDAT4", 26, | ||
103 | 8, UNIPHIER_PIN_DRV_2BIT, | ||
104 | 26, UNIPHIER_PIN_PULL_UP), | ||
105 | UNIPHIER_PINCTRL_PIN(27, "MMCDAT5", 27, | ||
106 | 9, UNIPHIER_PIN_DRV_2BIT, | ||
107 | 27, UNIPHIER_PIN_PULL_UP), | ||
108 | UNIPHIER_PINCTRL_PIN(28, "MMCDAT6", 28, | ||
109 | 10, UNIPHIER_PIN_DRV_2BIT, | ||
110 | 28, UNIPHIER_PIN_PULL_UP), | ||
111 | UNIPHIER_PINCTRL_PIN(29, "MMCDAT7", 29, | ||
112 | 11, UNIPHIER_PIN_DRV_2BIT, | ||
113 | 29, UNIPHIER_PIN_PULL_UP), | ||
114 | UNIPHIER_PINCTRL_PIN(30, "MDC", 30, | ||
115 | 18, UNIPHIER_PIN_DRV_3BIT, | ||
116 | 30, UNIPHIER_PIN_PULL_DOWN), | ||
117 | UNIPHIER_PINCTRL_PIN(31, "MDIO", 31, | ||
118 | 19, UNIPHIER_PIN_DRV_3BIT, | ||
119 | 31, UNIPHIER_PIN_PULL_DOWN), | ||
120 | UNIPHIER_PINCTRL_PIN(32, "MDIO_INTL", 32, | ||
121 | 20, UNIPHIER_PIN_DRV_3BIT, | ||
122 | 32, UNIPHIER_PIN_PULL_DOWN), | ||
123 | UNIPHIER_PINCTRL_PIN(33, "PHYRSTL", 33, | ||
124 | 21, UNIPHIER_PIN_DRV_3BIT, | ||
125 | 33, UNIPHIER_PIN_PULL_DOWN), | ||
126 | UNIPHIER_PINCTRL_PIN(34, "RGMII_RXCLK", 34, | ||
127 | 22, UNIPHIER_PIN_DRV_3BIT, | ||
128 | 34, UNIPHIER_PIN_PULL_DOWN), | ||
129 | UNIPHIER_PINCTRL_PIN(35, "RGMII_RXD0", 35, | ||
130 | 23, UNIPHIER_PIN_DRV_3BIT, | ||
131 | 35, UNIPHIER_PIN_PULL_DOWN), | ||
132 | UNIPHIER_PINCTRL_PIN(36, "RGMII_RXD1", 36, | ||
133 | 24, UNIPHIER_PIN_DRV_3BIT, | ||
134 | 36, UNIPHIER_PIN_PULL_DOWN), | ||
135 | UNIPHIER_PINCTRL_PIN(37, "RGMII_RXD2", 37, | ||
136 | 25, UNIPHIER_PIN_DRV_3BIT, | ||
137 | 37, UNIPHIER_PIN_PULL_DOWN), | ||
138 | UNIPHIER_PINCTRL_PIN(38, "RGMII_RXD3", 38, | ||
139 | 26, UNIPHIER_PIN_DRV_3BIT, | ||
140 | 38, UNIPHIER_PIN_PULL_DOWN), | ||
141 | UNIPHIER_PINCTRL_PIN(39, "RGMII_RXCTL", 39, | ||
142 | 27, UNIPHIER_PIN_DRV_3BIT, | ||
143 | 39, UNIPHIER_PIN_PULL_DOWN), | ||
144 | UNIPHIER_PINCTRL_PIN(40, "RGMII_TXCLK", 40, | ||
145 | 28, UNIPHIER_PIN_DRV_3BIT, | ||
146 | 40, UNIPHIER_PIN_PULL_DOWN), | ||
147 | UNIPHIER_PINCTRL_PIN(41, "RGMII_TXD0", 41, | ||
148 | 29, UNIPHIER_PIN_DRV_3BIT, | ||
149 | 41, UNIPHIER_PIN_PULL_DOWN), | ||
150 | UNIPHIER_PINCTRL_PIN(42, "RGMII_TXD1", 42, | ||
151 | 30, UNIPHIER_PIN_DRV_3BIT, | ||
152 | 42, UNIPHIER_PIN_PULL_DOWN), | ||
153 | UNIPHIER_PINCTRL_PIN(43, "RGMII_TXD2", 43, | ||
154 | 31, UNIPHIER_PIN_DRV_3BIT, | ||
155 | 43, UNIPHIER_PIN_PULL_DOWN), | ||
156 | UNIPHIER_PINCTRL_PIN(44, "RGMII_TXD3", 44, | ||
157 | 32, UNIPHIER_PIN_DRV_3BIT, | ||
158 | 44, UNIPHIER_PIN_PULL_DOWN), | ||
159 | UNIPHIER_PINCTRL_PIN(45, "RGMII_TXCTL", 45, | ||
160 | 33, UNIPHIER_PIN_DRV_3BIT, | ||
161 | 45, UNIPHIER_PIN_PULL_DOWN), | ||
162 | UNIPHIER_PINCTRL_PIN(46, "USB0VBUS", 46, | ||
163 | 34, UNIPHIER_PIN_DRV_3BIT, | ||
164 | 46, UNIPHIER_PIN_PULL_DOWN), | ||
165 | UNIPHIER_PINCTRL_PIN(47, "USB0OD", 47, | ||
166 | 35, UNIPHIER_PIN_DRV_3BIT, | ||
167 | 47, UNIPHIER_PIN_PULL_UP), | ||
168 | UNIPHIER_PINCTRL_PIN(48, "USB1VBUS", 48, | ||
169 | 36, UNIPHIER_PIN_DRV_3BIT, | ||
170 | 48, UNIPHIER_PIN_PULL_DOWN), | ||
171 | UNIPHIER_PINCTRL_PIN(49, "USB1OD", 49, | ||
172 | 37, UNIPHIER_PIN_DRV_3BIT, | ||
173 | 49, UNIPHIER_PIN_PULL_UP), | ||
174 | UNIPHIER_PINCTRL_PIN(50, "USB2VBUS", 50, | ||
175 | 38, UNIPHIER_PIN_DRV_3BIT, | ||
176 | 50, UNIPHIER_PIN_PULL_DOWN), | ||
177 | UNIPHIER_PINCTRL_PIN(51, "USB2OD", 51, | ||
178 | 39, UNIPHIER_PIN_DRV_3BIT, | ||
179 | 51, UNIPHIER_PIN_PULL_UP), | ||
180 | UNIPHIER_PINCTRL_PIN(52, "USB3VBUS", 52, | ||
181 | 40, UNIPHIER_PIN_DRV_3BIT, | ||
182 | 52, UNIPHIER_PIN_PULL_DOWN), | ||
183 | UNIPHIER_PINCTRL_PIN(53, "USB3OD", 53, | ||
184 | 41, UNIPHIER_PIN_DRV_3BIT, | ||
185 | 53, UNIPHIER_PIN_PULL_UP), | ||
186 | UNIPHIER_PINCTRL_PIN(54, "TXD0", 54, | ||
187 | 42, UNIPHIER_PIN_DRV_3BIT, | ||
188 | 54, UNIPHIER_PIN_PULL_UP), | ||
189 | UNIPHIER_PINCTRL_PIN(55, "RXD0", 55, | ||
190 | 43, UNIPHIER_PIN_DRV_3BIT, | ||
191 | 55, UNIPHIER_PIN_PULL_UP), | ||
192 | UNIPHIER_PINCTRL_PIN(56, "SPISYNC0", 56, | ||
193 | 44, UNIPHIER_PIN_DRV_3BIT, | ||
194 | 56, UNIPHIER_PIN_PULL_DOWN), | ||
195 | UNIPHIER_PINCTRL_PIN(57, "SPISCLK0", 57, | ||
196 | 45, UNIPHIER_PIN_DRV_3BIT, | ||
197 | 57, UNIPHIER_PIN_PULL_DOWN), | ||
198 | UNIPHIER_PINCTRL_PIN(58, "SPITXD0", 58, | ||
199 | 46, UNIPHIER_PIN_DRV_3BIT, | ||
200 | 58, UNIPHIER_PIN_PULL_DOWN), | ||
201 | UNIPHIER_PINCTRL_PIN(59, "SPIRXD0", 59, | ||
202 | 47, UNIPHIER_PIN_DRV_3BIT, | ||
203 | 59, UNIPHIER_PIN_PULL_DOWN), | ||
204 | UNIPHIER_PINCTRL_PIN(60, "AGCI", 60, | ||
205 | 48, UNIPHIER_PIN_DRV_3BIT, | ||
206 | 60, UNIPHIER_PIN_PULL_DOWN), | ||
207 | UNIPHIER_PINCTRL_PIN(61, "DMDSDA0", 61, | ||
208 | -1, UNIPHIER_PIN_DRV_FIXED4, | ||
209 | -1, UNIPHIER_PIN_PULL_NONE), | ||
210 | UNIPHIER_PINCTRL_PIN(62, "DMDSCL0", 62, | ||
211 | -1, UNIPHIER_PIN_DRV_FIXED4, | ||
212 | -1, UNIPHIER_PIN_PULL_NONE), | ||
213 | UNIPHIER_PINCTRL_PIN(63, "SDA0", 63, | ||
214 | -1, UNIPHIER_PIN_DRV_FIXED4, | ||
215 | -1, UNIPHIER_PIN_PULL_NONE), | ||
216 | UNIPHIER_PINCTRL_PIN(64, "SCL0", 64, | ||
217 | -1, UNIPHIER_PIN_DRV_FIXED4, | ||
218 | -1, UNIPHIER_PIN_PULL_NONE), | ||
219 | UNIPHIER_PINCTRL_PIN(65, "SDA1", 65, | ||
220 | -1, UNIPHIER_PIN_DRV_FIXED4, | ||
221 | -1, UNIPHIER_PIN_PULL_NONE), | ||
222 | UNIPHIER_PINCTRL_PIN(66, "SCL1", 66, | ||
223 | -1, UNIPHIER_PIN_DRV_FIXED4, | ||
224 | -1, UNIPHIER_PIN_PULL_NONE), | ||
225 | UNIPHIER_PINCTRL_PIN(67, "HIN", 67, | ||
226 | -1, UNIPHIER_PIN_DRV_FIXED4, | ||
227 | -1, UNIPHIER_PIN_PULL_NONE), | ||
228 | UNIPHIER_PINCTRL_PIN(68, "VIN", 68, | ||
229 | -1, UNIPHIER_PIN_DRV_FIXED4, | ||
230 | -1, UNIPHIER_PIN_PULL_NONE), | ||
231 | UNIPHIER_PINCTRL_PIN(69, "PCA00", 69, | ||
232 | 49, UNIPHIER_PIN_DRV_3BIT, | ||
233 | 69, UNIPHIER_PIN_PULL_DOWN), | ||
234 | UNIPHIER_PINCTRL_PIN(70, "PCA01", 70, | ||
235 | 50, UNIPHIER_PIN_DRV_3BIT, | ||
236 | 70, UNIPHIER_PIN_PULL_DOWN), | ||
237 | UNIPHIER_PINCTRL_PIN(71, "PCA02", 71, | ||
238 | 51, UNIPHIER_PIN_DRV_3BIT, | ||
239 | 71, UNIPHIER_PIN_PULL_DOWN), | ||
240 | UNIPHIER_PINCTRL_PIN(72, "PCA03", 72, | ||
241 | 52, UNIPHIER_PIN_DRV_3BIT, | ||
242 | 72, UNIPHIER_PIN_PULL_DOWN), | ||
243 | UNIPHIER_PINCTRL_PIN(73, "PCA04", 73, | ||
244 | 53, UNIPHIER_PIN_DRV_3BIT, | ||
245 | 73, UNIPHIER_PIN_PULL_DOWN), | ||
246 | UNIPHIER_PINCTRL_PIN(74, "PCA05", 74, | ||
247 | 54, UNIPHIER_PIN_DRV_3BIT, | ||
248 | 74, UNIPHIER_PIN_PULL_DOWN), | ||
249 | UNIPHIER_PINCTRL_PIN(75, "PCA06", 75, | ||
250 | 55, UNIPHIER_PIN_DRV_3BIT, | ||
251 | 75, UNIPHIER_PIN_PULL_DOWN), | ||
252 | UNIPHIER_PINCTRL_PIN(76, "PCA07", 76, | ||
253 | 56, UNIPHIER_PIN_DRV_3BIT, | ||
254 | 76, UNIPHIER_PIN_PULL_DOWN), | ||
255 | UNIPHIER_PINCTRL_PIN(77, "PCA08", 77, | ||
256 | 57, UNIPHIER_PIN_DRV_3BIT, | ||
257 | 77, UNIPHIER_PIN_PULL_DOWN), | ||
258 | UNIPHIER_PINCTRL_PIN(78, "PCA09", 78, | ||
259 | 58, UNIPHIER_PIN_DRV_3BIT, | ||
260 | 78, UNIPHIER_PIN_PULL_DOWN), | ||
261 | UNIPHIER_PINCTRL_PIN(79, "PCA10", 79, | ||
262 | 59, UNIPHIER_PIN_DRV_3BIT, | ||
263 | 79, UNIPHIER_PIN_PULL_DOWN), | ||
264 | UNIPHIER_PINCTRL_PIN(80, "PCA11", 80, | ||
265 | 60, UNIPHIER_PIN_DRV_3BIT, | ||
266 | 80, UNIPHIER_PIN_PULL_DOWN), | ||
267 | UNIPHIER_PINCTRL_PIN(81, "PCA12", 81, | ||
268 | 61, UNIPHIER_PIN_DRV_3BIT, | ||
269 | 81, UNIPHIER_PIN_PULL_DOWN), | ||
270 | UNIPHIER_PINCTRL_PIN(82, "PCA13", 82, | ||
271 | 62, UNIPHIER_PIN_DRV_3BIT, | ||
272 | 82, UNIPHIER_PIN_PULL_DOWN), | ||
273 | UNIPHIER_PINCTRL_PIN(83, "PCA14", 83, | ||
274 | 63, UNIPHIER_PIN_DRV_3BIT, | ||
275 | 83, UNIPHIER_PIN_PULL_DOWN), | ||
276 | UNIPHIER_PINCTRL_PIN(84, "PC0READY", 84, | ||
277 | 0, UNIPHIER_PIN_DRV_1BIT, | ||
278 | 84, UNIPHIER_PIN_PULL_DOWN), | ||
279 | UNIPHIER_PINCTRL_PIN(85, "PC0CD1", 85, | ||
280 | 1, UNIPHIER_PIN_DRV_1BIT, | ||
281 | 85, UNIPHIER_PIN_PULL_DOWN), | ||
282 | UNIPHIER_PINCTRL_PIN(86, "PC0CD2", 86, | ||
283 | 2, UNIPHIER_PIN_DRV_1BIT, | ||
284 | 86, UNIPHIER_PIN_PULL_DOWN), | ||
285 | UNIPHIER_PINCTRL_PIN(87, "PC0WAIT", 87, | ||
286 | 3, UNIPHIER_PIN_DRV_1BIT, | ||
287 | 87, UNIPHIER_PIN_PULL_DOWN), | ||
288 | UNIPHIER_PINCTRL_PIN(88, "PC0RESET", 88, | ||
289 | 4, UNIPHIER_PIN_DRV_1BIT, | ||
290 | 88, UNIPHIER_PIN_PULL_DOWN), | ||
291 | UNIPHIER_PINCTRL_PIN(89, "PC0CE1", 89, | ||
292 | 5, UNIPHIER_PIN_DRV_1BIT, | ||
293 | 89, UNIPHIER_PIN_PULL_DOWN), | ||
294 | UNIPHIER_PINCTRL_PIN(90, "PC0WE", 90, | ||
295 | 6, UNIPHIER_PIN_DRV_1BIT, | ||
296 | 90, UNIPHIER_PIN_PULL_DOWN), | ||
297 | UNIPHIER_PINCTRL_PIN(91, "PC0OE", 91, | ||
298 | 7, UNIPHIER_PIN_DRV_1BIT, | ||
299 | 91, UNIPHIER_PIN_PULL_DOWN), | ||
300 | UNIPHIER_PINCTRL_PIN(92, "PC0IOWR", 92, | ||
301 | 8, UNIPHIER_PIN_DRV_1BIT, | ||
302 | 92, UNIPHIER_PIN_PULL_DOWN), | ||
303 | UNIPHIER_PINCTRL_PIN(93, "PC0IORD", 93, | ||
304 | 9, UNIPHIER_PIN_DRV_1BIT, | ||
305 | 93, UNIPHIER_PIN_PULL_DOWN), | ||
306 | UNIPHIER_PINCTRL_PIN(94, "PCD00", 94, | ||
307 | 10, UNIPHIER_PIN_DRV_1BIT, | ||
308 | 94, UNIPHIER_PIN_PULL_DOWN), | ||
309 | UNIPHIER_PINCTRL_PIN(95, "PCD01", 95, | ||
310 | 11, UNIPHIER_PIN_DRV_1BIT, | ||
311 | 95, UNIPHIER_PIN_PULL_DOWN), | ||
312 | UNIPHIER_PINCTRL_PIN(96, "PCD02", 96, | ||
313 | 12, UNIPHIER_PIN_DRV_1BIT, | ||
314 | 96, UNIPHIER_PIN_PULL_DOWN), | ||
315 | UNIPHIER_PINCTRL_PIN(97, "PCD03", 97, | ||
316 | 13, UNIPHIER_PIN_DRV_1BIT, | ||
317 | 97, UNIPHIER_PIN_PULL_DOWN), | ||
318 | UNIPHIER_PINCTRL_PIN(98, "PCD04", 98, | ||
319 | 14, UNIPHIER_PIN_DRV_1BIT, | ||
320 | 98, UNIPHIER_PIN_PULL_DOWN), | ||
321 | UNIPHIER_PINCTRL_PIN(99, "PCD05", 99, | ||
322 | 15, UNIPHIER_PIN_DRV_1BIT, | ||
323 | 99, UNIPHIER_PIN_PULL_DOWN), | ||
324 | UNIPHIER_PINCTRL_PIN(100, "PCD06", 100, | ||
325 | 16, UNIPHIER_PIN_DRV_1BIT, | ||
326 | 100, UNIPHIER_PIN_PULL_DOWN), | ||
327 | UNIPHIER_PINCTRL_PIN(101, "PCD07", 101, | ||
328 | 17, UNIPHIER_PIN_DRV_1BIT, | ||
329 | 101, UNIPHIER_PIN_PULL_DOWN), | ||
330 | UNIPHIER_PINCTRL_PIN(102, "HS0BCLKIN", 102, | ||
331 | 18, UNIPHIER_PIN_DRV_1BIT, | ||
332 | 102, UNIPHIER_PIN_PULL_DOWN), | ||
333 | UNIPHIER_PINCTRL_PIN(103, "HS0SYNCIN", 103, | ||
334 | 19, UNIPHIER_PIN_DRV_1BIT, | ||
335 | 103, UNIPHIER_PIN_PULL_DOWN), | ||
336 | UNIPHIER_PINCTRL_PIN(104, "HS0VALIN", 104, | ||
337 | 20, UNIPHIER_PIN_DRV_1BIT, | ||
338 | 104, UNIPHIER_PIN_PULL_DOWN), | ||
339 | UNIPHIER_PINCTRL_PIN(105, "HS0DIN0", 105, | ||
340 | 21, UNIPHIER_PIN_DRV_1BIT, | ||
341 | 105, UNIPHIER_PIN_PULL_DOWN), | ||
342 | UNIPHIER_PINCTRL_PIN(106, "HS0DIN1", 106, | ||
343 | 22, UNIPHIER_PIN_DRV_1BIT, | ||
344 | 106, UNIPHIER_PIN_PULL_DOWN), | ||
345 | UNIPHIER_PINCTRL_PIN(107, "HS0DIN2", 107, | ||
346 | 23, UNIPHIER_PIN_DRV_1BIT, | ||
347 | 107, UNIPHIER_PIN_PULL_DOWN), | ||
348 | UNIPHIER_PINCTRL_PIN(108, "HS0DIN3", 108, | ||
349 | 24, UNIPHIER_PIN_DRV_1BIT, | ||
350 | 108, UNIPHIER_PIN_PULL_DOWN), | ||
351 | UNIPHIER_PINCTRL_PIN(109, "HS0DIN4", 109, | ||
352 | 25, UNIPHIER_PIN_DRV_1BIT, | ||
353 | 109, UNIPHIER_PIN_PULL_DOWN), | ||
354 | UNIPHIER_PINCTRL_PIN(110, "HS0DIN5", 110, | ||
355 | 26, UNIPHIER_PIN_DRV_1BIT, | ||
356 | 110, UNIPHIER_PIN_PULL_DOWN), | ||
357 | UNIPHIER_PINCTRL_PIN(111, "HS0DIN6", 111, | ||
358 | 27, UNIPHIER_PIN_DRV_1BIT, | ||
359 | 111, UNIPHIER_PIN_PULL_DOWN), | ||
360 | UNIPHIER_PINCTRL_PIN(112, "HS0DIN7", 112, | ||
361 | 28, UNIPHIER_PIN_DRV_1BIT, | ||
362 | 112, UNIPHIER_PIN_PULL_DOWN), | ||
363 | UNIPHIER_PINCTRL_PIN(113, "HS0BCLKOUT", 113, | ||
364 | 64, UNIPHIER_PIN_DRV_3BIT, | ||
365 | 113, UNIPHIER_PIN_PULL_DOWN), | ||
366 | UNIPHIER_PINCTRL_PIN(114, "HS0SYNCOUT", 114, | ||
367 | 65, UNIPHIER_PIN_DRV_3BIT, | ||
368 | 114, UNIPHIER_PIN_PULL_DOWN), | ||
369 | UNIPHIER_PINCTRL_PIN(115, "HS0VALOUT", 115, | ||
370 | 66, UNIPHIER_PIN_DRV_3BIT, | ||
371 | 115, UNIPHIER_PIN_PULL_DOWN), | ||
372 | UNIPHIER_PINCTRL_PIN(116, "HS0DOUT0", 116, | ||
373 | 67, UNIPHIER_PIN_DRV_3BIT, | ||
374 | 116, UNIPHIER_PIN_PULL_DOWN), | ||
375 | UNIPHIER_PINCTRL_PIN(117, "HS0DOUT1", 117, | ||
376 | 68, UNIPHIER_PIN_DRV_3BIT, | ||
377 | 117, UNIPHIER_PIN_PULL_DOWN), | ||
378 | UNIPHIER_PINCTRL_PIN(118, "HS0DOUT2", 118, | ||
379 | 69, UNIPHIER_PIN_DRV_3BIT, | ||
380 | 118, UNIPHIER_PIN_PULL_DOWN), | ||
381 | UNIPHIER_PINCTRL_PIN(119, "HS0DOUT3", 119, | ||
382 | 70, UNIPHIER_PIN_DRV_3BIT, | ||
383 | 119, UNIPHIER_PIN_PULL_DOWN), | ||
384 | UNIPHIER_PINCTRL_PIN(120, "HS0DOUT4", 120, | ||
385 | 71, UNIPHIER_PIN_DRV_3BIT, | ||
386 | 120, UNIPHIER_PIN_PULL_DOWN), | ||
387 | UNIPHIER_PINCTRL_PIN(121, "HS0DOUT5", 121, | ||
388 | 72, UNIPHIER_PIN_DRV_3BIT, | ||
389 | 121, UNIPHIER_PIN_PULL_DOWN), | ||
390 | UNIPHIER_PINCTRL_PIN(122, "HS0DOUT6", 122, | ||
391 | 73, UNIPHIER_PIN_DRV_3BIT, | ||
392 | 122, UNIPHIER_PIN_PULL_DOWN), | ||
393 | UNIPHIER_PINCTRL_PIN(123, "HS0DOUT7", 123, | ||
394 | 74, UNIPHIER_PIN_DRV_3BIT, | ||
395 | 123, UNIPHIER_PIN_PULL_DOWN), | ||
396 | UNIPHIER_PINCTRL_PIN(124, "HS1BCLKIN", 124, | ||
397 | 75, UNIPHIER_PIN_DRV_3BIT, | ||
398 | 124, UNIPHIER_PIN_PULL_DOWN), | ||
399 | UNIPHIER_PINCTRL_PIN(125, "HS1SYNCIN", 125, | ||
400 | 76, UNIPHIER_PIN_DRV_3BIT, | ||
401 | 125, UNIPHIER_PIN_PULL_DOWN), | ||
402 | UNIPHIER_PINCTRL_PIN(126, "HS1VALIN", 126, | ||
403 | 77, UNIPHIER_PIN_DRV_3BIT, | ||
404 | 126, UNIPHIER_PIN_PULL_DOWN), | ||
405 | UNIPHIER_PINCTRL_PIN(127, "HS1DIN0", 127, | ||
406 | 78, UNIPHIER_PIN_DRV_3BIT, | ||
407 | 127, UNIPHIER_PIN_PULL_DOWN), | ||
408 | UNIPHIER_PINCTRL_PIN(128, "HS1DIN1", 128, | ||
409 | 79, UNIPHIER_PIN_DRV_3BIT, | ||
410 | 128, UNIPHIER_PIN_PULL_DOWN), | ||
411 | UNIPHIER_PINCTRL_PIN(129, "HS1DIN2", 129, | ||
412 | 80, UNIPHIER_PIN_DRV_3BIT, | ||
413 | 129, UNIPHIER_PIN_PULL_DOWN), | ||
414 | UNIPHIER_PINCTRL_PIN(130, "HS1DIN3", 130, | ||
415 | 81, UNIPHIER_PIN_DRV_3BIT, | ||
416 | 130, UNIPHIER_PIN_PULL_DOWN), | ||
417 | UNIPHIER_PINCTRL_PIN(131, "HS1DIN4", 131, | ||
418 | 82, UNIPHIER_PIN_DRV_3BIT, | ||
419 | 131, UNIPHIER_PIN_PULL_DOWN), | ||
420 | UNIPHIER_PINCTRL_PIN(132, "HS1DIN5", 132, | ||
421 | 83, UNIPHIER_PIN_DRV_3BIT, | ||
422 | 132, UNIPHIER_PIN_PULL_DOWN), | ||
423 | UNIPHIER_PINCTRL_PIN(133, "HS1DIN6", 133, | ||
424 | 84, UNIPHIER_PIN_DRV_3BIT, | ||
425 | 133, UNIPHIER_PIN_PULL_DOWN), | ||
426 | UNIPHIER_PINCTRL_PIN(134, "HS1DIN7", 134, | ||
427 | 85, UNIPHIER_PIN_DRV_3BIT, | ||
428 | 134, UNIPHIER_PIN_PULL_DOWN), | ||
429 | UNIPHIER_PINCTRL_PIN(135, "AO1IEC", 135, | ||
430 | 86, UNIPHIER_PIN_DRV_3BIT, | ||
431 | 135, UNIPHIER_PIN_PULL_DOWN), | ||
432 | UNIPHIER_PINCTRL_PIN(136, "AO1ARC", 136, | ||
433 | 87, UNIPHIER_PIN_DRV_3BIT, | ||
434 | 136, UNIPHIER_PIN_PULL_DOWN), | ||
435 | UNIPHIER_PINCTRL_PIN(137, "AO1DACCK", 137, | ||
436 | 88, UNIPHIER_PIN_DRV_3BIT, | ||
437 | 137, UNIPHIER_PIN_PULL_DOWN), | ||
438 | UNIPHIER_PINCTRL_PIN(138, "AO1BCK", 138, | ||
439 | 89, UNIPHIER_PIN_DRV_3BIT, | ||
440 | 138, UNIPHIER_PIN_PULL_DOWN), | ||
441 | UNIPHIER_PINCTRL_PIN(139, "AO1LRCK", 139, | ||
442 | 90, UNIPHIER_PIN_DRV_3BIT, | ||
443 | 139, UNIPHIER_PIN_PULL_DOWN), | ||
444 | UNIPHIER_PINCTRL_PIN(140, "AO1D0", 140, | ||
445 | 91, UNIPHIER_PIN_DRV_3BIT, | ||
446 | 140, UNIPHIER_PIN_PULL_DOWN), | ||
447 | UNIPHIER_PINCTRL_PIN(141, "AO1D1", 141, | ||
448 | 92, UNIPHIER_PIN_DRV_3BIT, | ||
449 | 141, UNIPHIER_PIN_PULL_DOWN), | ||
450 | UNIPHIER_PINCTRL_PIN(142, "AO1D2", 142, | ||
451 | 93, UNIPHIER_PIN_DRV_3BIT, | ||
452 | 142, UNIPHIER_PIN_PULL_DOWN), | ||
453 | UNIPHIER_PINCTRL_PIN(143, "HTPDN0", 143, | ||
454 | 94, UNIPHIER_PIN_DRV_3BIT, | ||
455 | 143, UNIPHIER_PIN_PULL_DOWN), | ||
456 | UNIPHIER_PINCTRL_PIN(144, "LOCKN0", 144, | ||
457 | 95, UNIPHIER_PIN_DRV_3BIT, | ||
458 | 144, UNIPHIER_PIN_PULL_DOWN), | ||
459 | UNIPHIER_PINCTRL_PIN(145, "HTPDN1", 145, | ||
460 | 96, UNIPHIER_PIN_DRV_3BIT, | ||
461 | 145, UNIPHIER_PIN_PULL_DOWN), | ||
462 | UNIPHIER_PINCTRL_PIN(146, "LOCKN1", 146, | ||
463 | 97, UNIPHIER_PIN_DRV_3BIT, | ||
464 | 146, UNIPHIER_PIN_PULL_DOWN), | ||
465 | UNIPHIER_PINCTRL_PIN(147, "PWMA", 147, | ||
466 | 98, UNIPHIER_PIN_DRV_3BIT, | ||
467 | 147, UNIPHIER_PIN_PULL_DOWN), | ||
468 | UNIPHIER_PINCTRL_PIN(148, "LR_GOUT", 148, | ||
469 | 99, UNIPHIER_PIN_DRV_3BIT, | ||
470 | 148, UNIPHIER_PIN_PULL_DOWN), | ||
471 | UNIPHIER_PINCTRL_PIN(149, "XIRQ0", 149, | ||
472 | 100, UNIPHIER_PIN_DRV_3BIT, | ||
473 | 149, UNIPHIER_PIN_PULL_DOWN), | ||
474 | UNIPHIER_PINCTRL_PIN(150, "XIRQ1", 150, | ||
475 | 101, UNIPHIER_PIN_DRV_3BIT, | ||
476 | 150, UNIPHIER_PIN_PULL_DOWN), | ||
477 | UNIPHIER_PINCTRL_PIN(151, "XIRQ2", 151, | ||
478 | 102, UNIPHIER_PIN_DRV_3BIT, | ||
479 | 151, UNIPHIER_PIN_PULL_DOWN), | ||
480 | UNIPHIER_PINCTRL_PIN(152, "XIRQ3", 152, | ||
481 | 103, UNIPHIER_PIN_DRV_3BIT, | ||
482 | 152, UNIPHIER_PIN_PULL_DOWN), | ||
483 | UNIPHIER_PINCTRL_PIN(153, "XIRQ4", 153, | ||
484 | 104, UNIPHIER_PIN_DRV_3BIT, | ||
485 | 153, UNIPHIER_PIN_PULL_DOWN), | ||
486 | UNIPHIER_PINCTRL_PIN(154, "XIRQ5", 154, | ||
487 | 105, UNIPHIER_PIN_DRV_3BIT, | ||
488 | 154, UNIPHIER_PIN_PULL_DOWN), | ||
489 | UNIPHIER_PINCTRL_PIN(155, "XIRQ6", 155, | ||
490 | 106, UNIPHIER_PIN_DRV_3BIT, | ||
491 | 155, UNIPHIER_PIN_PULL_DOWN), | ||
492 | UNIPHIER_PINCTRL_PIN(156, "XIRQ7", 156, | ||
493 | 107, UNIPHIER_PIN_DRV_3BIT, | ||
494 | 156, UNIPHIER_PIN_PULL_DOWN), | ||
495 | UNIPHIER_PINCTRL_PIN(157, "XIRQ8", 157, | ||
496 | 108, UNIPHIER_PIN_DRV_3BIT, | ||
497 | 157, UNIPHIER_PIN_PULL_DOWN), | ||
498 | UNIPHIER_PINCTRL_PIN(158, "XIRQ9", 158, | ||
499 | 109, UNIPHIER_PIN_DRV_3BIT, | ||
500 | 158, UNIPHIER_PIN_PULL_DOWN), | ||
501 | UNIPHIER_PINCTRL_PIN(159, "XIRQ10", 159, | ||
502 | 110, UNIPHIER_PIN_DRV_3BIT, | ||
503 | 159, UNIPHIER_PIN_PULL_DOWN), | ||
504 | UNIPHIER_PINCTRL_PIN(160, "XIRQ11", 160, | ||
505 | 111, UNIPHIER_PIN_DRV_3BIT, | ||
506 | 160, UNIPHIER_PIN_PULL_DOWN), | ||
507 | UNIPHIER_PINCTRL_PIN(161, "XIRQ13", 161, | ||
508 | 112, UNIPHIER_PIN_DRV_3BIT, | ||
509 | 161, UNIPHIER_PIN_PULL_DOWN), | ||
510 | UNIPHIER_PINCTRL_PIN(162, "XIRQ14", 162, | ||
511 | 113, UNIPHIER_PIN_DRV_3BIT, | ||
512 | 162, UNIPHIER_PIN_PULL_DOWN), | ||
513 | UNIPHIER_PINCTRL_PIN(163, "XIRQ16", 163, | ||
514 | 114, UNIPHIER_PIN_DRV_3BIT, | ||
515 | 163, UNIPHIER_PIN_PULL_DOWN), | ||
516 | UNIPHIER_PINCTRL_PIN(164, "XIRQ17", 164, | ||
517 | 115, UNIPHIER_PIN_DRV_3BIT, | ||
518 | 164, UNIPHIER_PIN_PULL_DOWN), | ||
519 | UNIPHIER_PINCTRL_PIN(165, "XIRQ18", 165, | ||
520 | 116, UNIPHIER_PIN_DRV_3BIT, | ||
521 | 165, UNIPHIER_PIN_PULL_DOWN), | ||
522 | UNIPHIER_PINCTRL_PIN(166, "XIRQ19", 166, | ||
523 | 117, UNIPHIER_PIN_DRV_3BIT, | ||
524 | 166, UNIPHIER_PIN_PULL_DOWN), | ||
525 | UNIPHIER_PINCTRL_PIN(167, "XIRQ20", 167, | ||
526 | 118, UNIPHIER_PIN_DRV_3BIT, | ||
527 | 167, UNIPHIER_PIN_PULL_DOWN), | ||
528 | UNIPHIER_PINCTRL_PIN(168, "PORT00", 168, | ||
529 | 119, UNIPHIER_PIN_DRV_3BIT, | ||
530 | 168, UNIPHIER_PIN_PULL_DOWN), | ||
531 | UNIPHIER_PINCTRL_PIN(169, "PORT01", 169, | ||
532 | 120, UNIPHIER_PIN_DRV_3BIT, | ||
533 | 169, UNIPHIER_PIN_PULL_DOWN), | ||
534 | UNIPHIER_PINCTRL_PIN(170, "PORT02", 170, | ||
535 | 121, UNIPHIER_PIN_DRV_3BIT, | ||
536 | 170, UNIPHIER_PIN_PULL_DOWN), | ||
537 | UNIPHIER_PINCTRL_PIN(171, "PORT03", 171, | ||
538 | 122, UNIPHIER_PIN_DRV_3BIT, | ||
539 | 171, UNIPHIER_PIN_PULL_DOWN), | ||
540 | UNIPHIER_PINCTRL_PIN(172, "PORT04", 172, | ||
541 | 123, UNIPHIER_PIN_DRV_3BIT, | ||
542 | 172, UNIPHIER_PIN_PULL_DOWN), | ||
543 | UNIPHIER_PINCTRL_PIN(173, "CK27FO", 173, | ||
544 | 124, UNIPHIER_PIN_DRV_3BIT, | ||
545 | 173, UNIPHIER_PIN_PULL_DOWN), | ||
546 | UNIPHIER_PINCTRL_PIN(174, "PHSYNCO", 174, | ||
547 | 125, UNIPHIER_PIN_DRV_3BIT, | ||
548 | 174, UNIPHIER_PIN_PULL_DOWN), | ||
549 | UNIPHIER_PINCTRL_PIN(175, "PVSYNCO", 175, | ||
550 | 126, UNIPHIER_PIN_DRV_3BIT, | ||
551 | 175, UNIPHIER_PIN_PULL_DOWN), | ||
552 | }; | ||
553 | |||
554 | static const unsigned emmc_pins[] = {18, 19, 20, 21, 22, 23, 24, 25}; | ||
555 | static const int emmc_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0}; | ||
556 | static const unsigned emmc_dat8_pins[] = {26, 27, 28, 29}; | ||
557 | static const int emmc_dat8_muxvals[] = {0, 0, 0, 0}; | ||
558 | static const unsigned ether_rgmii_pins[] = {30, 31, 32, 33, 34, 35, 36, 37, 38, | ||
559 | 39, 40, 41, 42, 43, 44, 45}; | ||
560 | static const int ether_rgmii_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
561 | 0, 0, 0, 0}; | ||
562 | static const unsigned ether_rmii_pins[] = {30, 31, 32, 33, 34, 35, 36, 37, 39, | ||
563 | 41, 42, 45}; | ||
564 | static const int ether_rmii_muxvals[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; | ||
565 | static const unsigned i2c0_pins[] = {63, 64}; | ||
566 | static const int i2c0_muxvals[] = {0, 0}; | ||
567 | static const unsigned i2c1_pins[] = {65, 66}; | ||
568 | static const int i2c1_muxvals[] = {0, 0}; | ||
569 | static const unsigned i2c3_pins[] = {67, 68}; | ||
570 | static const int i2c3_muxvals[] = {1, 1}; | ||
571 | static const unsigned i2c4_pins[] = {61, 62}; | ||
572 | static const int i2c4_muxvals[] = {1, 1}; | ||
573 | static const unsigned nand_pins[] = {3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, | ||
574 | 15, 16, 17}; | ||
575 | static const int nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; | ||
576 | static const unsigned sd_pins[] = {10, 11, 12, 13, 14, 15, 16, 17}; | ||
577 | static const int sd_muxvals[] = {3, 3, 3, 3, 3, 3, 3, 3}; /* No SDVOLC */ | ||
578 | static const unsigned system_bus_pins[] = {1, 2, 6, 7, 8, 9, 10, 11, 12, 13, | ||
579 | 14, 15, 16, 17}; | ||
580 | static const int system_bus_muxvals[] = {0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
581 | 2}; | ||
582 | static const unsigned system_bus_cs1_pins[] = {0}; | ||
583 | static const int system_bus_cs1_muxvals[] = {0}; | ||
584 | static const unsigned uart0_pins[] = {54, 55}; | ||
585 | static const int uart0_muxvals[] = {0, 0}; | ||
586 | static const unsigned uart1_pins[] = {58, 59}; | ||
587 | static const int uart1_muxvals[] = {1, 1}; | ||
588 | static const unsigned uart2_pins[] = {90, 91}; | ||
589 | static const int uart2_muxvals[] = {1, 1}; | ||
590 | static const unsigned uart3_pins[] = {94, 95}; | ||
591 | static const int uart3_muxvals[] = {1, 1}; | ||
592 | static const unsigned usb0_pins[] = {46, 47}; | ||
593 | static const int usb0_muxvals[] = {0, 0}; | ||
594 | static const unsigned usb1_pins[] = {48, 49}; | ||
595 | static const int usb1_muxvals[] = {0, 0}; | ||
596 | static const unsigned usb2_pins[] = {50, 51}; | ||
597 | static const int usb2_muxvals[] = {0, 0}; | ||
598 | static const unsigned usb3_pins[] = {52, 53}; | ||
599 | static const int usb3_muxvals[] = {0, 0}; | ||
600 | static const unsigned port_range_pins[] = { | ||
601 | 168, 169, 170, 171, 172, 173, 174, 175, /* PORT0x */ | ||
602 | 0, 1, 2, 3, 4, 5, 6, 7, /* PORT1x */ | ||
603 | 8, 9, 10, 11, 12, 13, 14, 15, /* PORT2x */ | ||
604 | 16, 17, 18, 30, 31, 32, 33, 34, /* PORT3x */ | ||
605 | 35, 36, 37, 38, 39, 40, 41, 42, /* PORT4x */ | ||
606 | 43, 44, 45, 46, 47, 48, 49, 50, /* PORT5x */ | ||
607 | 51, 52, 53, 54, 55, 56, 57, 58, /* PORT6x */ | ||
608 | 59, 60, 69, 70, 71, 72, 73, 74, /* PORT7x */ | ||
609 | 75, 76, 77, 78, 79, 80, 81, 82, /* PORT8x */ | ||
610 | 83, 84, 85, 86, 87, 88, 89, 90, /* PORT9x */ | ||
611 | 91, 92, 93, 94, 95, 96, 97, 98, /* PORT10x */ | ||
612 | -1, -1, -1, -1, -1, -1, -1, -1, /* PORT11x */ | ||
613 | 99, 100, 101, 102, 103, 104, 105, 106, /* PORT12x */ | ||
614 | 107, 108, 109, 110, 111, 112, 113, 114, /* PORT13x */ | ||
615 | 115, 116, 117, 118, 119, 120, 121, 122, /* PORT14x */ | ||
616 | -1, -1, -1, -1, -1, -1, -1, -1, /* PORT15x */ | ||
617 | -1, -1, -1, -1, -1, -1, -1, -1, /* PORT16x */ | ||
618 | -1, -1, -1, -1, -1, -1, -1, -1, /* PORT17x */ | ||
619 | 61, 62, 63, 64, 65, 66, 67, 68, /* PORT18x */ | ||
620 | -1, -1, -1, -1, -1, -1, -1, -1, /* PORT19x */ | ||
621 | 123, 124, 125, 126, 127, 128, 129, 130, /* PORT20x */ | ||
622 | 131, 132, 133, 134, 135, 136, 137, 138, /* PORT21x */ | ||
623 | 139, 140, 141, 142, 143, 144, 145, 146, /* PORT22x */ | ||
624 | 147, 148, 149, 150, 151, 152, 153, 154, /* PORT23x */ | ||
625 | 155, 156, 157, 158, 159, 160, 161, 162, /* PORT24x */ | ||
626 | 163, 164, 165, 166, 167, /* PORT25x */ | ||
627 | }; | ||
628 | static const int port_range_muxvals[] = { | ||
629 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT0x */ | ||
630 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT1x */ | ||
631 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT2x */ | ||
632 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT3x */ | ||
633 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT4x */ | ||
634 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT5x */ | ||
635 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT6x */ | ||
636 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT7x */ | ||
637 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT8x */ | ||
638 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT9x */ | ||
639 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT10x */ | ||
640 | -1, -1, -1, -1, -1, -1, -1, -1, /* PORT11x */ | ||
641 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT12x */ | ||
642 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT13x */ | ||
643 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT14x */ | ||
644 | -1, -1, -1, -1, -1, -1, -1, -1, /* PORT15x */ | ||
645 | -1, -1, -1, -1, -1, -1, -1, -1, /* PORT16x */ | ||
646 | -1, -1, -1, -1, -1, -1, -1, -1, /* PORT17x */ | ||
647 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT18x */ | ||
648 | -1, -1, -1, -1, -1, -1, -1, -1, /* PORT19x */ | ||
649 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT20x */ | ||
650 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT21x */ | ||
651 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT22x */ | ||
652 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT23x */ | ||
653 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT24x */ | ||
654 | 15, 15, 15, 15, 15, /* PORT25x */ | ||
655 | }; | ||
656 | static const unsigned xirq_pins[] = { | ||
657 | 149, 150, 151, 152, 153, 154, 155, 156, /* XIRQ0-7 */ | ||
658 | 157, 158, 159, 160, 85, 161, 162, 84, /* XIRQ8-15 */ | ||
659 | 163, 164, 165, 166, 167, 146, 52, 53, /* XIRQ16-23 */ | ||
660 | }; | ||
661 | static const int xirq_muxvals[] = { | ||
662 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ0-7 */ | ||
663 | 14, 14, 14, 14, 13, 14, 14, 13, /* XIRQ8-15 */ | ||
664 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ16-23 */ | ||
665 | }; | ||
666 | static const unsigned xirq_alternatives_pins[] = { | ||
667 | 94, 95, 96, 97, 98, 99, 100, 101, /* XIRQ0-7 */ | ||
668 | 102, 103, 104, 105, 106, 107, /* XIRQ8-11,13,14 */ | ||
669 | 108, 109, 110, 111, 112, 147, 141, 142, /* XIRQ16-23 */ | ||
670 | }; | ||
671 | static const int xirq_alternatives_muxvals[] = { | ||
672 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ0-7 */ | ||
673 | 14, 14, 14, 14, 14, 14, /* XIRQ8-11,13,14 */ | ||
674 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ16-23 */ | ||
675 | }; | ||
676 | |||
677 | static const struct uniphier_pinctrl_group uniphier_ld20_groups[] = { | ||
678 | UNIPHIER_PINCTRL_GROUP(emmc), | ||
679 | UNIPHIER_PINCTRL_GROUP(emmc_dat8), | ||
680 | UNIPHIER_PINCTRL_GROUP(ether_rgmii), | ||
681 | UNIPHIER_PINCTRL_GROUP(ether_rmii), | ||
682 | UNIPHIER_PINCTRL_GROUP(i2c0), | ||
683 | UNIPHIER_PINCTRL_GROUP(i2c1), | ||
684 | UNIPHIER_PINCTRL_GROUP(i2c3), | ||
685 | UNIPHIER_PINCTRL_GROUP(i2c4), | ||
686 | UNIPHIER_PINCTRL_GROUP(nand), | ||
687 | UNIPHIER_PINCTRL_GROUP(sd), | ||
688 | UNIPHIER_PINCTRL_GROUP(system_bus), | ||
689 | UNIPHIER_PINCTRL_GROUP(system_bus_cs1), | ||
690 | UNIPHIER_PINCTRL_GROUP(uart0), | ||
691 | UNIPHIER_PINCTRL_GROUP(uart1), | ||
692 | UNIPHIER_PINCTRL_GROUP(uart2), | ||
693 | UNIPHIER_PINCTRL_GROUP(uart3), | ||
694 | UNIPHIER_PINCTRL_GROUP(usb0), | ||
695 | UNIPHIER_PINCTRL_GROUP(usb1), | ||
696 | UNIPHIER_PINCTRL_GROUP(usb2), | ||
697 | UNIPHIER_PINCTRL_GROUP(usb3), | ||
698 | UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range), | ||
699 | UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_IRQ(xirq), | ||
700 | UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_IRQ(xirq_alternatives), | ||
701 | UNIPHIER_PINCTRL_GROUP_SINGLE(port00, port_range, 0), | ||
702 | UNIPHIER_PINCTRL_GROUP_SINGLE(port01, port_range, 1), | ||
703 | UNIPHIER_PINCTRL_GROUP_SINGLE(port02, port_range, 2), | ||
704 | UNIPHIER_PINCTRL_GROUP_SINGLE(port03, port_range, 3), | ||
705 | UNIPHIER_PINCTRL_GROUP_SINGLE(port04, port_range, 4), | ||
706 | UNIPHIER_PINCTRL_GROUP_SINGLE(port05, port_range, 5), | ||
707 | UNIPHIER_PINCTRL_GROUP_SINGLE(port06, port_range, 6), | ||
708 | UNIPHIER_PINCTRL_GROUP_SINGLE(port07, port_range, 7), | ||
709 | UNIPHIER_PINCTRL_GROUP_SINGLE(port10, port_range, 8), | ||
710 | UNIPHIER_PINCTRL_GROUP_SINGLE(port11, port_range, 9), | ||
711 | UNIPHIER_PINCTRL_GROUP_SINGLE(port12, port_range, 10), | ||
712 | UNIPHIER_PINCTRL_GROUP_SINGLE(port13, port_range, 11), | ||
713 | UNIPHIER_PINCTRL_GROUP_SINGLE(port14, port_range, 12), | ||
714 | UNIPHIER_PINCTRL_GROUP_SINGLE(port15, port_range, 13), | ||
715 | UNIPHIER_PINCTRL_GROUP_SINGLE(port16, port_range, 14), | ||
716 | UNIPHIER_PINCTRL_GROUP_SINGLE(port17, port_range, 15), | ||
717 | UNIPHIER_PINCTRL_GROUP_SINGLE(port20, port_range, 16), | ||
718 | UNIPHIER_PINCTRL_GROUP_SINGLE(port21, port_range, 17), | ||
719 | UNIPHIER_PINCTRL_GROUP_SINGLE(port22, port_range, 18), | ||
720 | UNIPHIER_PINCTRL_GROUP_SINGLE(port23, port_range, 19), | ||
721 | UNIPHIER_PINCTRL_GROUP_SINGLE(port24, port_range, 20), | ||
722 | UNIPHIER_PINCTRL_GROUP_SINGLE(port25, port_range, 21), | ||
723 | UNIPHIER_PINCTRL_GROUP_SINGLE(port26, port_range, 22), | ||
724 | UNIPHIER_PINCTRL_GROUP_SINGLE(port27, port_range, 23), | ||
725 | UNIPHIER_PINCTRL_GROUP_SINGLE(port30, port_range, 24), | ||
726 | UNIPHIER_PINCTRL_GROUP_SINGLE(port31, port_range, 25), | ||
727 | UNIPHIER_PINCTRL_GROUP_SINGLE(port32, port_range, 26), | ||
728 | UNIPHIER_PINCTRL_GROUP_SINGLE(port33, port_range, 27), | ||
729 | UNIPHIER_PINCTRL_GROUP_SINGLE(port34, port_range, 28), | ||
730 | UNIPHIER_PINCTRL_GROUP_SINGLE(port35, port_range, 29), | ||
731 | UNIPHIER_PINCTRL_GROUP_SINGLE(port36, port_range, 30), | ||
732 | UNIPHIER_PINCTRL_GROUP_SINGLE(port37, port_range, 31), | ||
733 | UNIPHIER_PINCTRL_GROUP_SINGLE(port40, port_range, 32), | ||
734 | UNIPHIER_PINCTRL_GROUP_SINGLE(port41, port_range, 33), | ||
735 | UNIPHIER_PINCTRL_GROUP_SINGLE(port42, port_range, 34), | ||
736 | UNIPHIER_PINCTRL_GROUP_SINGLE(port43, port_range, 35), | ||
737 | UNIPHIER_PINCTRL_GROUP_SINGLE(port44, port_range, 36), | ||
738 | UNIPHIER_PINCTRL_GROUP_SINGLE(port45, port_range, 37), | ||
739 | UNIPHIER_PINCTRL_GROUP_SINGLE(port46, port_range, 38), | ||
740 | UNIPHIER_PINCTRL_GROUP_SINGLE(port47, port_range, 39), | ||
741 | UNIPHIER_PINCTRL_GROUP_SINGLE(port50, port_range, 40), | ||
742 | UNIPHIER_PINCTRL_GROUP_SINGLE(port51, port_range, 41), | ||
743 | UNIPHIER_PINCTRL_GROUP_SINGLE(port52, port_range, 42), | ||
744 | UNIPHIER_PINCTRL_GROUP_SINGLE(port53, port_range, 43), | ||
745 | UNIPHIER_PINCTRL_GROUP_SINGLE(port54, port_range, 44), | ||
746 | UNIPHIER_PINCTRL_GROUP_SINGLE(port55, port_range, 45), | ||
747 | UNIPHIER_PINCTRL_GROUP_SINGLE(port56, port_range, 46), | ||
748 | UNIPHIER_PINCTRL_GROUP_SINGLE(port57, port_range, 47), | ||
749 | UNIPHIER_PINCTRL_GROUP_SINGLE(port60, port_range, 48), | ||
750 | UNIPHIER_PINCTRL_GROUP_SINGLE(port61, port_range, 49), | ||
751 | UNIPHIER_PINCTRL_GROUP_SINGLE(port62, port_range, 50), | ||
752 | UNIPHIER_PINCTRL_GROUP_SINGLE(port63, port_range, 51), | ||
753 | UNIPHIER_PINCTRL_GROUP_SINGLE(port64, port_range, 52), | ||
754 | UNIPHIER_PINCTRL_GROUP_SINGLE(port65, port_range, 53), | ||
755 | UNIPHIER_PINCTRL_GROUP_SINGLE(port66, port_range, 54), | ||
756 | UNIPHIER_PINCTRL_GROUP_SINGLE(port67, port_range, 55), | ||
757 | UNIPHIER_PINCTRL_GROUP_SINGLE(port70, port_range, 56), | ||
758 | UNIPHIER_PINCTRL_GROUP_SINGLE(port71, port_range, 57), | ||
759 | UNIPHIER_PINCTRL_GROUP_SINGLE(port72, port_range, 58), | ||
760 | UNIPHIER_PINCTRL_GROUP_SINGLE(port73, port_range, 59), | ||
761 | UNIPHIER_PINCTRL_GROUP_SINGLE(port74, port_range, 60), | ||
762 | UNIPHIER_PINCTRL_GROUP_SINGLE(port75, port_range, 61), | ||
763 | UNIPHIER_PINCTRL_GROUP_SINGLE(port76, port_range, 62), | ||
764 | UNIPHIER_PINCTRL_GROUP_SINGLE(port77, port_range, 63), | ||
765 | UNIPHIER_PINCTRL_GROUP_SINGLE(port80, port_range, 64), | ||
766 | UNIPHIER_PINCTRL_GROUP_SINGLE(port81, port_range, 65), | ||
767 | UNIPHIER_PINCTRL_GROUP_SINGLE(port82, port_range, 66), | ||
768 | UNIPHIER_PINCTRL_GROUP_SINGLE(port83, port_range, 67), | ||
769 | UNIPHIER_PINCTRL_GROUP_SINGLE(port84, port_range, 68), | ||
770 | UNIPHIER_PINCTRL_GROUP_SINGLE(port85, port_range, 69), | ||
771 | UNIPHIER_PINCTRL_GROUP_SINGLE(port86, port_range, 70), | ||
772 | UNIPHIER_PINCTRL_GROUP_SINGLE(port87, port_range, 71), | ||
773 | UNIPHIER_PINCTRL_GROUP_SINGLE(port90, port_range, 72), | ||
774 | UNIPHIER_PINCTRL_GROUP_SINGLE(port91, port_range, 73), | ||
775 | UNIPHIER_PINCTRL_GROUP_SINGLE(port92, port_range, 74), | ||
776 | UNIPHIER_PINCTRL_GROUP_SINGLE(port93, port_range, 75), | ||
777 | UNIPHIER_PINCTRL_GROUP_SINGLE(port94, port_range, 76), | ||
778 | UNIPHIER_PINCTRL_GROUP_SINGLE(port95, port_range, 77), | ||
779 | UNIPHIER_PINCTRL_GROUP_SINGLE(port96, port_range, 78), | ||
780 | UNIPHIER_PINCTRL_GROUP_SINGLE(port97, port_range, 79), | ||
781 | UNIPHIER_PINCTRL_GROUP_SINGLE(port100, port_range, 80), | ||
782 | UNIPHIER_PINCTRL_GROUP_SINGLE(port101, port_range, 81), | ||
783 | UNIPHIER_PINCTRL_GROUP_SINGLE(port102, port_range, 82), | ||
784 | UNIPHIER_PINCTRL_GROUP_SINGLE(port103, port_range, 83), | ||
785 | UNIPHIER_PINCTRL_GROUP_SINGLE(port104, port_range, 84), | ||
786 | UNIPHIER_PINCTRL_GROUP_SINGLE(port105, port_range, 85), | ||
787 | UNIPHIER_PINCTRL_GROUP_SINGLE(port106, port_range, 86), | ||
788 | UNIPHIER_PINCTRL_GROUP_SINGLE(port107, port_range, 87), | ||
789 | UNIPHIER_PINCTRL_GROUP_SINGLE(port120, port_range, 96), | ||
790 | UNIPHIER_PINCTRL_GROUP_SINGLE(port121, port_range, 97), | ||
791 | UNIPHIER_PINCTRL_GROUP_SINGLE(port122, port_range, 98), | ||
792 | UNIPHIER_PINCTRL_GROUP_SINGLE(port123, port_range, 99), | ||
793 | UNIPHIER_PINCTRL_GROUP_SINGLE(port124, port_range, 100), | ||
794 | UNIPHIER_PINCTRL_GROUP_SINGLE(port125, port_range, 101), | ||
795 | UNIPHIER_PINCTRL_GROUP_SINGLE(port126, port_range, 102), | ||
796 | UNIPHIER_PINCTRL_GROUP_SINGLE(port127, port_range, 103), | ||
797 | UNIPHIER_PINCTRL_GROUP_SINGLE(port130, port_range, 104), | ||
798 | UNIPHIER_PINCTRL_GROUP_SINGLE(port131, port_range, 105), | ||
799 | UNIPHIER_PINCTRL_GROUP_SINGLE(port132, port_range, 106), | ||
800 | UNIPHIER_PINCTRL_GROUP_SINGLE(port133, port_range, 107), | ||
801 | UNIPHIER_PINCTRL_GROUP_SINGLE(port134, port_range, 108), | ||
802 | UNIPHIER_PINCTRL_GROUP_SINGLE(port135, port_range, 109), | ||
803 | UNIPHIER_PINCTRL_GROUP_SINGLE(port136, port_range, 110), | ||
804 | UNIPHIER_PINCTRL_GROUP_SINGLE(port137, port_range, 111), | ||
805 | UNIPHIER_PINCTRL_GROUP_SINGLE(port140, port_range, 112), | ||
806 | UNIPHIER_PINCTRL_GROUP_SINGLE(port141, port_range, 113), | ||
807 | UNIPHIER_PINCTRL_GROUP_SINGLE(port142, port_range, 114), | ||
808 | UNIPHIER_PINCTRL_GROUP_SINGLE(port143, port_range, 115), | ||
809 | UNIPHIER_PINCTRL_GROUP_SINGLE(port144, port_range, 116), | ||
810 | UNIPHIER_PINCTRL_GROUP_SINGLE(port145, port_range, 117), | ||
811 | UNIPHIER_PINCTRL_GROUP_SINGLE(port146, port_range, 118), | ||
812 | UNIPHIER_PINCTRL_GROUP_SINGLE(port147, port_range, 119), | ||
813 | UNIPHIER_PINCTRL_GROUP_SINGLE(port180, port_range, 144), | ||
814 | UNIPHIER_PINCTRL_GROUP_SINGLE(port181, port_range, 145), | ||
815 | UNIPHIER_PINCTRL_GROUP_SINGLE(port182, port_range, 146), | ||
816 | UNIPHIER_PINCTRL_GROUP_SINGLE(port183, port_range, 147), | ||
817 | UNIPHIER_PINCTRL_GROUP_SINGLE(port184, port_range, 148), | ||
818 | UNIPHIER_PINCTRL_GROUP_SINGLE(port185, port_range, 149), | ||
819 | UNIPHIER_PINCTRL_GROUP_SINGLE(port186, port_range, 150), | ||
820 | UNIPHIER_PINCTRL_GROUP_SINGLE(port187, port_range, 151), | ||
821 | UNIPHIER_PINCTRL_GROUP_SINGLE(port200, port_range, 160), | ||
822 | UNIPHIER_PINCTRL_GROUP_SINGLE(port201, port_range, 161), | ||
823 | UNIPHIER_PINCTRL_GROUP_SINGLE(port202, port_range, 162), | ||
824 | UNIPHIER_PINCTRL_GROUP_SINGLE(port203, port_range, 163), | ||
825 | UNIPHIER_PINCTRL_GROUP_SINGLE(port204, port_range, 164), | ||
826 | UNIPHIER_PINCTRL_GROUP_SINGLE(port205, port_range, 165), | ||
827 | UNIPHIER_PINCTRL_GROUP_SINGLE(port206, port_range, 166), | ||
828 | UNIPHIER_PINCTRL_GROUP_SINGLE(port207, port_range, 167), | ||
829 | UNIPHIER_PINCTRL_GROUP_SINGLE(port210, port_range, 168), | ||
830 | UNIPHIER_PINCTRL_GROUP_SINGLE(port211, port_range, 169), | ||
831 | UNIPHIER_PINCTRL_GROUP_SINGLE(port212, port_range, 170), | ||
832 | UNIPHIER_PINCTRL_GROUP_SINGLE(port213, port_range, 171), | ||
833 | UNIPHIER_PINCTRL_GROUP_SINGLE(port214, port_range, 172), | ||
834 | UNIPHIER_PINCTRL_GROUP_SINGLE(port215, port_range, 173), | ||
835 | UNIPHIER_PINCTRL_GROUP_SINGLE(port216, port_range, 174), | ||
836 | UNIPHIER_PINCTRL_GROUP_SINGLE(port217, port_range, 175), | ||
837 | UNIPHIER_PINCTRL_GROUP_SINGLE(port220, port_range, 176), | ||
838 | UNIPHIER_PINCTRL_GROUP_SINGLE(port221, port_range, 177), | ||
839 | UNIPHIER_PINCTRL_GROUP_SINGLE(port222, port_range, 178), | ||
840 | UNIPHIER_PINCTRL_GROUP_SINGLE(port223, port_range, 179), | ||
841 | UNIPHIER_PINCTRL_GROUP_SINGLE(port224, port_range, 180), | ||
842 | UNIPHIER_PINCTRL_GROUP_SINGLE(port225, port_range, 181), | ||
843 | UNIPHIER_PINCTRL_GROUP_SINGLE(port226, port_range, 182), | ||
844 | UNIPHIER_PINCTRL_GROUP_SINGLE(port227, port_range, 183), | ||
845 | UNIPHIER_PINCTRL_GROUP_SINGLE(port230, port_range, 184), | ||
846 | UNIPHIER_PINCTRL_GROUP_SINGLE(port231, port_range, 185), | ||
847 | UNIPHIER_PINCTRL_GROUP_SINGLE(port232, port_range, 186), | ||
848 | UNIPHIER_PINCTRL_GROUP_SINGLE(port233, port_range, 187), | ||
849 | UNIPHIER_PINCTRL_GROUP_SINGLE(port234, port_range, 188), | ||
850 | UNIPHIER_PINCTRL_GROUP_SINGLE(port235, port_range, 189), | ||
851 | UNIPHIER_PINCTRL_GROUP_SINGLE(port236, port_range, 190), | ||
852 | UNIPHIER_PINCTRL_GROUP_SINGLE(port237, port_range, 191), | ||
853 | UNIPHIER_PINCTRL_GROUP_SINGLE(port240, port_range, 192), | ||
854 | UNIPHIER_PINCTRL_GROUP_SINGLE(port241, port_range, 193), | ||
855 | UNIPHIER_PINCTRL_GROUP_SINGLE(port242, port_range, 194), | ||
856 | UNIPHIER_PINCTRL_GROUP_SINGLE(port243, port_range, 195), | ||
857 | UNIPHIER_PINCTRL_GROUP_SINGLE(port244, port_range, 196), | ||
858 | UNIPHIER_PINCTRL_GROUP_SINGLE(port245, port_range, 197), | ||
859 | UNIPHIER_PINCTRL_GROUP_SINGLE(port246, port_range, 198), | ||
860 | UNIPHIER_PINCTRL_GROUP_SINGLE(port247, port_range, 199), | ||
861 | UNIPHIER_PINCTRL_GROUP_SINGLE(port250, port_range, 200), | ||
862 | UNIPHIER_PINCTRL_GROUP_SINGLE(port251, port_range, 201), | ||
863 | UNIPHIER_PINCTRL_GROUP_SINGLE(port252, port_range, 202), | ||
864 | UNIPHIER_PINCTRL_GROUP_SINGLE(port253, port_range, 203), | ||
865 | UNIPHIER_PINCTRL_GROUP_SINGLE(port254, port_range, 204), | ||
866 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq0, xirq, 0), | ||
867 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq1, xirq, 1), | ||
868 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq2, xirq, 2), | ||
869 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq3, xirq, 3), | ||
870 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq4, xirq, 4), | ||
871 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq5, xirq, 5), | ||
872 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq6, xirq, 6), | ||
873 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq7, xirq, 7), | ||
874 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq8, xirq, 8), | ||
875 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq9, xirq, 9), | ||
876 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq10, xirq, 10), | ||
877 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq11, xirq, 11), | ||
878 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq12, xirq, 12), | ||
879 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq13, xirq, 13), | ||
880 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq14, xirq, 14), | ||
881 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq15, xirq, 15), | ||
882 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq16, xirq, 16), | ||
883 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq17, xirq, 17), | ||
884 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq18, xirq, 18), | ||
885 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq19, xirq, 19), | ||
886 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq20, xirq, 20), | ||
887 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq21, xirq, 21), | ||
888 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq22, xirq, 22), | ||
889 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq23, xirq, 23), | ||
890 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq0b, xirq_alternatives, 0), | ||
891 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq1b, xirq_alternatives, 1), | ||
892 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq2b, xirq_alternatives, 2), | ||
893 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq3b, xirq_alternatives, 3), | ||
894 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq4b, xirq_alternatives, 4), | ||
895 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq5b, xirq_alternatives, 5), | ||
896 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq6b, xirq_alternatives, 6), | ||
897 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq7b, xirq_alternatives, 7), | ||
898 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq8b, xirq_alternatives, 8), | ||
899 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq9b, xirq_alternatives, 9), | ||
900 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq10b, xirq_alternatives, 10), | ||
901 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq11b, xirq_alternatives, 11), | ||
902 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq13b, xirq_alternatives, 12), | ||
903 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq14b, xirq_alternatives, 13), | ||
904 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq16b, xirq_alternatives, 14), | ||
905 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq17b, xirq_alternatives, 15), | ||
906 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq18b, xirq_alternatives, 16), | ||
907 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq19b, xirq_alternatives, 17), | ||
908 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq20b, xirq_alternatives, 18), | ||
909 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq21b, xirq_alternatives, 19), | ||
910 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq22b, xirq_alternatives, 20), | ||
911 | UNIPHIER_PINCTRL_GROUP_SINGLE(xirq23b, xirq_alternatives, 21), | ||
912 | }; | ||
913 | |||
914 | static const char * const emmc_groups[] = {"emmc", "emmc_dat8"}; | ||
915 | static const char * const ether_rgmii_groups[] = {"ether_rgmii"}; | ||
916 | static const char * const ether_rmii_groups[] = {"ether_rmii"}; | ||
917 | static const char * const i2c0_groups[] = {"i2c0"}; | ||
918 | static const char * const i2c1_groups[] = {"i2c1"}; | ||
919 | static const char * const i2c3_groups[] = {"i2c3"}; | ||
920 | static const char * const i2c4_groups[] = {"i2c4"}; | ||
921 | static const char * const nand_groups[] = {"nand"}; | ||
922 | static const char * const sd_groups[] = {"sd"}; | ||
923 | static const char * const system_bus_groups[] = {"system_bus", | ||
924 | "system_bus_cs1"}; | ||
925 | static const char * const uart0_groups[] = {"uart0"}; | ||
926 | static const char * const uart1_groups[] = {"uart1"}; | ||
927 | static const char * const uart2_groups[] = {"uart2"}; | ||
928 | static const char * const uart3_groups[] = {"uart3"}; | ||
929 | static const char * const usb0_groups[] = {"usb0"}; | ||
930 | static const char * const usb1_groups[] = {"usb1"}; | ||
931 | static const char * const usb2_groups[] = {"usb2"}; | ||
932 | static const char * const usb3_groups[] = {"usb3"}; | ||
933 | static const char * const port_groups[] = { | ||
934 | "port00", "port01", "port02", "port03", | ||
935 | "port04", "port05", "port06", "port07", | ||
936 | "port10", "port11", "port12", "port13", | ||
937 | "port14", "port15", "port16", "port17", | ||
938 | "port20", "port21", "port22", "port23", | ||
939 | "port24", "port25", "port26", "port27", | ||
940 | "port30", "port31", "port32", "port33", | ||
941 | "port34", "port35", "port36", "port37", | ||
942 | "port40", "port41", "port42", "port43", | ||
943 | "port44", "port45", "port46", "port47", | ||
944 | "port50", "port51", "port52", "port53", | ||
945 | "port54", "port55", "port56", "port57", | ||
946 | "port60", "port61", "port62", "port63", | ||
947 | "port64", "port65", "port66", "port67", | ||
948 | "port70", "port71", "port72", "port73", | ||
949 | "port74", "port75", "port76", "port77", | ||
950 | "port80", "port81", "port82", "port83", | ||
951 | "port84", "port85", "port86", "port87", | ||
952 | "port90", "port91", "port92", "port93", | ||
953 | "port94", "port95", "port96", "port97", | ||
954 | "port100", "port101", "port102", "port103", | ||
955 | "port104", "port105", "port106", "port107", | ||
956 | /* port110-117 missing */ | ||
957 | "port120", "port121", "port122", "port123", | ||
958 | "port124", "port125", "port126", "port127", | ||
959 | "port130", "port131", "port132", "port133", | ||
960 | "port134", "port135", "port136", "port137", | ||
961 | "port140", "port141", "port142", "port143", | ||
962 | "port144", "port145", "port146", "port147", | ||
963 | /* port150-177 missing */ | ||
964 | "port180", "port181", "port182", "port183", | ||
965 | "port184", "port185", "port186", "port187", | ||
966 | /* port190-197 missing */ | ||
967 | "port200", "port201", "port202", "port203", | ||
968 | "port204", "port205", "port206", "port207", | ||
969 | "port210", "port211", "port212", "port213", | ||
970 | "port214", "port215", "port216", "port217", | ||
971 | "port220", "port221", "port222", "port223", | ||
972 | "port224", "port225", "port226", "port227", | ||
973 | "port230", "port231", "port232", "port233", | ||
974 | "port234", "port235", "port236", "port237", | ||
975 | "port240", "port241", "port242", "port243", | ||
976 | "port244", "port245", "port246", "port247", | ||
977 | "port250", "port251", "port252", "port253", | ||
978 | "port254", | ||
979 | }; | ||
980 | static const char * const xirq_groups[] = { | ||
981 | "xirq0", "xirq1", "xirq2", "xirq3", | ||
982 | "xirq4", "xirq5", "xirq6", "xirq7", | ||
983 | "xirq8", "xirq9", "xirq10", "xirq11", | ||
984 | "xirq12", "xirq13", "xirq14", "xirq15", | ||
985 | "xirq16", "xirq17", "xirq18", "xirq19", | ||
986 | "xirq20", "xirq21", "xirq22", "xirq23", | ||
987 | "xirq0b", "xirq1b", "xirq2b", "xirq3b", | ||
988 | "xirq4b", "xirq5b", "xirq6b", "xirq7b", | ||
989 | "xirq8b", "xirq9b", "xirq10b", "xirq11b", | ||
990 | /* none */ "xirq13b", "xirq14b", /* none */ | ||
991 | "xirq16b", "xirq17b", "xirq18b", "xirq19b", | ||
992 | "xirq20b", "xirq21b", "xirq22b", "xirq23b", | ||
993 | }; | ||
994 | |||
995 | static const struct uniphier_pinmux_function uniphier_ld20_functions[] = { | ||
996 | UNIPHIER_PINMUX_FUNCTION(emmc), | ||
997 | UNIPHIER_PINMUX_FUNCTION(ether_rgmii), | ||
998 | UNIPHIER_PINMUX_FUNCTION(ether_rmii), | ||
999 | UNIPHIER_PINMUX_FUNCTION(i2c0), | ||
1000 | UNIPHIER_PINMUX_FUNCTION(i2c1), | ||
1001 | UNIPHIER_PINMUX_FUNCTION(i2c3), | ||
1002 | UNIPHIER_PINMUX_FUNCTION(i2c4), | ||
1003 | UNIPHIER_PINMUX_FUNCTION(nand), | ||
1004 | UNIPHIER_PINMUX_FUNCTION(sd), | ||
1005 | UNIPHIER_PINMUX_FUNCTION(system_bus), | ||
1006 | UNIPHIER_PINMUX_FUNCTION(uart0), | ||
1007 | UNIPHIER_PINMUX_FUNCTION(uart1), | ||
1008 | UNIPHIER_PINMUX_FUNCTION(uart2), | ||
1009 | UNIPHIER_PINMUX_FUNCTION(uart3), | ||
1010 | UNIPHIER_PINMUX_FUNCTION(usb0), | ||
1011 | UNIPHIER_PINMUX_FUNCTION(usb1), | ||
1012 | UNIPHIER_PINMUX_FUNCTION(usb2), | ||
1013 | UNIPHIER_PINMUX_FUNCTION(usb3), | ||
1014 | UNIPHIER_PINMUX_FUNCTION(port), | ||
1015 | UNIPHIER_PINMUX_FUNCTION(xirq), | ||
1016 | }; | ||
1017 | |||
1018 | static struct uniphier_pinctrl_socdata uniphier_ld20_pindata = { | ||
1019 | .pins = uniphier_ld20_pins, | ||
1020 | .npins = ARRAY_SIZE(uniphier_ld20_pins), | ||
1021 | .groups = uniphier_ld20_groups, | ||
1022 | .groups_count = ARRAY_SIZE(uniphier_ld20_groups), | ||
1023 | .functions = uniphier_ld20_functions, | ||
1024 | .functions_count = ARRAY_SIZE(uniphier_ld20_functions), | ||
1025 | .caps = UNIPHIER_PINCTRL_CAPS_PERPIN_IECTRL, | ||
1026 | }; | ||
1027 | |||
1028 | static int uniphier_ld20_pinctrl_probe(struct platform_device *pdev) | ||
1029 | { | ||
1030 | return uniphier_pinctrl_probe(pdev, &uniphier_ld20_pindata); | ||
1031 | } | ||
1032 | |||
1033 | static const struct of_device_id uniphier_ld20_pinctrl_match[] = { | ||
1034 | { .compatible = "socionext,uniphier-ld20-pinctrl" }, | ||
1035 | { /* sentinel */ } | ||
1036 | }; | ||
1037 | MODULE_DEVICE_TABLE(of, uniphier_ld20_pinctrl_match); | ||
1038 | |||
1039 | static struct platform_driver uniphier_ld20_pinctrl_driver = { | ||
1040 | .probe = uniphier_ld20_pinctrl_probe, | ||
1041 | .driver = { | ||
1042 | .name = "uniphier-ld20-pinctrl", | ||
1043 | .of_match_table = uniphier_ld20_pinctrl_match, | ||
1044 | }, | ||
1045 | }; | ||
1046 | module_platform_driver(uniphier_ld20_pinctrl_driver); | ||
1047 | |||
1048 | MODULE_AUTHOR("Masahiro Yamada <yamada.masahiro@socionext.com>"); | ||
1049 | MODULE_DESCRIPTION("UniPhier PH1-LD20 pinctrl driver"); | ||
1050 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld4.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld4.c index 4a0439c80aa0..3edfb6f9d6df 100644 --- a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld4.c +++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld4.c | |||
@@ -19,544 +19,592 @@ | |||
19 | 19 | ||
20 | #include "pinctrl-uniphier.h" | 20 | #include "pinctrl-uniphier.h" |
21 | 21 | ||
22 | #define DRIVER_NAME "ph1-ld4-pinctrl" | 22 | static const struct pinctrl_pin_desc uniphier_ld4_pins[] = { |
23 | |||
24 | static const struct pinctrl_pin_desc ph1_ld4_pins[] = { | ||
25 | UNIPHIER_PINCTRL_PIN(0, "EA1", UNIPHIER_PIN_IECTRL_NONE, | 23 | UNIPHIER_PINCTRL_PIN(0, "EA1", UNIPHIER_PIN_IECTRL_NONE, |
26 | 8, UNIPHIER_PIN_DRV_4_8, | 24 | 8, UNIPHIER_PIN_DRV_1BIT, |
27 | 8, UNIPHIER_PIN_PULL_DOWN), | 25 | 8, UNIPHIER_PIN_PULL_DOWN), |
28 | UNIPHIER_PINCTRL_PIN(1, "EA2", UNIPHIER_PIN_IECTRL_NONE, | 26 | UNIPHIER_PINCTRL_PIN(1, "EA2", UNIPHIER_PIN_IECTRL_NONE, |
29 | 9, UNIPHIER_PIN_DRV_4_8, | 27 | 9, UNIPHIER_PIN_DRV_1BIT, |
30 | 9, UNIPHIER_PIN_PULL_DOWN), | 28 | 9, UNIPHIER_PIN_PULL_DOWN), |
31 | UNIPHIER_PINCTRL_PIN(2, "EA3", UNIPHIER_PIN_IECTRL_NONE, | 29 | UNIPHIER_PINCTRL_PIN(2, "EA3", UNIPHIER_PIN_IECTRL_NONE, |
32 | 10, UNIPHIER_PIN_DRV_4_8, | 30 | 10, UNIPHIER_PIN_DRV_1BIT, |
33 | 10, UNIPHIER_PIN_PULL_DOWN), | 31 | 10, UNIPHIER_PIN_PULL_DOWN), |
34 | UNIPHIER_PINCTRL_PIN(3, "EA4", UNIPHIER_PIN_IECTRL_NONE, | 32 | UNIPHIER_PINCTRL_PIN(3, "EA4", UNIPHIER_PIN_IECTRL_NONE, |
35 | 11, UNIPHIER_PIN_DRV_4_8, | 33 | 11, UNIPHIER_PIN_DRV_1BIT, |
36 | 11, UNIPHIER_PIN_PULL_DOWN), | 34 | 11, UNIPHIER_PIN_PULL_DOWN), |
37 | UNIPHIER_PINCTRL_PIN(4, "EA5", UNIPHIER_PIN_IECTRL_NONE, | 35 | UNIPHIER_PINCTRL_PIN(4, "EA5", UNIPHIER_PIN_IECTRL_NONE, |
38 | 12, UNIPHIER_PIN_DRV_4_8, | 36 | 12, UNIPHIER_PIN_DRV_1BIT, |
39 | 12, UNIPHIER_PIN_PULL_DOWN), | 37 | 12, UNIPHIER_PIN_PULL_DOWN), |
40 | UNIPHIER_PINCTRL_PIN(5, "EA6", UNIPHIER_PIN_IECTRL_NONE, | 38 | UNIPHIER_PINCTRL_PIN(5, "EA6", UNIPHIER_PIN_IECTRL_NONE, |
41 | 13, UNIPHIER_PIN_DRV_4_8, | 39 | 13, UNIPHIER_PIN_DRV_1BIT, |
42 | 13, UNIPHIER_PIN_PULL_DOWN), | 40 | 13, UNIPHIER_PIN_PULL_DOWN), |
43 | UNIPHIER_PINCTRL_PIN(6, "EA7", UNIPHIER_PIN_IECTRL_NONE, | 41 | UNIPHIER_PINCTRL_PIN(6, "EA7", UNIPHIER_PIN_IECTRL_NONE, |
44 | 14, UNIPHIER_PIN_DRV_4_8, | 42 | 14, UNIPHIER_PIN_DRV_1BIT, |
45 | 14, UNIPHIER_PIN_PULL_DOWN), | 43 | 14, UNIPHIER_PIN_PULL_DOWN), |
46 | UNIPHIER_PINCTRL_PIN(7, "EA8", 0, | 44 | UNIPHIER_PINCTRL_PIN(7, "EA8", 0, |
47 | 15, UNIPHIER_PIN_DRV_4_8, | 45 | 15, UNIPHIER_PIN_DRV_1BIT, |
48 | 15, UNIPHIER_PIN_PULL_DOWN), | 46 | 15, UNIPHIER_PIN_PULL_DOWN), |
49 | UNIPHIER_PINCTRL_PIN(8, "EA9", 0, | 47 | UNIPHIER_PINCTRL_PIN(8, "EA9", 0, |
50 | 16, UNIPHIER_PIN_DRV_4_8, | 48 | 16, UNIPHIER_PIN_DRV_1BIT, |
51 | 16, UNIPHIER_PIN_PULL_DOWN), | 49 | 16, UNIPHIER_PIN_PULL_DOWN), |
52 | UNIPHIER_PINCTRL_PIN(9, "EA10", 0, | 50 | UNIPHIER_PINCTRL_PIN(9, "EA10", 0, |
53 | 17, UNIPHIER_PIN_DRV_4_8, | 51 | 17, UNIPHIER_PIN_DRV_1BIT, |
54 | 17, UNIPHIER_PIN_PULL_DOWN), | 52 | 17, UNIPHIER_PIN_PULL_DOWN), |
55 | UNIPHIER_PINCTRL_PIN(10, "EA11", 0, | 53 | UNIPHIER_PINCTRL_PIN(10, "EA11", 0, |
56 | 18, UNIPHIER_PIN_DRV_4_8, | 54 | 18, UNIPHIER_PIN_DRV_1BIT, |
57 | 18, UNIPHIER_PIN_PULL_DOWN), | 55 | 18, UNIPHIER_PIN_PULL_DOWN), |
58 | UNIPHIER_PINCTRL_PIN(11, "EA12", 0, | 56 | UNIPHIER_PINCTRL_PIN(11, "EA12", 0, |
59 | 19, UNIPHIER_PIN_DRV_4_8, | 57 | 19, UNIPHIER_PIN_DRV_1BIT, |
60 | 19, UNIPHIER_PIN_PULL_DOWN), | 58 | 19, UNIPHIER_PIN_PULL_DOWN), |
61 | UNIPHIER_PINCTRL_PIN(12, "EA13", 0, | 59 | UNIPHIER_PINCTRL_PIN(12, "EA13", 0, |
62 | 20, UNIPHIER_PIN_DRV_4_8, | 60 | 20, UNIPHIER_PIN_DRV_1BIT, |
63 | 20, UNIPHIER_PIN_PULL_DOWN), | 61 | 20, UNIPHIER_PIN_PULL_DOWN), |
64 | UNIPHIER_PINCTRL_PIN(13, "EA14", 0, | 62 | UNIPHIER_PINCTRL_PIN(13, "EA14", 0, |
65 | 21, UNIPHIER_PIN_DRV_4_8, | 63 | 21, UNIPHIER_PIN_DRV_1BIT, |
66 | 21, UNIPHIER_PIN_PULL_DOWN), | 64 | 21, UNIPHIER_PIN_PULL_DOWN), |
67 | UNIPHIER_PINCTRL_PIN(14, "EA15", 0, | 65 | UNIPHIER_PINCTRL_PIN(14, "EA15", 0, |
68 | 22, UNIPHIER_PIN_DRV_4_8, | 66 | 22, UNIPHIER_PIN_DRV_1BIT, |
69 | 22, UNIPHIER_PIN_PULL_DOWN), | 67 | 22, UNIPHIER_PIN_PULL_DOWN), |
70 | UNIPHIER_PINCTRL_PIN(15, "ECLK", UNIPHIER_PIN_IECTRL_NONE, | 68 | UNIPHIER_PINCTRL_PIN(15, "ECLK", UNIPHIER_PIN_IECTRL_NONE, |
71 | 23, UNIPHIER_PIN_DRV_4_8, | 69 | 23, UNIPHIER_PIN_DRV_1BIT, |
72 | 23, UNIPHIER_PIN_PULL_DOWN), | 70 | 23, UNIPHIER_PIN_PULL_DOWN), |
73 | UNIPHIER_PINCTRL_PIN(16, "XERWE0", UNIPHIER_PIN_IECTRL_NONE, | 71 | UNIPHIER_PINCTRL_PIN(16, "XERWE0", UNIPHIER_PIN_IECTRL_NONE, |
74 | 24, UNIPHIER_PIN_DRV_4_8, | 72 | 24, UNIPHIER_PIN_DRV_1BIT, |
75 | 24, UNIPHIER_PIN_PULL_UP), | 73 | 24, UNIPHIER_PIN_PULL_UP), |
76 | UNIPHIER_PINCTRL_PIN(17, "XERWE1", UNIPHIER_PIN_IECTRL_NONE, | 74 | UNIPHIER_PINCTRL_PIN(17, "XERWE1", UNIPHIER_PIN_IECTRL_NONE, |
77 | 25, UNIPHIER_PIN_DRV_4_8, | 75 | 25, UNIPHIER_PIN_DRV_1BIT, |
78 | 25, UNIPHIER_PIN_PULL_UP), | 76 | 25, UNIPHIER_PIN_PULL_UP), |
79 | UNIPHIER_PINCTRL_PIN(18, "ES0", UNIPHIER_PIN_IECTRL_NONE, | 77 | UNIPHIER_PINCTRL_PIN(18, "ES0", UNIPHIER_PIN_IECTRL_NONE, |
80 | 27, UNIPHIER_PIN_DRV_4_8, | 78 | 27, UNIPHIER_PIN_DRV_1BIT, |
81 | 27, UNIPHIER_PIN_PULL_UP), | 79 | 27, UNIPHIER_PIN_PULL_UP), |
82 | UNIPHIER_PINCTRL_PIN(19, "ES1", UNIPHIER_PIN_IECTRL_NONE, | 80 | UNIPHIER_PINCTRL_PIN(19, "ES1", UNIPHIER_PIN_IECTRL_NONE, |
83 | 28, UNIPHIER_PIN_DRV_4_8, | 81 | 28, UNIPHIER_PIN_DRV_1BIT, |
84 | 28, UNIPHIER_PIN_PULL_UP), | 82 | 28, UNIPHIER_PIN_PULL_UP), |
85 | UNIPHIER_PINCTRL_PIN(20, "ES2", UNIPHIER_PIN_IECTRL_NONE, | 83 | UNIPHIER_PINCTRL_PIN(20, "ES2", UNIPHIER_PIN_IECTRL_NONE, |
86 | 29, UNIPHIER_PIN_DRV_4_8, | 84 | 29, UNIPHIER_PIN_DRV_1BIT, |
87 | 29, UNIPHIER_PIN_PULL_UP), | 85 | 29, UNIPHIER_PIN_PULL_UP), |
88 | UNIPHIER_PINCTRL_PIN(21, "XERST", UNIPHIER_PIN_IECTRL_NONE, | 86 | UNIPHIER_PINCTRL_PIN(21, "XERST", UNIPHIER_PIN_IECTRL_NONE, |
89 | 38, UNIPHIER_PIN_DRV_4_8, | 87 | 38, UNIPHIER_PIN_DRV_1BIT, |
90 | 38, UNIPHIER_PIN_PULL_UP), | 88 | 38, UNIPHIER_PIN_PULL_UP), |
91 | UNIPHIER_PINCTRL_PIN(22, "MMCCLK", UNIPHIER_PIN_IECTRL_NONE, | 89 | UNIPHIER_PINCTRL_PIN(22, "MMCCLK", UNIPHIER_PIN_IECTRL_NONE, |
92 | 0, UNIPHIER_PIN_DRV_8_12_16_20, | 90 | 0, UNIPHIER_PIN_DRV_2BIT, |
93 | 146, UNIPHIER_PIN_PULL_UP), | 91 | 146, UNIPHIER_PIN_PULL_UP), |
94 | UNIPHIER_PINCTRL_PIN(23, "MMCCMD", UNIPHIER_PIN_IECTRL_NONE, | 92 | UNIPHIER_PINCTRL_PIN(23, "MMCCMD", UNIPHIER_PIN_IECTRL_NONE, |
95 | 4, UNIPHIER_PIN_DRV_8_12_16_20, | 93 | 1, UNIPHIER_PIN_DRV_2BIT, |
96 | 147, UNIPHIER_PIN_PULL_UP), | 94 | 147, UNIPHIER_PIN_PULL_UP), |
97 | UNIPHIER_PINCTRL_PIN(24, "MMCDAT0", UNIPHIER_PIN_IECTRL_NONE, | 95 | UNIPHIER_PINCTRL_PIN(24, "MMCDAT0", UNIPHIER_PIN_IECTRL_NONE, |
98 | 8, UNIPHIER_PIN_DRV_8_12_16_20, | 96 | 2, UNIPHIER_PIN_DRV_2BIT, |
99 | 148, UNIPHIER_PIN_PULL_UP), | 97 | 148, UNIPHIER_PIN_PULL_UP), |
100 | UNIPHIER_PINCTRL_PIN(25, "MMCDAT1", UNIPHIER_PIN_IECTRL_NONE, | 98 | UNIPHIER_PINCTRL_PIN(25, "MMCDAT1", UNIPHIER_PIN_IECTRL_NONE, |
101 | 12, UNIPHIER_PIN_DRV_8_12_16_20, | 99 | 3, UNIPHIER_PIN_DRV_2BIT, |
102 | 149, UNIPHIER_PIN_PULL_UP), | 100 | 149, UNIPHIER_PIN_PULL_UP), |
103 | UNIPHIER_PINCTRL_PIN(26, "MMCDAT2", UNIPHIER_PIN_IECTRL_NONE, | 101 | UNIPHIER_PINCTRL_PIN(26, "MMCDAT2", UNIPHIER_PIN_IECTRL_NONE, |
104 | 16, UNIPHIER_PIN_DRV_8_12_16_20, | 102 | 4, UNIPHIER_PIN_DRV_2BIT, |
105 | 150, UNIPHIER_PIN_PULL_UP), | 103 | 150, UNIPHIER_PIN_PULL_UP), |
106 | UNIPHIER_PINCTRL_PIN(27, "MMCDAT3", UNIPHIER_PIN_IECTRL_NONE, | 104 | UNIPHIER_PINCTRL_PIN(27, "MMCDAT3", UNIPHIER_PIN_IECTRL_NONE, |
107 | 20, UNIPHIER_PIN_DRV_8_12_16_20, | 105 | 5, UNIPHIER_PIN_DRV_2BIT, |
108 | 151, UNIPHIER_PIN_PULL_UP), | 106 | 151, UNIPHIER_PIN_PULL_UP), |
109 | UNIPHIER_PINCTRL_PIN(28, "MMCDAT4", UNIPHIER_PIN_IECTRL_NONE, | 107 | UNIPHIER_PINCTRL_PIN(28, "MMCDAT4", UNIPHIER_PIN_IECTRL_NONE, |
110 | 24, UNIPHIER_PIN_DRV_8_12_16_20, | 108 | 6, UNIPHIER_PIN_DRV_2BIT, |
111 | 152, UNIPHIER_PIN_PULL_UP), | 109 | 152, UNIPHIER_PIN_PULL_UP), |
112 | UNIPHIER_PINCTRL_PIN(29, "MMCDAT5", UNIPHIER_PIN_IECTRL_NONE, | 110 | UNIPHIER_PINCTRL_PIN(29, "MMCDAT5", UNIPHIER_PIN_IECTRL_NONE, |
113 | 28, UNIPHIER_PIN_DRV_8_12_16_20, | 111 | 7, UNIPHIER_PIN_DRV_2BIT, |
114 | 153, UNIPHIER_PIN_PULL_UP), | 112 | 153, UNIPHIER_PIN_PULL_UP), |
115 | UNIPHIER_PINCTRL_PIN(30, "MMCDAT6", UNIPHIER_PIN_IECTRL_NONE, | 113 | UNIPHIER_PINCTRL_PIN(30, "MMCDAT6", UNIPHIER_PIN_IECTRL_NONE, |
116 | 32, UNIPHIER_PIN_DRV_8_12_16_20, | 114 | 8, UNIPHIER_PIN_DRV_2BIT, |
117 | 154, UNIPHIER_PIN_PULL_UP), | 115 | 154, UNIPHIER_PIN_PULL_UP), |
118 | UNIPHIER_PINCTRL_PIN(31, "MMCDAT7", UNIPHIER_PIN_IECTRL_NONE, | 116 | UNIPHIER_PINCTRL_PIN(31, "MMCDAT7", UNIPHIER_PIN_IECTRL_NONE, |
119 | 36, UNIPHIER_PIN_DRV_8_12_16_20, | 117 | 9, UNIPHIER_PIN_DRV_2BIT, |
120 | 155, UNIPHIER_PIN_PULL_UP), | 118 | 155, UNIPHIER_PIN_PULL_UP), |
121 | UNIPHIER_PINCTRL_PIN(32, "RMII_RXD0", 6, | 119 | UNIPHIER_PINCTRL_PIN(32, "RMII_RXD0", 6, |
122 | 39, UNIPHIER_PIN_DRV_4_8, | 120 | 39, UNIPHIER_PIN_DRV_1BIT, |
123 | 39, UNIPHIER_PIN_PULL_DOWN), | 121 | 39, UNIPHIER_PIN_PULL_DOWN), |
124 | UNIPHIER_PINCTRL_PIN(33, "RMII_RXD1", 6, | 122 | UNIPHIER_PINCTRL_PIN(33, "RMII_RXD1", 6, |
125 | 40, UNIPHIER_PIN_DRV_4_8, | 123 | 40, UNIPHIER_PIN_DRV_1BIT, |
126 | 40, UNIPHIER_PIN_PULL_DOWN), | 124 | 40, UNIPHIER_PIN_PULL_DOWN), |
127 | UNIPHIER_PINCTRL_PIN(34, "RMII_CRS_DV", 6, | 125 | UNIPHIER_PINCTRL_PIN(34, "RMII_CRS_DV", 6, |
128 | 41, UNIPHIER_PIN_DRV_4_8, | 126 | 41, UNIPHIER_PIN_DRV_1BIT, |
129 | 41, UNIPHIER_PIN_PULL_DOWN), | 127 | 41, UNIPHIER_PIN_PULL_DOWN), |
130 | UNIPHIER_PINCTRL_PIN(35, "RMII_RXER", 6, | 128 | UNIPHIER_PINCTRL_PIN(35, "RMII_RXER", 6, |
131 | 42, UNIPHIER_PIN_DRV_4_8, | 129 | 42, UNIPHIER_PIN_DRV_1BIT, |
132 | 42, UNIPHIER_PIN_PULL_DOWN), | 130 | 42, UNIPHIER_PIN_PULL_DOWN), |
133 | UNIPHIER_PINCTRL_PIN(36, "RMII_REFCLK", 6, | 131 | UNIPHIER_PINCTRL_PIN(36, "RMII_REFCLK", 6, |
134 | 43, UNIPHIER_PIN_DRV_4_8, | 132 | 43, UNIPHIER_PIN_DRV_1BIT, |
135 | 43, UNIPHIER_PIN_PULL_DOWN), | 133 | 43, UNIPHIER_PIN_PULL_DOWN), |
136 | UNIPHIER_PINCTRL_PIN(37, "RMII_TXD0", 6, | 134 | UNIPHIER_PINCTRL_PIN(37, "RMII_TXD0", 6, |
137 | 44, UNIPHIER_PIN_DRV_4_8, | 135 | 44, UNIPHIER_PIN_DRV_1BIT, |
138 | 44, UNIPHIER_PIN_PULL_DOWN), | 136 | 44, UNIPHIER_PIN_PULL_DOWN), |
139 | UNIPHIER_PINCTRL_PIN(38, "RMII_TXD1", 6, | 137 | UNIPHIER_PINCTRL_PIN(38, "RMII_TXD1", 6, |
140 | 45, UNIPHIER_PIN_DRV_4_8, | 138 | 45, UNIPHIER_PIN_DRV_1BIT, |
141 | 45, UNIPHIER_PIN_PULL_DOWN), | 139 | 45, UNIPHIER_PIN_PULL_DOWN), |
142 | UNIPHIER_PINCTRL_PIN(39, "RMII_TXEN", 6, | 140 | UNIPHIER_PINCTRL_PIN(39, "RMII_TXEN", 6, |
143 | 46, UNIPHIER_PIN_DRV_4_8, | 141 | 46, UNIPHIER_PIN_DRV_1BIT, |
144 | 46, UNIPHIER_PIN_PULL_DOWN), | 142 | 46, UNIPHIER_PIN_PULL_DOWN), |
145 | UNIPHIER_PINCTRL_PIN(40, "MDC", 6, | 143 | UNIPHIER_PINCTRL_PIN(40, "MDC", 6, |
146 | 47, UNIPHIER_PIN_DRV_4_8, | 144 | 47, UNIPHIER_PIN_DRV_1BIT, |
147 | 47, UNIPHIER_PIN_PULL_DOWN), | 145 | 47, UNIPHIER_PIN_PULL_DOWN), |
148 | UNIPHIER_PINCTRL_PIN(41, "MDIO", 6, | 146 | UNIPHIER_PINCTRL_PIN(41, "MDIO", 6, |
149 | 48, UNIPHIER_PIN_DRV_4_8, | 147 | 48, UNIPHIER_PIN_DRV_1BIT, |
150 | 48, UNIPHIER_PIN_PULL_DOWN), | 148 | 48, UNIPHIER_PIN_PULL_DOWN), |
151 | UNIPHIER_PINCTRL_PIN(42, "MDIO_INTL", 6, | 149 | UNIPHIER_PINCTRL_PIN(42, "MDIO_INTL", 6, |
152 | 49, UNIPHIER_PIN_DRV_4_8, | 150 | 49, UNIPHIER_PIN_DRV_1BIT, |
153 | 49, UNIPHIER_PIN_PULL_DOWN), | 151 | 49, UNIPHIER_PIN_PULL_DOWN), |
154 | UNIPHIER_PINCTRL_PIN(43, "PHYRSTL", 6, | 152 | UNIPHIER_PINCTRL_PIN(43, "PHYRSTL", 6, |
155 | 50, UNIPHIER_PIN_DRV_4_8, | 153 | 50, UNIPHIER_PIN_DRV_1BIT, |
156 | 50, UNIPHIER_PIN_PULL_DOWN), | 154 | 50, UNIPHIER_PIN_PULL_DOWN), |
157 | UNIPHIER_PINCTRL_PIN(44, "SDCLK", UNIPHIER_PIN_IECTRL_NONE, | 155 | UNIPHIER_PINCTRL_PIN(44, "SDCLK", UNIPHIER_PIN_IECTRL_NONE, |
158 | 40, UNIPHIER_PIN_DRV_8_12_16_20, | 156 | 10, UNIPHIER_PIN_DRV_2BIT, |
159 | 156, UNIPHIER_PIN_PULL_UP), | 157 | 156, UNIPHIER_PIN_PULL_UP), |
160 | UNIPHIER_PINCTRL_PIN(45, "SDCMD", UNIPHIER_PIN_IECTRL_NONE, | 158 | UNIPHIER_PINCTRL_PIN(45, "SDCMD", UNIPHIER_PIN_IECTRL_NONE, |
161 | 44, UNIPHIER_PIN_DRV_8_12_16_20, | 159 | 11, UNIPHIER_PIN_DRV_2BIT, |
162 | 157, UNIPHIER_PIN_PULL_UP), | 160 | 157, UNIPHIER_PIN_PULL_UP), |
163 | UNIPHIER_PINCTRL_PIN(46, "SDDAT0", UNIPHIER_PIN_IECTRL_NONE, | 161 | UNIPHIER_PINCTRL_PIN(46, "SDDAT0", UNIPHIER_PIN_IECTRL_NONE, |
164 | 48, UNIPHIER_PIN_DRV_8_12_16_20, | 162 | 12, UNIPHIER_PIN_DRV_2BIT, |
165 | 158, UNIPHIER_PIN_PULL_UP), | 163 | 158, UNIPHIER_PIN_PULL_UP), |
166 | UNIPHIER_PINCTRL_PIN(47, "SDDAT1", UNIPHIER_PIN_IECTRL_NONE, | 164 | UNIPHIER_PINCTRL_PIN(47, "SDDAT1", UNIPHIER_PIN_IECTRL_NONE, |
167 | 52, UNIPHIER_PIN_DRV_8_12_16_20, | 165 | 13, UNIPHIER_PIN_DRV_2BIT, |
168 | 159, UNIPHIER_PIN_PULL_UP), | 166 | 159, UNIPHIER_PIN_PULL_UP), |
169 | UNIPHIER_PINCTRL_PIN(48, "SDDAT2", UNIPHIER_PIN_IECTRL_NONE, | 167 | UNIPHIER_PINCTRL_PIN(48, "SDDAT2", UNIPHIER_PIN_IECTRL_NONE, |
170 | 56, UNIPHIER_PIN_DRV_8_12_16_20, | 168 | 14, UNIPHIER_PIN_DRV_2BIT, |
171 | 160, UNIPHIER_PIN_PULL_UP), | 169 | 160, UNIPHIER_PIN_PULL_UP), |
172 | UNIPHIER_PINCTRL_PIN(49, "SDDAT3", UNIPHIER_PIN_IECTRL_NONE, | 170 | UNIPHIER_PINCTRL_PIN(49, "SDDAT3", UNIPHIER_PIN_IECTRL_NONE, |
173 | 60, UNIPHIER_PIN_DRV_8_12_16_20, | 171 | 15, UNIPHIER_PIN_DRV_2BIT, |
174 | 161, UNIPHIER_PIN_PULL_UP), | 172 | 161, UNIPHIER_PIN_PULL_UP), |
175 | UNIPHIER_PINCTRL_PIN(50, "SDCD", UNIPHIER_PIN_IECTRL_NONE, | 173 | UNIPHIER_PINCTRL_PIN(50, "SDCD", UNIPHIER_PIN_IECTRL_NONE, |
176 | 51, UNIPHIER_PIN_DRV_4_8, | 174 | 51, UNIPHIER_PIN_DRV_1BIT, |
177 | 51, UNIPHIER_PIN_PULL_UP), | 175 | 51, UNIPHIER_PIN_PULL_UP), |
178 | UNIPHIER_PINCTRL_PIN(51, "SDWP", UNIPHIER_PIN_IECTRL_NONE, | 176 | UNIPHIER_PINCTRL_PIN(51, "SDWP", UNIPHIER_PIN_IECTRL_NONE, |
179 | 52, UNIPHIER_PIN_DRV_4_8, | 177 | 52, UNIPHIER_PIN_DRV_1BIT, |
180 | 52, UNIPHIER_PIN_PULL_UP), | 178 | 52, UNIPHIER_PIN_PULL_UP), |
181 | UNIPHIER_PINCTRL_PIN(52, "SDVOLC", UNIPHIER_PIN_IECTRL_NONE, | 179 | UNIPHIER_PINCTRL_PIN(52, "SDVOLC", UNIPHIER_PIN_IECTRL_NONE, |
182 | 53, UNIPHIER_PIN_DRV_4_8, | 180 | 53, UNIPHIER_PIN_DRV_1BIT, |
183 | 53, UNIPHIER_PIN_PULL_UP), | 181 | 53, UNIPHIER_PIN_PULL_UP), |
184 | UNIPHIER_PINCTRL_PIN(53, "USB0VBUS", 0, | 182 | UNIPHIER_PINCTRL_PIN(53, "USB0VBUS", 0, |
185 | 54, UNIPHIER_PIN_DRV_4_8, | 183 | 54, UNIPHIER_PIN_DRV_1BIT, |
186 | 54, UNIPHIER_PIN_PULL_DOWN), | 184 | 54, UNIPHIER_PIN_PULL_DOWN), |
187 | UNIPHIER_PINCTRL_PIN(54, "USB0OD", 0, | 185 | UNIPHIER_PINCTRL_PIN(54, "USB0OD", 0, |
188 | 55, UNIPHIER_PIN_DRV_4_8, | 186 | 55, UNIPHIER_PIN_DRV_1BIT, |
189 | 55, UNIPHIER_PIN_PULL_DOWN), | 187 | 55, UNIPHIER_PIN_PULL_DOWN), |
190 | UNIPHIER_PINCTRL_PIN(55, "USB1VBUS", 0, | 188 | UNIPHIER_PINCTRL_PIN(55, "USB1VBUS", 0, |
191 | 56, UNIPHIER_PIN_DRV_4_8, | 189 | 56, UNIPHIER_PIN_DRV_1BIT, |
192 | 56, UNIPHIER_PIN_PULL_DOWN), | 190 | 56, UNIPHIER_PIN_PULL_DOWN), |
193 | UNIPHIER_PINCTRL_PIN(56, "USB1OD", 0, | 191 | UNIPHIER_PINCTRL_PIN(56, "USB1OD", 0, |
194 | 57, UNIPHIER_PIN_DRV_4_8, | 192 | 57, UNIPHIER_PIN_DRV_1BIT, |
195 | 57, UNIPHIER_PIN_PULL_DOWN), | 193 | 57, UNIPHIER_PIN_PULL_DOWN), |
196 | UNIPHIER_PINCTRL_PIN(57, "PCRESET", 0, | 194 | UNIPHIER_PINCTRL_PIN(57, "PCRESET", 0, |
197 | 58, UNIPHIER_PIN_DRV_4_8, | 195 | 58, UNIPHIER_PIN_DRV_1BIT, |
198 | 58, UNIPHIER_PIN_PULL_DOWN), | 196 | 58, UNIPHIER_PIN_PULL_DOWN), |
199 | UNIPHIER_PINCTRL_PIN(58, "PCREG", 0, | 197 | UNIPHIER_PINCTRL_PIN(58, "PCREG", 0, |
200 | 59, UNIPHIER_PIN_DRV_4_8, | 198 | 59, UNIPHIER_PIN_DRV_1BIT, |
201 | 59, UNIPHIER_PIN_PULL_DOWN), | 199 | 59, UNIPHIER_PIN_PULL_DOWN), |
202 | UNIPHIER_PINCTRL_PIN(59, "PCCE2", 0, | 200 | UNIPHIER_PINCTRL_PIN(59, "PCCE2", 0, |
203 | 60, UNIPHIER_PIN_DRV_4_8, | 201 | 60, UNIPHIER_PIN_DRV_1BIT, |
204 | 60, UNIPHIER_PIN_PULL_DOWN), | 202 | 60, UNIPHIER_PIN_PULL_DOWN), |
205 | UNIPHIER_PINCTRL_PIN(60, "PCVS1", 0, | 203 | UNIPHIER_PINCTRL_PIN(60, "PCVS1", 0, |
206 | 61, UNIPHIER_PIN_DRV_4_8, | 204 | 61, UNIPHIER_PIN_DRV_1BIT, |
207 | 61, UNIPHIER_PIN_PULL_DOWN), | 205 | 61, UNIPHIER_PIN_PULL_DOWN), |
208 | UNIPHIER_PINCTRL_PIN(61, "PCCD2", 0, | 206 | UNIPHIER_PINCTRL_PIN(61, "PCCD2", 0, |
209 | 62, UNIPHIER_PIN_DRV_4_8, | 207 | 62, UNIPHIER_PIN_DRV_1BIT, |
210 | 62, UNIPHIER_PIN_PULL_DOWN), | 208 | 62, UNIPHIER_PIN_PULL_DOWN), |
211 | UNIPHIER_PINCTRL_PIN(62, "PCCD1", 0, | 209 | UNIPHIER_PINCTRL_PIN(62, "PCCD1", 0, |
212 | 63, UNIPHIER_PIN_DRV_4_8, | 210 | 63, UNIPHIER_PIN_DRV_1BIT, |
213 | 63, UNIPHIER_PIN_PULL_DOWN), | 211 | 63, UNIPHIER_PIN_PULL_DOWN), |
214 | UNIPHIER_PINCTRL_PIN(63, "PCREADY", 0, | 212 | UNIPHIER_PINCTRL_PIN(63, "PCREADY", 0, |
215 | 64, UNIPHIER_PIN_DRV_4_8, | 213 | 64, UNIPHIER_PIN_DRV_1BIT, |
216 | 64, UNIPHIER_PIN_PULL_DOWN), | 214 | 64, UNIPHIER_PIN_PULL_DOWN), |
217 | UNIPHIER_PINCTRL_PIN(64, "PCDOE", 0, | 215 | UNIPHIER_PINCTRL_PIN(64, "PCDOE", 0, |
218 | 65, UNIPHIER_PIN_DRV_4_8, | 216 | 65, UNIPHIER_PIN_DRV_1BIT, |
219 | 65, UNIPHIER_PIN_PULL_DOWN), | 217 | 65, UNIPHIER_PIN_PULL_DOWN), |
220 | UNIPHIER_PINCTRL_PIN(65, "PCCE1", 0, | 218 | UNIPHIER_PINCTRL_PIN(65, "PCCE1", 0, |
221 | 66, UNIPHIER_PIN_DRV_4_8, | 219 | 66, UNIPHIER_PIN_DRV_1BIT, |
222 | 66, UNIPHIER_PIN_PULL_DOWN), | 220 | 66, UNIPHIER_PIN_PULL_DOWN), |
223 | UNIPHIER_PINCTRL_PIN(66, "PCWE", 0, | 221 | UNIPHIER_PINCTRL_PIN(66, "PCWE", 0, |
224 | 67, UNIPHIER_PIN_DRV_4_8, | 222 | 67, UNIPHIER_PIN_DRV_1BIT, |
225 | 67, UNIPHIER_PIN_PULL_DOWN), | 223 | 67, UNIPHIER_PIN_PULL_DOWN), |
226 | UNIPHIER_PINCTRL_PIN(67, "PCOE", 0, | 224 | UNIPHIER_PINCTRL_PIN(67, "PCOE", 0, |
227 | 68, UNIPHIER_PIN_DRV_4_8, | 225 | 68, UNIPHIER_PIN_DRV_1BIT, |
228 | 68, UNIPHIER_PIN_PULL_DOWN), | 226 | 68, UNIPHIER_PIN_PULL_DOWN), |
229 | UNIPHIER_PINCTRL_PIN(68, "PCWAIT", 0, | 227 | UNIPHIER_PINCTRL_PIN(68, "PCWAIT", 0, |
230 | 69, UNIPHIER_PIN_DRV_4_8, | 228 | 69, UNIPHIER_PIN_DRV_1BIT, |
231 | 69, UNIPHIER_PIN_PULL_DOWN), | 229 | 69, UNIPHIER_PIN_PULL_DOWN), |
232 | UNIPHIER_PINCTRL_PIN(69, "PCIOWR", 0, | 230 | UNIPHIER_PINCTRL_PIN(69, "PCIOWR", 0, |
233 | 70, UNIPHIER_PIN_DRV_4_8, | 231 | 70, UNIPHIER_PIN_DRV_1BIT, |
234 | 70, UNIPHIER_PIN_PULL_DOWN), | 232 | 70, UNIPHIER_PIN_PULL_DOWN), |
235 | UNIPHIER_PINCTRL_PIN(70, "PCIORD", 0, | 233 | UNIPHIER_PINCTRL_PIN(70, "PCIORD", 0, |
236 | 71, UNIPHIER_PIN_DRV_4_8, | 234 | 71, UNIPHIER_PIN_DRV_1BIT, |
237 | 71, UNIPHIER_PIN_PULL_DOWN), | 235 | 71, UNIPHIER_PIN_PULL_DOWN), |
238 | UNIPHIER_PINCTRL_PIN(71, "HS0DIN0", 0, | 236 | UNIPHIER_PINCTRL_PIN(71, "HS0DIN0", 0, |
239 | 72, UNIPHIER_PIN_DRV_4_8, | 237 | 72, UNIPHIER_PIN_DRV_1BIT, |
240 | 72, UNIPHIER_PIN_PULL_DOWN), | 238 | 72, UNIPHIER_PIN_PULL_DOWN), |
241 | UNIPHIER_PINCTRL_PIN(72, "HS0DIN1", 0, | 239 | UNIPHIER_PINCTRL_PIN(72, "HS0DIN1", 0, |
242 | 73, UNIPHIER_PIN_DRV_4_8, | 240 | 73, UNIPHIER_PIN_DRV_1BIT, |
243 | 73, UNIPHIER_PIN_PULL_DOWN), | 241 | 73, UNIPHIER_PIN_PULL_DOWN), |
244 | UNIPHIER_PINCTRL_PIN(73, "HS0DIN2", 0, | 242 | UNIPHIER_PINCTRL_PIN(73, "HS0DIN2", 0, |
245 | 74, UNIPHIER_PIN_DRV_4_8, | 243 | 74, UNIPHIER_PIN_DRV_1BIT, |
246 | 74, UNIPHIER_PIN_PULL_DOWN), | 244 | 74, UNIPHIER_PIN_PULL_DOWN), |
247 | UNIPHIER_PINCTRL_PIN(74, "HS0DIN3", 0, | 245 | UNIPHIER_PINCTRL_PIN(74, "HS0DIN3", 0, |
248 | 75, UNIPHIER_PIN_DRV_4_8, | 246 | 75, UNIPHIER_PIN_DRV_1BIT, |
249 | 75, UNIPHIER_PIN_PULL_DOWN), | 247 | 75, UNIPHIER_PIN_PULL_DOWN), |
250 | UNIPHIER_PINCTRL_PIN(75, "HS0DIN4", 0, | 248 | UNIPHIER_PINCTRL_PIN(75, "HS0DIN4", 0, |
251 | 76, UNIPHIER_PIN_DRV_4_8, | 249 | 76, UNIPHIER_PIN_DRV_1BIT, |
252 | 76, UNIPHIER_PIN_PULL_DOWN), | 250 | 76, UNIPHIER_PIN_PULL_DOWN), |
253 | UNIPHIER_PINCTRL_PIN(76, "HS0DIN5", 0, | 251 | UNIPHIER_PINCTRL_PIN(76, "HS0DIN5", 0, |
254 | 77, UNIPHIER_PIN_DRV_4_8, | 252 | 77, UNIPHIER_PIN_DRV_1BIT, |
255 | 77, UNIPHIER_PIN_PULL_DOWN), | 253 | 77, UNIPHIER_PIN_PULL_DOWN), |
256 | UNIPHIER_PINCTRL_PIN(77, "HS0DIN6", 0, | 254 | UNIPHIER_PINCTRL_PIN(77, "HS0DIN6", 0, |
257 | 78, UNIPHIER_PIN_DRV_4_8, | 255 | 78, UNIPHIER_PIN_DRV_1BIT, |
258 | 78, UNIPHIER_PIN_PULL_DOWN), | 256 | 78, UNIPHIER_PIN_PULL_DOWN), |
259 | UNIPHIER_PINCTRL_PIN(78, "HS0DIN7", 0, | 257 | UNIPHIER_PINCTRL_PIN(78, "HS0DIN7", 0, |
260 | 79, UNIPHIER_PIN_DRV_4_8, | 258 | 79, UNIPHIER_PIN_DRV_1BIT, |
261 | 79, UNIPHIER_PIN_PULL_DOWN), | 259 | 79, UNIPHIER_PIN_PULL_DOWN), |
262 | UNIPHIER_PINCTRL_PIN(79, "HS0BCLKIN", 0, | 260 | UNIPHIER_PINCTRL_PIN(79, "HS0BCLKIN", 0, |
263 | 80, UNIPHIER_PIN_DRV_4_8, | 261 | 80, UNIPHIER_PIN_DRV_1BIT, |
264 | 80, UNIPHIER_PIN_PULL_DOWN), | 262 | 80, UNIPHIER_PIN_PULL_DOWN), |
265 | UNIPHIER_PINCTRL_PIN(80, "HS0VALIN", 0, | 263 | UNIPHIER_PINCTRL_PIN(80, "HS0VALIN", 0, |
266 | 81, UNIPHIER_PIN_DRV_4_8, | 264 | 81, UNIPHIER_PIN_DRV_1BIT, |
267 | 81, UNIPHIER_PIN_PULL_DOWN), | 265 | 81, UNIPHIER_PIN_PULL_DOWN), |
268 | UNIPHIER_PINCTRL_PIN(81, "HS0SYNCIN", 0, | 266 | UNIPHIER_PINCTRL_PIN(81, "HS0SYNCIN", 0, |
269 | 82, UNIPHIER_PIN_DRV_4_8, | 267 | 82, UNIPHIER_PIN_DRV_1BIT, |
270 | 82, UNIPHIER_PIN_PULL_DOWN), | 268 | 82, UNIPHIER_PIN_PULL_DOWN), |
271 | UNIPHIER_PINCTRL_PIN(82, "HSDOUT0", 0, | 269 | UNIPHIER_PINCTRL_PIN(82, "HSDOUT0", 0, |
272 | 83, UNIPHIER_PIN_DRV_4_8, | 270 | 83, UNIPHIER_PIN_DRV_1BIT, |
273 | 83, UNIPHIER_PIN_PULL_DOWN), | 271 | 83, UNIPHIER_PIN_PULL_DOWN), |
274 | UNIPHIER_PINCTRL_PIN(83, "HSDOUT1", 0, | 272 | UNIPHIER_PINCTRL_PIN(83, "HSDOUT1", 0, |
275 | 84, UNIPHIER_PIN_DRV_4_8, | 273 | 84, UNIPHIER_PIN_DRV_1BIT, |
276 | 84, UNIPHIER_PIN_PULL_DOWN), | 274 | 84, UNIPHIER_PIN_PULL_DOWN), |
277 | UNIPHIER_PINCTRL_PIN(84, "HSDOUT2", 0, | 275 | UNIPHIER_PINCTRL_PIN(84, "HSDOUT2", 0, |
278 | 85, UNIPHIER_PIN_DRV_4_8, | 276 | 85, UNIPHIER_PIN_DRV_1BIT, |
279 | 85, UNIPHIER_PIN_PULL_DOWN), | 277 | 85, UNIPHIER_PIN_PULL_DOWN), |
280 | UNIPHIER_PINCTRL_PIN(85, "HSDOUT3", 0, | 278 | UNIPHIER_PINCTRL_PIN(85, "HSDOUT3", 0, |
281 | 86, UNIPHIER_PIN_DRV_4_8, | 279 | 86, UNIPHIER_PIN_DRV_1BIT, |
282 | 86, UNIPHIER_PIN_PULL_DOWN), | 280 | 86, UNIPHIER_PIN_PULL_DOWN), |
283 | UNIPHIER_PINCTRL_PIN(86, "HSDOUT4", 0, | 281 | UNIPHIER_PINCTRL_PIN(86, "HSDOUT4", 0, |
284 | 87, UNIPHIER_PIN_DRV_4_8, | 282 | 87, UNIPHIER_PIN_DRV_1BIT, |
285 | 87, UNIPHIER_PIN_PULL_DOWN), | 283 | 87, UNIPHIER_PIN_PULL_DOWN), |
286 | UNIPHIER_PINCTRL_PIN(87, "HSDOUT5", 0, | 284 | UNIPHIER_PINCTRL_PIN(87, "HSDOUT5", 0, |
287 | 88, UNIPHIER_PIN_DRV_4_8, | 285 | 88, UNIPHIER_PIN_DRV_1BIT, |
288 | 88, UNIPHIER_PIN_PULL_DOWN), | 286 | 88, UNIPHIER_PIN_PULL_DOWN), |
289 | UNIPHIER_PINCTRL_PIN(88, "HSDOUT6", 0, | 287 | UNIPHIER_PINCTRL_PIN(88, "HSDOUT6", 0, |
290 | 89, UNIPHIER_PIN_DRV_4_8, | 288 | 89, UNIPHIER_PIN_DRV_1BIT, |
291 | 89, UNIPHIER_PIN_PULL_DOWN), | 289 | 89, UNIPHIER_PIN_PULL_DOWN), |
292 | UNIPHIER_PINCTRL_PIN(89, "HSDOUT7", 0, | 290 | UNIPHIER_PINCTRL_PIN(89, "HSDOUT7", 0, |
293 | 90, UNIPHIER_PIN_DRV_4_8, | 291 | 90, UNIPHIER_PIN_DRV_1BIT, |
294 | 90, UNIPHIER_PIN_PULL_DOWN), | 292 | 90, UNIPHIER_PIN_PULL_DOWN), |
295 | UNIPHIER_PINCTRL_PIN(90, "HSBCLKOUT", 0, | 293 | UNIPHIER_PINCTRL_PIN(90, "HSBCLKOUT", 0, |
296 | 91, UNIPHIER_PIN_DRV_4_8, | 294 | 91, UNIPHIER_PIN_DRV_1BIT, |
297 | 91, UNIPHIER_PIN_PULL_DOWN), | 295 | 91, UNIPHIER_PIN_PULL_DOWN), |
298 | UNIPHIER_PINCTRL_PIN(91, "HSVALOUT", 0, | 296 | UNIPHIER_PINCTRL_PIN(91, "HSVALOUT", 0, |
299 | 92, UNIPHIER_PIN_DRV_4_8, | 297 | 92, UNIPHIER_PIN_DRV_1BIT, |
300 | 92, UNIPHIER_PIN_PULL_DOWN), | 298 | 92, UNIPHIER_PIN_PULL_DOWN), |
301 | UNIPHIER_PINCTRL_PIN(92, "HSSYNCOUT", 0, | 299 | UNIPHIER_PINCTRL_PIN(92, "HSSYNCOUT", 0, |
302 | 93, UNIPHIER_PIN_DRV_4_8, | 300 | 93, UNIPHIER_PIN_DRV_1BIT, |
303 | 93, UNIPHIER_PIN_PULL_DOWN), | 301 | 93, UNIPHIER_PIN_PULL_DOWN), |
304 | UNIPHIER_PINCTRL_PIN(93, "AGCI", 3, | 302 | UNIPHIER_PINCTRL_PIN(93, "AGCI", 3, |
305 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 303 | -1, UNIPHIER_PIN_DRV_FIXED4, |
306 | 162, UNIPHIER_PIN_PULL_DOWN), | 304 | 162, UNIPHIER_PIN_PULL_DOWN), |
307 | UNIPHIER_PINCTRL_PIN(94, "AGCR", 4, | 305 | UNIPHIER_PINCTRL_PIN(94, "AGCR", 4, |
308 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 306 | -1, UNIPHIER_PIN_DRV_FIXED4, |
309 | 163, UNIPHIER_PIN_PULL_DOWN), | 307 | 163, UNIPHIER_PIN_PULL_DOWN), |
310 | UNIPHIER_PINCTRL_PIN(95, "AGCBS", 5, | 308 | UNIPHIER_PINCTRL_PIN(95, "AGCBS", 5, |
311 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 309 | -1, UNIPHIER_PIN_DRV_FIXED4, |
312 | 164, UNIPHIER_PIN_PULL_DOWN), | 310 | 164, UNIPHIER_PIN_PULL_DOWN), |
313 | UNIPHIER_PINCTRL_PIN(96, "IECOUT", 0, | 311 | UNIPHIER_PINCTRL_PIN(96, "IECOUT", 0, |
314 | 94, UNIPHIER_PIN_DRV_4_8, | 312 | 94, UNIPHIER_PIN_DRV_1BIT, |
315 | 94, UNIPHIER_PIN_PULL_DOWN), | 313 | 94, UNIPHIER_PIN_PULL_DOWN), |
316 | UNIPHIER_PINCTRL_PIN(97, "ASMCK", 0, | 314 | UNIPHIER_PINCTRL_PIN(97, "ASMCK", 0, |
317 | 95, UNIPHIER_PIN_DRV_4_8, | 315 | 95, UNIPHIER_PIN_DRV_1BIT, |
318 | 95, UNIPHIER_PIN_PULL_DOWN), | 316 | 95, UNIPHIER_PIN_PULL_DOWN), |
319 | UNIPHIER_PINCTRL_PIN(98, "ABCKO", UNIPHIER_PIN_IECTRL_NONE, | 317 | UNIPHIER_PINCTRL_PIN(98, "ABCKO", UNIPHIER_PIN_IECTRL_NONE, |
320 | 96, UNIPHIER_PIN_DRV_4_8, | 318 | 96, UNIPHIER_PIN_DRV_1BIT, |
321 | 96, UNIPHIER_PIN_PULL_DOWN), | 319 | 96, UNIPHIER_PIN_PULL_DOWN), |
322 | UNIPHIER_PINCTRL_PIN(99, "ALRCKO", UNIPHIER_PIN_IECTRL_NONE, | 320 | UNIPHIER_PINCTRL_PIN(99, "ALRCKO", UNIPHIER_PIN_IECTRL_NONE, |
323 | 97, UNIPHIER_PIN_DRV_4_8, | 321 | 97, UNIPHIER_PIN_DRV_1BIT, |
324 | 97, UNIPHIER_PIN_PULL_DOWN), | 322 | 97, UNIPHIER_PIN_PULL_DOWN), |
325 | UNIPHIER_PINCTRL_PIN(100, "ASDOUT0", UNIPHIER_PIN_IECTRL_NONE, | 323 | UNIPHIER_PINCTRL_PIN(100, "ASDOUT0", UNIPHIER_PIN_IECTRL_NONE, |
326 | 98, UNIPHIER_PIN_DRV_4_8, | 324 | 98, UNIPHIER_PIN_DRV_1BIT, |
327 | 98, UNIPHIER_PIN_PULL_DOWN), | 325 | 98, UNIPHIER_PIN_PULL_DOWN), |
328 | UNIPHIER_PINCTRL_PIN(101, "ARCOUT", 0, | 326 | UNIPHIER_PINCTRL_PIN(101, "ARCOUT", 0, |
329 | 99, UNIPHIER_PIN_DRV_4_8, | 327 | 99, UNIPHIER_PIN_DRV_1BIT, |
330 | 99, UNIPHIER_PIN_PULL_DOWN), | 328 | 99, UNIPHIER_PIN_PULL_DOWN), |
331 | UNIPHIER_PINCTRL_PIN(102, "SDA0", UNIPHIER_PIN_IECTRL_NONE, | 329 | UNIPHIER_PINCTRL_PIN(102, "SDA0", UNIPHIER_PIN_IECTRL_NONE, |
332 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 330 | -1, UNIPHIER_PIN_DRV_FIXED4, |
333 | -1, UNIPHIER_PIN_PULL_NONE), | 331 | -1, UNIPHIER_PIN_PULL_NONE), |
334 | UNIPHIER_PINCTRL_PIN(103, "SCL0", UNIPHIER_PIN_IECTRL_NONE, | 332 | UNIPHIER_PINCTRL_PIN(103, "SCL0", UNIPHIER_PIN_IECTRL_NONE, |
335 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 333 | -1, UNIPHIER_PIN_DRV_FIXED4, |
336 | -1, UNIPHIER_PIN_PULL_NONE), | 334 | -1, UNIPHIER_PIN_PULL_NONE), |
337 | UNIPHIER_PINCTRL_PIN(104, "SDA1", UNIPHIER_PIN_IECTRL_NONE, | 335 | UNIPHIER_PINCTRL_PIN(104, "SDA1", UNIPHIER_PIN_IECTRL_NONE, |
338 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 336 | -1, UNIPHIER_PIN_DRV_FIXED4, |
339 | -1, UNIPHIER_PIN_PULL_NONE), | 337 | -1, UNIPHIER_PIN_PULL_NONE), |
340 | UNIPHIER_PINCTRL_PIN(105, "SCL1", UNIPHIER_PIN_IECTRL_NONE, | 338 | UNIPHIER_PINCTRL_PIN(105, "SCL1", UNIPHIER_PIN_IECTRL_NONE, |
341 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 339 | -1, UNIPHIER_PIN_DRV_FIXED4, |
342 | -1, UNIPHIER_PIN_PULL_NONE), | 340 | -1, UNIPHIER_PIN_PULL_NONE), |
343 | UNIPHIER_PINCTRL_PIN(106, "DMDSDA0", UNIPHIER_PIN_IECTRL_NONE, | 341 | UNIPHIER_PINCTRL_PIN(106, "DMDSDA0", UNIPHIER_PIN_IECTRL_NONE, |
344 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 342 | -1, UNIPHIER_PIN_DRV_FIXED4, |
345 | -1, UNIPHIER_PIN_PULL_NONE), | 343 | -1, UNIPHIER_PIN_PULL_NONE), |
346 | UNIPHIER_PINCTRL_PIN(107, "DMDSCL0", UNIPHIER_PIN_IECTRL_NONE, | 344 | UNIPHIER_PINCTRL_PIN(107, "DMDSCL0", UNIPHIER_PIN_IECTRL_NONE, |
347 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 345 | -1, UNIPHIER_PIN_DRV_FIXED4, |
348 | -1, UNIPHIER_PIN_PULL_NONE), | 346 | -1, UNIPHIER_PIN_PULL_NONE), |
349 | UNIPHIER_PINCTRL_PIN(108, "DMDSDA1", UNIPHIER_PIN_IECTRL_NONE, | 347 | UNIPHIER_PINCTRL_PIN(108, "DMDSDA1", UNIPHIER_PIN_IECTRL_NONE, |
350 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 348 | -1, UNIPHIER_PIN_DRV_FIXED4, |
351 | -1, UNIPHIER_PIN_PULL_NONE), | 349 | -1, UNIPHIER_PIN_PULL_NONE), |
352 | UNIPHIER_PINCTRL_PIN(109, "DMDSCL1", UNIPHIER_PIN_IECTRL_NONE, | 350 | UNIPHIER_PINCTRL_PIN(109, "DMDSCL1", UNIPHIER_PIN_IECTRL_NONE, |
353 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 351 | -1, UNIPHIER_PIN_DRV_FIXED4, |
354 | -1, UNIPHIER_PIN_PULL_NONE), | 352 | -1, UNIPHIER_PIN_PULL_NONE), |
355 | UNIPHIER_PINCTRL_PIN(110, "SBO0", UNIPHIER_PIN_IECTRL_NONE, | 353 | UNIPHIER_PINCTRL_PIN(110, "SBO0", UNIPHIER_PIN_IECTRL_NONE, |
356 | 100, UNIPHIER_PIN_DRV_4_8, | 354 | 100, UNIPHIER_PIN_DRV_1BIT, |
357 | 100, UNIPHIER_PIN_PULL_UP), | 355 | 100, UNIPHIER_PIN_PULL_UP), |
358 | UNIPHIER_PINCTRL_PIN(111, "SBI0", UNIPHIER_PIN_IECTRL_NONE, | 356 | UNIPHIER_PINCTRL_PIN(111, "SBI0", UNIPHIER_PIN_IECTRL_NONE, |
359 | 101, UNIPHIER_PIN_DRV_4_8, | 357 | 101, UNIPHIER_PIN_DRV_1BIT, |
360 | 101, UNIPHIER_PIN_PULL_UP), | 358 | 101, UNIPHIER_PIN_PULL_UP), |
361 | UNIPHIER_PINCTRL_PIN(112, "HIN", 1, | 359 | UNIPHIER_PINCTRL_PIN(112, "HIN", 1, |
362 | -1, UNIPHIER_PIN_DRV_FIXED_5, | 360 | -1, UNIPHIER_PIN_DRV_FIXED5, |
363 | -1, UNIPHIER_PIN_PULL_NONE), | 361 | -1, UNIPHIER_PIN_PULL_NONE), |
364 | UNIPHIER_PINCTRL_PIN(113, "VIN", 2, | 362 | UNIPHIER_PINCTRL_PIN(113, "VIN", 2, |
365 | -1, UNIPHIER_PIN_DRV_FIXED_5, | 363 | -1, UNIPHIER_PIN_DRV_FIXED5, |
366 | -1, UNIPHIER_PIN_PULL_NONE), | 364 | -1, UNIPHIER_PIN_PULL_NONE), |
367 | UNIPHIER_PINCTRL_PIN(114, "TCON0", UNIPHIER_PIN_IECTRL_NONE, | 365 | UNIPHIER_PINCTRL_PIN(114, "TCON0", UNIPHIER_PIN_IECTRL_NONE, |
368 | 102, UNIPHIER_PIN_DRV_4_8, | 366 | 102, UNIPHIER_PIN_DRV_1BIT, |
369 | 102, UNIPHIER_PIN_PULL_DOWN), | 367 | 102, UNIPHIER_PIN_PULL_DOWN), |
370 | UNIPHIER_PINCTRL_PIN(115, "TCON1", UNIPHIER_PIN_IECTRL_NONE, | 368 | UNIPHIER_PINCTRL_PIN(115, "TCON1", UNIPHIER_PIN_IECTRL_NONE, |
371 | 103, UNIPHIER_PIN_DRV_4_8, | 369 | 103, UNIPHIER_PIN_DRV_1BIT, |
372 | 103, UNIPHIER_PIN_PULL_DOWN), | 370 | 103, UNIPHIER_PIN_PULL_DOWN), |
373 | UNIPHIER_PINCTRL_PIN(116, "TCON2", UNIPHIER_PIN_IECTRL_NONE, | 371 | UNIPHIER_PINCTRL_PIN(116, "TCON2", UNIPHIER_PIN_IECTRL_NONE, |
374 | 104, UNIPHIER_PIN_DRV_4_8, | 372 | 104, UNIPHIER_PIN_DRV_1BIT, |
375 | 104, UNIPHIER_PIN_PULL_DOWN), | 373 | 104, UNIPHIER_PIN_PULL_DOWN), |
376 | UNIPHIER_PINCTRL_PIN(117, "TCON3", UNIPHIER_PIN_IECTRL_NONE, | 374 | UNIPHIER_PINCTRL_PIN(117, "TCON3", UNIPHIER_PIN_IECTRL_NONE, |
377 | 105, UNIPHIER_PIN_DRV_4_8, | 375 | 105, UNIPHIER_PIN_DRV_1BIT, |
378 | 105, UNIPHIER_PIN_PULL_DOWN), | 376 | 105, UNIPHIER_PIN_PULL_DOWN), |
379 | UNIPHIER_PINCTRL_PIN(118, "TCON4", UNIPHIER_PIN_IECTRL_NONE, | 377 | UNIPHIER_PINCTRL_PIN(118, "TCON4", UNIPHIER_PIN_IECTRL_NONE, |
380 | 106, UNIPHIER_PIN_DRV_4_8, | 378 | 106, UNIPHIER_PIN_DRV_1BIT, |
381 | 106, UNIPHIER_PIN_PULL_DOWN), | 379 | 106, UNIPHIER_PIN_PULL_DOWN), |
382 | UNIPHIER_PINCTRL_PIN(119, "TCON5", UNIPHIER_PIN_IECTRL_NONE, | 380 | UNIPHIER_PINCTRL_PIN(119, "TCON5", UNIPHIER_PIN_IECTRL_NONE, |
383 | 107, UNIPHIER_PIN_DRV_4_8, | 381 | 107, UNIPHIER_PIN_DRV_1BIT, |
384 | 107, UNIPHIER_PIN_PULL_DOWN), | 382 | 107, UNIPHIER_PIN_PULL_DOWN), |
385 | UNIPHIER_PINCTRL_PIN(120, "TCON6", 0, | 383 | UNIPHIER_PINCTRL_PIN(120, "TCON6", 0, |
386 | 108, UNIPHIER_PIN_DRV_4_8, | 384 | 108, UNIPHIER_PIN_DRV_1BIT, |
387 | 108, UNIPHIER_PIN_PULL_DOWN), | 385 | 108, UNIPHIER_PIN_PULL_DOWN), |
388 | UNIPHIER_PINCTRL_PIN(121, "TCON7", 0, | 386 | UNIPHIER_PINCTRL_PIN(121, "TCON7", 0, |
389 | 109, UNIPHIER_PIN_DRV_4_8, | 387 | 109, UNIPHIER_PIN_DRV_1BIT, |
390 | 109, UNIPHIER_PIN_PULL_DOWN), | 388 | 109, UNIPHIER_PIN_PULL_DOWN), |
391 | UNIPHIER_PINCTRL_PIN(122, "PWMA", 0, | 389 | UNIPHIER_PINCTRL_PIN(122, "PWMA", 0, |
392 | 110, UNIPHIER_PIN_DRV_4_8, | 390 | 110, UNIPHIER_PIN_DRV_1BIT, |
393 | 110, UNIPHIER_PIN_PULL_DOWN), | 391 | 110, UNIPHIER_PIN_PULL_DOWN), |
394 | UNIPHIER_PINCTRL_PIN(123, "XIRQ1", 0, | 392 | UNIPHIER_PINCTRL_PIN(123, "XIRQ1", 0, |
395 | 111, UNIPHIER_PIN_DRV_4_8, | 393 | 111, UNIPHIER_PIN_DRV_1BIT, |
396 | 111, UNIPHIER_PIN_PULL_DOWN), | 394 | 111, UNIPHIER_PIN_PULL_DOWN), |
397 | UNIPHIER_PINCTRL_PIN(124, "XIRQ2", 0, | 395 | UNIPHIER_PINCTRL_PIN(124, "XIRQ2", 0, |
398 | 112, UNIPHIER_PIN_DRV_4_8, | 396 | 112, UNIPHIER_PIN_DRV_1BIT, |
399 | 112, UNIPHIER_PIN_PULL_DOWN), | 397 | 112, UNIPHIER_PIN_PULL_DOWN), |
400 | UNIPHIER_PINCTRL_PIN(125, "XIRQ3", 0, | 398 | UNIPHIER_PINCTRL_PIN(125, "XIRQ3", 0, |
401 | 113, UNIPHIER_PIN_DRV_4_8, | 399 | 113, UNIPHIER_PIN_DRV_1BIT, |
402 | 113, UNIPHIER_PIN_PULL_DOWN), | 400 | 113, UNIPHIER_PIN_PULL_DOWN), |
403 | UNIPHIER_PINCTRL_PIN(126, "XIRQ4", 0, | 401 | UNIPHIER_PINCTRL_PIN(126, "XIRQ4", 0, |
404 | 114, UNIPHIER_PIN_DRV_4_8, | 402 | 114, UNIPHIER_PIN_DRV_1BIT, |
405 | 114, UNIPHIER_PIN_PULL_DOWN), | 403 | 114, UNIPHIER_PIN_PULL_DOWN), |
406 | UNIPHIER_PINCTRL_PIN(127, "XIRQ5", 0, | 404 | UNIPHIER_PINCTRL_PIN(127, "XIRQ5", 0, |
407 | 115, UNIPHIER_PIN_DRV_4_8, | 405 | 115, UNIPHIER_PIN_DRV_1BIT, |
408 | 115, UNIPHIER_PIN_PULL_DOWN), | 406 | 115, UNIPHIER_PIN_PULL_DOWN), |
409 | UNIPHIER_PINCTRL_PIN(128, "XIRQ6", 0, | 407 | UNIPHIER_PINCTRL_PIN(128, "XIRQ6", 0, |
410 | 116, UNIPHIER_PIN_DRV_4_8, | 408 | 116, UNIPHIER_PIN_DRV_1BIT, |
411 | 116, UNIPHIER_PIN_PULL_DOWN), | 409 | 116, UNIPHIER_PIN_PULL_DOWN), |
412 | UNIPHIER_PINCTRL_PIN(129, "XIRQ7", 0, | 410 | UNIPHIER_PINCTRL_PIN(129, "XIRQ7", 0, |
413 | 117, UNIPHIER_PIN_DRV_4_8, | 411 | 117, UNIPHIER_PIN_DRV_1BIT, |
414 | 117, UNIPHIER_PIN_PULL_DOWN), | 412 | 117, UNIPHIER_PIN_PULL_DOWN), |
415 | UNIPHIER_PINCTRL_PIN(130, "XIRQ8", 0, | 413 | UNIPHIER_PINCTRL_PIN(130, "XIRQ8", 0, |
416 | 118, UNIPHIER_PIN_DRV_4_8, | 414 | 118, UNIPHIER_PIN_DRV_1BIT, |
417 | 118, UNIPHIER_PIN_PULL_DOWN), | 415 | 118, UNIPHIER_PIN_PULL_DOWN), |
418 | UNIPHIER_PINCTRL_PIN(131, "XIRQ9", 0, | 416 | UNIPHIER_PINCTRL_PIN(131, "XIRQ9", 0, |
419 | 119, UNIPHIER_PIN_DRV_4_8, | 417 | 119, UNIPHIER_PIN_DRV_1BIT, |
420 | 119, UNIPHIER_PIN_PULL_DOWN), | 418 | 119, UNIPHIER_PIN_PULL_DOWN), |
421 | UNIPHIER_PINCTRL_PIN(132, "XIRQ10", 0, | 419 | UNIPHIER_PINCTRL_PIN(132, "XIRQ10", 0, |
422 | 120, UNIPHIER_PIN_DRV_4_8, | 420 | 120, UNIPHIER_PIN_DRV_1BIT, |
423 | 120, UNIPHIER_PIN_PULL_DOWN), | 421 | 120, UNIPHIER_PIN_PULL_DOWN), |
424 | UNIPHIER_PINCTRL_PIN(133, "XIRQ11", 0, | 422 | UNIPHIER_PINCTRL_PIN(133, "XIRQ11", 0, |
425 | 121, UNIPHIER_PIN_DRV_4_8, | 423 | 121, UNIPHIER_PIN_DRV_1BIT, |
426 | 121, UNIPHIER_PIN_PULL_DOWN), | 424 | 121, UNIPHIER_PIN_PULL_DOWN), |
427 | UNIPHIER_PINCTRL_PIN(134, "XIRQ14", 0, | 425 | UNIPHIER_PINCTRL_PIN(134, "XIRQ14", 0, |
428 | 122, UNIPHIER_PIN_DRV_4_8, | 426 | 122, UNIPHIER_PIN_DRV_1BIT, |
429 | 122, UNIPHIER_PIN_PULL_DOWN), | 427 | 122, UNIPHIER_PIN_PULL_DOWN), |
430 | UNIPHIER_PINCTRL_PIN(135, "PORT00", 0, | 428 | UNIPHIER_PINCTRL_PIN(135, "PORT00", 0, |
431 | 123, UNIPHIER_PIN_DRV_4_8, | 429 | 123, UNIPHIER_PIN_DRV_1BIT, |
432 | 123, UNIPHIER_PIN_PULL_DOWN), | 430 | 123, UNIPHIER_PIN_PULL_DOWN), |
433 | UNIPHIER_PINCTRL_PIN(136, "PORT01", 0, | 431 | UNIPHIER_PINCTRL_PIN(136, "PORT01", 0, |
434 | 124, UNIPHIER_PIN_DRV_4_8, | 432 | 124, UNIPHIER_PIN_DRV_1BIT, |
435 | 124, UNIPHIER_PIN_PULL_DOWN), | 433 | 124, UNIPHIER_PIN_PULL_DOWN), |
436 | UNIPHIER_PINCTRL_PIN(137, "PORT02", 0, | 434 | UNIPHIER_PINCTRL_PIN(137, "PORT02", 0, |
437 | 125, UNIPHIER_PIN_DRV_4_8, | 435 | 125, UNIPHIER_PIN_DRV_1BIT, |
438 | 125, UNIPHIER_PIN_PULL_DOWN), | 436 | 125, UNIPHIER_PIN_PULL_DOWN), |
439 | UNIPHIER_PINCTRL_PIN(138, "PORT03", 0, | 437 | UNIPHIER_PINCTRL_PIN(138, "PORT03", 0, |
440 | 126, UNIPHIER_PIN_DRV_4_8, | 438 | 126, UNIPHIER_PIN_DRV_1BIT, |
441 | 126, UNIPHIER_PIN_PULL_DOWN), | 439 | 126, UNIPHIER_PIN_PULL_DOWN), |
442 | UNIPHIER_PINCTRL_PIN(139, "PORT04", 0, | 440 | UNIPHIER_PINCTRL_PIN(139, "PORT04", 0, |
443 | 127, UNIPHIER_PIN_DRV_4_8, | 441 | 127, UNIPHIER_PIN_DRV_1BIT, |
444 | 127, UNIPHIER_PIN_PULL_DOWN), | 442 | 127, UNIPHIER_PIN_PULL_DOWN), |
445 | UNIPHIER_PINCTRL_PIN(140, "PORT05", 0, | 443 | UNIPHIER_PINCTRL_PIN(140, "PORT05", 0, |
446 | 128, UNIPHIER_PIN_DRV_4_8, | 444 | 128, UNIPHIER_PIN_DRV_1BIT, |
447 | 128, UNIPHIER_PIN_PULL_DOWN), | 445 | 128, UNIPHIER_PIN_PULL_DOWN), |
448 | UNIPHIER_PINCTRL_PIN(141, "PORT06", 0, | 446 | UNIPHIER_PINCTRL_PIN(141, "PORT06", 0, |
449 | 129, UNIPHIER_PIN_DRV_4_8, | 447 | 129, UNIPHIER_PIN_DRV_1BIT, |
450 | 129, UNIPHIER_PIN_PULL_DOWN), | 448 | 129, UNIPHIER_PIN_PULL_DOWN), |
451 | UNIPHIER_PINCTRL_PIN(142, "PORT07", 0, | 449 | UNIPHIER_PINCTRL_PIN(142, "PORT07", 0, |
452 | 130, UNIPHIER_PIN_DRV_4_8, | 450 | 130, UNIPHIER_PIN_DRV_1BIT, |
453 | 130, UNIPHIER_PIN_PULL_DOWN), | 451 | 130, UNIPHIER_PIN_PULL_DOWN), |
454 | UNIPHIER_PINCTRL_PIN(143, "PORT10", 0, | 452 | UNIPHIER_PINCTRL_PIN(143, "PORT10", 0, |
455 | 131, UNIPHIER_PIN_DRV_4_8, | 453 | 131, UNIPHIER_PIN_DRV_1BIT, |
456 | 131, UNIPHIER_PIN_PULL_DOWN), | 454 | 131, UNIPHIER_PIN_PULL_DOWN), |
457 | UNIPHIER_PINCTRL_PIN(144, "PORT11", 0, | 455 | UNIPHIER_PINCTRL_PIN(144, "PORT11", 0, |
458 | 132, UNIPHIER_PIN_DRV_4_8, | 456 | 132, UNIPHIER_PIN_DRV_1BIT, |
459 | 132, UNIPHIER_PIN_PULL_DOWN), | 457 | 132, UNIPHIER_PIN_PULL_DOWN), |
460 | UNIPHIER_PINCTRL_PIN(145, "PORT12", 0, | 458 | UNIPHIER_PINCTRL_PIN(145, "PORT12", 0, |
461 | 133, UNIPHIER_PIN_DRV_4_8, | 459 | 133, UNIPHIER_PIN_DRV_1BIT, |
462 | 133, UNIPHIER_PIN_PULL_DOWN), | 460 | 133, UNIPHIER_PIN_PULL_DOWN), |
463 | UNIPHIER_PINCTRL_PIN(146, "PORT13", 0, | 461 | UNIPHIER_PINCTRL_PIN(146, "PORT13", 0, |
464 | 134, UNIPHIER_PIN_DRV_4_8, | 462 | 134, UNIPHIER_PIN_DRV_1BIT, |
465 | 134, UNIPHIER_PIN_PULL_DOWN), | 463 | 134, UNIPHIER_PIN_PULL_DOWN), |
466 | UNIPHIER_PINCTRL_PIN(147, "PORT14", 0, | 464 | UNIPHIER_PINCTRL_PIN(147, "PORT14", 0, |
467 | 135, UNIPHIER_PIN_DRV_4_8, | 465 | 135, UNIPHIER_PIN_DRV_1BIT, |
468 | 135, UNIPHIER_PIN_PULL_DOWN), | 466 | 135, UNIPHIER_PIN_PULL_DOWN), |
469 | UNIPHIER_PINCTRL_PIN(148, "PORT15", 0, | 467 | UNIPHIER_PINCTRL_PIN(148, "PORT15", 0, |
470 | 136, UNIPHIER_PIN_DRV_4_8, | 468 | 136, UNIPHIER_PIN_DRV_1BIT, |
471 | 136, UNIPHIER_PIN_PULL_DOWN), | 469 | 136, UNIPHIER_PIN_PULL_DOWN), |
472 | UNIPHIER_PINCTRL_PIN(149, "PORT16", 0, | 470 | UNIPHIER_PINCTRL_PIN(149, "PORT16", 0, |
473 | 137, UNIPHIER_PIN_DRV_4_8, | 471 | 137, UNIPHIER_PIN_DRV_1BIT, |
474 | 137, UNIPHIER_PIN_PULL_DOWN), | 472 | 137, UNIPHIER_PIN_PULL_DOWN), |
475 | UNIPHIER_PINCTRL_PIN(150, "PORT17", UNIPHIER_PIN_IECTRL_NONE, | 473 | UNIPHIER_PINCTRL_PIN(150, "PORT17", UNIPHIER_PIN_IECTRL_NONE, |
476 | 138, UNIPHIER_PIN_DRV_4_8, | 474 | 138, UNIPHIER_PIN_DRV_1BIT, |
477 | 138, UNIPHIER_PIN_PULL_DOWN), | 475 | 138, UNIPHIER_PIN_PULL_DOWN), |
478 | UNIPHIER_PINCTRL_PIN(151, "PORT20", 0, | 476 | UNIPHIER_PINCTRL_PIN(151, "PORT20", 0, |
479 | 139, UNIPHIER_PIN_DRV_4_8, | 477 | 139, UNIPHIER_PIN_DRV_1BIT, |
480 | 139, UNIPHIER_PIN_PULL_DOWN), | 478 | 139, UNIPHIER_PIN_PULL_DOWN), |
481 | UNIPHIER_PINCTRL_PIN(152, "PORT21", 0, | 479 | UNIPHIER_PINCTRL_PIN(152, "PORT21", 0, |
482 | 140, UNIPHIER_PIN_DRV_4_8, | 480 | 140, UNIPHIER_PIN_DRV_1BIT, |
483 | 140, UNIPHIER_PIN_PULL_DOWN), | 481 | 140, UNIPHIER_PIN_PULL_DOWN), |
484 | UNIPHIER_PINCTRL_PIN(153, "PORT22", 0, | 482 | UNIPHIER_PINCTRL_PIN(153, "PORT22", 0, |
485 | 141, UNIPHIER_PIN_DRV_4_8, | 483 | 141, UNIPHIER_PIN_DRV_1BIT, |
486 | 141, UNIPHIER_PIN_PULL_DOWN), | 484 | 141, UNIPHIER_PIN_PULL_DOWN), |
487 | UNIPHIER_PINCTRL_PIN(154, "PORT23", 0, | 485 | UNIPHIER_PINCTRL_PIN(154, "PORT23", 0, |
488 | 142, UNIPHIER_PIN_DRV_4_8, | 486 | 142, UNIPHIER_PIN_DRV_1BIT, |
489 | 142, UNIPHIER_PIN_PULL_DOWN), | 487 | 142, UNIPHIER_PIN_PULL_DOWN), |
490 | UNIPHIER_PINCTRL_PIN(155, "PORT24", UNIPHIER_PIN_IECTRL_NONE, | 488 | UNIPHIER_PINCTRL_PIN(155, "PORT24", UNIPHIER_PIN_IECTRL_NONE, |
491 | 143, UNIPHIER_PIN_DRV_4_8, | 489 | 143, UNIPHIER_PIN_DRV_1BIT, |
492 | 143, UNIPHIER_PIN_PULL_DOWN), | 490 | 143, UNIPHIER_PIN_PULL_DOWN), |
493 | UNIPHIER_PINCTRL_PIN(156, "PORT25", 0, | 491 | UNIPHIER_PINCTRL_PIN(156, "PORT25", 0, |
494 | 144, UNIPHIER_PIN_DRV_4_8, | 492 | 144, UNIPHIER_PIN_DRV_1BIT, |
495 | 144, UNIPHIER_PIN_PULL_DOWN), | 493 | 144, UNIPHIER_PIN_PULL_DOWN), |
496 | UNIPHIER_PINCTRL_PIN(157, "PORT26", 0, | 494 | UNIPHIER_PINCTRL_PIN(157, "PORT26", 0, |
497 | 145, UNIPHIER_PIN_DRV_4_8, | 495 | 145, UNIPHIER_PIN_DRV_1BIT, |
498 | 145, UNIPHIER_PIN_PULL_DOWN), | 496 | 145, UNIPHIER_PIN_PULL_DOWN), |
499 | UNIPHIER_PINCTRL_PIN(158, "XNFRE", UNIPHIER_PIN_IECTRL_NONE, | 497 | UNIPHIER_PINCTRL_PIN(158, "XNFRE", UNIPHIER_PIN_IECTRL_NONE, |
500 | 31, UNIPHIER_PIN_DRV_4_8, | 498 | 31, UNIPHIER_PIN_DRV_1BIT, |
501 | 31, UNIPHIER_PIN_PULL_UP), | 499 | 31, UNIPHIER_PIN_PULL_UP), |
502 | UNIPHIER_PINCTRL_PIN(159, "XNFWE", UNIPHIER_PIN_IECTRL_NONE, | 500 | UNIPHIER_PINCTRL_PIN(159, "XNFWE", UNIPHIER_PIN_IECTRL_NONE, |
503 | 32, UNIPHIER_PIN_DRV_4_8, | 501 | 32, UNIPHIER_PIN_DRV_1BIT, |
504 | 32, UNIPHIER_PIN_PULL_UP), | 502 | 32, UNIPHIER_PIN_PULL_UP), |
505 | UNIPHIER_PINCTRL_PIN(160, "NFALE", UNIPHIER_PIN_IECTRL_NONE, | 503 | UNIPHIER_PINCTRL_PIN(160, "NFALE", UNIPHIER_PIN_IECTRL_NONE, |
506 | 33, UNIPHIER_PIN_DRV_4_8, | 504 | 33, UNIPHIER_PIN_DRV_1BIT, |
507 | 33, UNIPHIER_PIN_PULL_DOWN), | 505 | 33, UNIPHIER_PIN_PULL_DOWN), |
508 | UNIPHIER_PINCTRL_PIN(161, "NFCLE", UNIPHIER_PIN_IECTRL_NONE, | 506 | UNIPHIER_PINCTRL_PIN(161, "NFCLE", UNIPHIER_PIN_IECTRL_NONE, |
509 | 34, UNIPHIER_PIN_DRV_4_8, | 507 | 34, UNIPHIER_PIN_DRV_1BIT, |
510 | 34, UNIPHIER_PIN_PULL_DOWN), | 508 | 34, UNIPHIER_PIN_PULL_DOWN), |
511 | UNIPHIER_PINCTRL_PIN(162, "XNFWP", UNIPHIER_PIN_IECTRL_NONE, | 509 | UNIPHIER_PINCTRL_PIN(162, "XNFWP", UNIPHIER_PIN_IECTRL_NONE, |
512 | 35, UNIPHIER_PIN_DRV_4_8, | 510 | 35, UNIPHIER_PIN_DRV_1BIT, |
513 | 35, UNIPHIER_PIN_PULL_DOWN), | 511 | 35, UNIPHIER_PIN_PULL_DOWN), |
514 | UNIPHIER_PINCTRL_PIN(163, "XNFCE0", UNIPHIER_PIN_IECTRL_NONE, | 512 | UNIPHIER_PINCTRL_PIN(163, "XNFCE0", UNIPHIER_PIN_IECTRL_NONE, |
515 | 36, UNIPHIER_PIN_DRV_4_8, | 513 | 36, UNIPHIER_PIN_DRV_1BIT, |
516 | 36, UNIPHIER_PIN_PULL_UP), | 514 | 36, UNIPHIER_PIN_PULL_UP), |
517 | UNIPHIER_PINCTRL_PIN(164, "NANDRYBY0", UNIPHIER_PIN_IECTRL_NONE, | 515 | UNIPHIER_PINCTRL_PIN(164, "NANDRYBY0", UNIPHIER_PIN_IECTRL_NONE, |
518 | 37, UNIPHIER_PIN_DRV_4_8, | 516 | 37, UNIPHIER_PIN_DRV_1BIT, |
519 | 37, UNIPHIER_PIN_PULL_UP), | 517 | 37, UNIPHIER_PIN_PULL_UP), |
518 | /* dedicated pins */ | ||
519 | UNIPHIER_PINCTRL_PIN(165, "ED0", -1, | ||
520 | 0, UNIPHIER_PIN_DRV_1BIT, | ||
521 | 0, UNIPHIER_PIN_PULL_DOWN), | ||
522 | UNIPHIER_PINCTRL_PIN(166, "ED1", -1, | ||
523 | 1, UNIPHIER_PIN_DRV_1BIT, | ||
524 | 1, UNIPHIER_PIN_PULL_DOWN), | ||
525 | UNIPHIER_PINCTRL_PIN(167, "ED2", -1, | ||
526 | 2, UNIPHIER_PIN_DRV_1BIT, | ||
527 | 2, UNIPHIER_PIN_PULL_DOWN), | ||
528 | UNIPHIER_PINCTRL_PIN(168, "ED3", -1, | ||
529 | 3, UNIPHIER_PIN_DRV_1BIT, | ||
530 | 3, UNIPHIER_PIN_PULL_DOWN), | ||
531 | UNIPHIER_PINCTRL_PIN(169, "ED4", -1, | ||
532 | 4, UNIPHIER_PIN_DRV_1BIT, | ||
533 | 4, UNIPHIER_PIN_PULL_DOWN), | ||
534 | UNIPHIER_PINCTRL_PIN(170, "ED5", -1, | ||
535 | 5, UNIPHIER_PIN_DRV_1BIT, | ||
536 | 5, UNIPHIER_PIN_PULL_DOWN), | ||
537 | UNIPHIER_PINCTRL_PIN(171, "ED6", -1, | ||
538 | 6, UNIPHIER_PIN_DRV_1BIT, | ||
539 | 6, UNIPHIER_PIN_PULL_DOWN), | ||
540 | UNIPHIER_PINCTRL_PIN(172, "ED7", -1, | ||
541 | 7, UNIPHIER_PIN_DRV_1BIT, | ||
542 | 7, UNIPHIER_PIN_PULL_DOWN), | ||
543 | UNIPHIER_PINCTRL_PIN(173, "ERXW", -1, | ||
544 | 26, UNIPHIER_PIN_DRV_1BIT, | ||
545 | 26, UNIPHIER_PIN_PULL_UP), | ||
546 | UNIPHIER_PINCTRL_PIN(174, "XECS1", -1, | ||
547 | 30, UNIPHIER_PIN_DRV_1BIT, | ||
548 | 30, UNIPHIER_PIN_PULL_UP), | ||
520 | }; | 549 | }; |
521 | 550 | ||
522 | static const unsigned emmc_pins[] = {21, 22, 23, 24, 25, 26, 27}; | 551 | static const unsigned emmc_pins[] = {21, 22, 23, 24, 25, 26, 27}; |
523 | static const unsigned emmc_muxvals[] = {0, 1, 1, 1, 1, 1, 1}; | 552 | static const int emmc_muxvals[] = {0, 1, 1, 1, 1, 1, 1}; |
524 | static const unsigned emmc_dat8_pins[] = {28, 29, 30, 31}; | 553 | static const unsigned emmc_dat8_pins[] = {28, 29, 30, 31}; |
525 | static const unsigned emmc_dat8_muxvals[] = {1, 1, 1, 1}; | 554 | static const int emmc_dat8_muxvals[] = {1, 1, 1, 1}; |
555 | static const unsigned ether_mii_pins[] = {32, 33, 34, 35, 36, 37, 38, 39, 40, | ||
556 | 41, 42, 43, 136, 137, 138, 139, 140, | ||
557 | 141, 142}; | ||
558 | static const int ether_mii_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
559 | 4, 4, 4, 4, 4, 4, 4}; | ||
560 | static const unsigned ether_rmii_pins[] = {32, 33, 34, 35, 36, 37, 38, 39, 40, | ||
561 | 41, 42, 43}; | ||
562 | static const int ether_rmii_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; | ||
526 | static const unsigned i2c0_pins[] = {102, 103}; | 563 | static const unsigned i2c0_pins[] = {102, 103}; |
527 | static const unsigned i2c0_muxvals[] = {0, 0}; | 564 | static const int i2c0_muxvals[] = {0, 0}; |
528 | static const unsigned i2c1_pins[] = {104, 105}; | 565 | static const unsigned i2c1_pins[] = {104, 105}; |
529 | static const unsigned i2c1_muxvals[] = {0, 0}; | 566 | static const int i2c1_muxvals[] = {0, 0}; |
530 | static const unsigned i2c2_pins[] = {108, 109}; | 567 | static const unsigned i2c2_pins[] = {108, 109}; |
531 | static const unsigned i2c2_muxvals[] = {2, 2}; | 568 | static const int i2c2_muxvals[] = {2, 2}; |
532 | static const unsigned i2c3_pins[] = {108, 109}; | 569 | static const unsigned i2c3_pins[] = {108, 109}; |
533 | static const unsigned i2c3_muxvals[] = {3, 3}; | 570 | static const int i2c3_muxvals[] = {3, 3}; |
534 | static const unsigned nand_pins[] = {24, 25, 26, 27, 28, 29, 30, 31, 158, 159, | 571 | static const unsigned nand_pins[] = {24, 25, 26, 27, 28, 29, 30, 31, 158, 159, |
535 | 160, 161, 162, 163, 164}; | 572 | 160, 161, 162, 163, 164}; |
536 | static const unsigned nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 573 | static const int nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; |
537 | 0, 0}; | ||
538 | static const unsigned nand_cs1_pins[] = {22, 23}; | 574 | static const unsigned nand_cs1_pins[] = {22, 23}; |
539 | static const unsigned nand_cs1_muxvals[] = {0, 0}; | 575 | static const int nand_cs1_muxvals[] = {0, 0}; |
540 | static const unsigned sd_pins[] = {44, 45, 46, 47, 48, 49, 50, 51, 52}; | 576 | static const unsigned sd_pins[] = {44, 45, 46, 47, 48, 49, 50, 51, 52}; |
541 | static const unsigned sd_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; | 577 | static const int sd_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; |
578 | static const unsigned system_bus_pins[] = {16, 17, 18, 19, 20, 165, 166, 167, | ||
579 | 168, 169, 170, 171, 172, 173}; | ||
580 | static const int system_bus_muxvals[] = {0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, | ||
581 | -1, -1, -1}; | ||
582 | static const unsigned system_bus_cs0_pins[] = {155}; | ||
583 | static const int system_bus_cs0_muxvals[] = {1}; | ||
584 | static const unsigned system_bus_cs1_pins[] = {174}; | ||
585 | static const int system_bus_cs1_muxvals[] = {-1}; | ||
586 | static const unsigned system_bus_cs2_pins[] = {64}; | ||
587 | static const int system_bus_cs2_muxvals[] = {1}; | ||
588 | static const unsigned system_bus_cs3_pins[] = {156}; | ||
589 | static const int system_bus_cs3_muxvals[] = {1}; | ||
542 | static const unsigned uart0_pins[] = {85, 88}; | 590 | static const unsigned uart0_pins[] = {85, 88}; |
543 | static const unsigned uart0_muxvals[] = {1, 1}; | 591 | static const int uart0_muxvals[] = {1, 1}; |
544 | static const unsigned uart1_pins[] = {155, 156}; | 592 | static const unsigned uart1_pins[] = {155, 156}; |
545 | static const unsigned uart1_muxvals[] = {13, 13}; | 593 | static const int uart1_muxvals[] = {13, 13}; |
546 | static const unsigned uart1b_pins[] = {69, 70}; | 594 | static const unsigned uart1b_pins[] = {69, 70}; |
547 | static const unsigned uart1b_muxvals[] = {23, 23}; | 595 | static const int uart1b_muxvals[] = {23, 23}; |
548 | static const unsigned uart2_pins[] = {128, 129}; | 596 | static const unsigned uart2_pins[] = {128, 129}; |
549 | static const unsigned uart2_muxvals[] = {13, 13}; | 597 | static const int uart2_muxvals[] = {13, 13}; |
550 | static const unsigned uart3_pins[] = {110, 111}; | 598 | static const unsigned uart3_pins[] = {110, 111}; |
551 | static const unsigned uart3_muxvals[] = {1, 1}; | 599 | static const int uart3_muxvals[] = {1, 1}; |
552 | static const unsigned usb0_pins[] = {53, 54}; | 600 | static const unsigned usb0_pins[] = {53, 54}; |
553 | static const unsigned usb0_muxvals[] = {0, 0}; | 601 | static const int usb0_muxvals[] = {0, 0}; |
554 | static const unsigned usb1_pins[] = {55, 56}; | 602 | static const unsigned usb1_pins[] = {55, 56}; |
555 | static const unsigned usb1_muxvals[] = {0, 0}; | 603 | static const int usb1_muxvals[] = {0, 0}; |
556 | static const unsigned usb2_pins[] = {155, 156}; | 604 | static const unsigned usb2_pins[] = {155, 156}; |
557 | static const unsigned usb2_muxvals[] = {4, 4}; | 605 | static const int usb2_muxvals[] = {4, 4}; |
558 | static const unsigned usb2b_pins[] = {67, 68}; | 606 | static const unsigned usb2b_pins[] = {67, 68}; |
559 | static const unsigned usb2b_muxvals[] = {23, 23}; | 607 | static const int usb2b_muxvals[] = {23, 23}; |
560 | static const unsigned port_range0_pins[] = { | 608 | static const unsigned port_range0_pins[] = { |
561 | 135, 136, 137, 138, 139, 140, 141, 142, /* PORT0x */ | 609 | 135, 136, 137, 138, 139, 140, 141, 142, /* PORT0x */ |
562 | 143, 144, 145, 146, 147, 148, 149, 150, /* PORT1x */ | 610 | 143, 144, 145, 146, 147, 148, 149, 150, /* PORT1x */ |
@@ -574,7 +622,7 @@ static const unsigned port_range0_pins[] = { | |||
574 | 98, 99, 100, 6, 101, 114, 115, 116, /* PORT13x */ | 622 | 98, 99, 100, 6, 101, 114, 115, 116, /* PORT13x */ |
575 | 103, 108, 21, 22, 23, 117, 118, 119, /* PORT14x */ | 623 | 103, 108, 21, 22, 23, 117, 118, 119, /* PORT14x */ |
576 | }; | 624 | }; |
577 | static const unsigned port_range0_muxvals[] = { | 625 | static const int port_range0_muxvals[] = { |
578 | 0, 0, 0, 0, 0, 0, 0, 0, /* PORT0x */ | 626 | 0, 0, 0, 0, 0, 0, 0, 0, /* PORT0x */ |
579 | 0, 0, 0, 0, 0, 0, 0, 0, /* PORT1x */ | 627 | 0, 0, 0, 0, 0, 0, 0, 0, /* PORT1x */ |
580 | 0, 0, 0, 0, 0, 0, 0, 15, /* PORT2x */ | 628 | 0, 0, 0, 0, 0, 0, 0, 15, /* PORT2x */ |
@@ -594,27 +642,29 @@ static const unsigned port_range0_muxvals[] = { | |||
594 | static const unsigned port_range1_pins[] = { | 642 | static const unsigned port_range1_pins[] = { |
595 | 7, /* PORT166 */ | 643 | 7, /* PORT166 */ |
596 | }; | 644 | }; |
597 | static const unsigned port_range1_muxvals[] = { | 645 | static const int port_range1_muxvals[] = { |
598 | 15, /* PORT166 */ | 646 | 15, /* PORT166 */ |
599 | }; | 647 | }; |
600 | static const unsigned xirq_range0_pins[] = { | 648 | static const unsigned xirq_range0_pins[] = { |
601 | 151, 123, 124, 125, 126, 127, 128, 129, /* XIRQ0-7 */ | 649 | 151, 123, 124, 125, 126, 127, 128, 129, /* XIRQ0-7 */ |
602 | 130, 131, 132, 133, 62, /* XIRQ8-12 */ | 650 | 130, 131, 132, 133, 62, /* XIRQ8-12 */ |
603 | }; | 651 | }; |
604 | static const unsigned xirq_range0_muxvals[] = { | 652 | static const int xirq_range0_muxvals[] = { |
605 | 14, 0, 0, 0, 0, 0, 0, 0, /* XIRQ0-7 */ | 653 | 14, 0, 0, 0, 0, 0, 0, 0, /* XIRQ0-7 */ |
606 | 0, 0, 0, 0, 14, /* XIRQ8-12 */ | 654 | 0, 0, 0, 0, 14, /* XIRQ8-12 */ |
607 | }; | 655 | }; |
608 | static const unsigned xirq_range1_pins[] = { | 656 | static const unsigned xirq_range1_pins[] = { |
609 | 134, 63, /* XIRQ14-15 */ | 657 | 134, 63, /* XIRQ14-15 */ |
610 | }; | 658 | }; |
611 | static const unsigned xirq_range1_muxvals[] = { | 659 | static const int xirq_range1_muxvals[] = { |
612 | 0, 14, /* XIRQ14-15 */ | 660 | 0, 14, /* XIRQ14-15 */ |
613 | }; | 661 | }; |
614 | 662 | ||
615 | static const struct uniphier_pinctrl_group ph1_ld4_groups[] = { | 663 | static const struct uniphier_pinctrl_group uniphier_ld4_groups[] = { |
616 | UNIPHIER_PINCTRL_GROUP(emmc), | 664 | UNIPHIER_PINCTRL_GROUP(emmc), |
617 | UNIPHIER_PINCTRL_GROUP(emmc_dat8), | 665 | UNIPHIER_PINCTRL_GROUP(emmc_dat8), |
666 | UNIPHIER_PINCTRL_GROUP(ether_mii), | ||
667 | UNIPHIER_PINCTRL_GROUP(ether_rmii), | ||
618 | UNIPHIER_PINCTRL_GROUP(i2c0), | 668 | UNIPHIER_PINCTRL_GROUP(i2c0), |
619 | UNIPHIER_PINCTRL_GROUP(i2c1), | 669 | UNIPHIER_PINCTRL_GROUP(i2c1), |
620 | UNIPHIER_PINCTRL_GROUP(i2c2), | 670 | UNIPHIER_PINCTRL_GROUP(i2c2), |
@@ -622,6 +672,11 @@ static const struct uniphier_pinctrl_group ph1_ld4_groups[] = { | |||
622 | UNIPHIER_PINCTRL_GROUP(nand), | 672 | UNIPHIER_PINCTRL_GROUP(nand), |
623 | UNIPHIER_PINCTRL_GROUP(nand_cs1), | 673 | UNIPHIER_PINCTRL_GROUP(nand_cs1), |
624 | UNIPHIER_PINCTRL_GROUP(sd), | 674 | UNIPHIER_PINCTRL_GROUP(sd), |
675 | UNIPHIER_PINCTRL_GROUP(system_bus), | ||
676 | UNIPHIER_PINCTRL_GROUP(system_bus_cs0), | ||
677 | UNIPHIER_PINCTRL_GROUP(system_bus_cs1), | ||
678 | UNIPHIER_PINCTRL_GROUP(system_bus_cs2), | ||
679 | UNIPHIER_PINCTRL_GROUP(system_bus_cs3), | ||
625 | UNIPHIER_PINCTRL_GROUP(uart0), | 680 | UNIPHIER_PINCTRL_GROUP(uart0), |
626 | UNIPHIER_PINCTRL_GROUP(uart1), | 681 | UNIPHIER_PINCTRL_GROUP(uart1), |
627 | UNIPHIER_PINCTRL_GROUP(uart1b), | 682 | UNIPHIER_PINCTRL_GROUP(uart1b), |
@@ -774,12 +829,19 @@ static const struct uniphier_pinctrl_group ph1_ld4_groups[] = { | |||
774 | }; | 829 | }; |
775 | 830 | ||
776 | static const char * const emmc_groups[] = {"emmc", "emmc_dat8"}; | 831 | static const char * const emmc_groups[] = {"emmc", "emmc_dat8"}; |
832 | static const char * const ether_mii_groups[] = {"ether_mii"}; | ||
833 | static const char * const ether_rmii_groups[] = {"ether_rmii"}; | ||
777 | static const char * const i2c0_groups[] = {"i2c0"}; | 834 | static const char * const i2c0_groups[] = {"i2c0"}; |
778 | static const char * const i2c1_groups[] = {"i2c1"}; | 835 | static const char * const i2c1_groups[] = {"i2c1"}; |
779 | static const char * const i2c2_groups[] = {"i2c2"}; | 836 | static const char * const i2c2_groups[] = {"i2c2"}; |
780 | static const char * const i2c3_groups[] = {"i2c3"}; | 837 | static const char * const i2c3_groups[] = {"i2c3"}; |
781 | static const char * const nand_groups[] = {"nand", "nand_cs1"}; | 838 | static const char * const nand_groups[] = {"nand", "nand_cs1"}; |
782 | static const char * const sd_groups[] = {"sd"}; | 839 | static const char * const sd_groups[] = {"sd"}; |
840 | static const char * const system_bus_groups[] = {"system_bus", | ||
841 | "system_bus_cs0", | ||
842 | "system_bus_cs1", | ||
843 | "system_bus_cs2", | ||
844 | "system_bus_cs3"}; | ||
783 | static const char * const uart0_groups[] = {"uart0"}; | 845 | static const char * const uart0_groups[] = {"uart0"}; |
784 | static const char * const uart1_groups[] = {"uart1", "uart1b"}; | 846 | static const char * const uart1_groups[] = {"uart1", "uart1b"}; |
785 | static const char * const uart2_groups[] = {"uart2"}; | 847 | static const char * const uart2_groups[] = {"uart2"}; |
@@ -828,14 +890,17 @@ static const char * const xirq_groups[] = { | |||
828 | "xirq12", /* none*/ "xirq14", "xirq15", | 890 | "xirq12", /* none*/ "xirq14", "xirq15", |
829 | }; | 891 | }; |
830 | 892 | ||
831 | static const struct uniphier_pinmux_function ph1_ld4_functions[] = { | 893 | static const struct uniphier_pinmux_function uniphier_ld4_functions[] = { |
832 | UNIPHIER_PINMUX_FUNCTION(emmc), | 894 | UNIPHIER_PINMUX_FUNCTION(emmc), |
895 | UNIPHIER_PINMUX_FUNCTION(ether_mii), | ||
896 | UNIPHIER_PINMUX_FUNCTION(ether_rmii), | ||
833 | UNIPHIER_PINMUX_FUNCTION(i2c0), | 897 | UNIPHIER_PINMUX_FUNCTION(i2c0), |
834 | UNIPHIER_PINMUX_FUNCTION(i2c1), | 898 | UNIPHIER_PINMUX_FUNCTION(i2c1), |
835 | UNIPHIER_PINMUX_FUNCTION(i2c2), | 899 | UNIPHIER_PINMUX_FUNCTION(i2c2), |
836 | UNIPHIER_PINMUX_FUNCTION(i2c3), | 900 | UNIPHIER_PINMUX_FUNCTION(i2c3), |
837 | UNIPHIER_PINMUX_FUNCTION(nand), | 901 | UNIPHIER_PINMUX_FUNCTION(nand), |
838 | UNIPHIER_PINMUX_FUNCTION(sd), | 902 | UNIPHIER_PINMUX_FUNCTION(sd), |
903 | UNIPHIER_PINMUX_FUNCTION(system_bus), | ||
839 | UNIPHIER_PINMUX_FUNCTION(uart0), | 904 | UNIPHIER_PINMUX_FUNCTION(uart0), |
840 | UNIPHIER_PINMUX_FUNCTION(uart1), | 905 | UNIPHIER_PINMUX_FUNCTION(uart1), |
841 | UNIPHIER_PINMUX_FUNCTION(uart2), | 906 | UNIPHIER_PINMUX_FUNCTION(uart2), |
@@ -847,43 +912,36 @@ static const struct uniphier_pinmux_function ph1_ld4_functions[] = { | |||
847 | UNIPHIER_PINMUX_FUNCTION(xirq), | 912 | UNIPHIER_PINMUX_FUNCTION(xirq), |
848 | }; | 913 | }; |
849 | 914 | ||
850 | static struct uniphier_pinctrl_socdata ph1_ld4_pindata = { | 915 | static struct uniphier_pinctrl_socdata uniphier_ld4_pindata = { |
851 | .groups = ph1_ld4_groups, | 916 | .pins = uniphier_ld4_pins, |
852 | .groups_count = ARRAY_SIZE(ph1_ld4_groups), | 917 | .npins = ARRAY_SIZE(uniphier_ld4_pins), |
853 | .functions = ph1_ld4_functions, | 918 | .groups = uniphier_ld4_groups, |
854 | .functions_count = ARRAY_SIZE(ph1_ld4_functions), | 919 | .groups_count = ARRAY_SIZE(uniphier_ld4_groups), |
855 | .mux_bits = 8, | 920 | .functions = uniphier_ld4_functions, |
856 | .reg_stride = 4, | 921 | .functions_count = ARRAY_SIZE(uniphier_ld4_functions), |
857 | .load_pinctrl = false, | 922 | .caps = 0, |
858 | }; | ||
859 | |||
860 | static struct pinctrl_desc ph1_ld4_pinctrl_desc = { | ||
861 | .name = DRIVER_NAME, | ||
862 | .pins = ph1_ld4_pins, | ||
863 | .npins = ARRAY_SIZE(ph1_ld4_pins), | ||
864 | .owner = THIS_MODULE, | ||
865 | }; | 923 | }; |
866 | 924 | ||
867 | static int ph1_ld4_pinctrl_probe(struct platform_device *pdev) | 925 | static int uniphier_ld4_pinctrl_probe(struct platform_device *pdev) |
868 | { | 926 | { |
869 | return uniphier_pinctrl_probe(pdev, &ph1_ld4_pinctrl_desc, | 927 | return uniphier_pinctrl_probe(pdev, &uniphier_ld4_pindata); |
870 | &ph1_ld4_pindata); | ||
871 | } | 928 | } |
872 | 929 | ||
873 | static const struct of_device_id ph1_ld4_pinctrl_match[] = { | 930 | static const struct of_device_id uniphier_ld4_pinctrl_match[] = { |
931 | { .compatible = "socionext,uniphier-ld4-pinctrl" }, | ||
874 | { .compatible = "socionext,ph1-ld4-pinctrl" }, | 932 | { .compatible = "socionext,ph1-ld4-pinctrl" }, |
875 | { /* sentinel */ } | 933 | { /* sentinel */ } |
876 | }; | 934 | }; |
877 | MODULE_DEVICE_TABLE(of, ph1_ld4_pinctrl_match); | 935 | MODULE_DEVICE_TABLE(of, uniphier_ld4_pinctrl_match); |
878 | 936 | ||
879 | static struct platform_driver ph1_ld4_pinctrl_driver = { | 937 | static struct platform_driver uniphier_ld4_pinctrl_driver = { |
880 | .probe = ph1_ld4_pinctrl_probe, | 938 | .probe = uniphier_ld4_pinctrl_probe, |
881 | .driver = { | 939 | .driver = { |
882 | .name = DRIVER_NAME, | 940 | .name = "uniphier-ld4-pinctrl", |
883 | .of_match_table = ph1_ld4_pinctrl_match, | 941 | .of_match_table = uniphier_ld4_pinctrl_match, |
884 | }, | 942 | }, |
885 | }; | 943 | }; |
886 | module_platform_driver(ph1_ld4_pinctrl_driver); | 944 | module_platform_driver(uniphier_ld4_pinctrl_driver); |
887 | 945 | ||
888 | MODULE_AUTHOR("Masahiro Yamada <yamada.masahiro@socionext.com>"); | 946 | MODULE_AUTHOR("Masahiro Yamada <yamada.masahiro@socionext.com>"); |
889 | MODULE_DESCRIPTION("UniPhier PH1-LD4 pinctrl driver"); | 947 | MODULE_DESCRIPTION("UniPhier PH1-LD4 pinctrl driver"); |
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld6b.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld6b.c index 150d33928df2..708e5100cf34 100644 --- a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld6b.c +++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld6b.c | |||
@@ -19,713 +19,711 @@ | |||
19 | 19 | ||
20 | #include "pinctrl-uniphier.h" | 20 | #include "pinctrl-uniphier.h" |
21 | 21 | ||
22 | #define DRIVER_NAME "ph1-ld6b-pinctrl" | 22 | static const struct pinctrl_pin_desc uniphier_ld6b_pins[] = { |
23 | |||
24 | static const struct pinctrl_pin_desc ph1_ld6b_pins[] = { | ||
25 | UNIPHIER_PINCTRL_PIN(0, "ED0", UNIPHIER_PIN_IECTRL_NONE, | 23 | UNIPHIER_PINCTRL_PIN(0, "ED0", UNIPHIER_PIN_IECTRL_NONE, |
26 | 0, UNIPHIER_PIN_DRV_4_8, | 24 | 0, UNIPHIER_PIN_DRV_1BIT, |
27 | 0, UNIPHIER_PIN_PULL_DOWN), | 25 | 0, UNIPHIER_PIN_PULL_DOWN), |
28 | UNIPHIER_PINCTRL_PIN(1, "ED1", UNIPHIER_PIN_IECTRL_NONE, | 26 | UNIPHIER_PINCTRL_PIN(1, "ED1", UNIPHIER_PIN_IECTRL_NONE, |
29 | 1, UNIPHIER_PIN_DRV_4_8, | 27 | 1, UNIPHIER_PIN_DRV_1BIT, |
30 | 1, UNIPHIER_PIN_PULL_DOWN), | 28 | 1, UNIPHIER_PIN_PULL_DOWN), |
31 | UNIPHIER_PINCTRL_PIN(2, "ED2", UNIPHIER_PIN_IECTRL_NONE, | 29 | UNIPHIER_PINCTRL_PIN(2, "ED2", UNIPHIER_PIN_IECTRL_NONE, |
32 | 2, UNIPHIER_PIN_DRV_4_8, | 30 | 2, UNIPHIER_PIN_DRV_1BIT, |
33 | 2, UNIPHIER_PIN_PULL_DOWN), | 31 | 2, UNIPHIER_PIN_PULL_DOWN), |
34 | UNIPHIER_PINCTRL_PIN(3, "ED3", UNIPHIER_PIN_IECTRL_NONE, | 32 | UNIPHIER_PINCTRL_PIN(3, "ED3", UNIPHIER_PIN_IECTRL_NONE, |
35 | 3, UNIPHIER_PIN_DRV_4_8, | 33 | 3, UNIPHIER_PIN_DRV_1BIT, |
36 | 3, UNIPHIER_PIN_PULL_DOWN), | 34 | 3, UNIPHIER_PIN_PULL_DOWN), |
37 | UNIPHIER_PINCTRL_PIN(4, "ED4", UNIPHIER_PIN_IECTRL_NONE, | 35 | UNIPHIER_PINCTRL_PIN(4, "ED4", UNIPHIER_PIN_IECTRL_NONE, |
38 | 4, UNIPHIER_PIN_DRV_4_8, | 36 | 4, UNIPHIER_PIN_DRV_1BIT, |
39 | 4, UNIPHIER_PIN_PULL_DOWN), | 37 | 4, UNIPHIER_PIN_PULL_DOWN), |
40 | UNIPHIER_PINCTRL_PIN(5, "ED5", UNIPHIER_PIN_IECTRL_NONE, | 38 | UNIPHIER_PINCTRL_PIN(5, "ED5", UNIPHIER_PIN_IECTRL_NONE, |
41 | 5, UNIPHIER_PIN_DRV_4_8, | 39 | 5, UNIPHIER_PIN_DRV_1BIT, |
42 | 5, UNIPHIER_PIN_PULL_DOWN), | 40 | 5, UNIPHIER_PIN_PULL_DOWN), |
43 | UNIPHIER_PINCTRL_PIN(6, "ED6", UNIPHIER_PIN_IECTRL_NONE, | 41 | UNIPHIER_PINCTRL_PIN(6, "ED6", UNIPHIER_PIN_IECTRL_NONE, |
44 | 6, UNIPHIER_PIN_DRV_4_8, | 42 | 6, UNIPHIER_PIN_DRV_1BIT, |
45 | 6, UNIPHIER_PIN_PULL_DOWN), | 43 | 6, UNIPHIER_PIN_PULL_DOWN), |
46 | UNIPHIER_PINCTRL_PIN(7, "ED7", UNIPHIER_PIN_IECTRL_NONE, | 44 | UNIPHIER_PINCTRL_PIN(7, "ED7", UNIPHIER_PIN_IECTRL_NONE, |
47 | 7, UNIPHIER_PIN_DRV_4_8, | 45 | 7, UNIPHIER_PIN_DRV_1BIT, |
48 | 7, UNIPHIER_PIN_PULL_DOWN), | 46 | 7, UNIPHIER_PIN_PULL_DOWN), |
49 | UNIPHIER_PINCTRL_PIN(8, "XERWE0", UNIPHIER_PIN_IECTRL_NONE, | 47 | UNIPHIER_PINCTRL_PIN(8, "XERWE0", UNIPHIER_PIN_IECTRL_NONE, |
50 | 8, UNIPHIER_PIN_DRV_4_8, | 48 | 8, UNIPHIER_PIN_DRV_1BIT, |
51 | 8, UNIPHIER_PIN_PULL_DOWN), | 49 | 8, UNIPHIER_PIN_PULL_DOWN), |
52 | UNIPHIER_PINCTRL_PIN(9, "XERWE1", UNIPHIER_PIN_IECTRL_NONE, | 50 | UNIPHIER_PINCTRL_PIN(9, "XERWE1", UNIPHIER_PIN_IECTRL_NONE, |
53 | 9, UNIPHIER_PIN_DRV_4_8, | 51 | 9, UNIPHIER_PIN_DRV_1BIT, |
54 | 9, UNIPHIER_PIN_PULL_DOWN), | 52 | 9, UNIPHIER_PIN_PULL_DOWN), |
55 | UNIPHIER_PINCTRL_PIN(10, "ERXW", UNIPHIER_PIN_IECTRL_NONE, | 53 | UNIPHIER_PINCTRL_PIN(10, "ERXW", UNIPHIER_PIN_IECTRL_NONE, |
56 | 10, UNIPHIER_PIN_DRV_4_8, | 54 | 10, UNIPHIER_PIN_DRV_1BIT, |
57 | 10, UNIPHIER_PIN_PULL_DOWN), | 55 | 10, UNIPHIER_PIN_PULL_DOWN), |
58 | UNIPHIER_PINCTRL_PIN(11, "ES0", UNIPHIER_PIN_IECTRL_NONE, | 56 | UNIPHIER_PINCTRL_PIN(11, "ES0", UNIPHIER_PIN_IECTRL_NONE, |
59 | 11, UNIPHIER_PIN_DRV_4_8, | 57 | 11, UNIPHIER_PIN_DRV_1BIT, |
60 | 11, UNIPHIER_PIN_PULL_DOWN), | 58 | 11, UNIPHIER_PIN_PULL_DOWN), |
61 | UNIPHIER_PINCTRL_PIN(12, "ES1", UNIPHIER_PIN_IECTRL_NONE, | 59 | UNIPHIER_PINCTRL_PIN(12, "ES1", UNIPHIER_PIN_IECTRL_NONE, |
62 | 12, UNIPHIER_PIN_DRV_4_8, | 60 | 12, UNIPHIER_PIN_DRV_1BIT, |
63 | 12, UNIPHIER_PIN_PULL_DOWN), | 61 | 12, UNIPHIER_PIN_PULL_DOWN), |
64 | UNIPHIER_PINCTRL_PIN(13, "ES2", UNIPHIER_PIN_IECTRL_NONE, | 62 | UNIPHIER_PINCTRL_PIN(13, "ES2", UNIPHIER_PIN_IECTRL_NONE, |
65 | 13, UNIPHIER_PIN_DRV_4_8, | 63 | 13, UNIPHIER_PIN_DRV_1BIT, |
66 | 13, UNIPHIER_PIN_PULL_DOWN), | 64 | 13, UNIPHIER_PIN_PULL_DOWN), |
67 | UNIPHIER_PINCTRL_PIN(14, "XECS1", UNIPHIER_PIN_IECTRL_NONE, | 65 | UNIPHIER_PINCTRL_PIN(14, "XECS1", UNIPHIER_PIN_IECTRL_NONE, |
68 | 14, UNIPHIER_PIN_DRV_4_8, | 66 | 14, UNIPHIER_PIN_DRV_1BIT, |
69 | 14, UNIPHIER_PIN_PULL_DOWN), | 67 | 14, UNIPHIER_PIN_PULL_DOWN), |
70 | UNIPHIER_PINCTRL_PIN(15, "PCA00", UNIPHIER_PIN_IECTRL_NONE, | 68 | UNIPHIER_PINCTRL_PIN(15, "PCA00", UNIPHIER_PIN_IECTRL_NONE, |
71 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 69 | -1, UNIPHIER_PIN_DRV_FIXED8, |
72 | 15, UNIPHIER_PIN_PULL_DOWN), | 70 | 15, UNIPHIER_PIN_PULL_DOWN), |
73 | UNIPHIER_PINCTRL_PIN(16, "PCA01", UNIPHIER_PIN_IECTRL_NONE, | 71 | UNIPHIER_PINCTRL_PIN(16, "PCA01", UNIPHIER_PIN_IECTRL_NONE, |
74 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 72 | -1, UNIPHIER_PIN_DRV_FIXED8, |
75 | 16, UNIPHIER_PIN_PULL_DOWN), | 73 | 16, UNIPHIER_PIN_PULL_DOWN), |
76 | UNIPHIER_PINCTRL_PIN(17, "PCA02", UNIPHIER_PIN_IECTRL_NONE, | 74 | UNIPHIER_PINCTRL_PIN(17, "PCA02", UNIPHIER_PIN_IECTRL_NONE, |
77 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 75 | -1, UNIPHIER_PIN_DRV_FIXED8, |
78 | 17, UNIPHIER_PIN_PULL_DOWN), | 76 | 17, UNIPHIER_PIN_PULL_DOWN), |
79 | UNIPHIER_PINCTRL_PIN(18, "PCA03", UNIPHIER_PIN_IECTRL_NONE, | 77 | UNIPHIER_PINCTRL_PIN(18, "PCA03", UNIPHIER_PIN_IECTRL_NONE, |
80 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 78 | -1, UNIPHIER_PIN_DRV_FIXED8, |
81 | 18, UNIPHIER_PIN_PULL_DOWN), | 79 | 18, UNIPHIER_PIN_PULL_DOWN), |
82 | UNIPHIER_PINCTRL_PIN(19, "PCA04", UNIPHIER_PIN_IECTRL_NONE, | 80 | UNIPHIER_PINCTRL_PIN(19, "PCA04", UNIPHIER_PIN_IECTRL_NONE, |
83 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 81 | -1, UNIPHIER_PIN_DRV_FIXED8, |
84 | 19, UNIPHIER_PIN_PULL_DOWN), | 82 | 19, UNIPHIER_PIN_PULL_DOWN), |
85 | UNIPHIER_PINCTRL_PIN(20, "PCA05", UNIPHIER_PIN_IECTRL_NONE, | 83 | UNIPHIER_PINCTRL_PIN(20, "PCA05", UNIPHIER_PIN_IECTRL_NONE, |
86 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 84 | -1, UNIPHIER_PIN_DRV_FIXED8, |
87 | 20, UNIPHIER_PIN_PULL_DOWN), | 85 | 20, UNIPHIER_PIN_PULL_DOWN), |
88 | UNIPHIER_PINCTRL_PIN(21, "PCA06", UNIPHIER_PIN_IECTRL_NONE, | 86 | UNIPHIER_PINCTRL_PIN(21, "PCA06", UNIPHIER_PIN_IECTRL_NONE, |
89 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 87 | -1, UNIPHIER_PIN_DRV_FIXED8, |
90 | 21, UNIPHIER_PIN_PULL_DOWN), | 88 | 21, UNIPHIER_PIN_PULL_DOWN), |
91 | UNIPHIER_PINCTRL_PIN(22, "PCA07", UNIPHIER_PIN_IECTRL_NONE, | 89 | UNIPHIER_PINCTRL_PIN(22, "PCA07", UNIPHIER_PIN_IECTRL_NONE, |
92 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 90 | -1, UNIPHIER_PIN_DRV_FIXED8, |
93 | 22, UNIPHIER_PIN_PULL_DOWN), | 91 | 22, UNIPHIER_PIN_PULL_DOWN), |
94 | UNIPHIER_PINCTRL_PIN(23, "PCA08", UNIPHIER_PIN_IECTRL_NONE, | 92 | UNIPHIER_PINCTRL_PIN(23, "PCA08", UNIPHIER_PIN_IECTRL_NONE, |
95 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 93 | -1, UNIPHIER_PIN_DRV_FIXED8, |
96 | 23, UNIPHIER_PIN_PULL_DOWN), | 94 | 23, UNIPHIER_PIN_PULL_DOWN), |
97 | UNIPHIER_PINCTRL_PIN(24, "PCA09", UNIPHIER_PIN_IECTRL_NONE, | 95 | UNIPHIER_PINCTRL_PIN(24, "PCA09", UNIPHIER_PIN_IECTRL_NONE, |
98 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 96 | -1, UNIPHIER_PIN_DRV_FIXED8, |
99 | 24, UNIPHIER_PIN_PULL_DOWN), | 97 | 24, UNIPHIER_PIN_PULL_DOWN), |
100 | UNIPHIER_PINCTRL_PIN(25, "PCA10", UNIPHIER_PIN_IECTRL_NONE, | 98 | UNIPHIER_PINCTRL_PIN(25, "PCA10", UNIPHIER_PIN_IECTRL_NONE, |
101 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 99 | -1, UNIPHIER_PIN_DRV_FIXED8, |
102 | 25, UNIPHIER_PIN_PULL_DOWN), | 100 | 25, UNIPHIER_PIN_PULL_DOWN), |
103 | UNIPHIER_PINCTRL_PIN(26, "PCA11", UNIPHIER_PIN_IECTRL_NONE, | 101 | UNIPHIER_PINCTRL_PIN(26, "PCA11", UNIPHIER_PIN_IECTRL_NONE, |
104 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 102 | -1, UNIPHIER_PIN_DRV_FIXED8, |
105 | 26, UNIPHIER_PIN_PULL_DOWN), | 103 | 26, UNIPHIER_PIN_PULL_DOWN), |
106 | UNIPHIER_PINCTRL_PIN(27, "PCA12", UNIPHIER_PIN_IECTRL_NONE, | 104 | UNIPHIER_PINCTRL_PIN(27, "PCA12", UNIPHIER_PIN_IECTRL_NONE, |
107 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 105 | -1, UNIPHIER_PIN_DRV_FIXED8, |
108 | 27, UNIPHIER_PIN_PULL_DOWN), | 106 | 27, UNIPHIER_PIN_PULL_DOWN), |
109 | UNIPHIER_PINCTRL_PIN(28, "PCA13", UNIPHIER_PIN_IECTRL_NONE, | 107 | UNIPHIER_PINCTRL_PIN(28, "PCA13", UNIPHIER_PIN_IECTRL_NONE, |
110 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 108 | -1, UNIPHIER_PIN_DRV_FIXED8, |
111 | 28, UNIPHIER_PIN_PULL_DOWN), | 109 | 28, UNIPHIER_PIN_PULL_DOWN), |
112 | UNIPHIER_PINCTRL_PIN(29, "PCA14", UNIPHIER_PIN_IECTRL_NONE, | 110 | UNIPHIER_PINCTRL_PIN(29, "PCA14", UNIPHIER_PIN_IECTRL_NONE, |
113 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 111 | -1, UNIPHIER_PIN_DRV_FIXED8, |
114 | 29, UNIPHIER_PIN_PULL_DOWN), | 112 | 29, UNIPHIER_PIN_PULL_DOWN), |
115 | UNIPHIER_PINCTRL_PIN(30, "XNFRE", UNIPHIER_PIN_IECTRL_NONE, | 113 | UNIPHIER_PINCTRL_PIN(30, "XNFRE", UNIPHIER_PIN_IECTRL_NONE, |
116 | 30, UNIPHIER_PIN_DRV_4_8, | 114 | 30, UNIPHIER_PIN_DRV_1BIT, |
117 | 30, UNIPHIER_PIN_PULL_UP), | 115 | 30, UNIPHIER_PIN_PULL_UP), |
118 | UNIPHIER_PINCTRL_PIN(31, "XNFWE", UNIPHIER_PIN_IECTRL_NONE, | 116 | UNIPHIER_PINCTRL_PIN(31, "XNFWE", UNIPHIER_PIN_IECTRL_NONE, |
119 | 31, UNIPHIER_PIN_DRV_4_8, | 117 | 31, UNIPHIER_PIN_DRV_1BIT, |
120 | 31, UNIPHIER_PIN_PULL_UP), | 118 | 31, UNIPHIER_PIN_PULL_UP), |
121 | UNIPHIER_PINCTRL_PIN(32, "NFALE", UNIPHIER_PIN_IECTRL_NONE, | 119 | UNIPHIER_PINCTRL_PIN(32, "NFALE", UNIPHIER_PIN_IECTRL_NONE, |
122 | 32, UNIPHIER_PIN_DRV_4_8, | 120 | 32, UNIPHIER_PIN_DRV_1BIT, |
123 | 32, UNIPHIER_PIN_PULL_DOWN), | 121 | 32, UNIPHIER_PIN_PULL_DOWN), |
124 | UNIPHIER_PINCTRL_PIN(33, "NFCLE", UNIPHIER_PIN_IECTRL_NONE, | 122 | UNIPHIER_PINCTRL_PIN(33, "NFCLE", UNIPHIER_PIN_IECTRL_NONE, |
125 | 33, UNIPHIER_PIN_DRV_4_8, | 123 | 33, UNIPHIER_PIN_DRV_1BIT, |
126 | 33, UNIPHIER_PIN_PULL_DOWN), | 124 | 33, UNIPHIER_PIN_PULL_DOWN), |
127 | UNIPHIER_PINCTRL_PIN(34, "XNFWP", UNIPHIER_PIN_IECTRL_NONE, | 125 | UNIPHIER_PINCTRL_PIN(34, "XNFWP", UNIPHIER_PIN_IECTRL_NONE, |
128 | 34, UNIPHIER_PIN_DRV_4_8, | 126 | 34, UNIPHIER_PIN_DRV_1BIT, |
129 | 34, UNIPHIER_PIN_PULL_DOWN), | 127 | 34, UNIPHIER_PIN_PULL_DOWN), |
130 | UNIPHIER_PINCTRL_PIN(35, "XNFCE0", UNIPHIER_PIN_IECTRL_NONE, | 128 | UNIPHIER_PINCTRL_PIN(35, "XNFCE0", UNIPHIER_PIN_IECTRL_NONE, |
131 | 35, UNIPHIER_PIN_DRV_4_8, | 129 | 35, UNIPHIER_PIN_DRV_1BIT, |
132 | 35, UNIPHIER_PIN_PULL_UP), | 130 | 35, UNIPHIER_PIN_PULL_UP), |
133 | UNIPHIER_PINCTRL_PIN(36, "NFRYBY0", UNIPHIER_PIN_IECTRL_NONE, | 131 | UNIPHIER_PINCTRL_PIN(36, "NFRYBY0", UNIPHIER_PIN_IECTRL_NONE, |
134 | 36, UNIPHIER_PIN_DRV_4_8, | 132 | 36, UNIPHIER_PIN_DRV_1BIT, |
135 | 36, UNIPHIER_PIN_PULL_UP), | 133 | 36, UNIPHIER_PIN_PULL_UP), |
136 | UNIPHIER_PINCTRL_PIN(37, "XNFCE1", UNIPHIER_PIN_IECTRL_NONE, | 134 | UNIPHIER_PINCTRL_PIN(37, "XNFCE1", UNIPHIER_PIN_IECTRL_NONE, |
137 | 37, UNIPHIER_PIN_DRV_4_8, | 135 | 37, UNIPHIER_PIN_DRV_1BIT, |
138 | 37, UNIPHIER_PIN_PULL_UP), | 136 | 37, UNIPHIER_PIN_PULL_UP), |
139 | UNIPHIER_PINCTRL_PIN(38, "NFRYBY1", UNIPHIER_PIN_IECTRL_NONE, | 137 | UNIPHIER_PINCTRL_PIN(38, "NFRYBY1", UNIPHIER_PIN_IECTRL_NONE, |
140 | 38, UNIPHIER_PIN_DRV_4_8, | 138 | 38, UNIPHIER_PIN_DRV_1BIT, |
141 | 38, UNIPHIER_PIN_PULL_UP), | 139 | 38, UNIPHIER_PIN_PULL_UP), |
142 | UNIPHIER_PINCTRL_PIN(39, "NFD0", UNIPHIER_PIN_IECTRL_NONE, | 140 | UNIPHIER_PINCTRL_PIN(39, "NFD0", UNIPHIER_PIN_IECTRL_NONE, |
143 | 39, UNIPHIER_PIN_DRV_4_8, | 141 | 39, UNIPHIER_PIN_DRV_1BIT, |
144 | 39, UNIPHIER_PIN_PULL_DOWN), | 142 | 39, UNIPHIER_PIN_PULL_DOWN), |
145 | UNIPHIER_PINCTRL_PIN(40, "NFD1", UNIPHIER_PIN_IECTRL_NONE, | 143 | UNIPHIER_PINCTRL_PIN(40, "NFD1", UNIPHIER_PIN_IECTRL_NONE, |
146 | 40, UNIPHIER_PIN_DRV_4_8, | 144 | 40, UNIPHIER_PIN_DRV_1BIT, |
147 | 40, UNIPHIER_PIN_PULL_DOWN), | 145 | 40, UNIPHIER_PIN_PULL_DOWN), |
148 | UNIPHIER_PINCTRL_PIN(41, "NFD2", UNIPHIER_PIN_IECTRL_NONE, | 146 | UNIPHIER_PINCTRL_PIN(41, "NFD2", UNIPHIER_PIN_IECTRL_NONE, |
149 | 41, UNIPHIER_PIN_DRV_4_8, | 147 | 41, UNIPHIER_PIN_DRV_1BIT, |
150 | 41, UNIPHIER_PIN_PULL_DOWN), | 148 | 41, UNIPHIER_PIN_PULL_DOWN), |
151 | UNIPHIER_PINCTRL_PIN(42, "NFD3", UNIPHIER_PIN_IECTRL_NONE, | 149 | UNIPHIER_PINCTRL_PIN(42, "NFD3", UNIPHIER_PIN_IECTRL_NONE, |
152 | 42, UNIPHIER_PIN_DRV_4_8, | 150 | 42, UNIPHIER_PIN_DRV_1BIT, |
153 | 42, UNIPHIER_PIN_PULL_DOWN), | 151 | 42, UNIPHIER_PIN_PULL_DOWN), |
154 | UNIPHIER_PINCTRL_PIN(43, "NFD4", UNIPHIER_PIN_IECTRL_NONE, | 152 | UNIPHIER_PINCTRL_PIN(43, "NFD4", UNIPHIER_PIN_IECTRL_NONE, |
155 | 43, UNIPHIER_PIN_DRV_4_8, | 153 | 43, UNIPHIER_PIN_DRV_1BIT, |
156 | 43, UNIPHIER_PIN_PULL_DOWN), | 154 | 43, UNIPHIER_PIN_PULL_DOWN), |
157 | UNIPHIER_PINCTRL_PIN(44, "NFD5", UNIPHIER_PIN_IECTRL_NONE, | 155 | UNIPHIER_PINCTRL_PIN(44, "NFD5", UNIPHIER_PIN_IECTRL_NONE, |
158 | 44, UNIPHIER_PIN_DRV_4_8, | 156 | 44, UNIPHIER_PIN_DRV_1BIT, |
159 | 44, UNIPHIER_PIN_PULL_DOWN), | 157 | 44, UNIPHIER_PIN_PULL_DOWN), |
160 | UNIPHIER_PINCTRL_PIN(45, "NFD6", UNIPHIER_PIN_IECTRL_NONE, | 158 | UNIPHIER_PINCTRL_PIN(45, "NFD6", UNIPHIER_PIN_IECTRL_NONE, |
161 | 45, UNIPHIER_PIN_DRV_4_8, | 159 | 45, UNIPHIER_PIN_DRV_1BIT, |
162 | 45, UNIPHIER_PIN_PULL_DOWN), | 160 | 45, UNIPHIER_PIN_PULL_DOWN), |
163 | UNIPHIER_PINCTRL_PIN(46, "NFD7", UNIPHIER_PIN_IECTRL_NONE, | 161 | UNIPHIER_PINCTRL_PIN(46, "NFD7", UNIPHIER_PIN_IECTRL_NONE, |
164 | 46, UNIPHIER_PIN_DRV_4_8, | 162 | 46, UNIPHIER_PIN_DRV_1BIT, |
165 | 46, UNIPHIER_PIN_PULL_DOWN), | 163 | 46, UNIPHIER_PIN_PULL_DOWN), |
166 | UNIPHIER_PINCTRL_PIN(47, "SDCLK", UNIPHIER_PIN_IECTRL_NONE, | 164 | UNIPHIER_PINCTRL_PIN(47, "SDCLK", UNIPHIER_PIN_IECTRL_NONE, |
167 | 0, UNIPHIER_PIN_DRV_8_12_16_20, | 165 | 0, UNIPHIER_PIN_DRV_2BIT, |
168 | -1, UNIPHIER_PIN_PULL_UP_FIXED), | 166 | -1, UNIPHIER_PIN_PULL_UP_FIXED), |
169 | UNIPHIER_PINCTRL_PIN(48, "SDCMD", UNIPHIER_PIN_IECTRL_NONE, | 167 | UNIPHIER_PINCTRL_PIN(48, "SDCMD", UNIPHIER_PIN_IECTRL_NONE, |
170 | 4, UNIPHIER_PIN_DRV_8_12_16_20, | 168 | 1, UNIPHIER_PIN_DRV_2BIT, |
171 | -1, UNIPHIER_PIN_PULL_UP_FIXED), | 169 | -1, UNIPHIER_PIN_PULL_UP_FIXED), |
172 | UNIPHIER_PINCTRL_PIN(49, "SDDAT0", UNIPHIER_PIN_IECTRL_NONE, | 170 | UNIPHIER_PINCTRL_PIN(49, "SDDAT0", UNIPHIER_PIN_IECTRL_NONE, |
173 | 8, UNIPHIER_PIN_DRV_8_12_16_20, | 171 | 2, UNIPHIER_PIN_DRV_2BIT, |
174 | -1, UNIPHIER_PIN_PULL_UP_FIXED), | 172 | -1, UNIPHIER_PIN_PULL_UP_FIXED), |
175 | UNIPHIER_PINCTRL_PIN(50, "SDDAT1", UNIPHIER_PIN_IECTRL_NONE, | 173 | UNIPHIER_PINCTRL_PIN(50, "SDDAT1", UNIPHIER_PIN_IECTRL_NONE, |
176 | 12, UNIPHIER_PIN_DRV_8_12_16_20, | 174 | 3, UNIPHIER_PIN_DRV_2BIT, |
177 | -1, UNIPHIER_PIN_PULL_UP_FIXED), | 175 | -1, UNIPHIER_PIN_PULL_UP_FIXED), |
178 | UNIPHIER_PINCTRL_PIN(51, "SDDAT2", UNIPHIER_PIN_IECTRL_NONE, | 176 | UNIPHIER_PINCTRL_PIN(51, "SDDAT2", UNIPHIER_PIN_IECTRL_NONE, |
179 | 16, UNIPHIER_PIN_DRV_8_12_16_20, | 177 | 4, UNIPHIER_PIN_DRV_2BIT, |
180 | -1, UNIPHIER_PIN_PULL_UP_FIXED), | 178 | -1, UNIPHIER_PIN_PULL_UP_FIXED), |
181 | UNIPHIER_PINCTRL_PIN(52, "SDDAT3", UNIPHIER_PIN_IECTRL_NONE, | 179 | UNIPHIER_PINCTRL_PIN(52, "SDDAT3", UNIPHIER_PIN_IECTRL_NONE, |
182 | 20, UNIPHIER_PIN_DRV_8_12_16_20, | 180 | 5, UNIPHIER_PIN_DRV_2BIT, |
183 | -1, UNIPHIER_PIN_PULL_UP_FIXED), | 181 | -1, UNIPHIER_PIN_PULL_UP_FIXED), |
184 | UNIPHIER_PINCTRL_PIN(53, "SDCD", UNIPHIER_PIN_IECTRL_NONE, | 182 | UNIPHIER_PINCTRL_PIN(53, "SDCD", UNIPHIER_PIN_IECTRL_NONE, |
185 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 183 | -1, UNIPHIER_PIN_DRV_FIXED8, |
186 | 53, UNIPHIER_PIN_PULL_DOWN), | 184 | 53, UNIPHIER_PIN_PULL_DOWN), |
187 | UNIPHIER_PINCTRL_PIN(54, "SDWP", UNIPHIER_PIN_IECTRL_NONE, | 185 | UNIPHIER_PINCTRL_PIN(54, "SDWP", UNIPHIER_PIN_IECTRL_NONE, |
188 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 186 | -1, UNIPHIER_PIN_DRV_FIXED8, |
189 | 54, UNIPHIER_PIN_PULL_DOWN), | 187 | 54, UNIPHIER_PIN_PULL_DOWN), |
190 | UNIPHIER_PINCTRL_PIN(55, "SDVOLC", UNIPHIER_PIN_IECTRL_NONE, | 188 | UNIPHIER_PINCTRL_PIN(55, "SDVOLC", UNIPHIER_PIN_IECTRL_NONE, |
191 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 189 | -1, UNIPHIER_PIN_DRV_FIXED8, |
192 | 55, UNIPHIER_PIN_PULL_DOWN), | 190 | 55, UNIPHIER_PIN_PULL_DOWN), |
193 | UNIPHIER_PINCTRL_PIN(56, "USB0VBUS", UNIPHIER_PIN_IECTRL_NONE, | 191 | UNIPHIER_PINCTRL_PIN(56, "USB0VBUS", UNIPHIER_PIN_IECTRL_NONE, |
194 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 192 | -1, UNIPHIER_PIN_DRV_FIXED8, |
195 | 56, UNIPHIER_PIN_PULL_DOWN), | 193 | 56, UNIPHIER_PIN_PULL_DOWN), |
196 | UNIPHIER_PINCTRL_PIN(57, "USB0OD", UNIPHIER_PIN_IECTRL_NONE, | 194 | UNIPHIER_PINCTRL_PIN(57, "USB0OD", UNIPHIER_PIN_IECTRL_NONE, |
197 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 195 | -1, UNIPHIER_PIN_DRV_FIXED8, |
198 | 57, UNIPHIER_PIN_PULL_DOWN), | 196 | 57, UNIPHIER_PIN_PULL_DOWN), |
199 | UNIPHIER_PINCTRL_PIN(58, "USB1VBUS", UNIPHIER_PIN_IECTRL_NONE, | 197 | UNIPHIER_PINCTRL_PIN(58, "USB1VBUS", UNIPHIER_PIN_IECTRL_NONE, |
200 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 198 | -1, UNIPHIER_PIN_DRV_FIXED8, |
201 | 58, UNIPHIER_PIN_PULL_DOWN), | 199 | 58, UNIPHIER_PIN_PULL_DOWN), |
202 | UNIPHIER_PINCTRL_PIN(59, "USB1OD", UNIPHIER_PIN_IECTRL_NONE, | 200 | UNIPHIER_PINCTRL_PIN(59, "USB1OD", UNIPHIER_PIN_IECTRL_NONE, |
203 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 201 | -1, UNIPHIER_PIN_DRV_FIXED8, |
204 | 59, UNIPHIER_PIN_PULL_DOWN), | 202 | 59, UNIPHIER_PIN_PULL_DOWN), |
205 | UNIPHIER_PINCTRL_PIN(60, "USB2VBUS", UNIPHIER_PIN_IECTRL_NONE, | 203 | UNIPHIER_PINCTRL_PIN(60, "USB2VBUS", UNIPHIER_PIN_IECTRL_NONE, |
206 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 204 | -1, UNIPHIER_PIN_DRV_FIXED8, |
207 | 60, UNIPHIER_PIN_PULL_DOWN), | 205 | 60, UNIPHIER_PIN_PULL_DOWN), |
208 | UNIPHIER_PINCTRL_PIN(61, "USB2OD", UNIPHIER_PIN_IECTRL_NONE, | 206 | UNIPHIER_PINCTRL_PIN(61, "USB2OD", UNIPHIER_PIN_IECTRL_NONE, |
209 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 207 | -1, UNIPHIER_PIN_DRV_FIXED8, |
210 | 61, UNIPHIER_PIN_PULL_DOWN), | 208 | 61, UNIPHIER_PIN_PULL_DOWN), |
211 | UNIPHIER_PINCTRL_PIN(62, "USB3VBUS", UNIPHIER_PIN_IECTRL_NONE, | 209 | UNIPHIER_PINCTRL_PIN(62, "USB3VBUS", UNIPHIER_PIN_IECTRL_NONE, |
212 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 210 | -1, UNIPHIER_PIN_DRV_FIXED8, |
213 | 62, UNIPHIER_PIN_PULL_DOWN), | 211 | 62, UNIPHIER_PIN_PULL_DOWN), |
214 | UNIPHIER_PINCTRL_PIN(63, "USB3OD", UNIPHIER_PIN_IECTRL_NONE, | 212 | UNIPHIER_PINCTRL_PIN(63, "USB3OD", UNIPHIER_PIN_IECTRL_NONE, |
215 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 213 | -1, UNIPHIER_PIN_DRV_FIXED8, |
216 | 63, UNIPHIER_PIN_PULL_DOWN), | 214 | 63, UNIPHIER_PIN_PULL_DOWN), |
217 | UNIPHIER_PINCTRL_PIN(64, "HS0BCLKOUT", UNIPHIER_PIN_IECTRL_NONE, | 215 | UNIPHIER_PINCTRL_PIN(64, "HS0BCLKOUT", UNIPHIER_PIN_IECTRL_NONE, |
218 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 216 | -1, UNIPHIER_PIN_DRV_FIXED8, |
219 | 64, UNIPHIER_PIN_PULL_DOWN), | 217 | 64, UNIPHIER_PIN_PULL_DOWN), |
220 | UNIPHIER_PINCTRL_PIN(65, "HS0SYNCOUT", UNIPHIER_PIN_IECTRL_NONE, | 218 | UNIPHIER_PINCTRL_PIN(65, "HS0SYNCOUT", UNIPHIER_PIN_IECTRL_NONE, |
221 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 219 | -1, UNIPHIER_PIN_DRV_FIXED8, |
222 | 65, UNIPHIER_PIN_PULL_DOWN), | 220 | 65, UNIPHIER_PIN_PULL_DOWN), |
223 | UNIPHIER_PINCTRL_PIN(66, "HS0VALOUT", UNIPHIER_PIN_IECTRL_NONE, | 221 | UNIPHIER_PINCTRL_PIN(66, "HS0VALOUT", UNIPHIER_PIN_IECTRL_NONE, |
224 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 222 | -1, UNIPHIER_PIN_DRV_FIXED8, |
225 | 66, UNIPHIER_PIN_PULL_DOWN), | 223 | 66, UNIPHIER_PIN_PULL_DOWN), |
226 | UNIPHIER_PINCTRL_PIN(67, "HS0DOUT0", UNIPHIER_PIN_IECTRL_NONE, | 224 | UNIPHIER_PINCTRL_PIN(67, "HS0DOUT0", UNIPHIER_PIN_IECTRL_NONE, |
227 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 225 | -1, UNIPHIER_PIN_DRV_FIXED8, |
228 | 67, UNIPHIER_PIN_PULL_DOWN), | 226 | 67, UNIPHIER_PIN_PULL_DOWN), |
229 | UNIPHIER_PINCTRL_PIN(68, "HS0DOUT1", UNIPHIER_PIN_IECTRL_NONE, | 227 | UNIPHIER_PINCTRL_PIN(68, "HS0DOUT1", UNIPHIER_PIN_IECTRL_NONE, |
230 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 228 | -1, UNIPHIER_PIN_DRV_FIXED8, |
231 | 68, UNIPHIER_PIN_PULL_DOWN), | 229 | 68, UNIPHIER_PIN_PULL_DOWN), |
232 | UNIPHIER_PINCTRL_PIN(69, "HS0DOUT2", UNIPHIER_PIN_IECTRL_NONE, | 230 | UNIPHIER_PINCTRL_PIN(69, "HS0DOUT2", UNIPHIER_PIN_IECTRL_NONE, |
233 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 231 | -1, UNIPHIER_PIN_DRV_FIXED8, |
234 | 69, UNIPHIER_PIN_PULL_DOWN), | 232 | 69, UNIPHIER_PIN_PULL_DOWN), |
235 | UNIPHIER_PINCTRL_PIN(70, "HS0DOUT3", UNIPHIER_PIN_IECTRL_NONE, | 233 | UNIPHIER_PINCTRL_PIN(70, "HS0DOUT3", UNIPHIER_PIN_IECTRL_NONE, |
236 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 234 | -1, UNIPHIER_PIN_DRV_FIXED8, |
237 | 70, UNIPHIER_PIN_PULL_DOWN), | 235 | 70, UNIPHIER_PIN_PULL_DOWN), |
238 | UNIPHIER_PINCTRL_PIN(71, "HS0DOUT4", UNIPHIER_PIN_IECTRL_NONE, | 236 | UNIPHIER_PINCTRL_PIN(71, "HS0DOUT4", UNIPHIER_PIN_IECTRL_NONE, |
239 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 237 | -1, UNIPHIER_PIN_DRV_FIXED8, |
240 | 71, UNIPHIER_PIN_PULL_DOWN), | 238 | 71, UNIPHIER_PIN_PULL_DOWN), |
241 | UNIPHIER_PINCTRL_PIN(72, "HS0DOUT5", UNIPHIER_PIN_IECTRL_NONE, | 239 | UNIPHIER_PINCTRL_PIN(72, "HS0DOUT5", UNIPHIER_PIN_IECTRL_NONE, |
242 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 240 | -1, UNIPHIER_PIN_DRV_FIXED8, |
243 | 72, UNIPHIER_PIN_PULL_DOWN), | 241 | 72, UNIPHIER_PIN_PULL_DOWN), |
244 | UNIPHIER_PINCTRL_PIN(73, "HS0DOUT6", UNIPHIER_PIN_IECTRL_NONE, | 242 | UNIPHIER_PINCTRL_PIN(73, "HS0DOUT6", UNIPHIER_PIN_IECTRL_NONE, |
245 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 243 | -1, UNIPHIER_PIN_DRV_FIXED8, |
246 | 73, UNIPHIER_PIN_PULL_DOWN), | 244 | 73, UNIPHIER_PIN_PULL_DOWN), |
247 | UNIPHIER_PINCTRL_PIN(74, "HS0DOUT7", UNIPHIER_PIN_IECTRL_NONE, | 245 | UNIPHIER_PINCTRL_PIN(74, "HS0DOUT7", UNIPHIER_PIN_IECTRL_NONE, |
248 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 246 | -1, UNIPHIER_PIN_DRV_FIXED8, |
249 | 74, UNIPHIER_PIN_PULL_DOWN), | 247 | 74, UNIPHIER_PIN_PULL_DOWN), |
250 | UNIPHIER_PINCTRL_PIN(75, "HS1BCLKIN", UNIPHIER_PIN_IECTRL_NONE, | 248 | UNIPHIER_PINCTRL_PIN(75, "HS1BCLKIN", UNIPHIER_PIN_IECTRL_NONE, |
251 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 249 | -1, UNIPHIER_PIN_DRV_FIXED8, |
252 | 75, UNIPHIER_PIN_PULL_DOWN), | 250 | 75, UNIPHIER_PIN_PULL_DOWN), |
253 | UNIPHIER_PINCTRL_PIN(76, "HS1SYNCIN", UNIPHIER_PIN_IECTRL_NONE, | 251 | UNIPHIER_PINCTRL_PIN(76, "HS1SYNCIN", UNIPHIER_PIN_IECTRL_NONE, |
254 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 252 | -1, UNIPHIER_PIN_DRV_FIXED8, |
255 | 76, UNIPHIER_PIN_PULL_DOWN), | 253 | 76, UNIPHIER_PIN_PULL_DOWN), |
256 | UNIPHIER_PINCTRL_PIN(77, "HS1VALIN", UNIPHIER_PIN_IECTRL_NONE, | 254 | UNIPHIER_PINCTRL_PIN(77, "HS1VALIN", UNIPHIER_PIN_IECTRL_NONE, |
257 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 255 | -1, UNIPHIER_PIN_DRV_FIXED8, |
258 | 77, UNIPHIER_PIN_PULL_DOWN), | 256 | 77, UNIPHIER_PIN_PULL_DOWN), |
259 | UNIPHIER_PINCTRL_PIN(78, "HS1DIN0", UNIPHIER_PIN_IECTRL_NONE, | 257 | UNIPHIER_PINCTRL_PIN(78, "HS1DIN0", UNIPHIER_PIN_IECTRL_NONE, |
260 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 258 | -1, UNIPHIER_PIN_DRV_FIXED8, |
261 | 78, UNIPHIER_PIN_PULL_DOWN), | 259 | 78, UNIPHIER_PIN_PULL_DOWN), |
262 | UNIPHIER_PINCTRL_PIN(79, "HS1DIN1", UNIPHIER_PIN_IECTRL_NONE, | 260 | UNIPHIER_PINCTRL_PIN(79, "HS1DIN1", UNIPHIER_PIN_IECTRL_NONE, |
263 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 261 | -1, UNIPHIER_PIN_DRV_FIXED8, |
264 | 79, UNIPHIER_PIN_PULL_DOWN), | 262 | 79, UNIPHIER_PIN_PULL_DOWN), |
265 | UNIPHIER_PINCTRL_PIN(80, "HS1DIN2", UNIPHIER_PIN_IECTRL_NONE, | 263 | UNIPHIER_PINCTRL_PIN(80, "HS1DIN2", UNIPHIER_PIN_IECTRL_NONE, |
266 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 264 | -1, UNIPHIER_PIN_DRV_FIXED8, |
267 | 80, UNIPHIER_PIN_PULL_DOWN), | 265 | 80, UNIPHIER_PIN_PULL_DOWN), |
268 | UNIPHIER_PINCTRL_PIN(81, "HS1DIN3", UNIPHIER_PIN_IECTRL_NONE, | 266 | UNIPHIER_PINCTRL_PIN(81, "HS1DIN3", UNIPHIER_PIN_IECTRL_NONE, |
269 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 267 | -1, UNIPHIER_PIN_DRV_FIXED8, |
270 | 81, UNIPHIER_PIN_PULL_DOWN), | 268 | 81, UNIPHIER_PIN_PULL_DOWN), |
271 | UNIPHIER_PINCTRL_PIN(82, "HS1DIN4", UNIPHIER_PIN_IECTRL_NONE, | 269 | UNIPHIER_PINCTRL_PIN(82, "HS1DIN4", UNIPHIER_PIN_IECTRL_NONE, |
272 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 270 | -1, UNIPHIER_PIN_DRV_FIXED8, |
273 | 82, UNIPHIER_PIN_PULL_DOWN), | 271 | 82, UNIPHIER_PIN_PULL_DOWN), |
274 | UNIPHIER_PINCTRL_PIN(83, "HS1DIN5", UNIPHIER_PIN_IECTRL_NONE, | 272 | UNIPHIER_PINCTRL_PIN(83, "HS1DIN5", UNIPHIER_PIN_IECTRL_NONE, |
275 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 273 | -1, UNIPHIER_PIN_DRV_FIXED8, |
276 | 83, UNIPHIER_PIN_PULL_DOWN), | 274 | 83, UNIPHIER_PIN_PULL_DOWN), |
277 | UNIPHIER_PINCTRL_PIN(84, "HS1DIN6", UNIPHIER_PIN_IECTRL_NONE, | 275 | UNIPHIER_PINCTRL_PIN(84, "HS1DIN6", UNIPHIER_PIN_IECTRL_NONE, |
278 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 276 | -1, UNIPHIER_PIN_DRV_FIXED8, |
279 | 84, UNIPHIER_PIN_PULL_DOWN), | 277 | 84, UNIPHIER_PIN_PULL_DOWN), |
280 | UNIPHIER_PINCTRL_PIN(85, "HS1DIN7", UNIPHIER_PIN_IECTRL_NONE, | 278 | UNIPHIER_PINCTRL_PIN(85, "HS1DIN7", UNIPHIER_PIN_IECTRL_NONE, |
281 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 279 | -1, UNIPHIER_PIN_DRV_FIXED8, |
282 | 85, UNIPHIER_PIN_PULL_DOWN), | 280 | 85, UNIPHIER_PIN_PULL_DOWN), |
283 | UNIPHIER_PINCTRL_PIN(86, "HS2BCLKIN", UNIPHIER_PIN_IECTRL_NONE, | 281 | UNIPHIER_PINCTRL_PIN(86, "HS2BCLKIN", UNIPHIER_PIN_IECTRL_NONE, |
284 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 282 | -1, UNIPHIER_PIN_DRV_FIXED8, |
285 | 86, UNIPHIER_PIN_PULL_DOWN), | 283 | 86, UNIPHIER_PIN_PULL_DOWN), |
286 | UNIPHIER_PINCTRL_PIN(87, "HS2SYNCIN", UNIPHIER_PIN_IECTRL_NONE, | 284 | UNIPHIER_PINCTRL_PIN(87, "HS2SYNCIN", UNIPHIER_PIN_IECTRL_NONE, |
287 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 285 | -1, UNIPHIER_PIN_DRV_FIXED8, |
288 | 87, UNIPHIER_PIN_PULL_DOWN), | 286 | 87, UNIPHIER_PIN_PULL_DOWN), |
289 | UNIPHIER_PINCTRL_PIN(88, "HS2VALIN", UNIPHIER_PIN_IECTRL_NONE, | 287 | UNIPHIER_PINCTRL_PIN(88, "HS2VALIN", UNIPHIER_PIN_IECTRL_NONE, |
290 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 288 | -1, UNIPHIER_PIN_DRV_FIXED8, |
291 | 88, UNIPHIER_PIN_PULL_DOWN), | 289 | 88, UNIPHIER_PIN_PULL_DOWN), |
292 | UNIPHIER_PINCTRL_PIN(89, "HS2DIN0", UNIPHIER_PIN_IECTRL_NONE, | 290 | UNIPHIER_PINCTRL_PIN(89, "HS2DIN0", UNIPHIER_PIN_IECTRL_NONE, |
293 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 291 | -1, UNIPHIER_PIN_DRV_FIXED8, |
294 | 89, UNIPHIER_PIN_PULL_DOWN), | 292 | 89, UNIPHIER_PIN_PULL_DOWN), |
295 | UNIPHIER_PINCTRL_PIN(90, "HS2DIN1", UNIPHIER_PIN_IECTRL_NONE, | 293 | UNIPHIER_PINCTRL_PIN(90, "HS2DIN1", UNIPHIER_PIN_IECTRL_NONE, |
296 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 294 | -1, UNIPHIER_PIN_DRV_FIXED8, |
297 | 90, UNIPHIER_PIN_PULL_DOWN), | 295 | 90, UNIPHIER_PIN_PULL_DOWN), |
298 | UNIPHIER_PINCTRL_PIN(91, "HS2DIN2", UNIPHIER_PIN_IECTRL_NONE, | 296 | UNIPHIER_PINCTRL_PIN(91, "HS2DIN2", UNIPHIER_PIN_IECTRL_NONE, |
299 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 297 | -1, UNIPHIER_PIN_DRV_FIXED8, |
300 | 91, UNIPHIER_PIN_PULL_DOWN), | 298 | 91, UNIPHIER_PIN_PULL_DOWN), |
301 | UNIPHIER_PINCTRL_PIN(92, "HS2DIN3", UNIPHIER_PIN_IECTRL_NONE, | 299 | UNIPHIER_PINCTRL_PIN(92, "HS2DIN3", UNIPHIER_PIN_IECTRL_NONE, |
302 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 300 | -1, UNIPHIER_PIN_DRV_FIXED8, |
303 | 92, UNIPHIER_PIN_PULL_DOWN), | 301 | 92, UNIPHIER_PIN_PULL_DOWN), |
304 | UNIPHIER_PINCTRL_PIN(93, "HS2DIN4", UNIPHIER_PIN_IECTRL_NONE, | 302 | UNIPHIER_PINCTRL_PIN(93, "HS2DIN4", UNIPHIER_PIN_IECTRL_NONE, |
305 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 303 | -1, UNIPHIER_PIN_DRV_FIXED8, |
306 | 93, UNIPHIER_PIN_PULL_DOWN), | 304 | 93, UNIPHIER_PIN_PULL_DOWN), |
307 | UNIPHIER_PINCTRL_PIN(94, "HS2DIN5", UNIPHIER_PIN_IECTRL_NONE, | 305 | UNIPHIER_PINCTRL_PIN(94, "HS2DIN5", UNIPHIER_PIN_IECTRL_NONE, |
308 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 306 | -1, UNIPHIER_PIN_DRV_FIXED8, |
309 | 94, UNIPHIER_PIN_PULL_DOWN), | 307 | 94, UNIPHIER_PIN_PULL_DOWN), |
310 | UNIPHIER_PINCTRL_PIN(95, "HS2DIN6", UNIPHIER_PIN_IECTRL_NONE, | 308 | UNIPHIER_PINCTRL_PIN(95, "HS2DIN6", UNIPHIER_PIN_IECTRL_NONE, |
311 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 309 | -1, UNIPHIER_PIN_DRV_FIXED8, |
312 | 95, UNIPHIER_PIN_PULL_DOWN), | 310 | 95, UNIPHIER_PIN_PULL_DOWN), |
313 | UNIPHIER_PINCTRL_PIN(96, "HS2DIN7", UNIPHIER_PIN_IECTRL_NONE, | 311 | UNIPHIER_PINCTRL_PIN(96, "HS2DIN7", UNIPHIER_PIN_IECTRL_NONE, |
314 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 312 | -1, UNIPHIER_PIN_DRV_FIXED8, |
315 | 96, UNIPHIER_PIN_PULL_DOWN), | 313 | 96, UNIPHIER_PIN_PULL_DOWN), |
316 | UNIPHIER_PINCTRL_PIN(97, "AO1IEC", UNIPHIER_PIN_IECTRL_NONE, | 314 | UNIPHIER_PINCTRL_PIN(97, "AO1IEC", UNIPHIER_PIN_IECTRL_NONE, |
317 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 315 | -1, UNIPHIER_PIN_DRV_FIXED8, |
318 | 97, UNIPHIER_PIN_PULL_DOWN), | 316 | 97, UNIPHIER_PIN_PULL_DOWN), |
319 | UNIPHIER_PINCTRL_PIN(98, "AO1DACCK", UNIPHIER_PIN_IECTRL_NONE, | 317 | UNIPHIER_PINCTRL_PIN(98, "AO1DACCK", UNIPHIER_PIN_IECTRL_NONE, |
320 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 318 | -1, UNIPHIER_PIN_DRV_FIXED8, |
321 | 98, UNIPHIER_PIN_PULL_DOWN), | 319 | 98, UNIPHIER_PIN_PULL_DOWN), |
322 | UNIPHIER_PINCTRL_PIN(99, "AO1BCK", UNIPHIER_PIN_IECTRL_NONE, | 320 | UNIPHIER_PINCTRL_PIN(99, "AO1BCK", UNIPHIER_PIN_IECTRL_NONE, |
323 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 321 | -1, UNIPHIER_PIN_DRV_FIXED8, |
324 | 99, UNIPHIER_PIN_PULL_DOWN), | 322 | 99, UNIPHIER_PIN_PULL_DOWN), |
325 | UNIPHIER_PINCTRL_PIN(100, "AO1LRCK", UNIPHIER_PIN_IECTRL_NONE, | 323 | UNIPHIER_PINCTRL_PIN(100, "AO1LRCK", UNIPHIER_PIN_IECTRL_NONE, |
326 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 324 | -1, UNIPHIER_PIN_DRV_FIXED8, |
327 | 100, UNIPHIER_PIN_PULL_DOWN), | 325 | 100, UNIPHIER_PIN_PULL_DOWN), |
328 | UNIPHIER_PINCTRL_PIN(101, "AO1D0", UNIPHIER_PIN_IECTRL_NONE, | 326 | UNIPHIER_PINCTRL_PIN(101, "AO1D0", UNIPHIER_PIN_IECTRL_NONE, |
329 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 327 | -1, UNIPHIER_PIN_DRV_FIXED8, |
330 | 101, UNIPHIER_PIN_PULL_DOWN), | 328 | 101, UNIPHIER_PIN_PULL_DOWN), |
331 | UNIPHIER_PINCTRL_PIN(102, "AO1D1", UNIPHIER_PIN_IECTRL_NONE, | 329 | UNIPHIER_PINCTRL_PIN(102, "AO1D1", UNIPHIER_PIN_IECTRL_NONE, |
332 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 330 | -1, UNIPHIER_PIN_DRV_FIXED8, |
333 | 102, UNIPHIER_PIN_PULL_DOWN), | 331 | 102, UNIPHIER_PIN_PULL_DOWN), |
334 | UNIPHIER_PINCTRL_PIN(103, "AO1D2", UNIPHIER_PIN_IECTRL_NONE, | 332 | UNIPHIER_PINCTRL_PIN(103, "AO1D2", UNIPHIER_PIN_IECTRL_NONE, |
335 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 333 | -1, UNIPHIER_PIN_DRV_FIXED8, |
336 | 103, UNIPHIER_PIN_PULL_DOWN), | 334 | 103, UNIPHIER_PIN_PULL_DOWN), |
337 | UNIPHIER_PINCTRL_PIN(104, "AO1D3", UNIPHIER_PIN_IECTRL_NONE, | 335 | UNIPHIER_PINCTRL_PIN(104, "AO1D3", UNIPHIER_PIN_IECTRL_NONE, |
338 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 336 | -1, UNIPHIER_PIN_DRV_FIXED8, |
339 | 104, UNIPHIER_PIN_PULL_DOWN), | 337 | 104, UNIPHIER_PIN_PULL_DOWN), |
340 | UNIPHIER_PINCTRL_PIN(105, "AO2DACCK", UNIPHIER_PIN_IECTRL_NONE, | 338 | UNIPHIER_PINCTRL_PIN(105, "AO2DACCK", UNIPHIER_PIN_IECTRL_NONE, |
341 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 339 | -1, UNIPHIER_PIN_DRV_FIXED8, |
342 | 105, UNIPHIER_PIN_PULL_DOWN), | 340 | 105, UNIPHIER_PIN_PULL_DOWN), |
343 | UNIPHIER_PINCTRL_PIN(106, "AO2BCK", UNIPHIER_PIN_IECTRL_NONE, | 341 | UNIPHIER_PINCTRL_PIN(106, "AO2BCK", UNIPHIER_PIN_IECTRL_NONE, |
344 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 342 | -1, UNIPHIER_PIN_DRV_FIXED8, |
345 | 106, UNIPHIER_PIN_PULL_DOWN), | 343 | 106, UNIPHIER_PIN_PULL_DOWN), |
346 | UNIPHIER_PINCTRL_PIN(107, "AO2LRCK", UNIPHIER_PIN_IECTRL_NONE, | 344 | UNIPHIER_PINCTRL_PIN(107, "AO2LRCK", UNIPHIER_PIN_IECTRL_NONE, |
347 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 345 | -1, UNIPHIER_PIN_DRV_FIXED8, |
348 | 107, UNIPHIER_PIN_PULL_DOWN), | 346 | 107, UNIPHIER_PIN_PULL_DOWN), |
349 | UNIPHIER_PINCTRL_PIN(108, "AO2D0", UNIPHIER_PIN_IECTRL_NONE, | 347 | UNIPHIER_PINCTRL_PIN(108, "AO2D0", UNIPHIER_PIN_IECTRL_NONE, |
350 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 348 | -1, UNIPHIER_PIN_DRV_FIXED8, |
351 | 108, UNIPHIER_PIN_PULL_DOWN), | 349 | 108, UNIPHIER_PIN_PULL_DOWN), |
352 | UNIPHIER_PINCTRL_PIN(109, "SDA0", UNIPHIER_PIN_IECTRL_NONE, | 350 | UNIPHIER_PINCTRL_PIN(109, "SDA0", UNIPHIER_PIN_IECTRL_NONE, |
353 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 351 | -1, UNIPHIER_PIN_DRV_FIXED8, |
354 | 109, UNIPHIER_PIN_PULL_DOWN), | 352 | 109, UNIPHIER_PIN_PULL_DOWN), |
355 | UNIPHIER_PINCTRL_PIN(110, "SCL0", UNIPHIER_PIN_IECTRL_NONE, | 353 | UNIPHIER_PINCTRL_PIN(110, "SCL0", UNIPHIER_PIN_IECTRL_NONE, |
356 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 354 | -1, UNIPHIER_PIN_DRV_FIXED8, |
357 | 110, UNIPHIER_PIN_PULL_DOWN), | 355 | 110, UNIPHIER_PIN_PULL_DOWN), |
358 | UNIPHIER_PINCTRL_PIN(111, "SDA1", UNIPHIER_PIN_IECTRL_NONE, | 356 | UNIPHIER_PINCTRL_PIN(111, "SDA1", UNIPHIER_PIN_IECTRL_NONE, |
359 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 357 | -1, UNIPHIER_PIN_DRV_FIXED8, |
360 | 111, UNIPHIER_PIN_PULL_DOWN), | 358 | 111, UNIPHIER_PIN_PULL_DOWN), |
361 | UNIPHIER_PINCTRL_PIN(112, "SCL1", UNIPHIER_PIN_IECTRL_NONE, | 359 | UNIPHIER_PINCTRL_PIN(112, "SCL1", UNIPHIER_PIN_IECTRL_NONE, |
362 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 360 | -1, UNIPHIER_PIN_DRV_FIXED8, |
363 | 112, UNIPHIER_PIN_PULL_DOWN), | 361 | 112, UNIPHIER_PIN_PULL_DOWN), |
364 | UNIPHIER_PINCTRL_PIN(113, "SBO0", 0, | 362 | UNIPHIER_PINCTRL_PIN(113, "SBO0", 0, |
365 | 113, UNIPHIER_PIN_DRV_4_8, | 363 | 113, UNIPHIER_PIN_DRV_1BIT, |
366 | 113, UNIPHIER_PIN_PULL_UP), | 364 | 113, UNIPHIER_PIN_PULL_UP), |
367 | UNIPHIER_PINCTRL_PIN(114, "SBI0", 0, | 365 | UNIPHIER_PINCTRL_PIN(114, "SBI0", 0, |
368 | 114, UNIPHIER_PIN_DRV_4_8, | 366 | 114, UNIPHIER_PIN_DRV_1BIT, |
369 | 114, UNIPHIER_PIN_PULL_UP), | 367 | 114, UNIPHIER_PIN_PULL_UP), |
370 | UNIPHIER_PINCTRL_PIN(115, "TXD1", 0, | 368 | UNIPHIER_PINCTRL_PIN(115, "TXD1", 0, |
371 | 115, UNIPHIER_PIN_DRV_4_8, | 369 | 115, UNIPHIER_PIN_DRV_1BIT, |
372 | 115, UNIPHIER_PIN_PULL_UP), | 370 | 115, UNIPHIER_PIN_PULL_UP), |
373 | UNIPHIER_PINCTRL_PIN(116, "RXD1", 0, | 371 | UNIPHIER_PINCTRL_PIN(116, "RXD1", 0, |
374 | 116, UNIPHIER_PIN_DRV_4_8, | 372 | 116, UNIPHIER_PIN_DRV_1BIT, |
375 | 116, UNIPHIER_PIN_PULL_UP), | 373 | 116, UNIPHIER_PIN_PULL_UP), |
376 | UNIPHIER_PINCTRL_PIN(117, "PWSRA", UNIPHIER_PIN_IECTRL_NONE, | 374 | UNIPHIER_PINCTRL_PIN(117, "PWSRA", UNIPHIER_PIN_IECTRL_NONE, |
377 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 375 | -1, UNIPHIER_PIN_DRV_FIXED8, |
378 | 117, UNIPHIER_PIN_PULL_DOWN), | 376 | 117, UNIPHIER_PIN_PULL_DOWN), |
379 | UNIPHIER_PINCTRL_PIN(118, "XIRQ0", UNIPHIER_PIN_IECTRL_NONE, | 377 | UNIPHIER_PINCTRL_PIN(118, "XIRQ0", UNIPHIER_PIN_IECTRL_NONE, |
380 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 378 | -1, UNIPHIER_PIN_DRV_FIXED8, |
381 | 118, UNIPHIER_PIN_PULL_DOWN), | 379 | 118, UNIPHIER_PIN_PULL_DOWN), |
382 | UNIPHIER_PINCTRL_PIN(119, "XIRQ1", UNIPHIER_PIN_IECTRL_NONE, | 380 | UNIPHIER_PINCTRL_PIN(119, "XIRQ1", UNIPHIER_PIN_IECTRL_NONE, |
383 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 381 | -1, UNIPHIER_PIN_DRV_FIXED8, |
384 | 119, UNIPHIER_PIN_PULL_DOWN), | 382 | 119, UNIPHIER_PIN_PULL_DOWN), |
385 | UNIPHIER_PINCTRL_PIN(120, "XIRQ2", UNIPHIER_PIN_IECTRL_NONE, | 383 | UNIPHIER_PINCTRL_PIN(120, "XIRQ2", UNIPHIER_PIN_IECTRL_NONE, |
386 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 384 | -1, UNIPHIER_PIN_DRV_FIXED8, |
387 | 120, UNIPHIER_PIN_PULL_DOWN), | 385 | 120, UNIPHIER_PIN_PULL_DOWN), |
388 | UNIPHIER_PINCTRL_PIN(121, "XIRQ3", UNIPHIER_PIN_IECTRL_NONE, | 386 | UNIPHIER_PINCTRL_PIN(121, "XIRQ3", UNIPHIER_PIN_IECTRL_NONE, |
389 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 387 | -1, UNIPHIER_PIN_DRV_FIXED8, |
390 | 121, UNIPHIER_PIN_PULL_DOWN), | 388 | 121, UNIPHIER_PIN_PULL_DOWN), |
391 | UNIPHIER_PINCTRL_PIN(122, "XIRQ4", UNIPHIER_PIN_IECTRL_NONE, | 389 | UNIPHIER_PINCTRL_PIN(122, "XIRQ4", UNIPHIER_PIN_IECTRL_NONE, |
392 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 390 | -1, UNIPHIER_PIN_DRV_FIXED8, |
393 | 122, UNIPHIER_PIN_PULL_DOWN), | 391 | 122, UNIPHIER_PIN_PULL_DOWN), |
394 | UNIPHIER_PINCTRL_PIN(123, "XIRQ5", UNIPHIER_PIN_IECTRL_NONE, | 392 | UNIPHIER_PINCTRL_PIN(123, "XIRQ5", UNIPHIER_PIN_IECTRL_NONE, |
395 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 393 | -1, UNIPHIER_PIN_DRV_FIXED8, |
396 | 123, UNIPHIER_PIN_PULL_DOWN), | 394 | 123, UNIPHIER_PIN_PULL_DOWN), |
397 | UNIPHIER_PINCTRL_PIN(124, "XIRQ6", UNIPHIER_PIN_IECTRL_NONE, | 395 | UNIPHIER_PINCTRL_PIN(124, "XIRQ6", UNIPHIER_PIN_IECTRL_NONE, |
398 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 396 | -1, UNIPHIER_PIN_DRV_FIXED8, |
399 | 124, UNIPHIER_PIN_PULL_DOWN), | 397 | 124, UNIPHIER_PIN_PULL_DOWN), |
400 | UNIPHIER_PINCTRL_PIN(125, "XIRQ7", UNIPHIER_PIN_IECTRL_NONE, | 398 | UNIPHIER_PINCTRL_PIN(125, "XIRQ7", UNIPHIER_PIN_IECTRL_NONE, |
401 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 399 | -1, UNIPHIER_PIN_DRV_FIXED8, |
402 | 125, UNIPHIER_PIN_PULL_DOWN), | 400 | 125, UNIPHIER_PIN_PULL_DOWN), |
403 | UNIPHIER_PINCTRL_PIN(126, "XIRQ8", UNIPHIER_PIN_IECTRL_NONE, | 401 | UNIPHIER_PINCTRL_PIN(126, "XIRQ8", UNIPHIER_PIN_IECTRL_NONE, |
404 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 402 | -1, UNIPHIER_PIN_DRV_FIXED8, |
405 | 126, UNIPHIER_PIN_PULL_DOWN), | 403 | 126, UNIPHIER_PIN_PULL_DOWN), |
406 | UNIPHIER_PINCTRL_PIN(127, "PORT00", UNIPHIER_PIN_IECTRL_NONE, | 404 | UNIPHIER_PINCTRL_PIN(127, "PORT00", UNIPHIER_PIN_IECTRL_NONE, |
407 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 405 | -1, UNIPHIER_PIN_DRV_FIXED8, |
408 | 127, UNIPHIER_PIN_PULL_DOWN), | 406 | 127, UNIPHIER_PIN_PULL_DOWN), |
409 | UNIPHIER_PINCTRL_PIN(128, "PORT01", UNIPHIER_PIN_IECTRL_NONE, | 407 | UNIPHIER_PINCTRL_PIN(128, "PORT01", UNIPHIER_PIN_IECTRL_NONE, |
410 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 408 | -1, UNIPHIER_PIN_DRV_FIXED8, |
411 | 128, UNIPHIER_PIN_PULL_DOWN), | 409 | 128, UNIPHIER_PIN_PULL_DOWN), |
412 | UNIPHIER_PINCTRL_PIN(129, "PORT02", UNIPHIER_PIN_IECTRL_NONE, | 410 | UNIPHIER_PINCTRL_PIN(129, "PORT02", UNIPHIER_PIN_IECTRL_NONE, |
413 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 411 | -1, UNIPHIER_PIN_DRV_FIXED8, |
414 | 129, UNIPHIER_PIN_PULL_DOWN), | 412 | 129, UNIPHIER_PIN_PULL_DOWN), |
415 | UNIPHIER_PINCTRL_PIN(130, "PORT03", UNIPHIER_PIN_IECTRL_NONE, | 413 | UNIPHIER_PINCTRL_PIN(130, "PORT03", UNIPHIER_PIN_IECTRL_NONE, |
416 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 414 | -1, UNIPHIER_PIN_DRV_FIXED8, |
417 | 130, UNIPHIER_PIN_PULL_DOWN), | 415 | 130, UNIPHIER_PIN_PULL_DOWN), |
418 | UNIPHIER_PINCTRL_PIN(131, "PORT04", UNIPHIER_PIN_IECTRL_NONE, | 416 | UNIPHIER_PINCTRL_PIN(131, "PORT04", UNIPHIER_PIN_IECTRL_NONE, |
419 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 417 | -1, UNIPHIER_PIN_DRV_FIXED8, |
420 | 131, UNIPHIER_PIN_PULL_DOWN), | 418 | 131, UNIPHIER_PIN_PULL_DOWN), |
421 | UNIPHIER_PINCTRL_PIN(132, "PORT05", UNIPHIER_PIN_IECTRL_NONE, | 419 | UNIPHIER_PINCTRL_PIN(132, "PORT05", UNIPHIER_PIN_IECTRL_NONE, |
422 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 420 | -1, UNIPHIER_PIN_DRV_FIXED8, |
423 | 132, UNIPHIER_PIN_PULL_DOWN), | 421 | 132, UNIPHIER_PIN_PULL_DOWN), |
424 | UNIPHIER_PINCTRL_PIN(133, "PORT06", UNIPHIER_PIN_IECTRL_NONE, | 422 | UNIPHIER_PINCTRL_PIN(133, "PORT06", UNIPHIER_PIN_IECTRL_NONE, |
425 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 423 | -1, UNIPHIER_PIN_DRV_FIXED8, |
426 | 133, UNIPHIER_PIN_PULL_DOWN), | 424 | 133, UNIPHIER_PIN_PULL_DOWN), |
427 | UNIPHIER_PINCTRL_PIN(134, "PORT07", UNIPHIER_PIN_IECTRL_NONE, | 425 | UNIPHIER_PINCTRL_PIN(134, "PORT07", UNIPHIER_PIN_IECTRL_NONE, |
428 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 426 | -1, UNIPHIER_PIN_DRV_FIXED8, |
429 | 134, UNIPHIER_PIN_PULL_DOWN), | 427 | 134, UNIPHIER_PIN_PULL_DOWN), |
430 | UNIPHIER_PINCTRL_PIN(135, "PORT10", UNIPHIER_PIN_IECTRL_NONE, | 428 | UNIPHIER_PINCTRL_PIN(135, "PORT10", UNIPHIER_PIN_IECTRL_NONE, |
431 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 429 | -1, UNIPHIER_PIN_DRV_FIXED8, |
432 | 135, UNIPHIER_PIN_PULL_DOWN), | 430 | 135, UNIPHIER_PIN_PULL_DOWN), |
433 | UNIPHIER_PINCTRL_PIN(136, "PORT11", UNIPHIER_PIN_IECTRL_NONE, | 431 | UNIPHIER_PINCTRL_PIN(136, "PORT11", UNIPHIER_PIN_IECTRL_NONE, |
434 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 432 | -1, UNIPHIER_PIN_DRV_FIXED8, |
435 | 136, UNIPHIER_PIN_PULL_DOWN), | 433 | 136, UNIPHIER_PIN_PULL_DOWN), |
436 | UNIPHIER_PINCTRL_PIN(137, "PORT12", UNIPHIER_PIN_IECTRL_NONE, | 434 | UNIPHIER_PINCTRL_PIN(137, "PORT12", UNIPHIER_PIN_IECTRL_NONE, |
437 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 435 | -1, UNIPHIER_PIN_DRV_FIXED8, |
438 | 137, UNIPHIER_PIN_PULL_DOWN), | 436 | 137, UNIPHIER_PIN_PULL_DOWN), |
439 | UNIPHIER_PINCTRL_PIN(138, "PORT13", UNIPHIER_PIN_IECTRL_NONE, | 437 | UNIPHIER_PINCTRL_PIN(138, "PORT13", UNIPHIER_PIN_IECTRL_NONE, |
440 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 438 | -1, UNIPHIER_PIN_DRV_FIXED8, |
441 | 138, UNIPHIER_PIN_PULL_DOWN), | 439 | 138, UNIPHIER_PIN_PULL_DOWN), |
442 | UNIPHIER_PINCTRL_PIN(139, "PORT14", UNIPHIER_PIN_IECTRL_NONE, | 440 | UNIPHIER_PINCTRL_PIN(139, "PORT14", UNIPHIER_PIN_IECTRL_NONE, |
443 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 441 | -1, UNIPHIER_PIN_DRV_FIXED8, |
444 | 139, UNIPHIER_PIN_PULL_DOWN), | 442 | 139, UNIPHIER_PIN_PULL_DOWN), |
445 | UNIPHIER_PINCTRL_PIN(140, "PORT15", UNIPHIER_PIN_IECTRL_NONE, | 443 | UNIPHIER_PINCTRL_PIN(140, "PORT15", UNIPHIER_PIN_IECTRL_NONE, |
446 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 444 | -1, UNIPHIER_PIN_DRV_FIXED8, |
447 | 140, UNIPHIER_PIN_PULL_DOWN), | 445 | 140, UNIPHIER_PIN_PULL_DOWN), |
448 | UNIPHIER_PINCTRL_PIN(141, "PORT16", UNIPHIER_PIN_IECTRL_NONE, | 446 | UNIPHIER_PINCTRL_PIN(141, "PORT16", UNIPHIER_PIN_IECTRL_NONE, |
449 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 447 | -1, UNIPHIER_PIN_DRV_FIXED8, |
450 | 141, UNIPHIER_PIN_PULL_DOWN), | 448 | 141, UNIPHIER_PIN_PULL_DOWN), |
451 | UNIPHIER_PINCTRL_PIN(142, "LPST", UNIPHIER_PIN_IECTRL_NONE, | 449 | UNIPHIER_PINCTRL_PIN(142, "LPST", UNIPHIER_PIN_IECTRL_NONE, |
452 | 142, UNIPHIER_PIN_DRV_4_8, | 450 | 142, UNIPHIER_PIN_DRV_1BIT, |
453 | 142, UNIPHIER_PIN_PULL_DOWN), | 451 | 142, UNIPHIER_PIN_PULL_DOWN), |
454 | UNIPHIER_PINCTRL_PIN(143, "MDC", 0, | 452 | UNIPHIER_PINCTRL_PIN(143, "MDC", 0, |
455 | 143, UNIPHIER_PIN_DRV_4_8, | 453 | 143, UNIPHIER_PIN_DRV_1BIT, |
456 | 143, UNIPHIER_PIN_PULL_DOWN), | 454 | 143, UNIPHIER_PIN_PULL_DOWN), |
457 | UNIPHIER_PINCTRL_PIN(144, "MDIO", 0, | 455 | UNIPHIER_PINCTRL_PIN(144, "MDIO", 0, |
458 | 144, UNIPHIER_PIN_DRV_4_8, | 456 | 144, UNIPHIER_PIN_DRV_1BIT, |
459 | 144, UNIPHIER_PIN_PULL_DOWN), | 457 | 144, UNIPHIER_PIN_PULL_DOWN), |
460 | UNIPHIER_PINCTRL_PIN(145, "MDIO_INTL", 0, | 458 | UNIPHIER_PINCTRL_PIN(145, "MDIO_INTL", 0, |
461 | 145, UNIPHIER_PIN_DRV_4_8, | 459 | 145, UNIPHIER_PIN_DRV_1BIT, |
462 | 145, UNIPHIER_PIN_PULL_DOWN), | 460 | 145, UNIPHIER_PIN_PULL_DOWN), |
463 | UNIPHIER_PINCTRL_PIN(146, "PHYRSTL", 0, | 461 | UNIPHIER_PINCTRL_PIN(146, "PHYRSTL", 0, |
464 | 146, UNIPHIER_PIN_DRV_4_8, | 462 | 146, UNIPHIER_PIN_DRV_1BIT, |
465 | 146, UNIPHIER_PIN_PULL_DOWN), | 463 | 146, UNIPHIER_PIN_PULL_DOWN), |
466 | UNIPHIER_PINCTRL_PIN(147, "RGMII_RXCLK", 0, | 464 | UNIPHIER_PINCTRL_PIN(147, "RGMII_RXCLK", 0, |
467 | 147, UNIPHIER_PIN_DRV_4_8, | 465 | 147, UNIPHIER_PIN_DRV_1BIT, |
468 | 147, UNIPHIER_PIN_PULL_DOWN), | 466 | 147, UNIPHIER_PIN_PULL_DOWN), |
469 | UNIPHIER_PINCTRL_PIN(148, "RGMII_RXD0", 0, | 467 | UNIPHIER_PINCTRL_PIN(148, "RGMII_RXD0", 0, |
470 | 148, UNIPHIER_PIN_DRV_4_8, | 468 | 148, UNIPHIER_PIN_DRV_1BIT, |
471 | 148, UNIPHIER_PIN_PULL_DOWN), | 469 | 148, UNIPHIER_PIN_PULL_DOWN), |
472 | UNIPHIER_PINCTRL_PIN(149, "RGMII_RXD1", 0, | 470 | UNIPHIER_PINCTRL_PIN(149, "RGMII_RXD1", 0, |
473 | 149, UNIPHIER_PIN_DRV_4_8, | 471 | 149, UNIPHIER_PIN_DRV_1BIT, |
474 | 149, UNIPHIER_PIN_PULL_DOWN), | 472 | 149, UNIPHIER_PIN_PULL_DOWN), |
475 | UNIPHIER_PINCTRL_PIN(150, "RGMII_RXD2", 0, | 473 | UNIPHIER_PINCTRL_PIN(150, "RGMII_RXD2", 0, |
476 | 150, UNIPHIER_PIN_DRV_4_8, | 474 | 150, UNIPHIER_PIN_DRV_1BIT, |
477 | 150, UNIPHIER_PIN_PULL_DOWN), | 475 | 150, UNIPHIER_PIN_PULL_DOWN), |
478 | UNIPHIER_PINCTRL_PIN(151, "RGMII_RXD3", 0, | 476 | UNIPHIER_PINCTRL_PIN(151, "RGMII_RXD3", 0, |
479 | 151, UNIPHIER_PIN_DRV_4_8, | 477 | 151, UNIPHIER_PIN_DRV_1BIT, |
480 | 151, UNIPHIER_PIN_PULL_DOWN), | 478 | 151, UNIPHIER_PIN_PULL_DOWN), |
481 | UNIPHIER_PINCTRL_PIN(152, "RGMII_RXCTL", 0, | 479 | UNIPHIER_PINCTRL_PIN(152, "RGMII_RXCTL", 0, |
482 | 152, UNIPHIER_PIN_DRV_4_8, | 480 | 152, UNIPHIER_PIN_DRV_1BIT, |
483 | 152, UNIPHIER_PIN_PULL_DOWN), | 481 | 152, UNIPHIER_PIN_PULL_DOWN), |
484 | UNIPHIER_PINCTRL_PIN(153, "RGMII_TXCLK", 0, | 482 | UNIPHIER_PINCTRL_PIN(153, "RGMII_TXCLK", 0, |
485 | 153, UNIPHIER_PIN_DRV_4_8, | 483 | 153, UNIPHIER_PIN_DRV_1BIT, |
486 | 153, UNIPHIER_PIN_PULL_DOWN), | 484 | 153, UNIPHIER_PIN_PULL_DOWN), |
487 | UNIPHIER_PINCTRL_PIN(154, "RGMII_TXD0", 0, | 485 | UNIPHIER_PINCTRL_PIN(154, "RGMII_TXD0", 0, |
488 | 154, UNIPHIER_PIN_DRV_4_8, | 486 | 154, UNIPHIER_PIN_DRV_1BIT, |
489 | 154, UNIPHIER_PIN_PULL_DOWN), | 487 | 154, UNIPHIER_PIN_PULL_DOWN), |
490 | UNIPHIER_PINCTRL_PIN(155, "RGMII_TXD1", 0, | 488 | UNIPHIER_PINCTRL_PIN(155, "RGMII_TXD1", 0, |
491 | 155, UNIPHIER_PIN_DRV_4_8, | 489 | 155, UNIPHIER_PIN_DRV_1BIT, |
492 | 155, UNIPHIER_PIN_PULL_DOWN), | 490 | 155, UNIPHIER_PIN_PULL_DOWN), |
493 | UNIPHIER_PINCTRL_PIN(156, "RGMII_TXD2", 0, | 491 | UNIPHIER_PINCTRL_PIN(156, "RGMII_TXD2", 0, |
494 | 156, UNIPHIER_PIN_DRV_4_8, | 492 | 156, UNIPHIER_PIN_DRV_1BIT, |
495 | 156, UNIPHIER_PIN_PULL_DOWN), | 493 | 156, UNIPHIER_PIN_PULL_DOWN), |
496 | UNIPHIER_PINCTRL_PIN(157, "RGMII_TXD3", 0, | 494 | UNIPHIER_PINCTRL_PIN(157, "RGMII_TXD3", 0, |
497 | 157, UNIPHIER_PIN_DRV_4_8, | 495 | 157, UNIPHIER_PIN_DRV_1BIT, |
498 | 157, UNIPHIER_PIN_PULL_DOWN), | 496 | 157, UNIPHIER_PIN_PULL_DOWN), |
499 | UNIPHIER_PINCTRL_PIN(158, "RGMII_TXCTL", 0, | 497 | UNIPHIER_PINCTRL_PIN(158, "RGMII_TXCTL", 0, |
500 | 158, UNIPHIER_PIN_DRV_4_8, | 498 | 158, UNIPHIER_PIN_DRV_1BIT, |
501 | 158, UNIPHIER_PIN_PULL_DOWN), | 499 | 158, UNIPHIER_PIN_PULL_DOWN), |
502 | UNIPHIER_PINCTRL_PIN(159, "A_D_PCD00OUT", UNIPHIER_PIN_IECTRL_NONE, | 500 | UNIPHIER_PINCTRL_PIN(159, "A_D_PCD00OUT", UNIPHIER_PIN_IECTRL_NONE, |
503 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 501 | -1, UNIPHIER_PIN_DRV_FIXED8, |
504 | 159, UNIPHIER_PIN_PULL_DOWN), | 502 | 159, UNIPHIER_PIN_PULL_DOWN), |
505 | UNIPHIER_PINCTRL_PIN(160, "A_D_PCD01OUT", UNIPHIER_PIN_IECTRL_NONE, | 503 | UNIPHIER_PINCTRL_PIN(160, "A_D_PCD01OUT", UNIPHIER_PIN_IECTRL_NONE, |
506 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 504 | -1, UNIPHIER_PIN_DRV_FIXED8, |
507 | 160, UNIPHIER_PIN_PULL_DOWN), | 505 | 160, UNIPHIER_PIN_PULL_DOWN), |
508 | UNIPHIER_PINCTRL_PIN(161, "A_D_PCD02OUT", UNIPHIER_PIN_IECTRL_NONE, | 506 | UNIPHIER_PINCTRL_PIN(161, "A_D_PCD02OUT", UNIPHIER_PIN_IECTRL_NONE, |
509 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 507 | -1, UNIPHIER_PIN_DRV_FIXED8, |
510 | 161, UNIPHIER_PIN_PULL_DOWN), | 508 | 161, UNIPHIER_PIN_PULL_DOWN), |
511 | UNIPHIER_PINCTRL_PIN(162, "A_D_PCD03OUT", UNIPHIER_PIN_IECTRL_NONE, | 509 | UNIPHIER_PINCTRL_PIN(162, "A_D_PCD03OUT", UNIPHIER_PIN_IECTRL_NONE, |
512 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 510 | -1, UNIPHIER_PIN_DRV_FIXED8, |
513 | 162, UNIPHIER_PIN_PULL_DOWN), | 511 | 162, UNIPHIER_PIN_PULL_DOWN), |
514 | UNIPHIER_PINCTRL_PIN(163, "A_D_PCD04OUT", UNIPHIER_PIN_IECTRL_NONE, | 512 | UNIPHIER_PINCTRL_PIN(163, "A_D_PCD04OUT", UNIPHIER_PIN_IECTRL_NONE, |
515 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 513 | -1, UNIPHIER_PIN_DRV_FIXED8, |
516 | 163, UNIPHIER_PIN_PULL_DOWN), | 514 | 163, UNIPHIER_PIN_PULL_DOWN), |
517 | UNIPHIER_PINCTRL_PIN(164, "A_D_PCD05OUT", UNIPHIER_PIN_IECTRL_NONE, | 515 | UNIPHIER_PINCTRL_PIN(164, "A_D_PCD05OUT", UNIPHIER_PIN_IECTRL_NONE, |
518 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 516 | -1, UNIPHIER_PIN_DRV_FIXED8, |
519 | 164, UNIPHIER_PIN_PULL_DOWN), | 517 | 164, UNIPHIER_PIN_PULL_DOWN), |
520 | UNIPHIER_PINCTRL_PIN(165, "A_D_PCD06OUT", UNIPHIER_PIN_IECTRL_NONE, | 518 | UNIPHIER_PINCTRL_PIN(165, "A_D_PCD06OUT", UNIPHIER_PIN_IECTRL_NONE, |
521 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 519 | -1, UNIPHIER_PIN_DRV_FIXED8, |
522 | 165, UNIPHIER_PIN_PULL_DOWN), | 520 | 165, UNIPHIER_PIN_PULL_DOWN), |
523 | UNIPHIER_PINCTRL_PIN(166, "A_D_PCD07OUT", UNIPHIER_PIN_IECTRL_NONE, | 521 | UNIPHIER_PINCTRL_PIN(166, "A_D_PCD07OUT", UNIPHIER_PIN_IECTRL_NONE, |
524 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 522 | -1, UNIPHIER_PIN_DRV_FIXED8, |
525 | 166, UNIPHIER_PIN_PULL_DOWN), | 523 | 166, UNIPHIER_PIN_PULL_DOWN), |
526 | UNIPHIER_PINCTRL_PIN(167, "A_D_PCD00IN", UNIPHIER_PIN_IECTRL_NONE, | 524 | UNIPHIER_PINCTRL_PIN(167, "A_D_PCD00IN", UNIPHIER_PIN_IECTRL_NONE, |
527 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 525 | -1, UNIPHIER_PIN_DRV_FIXED8, |
528 | 167, UNIPHIER_PIN_PULL_DOWN), | 526 | 167, UNIPHIER_PIN_PULL_DOWN), |
529 | UNIPHIER_PINCTRL_PIN(168, "A_D_PCD01IN", UNIPHIER_PIN_IECTRL_NONE, | 527 | UNIPHIER_PINCTRL_PIN(168, "A_D_PCD01IN", UNIPHIER_PIN_IECTRL_NONE, |
530 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 528 | -1, UNIPHIER_PIN_DRV_FIXED8, |
531 | 168, UNIPHIER_PIN_PULL_DOWN), | 529 | 168, UNIPHIER_PIN_PULL_DOWN), |
532 | UNIPHIER_PINCTRL_PIN(169, "A_D_PCD02IN", UNIPHIER_PIN_IECTRL_NONE, | 530 | UNIPHIER_PINCTRL_PIN(169, "A_D_PCD02IN", UNIPHIER_PIN_IECTRL_NONE, |
533 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 531 | -1, UNIPHIER_PIN_DRV_FIXED8, |
534 | 169, UNIPHIER_PIN_PULL_DOWN), | 532 | 169, UNIPHIER_PIN_PULL_DOWN), |
535 | UNIPHIER_PINCTRL_PIN(170, "A_D_PCD03IN", UNIPHIER_PIN_IECTRL_NONE, | 533 | UNIPHIER_PINCTRL_PIN(170, "A_D_PCD03IN", UNIPHIER_PIN_IECTRL_NONE, |
536 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 534 | -1, UNIPHIER_PIN_DRV_FIXED8, |
537 | 170, UNIPHIER_PIN_PULL_DOWN), | 535 | 170, UNIPHIER_PIN_PULL_DOWN), |
538 | UNIPHIER_PINCTRL_PIN(171, "A_D_PCD04IN", UNIPHIER_PIN_IECTRL_NONE, | 536 | UNIPHIER_PINCTRL_PIN(171, "A_D_PCD04IN", UNIPHIER_PIN_IECTRL_NONE, |
539 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 537 | -1, UNIPHIER_PIN_DRV_FIXED8, |
540 | 171, UNIPHIER_PIN_PULL_DOWN), | 538 | 171, UNIPHIER_PIN_PULL_DOWN), |
541 | UNIPHIER_PINCTRL_PIN(172, "A_D_PCD05IN", UNIPHIER_PIN_IECTRL_NONE, | 539 | UNIPHIER_PINCTRL_PIN(172, "A_D_PCD05IN", UNIPHIER_PIN_IECTRL_NONE, |
542 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 540 | -1, UNIPHIER_PIN_DRV_FIXED8, |
543 | 172, UNIPHIER_PIN_PULL_DOWN), | 541 | 172, UNIPHIER_PIN_PULL_DOWN), |
544 | UNIPHIER_PINCTRL_PIN(173, "A_D_PCD06IN", UNIPHIER_PIN_IECTRL_NONE, | 542 | UNIPHIER_PINCTRL_PIN(173, "A_D_PCD06IN", UNIPHIER_PIN_IECTRL_NONE, |
545 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 543 | -1, UNIPHIER_PIN_DRV_FIXED8, |
546 | 173, UNIPHIER_PIN_PULL_DOWN), | 544 | 173, UNIPHIER_PIN_PULL_DOWN), |
547 | UNIPHIER_PINCTRL_PIN(174, "A_D_PCD07IN", UNIPHIER_PIN_IECTRL_NONE, | 545 | UNIPHIER_PINCTRL_PIN(174, "A_D_PCD07IN", UNIPHIER_PIN_IECTRL_NONE, |
548 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 546 | -1, UNIPHIER_PIN_DRV_FIXED8, |
549 | 174, UNIPHIER_PIN_PULL_DOWN), | 547 | 174, UNIPHIER_PIN_PULL_DOWN), |
550 | UNIPHIER_PINCTRL_PIN(175, "A_D_PCDNOE", UNIPHIER_PIN_IECTRL_NONE, | 548 | UNIPHIER_PINCTRL_PIN(175, "A_D_PCDNOE", UNIPHIER_PIN_IECTRL_NONE, |
551 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 549 | -1, UNIPHIER_PIN_DRV_FIXED8, |
552 | 175, UNIPHIER_PIN_PULL_DOWN), | 550 | 175, UNIPHIER_PIN_PULL_DOWN), |
553 | UNIPHIER_PINCTRL_PIN(176, "A_D_PC0READY", UNIPHIER_PIN_IECTRL_NONE, | 551 | UNIPHIER_PINCTRL_PIN(176, "A_D_PC0READY", UNIPHIER_PIN_IECTRL_NONE, |
554 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 552 | -1, UNIPHIER_PIN_DRV_FIXED8, |
555 | 176, UNIPHIER_PIN_PULL_DOWN), | 553 | 176, UNIPHIER_PIN_PULL_DOWN), |
556 | UNIPHIER_PINCTRL_PIN(177, "A_D_PC0CD1", UNIPHIER_PIN_IECTRL_NONE, | 554 | UNIPHIER_PINCTRL_PIN(177, "A_D_PC0CD1", UNIPHIER_PIN_IECTRL_NONE, |
557 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 555 | -1, UNIPHIER_PIN_DRV_FIXED8, |
558 | 177, UNIPHIER_PIN_PULL_DOWN), | 556 | 177, UNIPHIER_PIN_PULL_DOWN), |
559 | UNIPHIER_PINCTRL_PIN(178, "A_D_PC0CD2", UNIPHIER_PIN_IECTRL_NONE, | 557 | UNIPHIER_PINCTRL_PIN(178, "A_D_PC0CD2", UNIPHIER_PIN_IECTRL_NONE, |
560 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 558 | -1, UNIPHIER_PIN_DRV_FIXED8, |
561 | 178, UNIPHIER_PIN_PULL_DOWN), | 559 | 178, UNIPHIER_PIN_PULL_DOWN), |
562 | UNIPHIER_PINCTRL_PIN(179, "A_D_PC0WAIT", UNIPHIER_PIN_IECTRL_NONE, | 560 | UNIPHIER_PINCTRL_PIN(179, "A_D_PC0WAIT", UNIPHIER_PIN_IECTRL_NONE, |
563 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 561 | -1, UNIPHIER_PIN_DRV_FIXED8, |
564 | 179, UNIPHIER_PIN_PULL_DOWN), | 562 | 179, UNIPHIER_PIN_PULL_DOWN), |
565 | UNIPHIER_PINCTRL_PIN(180, "A_D_PC0RESET", UNIPHIER_PIN_IECTRL_NONE, | 563 | UNIPHIER_PINCTRL_PIN(180, "A_D_PC0RESET", UNIPHIER_PIN_IECTRL_NONE, |
566 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 564 | -1, UNIPHIER_PIN_DRV_FIXED8, |
567 | 180, UNIPHIER_PIN_PULL_DOWN), | 565 | 180, UNIPHIER_PIN_PULL_DOWN), |
568 | UNIPHIER_PINCTRL_PIN(181, "A_D_PC0CE1", UNIPHIER_PIN_IECTRL_NONE, | 566 | UNIPHIER_PINCTRL_PIN(181, "A_D_PC0CE1", UNIPHIER_PIN_IECTRL_NONE, |
569 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 567 | -1, UNIPHIER_PIN_DRV_FIXED8, |
570 | 181, UNIPHIER_PIN_PULL_DOWN), | 568 | 181, UNIPHIER_PIN_PULL_DOWN), |
571 | UNIPHIER_PINCTRL_PIN(182, "A_D_PC0WE", UNIPHIER_PIN_IECTRL_NONE, | 569 | UNIPHIER_PINCTRL_PIN(182, "A_D_PC0WE", UNIPHIER_PIN_IECTRL_NONE, |
572 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 570 | -1, UNIPHIER_PIN_DRV_FIXED8, |
573 | 182, UNIPHIER_PIN_PULL_DOWN), | 571 | 182, UNIPHIER_PIN_PULL_DOWN), |
574 | UNIPHIER_PINCTRL_PIN(183, "A_D_PC0OE", UNIPHIER_PIN_IECTRL_NONE, | 572 | UNIPHIER_PINCTRL_PIN(183, "A_D_PC0OE", UNIPHIER_PIN_IECTRL_NONE, |
575 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 573 | -1, UNIPHIER_PIN_DRV_FIXED8, |
576 | 183, UNIPHIER_PIN_PULL_DOWN), | 574 | 183, UNIPHIER_PIN_PULL_DOWN), |
577 | UNIPHIER_PINCTRL_PIN(184, "A_D_PC0IOWR", UNIPHIER_PIN_IECTRL_NONE, | 575 | UNIPHIER_PINCTRL_PIN(184, "A_D_PC0IOWR", UNIPHIER_PIN_IECTRL_NONE, |
578 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 576 | -1, UNIPHIER_PIN_DRV_FIXED8, |
579 | 184, UNIPHIER_PIN_PULL_DOWN), | 577 | 184, UNIPHIER_PIN_PULL_DOWN), |
580 | UNIPHIER_PINCTRL_PIN(185, "A_D_PC0IORD", UNIPHIER_PIN_IECTRL_NONE, | 578 | UNIPHIER_PINCTRL_PIN(185, "A_D_PC0IORD", UNIPHIER_PIN_IECTRL_NONE, |
581 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 579 | -1, UNIPHIER_PIN_DRV_FIXED8, |
582 | 185, UNIPHIER_PIN_PULL_DOWN), | 580 | 185, UNIPHIER_PIN_PULL_DOWN), |
583 | UNIPHIER_PINCTRL_PIN(186, "A_D_PC0NOE", UNIPHIER_PIN_IECTRL_NONE, | 581 | UNIPHIER_PINCTRL_PIN(186, "A_D_PC0NOE", UNIPHIER_PIN_IECTRL_NONE, |
584 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 582 | -1, UNIPHIER_PIN_DRV_FIXED8, |
585 | 186, UNIPHIER_PIN_PULL_DOWN), | 583 | 186, UNIPHIER_PIN_PULL_DOWN), |
586 | UNIPHIER_PINCTRL_PIN(187, "A_D_HS0BCLKIN", 0, | 584 | UNIPHIER_PINCTRL_PIN(187, "A_D_HS0BCLKIN", 0, |
587 | 187, UNIPHIER_PIN_DRV_4_8, | 585 | 187, UNIPHIER_PIN_DRV_1BIT, |
588 | 187, UNIPHIER_PIN_PULL_DOWN), | 586 | 187, UNIPHIER_PIN_PULL_DOWN), |
589 | UNIPHIER_PINCTRL_PIN(188, "A_D_HS0SYNCIN", 0, | 587 | UNIPHIER_PINCTRL_PIN(188, "A_D_HS0SYNCIN", 0, |
590 | 188, UNIPHIER_PIN_DRV_4_8, | 588 | 188, UNIPHIER_PIN_DRV_1BIT, |
591 | 188, UNIPHIER_PIN_PULL_DOWN), | 589 | 188, UNIPHIER_PIN_PULL_DOWN), |
592 | UNIPHIER_PINCTRL_PIN(189, "A_D_HS0VALIN", 0, | 590 | UNIPHIER_PINCTRL_PIN(189, "A_D_HS0VALIN", 0, |
593 | 189, UNIPHIER_PIN_DRV_4_8, | 591 | 189, UNIPHIER_PIN_DRV_1BIT, |
594 | 189, UNIPHIER_PIN_PULL_DOWN), | 592 | 189, UNIPHIER_PIN_PULL_DOWN), |
595 | UNIPHIER_PINCTRL_PIN(190, "A_D_HS0DIN0", 0, | 593 | UNIPHIER_PINCTRL_PIN(190, "A_D_HS0DIN0", 0, |
596 | 190, UNIPHIER_PIN_DRV_4_8, | 594 | 190, UNIPHIER_PIN_DRV_1BIT, |
597 | 190, UNIPHIER_PIN_PULL_DOWN), | 595 | 190, UNIPHIER_PIN_PULL_DOWN), |
598 | UNIPHIER_PINCTRL_PIN(191, "A_D_HS0DIN1", 0, | 596 | UNIPHIER_PINCTRL_PIN(191, "A_D_HS0DIN1", 0, |
599 | 191, UNIPHIER_PIN_DRV_4_8, | 597 | 191, UNIPHIER_PIN_DRV_1BIT, |
600 | 191, UNIPHIER_PIN_PULL_DOWN), | 598 | 191, UNIPHIER_PIN_PULL_DOWN), |
601 | UNIPHIER_PINCTRL_PIN(192, "A_D_HS0DIN2", 0, | 599 | UNIPHIER_PINCTRL_PIN(192, "A_D_HS0DIN2", 0, |
602 | 192, UNIPHIER_PIN_DRV_4_8, | 600 | 192, UNIPHIER_PIN_DRV_1BIT, |
603 | 192, UNIPHIER_PIN_PULL_DOWN), | 601 | 192, UNIPHIER_PIN_PULL_DOWN), |
604 | UNIPHIER_PINCTRL_PIN(193, "A_D_HS0DIN3", 0, | 602 | UNIPHIER_PINCTRL_PIN(193, "A_D_HS0DIN3", 0, |
605 | 193, UNIPHIER_PIN_DRV_4_8, | 603 | 193, UNIPHIER_PIN_DRV_1BIT, |
606 | 193, UNIPHIER_PIN_PULL_DOWN), | 604 | 193, UNIPHIER_PIN_PULL_DOWN), |
607 | UNIPHIER_PINCTRL_PIN(194, "A_D_HS0DIN4", 0, | 605 | UNIPHIER_PINCTRL_PIN(194, "A_D_HS0DIN4", 0, |
608 | 194, UNIPHIER_PIN_DRV_4_8, | 606 | 194, UNIPHIER_PIN_DRV_1BIT, |
609 | 194, UNIPHIER_PIN_PULL_DOWN), | 607 | 194, UNIPHIER_PIN_PULL_DOWN), |
610 | UNIPHIER_PINCTRL_PIN(195, "A_D_HS0DIN5", 0, | 608 | UNIPHIER_PINCTRL_PIN(195, "A_D_HS0DIN5", 0, |
611 | 195, UNIPHIER_PIN_DRV_4_8, | 609 | 195, UNIPHIER_PIN_DRV_1BIT, |
612 | 195, UNIPHIER_PIN_PULL_DOWN), | 610 | 195, UNIPHIER_PIN_PULL_DOWN), |
613 | UNIPHIER_PINCTRL_PIN(196, "A_D_HS0DIN6", 0, | 611 | UNIPHIER_PINCTRL_PIN(196, "A_D_HS0DIN6", 0, |
614 | 196, UNIPHIER_PIN_DRV_4_8, | 612 | 196, UNIPHIER_PIN_DRV_1BIT, |
615 | 196, UNIPHIER_PIN_PULL_DOWN), | 613 | 196, UNIPHIER_PIN_PULL_DOWN), |
616 | UNIPHIER_PINCTRL_PIN(197, "A_D_HS0DIN7", 0, | 614 | UNIPHIER_PINCTRL_PIN(197, "A_D_HS0DIN7", 0, |
617 | 197, UNIPHIER_PIN_DRV_4_8, | 615 | 197, UNIPHIER_PIN_DRV_1BIT, |
618 | 197, UNIPHIER_PIN_PULL_DOWN), | 616 | 197, UNIPHIER_PIN_PULL_DOWN), |
619 | UNIPHIER_PINCTRL_PIN(198, "A_D_AO1ARC", 0, | 617 | UNIPHIER_PINCTRL_PIN(198, "A_D_AO1ARC", 0, |
620 | 198, UNIPHIER_PIN_DRV_4_8, | 618 | 198, UNIPHIER_PIN_DRV_1BIT, |
621 | 198, UNIPHIER_PIN_PULL_DOWN), | 619 | 198, UNIPHIER_PIN_PULL_DOWN), |
622 | UNIPHIER_PINCTRL_PIN(199, "A_D_SPIXRST", UNIPHIER_PIN_IECTRL_NONE, | 620 | UNIPHIER_PINCTRL_PIN(199, "A_D_SPIXRST", UNIPHIER_PIN_IECTRL_NONE, |
623 | 199, UNIPHIER_PIN_DRV_4_8, | 621 | 199, UNIPHIER_PIN_DRV_1BIT, |
624 | 199, UNIPHIER_PIN_PULL_DOWN), | 622 | 199, UNIPHIER_PIN_PULL_DOWN), |
625 | UNIPHIER_PINCTRL_PIN(200, "A_D_SPISCLK0", UNIPHIER_PIN_IECTRL_NONE, | 623 | UNIPHIER_PINCTRL_PIN(200, "A_D_SPISCLK0", UNIPHIER_PIN_IECTRL_NONE, |
626 | 200, UNIPHIER_PIN_DRV_4_8, | 624 | 200, UNIPHIER_PIN_DRV_1BIT, |
627 | 200, UNIPHIER_PIN_PULL_DOWN), | 625 | 200, UNIPHIER_PIN_PULL_DOWN), |
628 | UNIPHIER_PINCTRL_PIN(201, "A_D_SPITXD0", UNIPHIER_PIN_IECTRL_NONE, | 626 | UNIPHIER_PINCTRL_PIN(201, "A_D_SPITXD0", UNIPHIER_PIN_IECTRL_NONE, |
629 | 201, UNIPHIER_PIN_DRV_4_8, | 627 | 201, UNIPHIER_PIN_DRV_1BIT, |
630 | 201, UNIPHIER_PIN_PULL_DOWN), | 628 | 201, UNIPHIER_PIN_PULL_DOWN), |
631 | UNIPHIER_PINCTRL_PIN(202, "A_D_SPIRXD0", UNIPHIER_PIN_IECTRL_NONE, | 629 | UNIPHIER_PINCTRL_PIN(202, "A_D_SPIRXD0", UNIPHIER_PIN_IECTRL_NONE, |
632 | 202, UNIPHIER_PIN_DRV_4_8, | 630 | 202, UNIPHIER_PIN_DRV_1BIT, |
633 | 202, UNIPHIER_PIN_PULL_DOWN), | 631 | 202, UNIPHIER_PIN_PULL_DOWN), |
634 | UNIPHIER_PINCTRL_PIN(203, "A_D_DMDCLK", UNIPHIER_PIN_IECTRL_NONE, | 632 | UNIPHIER_PINCTRL_PIN(203, "A_D_DMDCLK", UNIPHIER_PIN_IECTRL_NONE, |
635 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 633 | -1, UNIPHIER_PIN_DRV_FIXED8, |
636 | 203, UNIPHIER_PIN_PULL_DOWN), | 634 | 203, UNIPHIER_PIN_PULL_DOWN), |
637 | UNIPHIER_PINCTRL_PIN(204, "A_D_DMDPSYNC", UNIPHIER_PIN_IECTRL_NONE, | 635 | UNIPHIER_PINCTRL_PIN(204, "A_D_DMDPSYNC", UNIPHIER_PIN_IECTRL_NONE, |
638 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 636 | -1, UNIPHIER_PIN_DRV_FIXED8, |
639 | 204, UNIPHIER_PIN_PULL_DOWN), | 637 | 204, UNIPHIER_PIN_PULL_DOWN), |
640 | UNIPHIER_PINCTRL_PIN(205, "A_D_DMDVAL", UNIPHIER_PIN_IECTRL_NONE, | 638 | UNIPHIER_PINCTRL_PIN(205, "A_D_DMDVAL", UNIPHIER_PIN_IECTRL_NONE, |
641 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 639 | -1, UNIPHIER_PIN_DRV_FIXED8, |
642 | 205, UNIPHIER_PIN_PULL_DOWN), | 640 | 205, UNIPHIER_PIN_PULL_DOWN), |
643 | UNIPHIER_PINCTRL_PIN(206, "A_D_DMDDATA", UNIPHIER_PIN_IECTRL_NONE, | 641 | UNIPHIER_PINCTRL_PIN(206, "A_D_DMDDATA", UNIPHIER_PIN_IECTRL_NONE, |
644 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 642 | -1, UNIPHIER_PIN_DRV_FIXED8, |
645 | 206, UNIPHIER_PIN_PULL_DOWN), | 643 | 206, UNIPHIER_PIN_PULL_DOWN), |
646 | UNIPHIER_PINCTRL_PIN(207, "A_D_HDMIRXXIRQ", 0, | 644 | UNIPHIER_PINCTRL_PIN(207, "A_D_HDMIRXXIRQ", 0, |
647 | 207, UNIPHIER_PIN_DRV_4_8, | 645 | 207, UNIPHIER_PIN_DRV_1BIT, |
648 | 207, UNIPHIER_PIN_PULL_DOWN), | 646 | 207, UNIPHIER_PIN_PULL_DOWN), |
649 | UNIPHIER_PINCTRL_PIN(208, "A_D_VBIXIRQ", 0, | 647 | UNIPHIER_PINCTRL_PIN(208, "A_D_VBIXIRQ", 0, |
650 | 208, UNIPHIER_PIN_DRV_4_8, | 648 | 208, UNIPHIER_PIN_DRV_1BIT, |
651 | 208, UNIPHIER_PIN_PULL_DOWN), | 649 | 208, UNIPHIER_PIN_PULL_DOWN), |
652 | UNIPHIER_PINCTRL_PIN(209, "A_D_HDMITXXIRQ", 0, | 650 | UNIPHIER_PINCTRL_PIN(209, "A_D_HDMITXXIRQ", 0, |
653 | 209, UNIPHIER_PIN_DRV_4_8, | 651 | 209, UNIPHIER_PIN_DRV_1BIT, |
654 | 209, UNIPHIER_PIN_PULL_DOWN), | 652 | 209, UNIPHIER_PIN_PULL_DOWN), |
655 | UNIPHIER_PINCTRL_PIN(210, "A_D_DMDIRQ", UNIPHIER_PIN_IECTRL_NONE, | 653 | UNIPHIER_PINCTRL_PIN(210, "A_D_DMDIRQ", UNIPHIER_PIN_IECTRL_NONE, |
656 | 210, UNIPHIER_PIN_DRV_4_8, | 654 | 210, UNIPHIER_PIN_DRV_1BIT, |
657 | 210, UNIPHIER_PIN_PULL_DOWN), | 655 | 210, UNIPHIER_PIN_PULL_DOWN), |
658 | UNIPHIER_PINCTRL_PIN(211, "A_D_SPICIRQ", UNIPHIER_PIN_IECTRL_NONE, | 656 | UNIPHIER_PINCTRL_PIN(211, "A_D_SPICIRQ", UNIPHIER_PIN_IECTRL_NONE, |
659 | 211, UNIPHIER_PIN_DRV_4_8, | 657 | 211, UNIPHIER_PIN_DRV_1BIT, |
660 | 211, UNIPHIER_PIN_PULL_DOWN), | 658 | 211, UNIPHIER_PIN_PULL_DOWN), |
661 | UNIPHIER_PINCTRL_PIN(212, "A_D_SPIBIRQ", UNIPHIER_PIN_IECTRL_NONE, | 659 | UNIPHIER_PINCTRL_PIN(212, "A_D_SPIBIRQ", UNIPHIER_PIN_IECTRL_NONE, |
662 | 212, UNIPHIER_PIN_DRV_4_8, | 660 | 212, UNIPHIER_PIN_DRV_1BIT, |
663 | 212, UNIPHIER_PIN_PULL_DOWN), | 661 | 212, UNIPHIER_PIN_PULL_DOWN), |
664 | UNIPHIER_PINCTRL_PIN(213, "A_D_BESDAOUT", UNIPHIER_PIN_IECTRL_NONE, | 662 | UNIPHIER_PINCTRL_PIN(213, "A_D_BESDAOUT", UNIPHIER_PIN_IECTRL_NONE, |
665 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 663 | -1, UNIPHIER_PIN_DRV_FIXED4, |
666 | 213, UNIPHIER_PIN_PULL_DOWN), | 664 | 213, UNIPHIER_PIN_PULL_DOWN), |
667 | UNIPHIER_PINCTRL_PIN(214, "A_D_BESDAIN", UNIPHIER_PIN_IECTRL_NONE, | 665 | UNIPHIER_PINCTRL_PIN(214, "A_D_BESDAIN", UNIPHIER_PIN_IECTRL_NONE, |
668 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 666 | -1, UNIPHIER_PIN_DRV_FIXED4, |
669 | 214, UNIPHIER_PIN_PULL_DOWN), | 667 | 214, UNIPHIER_PIN_PULL_DOWN), |
670 | UNIPHIER_PINCTRL_PIN(215, "A_D_BESCLOUT", UNIPHIER_PIN_IECTRL_NONE, | 668 | UNIPHIER_PINCTRL_PIN(215, "A_D_BESCLOUT", UNIPHIER_PIN_IECTRL_NONE, |
671 | 215, UNIPHIER_PIN_DRV_4_8, | 669 | 215, UNIPHIER_PIN_DRV_1BIT, |
672 | 215, UNIPHIER_PIN_PULL_DOWN), | 670 | 215, UNIPHIER_PIN_PULL_DOWN), |
673 | UNIPHIER_PINCTRL_PIN(216, "A_D_VDACCLKOUT", 0, | 671 | UNIPHIER_PINCTRL_PIN(216, "A_D_VDACCLKOUT", 0, |
674 | 216, UNIPHIER_PIN_DRV_4_8, | 672 | 216, UNIPHIER_PIN_DRV_1BIT, |
675 | 216, UNIPHIER_PIN_PULL_DOWN), | 673 | 216, UNIPHIER_PIN_PULL_DOWN), |
676 | UNIPHIER_PINCTRL_PIN(217, "A_D_VDACDOUT5", 0, | 674 | UNIPHIER_PINCTRL_PIN(217, "A_D_VDACDOUT5", 0, |
677 | 217, UNIPHIER_PIN_DRV_4_8, | 675 | 217, UNIPHIER_PIN_DRV_1BIT, |
678 | 217, UNIPHIER_PIN_PULL_DOWN), | 676 | 217, UNIPHIER_PIN_PULL_DOWN), |
679 | UNIPHIER_PINCTRL_PIN(218, "A_D_VDACDOUT6", 0, | 677 | UNIPHIER_PINCTRL_PIN(218, "A_D_VDACDOUT6", 0, |
680 | 218, UNIPHIER_PIN_DRV_4_8, | 678 | 218, UNIPHIER_PIN_DRV_1BIT, |
681 | 218, UNIPHIER_PIN_PULL_DOWN), | 679 | 218, UNIPHIER_PIN_PULL_DOWN), |
682 | UNIPHIER_PINCTRL_PIN(219, "A_D_VDACDOUT7", 0, | 680 | UNIPHIER_PINCTRL_PIN(219, "A_D_VDACDOUT7", 0, |
683 | 219, UNIPHIER_PIN_DRV_4_8, | 681 | 219, UNIPHIER_PIN_DRV_1BIT, |
684 | 219, UNIPHIER_PIN_PULL_DOWN), | 682 | 219, UNIPHIER_PIN_PULL_DOWN), |
685 | UNIPHIER_PINCTRL_PIN(220, "A_D_VDACDOUT8", 0, | 683 | UNIPHIER_PINCTRL_PIN(220, "A_D_VDACDOUT8", 0, |
686 | 220, UNIPHIER_PIN_DRV_4_8, | 684 | 220, UNIPHIER_PIN_DRV_1BIT, |
687 | 220, UNIPHIER_PIN_PULL_DOWN), | 685 | 220, UNIPHIER_PIN_PULL_DOWN), |
688 | UNIPHIER_PINCTRL_PIN(221, "A_D_VDACDOUT9", 0, | 686 | UNIPHIER_PINCTRL_PIN(221, "A_D_VDACDOUT9", 0, |
689 | 221, UNIPHIER_PIN_DRV_4_8, | 687 | 221, UNIPHIER_PIN_DRV_1BIT, |
690 | 221, UNIPHIER_PIN_PULL_DOWN), | 688 | 221, UNIPHIER_PIN_PULL_DOWN), |
691 | UNIPHIER_PINCTRL_PIN(222, "A_D_SIFBCKIN", 0, | 689 | UNIPHIER_PINCTRL_PIN(222, "A_D_SIFBCKIN", 0, |
692 | 222, UNIPHIER_PIN_DRV_4_8, | 690 | 222, UNIPHIER_PIN_DRV_1BIT, |
693 | 222, UNIPHIER_PIN_PULL_DOWN), | 691 | 222, UNIPHIER_PIN_PULL_DOWN), |
694 | UNIPHIER_PINCTRL_PIN(223, "A_D_SIFLRCKIN", 0, | 692 | UNIPHIER_PINCTRL_PIN(223, "A_D_SIFLRCKIN", 0, |
695 | 223, UNIPHIER_PIN_DRV_4_8, | 693 | 223, UNIPHIER_PIN_DRV_1BIT, |
696 | 223, UNIPHIER_PIN_PULL_DOWN), | 694 | 223, UNIPHIER_PIN_PULL_DOWN), |
697 | UNIPHIER_PINCTRL_PIN(224, "A_D_SIFDIN", 0, | 695 | UNIPHIER_PINCTRL_PIN(224, "A_D_SIFDIN", 0, |
698 | 224, UNIPHIER_PIN_DRV_4_8, | 696 | 224, UNIPHIER_PIN_DRV_1BIT, |
699 | 224, UNIPHIER_PIN_PULL_DOWN), | 697 | 224, UNIPHIER_PIN_PULL_DOWN), |
700 | UNIPHIER_PINCTRL_PIN(225, "A_D_LIBCKOUT", 0, | 698 | UNIPHIER_PINCTRL_PIN(225, "A_D_LIBCKOUT", 0, |
701 | 225, UNIPHIER_PIN_DRV_4_8, | 699 | 225, UNIPHIER_PIN_DRV_1BIT, |
702 | 225, UNIPHIER_PIN_PULL_DOWN), | 700 | 225, UNIPHIER_PIN_PULL_DOWN), |
703 | UNIPHIER_PINCTRL_PIN(226, "A_D_LILRCKOUT", 0, | 701 | UNIPHIER_PINCTRL_PIN(226, "A_D_LILRCKOUT", 0, |
704 | 226, UNIPHIER_PIN_DRV_4_8, | 702 | 226, UNIPHIER_PIN_DRV_1BIT, |
705 | 226, UNIPHIER_PIN_PULL_DOWN), | 703 | 226, UNIPHIER_PIN_PULL_DOWN), |
706 | UNIPHIER_PINCTRL_PIN(227, "A_D_LIDIN", 0, | 704 | UNIPHIER_PINCTRL_PIN(227, "A_D_LIDIN", 0, |
707 | 227, UNIPHIER_PIN_DRV_4_8, | 705 | 227, UNIPHIER_PIN_DRV_1BIT, |
708 | 227, UNIPHIER_PIN_PULL_DOWN), | 706 | 227, UNIPHIER_PIN_PULL_DOWN), |
709 | UNIPHIER_PINCTRL_PIN(228, "A_D_LODOUT", 0, | 707 | UNIPHIER_PINCTRL_PIN(228, "A_D_LODOUT", 0, |
710 | 228, UNIPHIER_PIN_DRV_4_8, | 708 | 228, UNIPHIER_PIN_DRV_1BIT, |
711 | 228, UNIPHIER_PIN_PULL_DOWN), | 709 | 228, UNIPHIER_PIN_PULL_DOWN), |
712 | UNIPHIER_PINCTRL_PIN(229, "A_D_HPDOUT", 0, | 710 | UNIPHIER_PINCTRL_PIN(229, "A_D_HPDOUT", 0, |
713 | 229, UNIPHIER_PIN_DRV_4_8, | 711 | 229, UNIPHIER_PIN_DRV_1BIT, |
714 | 229, UNIPHIER_PIN_PULL_DOWN), | 712 | 229, UNIPHIER_PIN_PULL_DOWN), |
715 | UNIPHIER_PINCTRL_PIN(230, "A_D_MCLK", 0, | 713 | UNIPHIER_PINCTRL_PIN(230, "A_D_MCLK", 0, |
716 | 230, UNIPHIER_PIN_DRV_4_8, | 714 | 230, UNIPHIER_PIN_DRV_1BIT, |
717 | 230, UNIPHIER_PIN_PULL_DOWN), | 715 | 230, UNIPHIER_PIN_PULL_DOWN), |
718 | UNIPHIER_PINCTRL_PIN(231, "A_D_A2PLLREFOUT", 0, | 716 | UNIPHIER_PINCTRL_PIN(231, "A_D_A2PLLREFOUT", 0, |
719 | 231, UNIPHIER_PIN_DRV_4_8, | 717 | 231, UNIPHIER_PIN_DRV_1BIT, |
720 | 231, UNIPHIER_PIN_PULL_DOWN), | 718 | 231, UNIPHIER_PIN_PULL_DOWN), |
721 | UNIPHIER_PINCTRL_PIN(232, "A_D_HDMI3DSDAOUT", 0, | 719 | UNIPHIER_PINCTRL_PIN(232, "A_D_HDMI3DSDAOUT", 0, |
722 | 232, UNIPHIER_PIN_DRV_4_8, | 720 | 232, UNIPHIER_PIN_DRV_1BIT, |
723 | 232, UNIPHIER_PIN_PULL_DOWN), | 721 | 232, UNIPHIER_PIN_PULL_DOWN), |
724 | UNIPHIER_PINCTRL_PIN(233, "A_D_HDMI3DSDAIN", 0, | 722 | UNIPHIER_PINCTRL_PIN(233, "A_D_HDMI3DSDAIN", 0, |
725 | 233, UNIPHIER_PIN_DRV_4_8, | 723 | 233, UNIPHIER_PIN_DRV_1BIT, |
726 | 233, UNIPHIER_PIN_PULL_DOWN), | 724 | 233, UNIPHIER_PIN_PULL_DOWN), |
727 | UNIPHIER_PINCTRL_PIN(234, "A_D_HDMI3DSCLIN", 0, | 725 | UNIPHIER_PINCTRL_PIN(234, "A_D_HDMI3DSCLIN", 0, |
728 | 234, UNIPHIER_PIN_DRV_4_8, | 726 | 234, UNIPHIER_PIN_DRV_1BIT, |
729 | 234, UNIPHIER_PIN_PULL_DOWN), | 727 | 234, UNIPHIER_PIN_PULL_DOWN), |
730 | }; | 728 | }; |
731 | 729 | ||
@@ -737,52 +735,73 @@ static const unsigned adinter_pins[] = { | |||
737 | 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, | 735 | 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, |
738 | 229, 230, 231, 232, 233, 234, | 736 | 229, 230, 231, 232, 233, 234, |
739 | }; | 737 | }; |
740 | static const unsigned adinter_muxvals[] = { | 738 | static const int adinter_muxvals[] = { |
741 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 739 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
742 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 740 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
743 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 741 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
744 | 0, 0, 0, 0, | 742 | 0, 0, 0, 0, |
745 | }; | 743 | }; |
746 | static const unsigned emmc_pins[] = {36, 37, 38, 39, 40, 41, 42}; | 744 | static const unsigned emmc_pins[] = {36, 37, 38, 39, 40, 41, 42}; |
747 | static const unsigned emmc_muxvals[] = {1, 1, 1, 1, 1, 1, 1}; | 745 | static const int emmc_muxvals[] = {1, 1, 1, 1, 1, 1, 1}; |
748 | static const unsigned emmc_dat8_pins[] = {43, 44, 45, 46}; | 746 | static const unsigned emmc_dat8_pins[] = {43, 44, 45, 46}; |
749 | static const unsigned emmc_dat8_muxvals[] = {1, 1, 1, 1}; | 747 | static const int emmc_dat8_muxvals[] = {1, 1, 1, 1}; |
748 | static const unsigned ether_rgmii_pins[] = {143, 144, 145, 146, 147, 148, 149, | ||
749 | 150, 151, 152, 153, 154, 155, 156, | ||
750 | 157, 158}; | ||
751 | static const int ether_rgmii_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
752 | 0, 0, 0, 0}; | ||
753 | static const unsigned ether_rmii_pins[] = {143, 144, 145, 146, 147, 148, 149, | ||
754 | 150, 152, 154, 155, 158}; | ||
755 | static const int ether_rmii_muxvals[] = {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1}; | ||
750 | static const unsigned i2c0_pins[] = {109, 110}; | 756 | static const unsigned i2c0_pins[] = {109, 110}; |
751 | static const unsigned i2c0_muxvals[] = {0, 0}; | 757 | static const int i2c0_muxvals[] = {0, 0}; |
752 | static const unsigned i2c1_pins[] = {111, 112}; | 758 | static const unsigned i2c1_pins[] = {111, 112}; |
753 | static const unsigned i2c1_muxvals[] = {0, 0}; | 759 | static const int i2c1_muxvals[] = {0, 0}; |
754 | static const unsigned i2c2_pins[] = {115, 116}; | 760 | static const unsigned i2c2_pins[] = {115, 116}; |
755 | static const unsigned i2c2_muxvals[] = {1, 1}; | 761 | static const int i2c2_muxvals[] = {1, 1}; |
756 | static const unsigned i2c3_pins[] = {118, 119}; | 762 | static const unsigned i2c3_pins[] = {118, 119}; |
757 | static const unsigned i2c3_muxvals[] = {1, 1}; | 763 | static const int i2c3_muxvals[] = {1, 1}; |
758 | static const unsigned nand_pins[] = {30, 31, 32, 33, 34, 35, 36, 39, 40, 41, | 764 | static const unsigned nand_pins[] = {30, 31, 32, 33, 34, 35, 36, 39, 40, 41, |
759 | 42, 43, 44, 45, 46}; | 765 | 42, 43, 44, 45, 46}; |
760 | static const unsigned nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 766 | static const int nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; |
761 | 0, 0}; | ||
762 | static const unsigned nand_cs1_pins[] = {37, 38}; | 767 | static const unsigned nand_cs1_pins[] = {37, 38}; |
763 | static const unsigned nand_cs1_muxvals[] = {0, 0}; | 768 | static const int nand_cs1_muxvals[] = {0, 0}; |
764 | static const unsigned sd_pins[] = {47, 48, 49, 50, 51, 52, 53, 54, 55}; | 769 | static const unsigned sd_pins[] = {47, 48, 49, 50, 51, 52, 53, 54, 55}; |
765 | static const unsigned sd_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; | 770 | static const int sd_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; |
771 | static const unsigned system_bus_pins[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, | ||
772 | 11, 12, 13}; | ||
773 | static const int system_bus_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
774 | 0}; | ||
775 | static const unsigned system_bus_cs1_pins[] = {14}; | ||
776 | static const int system_bus_cs1_muxvals[] = {0}; | ||
777 | static const unsigned system_bus_cs2_pins[] = {37}; | ||
778 | static const int system_bus_cs2_muxvals[] = {6}; | ||
779 | static const unsigned system_bus_cs3_pins[] = {38}; | ||
780 | static const int system_bus_cs3_muxvals[] = {6}; | ||
781 | static const unsigned system_bus_cs4_pins[] = {115}; | ||
782 | static const int system_bus_cs4_muxvals[] = {6}; | ||
783 | static const unsigned system_bus_cs5_pins[] = {55}; | ||
784 | static const int system_bus_cs5_muxvals[] = {6}; | ||
766 | static const unsigned uart0_pins[] = {135, 136}; | 785 | static const unsigned uart0_pins[] = {135, 136}; |
767 | static const unsigned uart0_muxvals[] = {3, 3}; | 786 | static const int uart0_muxvals[] = {3, 3}; |
768 | static const unsigned uart0b_pins[] = {11, 12}; | 787 | static const unsigned uart0b_pins[] = {11, 12}; |
769 | static const unsigned uart0b_muxvals[] = {2, 2}; | 788 | static const int uart0b_muxvals[] = {2, 2}; |
770 | static const unsigned uart1_pins[] = {115, 116}; | 789 | static const unsigned uart1_pins[] = {115, 116}; |
771 | static const unsigned uart1_muxvals[] = {0, 0}; | 790 | static const int uart1_muxvals[] = {0, 0}; |
772 | static const unsigned uart1b_pins[] = {113, 114}; | 791 | static const unsigned uart1b_pins[] = {113, 114}; |
773 | static const unsigned uart1b_muxvals[] = {1, 1}; | 792 | static const int uart1b_muxvals[] = {1, 1}; |
774 | static const unsigned uart2_pins[] = {113, 114}; | 793 | static const unsigned uart2_pins[] = {113, 114}; |
775 | static const unsigned uart2_muxvals[] = {2, 2}; | 794 | static const int uart2_muxvals[] = {2, 2}; |
776 | static const unsigned uart2b_pins[] = {86, 87}; | 795 | static const unsigned uart2b_pins[] = {86, 87}; |
777 | static const unsigned uart2b_muxvals[] = {1, 1}; | 796 | static const int uart2b_muxvals[] = {1, 1}; |
778 | static const unsigned usb0_pins[] = {56, 57}; | 797 | static const unsigned usb0_pins[] = {56, 57}; |
779 | static const unsigned usb0_muxvals[] = {0, 0}; | 798 | static const int usb0_muxvals[] = {0, 0}; |
780 | static const unsigned usb1_pins[] = {58, 59}; | 799 | static const unsigned usb1_pins[] = {58, 59}; |
781 | static const unsigned usb1_muxvals[] = {0, 0}; | 800 | static const int usb1_muxvals[] = {0, 0}; |
782 | static const unsigned usb2_pins[] = {60, 61}; | 801 | static const unsigned usb2_pins[] = {60, 61}; |
783 | static const unsigned usb2_muxvals[] = {0, 0}; | 802 | static const int usb2_muxvals[] = {0, 0}; |
784 | static const unsigned usb3_pins[] = {62, 63}; | 803 | static const unsigned usb3_pins[] = {62, 63}; |
785 | static const unsigned usb3_muxvals[] = {0, 0}; | 804 | static const int usb3_muxvals[] = {0, 0}; |
786 | static const unsigned port_range0_pins[] = { | 805 | static const unsigned port_range0_pins[] = { |
787 | 127, 128, 129, 130, 131, 132, 133, 134, /* PORT0x */ | 806 | 127, 128, 129, 130, 131, 132, 133, 134, /* PORT0x */ |
788 | 135, 136, 137, 138, 139, 140, 141, 142, /* PORT1x */ | 807 | 135, 136, 137, 138, 139, 140, 141, 142, /* PORT1x */ |
@@ -796,7 +815,7 @@ static const unsigned port_range0_pins[] = { | |||
796 | 61, 62, 63, 64, 65, 66, 67, 68, /* PORT9x */ | 815 | 61, 62, 63, 64, 65, 66, 67, 68, /* PORT9x */ |
797 | 69, 70, 71, 76, 77, 78, 79, 80, /* PORT10x */ | 816 | 69, 70, 71, 76, 77, 78, 79, 80, /* PORT10x */ |
798 | }; | 817 | }; |
799 | static const unsigned port_range0_muxvals[] = { | 818 | static const int port_range0_muxvals[] = { |
800 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT0x */ | 819 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT0x */ |
801 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT1x */ | 820 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT1x */ |
802 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT2x */ | 821 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT2x */ |
@@ -828,7 +847,7 @@ static const unsigned port_range1_pins[] = { | |||
828 | 218, 219, 220, 221, 223, 224, 225, 226, /* PORT27x */ | 847 | 218, 219, 220, 221, 223, 224, 225, 226, /* PORT27x */ |
829 | 227, 228, 229, 230, 231, 232, 233, 234, /* PORT28x */ | 848 | 227, 228, 229, 230, 231, 232, 233, 234, /* PORT28x */ |
830 | }; | 849 | }; |
831 | static const unsigned port_range1_muxvals[] = { | 850 | static const int port_range1_muxvals[] = { |
832 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT12x */ | 851 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT12x */ |
833 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT13x */ | 852 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT13x */ |
834 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT14x */ | 853 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT14x */ |
@@ -852,16 +871,18 @@ static const unsigned xirq_pins[] = { | |||
852 | 126, 72, 73, 92, 177, 93, 94, 176, /* XIRQ8-15 */ | 871 | 126, 72, 73, 92, 177, 93, 94, 176, /* XIRQ8-15 */ |
853 | 74, 91, 27, 28, 29, 75, 20, 26, /* XIRQ16-23 */ | 872 | 74, 91, 27, 28, 29, 75, 20, 26, /* XIRQ16-23 */ |
854 | }; | 873 | }; |
855 | static const unsigned xirq_muxvals[] = { | 874 | static const int xirq_muxvals[] = { |
856 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ0-7 */ | 875 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ0-7 */ |
857 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ8-15 */ | 876 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ8-15 */ |
858 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ16-23 */ | 877 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ16-23 */ |
859 | }; | 878 | }; |
860 | 879 | ||
861 | static const struct uniphier_pinctrl_group ph1_ld6b_groups[] = { | 880 | static const struct uniphier_pinctrl_group uniphier_ld6b_groups[] = { |
862 | UNIPHIER_PINCTRL_GROUP(adinter), | 881 | UNIPHIER_PINCTRL_GROUP(adinter), |
863 | UNIPHIER_PINCTRL_GROUP(emmc), | 882 | UNIPHIER_PINCTRL_GROUP(emmc), |
864 | UNIPHIER_PINCTRL_GROUP(emmc_dat8), | 883 | UNIPHIER_PINCTRL_GROUP(emmc_dat8), |
884 | UNIPHIER_PINCTRL_GROUP(ether_rgmii), | ||
885 | UNIPHIER_PINCTRL_GROUP(ether_rmii), | ||
865 | UNIPHIER_PINCTRL_GROUP(i2c0), | 886 | UNIPHIER_PINCTRL_GROUP(i2c0), |
866 | UNIPHIER_PINCTRL_GROUP(i2c1), | 887 | UNIPHIER_PINCTRL_GROUP(i2c1), |
867 | UNIPHIER_PINCTRL_GROUP(i2c2), | 888 | UNIPHIER_PINCTRL_GROUP(i2c2), |
@@ -869,6 +890,12 @@ static const struct uniphier_pinctrl_group ph1_ld6b_groups[] = { | |||
869 | UNIPHIER_PINCTRL_GROUP(nand), | 890 | UNIPHIER_PINCTRL_GROUP(nand), |
870 | UNIPHIER_PINCTRL_GROUP(nand_cs1), | 891 | UNIPHIER_PINCTRL_GROUP(nand_cs1), |
871 | UNIPHIER_PINCTRL_GROUP(sd), | 892 | UNIPHIER_PINCTRL_GROUP(sd), |
893 | UNIPHIER_PINCTRL_GROUP(system_bus), | ||
894 | UNIPHIER_PINCTRL_GROUP(system_bus_cs1), | ||
895 | UNIPHIER_PINCTRL_GROUP(system_bus_cs2), | ||
896 | UNIPHIER_PINCTRL_GROUP(system_bus_cs3), | ||
897 | UNIPHIER_PINCTRL_GROUP(system_bus_cs4), | ||
898 | UNIPHIER_PINCTRL_GROUP(system_bus_cs5), | ||
872 | UNIPHIER_PINCTRL_GROUP(uart0), | 899 | UNIPHIER_PINCTRL_GROUP(uart0), |
873 | UNIPHIER_PINCTRL_GROUP(uart0b), | 900 | UNIPHIER_PINCTRL_GROUP(uart0b), |
874 | UNIPHIER_PINCTRL_GROUP(uart1), | 901 | UNIPHIER_PINCTRL_GROUP(uart1), |
@@ -1134,12 +1161,20 @@ static const struct uniphier_pinctrl_group ph1_ld6b_groups[] = { | |||
1134 | 1161 | ||
1135 | static const char * const adinter_groups[] = {"adinter"}; | 1162 | static const char * const adinter_groups[] = {"adinter"}; |
1136 | static const char * const emmc_groups[] = {"emmc", "emmc_dat8"}; | 1163 | static const char * const emmc_groups[] = {"emmc", "emmc_dat8"}; |
1164 | static const char * const ether_rgmii_groups[] = {"ether_rgmii"}; | ||
1165 | static const char * const ether_rmii_groups[] = {"ether_rmii"}; | ||
1137 | static const char * const i2c0_groups[] = {"i2c0"}; | 1166 | static const char * const i2c0_groups[] = {"i2c0"}; |
1138 | static const char * const i2c1_groups[] = {"i2c1"}; | 1167 | static const char * const i2c1_groups[] = {"i2c1"}; |
1139 | static const char * const i2c2_groups[] = {"i2c2"}; | 1168 | static const char * const i2c2_groups[] = {"i2c2"}; |
1140 | static const char * const i2c3_groups[] = {"i2c3"}; | 1169 | static const char * const i2c3_groups[] = {"i2c3"}; |
1141 | static const char * const nand_groups[] = {"nand", "nand_cs1"}; | 1170 | static const char * const nand_groups[] = {"nand", "nand_cs1"}; |
1142 | static const char * const sd_groups[] = {"sd"}; | 1171 | static const char * const sd_groups[] = {"sd"}; |
1172 | static const char * const system_bus_groups[] = {"system_bus", | ||
1173 | "system_bus_cs1", | ||
1174 | "system_bus_cs2", | ||
1175 | "system_bus_cs3", | ||
1176 | "system_bus_cs4", | ||
1177 | "system_bus_cs5"}; | ||
1143 | static const char * const uart0_groups[] = {"uart0", "uart0b"}; | 1178 | static const char * const uart0_groups[] = {"uart0", "uart0b"}; |
1144 | static const char * const uart1_groups[] = {"uart1", "uart1b"}; | 1179 | static const char * const uart1_groups[] = {"uart1", "uart1b"}; |
1145 | static const char * const uart2_groups[] = {"uart2", "uart2b"}; | 1180 | static const char * const uart2_groups[] = {"uart2", "uart2b"}; |
@@ -1215,15 +1250,18 @@ static const char * const xirq_groups[] = { | |||
1215 | "xirq20", "xirq21", "xirq22", "xirq23", | 1250 | "xirq20", "xirq21", "xirq22", "xirq23", |
1216 | }; | 1251 | }; |
1217 | 1252 | ||
1218 | static const struct uniphier_pinmux_function ph1_ld6b_functions[] = { | 1253 | static const struct uniphier_pinmux_function uniphier_ld6b_functions[] = { |
1219 | UNIPHIER_PINMUX_FUNCTION(adinter), /* Achip-Dchip interconnect */ | 1254 | UNIPHIER_PINMUX_FUNCTION(adinter), /* Achip-Dchip interconnect */ |
1220 | UNIPHIER_PINMUX_FUNCTION(emmc), | 1255 | UNIPHIER_PINMUX_FUNCTION(emmc), |
1256 | UNIPHIER_PINMUX_FUNCTION(ether_rgmii), | ||
1257 | UNIPHIER_PINMUX_FUNCTION(ether_rmii), | ||
1221 | UNIPHIER_PINMUX_FUNCTION(i2c0), | 1258 | UNIPHIER_PINMUX_FUNCTION(i2c0), |
1222 | UNIPHIER_PINMUX_FUNCTION(i2c1), | 1259 | UNIPHIER_PINMUX_FUNCTION(i2c1), |
1223 | UNIPHIER_PINMUX_FUNCTION(i2c2), | 1260 | UNIPHIER_PINMUX_FUNCTION(i2c2), |
1224 | UNIPHIER_PINMUX_FUNCTION(i2c3), | 1261 | UNIPHIER_PINMUX_FUNCTION(i2c3), |
1225 | UNIPHIER_PINMUX_FUNCTION(nand), | 1262 | UNIPHIER_PINMUX_FUNCTION(nand), |
1226 | UNIPHIER_PINMUX_FUNCTION(sd), | 1263 | UNIPHIER_PINMUX_FUNCTION(sd), |
1264 | UNIPHIER_PINMUX_FUNCTION(system_bus), | ||
1227 | UNIPHIER_PINMUX_FUNCTION(uart0), | 1265 | UNIPHIER_PINMUX_FUNCTION(uart0), |
1228 | UNIPHIER_PINMUX_FUNCTION(uart1), | 1266 | UNIPHIER_PINMUX_FUNCTION(uart1), |
1229 | UNIPHIER_PINMUX_FUNCTION(uart2), | 1267 | UNIPHIER_PINMUX_FUNCTION(uart2), |
@@ -1235,43 +1273,36 @@ static const struct uniphier_pinmux_function ph1_ld6b_functions[] = { | |||
1235 | UNIPHIER_PINMUX_FUNCTION(xirq), | 1273 | UNIPHIER_PINMUX_FUNCTION(xirq), |
1236 | }; | 1274 | }; |
1237 | 1275 | ||
1238 | static struct uniphier_pinctrl_socdata ph1_ld6b_pindata = { | 1276 | static struct uniphier_pinctrl_socdata uniphier_ld6b_pindata = { |
1239 | .groups = ph1_ld6b_groups, | 1277 | .pins = uniphier_ld6b_pins, |
1240 | .groups_count = ARRAY_SIZE(ph1_ld6b_groups), | 1278 | .npins = ARRAY_SIZE(uniphier_ld6b_pins), |
1241 | .functions = ph1_ld6b_functions, | 1279 | .groups = uniphier_ld6b_groups, |
1242 | .functions_count = ARRAY_SIZE(ph1_ld6b_functions), | 1280 | .groups_count = ARRAY_SIZE(uniphier_ld6b_groups), |
1243 | .mux_bits = 8, | 1281 | .functions = uniphier_ld6b_functions, |
1244 | .reg_stride = 4, | 1282 | .functions_count = ARRAY_SIZE(uniphier_ld6b_functions), |
1245 | .load_pinctrl = false, | 1283 | .caps = 0, |
1246 | }; | ||
1247 | |||
1248 | static struct pinctrl_desc ph1_ld6b_pinctrl_desc = { | ||
1249 | .name = DRIVER_NAME, | ||
1250 | .pins = ph1_ld6b_pins, | ||
1251 | .npins = ARRAY_SIZE(ph1_ld6b_pins), | ||
1252 | .owner = THIS_MODULE, | ||
1253 | }; | 1284 | }; |
1254 | 1285 | ||
1255 | static int ph1_ld6b_pinctrl_probe(struct platform_device *pdev) | 1286 | static int uniphier_ld6b_pinctrl_probe(struct platform_device *pdev) |
1256 | { | 1287 | { |
1257 | return uniphier_pinctrl_probe(pdev, &ph1_ld6b_pinctrl_desc, | 1288 | return uniphier_pinctrl_probe(pdev, &uniphier_ld6b_pindata); |
1258 | &ph1_ld6b_pindata); | ||
1259 | } | 1289 | } |
1260 | 1290 | ||
1261 | static const struct of_device_id ph1_ld6b_pinctrl_match[] = { | 1291 | static const struct of_device_id uniphier_ld6b_pinctrl_match[] = { |
1292 | { .compatible = "socionext,uniphier-ld6b-pinctrl" }, | ||
1262 | { .compatible = "socionext,ph1-ld6b-pinctrl" }, | 1293 | { .compatible = "socionext,ph1-ld6b-pinctrl" }, |
1263 | { /* sentinel */ } | 1294 | { /* sentinel */ } |
1264 | }; | 1295 | }; |
1265 | MODULE_DEVICE_TABLE(of, ph1_ld6b_pinctrl_match); | 1296 | MODULE_DEVICE_TABLE(of, uniphier_ld6b_pinctrl_match); |
1266 | 1297 | ||
1267 | static struct platform_driver ph1_ld6b_pinctrl_driver = { | 1298 | static struct platform_driver uniphier_ld6b_pinctrl_driver = { |
1268 | .probe = ph1_ld6b_pinctrl_probe, | 1299 | .probe = uniphier_ld6b_pinctrl_probe, |
1269 | .driver = { | 1300 | .driver = { |
1270 | .name = DRIVER_NAME, | 1301 | .name = "uniphier-ld6b-pinctrl", |
1271 | .of_match_table = ph1_ld6b_pinctrl_match, | 1302 | .of_match_table = uniphier_ld6b_pinctrl_match, |
1272 | }, | 1303 | }, |
1273 | }; | 1304 | }; |
1274 | module_platform_driver(ph1_ld6b_pinctrl_driver); | 1305 | module_platform_driver(uniphier_ld6b_pinctrl_driver); |
1275 | 1306 | ||
1276 | MODULE_AUTHOR("Masahiro Yamada <yamada.masahiro@socionext.com>"); | 1307 | MODULE_AUTHOR("Masahiro Yamada <yamada.masahiro@socionext.com>"); |
1277 | MODULE_DESCRIPTION("UniPhier PH1-LD6b pinctrl driver"); | 1308 | MODULE_DESCRIPTION("UniPhier PH1-LD6b pinctrl driver"); |
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-pro4.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-pro4.c index b1f09e68f90e..c306e844f584 100644 --- a/drivers/pinctrl/uniphier/pinctrl-uniphier-pro4.c +++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-pro4.c | |||
@@ -19,1039 +19,1072 @@ | |||
19 | 19 | ||
20 | #include "pinctrl-uniphier.h" | 20 | #include "pinctrl-uniphier.h" |
21 | 21 | ||
22 | #define DRIVER_NAME "ph1-pro4-pinctrl" | 22 | static const struct pinctrl_pin_desc uniphier_pro4_pins[] = { |
23 | |||
24 | static const struct pinctrl_pin_desc ph1_pro4_pins[] = { | ||
25 | UNIPHIER_PINCTRL_PIN(0, "CK24O", UNIPHIER_PIN_IECTRL_NONE, | 23 | UNIPHIER_PINCTRL_PIN(0, "CK24O", UNIPHIER_PIN_IECTRL_NONE, |
26 | 0, UNIPHIER_PIN_DRV_4_8, | 24 | 0, UNIPHIER_PIN_DRV_1BIT, |
27 | 0, UNIPHIER_PIN_PULL_DOWN), | 25 | 0, UNIPHIER_PIN_PULL_DOWN), |
28 | UNIPHIER_PINCTRL_PIN(1, "VC27A", UNIPHIER_PIN_IECTRL_NONE, | 26 | UNIPHIER_PINCTRL_PIN(1, "VC27A", UNIPHIER_PIN_IECTRL_NONE, |
29 | 1, UNIPHIER_PIN_DRV_4_8, | 27 | 1, UNIPHIER_PIN_DRV_1BIT, |
30 | 1, UNIPHIER_PIN_PULL_DOWN), | 28 | 1, UNIPHIER_PIN_PULL_DOWN), |
31 | UNIPHIER_PINCTRL_PIN(2, "CK27AI", UNIPHIER_PIN_IECTRL_NONE, | 29 | UNIPHIER_PINCTRL_PIN(2, "CK27AI", UNIPHIER_PIN_IECTRL_NONE, |
32 | 2, UNIPHIER_PIN_DRV_4_8, | 30 | 2, UNIPHIER_PIN_DRV_1BIT, |
33 | 2, UNIPHIER_PIN_PULL_DOWN), | 31 | 2, UNIPHIER_PIN_PULL_DOWN), |
34 | UNIPHIER_PINCTRL_PIN(3, "CK27AO", UNIPHIER_PIN_IECTRL_NONE, | 32 | UNIPHIER_PINCTRL_PIN(3, "CK27AO", UNIPHIER_PIN_IECTRL_NONE, |
35 | 3, UNIPHIER_PIN_DRV_4_8, | 33 | 3, UNIPHIER_PIN_DRV_1BIT, |
36 | 3, UNIPHIER_PIN_PULL_DOWN), | 34 | 3, UNIPHIER_PIN_PULL_DOWN), |
37 | UNIPHIER_PINCTRL_PIN(4, "CKSEL", UNIPHIER_PIN_IECTRL_NONE, | 35 | UNIPHIER_PINCTRL_PIN(4, "CKSEL", UNIPHIER_PIN_IECTRL_NONE, |
38 | 4, UNIPHIER_PIN_DRV_4_8, | 36 | 4, UNIPHIER_PIN_DRV_1BIT, |
39 | 4, UNIPHIER_PIN_PULL_UP), | 37 | 4, UNIPHIER_PIN_PULL_UP), |
40 | UNIPHIER_PINCTRL_PIN(5, "CK27AV", UNIPHIER_PIN_IECTRL_NONE, | 38 | UNIPHIER_PINCTRL_PIN(5, "CK27AV", UNIPHIER_PIN_IECTRL_NONE, |
41 | 5, UNIPHIER_PIN_DRV_4_8, | 39 | 5, UNIPHIER_PIN_DRV_1BIT, |
42 | 5, UNIPHIER_PIN_PULL_DOWN), | 40 | 5, UNIPHIER_PIN_PULL_DOWN), |
43 | UNIPHIER_PINCTRL_PIN(6, "AEXCKA", UNIPHIER_PIN_IECTRL_NONE, | 41 | UNIPHIER_PINCTRL_PIN(6, "AEXCKA", UNIPHIER_PIN_IECTRL_NONE, |
44 | 6, UNIPHIER_PIN_DRV_4_8, | 42 | 6, UNIPHIER_PIN_DRV_1BIT, |
45 | 6, UNIPHIER_PIN_PULL_DOWN), | 43 | 6, UNIPHIER_PIN_PULL_DOWN), |
46 | UNIPHIER_PINCTRL_PIN(7, "ASEL", UNIPHIER_PIN_IECTRL_NONE, | 44 | UNIPHIER_PINCTRL_PIN(7, "ASEL", UNIPHIER_PIN_IECTRL_NONE, |
47 | 7, UNIPHIER_PIN_DRV_4_8, | 45 | 7, UNIPHIER_PIN_DRV_1BIT, |
48 | 7, UNIPHIER_PIN_PULL_DOWN), | 46 | 7, UNIPHIER_PIN_PULL_DOWN), |
49 | UNIPHIER_PINCTRL_PIN(8, "ARCRESET", UNIPHIER_PIN_IECTRL_NONE, | 47 | UNIPHIER_PINCTRL_PIN(8, "ARCRESET", UNIPHIER_PIN_IECTRL_NONE, |
50 | 8, UNIPHIER_PIN_DRV_4_8, | 48 | 8, UNIPHIER_PIN_DRV_1BIT, |
51 | 8, UNIPHIER_PIN_PULL_DOWN), | 49 | 8, UNIPHIER_PIN_PULL_DOWN), |
52 | UNIPHIER_PINCTRL_PIN(9, "ARCUNLOCK", UNIPHIER_PIN_IECTRL_NONE, | 50 | UNIPHIER_PINCTRL_PIN(9, "ARCUNLOCK", UNIPHIER_PIN_IECTRL_NONE, |
53 | 9, UNIPHIER_PIN_DRV_4_8, | 51 | 9, UNIPHIER_PIN_DRV_1BIT, |
54 | 9, UNIPHIER_PIN_PULL_DOWN), | 52 | 9, UNIPHIER_PIN_PULL_DOWN), |
55 | UNIPHIER_PINCTRL_PIN(10, "XSRST", UNIPHIER_PIN_IECTRL_NONE, | 53 | UNIPHIER_PINCTRL_PIN(10, "XSRST", UNIPHIER_PIN_IECTRL_NONE, |
56 | 10, UNIPHIER_PIN_DRV_4_8, | 54 | 10, UNIPHIER_PIN_DRV_1BIT, |
57 | 10, UNIPHIER_PIN_PULL_DOWN), | 55 | 10, UNIPHIER_PIN_PULL_DOWN), |
58 | UNIPHIER_PINCTRL_PIN(11, "XNMIRQ", UNIPHIER_PIN_IECTRL_NONE, | 56 | UNIPHIER_PINCTRL_PIN(11, "XNMIRQ", UNIPHIER_PIN_IECTRL_NONE, |
59 | 11, UNIPHIER_PIN_DRV_4_8, | 57 | 11, UNIPHIER_PIN_DRV_1BIT, |
60 | 11, UNIPHIER_PIN_PULL_UP), | 58 | 11, UNIPHIER_PIN_PULL_UP), |
61 | UNIPHIER_PINCTRL_PIN(12, "XSCIRQ", UNIPHIER_PIN_IECTRL_NONE, | 59 | UNIPHIER_PINCTRL_PIN(12, "XSCIRQ", UNIPHIER_PIN_IECTRL_NONE, |
62 | 12, UNIPHIER_PIN_DRV_4_8, | 60 | 12, UNIPHIER_PIN_DRV_1BIT, |
63 | 12, UNIPHIER_PIN_PULL_UP), | 61 | 12, UNIPHIER_PIN_PULL_UP), |
64 | UNIPHIER_PINCTRL_PIN(13, "EXTRG", UNIPHIER_PIN_IECTRL_NONE, | 62 | UNIPHIER_PINCTRL_PIN(13, "EXTRG", UNIPHIER_PIN_IECTRL_NONE, |
65 | 13, UNIPHIER_PIN_DRV_4_8, | 63 | 13, UNIPHIER_PIN_DRV_1BIT, |
66 | 13, UNIPHIER_PIN_PULL_DOWN), | 64 | 13, UNIPHIER_PIN_PULL_DOWN), |
67 | UNIPHIER_PINCTRL_PIN(14, "TRCCLK", UNIPHIER_PIN_IECTRL_NONE, | 65 | UNIPHIER_PINCTRL_PIN(14, "TRCCLK", UNIPHIER_PIN_IECTRL_NONE, |
68 | 14, UNIPHIER_PIN_DRV_4_8, | 66 | 14, UNIPHIER_PIN_DRV_1BIT, |
69 | 14, UNIPHIER_PIN_PULL_DOWN), | 67 | 14, UNIPHIER_PIN_PULL_DOWN), |
70 | UNIPHIER_PINCTRL_PIN(15, "TRCCTL", UNIPHIER_PIN_IECTRL_NONE, | 68 | UNIPHIER_PINCTRL_PIN(15, "TRCCTL", UNIPHIER_PIN_IECTRL_NONE, |
71 | 15, UNIPHIER_PIN_DRV_4_8, | 69 | 15, UNIPHIER_PIN_DRV_1BIT, |
72 | 15, UNIPHIER_PIN_PULL_DOWN), | 70 | 15, UNIPHIER_PIN_PULL_DOWN), |
73 | UNIPHIER_PINCTRL_PIN(16, "TRCD0", UNIPHIER_PIN_IECTRL_NONE, | 71 | UNIPHIER_PINCTRL_PIN(16, "TRCD0", UNIPHIER_PIN_IECTRL_NONE, |
74 | 16, UNIPHIER_PIN_DRV_4_8, | 72 | 16, UNIPHIER_PIN_DRV_1BIT, |
75 | 16, UNIPHIER_PIN_PULL_DOWN), | 73 | 16, UNIPHIER_PIN_PULL_DOWN), |
76 | UNIPHIER_PINCTRL_PIN(17, "TRCD1", UNIPHIER_PIN_IECTRL_NONE, | 74 | UNIPHIER_PINCTRL_PIN(17, "TRCD1", UNIPHIER_PIN_IECTRL_NONE, |
77 | 17, UNIPHIER_PIN_DRV_4_8, | 75 | 17, UNIPHIER_PIN_DRV_1BIT, |
78 | 17, UNIPHIER_PIN_PULL_DOWN), | 76 | 17, UNIPHIER_PIN_PULL_DOWN), |
79 | UNIPHIER_PINCTRL_PIN(18, "TRCD2", UNIPHIER_PIN_IECTRL_NONE, | 77 | UNIPHIER_PINCTRL_PIN(18, "TRCD2", UNIPHIER_PIN_IECTRL_NONE, |
80 | 18, UNIPHIER_PIN_DRV_4_8, | 78 | 18, UNIPHIER_PIN_DRV_1BIT, |
81 | 18, UNIPHIER_PIN_PULL_DOWN), | 79 | 18, UNIPHIER_PIN_PULL_DOWN), |
82 | UNIPHIER_PINCTRL_PIN(19, "TRCD3", UNIPHIER_PIN_IECTRL_NONE, | 80 | UNIPHIER_PINCTRL_PIN(19, "TRCD3", UNIPHIER_PIN_IECTRL_NONE, |
83 | 19, UNIPHIER_PIN_DRV_4_8, | 81 | 19, UNIPHIER_PIN_DRV_1BIT, |
84 | 19, UNIPHIER_PIN_PULL_DOWN), | 82 | 19, UNIPHIER_PIN_PULL_DOWN), |
85 | UNIPHIER_PINCTRL_PIN(20, "TRCD4", UNIPHIER_PIN_IECTRL_NONE, | 83 | UNIPHIER_PINCTRL_PIN(20, "TRCD4", UNIPHIER_PIN_IECTRL_NONE, |
86 | 20, UNIPHIER_PIN_DRV_4_8, | 84 | 20, UNIPHIER_PIN_DRV_1BIT, |
87 | 20, UNIPHIER_PIN_PULL_DOWN), | 85 | 20, UNIPHIER_PIN_PULL_DOWN), |
88 | UNIPHIER_PINCTRL_PIN(21, "TRCD5", UNIPHIER_PIN_IECTRL_NONE, | 86 | UNIPHIER_PINCTRL_PIN(21, "TRCD5", UNIPHIER_PIN_IECTRL_NONE, |
89 | 21, UNIPHIER_PIN_DRV_4_8, | 87 | 21, UNIPHIER_PIN_DRV_1BIT, |
90 | 21, UNIPHIER_PIN_PULL_DOWN), | 88 | 21, UNIPHIER_PIN_PULL_DOWN), |
91 | UNIPHIER_PINCTRL_PIN(22, "TRCD6", UNIPHIER_PIN_IECTRL_NONE, | 89 | UNIPHIER_PINCTRL_PIN(22, "TRCD6", UNIPHIER_PIN_IECTRL_NONE, |
92 | 22, UNIPHIER_PIN_DRV_4_8, | 90 | 22, UNIPHIER_PIN_DRV_1BIT, |
93 | 22, UNIPHIER_PIN_PULL_DOWN), | 91 | 22, UNIPHIER_PIN_PULL_DOWN), |
94 | UNIPHIER_PINCTRL_PIN(23, "TRCD7", UNIPHIER_PIN_IECTRL_NONE, | 92 | UNIPHIER_PINCTRL_PIN(23, "TRCD7", UNIPHIER_PIN_IECTRL_NONE, |
95 | 23, UNIPHIER_PIN_DRV_4_8, | 93 | 23, UNIPHIER_PIN_DRV_1BIT, |
96 | 23, UNIPHIER_PIN_PULL_DOWN), | 94 | 23, UNIPHIER_PIN_PULL_DOWN), |
97 | UNIPHIER_PINCTRL_PIN(24, "XECS1", UNIPHIER_PIN_IECTRL_NONE, | 95 | UNIPHIER_PINCTRL_PIN(24, "XECS1", UNIPHIER_PIN_IECTRL_NONE, |
98 | 24, UNIPHIER_PIN_DRV_4_8, | 96 | 24, UNIPHIER_PIN_DRV_1BIT, |
99 | 24, UNIPHIER_PIN_PULL_UP), | 97 | 24, UNIPHIER_PIN_PULL_UP), |
100 | UNIPHIER_PINCTRL_PIN(25, "ERXW", UNIPHIER_PIN_IECTRL_NONE, | 98 | UNIPHIER_PINCTRL_PIN(25, "ERXW", UNIPHIER_PIN_IECTRL_NONE, |
101 | 25, UNIPHIER_PIN_DRV_4_8, | 99 | 25, UNIPHIER_PIN_DRV_1BIT, |
102 | 25, UNIPHIER_PIN_PULL_UP), | 100 | 25, UNIPHIER_PIN_PULL_UP), |
103 | UNIPHIER_PINCTRL_PIN(26, "XERWE0", UNIPHIER_PIN_IECTRL_NONE, | 101 | UNIPHIER_PINCTRL_PIN(26, "XERWE0", UNIPHIER_PIN_IECTRL_NONE, |
104 | 26, UNIPHIER_PIN_DRV_4_8, | 102 | 26, UNIPHIER_PIN_DRV_1BIT, |
105 | 26, UNIPHIER_PIN_PULL_UP), | 103 | 26, UNIPHIER_PIN_PULL_UP), |
106 | UNIPHIER_PINCTRL_PIN(27, "XERWE1", UNIPHIER_PIN_IECTRL_NONE, | 104 | UNIPHIER_PINCTRL_PIN(27, "XERWE1", UNIPHIER_PIN_IECTRL_NONE, |
107 | 27, UNIPHIER_PIN_DRV_4_8, | 105 | 27, UNIPHIER_PIN_DRV_1BIT, |
108 | 27, UNIPHIER_PIN_PULL_UP), | 106 | 27, UNIPHIER_PIN_PULL_UP), |
109 | UNIPHIER_PINCTRL_PIN(28, "ES0", UNIPHIER_PIN_IECTRL_NONE, | 107 | UNIPHIER_PINCTRL_PIN(28, "ES0", UNIPHIER_PIN_IECTRL_NONE, |
110 | 28, UNIPHIER_PIN_DRV_4_8, | 108 | 28, UNIPHIER_PIN_DRV_1BIT, |
111 | 28, UNIPHIER_PIN_PULL_DOWN), | 109 | 28, UNIPHIER_PIN_PULL_DOWN), |
112 | UNIPHIER_PINCTRL_PIN(29, "ES1", UNIPHIER_PIN_IECTRL_NONE, | 110 | UNIPHIER_PINCTRL_PIN(29, "ES1", UNIPHIER_PIN_IECTRL_NONE, |
113 | 29, UNIPHIER_PIN_DRV_4_8, | 111 | 29, UNIPHIER_PIN_DRV_1BIT, |
114 | 29, UNIPHIER_PIN_PULL_DOWN), | 112 | 29, UNIPHIER_PIN_PULL_DOWN), |
115 | UNIPHIER_PINCTRL_PIN(30, "ES2", UNIPHIER_PIN_IECTRL_NONE, | 113 | UNIPHIER_PINCTRL_PIN(30, "ES2", UNIPHIER_PIN_IECTRL_NONE, |
116 | 30, UNIPHIER_PIN_DRV_4_8, | 114 | 30, UNIPHIER_PIN_DRV_1BIT, |
117 | 30, UNIPHIER_PIN_PULL_DOWN), | 115 | 30, UNIPHIER_PIN_PULL_DOWN), |
118 | UNIPHIER_PINCTRL_PIN(31, "ED0", UNIPHIER_PIN_IECTRL_NONE, | 116 | UNIPHIER_PINCTRL_PIN(31, "ED0", UNIPHIER_PIN_IECTRL_NONE, |
119 | 31, UNIPHIER_PIN_DRV_4_8, | 117 | 31, UNIPHIER_PIN_DRV_1BIT, |
120 | 31, UNIPHIER_PIN_PULL_DOWN), | 118 | 31, UNIPHIER_PIN_PULL_DOWN), |
121 | UNIPHIER_PINCTRL_PIN(32, "ED1", UNIPHIER_PIN_IECTRL_NONE, | 119 | UNIPHIER_PINCTRL_PIN(32, "ED1", UNIPHIER_PIN_IECTRL_NONE, |
122 | 32, UNIPHIER_PIN_DRV_4_8, | 120 | 32, UNIPHIER_PIN_DRV_1BIT, |
123 | 32, UNIPHIER_PIN_PULL_DOWN), | 121 | 32, UNIPHIER_PIN_PULL_DOWN), |
124 | UNIPHIER_PINCTRL_PIN(33, "ED2", UNIPHIER_PIN_IECTRL_NONE, | 122 | UNIPHIER_PINCTRL_PIN(33, "ED2", UNIPHIER_PIN_IECTRL_NONE, |
125 | 33, UNIPHIER_PIN_DRV_4_8, | 123 | 33, UNIPHIER_PIN_DRV_1BIT, |
126 | 33, UNIPHIER_PIN_PULL_DOWN), | 124 | 33, UNIPHIER_PIN_PULL_DOWN), |
127 | UNIPHIER_PINCTRL_PIN(34, "ED3", UNIPHIER_PIN_IECTRL_NONE, | 125 | UNIPHIER_PINCTRL_PIN(34, "ED3", UNIPHIER_PIN_IECTRL_NONE, |
128 | 34, UNIPHIER_PIN_DRV_4_8, | 126 | 34, UNIPHIER_PIN_DRV_1BIT, |
129 | 34, UNIPHIER_PIN_PULL_DOWN), | 127 | 34, UNIPHIER_PIN_PULL_DOWN), |
130 | UNIPHIER_PINCTRL_PIN(35, "ED4", UNIPHIER_PIN_IECTRL_NONE, | 128 | UNIPHIER_PINCTRL_PIN(35, "ED4", UNIPHIER_PIN_IECTRL_NONE, |
131 | 35, UNIPHIER_PIN_DRV_4_8, | 129 | 35, UNIPHIER_PIN_DRV_1BIT, |
132 | 35, UNIPHIER_PIN_PULL_DOWN), | 130 | 35, UNIPHIER_PIN_PULL_DOWN), |
133 | UNIPHIER_PINCTRL_PIN(36, "ED5", UNIPHIER_PIN_IECTRL_NONE, | 131 | UNIPHIER_PINCTRL_PIN(36, "ED5", UNIPHIER_PIN_IECTRL_NONE, |
134 | 36, UNIPHIER_PIN_DRV_4_8, | 132 | 36, UNIPHIER_PIN_DRV_1BIT, |
135 | 36, UNIPHIER_PIN_PULL_DOWN), | 133 | 36, UNIPHIER_PIN_PULL_DOWN), |
136 | UNIPHIER_PINCTRL_PIN(37, "ED6", UNIPHIER_PIN_IECTRL_NONE, | 134 | UNIPHIER_PINCTRL_PIN(37, "ED6", UNIPHIER_PIN_IECTRL_NONE, |
137 | 37, UNIPHIER_PIN_DRV_4_8, | 135 | 37, UNIPHIER_PIN_DRV_1BIT, |
138 | 37, UNIPHIER_PIN_PULL_DOWN), | 136 | 37, UNIPHIER_PIN_PULL_DOWN), |
139 | UNIPHIER_PINCTRL_PIN(38, "ED7", UNIPHIER_PIN_IECTRL_NONE, | 137 | UNIPHIER_PINCTRL_PIN(38, "ED7", UNIPHIER_PIN_IECTRL_NONE, |
140 | 38, UNIPHIER_PIN_DRV_4_8, | 138 | 38, UNIPHIER_PIN_DRV_1BIT, |
141 | 38, UNIPHIER_PIN_PULL_DOWN), | 139 | 38, UNIPHIER_PIN_PULL_DOWN), |
142 | UNIPHIER_PINCTRL_PIN(39, "BOOTSWAP", UNIPHIER_PIN_IECTRL_NONE, | 140 | UNIPHIER_PINCTRL_PIN(39, "BOOTSWAP", UNIPHIER_PIN_IECTRL_NONE, |
143 | 39, UNIPHIER_PIN_DRV_NONE, | 141 | -1, UNIPHIER_PIN_DRV_NONE, |
144 | 39, UNIPHIER_PIN_PULL_UP), | 142 | 39, UNIPHIER_PIN_PULL_UP), |
145 | UNIPHIER_PINCTRL_PIN(40, "NFD0", UNIPHIER_PIN_IECTRL_NONE, | 143 | UNIPHIER_PINCTRL_PIN(40, "NFD0", UNIPHIER_PIN_IECTRL_NONE, |
146 | 2, UNIPHIER_PIN_DRV_8_12_16_20, | 144 | 2, UNIPHIER_PIN_DRV_2BIT, |
147 | 40, UNIPHIER_PIN_PULL_UP), | 145 | 40, UNIPHIER_PIN_PULL_UP), |
148 | UNIPHIER_PINCTRL_PIN(41, "NFD1", UNIPHIER_PIN_IECTRL_NONE, | 146 | UNIPHIER_PINCTRL_PIN(41, "NFD1", UNIPHIER_PIN_IECTRL_NONE, |
149 | 3, UNIPHIER_PIN_DRV_8_12_16_20, | 147 | 3, UNIPHIER_PIN_DRV_2BIT, |
150 | 41, UNIPHIER_PIN_PULL_UP), | 148 | 41, UNIPHIER_PIN_PULL_UP), |
151 | UNIPHIER_PINCTRL_PIN(42, "NFD2", UNIPHIER_PIN_IECTRL_NONE, | 149 | UNIPHIER_PINCTRL_PIN(42, "NFD2", UNIPHIER_PIN_IECTRL_NONE, |
152 | 4, UNIPHIER_PIN_DRV_8_12_16_20, | 150 | 4, UNIPHIER_PIN_DRV_2BIT, |
153 | 42, UNIPHIER_PIN_PULL_UP), | 151 | 42, UNIPHIER_PIN_PULL_UP), |
154 | UNIPHIER_PINCTRL_PIN(43, "NFD3", UNIPHIER_PIN_IECTRL_NONE, | 152 | UNIPHIER_PINCTRL_PIN(43, "NFD3", UNIPHIER_PIN_IECTRL_NONE, |
155 | 5, UNIPHIER_PIN_DRV_8_12_16_20, | 153 | 5, UNIPHIER_PIN_DRV_2BIT, |
156 | 43, UNIPHIER_PIN_PULL_UP), | 154 | 43, UNIPHIER_PIN_PULL_UP), |
157 | UNIPHIER_PINCTRL_PIN(44, "NFD4", UNIPHIER_PIN_IECTRL_NONE, | 155 | UNIPHIER_PINCTRL_PIN(44, "NFD4", UNIPHIER_PIN_IECTRL_NONE, |
158 | 6, UNIPHIER_PIN_DRV_8_12_16_20, | 156 | 6, UNIPHIER_PIN_DRV_2BIT, |
159 | 44, UNIPHIER_PIN_PULL_UP), | 157 | 44, UNIPHIER_PIN_PULL_UP), |
160 | UNIPHIER_PINCTRL_PIN(45, "NFD5", UNIPHIER_PIN_IECTRL_NONE, | 158 | UNIPHIER_PINCTRL_PIN(45, "NFD5", UNIPHIER_PIN_IECTRL_NONE, |
161 | 7, UNIPHIER_PIN_DRV_8_12_16_20, | 159 | 7, UNIPHIER_PIN_DRV_2BIT, |
162 | 45, UNIPHIER_PIN_PULL_UP), | 160 | 45, UNIPHIER_PIN_PULL_UP), |
163 | UNIPHIER_PINCTRL_PIN(46, "NFD6", UNIPHIER_PIN_IECTRL_NONE, | 161 | UNIPHIER_PINCTRL_PIN(46, "NFD6", UNIPHIER_PIN_IECTRL_NONE, |
164 | 8, UNIPHIER_PIN_DRV_8_12_16_20, | 162 | 8, UNIPHIER_PIN_DRV_2BIT, |
165 | 46, UNIPHIER_PIN_PULL_UP), | 163 | 46, UNIPHIER_PIN_PULL_UP), |
166 | UNIPHIER_PINCTRL_PIN(47, "NFD7", UNIPHIER_PIN_IECTRL_NONE, | 164 | UNIPHIER_PINCTRL_PIN(47, "NFD7", UNIPHIER_PIN_IECTRL_NONE, |
167 | 9, UNIPHIER_PIN_DRV_8_12_16_20, | 165 | 9, UNIPHIER_PIN_DRV_2BIT, |
168 | 47, UNIPHIER_PIN_PULL_UP), | 166 | 47, UNIPHIER_PIN_PULL_UP), |
169 | UNIPHIER_PINCTRL_PIN(48, "NFALE", UNIPHIER_PIN_IECTRL_NONE, | 167 | UNIPHIER_PINCTRL_PIN(48, "NFALE", UNIPHIER_PIN_IECTRL_NONE, |
170 | 48, UNIPHIER_PIN_DRV_4_8, | 168 | 48, UNIPHIER_PIN_DRV_1BIT, |
171 | 48, UNIPHIER_PIN_PULL_DOWN), | 169 | 48, UNIPHIER_PIN_PULL_DOWN), |
172 | UNIPHIER_PINCTRL_PIN(49, "NFCLE", UNIPHIER_PIN_IECTRL_NONE, | 170 | UNIPHIER_PINCTRL_PIN(49, "NFCLE", UNIPHIER_PIN_IECTRL_NONE, |
173 | 49, UNIPHIER_PIN_DRV_4_8, | 171 | 49, UNIPHIER_PIN_DRV_1BIT, |
174 | 49, UNIPHIER_PIN_PULL_DOWN), | 172 | 49, UNIPHIER_PIN_PULL_DOWN), |
175 | UNIPHIER_PINCTRL_PIN(50, "XNFRE", UNIPHIER_PIN_IECTRL_NONE, | 173 | UNIPHIER_PINCTRL_PIN(50, "XNFRE", UNIPHIER_PIN_IECTRL_NONE, |
176 | 50, UNIPHIER_PIN_DRV_4_8, | 174 | 50, UNIPHIER_PIN_DRV_1BIT, |
177 | 50, UNIPHIER_PIN_PULL_UP), | 175 | 50, UNIPHIER_PIN_PULL_UP), |
178 | UNIPHIER_PINCTRL_PIN(51, "XNFWE", UNIPHIER_PIN_IECTRL_NONE, | 176 | UNIPHIER_PINCTRL_PIN(51, "XNFWE", UNIPHIER_PIN_IECTRL_NONE, |
179 | 0, UNIPHIER_PIN_DRV_8_12_16_20, | 177 | 0, UNIPHIER_PIN_DRV_2BIT, |
180 | 51, UNIPHIER_PIN_PULL_UP), | 178 | 51, UNIPHIER_PIN_PULL_UP), |
181 | UNIPHIER_PINCTRL_PIN(52, "XNFWP", UNIPHIER_PIN_IECTRL_NONE, | 179 | UNIPHIER_PINCTRL_PIN(52, "XNFWP", UNIPHIER_PIN_IECTRL_NONE, |
182 | 52, UNIPHIER_PIN_DRV_4_8, | 180 | 52, UNIPHIER_PIN_DRV_1BIT, |
183 | 52, UNIPHIER_PIN_PULL_DOWN), | 181 | 52, UNIPHIER_PIN_PULL_DOWN), |
184 | UNIPHIER_PINCTRL_PIN(53, "XNFCE0", UNIPHIER_PIN_IECTRL_NONE, | 182 | UNIPHIER_PINCTRL_PIN(53, "XNFCE0", UNIPHIER_PIN_IECTRL_NONE, |
185 | 1, UNIPHIER_PIN_DRV_8_12_16_20, | 183 | 1, UNIPHIER_PIN_DRV_2BIT, |
186 | 53, UNIPHIER_PIN_PULL_UP), | 184 | 53, UNIPHIER_PIN_PULL_UP), |
187 | UNIPHIER_PINCTRL_PIN(54, "NRYBY0", UNIPHIER_PIN_IECTRL_NONE, | 185 | UNIPHIER_PINCTRL_PIN(54, "NRYBY0", UNIPHIER_PIN_IECTRL_NONE, |
188 | 54, UNIPHIER_PIN_DRV_4_8, | 186 | 54, UNIPHIER_PIN_DRV_1BIT, |
189 | 54, UNIPHIER_PIN_PULL_UP), | 187 | 54, UNIPHIER_PIN_PULL_UP), |
190 | UNIPHIER_PINCTRL_PIN(55, "DMDSCLTST", UNIPHIER_PIN_IECTRL_NONE, | 188 | UNIPHIER_PINCTRL_PIN(55, "DMDSCLTST", UNIPHIER_PIN_IECTRL_NONE, |
191 | -1, UNIPHIER_PIN_DRV_NONE, | 189 | -1, UNIPHIER_PIN_DRV_NONE, |
192 | -1, UNIPHIER_PIN_PULL_NONE), | 190 | -1, UNIPHIER_PIN_PULL_NONE), |
193 | UNIPHIER_PINCTRL_PIN(56, "DMDSDATST", UNIPHIER_PIN_IECTRL_NONE, | 191 | UNIPHIER_PINCTRL_PIN(56, "DMDSDATST", UNIPHIER_PIN_IECTRL_NONE, |
194 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 192 | -1, UNIPHIER_PIN_DRV_FIXED4, |
195 | -1, UNIPHIER_PIN_PULL_NONE), | 193 | -1, UNIPHIER_PIN_PULL_NONE), |
196 | UNIPHIER_PINCTRL_PIN(57, "AGCI0", 3, | 194 | UNIPHIER_PINCTRL_PIN(57, "AGCI0", 3, |
197 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 195 | -1, UNIPHIER_PIN_DRV_FIXED4, |
198 | 55, UNIPHIER_PIN_PULL_DOWN), | 196 | 55, UNIPHIER_PIN_PULL_DOWN), |
199 | UNIPHIER_PINCTRL_PIN(58, "DMDSCL0", UNIPHIER_PIN_IECTRL_NONE, | 197 | UNIPHIER_PINCTRL_PIN(58, "DMDSCL0", UNIPHIER_PIN_IECTRL_NONE, |
200 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 198 | -1, UNIPHIER_PIN_DRV_FIXED4, |
201 | -1, UNIPHIER_PIN_PULL_NONE), | 199 | -1, UNIPHIER_PIN_PULL_NONE), |
202 | UNIPHIER_PINCTRL_PIN(59, "DMDSDA0", UNIPHIER_PIN_IECTRL_NONE, | 200 | UNIPHIER_PINCTRL_PIN(59, "DMDSDA0", UNIPHIER_PIN_IECTRL_NONE, |
203 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 201 | -1, UNIPHIER_PIN_DRV_FIXED4, |
204 | -1, UNIPHIER_PIN_PULL_NONE), | 202 | -1, UNIPHIER_PIN_PULL_NONE), |
205 | UNIPHIER_PINCTRL_PIN(60, "AGCBS0", 5, | 203 | UNIPHIER_PINCTRL_PIN(60, "AGCBS0", 5, |
206 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 204 | -1, UNIPHIER_PIN_DRV_FIXED4, |
207 | 56, UNIPHIER_PIN_PULL_DOWN), | 205 | 56, UNIPHIER_PIN_PULL_DOWN), |
208 | UNIPHIER_PINCTRL_PIN(61, "DMDSCL1", UNIPHIER_PIN_IECTRL_NONE, | 206 | UNIPHIER_PINCTRL_PIN(61, "DMDSCL1", UNIPHIER_PIN_IECTRL_NONE, |
209 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 207 | -1, UNIPHIER_PIN_DRV_FIXED4, |
210 | -1, UNIPHIER_PIN_PULL_NONE), | 208 | -1, UNIPHIER_PIN_PULL_NONE), |
211 | UNIPHIER_PINCTRL_PIN(62, "DMDSDA1", UNIPHIER_PIN_IECTRL_NONE, | 209 | UNIPHIER_PINCTRL_PIN(62, "DMDSDA1", UNIPHIER_PIN_IECTRL_NONE, |
212 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 210 | -1, UNIPHIER_PIN_DRV_FIXED4, |
213 | -1, UNIPHIER_PIN_PULL_NONE), | 211 | -1, UNIPHIER_PIN_PULL_NONE), |
214 | UNIPHIER_PINCTRL_PIN(63, "ANTSHORT", UNIPHIER_PIN_IECTRL_NONE, | 212 | UNIPHIER_PINCTRL_PIN(63, "ANTSHORT", UNIPHIER_PIN_IECTRL_NONE, |
215 | 57, UNIPHIER_PIN_DRV_4_8, | 213 | 57, UNIPHIER_PIN_DRV_1BIT, |
216 | 57, UNIPHIER_PIN_PULL_UP), | 214 | 57, UNIPHIER_PIN_PULL_UP), |
217 | UNIPHIER_PINCTRL_PIN(64, "CH0CLK", UNIPHIER_PIN_IECTRL_NONE, | 215 | UNIPHIER_PINCTRL_PIN(64, "CH0CLK", UNIPHIER_PIN_IECTRL_NONE, |
218 | 58, UNIPHIER_PIN_DRV_4_8, | 216 | 58, UNIPHIER_PIN_DRV_1BIT, |
219 | 58, UNIPHIER_PIN_PULL_DOWN), | 217 | 58, UNIPHIER_PIN_PULL_DOWN), |
220 | UNIPHIER_PINCTRL_PIN(65, "CH0VAL", UNIPHIER_PIN_IECTRL_NONE, | 218 | UNIPHIER_PINCTRL_PIN(65, "CH0VAL", UNIPHIER_PIN_IECTRL_NONE, |
221 | 59, UNIPHIER_PIN_DRV_4_8, | 219 | 59, UNIPHIER_PIN_DRV_1BIT, |
222 | 59, UNIPHIER_PIN_PULL_DOWN), | 220 | 59, UNIPHIER_PIN_PULL_DOWN), |
223 | UNIPHIER_PINCTRL_PIN(66, "CH0PSYNC", UNIPHIER_PIN_IECTRL_NONE, | 221 | UNIPHIER_PINCTRL_PIN(66, "CH0PSYNC", UNIPHIER_PIN_IECTRL_NONE, |
224 | 60, UNIPHIER_PIN_DRV_4_8, | 222 | 60, UNIPHIER_PIN_DRV_1BIT, |
225 | 60, UNIPHIER_PIN_PULL_DOWN), | 223 | 60, UNIPHIER_PIN_PULL_DOWN), |
226 | UNIPHIER_PINCTRL_PIN(67, "CH0DATA", UNIPHIER_PIN_IECTRL_NONE, | 224 | UNIPHIER_PINCTRL_PIN(67, "CH0DATA", UNIPHIER_PIN_IECTRL_NONE, |
227 | 61, UNIPHIER_PIN_DRV_4_8, | 225 | 61, UNIPHIER_PIN_DRV_1BIT, |
228 | 61, UNIPHIER_PIN_PULL_DOWN), | 226 | 61, UNIPHIER_PIN_PULL_DOWN), |
229 | UNIPHIER_PINCTRL_PIN(68, "CH1CLK", UNIPHIER_PIN_IECTRL_NONE, | 227 | UNIPHIER_PINCTRL_PIN(68, "CH1CLK", UNIPHIER_PIN_IECTRL_NONE, |
230 | 62, UNIPHIER_PIN_DRV_4_8, | 228 | 62, UNIPHIER_PIN_DRV_1BIT, |
231 | 62, UNIPHIER_PIN_PULL_DOWN), | 229 | 62, UNIPHIER_PIN_PULL_DOWN), |
232 | UNIPHIER_PINCTRL_PIN(69, "CH1VAL", UNIPHIER_PIN_IECTRL_NONE, | 230 | UNIPHIER_PINCTRL_PIN(69, "CH1VAL", UNIPHIER_PIN_IECTRL_NONE, |
233 | 63, UNIPHIER_PIN_DRV_4_8, | 231 | 63, UNIPHIER_PIN_DRV_1BIT, |
234 | 63, UNIPHIER_PIN_PULL_DOWN), | 232 | 63, UNIPHIER_PIN_PULL_DOWN), |
235 | UNIPHIER_PINCTRL_PIN(70, "CH1PSYNC", UNIPHIER_PIN_IECTRL_NONE, | 233 | UNIPHIER_PINCTRL_PIN(70, "CH1PSYNC", UNIPHIER_PIN_IECTRL_NONE, |
236 | 64, UNIPHIER_PIN_DRV_4_8, | 234 | 64, UNIPHIER_PIN_DRV_1BIT, |
237 | 64, UNIPHIER_PIN_PULL_DOWN), | 235 | 64, UNIPHIER_PIN_PULL_DOWN), |
238 | UNIPHIER_PINCTRL_PIN(71, "CH1DATA", UNIPHIER_PIN_IECTRL_NONE, | 236 | UNIPHIER_PINCTRL_PIN(71, "CH1DATA", UNIPHIER_PIN_IECTRL_NONE, |
239 | 65, UNIPHIER_PIN_DRV_4_8, | 237 | 65, UNIPHIER_PIN_DRV_1BIT, |
240 | 65, UNIPHIER_PIN_PULL_DOWN), | 238 | 65, UNIPHIER_PIN_PULL_DOWN), |
241 | UNIPHIER_PINCTRL_PIN(72, "CH2CLK", UNIPHIER_PIN_IECTRL_NONE, | 239 | UNIPHIER_PINCTRL_PIN(72, "CH2CLK", UNIPHIER_PIN_IECTRL_NONE, |
242 | 66, UNIPHIER_PIN_DRV_4_8, | 240 | 66, UNIPHIER_PIN_DRV_1BIT, |
243 | 66, UNIPHIER_PIN_PULL_DOWN), | 241 | 66, UNIPHIER_PIN_PULL_DOWN), |
244 | UNIPHIER_PINCTRL_PIN(73, "CH2VAL", UNIPHIER_PIN_IECTRL_NONE, | 242 | UNIPHIER_PINCTRL_PIN(73, "CH2VAL", UNIPHIER_PIN_IECTRL_NONE, |
245 | 67, UNIPHIER_PIN_DRV_4_8, | 243 | 67, UNIPHIER_PIN_DRV_1BIT, |
246 | 67, UNIPHIER_PIN_PULL_DOWN), | 244 | 67, UNIPHIER_PIN_PULL_DOWN), |
247 | UNIPHIER_PINCTRL_PIN(74, "CH2PSYNC", UNIPHIER_PIN_IECTRL_NONE, | 245 | UNIPHIER_PINCTRL_PIN(74, "CH2PSYNC", UNIPHIER_PIN_IECTRL_NONE, |
248 | 68, UNIPHIER_PIN_DRV_4_8, | 246 | 68, UNIPHIER_PIN_DRV_1BIT, |
249 | 68, UNIPHIER_PIN_PULL_DOWN), | 247 | 68, UNIPHIER_PIN_PULL_DOWN), |
250 | UNIPHIER_PINCTRL_PIN(75, "CH2DATA", UNIPHIER_PIN_IECTRL_NONE, | 248 | UNIPHIER_PINCTRL_PIN(75, "CH2DATA", UNIPHIER_PIN_IECTRL_NONE, |
251 | 69, UNIPHIER_PIN_DRV_4_8, | 249 | 69, UNIPHIER_PIN_DRV_1BIT, |
252 | 69, UNIPHIER_PIN_PULL_DOWN), | 250 | 69, UNIPHIER_PIN_PULL_DOWN), |
253 | UNIPHIER_PINCTRL_PIN(76, "CH3CLK", UNIPHIER_PIN_IECTRL_NONE, | 251 | UNIPHIER_PINCTRL_PIN(76, "CH3CLK", UNIPHIER_PIN_IECTRL_NONE, |
254 | 70, UNIPHIER_PIN_DRV_4_8, | 252 | 70, UNIPHIER_PIN_DRV_1BIT, |
255 | 70, UNIPHIER_PIN_PULL_DOWN), | 253 | 70, UNIPHIER_PIN_PULL_DOWN), |
256 | UNIPHIER_PINCTRL_PIN(77, "CH3VAL", UNIPHIER_PIN_IECTRL_NONE, | 254 | UNIPHIER_PINCTRL_PIN(77, "CH3VAL", UNIPHIER_PIN_IECTRL_NONE, |
257 | 71, UNIPHIER_PIN_DRV_4_8, | 255 | 71, UNIPHIER_PIN_DRV_1BIT, |
258 | 71, UNIPHIER_PIN_PULL_DOWN), | 256 | 71, UNIPHIER_PIN_PULL_DOWN), |
259 | UNIPHIER_PINCTRL_PIN(78, "CH3PSYNC", UNIPHIER_PIN_IECTRL_NONE, | 257 | UNIPHIER_PINCTRL_PIN(78, "CH3PSYNC", UNIPHIER_PIN_IECTRL_NONE, |
260 | 72, UNIPHIER_PIN_DRV_4_8, | 258 | 72, UNIPHIER_PIN_DRV_1BIT, |
261 | 72, UNIPHIER_PIN_PULL_DOWN), | 259 | 72, UNIPHIER_PIN_PULL_DOWN), |
262 | UNIPHIER_PINCTRL_PIN(79, "CH3DATA", UNIPHIER_PIN_IECTRL_NONE, | 260 | UNIPHIER_PINCTRL_PIN(79, "CH3DATA", UNIPHIER_PIN_IECTRL_NONE, |
263 | 73, UNIPHIER_PIN_DRV_4_8, | 261 | 73, UNIPHIER_PIN_DRV_1BIT, |
264 | 73, UNIPHIER_PIN_PULL_DOWN), | 262 | 73, UNIPHIER_PIN_PULL_DOWN), |
265 | UNIPHIER_PINCTRL_PIN(80, "CH4CLK", UNIPHIER_PIN_IECTRL_NONE, | 263 | UNIPHIER_PINCTRL_PIN(80, "CH4CLK", UNIPHIER_PIN_IECTRL_NONE, |
266 | 74, UNIPHIER_PIN_DRV_4_8, | 264 | 74, UNIPHIER_PIN_DRV_1BIT, |
267 | 74, UNIPHIER_PIN_PULL_DOWN), | 265 | 74, UNIPHIER_PIN_PULL_DOWN), |
268 | UNIPHIER_PINCTRL_PIN(81, "CH4VAL", UNIPHIER_PIN_IECTRL_NONE, | 266 | UNIPHIER_PINCTRL_PIN(81, "CH4VAL", UNIPHIER_PIN_IECTRL_NONE, |
269 | 75, UNIPHIER_PIN_DRV_4_8, | 267 | 75, UNIPHIER_PIN_DRV_1BIT, |
270 | 75, UNIPHIER_PIN_PULL_DOWN), | 268 | 75, UNIPHIER_PIN_PULL_DOWN), |
271 | UNIPHIER_PINCTRL_PIN(82, "CH4PSYNC", UNIPHIER_PIN_IECTRL_NONE, | 269 | UNIPHIER_PINCTRL_PIN(82, "CH4PSYNC", UNIPHIER_PIN_IECTRL_NONE, |
272 | 76, UNIPHIER_PIN_DRV_4_8, | 270 | 76, UNIPHIER_PIN_DRV_1BIT, |
273 | 76, UNIPHIER_PIN_PULL_DOWN), | 271 | 76, UNIPHIER_PIN_PULL_DOWN), |
274 | UNIPHIER_PINCTRL_PIN(83, "CH4DATA", UNIPHIER_PIN_IECTRL_NONE, | 272 | UNIPHIER_PINCTRL_PIN(83, "CH4DATA", UNIPHIER_PIN_IECTRL_NONE, |
275 | 77, UNIPHIER_PIN_DRV_4_8, | 273 | 77, UNIPHIER_PIN_DRV_1BIT, |
276 | 77, UNIPHIER_PIN_PULL_DOWN), | 274 | 77, UNIPHIER_PIN_PULL_DOWN), |
277 | UNIPHIER_PINCTRL_PIN(84, "CH5CLK", UNIPHIER_PIN_IECTRL_NONE, | 275 | UNIPHIER_PINCTRL_PIN(84, "CH5CLK", UNIPHIER_PIN_IECTRL_NONE, |
278 | 78, UNIPHIER_PIN_DRV_4_8, | 276 | 78, UNIPHIER_PIN_DRV_1BIT, |
279 | 78, UNIPHIER_PIN_PULL_DOWN), | 277 | 78, UNIPHIER_PIN_PULL_DOWN), |
280 | UNIPHIER_PINCTRL_PIN(85, "CH5VAL", UNIPHIER_PIN_IECTRL_NONE, | 278 | UNIPHIER_PINCTRL_PIN(85, "CH5VAL", UNIPHIER_PIN_IECTRL_NONE, |
281 | 79, UNIPHIER_PIN_DRV_4_8, | 279 | 79, UNIPHIER_PIN_DRV_1BIT, |
282 | 79, UNIPHIER_PIN_PULL_DOWN), | 280 | 79, UNIPHIER_PIN_PULL_DOWN), |
283 | UNIPHIER_PINCTRL_PIN(86, "CH5PSYNC", UNIPHIER_PIN_IECTRL_NONE, | 281 | UNIPHIER_PINCTRL_PIN(86, "CH5PSYNC", UNIPHIER_PIN_IECTRL_NONE, |
284 | 80, UNIPHIER_PIN_DRV_4_8, | 282 | 80, UNIPHIER_PIN_DRV_1BIT, |
285 | 80, UNIPHIER_PIN_PULL_DOWN), | 283 | 80, UNIPHIER_PIN_PULL_DOWN), |
286 | UNIPHIER_PINCTRL_PIN(87, "CH5DATA", UNIPHIER_PIN_IECTRL_NONE, | 284 | UNIPHIER_PINCTRL_PIN(87, "CH5DATA", UNIPHIER_PIN_IECTRL_NONE, |
287 | 81, UNIPHIER_PIN_DRV_4_8, | 285 | 81, UNIPHIER_PIN_DRV_1BIT, |
288 | 81, UNIPHIER_PIN_PULL_DOWN), | 286 | 81, UNIPHIER_PIN_PULL_DOWN), |
289 | UNIPHIER_PINCTRL_PIN(88, "CH6CLK", UNIPHIER_PIN_IECTRL_NONE, | 287 | UNIPHIER_PINCTRL_PIN(88, "CH6CLK", UNIPHIER_PIN_IECTRL_NONE, |
290 | 82, UNIPHIER_PIN_DRV_4_8, | 288 | 82, UNIPHIER_PIN_DRV_1BIT, |
291 | 82, UNIPHIER_PIN_PULL_DOWN), | 289 | 82, UNIPHIER_PIN_PULL_DOWN), |
292 | UNIPHIER_PINCTRL_PIN(89, "CH6VAL", UNIPHIER_PIN_IECTRL_NONE, | 290 | UNIPHIER_PINCTRL_PIN(89, "CH6VAL", UNIPHIER_PIN_IECTRL_NONE, |
293 | 83, UNIPHIER_PIN_DRV_4_8, | 291 | 83, UNIPHIER_PIN_DRV_1BIT, |
294 | 83, UNIPHIER_PIN_PULL_DOWN), | 292 | 83, UNIPHIER_PIN_PULL_DOWN), |
295 | UNIPHIER_PINCTRL_PIN(90, "CH6PSYNC", UNIPHIER_PIN_IECTRL_NONE, | 293 | UNIPHIER_PINCTRL_PIN(90, "CH6PSYNC", UNIPHIER_PIN_IECTRL_NONE, |
296 | 84, UNIPHIER_PIN_DRV_4_8, | 294 | 84, UNIPHIER_PIN_DRV_1BIT, |
297 | 84, UNIPHIER_PIN_PULL_DOWN), | 295 | 84, UNIPHIER_PIN_PULL_DOWN), |
298 | UNIPHIER_PINCTRL_PIN(91, "CH6DATA", UNIPHIER_PIN_IECTRL_NONE, | 296 | UNIPHIER_PINCTRL_PIN(91, "CH6DATA", UNIPHIER_PIN_IECTRL_NONE, |
299 | 85, UNIPHIER_PIN_DRV_4_8, | 297 | 85, UNIPHIER_PIN_DRV_1BIT, |
300 | 85, UNIPHIER_PIN_PULL_DOWN), | 298 | 85, UNIPHIER_PIN_PULL_DOWN), |
301 | UNIPHIER_PINCTRL_PIN(92, "CKFEO", UNIPHIER_PIN_IECTRL_NONE, | 299 | UNIPHIER_PINCTRL_PIN(92, "CKFEO", UNIPHIER_PIN_IECTRL_NONE, |
302 | 86, UNIPHIER_PIN_DRV_4_8, | 300 | 86, UNIPHIER_PIN_DRV_1BIT, |
303 | 86, UNIPHIER_PIN_PULL_DOWN), | 301 | 86, UNIPHIER_PIN_PULL_DOWN), |
304 | UNIPHIER_PINCTRL_PIN(93, "XFERST", UNIPHIER_PIN_IECTRL_NONE, | 302 | UNIPHIER_PINCTRL_PIN(93, "XFERST", UNIPHIER_PIN_IECTRL_NONE, |
305 | 87, UNIPHIER_PIN_DRV_4_8, | 303 | 87, UNIPHIER_PIN_DRV_1BIT, |
306 | 87, UNIPHIER_PIN_PULL_DOWN), | 304 | 87, UNIPHIER_PIN_PULL_DOWN), |
307 | UNIPHIER_PINCTRL_PIN(94, "P_FE_ON", UNIPHIER_PIN_IECTRL_NONE, | 305 | UNIPHIER_PINCTRL_PIN(94, "P_FE_ON", UNIPHIER_PIN_IECTRL_NONE, |
308 | 88, UNIPHIER_PIN_DRV_4_8, | 306 | 88, UNIPHIER_PIN_DRV_1BIT, |
309 | 88, UNIPHIER_PIN_PULL_DOWN), | 307 | 88, UNIPHIER_PIN_PULL_DOWN), |
310 | UNIPHIER_PINCTRL_PIN(95, "P_TU0_ON", UNIPHIER_PIN_IECTRL_NONE, | 308 | UNIPHIER_PINCTRL_PIN(95, "P_TU0_ON", UNIPHIER_PIN_IECTRL_NONE, |
311 | 89, UNIPHIER_PIN_DRV_4_8, | 309 | 89, UNIPHIER_PIN_DRV_1BIT, |
312 | 89, UNIPHIER_PIN_PULL_DOWN), | 310 | 89, UNIPHIER_PIN_PULL_DOWN), |
313 | UNIPHIER_PINCTRL_PIN(96, "XFEIRQ0", UNIPHIER_PIN_IECTRL_NONE, | 311 | UNIPHIER_PINCTRL_PIN(96, "XFEIRQ0", UNIPHIER_PIN_IECTRL_NONE, |
314 | 90, UNIPHIER_PIN_DRV_4_8, | 312 | 90, UNIPHIER_PIN_DRV_1BIT, |
315 | 90, UNIPHIER_PIN_PULL_DOWN), | 313 | 90, UNIPHIER_PIN_PULL_DOWN), |
316 | UNIPHIER_PINCTRL_PIN(97, "XFEIRQ1", UNIPHIER_PIN_IECTRL_NONE, | 314 | UNIPHIER_PINCTRL_PIN(97, "XFEIRQ1", UNIPHIER_PIN_IECTRL_NONE, |
317 | 91, UNIPHIER_PIN_DRV_4_8, | 315 | 91, UNIPHIER_PIN_DRV_1BIT, |
318 | 91, UNIPHIER_PIN_PULL_DOWN), | 316 | 91, UNIPHIER_PIN_PULL_DOWN), |
319 | UNIPHIER_PINCTRL_PIN(98, "XFEIRQ2", UNIPHIER_PIN_IECTRL_NONE, | 317 | UNIPHIER_PINCTRL_PIN(98, "XFEIRQ2", UNIPHIER_PIN_IECTRL_NONE, |
320 | 92, UNIPHIER_PIN_DRV_4_8, | 318 | 92, UNIPHIER_PIN_DRV_1BIT, |
321 | 92, UNIPHIER_PIN_PULL_DOWN), | 319 | 92, UNIPHIER_PIN_PULL_DOWN), |
322 | UNIPHIER_PINCTRL_PIN(99, "XFEIRQ3", UNIPHIER_PIN_IECTRL_NONE, | 320 | UNIPHIER_PINCTRL_PIN(99, "XFEIRQ3", UNIPHIER_PIN_IECTRL_NONE, |
323 | 93, UNIPHIER_PIN_DRV_4_8, | 321 | 93, UNIPHIER_PIN_DRV_1BIT, |
324 | 93, UNIPHIER_PIN_PULL_DOWN), | 322 | 93, UNIPHIER_PIN_PULL_DOWN), |
325 | UNIPHIER_PINCTRL_PIN(100, "XFEIRQ4", UNIPHIER_PIN_IECTRL_NONE, | 323 | UNIPHIER_PINCTRL_PIN(100, "XFEIRQ4", UNIPHIER_PIN_IECTRL_NONE, |
326 | 94, UNIPHIER_PIN_DRV_4_8, | 324 | 94, UNIPHIER_PIN_DRV_1BIT, |
327 | 94, UNIPHIER_PIN_PULL_DOWN), | 325 | 94, UNIPHIER_PIN_PULL_DOWN), |
328 | UNIPHIER_PINCTRL_PIN(101, "XFEIRQ5", UNIPHIER_PIN_IECTRL_NONE, | 326 | UNIPHIER_PINCTRL_PIN(101, "XFEIRQ5", UNIPHIER_PIN_IECTRL_NONE, |
329 | 95, UNIPHIER_PIN_DRV_4_8, | 327 | 95, UNIPHIER_PIN_DRV_1BIT, |
330 | 95, UNIPHIER_PIN_PULL_DOWN), | 328 | 95, UNIPHIER_PIN_PULL_DOWN), |
331 | UNIPHIER_PINCTRL_PIN(102, "XFEIRQ6", UNIPHIER_PIN_IECTRL_NONE, | 329 | UNIPHIER_PINCTRL_PIN(102, "XFEIRQ6", UNIPHIER_PIN_IECTRL_NONE, |
332 | 96, UNIPHIER_PIN_DRV_4_8, | 330 | 96, UNIPHIER_PIN_DRV_1BIT, |
333 | 96, UNIPHIER_PIN_PULL_DOWN), | 331 | 96, UNIPHIER_PIN_PULL_DOWN), |
334 | UNIPHIER_PINCTRL_PIN(103, "SMTCLK0", UNIPHIER_PIN_IECTRL_NONE, | 332 | UNIPHIER_PINCTRL_PIN(103, "SMTCLK0", UNIPHIER_PIN_IECTRL_NONE, |
335 | 97, UNIPHIER_PIN_DRV_4_8, | 333 | 97, UNIPHIER_PIN_DRV_1BIT, |
336 | 97, UNIPHIER_PIN_PULL_DOWN), | 334 | 97, UNIPHIER_PIN_PULL_DOWN), |
337 | UNIPHIER_PINCTRL_PIN(104, "SMTRST0", UNIPHIER_PIN_IECTRL_NONE, | 335 | UNIPHIER_PINCTRL_PIN(104, "SMTRST0", UNIPHIER_PIN_IECTRL_NONE, |
338 | 98, UNIPHIER_PIN_DRV_4_8, | 336 | 98, UNIPHIER_PIN_DRV_1BIT, |
339 | 98, UNIPHIER_PIN_PULL_DOWN), | 337 | 98, UNIPHIER_PIN_PULL_DOWN), |
340 | UNIPHIER_PINCTRL_PIN(105, "SMTCMD0", UNIPHIER_PIN_IECTRL_NONE, | 338 | UNIPHIER_PINCTRL_PIN(105, "SMTCMD0", UNIPHIER_PIN_IECTRL_NONE, |
341 | 99, UNIPHIER_PIN_DRV_4_8, | 339 | 99, UNIPHIER_PIN_DRV_1BIT, |
342 | 99, UNIPHIER_PIN_PULL_UP), | 340 | 99, UNIPHIER_PIN_PULL_UP), |
343 | UNIPHIER_PINCTRL_PIN(106, "SMTD0", UNIPHIER_PIN_IECTRL_NONE, | 341 | UNIPHIER_PINCTRL_PIN(106, "SMTD0", UNIPHIER_PIN_IECTRL_NONE, |
344 | 100, UNIPHIER_PIN_DRV_4_8, | 342 | 100, UNIPHIER_PIN_DRV_1BIT, |
345 | 100, UNIPHIER_PIN_PULL_UP), | 343 | 100, UNIPHIER_PIN_PULL_UP), |
346 | UNIPHIER_PINCTRL_PIN(107, "SMTSEL0", UNIPHIER_PIN_IECTRL_NONE, | 344 | UNIPHIER_PINCTRL_PIN(107, "SMTSEL0", UNIPHIER_PIN_IECTRL_NONE, |
347 | 101, UNIPHIER_PIN_DRV_4_8, | 345 | 101, UNIPHIER_PIN_DRV_1BIT, |
348 | 101, UNIPHIER_PIN_PULL_DOWN), | 346 | 101, UNIPHIER_PIN_PULL_DOWN), |
349 | UNIPHIER_PINCTRL_PIN(108, "SMTDET0", UNIPHIER_PIN_IECTRL_NONE, | 347 | UNIPHIER_PINCTRL_PIN(108, "SMTDET0", UNIPHIER_PIN_IECTRL_NONE, |
350 | 102, UNIPHIER_PIN_DRV_4_8, | 348 | 102, UNIPHIER_PIN_DRV_1BIT, |
351 | 102, UNIPHIER_PIN_PULL_UP), | 349 | 102, UNIPHIER_PIN_PULL_UP), |
352 | UNIPHIER_PINCTRL_PIN(109, "SMTCLK1", UNIPHIER_PIN_IECTRL_NONE, | 350 | UNIPHIER_PINCTRL_PIN(109, "SMTCLK1", UNIPHIER_PIN_IECTRL_NONE, |
353 | 103, UNIPHIER_PIN_DRV_4_8, | 351 | 103, UNIPHIER_PIN_DRV_1BIT, |
354 | 103, UNIPHIER_PIN_PULL_DOWN), | 352 | 103, UNIPHIER_PIN_PULL_DOWN), |
355 | UNIPHIER_PINCTRL_PIN(110, "SMTRST1", UNIPHIER_PIN_IECTRL_NONE, | 353 | UNIPHIER_PINCTRL_PIN(110, "SMTRST1", UNIPHIER_PIN_IECTRL_NONE, |
356 | 104, UNIPHIER_PIN_DRV_4_8, | 354 | 104, UNIPHIER_PIN_DRV_1BIT, |
357 | 104, UNIPHIER_PIN_PULL_DOWN), | 355 | 104, UNIPHIER_PIN_PULL_DOWN), |
358 | UNIPHIER_PINCTRL_PIN(111, "SMTCMD1", UNIPHIER_PIN_IECTRL_NONE, | 356 | UNIPHIER_PINCTRL_PIN(111, "SMTCMD1", UNIPHIER_PIN_IECTRL_NONE, |
359 | 105, UNIPHIER_PIN_DRV_4_8, | 357 | 105, UNIPHIER_PIN_DRV_1BIT, |
360 | 105, UNIPHIER_PIN_PULL_UP), | 358 | 105, UNIPHIER_PIN_PULL_UP), |
361 | UNIPHIER_PINCTRL_PIN(112, "SMTD1", UNIPHIER_PIN_IECTRL_NONE, | 359 | UNIPHIER_PINCTRL_PIN(112, "SMTD1", UNIPHIER_PIN_IECTRL_NONE, |
362 | 106, UNIPHIER_PIN_DRV_4_8, | 360 | 106, UNIPHIER_PIN_DRV_1BIT, |
363 | 106, UNIPHIER_PIN_PULL_UP), | 361 | 106, UNIPHIER_PIN_PULL_UP), |
364 | UNIPHIER_PINCTRL_PIN(113, "SMTSEL1", UNIPHIER_PIN_IECTRL_NONE, | 362 | UNIPHIER_PINCTRL_PIN(113, "SMTSEL1", UNIPHIER_PIN_IECTRL_NONE, |
365 | 107, UNIPHIER_PIN_DRV_4_8, | 363 | 107, UNIPHIER_PIN_DRV_1BIT, |
366 | 107, UNIPHIER_PIN_PULL_DOWN), | 364 | 107, UNIPHIER_PIN_PULL_DOWN), |
367 | UNIPHIER_PINCTRL_PIN(114, "SMTDET1", UNIPHIER_PIN_IECTRL_NONE, | 365 | UNIPHIER_PINCTRL_PIN(114, "SMTDET1", UNIPHIER_PIN_IECTRL_NONE, |
368 | 108, UNIPHIER_PIN_DRV_4_8, | 366 | 108, UNIPHIER_PIN_DRV_1BIT, |
369 | 108, UNIPHIER_PIN_PULL_UP), | 367 | 108, UNIPHIER_PIN_PULL_UP), |
370 | UNIPHIER_PINCTRL_PIN(115, "XINTM", UNIPHIER_PIN_IECTRL_NONE, | 368 | UNIPHIER_PINCTRL_PIN(115, "XINTM", UNIPHIER_PIN_IECTRL_NONE, |
371 | 109, UNIPHIER_PIN_DRV_4_8, | 369 | 109, UNIPHIER_PIN_DRV_1BIT, |
372 | 109, UNIPHIER_PIN_PULL_UP), | 370 | 109, UNIPHIER_PIN_PULL_UP), |
373 | UNIPHIER_PINCTRL_PIN(116, "SCLKM", UNIPHIER_PIN_IECTRL_NONE, | 371 | UNIPHIER_PINCTRL_PIN(116, "SCLKM", UNIPHIER_PIN_IECTRL_NONE, |
374 | 110, UNIPHIER_PIN_DRV_4_8, | 372 | 110, UNIPHIER_PIN_DRV_1BIT, |
375 | 110, UNIPHIER_PIN_PULL_UP), | 373 | 110, UNIPHIER_PIN_PULL_UP), |
376 | UNIPHIER_PINCTRL_PIN(117, "SBMTP", UNIPHIER_PIN_IECTRL_NONE, | 374 | UNIPHIER_PINCTRL_PIN(117, "SBMTP", UNIPHIER_PIN_IECTRL_NONE, |
377 | 111, UNIPHIER_PIN_DRV_4_8, | 375 | 111, UNIPHIER_PIN_DRV_1BIT, |
378 | 111, UNIPHIER_PIN_PULL_UP), | 376 | 111, UNIPHIER_PIN_PULL_UP), |
379 | UNIPHIER_PINCTRL_PIN(118, "SBPTM", UNIPHIER_PIN_IECTRL_NONE, | 377 | UNIPHIER_PINCTRL_PIN(118, "SBPTM", UNIPHIER_PIN_IECTRL_NONE, |
380 | 112, UNIPHIER_PIN_DRV_4_8, | 378 | 112, UNIPHIER_PIN_DRV_1BIT, |
381 | 112, UNIPHIER_PIN_PULL_UP), | 379 | 112, UNIPHIER_PIN_PULL_UP), |
382 | UNIPHIER_PINCTRL_PIN(119, "XMPREQ", UNIPHIER_PIN_IECTRL_NONE, | 380 | UNIPHIER_PINCTRL_PIN(119, "XMPREQ", UNIPHIER_PIN_IECTRL_NONE, |
383 | 113, UNIPHIER_PIN_DRV_4_8, | 381 | 113, UNIPHIER_PIN_DRV_1BIT, |
384 | 113, UNIPHIER_PIN_PULL_UP), | 382 | 113, UNIPHIER_PIN_PULL_UP), |
385 | UNIPHIER_PINCTRL_PIN(120, "XINTP", UNIPHIER_PIN_IECTRL_NONE, | 383 | UNIPHIER_PINCTRL_PIN(120, "XINTP", UNIPHIER_PIN_IECTRL_NONE, |
386 | 114, UNIPHIER_PIN_DRV_4_8, | 384 | 114, UNIPHIER_PIN_DRV_1BIT, |
387 | 114, UNIPHIER_PIN_PULL_UP), | 385 | 114, UNIPHIER_PIN_PULL_UP), |
388 | UNIPHIER_PINCTRL_PIN(121, "LPST", UNIPHIER_PIN_IECTRL_NONE, | 386 | UNIPHIER_PINCTRL_PIN(121, "LPST", UNIPHIER_PIN_IECTRL_NONE, |
389 | 115, UNIPHIER_PIN_DRV_4_8, | 387 | 115, UNIPHIER_PIN_DRV_1BIT, |
390 | 115, UNIPHIER_PIN_PULL_DOWN), | 388 | 115, UNIPHIER_PIN_PULL_DOWN), |
391 | UNIPHIER_PINCTRL_PIN(122, "SDBOOT", UNIPHIER_PIN_IECTRL_NONE, | 389 | UNIPHIER_PINCTRL_PIN(122, "SDBOOT", UNIPHIER_PIN_IECTRL_NONE, |
392 | 116, UNIPHIER_PIN_DRV_4_8, | 390 | 116, UNIPHIER_PIN_DRV_1BIT, |
393 | 116, UNIPHIER_PIN_PULL_UP), | 391 | 116, UNIPHIER_PIN_PULL_UP), |
394 | UNIPHIER_PINCTRL_PIN(123, "BFAIL", UNIPHIER_PIN_IECTRL_NONE, | 392 | UNIPHIER_PINCTRL_PIN(123, "BFAIL", UNIPHIER_PIN_IECTRL_NONE, |
395 | 117, UNIPHIER_PIN_DRV_4_8, | 393 | 117, UNIPHIER_PIN_DRV_1BIT, |
396 | 117, UNIPHIER_PIN_PULL_DOWN), | 394 | 117, UNIPHIER_PIN_PULL_DOWN), |
397 | UNIPHIER_PINCTRL_PIN(124, "XFWE", UNIPHIER_PIN_IECTRL_NONE, | 395 | UNIPHIER_PINCTRL_PIN(124, "XFWE", UNIPHIER_PIN_IECTRL_NONE, |
398 | 118, UNIPHIER_PIN_DRV_4_8, | 396 | 118, UNIPHIER_PIN_DRV_1BIT, |
399 | 118, UNIPHIER_PIN_PULL_UP), | 397 | 118, UNIPHIER_PIN_PULL_UP), |
400 | UNIPHIER_PINCTRL_PIN(125, "RF_COM_RDY", UNIPHIER_PIN_IECTRL_NONE, | 398 | UNIPHIER_PINCTRL_PIN(125, "RF_COM_RDY", UNIPHIER_PIN_IECTRL_NONE, |
401 | 119, UNIPHIER_PIN_DRV_4_8, | 399 | 119, UNIPHIER_PIN_DRV_1BIT, |
402 | 119, UNIPHIER_PIN_PULL_UP), | 400 | 119, UNIPHIER_PIN_PULL_UP), |
403 | UNIPHIER_PINCTRL_PIN(126, "XDIAG0", UNIPHIER_PIN_IECTRL_NONE, | 401 | UNIPHIER_PINCTRL_PIN(126, "XDIAG0", UNIPHIER_PIN_IECTRL_NONE, |
404 | 120, UNIPHIER_PIN_DRV_4_8, | 402 | 120, UNIPHIER_PIN_DRV_1BIT, |
405 | 120, UNIPHIER_PIN_PULL_UP), | 403 | 120, UNIPHIER_PIN_PULL_UP), |
406 | UNIPHIER_PINCTRL_PIN(127, "RXD0", UNIPHIER_PIN_IECTRL_NONE, | 404 | UNIPHIER_PINCTRL_PIN(127, "RXD0", UNIPHIER_PIN_IECTRL_NONE, |
407 | 121, UNIPHIER_PIN_DRV_4_8, | 405 | 121, UNIPHIER_PIN_DRV_1BIT, |
408 | 121, UNIPHIER_PIN_PULL_UP), | 406 | 121, UNIPHIER_PIN_PULL_UP), |
409 | UNIPHIER_PINCTRL_PIN(128, "TXD0", UNIPHIER_PIN_IECTRL_NONE, | 407 | UNIPHIER_PINCTRL_PIN(128, "TXD0", UNIPHIER_PIN_IECTRL_NONE, |
410 | 122, UNIPHIER_PIN_DRV_4_8, | 408 | 122, UNIPHIER_PIN_DRV_1BIT, |
411 | 122, UNIPHIER_PIN_PULL_UP), | 409 | 122, UNIPHIER_PIN_PULL_UP), |
412 | UNIPHIER_PINCTRL_PIN(129, "RXD1", UNIPHIER_PIN_IECTRL_NONE, | 410 | UNIPHIER_PINCTRL_PIN(129, "RXD1", UNIPHIER_PIN_IECTRL_NONE, |
413 | 123, UNIPHIER_PIN_DRV_4_8, | 411 | 123, UNIPHIER_PIN_DRV_1BIT, |
414 | 123, UNIPHIER_PIN_PULL_UP), | 412 | 123, UNIPHIER_PIN_PULL_UP), |
415 | UNIPHIER_PINCTRL_PIN(130, "TXD1", UNIPHIER_PIN_IECTRL_NONE, | 413 | UNIPHIER_PINCTRL_PIN(130, "TXD1", UNIPHIER_PIN_IECTRL_NONE, |
416 | 124, UNIPHIER_PIN_DRV_4_8, | 414 | 124, UNIPHIER_PIN_DRV_1BIT, |
417 | 124, UNIPHIER_PIN_PULL_UP), | 415 | 124, UNIPHIER_PIN_PULL_UP), |
418 | UNIPHIER_PINCTRL_PIN(131, "RXD2", UNIPHIER_PIN_IECTRL_NONE, | 416 | UNIPHIER_PINCTRL_PIN(131, "RXD2", UNIPHIER_PIN_IECTRL_NONE, |
419 | 125, UNIPHIER_PIN_DRV_4_8, | 417 | 125, UNIPHIER_PIN_DRV_1BIT, |
420 | 125, UNIPHIER_PIN_PULL_UP), | 418 | 125, UNIPHIER_PIN_PULL_UP), |
421 | UNIPHIER_PINCTRL_PIN(132, "TXD2", UNIPHIER_PIN_IECTRL_NONE, | 419 | UNIPHIER_PINCTRL_PIN(132, "TXD2", UNIPHIER_PIN_IECTRL_NONE, |
422 | 126, UNIPHIER_PIN_DRV_4_8, | 420 | 126, UNIPHIER_PIN_DRV_1BIT, |
423 | 126, UNIPHIER_PIN_PULL_UP), | 421 | 126, UNIPHIER_PIN_PULL_UP), |
424 | UNIPHIER_PINCTRL_PIN(133, "SS0CS", UNIPHIER_PIN_IECTRL_NONE, | 422 | UNIPHIER_PINCTRL_PIN(133, "SS0CS", UNIPHIER_PIN_IECTRL_NONE, |
425 | 127, UNIPHIER_PIN_DRV_4_8, | 423 | 127, UNIPHIER_PIN_DRV_1BIT, |
426 | 127, UNIPHIER_PIN_PULL_UP), | 424 | 127, UNIPHIER_PIN_PULL_UP), |
427 | UNIPHIER_PINCTRL_PIN(134, "SS0CLK", UNIPHIER_PIN_IECTRL_NONE, | 425 | UNIPHIER_PINCTRL_PIN(134, "SS0CLK", UNIPHIER_PIN_IECTRL_NONE, |
428 | 128, UNIPHIER_PIN_DRV_4_8, | 426 | 128, UNIPHIER_PIN_DRV_1BIT, |
429 | 128, UNIPHIER_PIN_PULL_UP), | 427 | 128, UNIPHIER_PIN_PULL_UP), |
430 | UNIPHIER_PINCTRL_PIN(135, "SS0DO", UNIPHIER_PIN_IECTRL_NONE, | 428 | UNIPHIER_PINCTRL_PIN(135, "SS0DO", UNIPHIER_PIN_IECTRL_NONE, |
431 | 129, UNIPHIER_PIN_DRV_4_8, | 429 | 129, UNIPHIER_PIN_DRV_1BIT, |
432 | 129, UNIPHIER_PIN_PULL_UP), | 430 | 129, UNIPHIER_PIN_PULL_UP), |
433 | UNIPHIER_PINCTRL_PIN(136, "SS0DI", UNIPHIER_PIN_IECTRL_NONE, | 431 | UNIPHIER_PINCTRL_PIN(136, "SS0DI", UNIPHIER_PIN_IECTRL_NONE, |
434 | 130, UNIPHIER_PIN_DRV_4_8, | 432 | 130, UNIPHIER_PIN_DRV_1BIT, |
435 | 130, UNIPHIER_PIN_PULL_UP), | 433 | 130, UNIPHIER_PIN_PULL_UP), |
436 | UNIPHIER_PINCTRL_PIN(137, "MS0CS0", UNIPHIER_PIN_IECTRL_NONE, | 434 | UNIPHIER_PINCTRL_PIN(137, "MS0CS0", UNIPHIER_PIN_IECTRL_NONE, |
437 | 131, UNIPHIER_PIN_DRV_4_8, | 435 | 131, UNIPHIER_PIN_DRV_1BIT, |
438 | 131, UNIPHIER_PIN_PULL_UP), | 436 | 131, UNIPHIER_PIN_PULL_UP), |
439 | UNIPHIER_PINCTRL_PIN(138, "MS0CLK", UNIPHIER_PIN_IECTRL_NONE, | 437 | UNIPHIER_PINCTRL_PIN(138, "MS0CLK", UNIPHIER_PIN_IECTRL_NONE, |
440 | 132, UNIPHIER_PIN_DRV_4_8, | 438 | 132, UNIPHIER_PIN_DRV_1BIT, |
441 | 132, UNIPHIER_PIN_PULL_UP), | 439 | 132, UNIPHIER_PIN_PULL_UP), |
442 | UNIPHIER_PINCTRL_PIN(139, "MS0DI", UNIPHIER_PIN_IECTRL_NONE, | 440 | UNIPHIER_PINCTRL_PIN(139, "MS0DI", UNIPHIER_PIN_IECTRL_NONE, |
443 | 133, UNIPHIER_PIN_DRV_4_8, | 441 | 133, UNIPHIER_PIN_DRV_1BIT, |
444 | 133, UNIPHIER_PIN_PULL_UP), | 442 | 133, UNIPHIER_PIN_PULL_UP), |
445 | UNIPHIER_PINCTRL_PIN(140, "MS0DO", UNIPHIER_PIN_IECTRL_NONE, | 443 | UNIPHIER_PINCTRL_PIN(140, "MS0DO", UNIPHIER_PIN_IECTRL_NONE, |
446 | 134, UNIPHIER_PIN_DRV_4_8, | 444 | 134, UNIPHIER_PIN_DRV_1BIT, |
447 | 134, UNIPHIER_PIN_PULL_UP), | 445 | 134, UNIPHIER_PIN_PULL_UP), |
448 | UNIPHIER_PINCTRL_PIN(141, "XMDMRST", UNIPHIER_PIN_IECTRL_NONE, | 446 | UNIPHIER_PINCTRL_PIN(141, "XMDMRST", UNIPHIER_PIN_IECTRL_NONE, |
449 | 135, UNIPHIER_PIN_DRV_4_8, | 447 | 135, UNIPHIER_PIN_DRV_1BIT, |
450 | 135, UNIPHIER_PIN_PULL_DOWN), | 448 | 135, UNIPHIER_PIN_PULL_DOWN), |
451 | UNIPHIER_PINCTRL_PIN(142, "SCL0", UNIPHIER_PIN_IECTRL_NONE, | 449 | UNIPHIER_PINCTRL_PIN(142, "SCL0", UNIPHIER_PIN_IECTRL_NONE, |
452 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 450 | -1, UNIPHIER_PIN_DRV_FIXED4, |
453 | -1, UNIPHIER_PIN_PULL_NONE), | 451 | -1, UNIPHIER_PIN_PULL_NONE), |
454 | UNIPHIER_PINCTRL_PIN(143, "SDA0", UNIPHIER_PIN_IECTRL_NONE, | 452 | UNIPHIER_PINCTRL_PIN(143, "SDA0", UNIPHIER_PIN_IECTRL_NONE, |
455 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 453 | -1, UNIPHIER_PIN_DRV_FIXED4, |
456 | -1, UNIPHIER_PIN_PULL_NONE), | 454 | -1, UNIPHIER_PIN_PULL_NONE), |
457 | UNIPHIER_PINCTRL_PIN(144, "SCL1", UNIPHIER_PIN_IECTRL_NONE, | 455 | UNIPHIER_PINCTRL_PIN(144, "SCL1", UNIPHIER_PIN_IECTRL_NONE, |
458 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 456 | -1, UNIPHIER_PIN_DRV_FIXED4, |
459 | -1, UNIPHIER_PIN_PULL_NONE), | 457 | -1, UNIPHIER_PIN_PULL_NONE), |
460 | UNIPHIER_PINCTRL_PIN(145, "SDA1", UNIPHIER_PIN_IECTRL_NONE, | 458 | UNIPHIER_PINCTRL_PIN(145, "SDA1", UNIPHIER_PIN_IECTRL_NONE, |
461 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 459 | -1, UNIPHIER_PIN_DRV_FIXED4, |
462 | -1, UNIPHIER_PIN_PULL_NONE), | 460 | -1, UNIPHIER_PIN_PULL_NONE), |
463 | UNIPHIER_PINCTRL_PIN(146, "SCL2", UNIPHIER_PIN_IECTRL_NONE, | 461 | UNIPHIER_PINCTRL_PIN(146, "SCL2", UNIPHIER_PIN_IECTRL_NONE, |
464 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 462 | -1, UNIPHIER_PIN_DRV_FIXED4, |
465 | -1, UNIPHIER_PIN_PULL_NONE), | 463 | -1, UNIPHIER_PIN_PULL_NONE), |
466 | UNIPHIER_PINCTRL_PIN(147, "SDA2", UNIPHIER_PIN_IECTRL_NONE, | 464 | UNIPHIER_PINCTRL_PIN(147, "SDA2", UNIPHIER_PIN_IECTRL_NONE, |
467 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 465 | -1, UNIPHIER_PIN_DRV_FIXED4, |
468 | -1, UNIPHIER_PIN_PULL_NONE), | 466 | -1, UNIPHIER_PIN_PULL_NONE), |
469 | UNIPHIER_PINCTRL_PIN(148, "SCL3", UNIPHIER_PIN_IECTRL_NONE, | 467 | UNIPHIER_PINCTRL_PIN(148, "SCL3", UNIPHIER_PIN_IECTRL_NONE, |
470 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 468 | -1, UNIPHIER_PIN_DRV_FIXED4, |
471 | -1, UNIPHIER_PIN_PULL_NONE), | 469 | -1, UNIPHIER_PIN_PULL_NONE), |
472 | UNIPHIER_PINCTRL_PIN(149, "SDA3", UNIPHIER_PIN_IECTRL_NONE, | 470 | UNIPHIER_PINCTRL_PIN(149, "SDA3", UNIPHIER_PIN_IECTRL_NONE, |
473 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 471 | -1, UNIPHIER_PIN_DRV_FIXED4, |
474 | -1, UNIPHIER_PIN_PULL_NONE), | 472 | -1, UNIPHIER_PIN_PULL_NONE), |
475 | UNIPHIER_PINCTRL_PIN(150, "SD0DAT0", UNIPHIER_PIN_IECTRL_NONE, | 473 | UNIPHIER_PINCTRL_PIN(150, "SD0DAT0", UNIPHIER_PIN_IECTRL_NONE, |
476 | 12, UNIPHIER_PIN_DRV_8_12_16_20, | 474 | 12, UNIPHIER_PIN_DRV_2BIT, |
477 | 136, UNIPHIER_PIN_PULL_UP), | 475 | 136, UNIPHIER_PIN_PULL_UP), |
478 | UNIPHIER_PINCTRL_PIN(151, "SD0DAT1", UNIPHIER_PIN_IECTRL_NONE, | 476 | UNIPHIER_PINCTRL_PIN(151, "SD0DAT1", UNIPHIER_PIN_IECTRL_NONE, |
479 | 13, UNIPHIER_PIN_DRV_8_12_16_20, | 477 | 13, UNIPHIER_PIN_DRV_2BIT, |
480 | 137, UNIPHIER_PIN_PULL_UP), | 478 | 137, UNIPHIER_PIN_PULL_UP), |
481 | UNIPHIER_PINCTRL_PIN(152, "SD0DAT2", UNIPHIER_PIN_IECTRL_NONE, | 479 | UNIPHIER_PINCTRL_PIN(152, "SD0DAT2", UNIPHIER_PIN_IECTRL_NONE, |
482 | 14, UNIPHIER_PIN_DRV_8_12_16_20, | 480 | 14, UNIPHIER_PIN_DRV_2BIT, |
483 | 138, UNIPHIER_PIN_PULL_UP), | 481 | 138, UNIPHIER_PIN_PULL_UP), |
484 | UNIPHIER_PINCTRL_PIN(153, "SD0DAT3", UNIPHIER_PIN_IECTRL_NONE, | 482 | UNIPHIER_PINCTRL_PIN(153, "SD0DAT3", UNIPHIER_PIN_IECTRL_NONE, |
485 | 15, UNIPHIER_PIN_DRV_8_12_16_20, | 483 | 15, UNIPHIER_PIN_DRV_2BIT, |
486 | 139, UNIPHIER_PIN_PULL_UP), | 484 | 139, UNIPHIER_PIN_PULL_UP), |
487 | UNIPHIER_PINCTRL_PIN(154, "SD0CMD", UNIPHIER_PIN_IECTRL_NONE, | 485 | UNIPHIER_PINCTRL_PIN(154, "SD0CMD", UNIPHIER_PIN_IECTRL_NONE, |
488 | 11, UNIPHIER_PIN_DRV_8_12_16_20, | 486 | 11, UNIPHIER_PIN_DRV_2BIT, |
489 | 141, UNIPHIER_PIN_PULL_UP), | 487 | 141, UNIPHIER_PIN_PULL_UP), |
490 | UNIPHIER_PINCTRL_PIN(155, "SD0CLK", UNIPHIER_PIN_IECTRL_NONE, | 488 | UNIPHIER_PINCTRL_PIN(155, "SD0CLK", UNIPHIER_PIN_IECTRL_NONE, |
491 | 10, UNIPHIER_PIN_DRV_8_12_16_20, | 489 | 10, UNIPHIER_PIN_DRV_2BIT, |
492 | 140, UNIPHIER_PIN_PULL_UP), | 490 | 140, UNIPHIER_PIN_PULL_UP), |
493 | UNIPHIER_PINCTRL_PIN(156, "SD0CD", UNIPHIER_PIN_IECTRL_NONE, | 491 | UNIPHIER_PINCTRL_PIN(156, "SD0CD", UNIPHIER_PIN_IECTRL_NONE, |
494 | 142, UNIPHIER_PIN_DRV_4_8, | 492 | 142, UNIPHIER_PIN_DRV_1BIT, |
495 | 142, UNIPHIER_PIN_PULL_UP), | 493 | 142, UNIPHIER_PIN_PULL_UP), |
496 | UNIPHIER_PINCTRL_PIN(157, "SD0WP", UNIPHIER_PIN_IECTRL_NONE, | 494 | UNIPHIER_PINCTRL_PIN(157, "SD0WP", UNIPHIER_PIN_IECTRL_NONE, |
497 | 143, UNIPHIER_PIN_DRV_4_8, | 495 | 143, UNIPHIER_PIN_DRV_1BIT, |
498 | 143, UNIPHIER_PIN_PULL_UP), | 496 | 143, UNIPHIER_PIN_PULL_UP), |
499 | UNIPHIER_PINCTRL_PIN(158, "SD0VTCG", UNIPHIER_PIN_IECTRL_NONE, | 497 | UNIPHIER_PINCTRL_PIN(158, "SD0VTCG", UNIPHIER_PIN_IECTRL_NONE, |
500 | 144, UNIPHIER_PIN_DRV_4_8, | 498 | 144, UNIPHIER_PIN_DRV_1BIT, |
501 | 144, UNIPHIER_PIN_PULL_UP), | 499 | 144, UNIPHIER_PIN_PULL_UP), |
502 | UNIPHIER_PINCTRL_PIN(159, "CK25O", UNIPHIER_PIN_IECTRL_NONE, | 500 | UNIPHIER_PINCTRL_PIN(159, "CK25O", UNIPHIER_PIN_IECTRL_NONE, |
503 | 145, UNIPHIER_PIN_DRV_4_8, | 501 | 145, UNIPHIER_PIN_DRV_1BIT, |
504 | 145, UNIPHIER_PIN_PULL_UP), | 502 | 145, UNIPHIER_PIN_PULL_UP), |
505 | UNIPHIER_PINCTRL_PIN(160, "RGMII_TXCLK", 6, | 503 | UNIPHIER_PINCTRL_PIN(160, "RGMII_TXCLK", 6, |
506 | 146, UNIPHIER_PIN_DRV_4_8, | 504 | 146, UNIPHIER_PIN_DRV_1BIT, |
507 | 146, UNIPHIER_PIN_PULL_DOWN), | 505 | 146, UNIPHIER_PIN_PULL_DOWN), |
508 | UNIPHIER_PINCTRL_PIN(161, "RGMII_TXD0", 6, | 506 | UNIPHIER_PINCTRL_PIN(161, "RGMII_TXD0", 6, |
509 | 147, UNIPHIER_PIN_DRV_4_8, | 507 | 147, UNIPHIER_PIN_DRV_1BIT, |
510 | 147, UNIPHIER_PIN_PULL_DOWN), | 508 | 147, UNIPHIER_PIN_PULL_DOWN), |
511 | UNIPHIER_PINCTRL_PIN(162, "RGMII_TXD1", 6, | 509 | UNIPHIER_PINCTRL_PIN(162, "RGMII_TXD1", 6, |
512 | 148, UNIPHIER_PIN_DRV_4_8, | 510 | 148, UNIPHIER_PIN_DRV_1BIT, |
513 | 148, UNIPHIER_PIN_PULL_DOWN), | 511 | 148, UNIPHIER_PIN_PULL_DOWN), |
514 | UNIPHIER_PINCTRL_PIN(163, "RGMII_TXD2", 6, | 512 | UNIPHIER_PINCTRL_PIN(163, "RGMII_TXD2", 6, |
515 | 149, UNIPHIER_PIN_DRV_4_8, | 513 | 149, UNIPHIER_PIN_DRV_1BIT, |
516 | 149, UNIPHIER_PIN_PULL_DOWN), | 514 | 149, UNIPHIER_PIN_PULL_DOWN), |
517 | UNIPHIER_PINCTRL_PIN(164, "RGMII_TXD3", 6, | 515 | UNIPHIER_PINCTRL_PIN(164, "RGMII_TXD3", 6, |
518 | 150, UNIPHIER_PIN_DRV_4_8, | 516 | 150, UNIPHIER_PIN_DRV_1BIT, |
519 | 150, UNIPHIER_PIN_PULL_DOWN), | 517 | 150, UNIPHIER_PIN_PULL_DOWN), |
520 | UNIPHIER_PINCTRL_PIN(165, "RGMII_TXCTL", 6, | 518 | UNIPHIER_PINCTRL_PIN(165, "RGMII_TXCTL", 6, |
521 | 151, UNIPHIER_PIN_DRV_4_8, | 519 | 151, UNIPHIER_PIN_DRV_1BIT, |
522 | 151, UNIPHIER_PIN_PULL_DOWN), | 520 | 151, UNIPHIER_PIN_PULL_DOWN), |
523 | UNIPHIER_PINCTRL_PIN(166, "MII_TXER", UNIPHIER_PIN_IECTRL_NONE, | 521 | UNIPHIER_PINCTRL_PIN(166, "MII_TXER", UNIPHIER_PIN_IECTRL_NONE, |
524 | 152, UNIPHIER_PIN_DRV_4_8, | 522 | 152, UNIPHIER_PIN_DRV_1BIT, |
525 | 152, UNIPHIER_PIN_PULL_DOWN), | 523 | 152, UNIPHIER_PIN_PULL_DOWN), |
526 | UNIPHIER_PINCTRL_PIN(167, "RGMII_RXCLK", 6, | 524 | UNIPHIER_PINCTRL_PIN(167, "RGMII_RXCLK", 6, |
527 | 153, UNIPHIER_PIN_DRV_4_8, | 525 | 153, UNIPHIER_PIN_DRV_1BIT, |
528 | 153, UNIPHIER_PIN_PULL_DOWN), | 526 | 153, UNIPHIER_PIN_PULL_DOWN), |
529 | UNIPHIER_PINCTRL_PIN(168, "RGMII_RXD0", 6, | 527 | UNIPHIER_PINCTRL_PIN(168, "RGMII_RXD0", 6, |
530 | 154, UNIPHIER_PIN_DRV_4_8, | 528 | 154, UNIPHIER_PIN_DRV_1BIT, |
531 | 154, UNIPHIER_PIN_PULL_DOWN), | 529 | 154, UNIPHIER_PIN_PULL_DOWN), |
532 | UNIPHIER_PINCTRL_PIN(169, "RGMII_RXD1", 6, | 530 | UNIPHIER_PINCTRL_PIN(169, "RGMII_RXD1", 6, |
533 | 155, UNIPHIER_PIN_DRV_4_8, | 531 | 155, UNIPHIER_PIN_DRV_1BIT, |
534 | 155, UNIPHIER_PIN_PULL_DOWN), | 532 | 155, UNIPHIER_PIN_PULL_DOWN), |
535 | UNIPHIER_PINCTRL_PIN(170, "RGMII_RXD2", 6, | 533 | UNIPHIER_PINCTRL_PIN(170, "RGMII_RXD2", 6, |
536 | 156, UNIPHIER_PIN_DRV_4_8, | 534 | 156, UNIPHIER_PIN_DRV_1BIT, |
537 | 156, UNIPHIER_PIN_PULL_DOWN), | 535 | 156, UNIPHIER_PIN_PULL_DOWN), |
538 | UNIPHIER_PINCTRL_PIN(171, "RGMII_RXD3", 6, | 536 | UNIPHIER_PINCTRL_PIN(171, "RGMII_RXD3", 6, |
539 | 157, UNIPHIER_PIN_DRV_4_8, | 537 | 157, UNIPHIER_PIN_DRV_1BIT, |
540 | 157, UNIPHIER_PIN_PULL_DOWN), | 538 | 157, UNIPHIER_PIN_PULL_DOWN), |
541 | UNIPHIER_PINCTRL_PIN(172, "RGMII_RXCTL", 6, | 539 | UNIPHIER_PINCTRL_PIN(172, "RGMII_RXCTL", 6, |
542 | 158, UNIPHIER_PIN_DRV_4_8, | 540 | 158, UNIPHIER_PIN_DRV_1BIT, |
543 | 158, UNIPHIER_PIN_PULL_DOWN), | 541 | 158, UNIPHIER_PIN_PULL_DOWN), |
544 | UNIPHIER_PINCTRL_PIN(173, "MII_RXER", 6, | 542 | UNIPHIER_PINCTRL_PIN(173, "MII_RXER", 6, |
545 | 159, UNIPHIER_PIN_DRV_4_8, | 543 | 159, UNIPHIER_PIN_DRV_1BIT, |
546 | 159, UNIPHIER_PIN_PULL_DOWN), | 544 | 159, UNIPHIER_PIN_PULL_DOWN), |
547 | UNIPHIER_PINCTRL_PIN(174, "MII_CRS", 6, | 545 | UNIPHIER_PINCTRL_PIN(174, "MII_CRS", 6, |
548 | 160, UNIPHIER_PIN_DRV_4_8, | 546 | 160, UNIPHIER_PIN_DRV_1BIT, |
549 | 160, UNIPHIER_PIN_PULL_DOWN), | 547 | 160, UNIPHIER_PIN_PULL_DOWN), |
550 | UNIPHIER_PINCTRL_PIN(175, "MII_COL", 6, | 548 | UNIPHIER_PINCTRL_PIN(175, "MII_COL", 6, |
551 | 161, UNIPHIER_PIN_DRV_4_8, | 549 | 161, UNIPHIER_PIN_DRV_1BIT, |
552 | 161, UNIPHIER_PIN_PULL_DOWN), | 550 | 161, UNIPHIER_PIN_PULL_DOWN), |
553 | UNIPHIER_PINCTRL_PIN(176, "MDC", 6, | 551 | UNIPHIER_PINCTRL_PIN(176, "MDC", 6, |
554 | 162, UNIPHIER_PIN_DRV_4_8, | 552 | 162, UNIPHIER_PIN_DRV_1BIT, |
555 | 162, UNIPHIER_PIN_PULL_UP), | 553 | 162, UNIPHIER_PIN_PULL_UP), |
556 | UNIPHIER_PINCTRL_PIN(177, "MDIO", 6, | 554 | UNIPHIER_PINCTRL_PIN(177, "MDIO", 6, |
557 | 163, UNIPHIER_PIN_DRV_4_8, | 555 | 163, UNIPHIER_PIN_DRV_1BIT, |
558 | 163, UNIPHIER_PIN_PULL_UP), | 556 | 163, UNIPHIER_PIN_PULL_UP), |
559 | UNIPHIER_PINCTRL_PIN(178, "MDIO_INTL", 6, | 557 | UNIPHIER_PINCTRL_PIN(178, "MDIO_INTL", 6, |
560 | 164, UNIPHIER_PIN_DRV_4_8, | 558 | 164, UNIPHIER_PIN_DRV_1BIT, |
561 | 164, UNIPHIER_PIN_PULL_UP), | 559 | 164, UNIPHIER_PIN_PULL_UP), |
562 | UNIPHIER_PINCTRL_PIN(179, "XETH_RST", 6, | 560 | UNIPHIER_PINCTRL_PIN(179, "XETH_RST", 6, |
563 | 165, UNIPHIER_PIN_DRV_4_8, | 561 | 165, UNIPHIER_PIN_DRV_1BIT, |
564 | 165, UNIPHIER_PIN_PULL_DOWN), | 562 | 165, UNIPHIER_PIN_PULL_DOWN), |
565 | UNIPHIER_PINCTRL_PIN(180, "USB0VBUS", UNIPHIER_PIN_IECTRL_NONE, | 563 | UNIPHIER_PINCTRL_PIN(180, "USB0VBUS", UNIPHIER_PIN_IECTRL_NONE, |
566 | 166, UNIPHIER_PIN_DRV_4_8, | 564 | 166, UNIPHIER_PIN_DRV_1BIT, |
567 | 166, UNIPHIER_PIN_PULL_DOWN), | 565 | 166, UNIPHIER_PIN_PULL_DOWN), |
568 | UNIPHIER_PINCTRL_PIN(181, "USB0OD", UNIPHIER_PIN_IECTRL_NONE, | 566 | UNIPHIER_PINCTRL_PIN(181, "USB0OD", UNIPHIER_PIN_IECTRL_NONE, |
569 | 167, UNIPHIER_PIN_DRV_4_8, | 567 | 167, UNIPHIER_PIN_DRV_1BIT, |
570 | 167, UNIPHIER_PIN_PULL_UP), | 568 | 167, UNIPHIER_PIN_PULL_UP), |
571 | UNIPHIER_PINCTRL_PIN(182, "USB1VBUS", UNIPHIER_PIN_IECTRL_NONE, | 569 | UNIPHIER_PINCTRL_PIN(182, "USB1VBUS", UNIPHIER_PIN_IECTRL_NONE, |
572 | 168, UNIPHIER_PIN_DRV_4_8, | 570 | 168, UNIPHIER_PIN_DRV_1BIT, |
573 | 168, UNIPHIER_PIN_PULL_DOWN), | 571 | 168, UNIPHIER_PIN_PULL_DOWN), |
574 | UNIPHIER_PINCTRL_PIN(183, "USB1OD", UNIPHIER_PIN_IECTRL_NONE, | 572 | UNIPHIER_PINCTRL_PIN(183, "USB1OD", UNIPHIER_PIN_IECTRL_NONE, |
575 | 169, UNIPHIER_PIN_DRV_4_8, | 573 | 169, UNIPHIER_PIN_DRV_1BIT, |
576 | 169, UNIPHIER_PIN_PULL_UP), | 574 | 169, UNIPHIER_PIN_PULL_UP), |
577 | UNIPHIER_PINCTRL_PIN(184, "USB2VBUS", UNIPHIER_PIN_IECTRL_NONE, | 575 | UNIPHIER_PINCTRL_PIN(184, "USB2VBUS", UNIPHIER_PIN_IECTRL_NONE, |
578 | 170, UNIPHIER_PIN_DRV_4_8, | 576 | 170, UNIPHIER_PIN_DRV_1BIT, |
579 | 170, UNIPHIER_PIN_PULL_DOWN), | 577 | 170, UNIPHIER_PIN_PULL_DOWN), |
580 | UNIPHIER_PINCTRL_PIN(185, "USB2OD", UNIPHIER_PIN_IECTRL_NONE, | 578 | UNIPHIER_PINCTRL_PIN(185, "USB2OD", UNIPHIER_PIN_IECTRL_NONE, |
581 | 171, UNIPHIER_PIN_DRV_4_8, | 579 | 171, UNIPHIER_PIN_DRV_1BIT, |
582 | 171, UNIPHIER_PIN_PULL_UP), | 580 | 171, UNIPHIER_PIN_PULL_UP), |
583 | UNIPHIER_PINCTRL_PIN(186, "USB2ID", UNIPHIER_PIN_IECTRL_NONE, | 581 | UNIPHIER_PINCTRL_PIN(186, "USB2ID", UNIPHIER_PIN_IECTRL_NONE, |
584 | 172, UNIPHIER_PIN_DRV_4_8, | 582 | 172, UNIPHIER_PIN_DRV_1BIT, |
585 | 172, UNIPHIER_PIN_PULL_UP), | 583 | 172, UNIPHIER_PIN_PULL_UP), |
586 | UNIPHIER_PINCTRL_PIN(187, "USB3VBUS", UNIPHIER_PIN_IECTRL_NONE, | 584 | UNIPHIER_PINCTRL_PIN(187, "USB3VBUS", UNIPHIER_PIN_IECTRL_NONE, |
587 | 173, UNIPHIER_PIN_DRV_4_8, | 585 | 173, UNIPHIER_PIN_DRV_1BIT, |
588 | 173, UNIPHIER_PIN_PULL_DOWN), | 586 | 173, UNIPHIER_PIN_PULL_DOWN), |
589 | UNIPHIER_PINCTRL_PIN(188, "USB3OD", UNIPHIER_PIN_IECTRL_NONE, | 587 | UNIPHIER_PINCTRL_PIN(188, "USB3OD", UNIPHIER_PIN_IECTRL_NONE, |
590 | 174, UNIPHIER_PIN_DRV_4_8, | 588 | 174, UNIPHIER_PIN_DRV_1BIT, |
591 | 174, UNIPHIER_PIN_PULL_UP), | 589 | 174, UNIPHIER_PIN_PULL_UP), |
592 | UNIPHIER_PINCTRL_PIN(189, "LINKCLK", UNIPHIER_PIN_IECTRL_NONE, | 590 | UNIPHIER_PINCTRL_PIN(189, "LINKCLK", UNIPHIER_PIN_IECTRL_NONE, |
593 | 175, UNIPHIER_PIN_DRV_4_8, | 591 | 175, UNIPHIER_PIN_DRV_1BIT, |
594 | 175, UNIPHIER_PIN_PULL_DOWN), | 592 | 175, UNIPHIER_PIN_PULL_DOWN), |
595 | UNIPHIER_PINCTRL_PIN(190, "LINKREQ", UNIPHIER_PIN_IECTRL_NONE, | 593 | UNIPHIER_PINCTRL_PIN(190, "LINKREQ", UNIPHIER_PIN_IECTRL_NONE, |
596 | 176, UNIPHIER_PIN_DRV_4_8, | 594 | 176, UNIPHIER_PIN_DRV_1BIT, |
597 | 176, UNIPHIER_PIN_PULL_DOWN), | 595 | 176, UNIPHIER_PIN_PULL_DOWN), |
598 | UNIPHIER_PINCTRL_PIN(191, "LINKCTL0", UNIPHIER_PIN_IECTRL_NONE, | 596 | UNIPHIER_PINCTRL_PIN(191, "LINKCTL0", UNIPHIER_PIN_IECTRL_NONE, |
599 | 177, UNIPHIER_PIN_DRV_4_8, | 597 | 177, UNIPHIER_PIN_DRV_1BIT, |
600 | 177, UNIPHIER_PIN_PULL_DOWN), | 598 | 177, UNIPHIER_PIN_PULL_DOWN), |
601 | UNIPHIER_PINCTRL_PIN(192, "LINKCTL1", UNIPHIER_PIN_IECTRL_NONE, | 599 | UNIPHIER_PINCTRL_PIN(192, "LINKCTL1", UNIPHIER_PIN_IECTRL_NONE, |
602 | 178, UNIPHIER_PIN_DRV_4_8, | 600 | 178, UNIPHIER_PIN_DRV_1BIT, |
603 | 178, UNIPHIER_PIN_PULL_DOWN), | 601 | 178, UNIPHIER_PIN_PULL_DOWN), |
604 | UNIPHIER_PINCTRL_PIN(193, "LINKDT0", UNIPHIER_PIN_IECTRL_NONE, | 602 | UNIPHIER_PINCTRL_PIN(193, "LINKDT0", UNIPHIER_PIN_IECTRL_NONE, |
605 | 179, UNIPHIER_PIN_DRV_4_8, | 603 | 179, UNIPHIER_PIN_DRV_1BIT, |
606 | 179, UNIPHIER_PIN_PULL_DOWN), | 604 | 179, UNIPHIER_PIN_PULL_DOWN), |
607 | UNIPHIER_PINCTRL_PIN(194, "LINKDT1", UNIPHIER_PIN_IECTRL_NONE, | 605 | UNIPHIER_PINCTRL_PIN(194, "LINKDT1", UNIPHIER_PIN_IECTRL_NONE, |
608 | 180, UNIPHIER_PIN_DRV_4_8, | 606 | 180, UNIPHIER_PIN_DRV_1BIT, |
609 | 180, UNIPHIER_PIN_PULL_DOWN), | 607 | 180, UNIPHIER_PIN_PULL_DOWN), |
610 | UNIPHIER_PINCTRL_PIN(195, "LINKDT2", UNIPHIER_PIN_IECTRL_NONE, | 608 | UNIPHIER_PINCTRL_PIN(195, "LINKDT2", UNIPHIER_PIN_IECTRL_NONE, |
611 | 181, UNIPHIER_PIN_DRV_4_8, | 609 | 181, UNIPHIER_PIN_DRV_1BIT, |
612 | 181, UNIPHIER_PIN_PULL_DOWN), | 610 | 181, UNIPHIER_PIN_PULL_DOWN), |
613 | UNIPHIER_PINCTRL_PIN(196, "LINKDT3", UNIPHIER_PIN_IECTRL_NONE, | 611 | UNIPHIER_PINCTRL_PIN(196, "LINKDT3", UNIPHIER_PIN_IECTRL_NONE, |
614 | 182, UNIPHIER_PIN_DRV_4_8, | 612 | 182, UNIPHIER_PIN_DRV_1BIT, |
615 | 182, UNIPHIER_PIN_PULL_DOWN), | 613 | 182, UNIPHIER_PIN_PULL_DOWN), |
616 | UNIPHIER_PINCTRL_PIN(197, "LINKDT4", UNIPHIER_PIN_IECTRL_NONE, | 614 | UNIPHIER_PINCTRL_PIN(197, "LINKDT4", UNIPHIER_PIN_IECTRL_NONE, |
617 | 183, UNIPHIER_PIN_DRV_4_8, | 615 | 183, UNIPHIER_PIN_DRV_1BIT, |
618 | 183, UNIPHIER_PIN_PULL_DOWN), | 616 | 183, UNIPHIER_PIN_PULL_DOWN), |
619 | UNIPHIER_PINCTRL_PIN(198, "LINKDT5", UNIPHIER_PIN_IECTRL_NONE, | 617 | UNIPHIER_PINCTRL_PIN(198, "LINKDT5", UNIPHIER_PIN_IECTRL_NONE, |
620 | 184, UNIPHIER_PIN_DRV_4_8, | 618 | 184, UNIPHIER_PIN_DRV_1BIT, |
621 | 184, UNIPHIER_PIN_PULL_DOWN), | 619 | 184, UNIPHIER_PIN_PULL_DOWN), |
622 | UNIPHIER_PINCTRL_PIN(199, "LINKDT6", UNIPHIER_PIN_IECTRL_NONE, | 620 | UNIPHIER_PINCTRL_PIN(199, "LINKDT6", UNIPHIER_PIN_IECTRL_NONE, |
623 | 185, UNIPHIER_PIN_DRV_4_8, | 621 | 185, UNIPHIER_PIN_DRV_1BIT, |
624 | 185, UNIPHIER_PIN_PULL_DOWN), | 622 | 185, UNIPHIER_PIN_PULL_DOWN), |
625 | UNIPHIER_PINCTRL_PIN(200, "LINKDT7", UNIPHIER_PIN_IECTRL_NONE, | 623 | UNIPHIER_PINCTRL_PIN(200, "LINKDT7", UNIPHIER_PIN_IECTRL_NONE, |
626 | 186, UNIPHIER_PIN_DRV_4_8, | 624 | 186, UNIPHIER_PIN_DRV_1BIT, |
627 | 186, UNIPHIER_PIN_PULL_DOWN), | 625 | 186, UNIPHIER_PIN_PULL_DOWN), |
628 | UNIPHIER_PINCTRL_PIN(201, "CKDVO", UNIPHIER_PIN_IECTRL_NONE, | 626 | UNIPHIER_PINCTRL_PIN(201, "CKDVO", UNIPHIER_PIN_IECTRL_NONE, |
629 | 187, UNIPHIER_PIN_DRV_4_8, | 627 | 187, UNIPHIER_PIN_DRV_1BIT, |
630 | 187, UNIPHIER_PIN_PULL_DOWN), | 628 | 187, UNIPHIER_PIN_PULL_DOWN), |
631 | UNIPHIER_PINCTRL_PIN(202, "PHY_PD", UNIPHIER_PIN_IECTRL_NONE, | 629 | UNIPHIER_PINCTRL_PIN(202, "PHY_PD", UNIPHIER_PIN_IECTRL_NONE, |
632 | 188, UNIPHIER_PIN_DRV_4_8, | 630 | 188, UNIPHIER_PIN_DRV_1BIT, |
633 | 188, UNIPHIER_PIN_PULL_DOWN), | 631 | 188, UNIPHIER_PIN_PULL_DOWN), |
634 | UNIPHIER_PINCTRL_PIN(203, "X1394_RST", UNIPHIER_PIN_IECTRL_NONE, | 632 | UNIPHIER_PINCTRL_PIN(203, "X1394_RST", UNIPHIER_PIN_IECTRL_NONE, |
635 | 189, UNIPHIER_PIN_DRV_4_8, | 633 | 189, UNIPHIER_PIN_DRV_1BIT, |
636 | 189, UNIPHIER_PIN_PULL_DOWN), | 634 | 189, UNIPHIER_PIN_PULL_DOWN), |
637 | UNIPHIER_PINCTRL_PIN(204, "VOUT_MUTE_L", UNIPHIER_PIN_IECTRL_NONE, | 635 | UNIPHIER_PINCTRL_PIN(204, "VOUT_MUTE_L", UNIPHIER_PIN_IECTRL_NONE, |
638 | 190, UNIPHIER_PIN_DRV_4_8, | 636 | 190, UNIPHIER_PIN_DRV_1BIT, |
639 | 190, UNIPHIER_PIN_PULL_DOWN), | 637 | 190, UNIPHIER_PIN_PULL_DOWN), |
640 | UNIPHIER_PINCTRL_PIN(205, "CLK54O", UNIPHIER_PIN_IECTRL_NONE, | 638 | UNIPHIER_PINCTRL_PIN(205, "CLK54O", UNIPHIER_PIN_IECTRL_NONE, |
641 | 191, UNIPHIER_PIN_DRV_4_8, | 639 | 191, UNIPHIER_PIN_DRV_1BIT, |
642 | 191, UNIPHIER_PIN_PULL_DOWN), | 640 | 191, UNIPHIER_PIN_PULL_DOWN), |
643 | UNIPHIER_PINCTRL_PIN(206, "CLK54I", UNIPHIER_PIN_IECTRL_NONE, | 641 | UNIPHIER_PINCTRL_PIN(206, "CLK54I", UNIPHIER_PIN_IECTRL_NONE, |
644 | 192, UNIPHIER_PIN_DRV_NONE, | 642 | -1, UNIPHIER_PIN_DRV_NONE, |
645 | 192, UNIPHIER_PIN_PULL_DOWN), | 643 | 192, UNIPHIER_PIN_PULL_DOWN), |
646 | UNIPHIER_PINCTRL_PIN(207, "YIN0", UNIPHIER_PIN_IECTRL_NONE, | 644 | UNIPHIER_PINCTRL_PIN(207, "YIN0", UNIPHIER_PIN_IECTRL_NONE, |
647 | 193, UNIPHIER_PIN_DRV_4_8, | 645 | 193, UNIPHIER_PIN_DRV_1BIT, |
648 | 193, UNIPHIER_PIN_PULL_DOWN), | 646 | 193, UNIPHIER_PIN_PULL_DOWN), |
649 | UNIPHIER_PINCTRL_PIN(208, "YIN1", UNIPHIER_PIN_IECTRL_NONE, | 647 | UNIPHIER_PINCTRL_PIN(208, "YIN1", UNIPHIER_PIN_IECTRL_NONE, |
650 | 194, UNIPHIER_PIN_DRV_4_8, | 648 | 194, UNIPHIER_PIN_DRV_1BIT, |
651 | 194, UNIPHIER_PIN_PULL_DOWN), | 649 | 194, UNIPHIER_PIN_PULL_DOWN), |
652 | UNIPHIER_PINCTRL_PIN(209, "YIN2", UNIPHIER_PIN_IECTRL_NONE, | 650 | UNIPHIER_PINCTRL_PIN(209, "YIN2", UNIPHIER_PIN_IECTRL_NONE, |
653 | 195, UNIPHIER_PIN_DRV_4_8, | 651 | 195, UNIPHIER_PIN_DRV_1BIT, |
654 | 195, UNIPHIER_PIN_PULL_DOWN), | 652 | 195, UNIPHIER_PIN_PULL_DOWN), |
655 | UNIPHIER_PINCTRL_PIN(210, "YIN3", UNIPHIER_PIN_IECTRL_NONE, | 653 | UNIPHIER_PINCTRL_PIN(210, "YIN3", UNIPHIER_PIN_IECTRL_NONE, |
656 | 196, UNIPHIER_PIN_DRV_4_8, | 654 | 196, UNIPHIER_PIN_DRV_1BIT, |
657 | 196, UNIPHIER_PIN_PULL_DOWN), | 655 | 196, UNIPHIER_PIN_PULL_DOWN), |
658 | UNIPHIER_PINCTRL_PIN(211, "YIN4", UNIPHIER_PIN_IECTRL_NONE, | 656 | UNIPHIER_PINCTRL_PIN(211, "YIN4", UNIPHIER_PIN_IECTRL_NONE, |
659 | 197, UNIPHIER_PIN_DRV_4_8, | 657 | 197, UNIPHIER_PIN_DRV_1BIT, |
660 | 197, UNIPHIER_PIN_PULL_DOWN), | 658 | 197, UNIPHIER_PIN_PULL_DOWN), |
661 | UNIPHIER_PINCTRL_PIN(212, "YIN5", UNIPHIER_PIN_IECTRL_NONE, | 659 | UNIPHIER_PINCTRL_PIN(212, "YIN5", UNIPHIER_PIN_IECTRL_NONE, |
662 | 198, UNIPHIER_PIN_DRV_4_8, | 660 | 198, UNIPHIER_PIN_DRV_1BIT, |
663 | 198, UNIPHIER_PIN_PULL_DOWN), | 661 | 198, UNIPHIER_PIN_PULL_DOWN), |
664 | UNIPHIER_PINCTRL_PIN(213, "CIN0", UNIPHIER_PIN_IECTRL_NONE, | 662 | UNIPHIER_PINCTRL_PIN(213, "CIN0", UNIPHIER_PIN_IECTRL_NONE, |
665 | 199, UNIPHIER_PIN_DRV_4_8, | 663 | 199, UNIPHIER_PIN_DRV_1BIT, |
666 | 199, UNIPHIER_PIN_PULL_DOWN), | 664 | 199, UNIPHIER_PIN_PULL_DOWN), |
667 | UNIPHIER_PINCTRL_PIN(214, "CIN1", UNIPHIER_PIN_IECTRL_NONE, | 665 | UNIPHIER_PINCTRL_PIN(214, "CIN1", UNIPHIER_PIN_IECTRL_NONE, |
668 | 200, UNIPHIER_PIN_DRV_4_8, | 666 | 200, UNIPHIER_PIN_DRV_1BIT, |
669 | 200, UNIPHIER_PIN_PULL_DOWN), | 667 | 200, UNIPHIER_PIN_PULL_DOWN), |
670 | UNIPHIER_PINCTRL_PIN(215, "CIN2", UNIPHIER_PIN_IECTRL_NONE, | 668 | UNIPHIER_PINCTRL_PIN(215, "CIN2", UNIPHIER_PIN_IECTRL_NONE, |
671 | 201, UNIPHIER_PIN_DRV_4_8, | 669 | 201, UNIPHIER_PIN_DRV_1BIT, |
672 | 201, UNIPHIER_PIN_PULL_DOWN), | 670 | 201, UNIPHIER_PIN_PULL_DOWN), |
673 | UNIPHIER_PINCTRL_PIN(216, "CIN3", UNIPHIER_PIN_IECTRL_NONE, | 671 | UNIPHIER_PINCTRL_PIN(216, "CIN3", UNIPHIER_PIN_IECTRL_NONE, |
674 | 202, UNIPHIER_PIN_DRV_4_8, | 672 | 202, UNIPHIER_PIN_DRV_1BIT, |
675 | 202, UNIPHIER_PIN_PULL_DOWN), | 673 | 202, UNIPHIER_PIN_PULL_DOWN), |
676 | UNIPHIER_PINCTRL_PIN(217, "CIN4", UNIPHIER_PIN_IECTRL_NONE, | 674 | UNIPHIER_PINCTRL_PIN(217, "CIN4", UNIPHIER_PIN_IECTRL_NONE, |
677 | 203, UNIPHIER_PIN_DRV_4_8, | 675 | 203, UNIPHIER_PIN_DRV_1BIT, |
678 | 203, UNIPHIER_PIN_PULL_DOWN), | 676 | 203, UNIPHIER_PIN_PULL_DOWN), |
679 | UNIPHIER_PINCTRL_PIN(218, "CIN5", UNIPHIER_PIN_IECTRL_NONE, | 677 | UNIPHIER_PINCTRL_PIN(218, "CIN5", UNIPHIER_PIN_IECTRL_NONE, |
680 | 204, UNIPHIER_PIN_DRV_4_8, | 678 | 204, UNIPHIER_PIN_DRV_1BIT, |
681 | 204, UNIPHIER_PIN_PULL_DOWN), | 679 | 204, UNIPHIER_PIN_PULL_DOWN), |
682 | UNIPHIER_PINCTRL_PIN(219, "GCP", UNIPHIER_PIN_IECTRL_NONE, | 680 | UNIPHIER_PINCTRL_PIN(219, "GCP", UNIPHIER_PIN_IECTRL_NONE, |
683 | 205, UNIPHIER_PIN_DRV_4_8, | 681 | 205, UNIPHIER_PIN_DRV_1BIT, |
684 | 205, UNIPHIER_PIN_PULL_DOWN), | 682 | 205, UNIPHIER_PIN_PULL_DOWN), |
685 | UNIPHIER_PINCTRL_PIN(220, "ADFLG", UNIPHIER_PIN_IECTRL_NONE, | 683 | UNIPHIER_PINCTRL_PIN(220, "ADFLG", UNIPHIER_PIN_IECTRL_NONE, |
686 | 206, UNIPHIER_PIN_DRV_4_8, | 684 | 206, UNIPHIER_PIN_DRV_1BIT, |
687 | 206, UNIPHIER_PIN_PULL_DOWN), | 685 | 206, UNIPHIER_PIN_PULL_DOWN), |
688 | UNIPHIER_PINCTRL_PIN(221, "CK27AIOF", UNIPHIER_PIN_IECTRL_NONE, | 686 | UNIPHIER_PINCTRL_PIN(221, "CK27AIOF", UNIPHIER_PIN_IECTRL_NONE, |
689 | 207, UNIPHIER_PIN_DRV_4_8, | 687 | 207, UNIPHIER_PIN_DRV_1BIT, |
690 | 207, UNIPHIER_PIN_PULL_DOWN), | 688 | 207, UNIPHIER_PIN_PULL_DOWN), |
691 | UNIPHIER_PINCTRL_PIN(222, "DACOUT", UNIPHIER_PIN_IECTRL_NONE, | 689 | UNIPHIER_PINCTRL_PIN(222, "DACOUT", UNIPHIER_PIN_IECTRL_NONE, |
692 | 208, UNIPHIER_PIN_DRV_4_8, | 690 | 208, UNIPHIER_PIN_DRV_1BIT, |
693 | 208, UNIPHIER_PIN_PULL_DOWN), | 691 | 208, UNIPHIER_PIN_PULL_DOWN), |
694 | UNIPHIER_PINCTRL_PIN(223, "DAFLG", UNIPHIER_PIN_IECTRL_NONE, | 692 | UNIPHIER_PINCTRL_PIN(223, "DAFLG", UNIPHIER_PIN_IECTRL_NONE, |
695 | 209, UNIPHIER_PIN_DRV_4_8, | 693 | 209, UNIPHIER_PIN_DRV_1BIT, |
696 | 209, UNIPHIER_PIN_PULL_DOWN), | 694 | 209, UNIPHIER_PIN_PULL_DOWN), |
697 | UNIPHIER_PINCTRL_PIN(224, "VBIH", UNIPHIER_PIN_IECTRL_NONE, | 695 | UNIPHIER_PINCTRL_PIN(224, "VBIH", UNIPHIER_PIN_IECTRL_NONE, |
698 | 210, UNIPHIER_PIN_DRV_4_8, | 696 | 210, UNIPHIER_PIN_DRV_1BIT, |
699 | 210, UNIPHIER_PIN_PULL_DOWN), | 697 | 210, UNIPHIER_PIN_PULL_DOWN), |
700 | UNIPHIER_PINCTRL_PIN(225, "VBIL", UNIPHIER_PIN_IECTRL_NONE, | 698 | UNIPHIER_PINCTRL_PIN(225, "VBIL", UNIPHIER_PIN_IECTRL_NONE, |
701 | 211, UNIPHIER_PIN_DRV_4_8, | 699 | 211, UNIPHIER_PIN_DRV_1BIT, |
702 | 211, UNIPHIER_PIN_PULL_DOWN), | 700 | 211, UNIPHIER_PIN_PULL_DOWN), |
703 | UNIPHIER_PINCTRL_PIN(226, "XSUB_RST", UNIPHIER_PIN_IECTRL_NONE, | 701 | UNIPHIER_PINCTRL_PIN(226, "XSUB_RST", UNIPHIER_PIN_IECTRL_NONE, |
704 | 212, UNIPHIER_PIN_DRV_4_8, | 702 | 212, UNIPHIER_PIN_DRV_1BIT, |
705 | 212, UNIPHIER_PIN_PULL_DOWN), | 703 | 212, UNIPHIER_PIN_PULL_DOWN), |
706 | UNIPHIER_PINCTRL_PIN(227, "XADC_PD", UNIPHIER_PIN_IECTRL_NONE, | 704 | UNIPHIER_PINCTRL_PIN(227, "XADC_PD", UNIPHIER_PIN_IECTRL_NONE, |
707 | 213, UNIPHIER_PIN_DRV_4_8, | 705 | 213, UNIPHIER_PIN_DRV_1BIT, |
708 | 213, UNIPHIER_PIN_PULL_DOWN), | 706 | 213, UNIPHIER_PIN_PULL_DOWN), |
709 | UNIPHIER_PINCTRL_PIN(228, "AI1ADCCK", UNIPHIER_PIN_IECTRL_NONE, | 707 | UNIPHIER_PINCTRL_PIN(228, "AI1ADCCK", UNIPHIER_PIN_IECTRL_NONE, |
710 | 214, UNIPHIER_PIN_DRV_4_8, | 708 | 214, UNIPHIER_PIN_DRV_1BIT, |
711 | 214, UNIPHIER_PIN_PULL_DOWN), | 709 | 214, UNIPHIER_PIN_PULL_DOWN), |
712 | UNIPHIER_PINCTRL_PIN(229, "AI1BCK", UNIPHIER_PIN_IECTRL_NONE, | 710 | UNIPHIER_PINCTRL_PIN(229, "AI1BCK", UNIPHIER_PIN_IECTRL_NONE, |
713 | 215, UNIPHIER_PIN_DRV_4_8, | 711 | 215, UNIPHIER_PIN_DRV_1BIT, |
714 | 215, UNIPHIER_PIN_PULL_DOWN), | 712 | 215, UNIPHIER_PIN_PULL_DOWN), |
715 | UNIPHIER_PINCTRL_PIN(230, "AI1LRCK", UNIPHIER_PIN_IECTRL_NONE, | 713 | UNIPHIER_PINCTRL_PIN(230, "AI1LRCK", UNIPHIER_PIN_IECTRL_NONE, |
716 | 216, UNIPHIER_PIN_DRV_4_8, | 714 | 216, UNIPHIER_PIN_DRV_1BIT, |
717 | 216, UNIPHIER_PIN_PULL_DOWN), | 715 | 216, UNIPHIER_PIN_PULL_DOWN), |
718 | UNIPHIER_PINCTRL_PIN(231, "AI1DMIX", UNIPHIER_PIN_IECTRL_NONE, | 716 | UNIPHIER_PINCTRL_PIN(231, "AI1DMIX", UNIPHIER_PIN_IECTRL_NONE, |
719 | 217, UNIPHIER_PIN_DRV_4_8, | 717 | 217, UNIPHIER_PIN_DRV_1BIT, |
720 | 217, UNIPHIER_PIN_PULL_DOWN), | 718 | 217, UNIPHIER_PIN_PULL_DOWN), |
721 | UNIPHIER_PINCTRL_PIN(232, "CK27HD", UNIPHIER_PIN_IECTRL_NONE, | 719 | UNIPHIER_PINCTRL_PIN(232, "CK27HD", UNIPHIER_PIN_IECTRL_NONE, |
722 | 218, UNIPHIER_PIN_DRV_4_8, | 720 | 218, UNIPHIER_PIN_DRV_1BIT, |
723 | 218, UNIPHIER_PIN_PULL_DOWN), | 721 | 218, UNIPHIER_PIN_PULL_DOWN), |
724 | UNIPHIER_PINCTRL_PIN(233, "XHD_RST", UNIPHIER_PIN_IECTRL_NONE, | 722 | UNIPHIER_PINCTRL_PIN(233, "XHD_RST", UNIPHIER_PIN_IECTRL_NONE, |
725 | 219, UNIPHIER_PIN_DRV_4_8, | 723 | 219, UNIPHIER_PIN_DRV_1BIT, |
726 | 219, UNIPHIER_PIN_PULL_DOWN), | 724 | 219, UNIPHIER_PIN_PULL_DOWN), |
727 | UNIPHIER_PINCTRL_PIN(234, "INTHD", UNIPHIER_PIN_IECTRL_NONE, | 725 | UNIPHIER_PINCTRL_PIN(234, "INTHD", UNIPHIER_PIN_IECTRL_NONE, |
728 | 220, UNIPHIER_PIN_DRV_4_8, | 726 | 220, UNIPHIER_PIN_DRV_1BIT, |
729 | 220, UNIPHIER_PIN_PULL_UP), | 727 | 220, UNIPHIER_PIN_PULL_UP), |
730 | UNIPHIER_PINCTRL_PIN(235, "VO1HDCK", UNIPHIER_PIN_IECTRL_NONE, | 728 | UNIPHIER_PINCTRL_PIN(235, "VO1HDCK", UNIPHIER_PIN_IECTRL_NONE, |
731 | 221, UNIPHIER_PIN_DRV_4_8, | 729 | 221, UNIPHIER_PIN_DRV_1BIT, |
732 | 221, UNIPHIER_PIN_PULL_DOWN), | 730 | 221, UNIPHIER_PIN_PULL_DOWN), |
733 | UNIPHIER_PINCTRL_PIN(236, "VO1HSYNC", UNIPHIER_PIN_IECTRL_NONE, | 731 | UNIPHIER_PINCTRL_PIN(236, "VO1HSYNC", UNIPHIER_PIN_IECTRL_NONE, |
734 | 222, UNIPHIER_PIN_DRV_4_8, | 732 | 222, UNIPHIER_PIN_DRV_1BIT, |
735 | 222, UNIPHIER_PIN_PULL_DOWN), | 733 | 222, UNIPHIER_PIN_PULL_DOWN), |
736 | UNIPHIER_PINCTRL_PIN(237, "VO1VSYNC", UNIPHIER_PIN_IECTRL_NONE, | 734 | UNIPHIER_PINCTRL_PIN(237, "VO1VSYNC", UNIPHIER_PIN_IECTRL_NONE, |
737 | 223, UNIPHIER_PIN_DRV_4_8, | 735 | 223, UNIPHIER_PIN_DRV_1BIT, |
738 | 223, UNIPHIER_PIN_PULL_DOWN), | 736 | 223, UNIPHIER_PIN_PULL_DOWN), |
739 | UNIPHIER_PINCTRL_PIN(238, "VO1DE", UNIPHIER_PIN_IECTRL_NONE, | 737 | UNIPHIER_PINCTRL_PIN(238, "VO1DE", UNIPHIER_PIN_IECTRL_NONE, |
740 | 224, UNIPHIER_PIN_DRV_4_8, | 738 | 224, UNIPHIER_PIN_DRV_1BIT, |
741 | 224, UNIPHIER_PIN_PULL_DOWN), | 739 | 224, UNIPHIER_PIN_PULL_DOWN), |
742 | UNIPHIER_PINCTRL_PIN(239, "VO1Y0", UNIPHIER_PIN_IECTRL_NONE, | 740 | UNIPHIER_PINCTRL_PIN(239, "VO1Y0", UNIPHIER_PIN_IECTRL_NONE, |
743 | 225, UNIPHIER_PIN_DRV_4_8, | 741 | 225, UNIPHIER_PIN_DRV_1BIT, |
744 | 225, UNIPHIER_PIN_PULL_DOWN), | 742 | 225, UNIPHIER_PIN_PULL_DOWN), |
745 | UNIPHIER_PINCTRL_PIN(240, "VO1Y1", UNIPHIER_PIN_IECTRL_NONE, | 743 | UNIPHIER_PINCTRL_PIN(240, "VO1Y1", UNIPHIER_PIN_IECTRL_NONE, |
746 | 226, UNIPHIER_PIN_DRV_4_8, | 744 | 226, UNIPHIER_PIN_DRV_1BIT, |
747 | 226, UNIPHIER_PIN_PULL_DOWN), | 745 | 226, UNIPHIER_PIN_PULL_DOWN), |
748 | UNIPHIER_PINCTRL_PIN(241, "VO1Y2", UNIPHIER_PIN_IECTRL_NONE, | 746 | UNIPHIER_PINCTRL_PIN(241, "VO1Y2", UNIPHIER_PIN_IECTRL_NONE, |
749 | 227, UNIPHIER_PIN_DRV_4_8, | 747 | 227, UNIPHIER_PIN_DRV_1BIT, |
750 | 227, UNIPHIER_PIN_PULL_DOWN), | 748 | 227, UNIPHIER_PIN_PULL_DOWN), |
751 | UNIPHIER_PINCTRL_PIN(242, "VO1Y3", UNIPHIER_PIN_IECTRL_NONE, | 749 | UNIPHIER_PINCTRL_PIN(242, "VO1Y3", UNIPHIER_PIN_IECTRL_NONE, |
752 | 228, UNIPHIER_PIN_DRV_4_8, | 750 | 228, UNIPHIER_PIN_DRV_1BIT, |
753 | 228, UNIPHIER_PIN_PULL_DOWN), | 751 | 228, UNIPHIER_PIN_PULL_DOWN), |
754 | UNIPHIER_PINCTRL_PIN(243, "VO1Y4", UNIPHIER_PIN_IECTRL_NONE, | 752 | UNIPHIER_PINCTRL_PIN(243, "VO1Y4", UNIPHIER_PIN_IECTRL_NONE, |
755 | 229, UNIPHIER_PIN_DRV_4_8, | 753 | 229, UNIPHIER_PIN_DRV_1BIT, |
756 | 229, UNIPHIER_PIN_PULL_DOWN), | 754 | 229, UNIPHIER_PIN_PULL_DOWN), |
757 | UNIPHIER_PINCTRL_PIN(244, "VO1Y5", UNIPHIER_PIN_IECTRL_NONE, | 755 | UNIPHIER_PINCTRL_PIN(244, "VO1Y5", UNIPHIER_PIN_IECTRL_NONE, |
758 | 230, UNIPHIER_PIN_DRV_4_8, | 756 | 230, UNIPHIER_PIN_DRV_1BIT, |
759 | 230, UNIPHIER_PIN_PULL_DOWN), | 757 | 230, UNIPHIER_PIN_PULL_DOWN), |
760 | UNIPHIER_PINCTRL_PIN(245, "VO1Y6", UNIPHIER_PIN_IECTRL_NONE, | 758 | UNIPHIER_PINCTRL_PIN(245, "VO1Y6", UNIPHIER_PIN_IECTRL_NONE, |
761 | 231, UNIPHIER_PIN_DRV_4_8, | 759 | 231, UNIPHIER_PIN_DRV_1BIT, |
762 | 231, UNIPHIER_PIN_PULL_DOWN), | 760 | 231, UNIPHIER_PIN_PULL_DOWN), |
763 | UNIPHIER_PINCTRL_PIN(246, "VO1Y7", UNIPHIER_PIN_IECTRL_NONE, | 761 | UNIPHIER_PINCTRL_PIN(246, "VO1Y7", UNIPHIER_PIN_IECTRL_NONE, |
764 | 232, UNIPHIER_PIN_DRV_4_8, | 762 | 232, UNIPHIER_PIN_DRV_1BIT, |
765 | 232, UNIPHIER_PIN_PULL_DOWN), | 763 | 232, UNIPHIER_PIN_PULL_DOWN), |
766 | UNIPHIER_PINCTRL_PIN(247, "VO1Y8", UNIPHIER_PIN_IECTRL_NONE, | 764 | UNIPHIER_PINCTRL_PIN(247, "VO1Y8", UNIPHIER_PIN_IECTRL_NONE, |
767 | 233, UNIPHIER_PIN_DRV_4_8, | 765 | 233, UNIPHIER_PIN_DRV_1BIT, |
768 | 233, UNIPHIER_PIN_PULL_DOWN), | 766 | 233, UNIPHIER_PIN_PULL_DOWN), |
769 | UNIPHIER_PINCTRL_PIN(248, "VO1Y9", UNIPHIER_PIN_IECTRL_NONE, | 767 | UNIPHIER_PINCTRL_PIN(248, "VO1Y9", UNIPHIER_PIN_IECTRL_NONE, |
770 | 234, UNIPHIER_PIN_DRV_4_8, | 768 | 234, UNIPHIER_PIN_DRV_1BIT, |
771 | 234, UNIPHIER_PIN_PULL_DOWN), | 769 | 234, UNIPHIER_PIN_PULL_DOWN), |
772 | UNIPHIER_PINCTRL_PIN(249, "VO1Y10", UNIPHIER_PIN_IECTRL_NONE, | 770 | UNIPHIER_PINCTRL_PIN(249, "VO1Y10", UNIPHIER_PIN_IECTRL_NONE, |
773 | 235, UNIPHIER_PIN_DRV_4_8, | 771 | 235, UNIPHIER_PIN_DRV_1BIT, |
774 | 235, UNIPHIER_PIN_PULL_DOWN), | 772 | 235, UNIPHIER_PIN_PULL_DOWN), |
775 | UNIPHIER_PINCTRL_PIN(250, "VO1Y11", UNIPHIER_PIN_IECTRL_NONE, | 773 | UNIPHIER_PINCTRL_PIN(250, "VO1Y11", UNIPHIER_PIN_IECTRL_NONE, |
776 | 236, UNIPHIER_PIN_DRV_4_8, | 774 | 236, UNIPHIER_PIN_DRV_1BIT, |
777 | 236, UNIPHIER_PIN_PULL_DOWN), | 775 | 236, UNIPHIER_PIN_PULL_DOWN), |
778 | UNIPHIER_PINCTRL_PIN(251, "VO1CB0", UNIPHIER_PIN_IECTRL_NONE, | 776 | UNIPHIER_PINCTRL_PIN(251, "VO1CB0", UNIPHIER_PIN_IECTRL_NONE, |
779 | 237, UNIPHIER_PIN_DRV_4_8, | 777 | 237, UNIPHIER_PIN_DRV_1BIT, |
780 | 237, UNIPHIER_PIN_PULL_DOWN), | 778 | 237, UNIPHIER_PIN_PULL_DOWN), |
781 | UNIPHIER_PINCTRL_PIN(252, "VO1CB1", UNIPHIER_PIN_IECTRL_NONE, | 779 | UNIPHIER_PINCTRL_PIN(252, "VO1CB1", UNIPHIER_PIN_IECTRL_NONE, |
782 | 238, UNIPHIER_PIN_DRV_4_8, | 780 | 238, UNIPHIER_PIN_DRV_1BIT, |
783 | 238, UNIPHIER_PIN_PULL_DOWN), | 781 | 238, UNIPHIER_PIN_PULL_DOWN), |
784 | UNIPHIER_PINCTRL_PIN(253, "VO1CB2", UNIPHIER_PIN_IECTRL_NONE, | 782 | UNIPHIER_PINCTRL_PIN(253, "VO1CB2", UNIPHIER_PIN_IECTRL_NONE, |
785 | 239, UNIPHIER_PIN_DRV_4_8, | 783 | 239, UNIPHIER_PIN_DRV_1BIT, |
786 | 239, UNIPHIER_PIN_PULL_DOWN), | 784 | 239, UNIPHIER_PIN_PULL_DOWN), |
787 | UNIPHIER_PINCTRL_PIN(254, "VO1CB3", UNIPHIER_PIN_IECTRL_NONE, | 785 | UNIPHIER_PINCTRL_PIN(254, "VO1CB3", UNIPHIER_PIN_IECTRL_NONE, |
788 | 240, UNIPHIER_PIN_DRV_4_8, | 786 | 240, UNIPHIER_PIN_DRV_1BIT, |
789 | 240, UNIPHIER_PIN_PULL_DOWN), | 787 | 240, UNIPHIER_PIN_PULL_DOWN), |
790 | UNIPHIER_PINCTRL_PIN(255, "VO1CB4", UNIPHIER_PIN_IECTRL_NONE, | 788 | UNIPHIER_PINCTRL_PIN(255, "VO1CB4", UNIPHIER_PIN_IECTRL_NONE, |
791 | 241, UNIPHIER_PIN_DRV_4_8, | 789 | 241, UNIPHIER_PIN_DRV_1BIT, |
792 | 241, UNIPHIER_PIN_PULL_DOWN), | 790 | 241, UNIPHIER_PIN_PULL_DOWN), |
793 | UNIPHIER_PINCTRL_PIN(256, "VO1CB5", UNIPHIER_PIN_IECTRL_NONE, | 791 | UNIPHIER_PINCTRL_PIN(256, "VO1CB5", UNIPHIER_PIN_IECTRL_NONE, |
794 | 242, UNIPHIER_PIN_DRV_4_8, | 792 | 242, UNIPHIER_PIN_DRV_1BIT, |
795 | 242, UNIPHIER_PIN_PULL_DOWN), | 793 | 242, UNIPHIER_PIN_PULL_DOWN), |
796 | UNIPHIER_PINCTRL_PIN(257, "VO1CB6", UNIPHIER_PIN_IECTRL_NONE, | 794 | UNIPHIER_PINCTRL_PIN(257, "VO1CB6", UNIPHIER_PIN_IECTRL_NONE, |
797 | 243, UNIPHIER_PIN_DRV_4_8, | 795 | 243, UNIPHIER_PIN_DRV_1BIT, |
798 | 243, UNIPHIER_PIN_PULL_DOWN), | 796 | 243, UNIPHIER_PIN_PULL_DOWN), |
799 | UNIPHIER_PINCTRL_PIN(258, "VO1CB7", UNIPHIER_PIN_IECTRL_NONE, | 797 | UNIPHIER_PINCTRL_PIN(258, "VO1CB7", UNIPHIER_PIN_IECTRL_NONE, |
800 | 244, UNIPHIER_PIN_DRV_4_8, | 798 | 244, UNIPHIER_PIN_DRV_1BIT, |
801 | 244, UNIPHIER_PIN_PULL_DOWN), | 799 | 244, UNIPHIER_PIN_PULL_DOWN), |
802 | UNIPHIER_PINCTRL_PIN(259, "VO1CB8", UNIPHIER_PIN_IECTRL_NONE, | 800 | UNIPHIER_PINCTRL_PIN(259, "VO1CB8", UNIPHIER_PIN_IECTRL_NONE, |
803 | 245, UNIPHIER_PIN_DRV_4_8, | 801 | 245, UNIPHIER_PIN_DRV_1BIT, |
804 | 245, UNIPHIER_PIN_PULL_DOWN), | 802 | 245, UNIPHIER_PIN_PULL_DOWN), |
805 | UNIPHIER_PINCTRL_PIN(260, "VO1CB9", UNIPHIER_PIN_IECTRL_NONE, | 803 | UNIPHIER_PINCTRL_PIN(260, "VO1CB9", UNIPHIER_PIN_IECTRL_NONE, |
806 | 246, UNIPHIER_PIN_DRV_4_8, | 804 | 246, UNIPHIER_PIN_DRV_1BIT, |
807 | 246, UNIPHIER_PIN_PULL_DOWN), | 805 | 246, UNIPHIER_PIN_PULL_DOWN), |
808 | UNIPHIER_PINCTRL_PIN(261, "VO1CB10", UNIPHIER_PIN_IECTRL_NONE, | 806 | UNIPHIER_PINCTRL_PIN(261, "VO1CB10", UNIPHIER_PIN_IECTRL_NONE, |
809 | 247, UNIPHIER_PIN_DRV_4_8, | 807 | 247, UNIPHIER_PIN_DRV_1BIT, |
810 | 247, UNIPHIER_PIN_PULL_DOWN), | 808 | 247, UNIPHIER_PIN_PULL_DOWN), |
811 | UNIPHIER_PINCTRL_PIN(262, "VO1CB11", UNIPHIER_PIN_IECTRL_NONE, | 809 | UNIPHIER_PINCTRL_PIN(262, "VO1CB11", UNIPHIER_PIN_IECTRL_NONE, |
812 | 248, UNIPHIER_PIN_DRV_4_8, | 810 | 248, UNIPHIER_PIN_DRV_1BIT, |
813 | 248, UNIPHIER_PIN_PULL_DOWN), | 811 | 248, UNIPHIER_PIN_PULL_DOWN), |
814 | UNIPHIER_PINCTRL_PIN(263, "VO1CR0", UNIPHIER_PIN_IECTRL_NONE, | 812 | UNIPHIER_PINCTRL_PIN(263, "VO1CR0", UNIPHIER_PIN_IECTRL_NONE, |
815 | 249, UNIPHIER_PIN_DRV_4_8, | 813 | 249, UNIPHIER_PIN_DRV_1BIT, |
816 | 249, UNIPHIER_PIN_PULL_DOWN), | 814 | 249, UNIPHIER_PIN_PULL_DOWN), |
817 | UNIPHIER_PINCTRL_PIN(264, "VO1CR1", UNIPHIER_PIN_IECTRL_NONE, | 815 | UNIPHIER_PINCTRL_PIN(264, "VO1CR1", UNIPHIER_PIN_IECTRL_NONE, |
818 | 250, UNIPHIER_PIN_DRV_4_8, | 816 | 250, UNIPHIER_PIN_DRV_1BIT, |
819 | 250, UNIPHIER_PIN_PULL_DOWN), | 817 | 250, UNIPHIER_PIN_PULL_DOWN), |
820 | UNIPHIER_PINCTRL_PIN(265, "VO1CR2", UNIPHIER_PIN_IECTRL_NONE, | 818 | UNIPHIER_PINCTRL_PIN(265, "VO1CR2", UNIPHIER_PIN_IECTRL_NONE, |
821 | 251, UNIPHIER_PIN_DRV_4_8, | 819 | 251, UNIPHIER_PIN_DRV_1BIT, |
822 | 251, UNIPHIER_PIN_PULL_DOWN), | 820 | 251, UNIPHIER_PIN_PULL_DOWN), |
823 | UNIPHIER_PINCTRL_PIN(266, "VO1CR3", UNIPHIER_PIN_IECTRL_NONE, | 821 | UNIPHIER_PINCTRL_PIN(266, "VO1CR3", UNIPHIER_PIN_IECTRL_NONE, |
824 | 252, UNIPHIER_PIN_DRV_4_8, | 822 | 252, UNIPHIER_PIN_DRV_1BIT, |
825 | 252, UNIPHIER_PIN_PULL_DOWN), | 823 | 252, UNIPHIER_PIN_PULL_DOWN), |
826 | UNIPHIER_PINCTRL_PIN(267, "VO1CR4", UNIPHIER_PIN_IECTRL_NONE, | 824 | UNIPHIER_PINCTRL_PIN(267, "VO1CR4", UNIPHIER_PIN_IECTRL_NONE, |
827 | 253, UNIPHIER_PIN_DRV_4_8, | 825 | 253, UNIPHIER_PIN_DRV_1BIT, |
828 | 253, UNIPHIER_PIN_PULL_DOWN), | 826 | 253, UNIPHIER_PIN_PULL_DOWN), |
829 | UNIPHIER_PINCTRL_PIN(268, "VO1CR5", UNIPHIER_PIN_IECTRL_NONE, | 827 | UNIPHIER_PINCTRL_PIN(268, "VO1CR5", UNIPHIER_PIN_IECTRL_NONE, |
830 | 254, UNIPHIER_PIN_DRV_4_8, | 828 | 254, UNIPHIER_PIN_DRV_1BIT, |
831 | 254, UNIPHIER_PIN_PULL_DOWN), | 829 | 254, UNIPHIER_PIN_PULL_DOWN), |
832 | UNIPHIER_PINCTRL_PIN(269, "VO1CR6", UNIPHIER_PIN_IECTRL_NONE, | 830 | UNIPHIER_PINCTRL_PIN(269, "VO1CR6", UNIPHIER_PIN_IECTRL_NONE, |
833 | 255, UNIPHIER_PIN_DRV_4_8, | 831 | 255, UNIPHIER_PIN_DRV_1BIT, |
834 | 255, UNIPHIER_PIN_PULL_DOWN), | 832 | 255, UNIPHIER_PIN_PULL_DOWN), |
835 | UNIPHIER_PINCTRL_PIN(270, "VO1CR7", UNIPHIER_PIN_IECTRL_NONE, | 833 | UNIPHIER_PINCTRL_PIN(270, "VO1CR7", UNIPHIER_PIN_IECTRL_NONE, |
836 | 256, UNIPHIER_PIN_DRV_4_8, | 834 | 256, UNIPHIER_PIN_DRV_1BIT, |
837 | 256, UNIPHIER_PIN_PULL_DOWN), | 835 | 256, UNIPHIER_PIN_PULL_DOWN), |
838 | UNIPHIER_PINCTRL_PIN(271, "VO1CR8", UNIPHIER_PIN_IECTRL_NONE, | 836 | UNIPHIER_PINCTRL_PIN(271, "VO1CR8", UNIPHIER_PIN_IECTRL_NONE, |
839 | 257, UNIPHIER_PIN_DRV_4_8, | 837 | 257, UNIPHIER_PIN_DRV_1BIT, |
840 | 257, UNIPHIER_PIN_PULL_DOWN), | 838 | 257, UNIPHIER_PIN_PULL_DOWN), |
841 | UNIPHIER_PINCTRL_PIN(272, "VO1CR9", UNIPHIER_PIN_IECTRL_NONE, | 839 | UNIPHIER_PINCTRL_PIN(272, "VO1CR9", UNIPHIER_PIN_IECTRL_NONE, |
842 | 258, UNIPHIER_PIN_DRV_4_8, | 840 | 258, UNIPHIER_PIN_DRV_1BIT, |
843 | 258, UNIPHIER_PIN_PULL_DOWN), | 841 | 258, UNIPHIER_PIN_PULL_DOWN), |
844 | UNIPHIER_PINCTRL_PIN(273, "VO1CR10", UNIPHIER_PIN_IECTRL_NONE, | 842 | UNIPHIER_PINCTRL_PIN(273, "VO1CR10", UNIPHIER_PIN_IECTRL_NONE, |
845 | 259, UNIPHIER_PIN_DRV_4_8, | 843 | 259, UNIPHIER_PIN_DRV_1BIT, |
846 | 259, UNIPHIER_PIN_PULL_DOWN), | 844 | 259, UNIPHIER_PIN_PULL_DOWN), |
847 | UNIPHIER_PINCTRL_PIN(274, "VO1CR11", UNIPHIER_PIN_IECTRL_NONE, | 845 | UNIPHIER_PINCTRL_PIN(274, "VO1CR11", UNIPHIER_PIN_IECTRL_NONE, |
848 | 260, UNIPHIER_PIN_DRV_4_8, | 846 | 260, UNIPHIER_PIN_DRV_1BIT, |
849 | 260, UNIPHIER_PIN_PULL_DOWN), | 847 | 260, UNIPHIER_PIN_PULL_DOWN), |
850 | UNIPHIER_PINCTRL_PIN(275, "VO1EX0", UNIPHIER_PIN_IECTRL_NONE, | 848 | UNIPHIER_PINCTRL_PIN(275, "VO1EX0", UNIPHIER_PIN_IECTRL_NONE, |
851 | 261, UNIPHIER_PIN_DRV_4_8, | 849 | 261, UNIPHIER_PIN_DRV_1BIT, |
852 | 261, UNIPHIER_PIN_PULL_DOWN), | 850 | 261, UNIPHIER_PIN_PULL_DOWN), |
853 | UNIPHIER_PINCTRL_PIN(276, "VO1EX1", UNIPHIER_PIN_IECTRL_NONE, | 851 | UNIPHIER_PINCTRL_PIN(276, "VO1EX1", UNIPHIER_PIN_IECTRL_NONE, |
854 | 262, UNIPHIER_PIN_DRV_4_8, | 852 | 262, UNIPHIER_PIN_DRV_1BIT, |
855 | 262, UNIPHIER_PIN_PULL_DOWN), | 853 | 262, UNIPHIER_PIN_PULL_DOWN), |
856 | UNIPHIER_PINCTRL_PIN(277, "VO1EX2", UNIPHIER_PIN_IECTRL_NONE, | 854 | UNIPHIER_PINCTRL_PIN(277, "VO1EX2", UNIPHIER_PIN_IECTRL_NONE, |
857 | 263, UNIPHIER_PIN_DRV_4_8, | 855 | 263, UNIPHIER_PIN_DRV_1BIT, |
858 | 263, UNIPHIER_PIN_PULL_DOWN), | 856 | 263, UNIPHIER_PIN_PULL_DOWN), |
859 | UNIPHIER_PINCTRL_PIN(278, "VO1EX3", UNIPHIER_PIN_IECTRL_NONE, | 857 | UNIPHIER_PINCTRL_PIN(278, "VO1EX3", UNIPHIER_PIN_IECTRL_NONE, |
860 | 264, UNIPHIER_PIN_DRV_4_8, | 858 | 264, UNIPHIER_PIN_DRV_1BIT, |
861 | 264, UNIPHIER_PIN_PULL_DOWN), | 859 | 264, UNIPHIER_PIN_PULL_DOWN), |
862 | UNIPHIER_PINCTRL_PIN(279, "VEXCKA", UNIPHIER_PIN_IECTRL_NONE, | 860 | UNIPHIER_PINCTRL_PIN(279, "VEXCKA", UNIPHIER_PIN_IECTRL_NONE, |
863 | 265, UNIPHIER_PIN_DRV_4_8, | 861 | 265, UNIPHIER_PIN_DRV_1BIT, |
864 | 265, UNIPHIER_PIN_PULL_DOWN), | 862 | 265, UNIPHIER_PIN_PULL_DOWN), |
865 | UNIPHIER_PINCTRL_PIN(280, "VSEL0", UNIPHIER_PIN_IECTRL_NONE, | 863 | UNIPHIER_PINCTRL_PIN(280, "VSEL0", UNIPHIER_PIN_IECTRL_NONE, |
866 | 266, UNIPHIER_PIN_DRV_4_8, | 864 | 266, UNIPHIER_PIN_DRV_1BIT, |
867 | 266, UNIPHIER_PIN_PULL_DOWN), | 865 | 266, UNIPHIER_PIN_PULL_DOWN), |
868 | UNIPHIER_PINCTRL_PIN(281, "VSEL1", UNIPHIER_PIN_IECTRL_NONE, | 866 | UNIPHIER_PINCTRL_PIN(281, "VSEL1", UNIPHIER_PIN_IECTRL_NONE, |
869 | 267, UNIPHIER_PIN_DRV_4_8, | 867 | 267, UNIPHIER_PIN_DRV_1BIT, |
870 | 267, UNIPHIER_PIN_PULL_DOWN), | 868 | 267, UNIPHIER_PIN_PULL_DOWN), |
871 | UNIPHIER_PINCTRL_PIN(282, "AO1DACCK", UNIPHIER_PIN_IECTRL_NONE, | 869 | UNIPHIER_PINCTRL_PIN(282, "AO1DACCK", UNIPHIER_PIN_IECTRL_NONE, |
872 | 268, UNIPHIER_PIN_DRV_4_8, | 870 | 268, UNIPHIER_PIN_DRV_1BIT, |
873 | 268, UNIPHIER_PIN_PULL_DOWN), | 871 | 268, UNIPHIER_PIN_PULL_DOWN), |
874 | UNIPHIER_PINCTRL_PIN(283, "AO1BCK", UNIPHIER_PIN_IECTRL_NONE, | 872 | UNIPHIER_PINCTRL_PIN(283, "AO1BCK", UNIPHIER_PIN_IECTRL_NONE, |
875 | 269, UNIPHIER_PIN_DRV_4_8, | 873 | 269, UNIPHIER_PIN_DRV_1BIT, |
876 | 269, UNIPHIER_PIN_PULL_DOWN), | 874 | 269, UNIPHIER_PIN_PULL_DOWN), |
877 | UNIPHIER_PINCTRL_PIN(284, "AO1LRCK", UNIPHIER_PIN_IECTRL_NONE, | 875 | UNIPHIER_PINCTRL_PIN(284, "AO1LRCK", UNIPHIER_PIN_IECTRL_NONE, |
878 | 270, UNIPHIER_PIN_DRV_4_8, | 876 | 270, UNIPHIER_PIN_DRV_1BIT, |
879 | 270, UNIPHIER_PIN_PULL_DOWN), | 877 | 270, UNIPHIER_PIN_PULL_DOWN), |
880 | UNIPHIER_PINCTRL_PIN(285, "AO1D0", UNIPHIER_PIN_IECTRL_NONE, | 878 | UNIPHIER_PINCTRL_PIN(285, "AO1D0", UNIPHIER_PIN_IECTRL_NONE, |
881 | 271, UNIPHIER_PIN_DRV_4_8, | 879 | 271, UNIPHIER_PIN_DRV_1BIT, |
882 | 271, UNIPHIER_PIN_PULL_DOWN), | 880 | 271, UNIPHIER_PIN_PULL_DOWN), |
883 | UNIPHIER_PINCTRL_PIN(286, "AO1D1", UNIPHIER_PIN_IECTRL_NONE, | 881 | UNIPHIER_PINCTRL_PIN(286, "AO1D1", UNIPHIER_PIN_IECTRL_NONE, |
884 | 272, UNIPHIER_PIN_DRV_4_8, | 882 | 272, UNIPHIER_PIN_DRV_1BIT, |
885 | 272, UNIPHIER_PIN_PULL_DOWN), | 883 | 272, UNIPHIER_PIN_PULL_DOWN), |
886 | UNIPHIER_PINCTRL_PIN(287, "AO1D2", UNIPHIER_PIN_IECTRL_NONE, | 884 | UNIPHIER_PINCTRL_PIN(287, "AO1D2", UNIPHIER_PIN_IECTRL_NONE, |
887 | 273, UNIPHIER_PIN_DRV_4_8, | 885 | 273, UNIPHIER_PIN_DRV_1BIT, |
888 | 273, UNIPHIER_PIN_PULL_DOWN), | 886 | 273, UNIPHIER_PIN_PULL_DOWN), |
889 | UNIPHIER_PINCTRL_PIN(288, "AO1D3", UNIPHIER_PIN_IECTRL_NONE, | 887 | UNIPHIER_PINCTRL_PIN(288, "AO1D3", UNIPHIER_PIN_IECTRL_NONE, |
890 | 274, UNIPHIER_PIN_DRV_4_8, | 888 | 274, UNIPHIER_PIN_DRV_1BIT, |
891 | 274, UNIPHIER_PIN_PULL_DOWN), | 889 | 274, UNIPHIER_PIN_PULL_DOWN), |
892 | UNIPHIER_PINCTRL_PIN(289, "AO1IEC", UNIPHIER_PIN_IECTRL_NONE, | 890 | UNIPHIER_PINCTRL_PIN(289, "AO1IEC", UNIPHIER_PIN_IECTRL_NONE, |
893 | 275, UNIPHIER_PIN_DRV_4_8, | 891 | 275, UNIPHIER_PIN_DRV_1BIT, |
894 | 275, UNIPHIER_PIN_PULL_DOWN), | 892 | 275, UNIPHIER_PIN_PULL_DOWN), |
895 | UNIPHIER_PINCTRL_PIN(290, "XDAC_PD", UNIPHIER_PIN_IECTRL_NONE, | 893 | UNIPHIER_PINCTRL_PIN(290, "XDAC_PD", UNIPHIER_PIN_IECTRL_NONE, |
896 | 276, UNIPHIER_PIN_DRV_4_8, | 894 | 276, UNIPHIER_PIN_DRV_1BIT, |
897 | 276, UNIPHIER_PIN_PULL_DOWN), | 895 | 276, UNIPHIER_PIN_PULL_DOWN), |
898 | UNIPHIER_PINCTRL_PIN(291, "EX_A_MUTE", UNIPHIER_PIN_IECTRL_NONE, | 896 | UNIPHIER_PINCTRL_PIN(291, "EX_A_MUTE", UNIPHIER_PIN_IECTRL_NONE, |
899 | 277, UNIPHIER_PIN_DRV_4_8, | 897 | 277, UNIPHIER_PIN_DRV_1BIT, |
900 | 277, UNIPHIER_PIN_PULL_UP), | 898 | 277, UNIPHIER_PIN_PULL_UP), |
901 | UNIPHIER_PINCTRL_PIN(292, "AO2DACCK", UNIPHIER_PIN_IECTRL_NONE, | 899 | UNIPHIER_PINCTRL_PIN(292, "AO2DACCK", UNIPHIER_PIN_IECTRL_NONE, |
902 | 278, UNIPHIER_PIN_DRV_4_8, | 900 | 278, UNIPHIER_PIN_DRV_1BIT, |
903 | 278, UNIPHIER_PIN_PULL_DOWN), | 901 | 278, UNIPHIER_PIN_PULL_DOWN), |
904 | UNIPHIER_PINCTRL_PIN(293, "AO2BCK", UNIPHIER_PIN_IECTRL_NONE, | 902 | UNIPHIER_PINCTRL_PIN(293, "AO2BCK", UNIPHIER_PIN_IECTRL_NONE, |
905 | 279, UNIPHIER_PIN_DRV_4_8, | 903 | 279, UNIPHIER_PIN_DRV_1BIT, |
906 | 279, UNIPHIER_PIN_PULL_DOWN), | 904 | 279, UNIPHIER_PIN_PULL_DOWN), |
907 | UNIPHIER_PINCTRL_PIN(294, "AO2LRCK", UNIPHIER_PIN_IECTRL_NONE, | 905 | UNIPHIER_PINCTRL_PIN(294, "AO2LRCK", UNIPHIER_PIN_IECTRL_NONE, |
908 | 280, UNIPHIER_PIN_DRV_4_8, | 906 | 280, UNIPHIER_PIN_DRV_1BIT, |
909 | 280, UNIPHIER_PIN_PULL_DOWN), | 907 | 280, UNIPHIER_PIN_PULL_DOWN), |
910 | UNIPHIER_PINCTRL_PIN(295, "AO2DMIX", UNIPHIER_PIN_IECTRL_NONE, | 908 | UNIPHIER_PINCTRL_PIN(295, "AO2DMIX", UNIPHIER_PIN_IECTRL_NONE, |
911 | 281, UNIPHIER_PIN_DRV_4_8, | 909 | 281, UNIPHIER_PIN_DRV_1BIT, |
912 | 281, UNIPHIER_PIN_PULL_DOWN), | 910 | 281, UNIPHIER_PIN_PULL_DOWN), |
913 | UNIPHIER_PINCTRL_PIN(296, "AO2IEC", UNIPHIER_PIN_IECTRL_NONE, | 911 | UNIPHIER_PINCTRL_PIN(296, "AO2IEC", UNIPHIER_PIN_IECTRL_NONE, |
914 | 282, UNIPHIER_PIN_DRV_4_8, | 912 | 282, UNIPHIER_PIN_DRV_1BIT, |
915 | 282, UNIPHIER_PIN_PULL_DOWN), | 913 | 282, UNIPHIER_PIN_PULL_DOWN), |
916 | UNIPHIER_PINCTRL_PIN(297, "HTHPD", UNIPHIER_PIN_IECTRL_NONE, | 914 | UNIPHIER_PINCTRL_PIN(297, "HTHPD", UNIPHIER_PIN_IECTRL_NONE, |
917 | -1, UNIPHIER_PIN_DRV_FIXED_5, | 915 | -1, UNIPHIER_PIN_DRV_FIXED5, |
918 | -1, UNIPHIER_PIN_PULL_NONE), | 916 | -1, UNIPHIER_PIN_PULL_NONE), |
919 | UNIPHIER_PINCTRL_PIN(298, "HTSCL", UNIPHIER_PIN_IECTRL_NONE, | 917 | UNIPHIER_PINCTRL_PIN(298, "HTSCL", UNIPHIER_PIN_IECTRL_NONE, |
920 | -1, UNIPHIER_PIN_DRV_FIXED_5, | 918 | -1, UNIPHIER_PIN_DRV_FIXED5, |
921 | -1, UNIPHIER_PIN_PULL_NONE), | 919 | -1, UNIPHIER_PIN_PULL_NONE), |
922 | UNIPHIER_PINCTRL_PIN(299, "HTSDA", UNIPHIER_PIN_IECTRL_NONE, | 920 | UNIPHIER_PINCTRL_PIN(299, "HTSDA", UNIPHIER_PIN_IECTRL_NONE, |
923 | -1, UNIPHIER_PIN_DRV_FIXED_5, | 921 | -1, UNIPHIER_PIN_DRV_FIXED5, |
924 | -1, UNIPHIER_PIN_PULL_NONE), | 922 | -1, UNIPHIER_PIN_PULL_NONE), |
925 | UNIPHIER_PINCTRL_PIN(300, "PORT00", UNIPHIER_PIN_IECTRL_NONE, | 923 | UNIPHIER_PINCTRL_PIN(300, "PORT00", UNIPHIER_PIN_IECTRL_NONE, |
926 | 284, UNIPHIER_PIN_DRV_4_8, | 924 | 284, UNIPHIER_PIN_DRV_1BIT, |
927 | 284, UNIPHIER_PIN_PULL_DOWN), | 925 | 284, UNIPHIER_PIN_PULL_DOWN), |
928 | UNIPHIER_PINCTRL_PIN(301, "PORT01", UNIPHIER_PIN_IECTRL_NONE, | 926 | UNIPHIER_PINCTRL_PIN(301, "PORT01", UNIPHIER_PIN_IECTRL_NONE, |
929 | 285, UNIPHIER_PIN_DRV_4_8, | 927 | 285, UNIPHIER_PIN_DRV_1BIT, |
930 | 285, UNIPHIER_PIN_PULL_DOWN), | 928 | 285, UNIPHIER_PIN_PULL_DOWN), |
931 | UNIPHIER_PINCTRL_PIN(302, "PORT02", UNIPHIER_PIN_IECTRL_NONE, | 929 | UNIPHIER_PINCTRL_PIN(302, "PORT02", UNIPHIER_PIN_IECTRL_NONE, |
932 | 286, UNIPHIER_PIN_DRV_4_8, | 930 | 286, UNIPHIER_PIN_DRV_1BIT, |
933 | 286, UNIPHIER_PIN_PULL_DOWN), | 931 | 286, UNIPHIER_PIN_PULL_DOWN), |
934 | UNIPHIER_PINCTRL_PIN(303, "PORT03", UNIPHIER_PIN_IECTRL_NONE, | 932 | UNIPHIER_PINCTRL_PIN(303, "PORT03", UNIPHIER_PIN_IECTRL_NONE, |
935 | 287, UNIPHIER_PIN_DRV_4_8, | 933 | 287, UNIPHIER_PIN_DRV_1BIT, |
936 | 287, UNIPHIER_PIN_PULL_DOWN), | 934 | 287, UNIPHIER_PIN_PULL_DOWN), |
937 | UNIPHIER_PINCTRL_PIN(304, "PORT04", UNIPHIER_PIN_IECTRL_NONE, | 935 | UNIPHIER_PINCTRL_PIN(304, "PORT04", UNIPHIER_PIN_IECTRL_NONE, |
938 | 288, UNIPHIER_PIN_DRV_4_8, | 936 | 288, UNIPHIER_PIN_DRV_1BIT, |
939 | 288, UNIPHIER_PIN_PULL_DOWN), | 937 | 288, UNIPHIER_PIN_PULL_DOWN), |
940 | UNIPHIER_PINCTRL_PIN(305, "PORT05", UNIPHIER_PIN_IECTRL_NONE, | 938 | UNIPHIER_PINCTRL_PIN(305, "PORT05", UNIPHIER_PIN_IECTRL_NONE, |
941 | 289, UNIPHIER_PIN_DRV_4_8, | 939 | 289, UNIPHIER_PIN_DRV_1BIT, |
942 | 289, UNIPHIER_PIN_PULL_DOWN), | 940 | 289, UNIPHIER_PIN_PULL_DOWN), |
943 | UNIPHIER_PINCTRL_PIN(306, "PORT06", UNIPHIER_PIN_IECTRL_NONE, | 941 | UNIPHIER_PINCTRL_PIN(306, "PORT06", UNIPHIER_PIN_IECTRL_NONE, |
944 | 290, UNIPHIER_PIN_DRV_4_8, | 942 | 290, UNIPHIER_PIN_DRV_1BIT, |
945 | 290, UNIPHIER_PIN_PULL_DOWN), | 943 | 290, UNIPHIER_PIN_PULL_DOWN), |
946 | UNIPHIER_PINCTRL_PIN(307, "PORT07", UNIPHIER_PIN_IECTRL_NONE, | 944 | UNIPHIER_PINCTRL_PIN(307, "PORT07", UNIPHIER_PIN_IECTRL_NONE, |
947 | 291, UNIPHIER_PIN_DRV_4_8, | 945 | 291, UNIPHIER_PIN_DRV_1BIT, |
948 | 291, UNIPHIER_PIN_PULL_DOWN), | 946 | 291, UNIPHIER_PIN_PULL_DOWN), |
949 | UNIPHIER_PINCTRL_PIN(308, "PORT10", UNIPHIER_PIN_IECTRL_NONE, | 947 | UNIPHIER_PINCTRL_PIN(308, "PORT10", UNIPHIER_PIN_IECTRL_NONE, |
950 | 292, UNIPHIER_PIN_DRV_4_8, | 948 | 292, UNIPHIER_PIN_DRV_1BIT, |
951 | 292, UNIPHIER_PIN_PULL_DOWN), | 949 | 292, UNIPHIER_PIN_PULL_DOWN), |
952 | UNIPHIER_PINCTRL_PIN(309, "PORT11", UNIPHIER_PIN_IECTRL_NONE, | 950 | UNIPHIER_PINCTRL_PIN(309, "PORT11", UNIPHIER_PIN_IECTRL_NONE, |
953 | 293, UNIPHIER_PIN_DRV_4_8, | 951 | 293, UNIPHIER_PIN_DRV_1BIT, |
954 | 293, UNIPHIER_PIN_PULL_DOWN), | 952 | 293, UNIPHIER_PIN_PULL_DOWN), |
955 | UNIPHIER_PINCTRL_PIN(310, "PORT12", UNIPHIER_PIN_IECTRL_NONE, | 953 | UNIPHIER_PINCTRL_PIN(310, "PORT12", UNIPHIER_PIN_IECTRL_NONE, |
956 | 294, UNIPHIER_PIN_DRV_4_8, | 954 | 294, UNIPHIER_PIN_DRV_1BIT, |
957 | 294, UNIPHIER_PIN_PULL_DOWN), | 955 | 294, UNIPHIER_PIN_PULL_DOWN), |
958 | UNIPHIER_PINCTRL_PIN(311, "PORT13", UNIPHIER_PIN_IECTRL_NONE, | 956 | UNIPHIER_PINCTRL_PIN(311, "PORT13", UNIPHIER_PIN_IECTRL_NONE, |
959 | 295, UNIPHIER_PIN_DRV_4_8, | 957 | 295, UNIPHIER_PIN_DRV_1BIT, |
960 | 295, UNIPHIER_PIN_PULL_DOWN), | 958 | 295, UNIPHIER_PIN_PULL_DOWN), |
961 | UNIPHIER_PINCTRL_PIN(312, "PORT14", UNIPHIER_PIN_IECTRL_NONE, | 959 | UNIPHIER_PINCTRL_PIN(312, "PORT14", UNIPHIER_PIN_IECTRL_NONE, |
962 | 296, UNIPHIER_PIN_DRV_4_8, | 960 | 296, UNIPHIER_PIN_DRV_1BIT, |
963 | 296, UNIPHIER_PIN_PULL_DOWN), | 961 | 296, UNIPHIER_PIN_PULL_DOWN), |
964 | UNIPHIER_PINCTRL_PIN(313, "PORT15", UNIPHIER_PIN_IECTRL_NONE, | 962 | UNIPHIER_PINCTRL_PIN(313, "PORT15", UNIPHIER_PIN_IECTRL_NONE, |
965 | 297, UNIPHIER_PIN_DRV_4_8, | 963 | 297, UNIPHIER_PIN_DRV_1BIT, |
966 | 297, UNIPHIER_PIN_PULL_DOWN), | 964 | 297, UNIPHIER_PIN_PULL_DOWN), |
967 | UNIPHIER_PINCTRL_PIN(314, "PORT16", UNIPHIER_PIN_IECTRL_NONE, | 965 | UNIPHIER_PINCTRL_PIN(314, "PORT16", UNIPHIER_PIN_IECTRL_NONE, |
968 | 298, UNIPHIER_PIN_DRV_4_8, | 966 | 298, UNIPHIER_PIN_DRV_1BIT, |
969 | 298, UNIPHIER_PIN_PULL_DOWN), | 967 | 298, UNIPHIER_PIN_PULL_DOWN), |
970 | UNIPHIER_PINCTRL_PIN(315, "PORT17", UNIPHIER_PIN_IECTRL_NONE, | 968 | UNIPHIER_PINCTRL_PIN(315, "PORT17", UNIPHIER_PIN_IECTRL_NONE, |
971 | 299, UNIPHIER_PIN_DRV_4_8, | 969 | 299, UNIPHIER_PIN_DRV_1BIT, |
972 | 299, UNIPHIER_PIN_PULL_DOWN), | 970 | 299, UNIPHIER_PIN_PULL_DOWN), |
973 | UNIPHIER_PINCTRL_PIN(316, "PORT20", UNIPHIER_PIN_IECTRL_NONE, | 971 | UNIPHIER_PINCTRL_PIN(316, "PORT20", UNIPHIER_PIN_IECTRL_NONE, |
974 | 300, UNIPHIER_PIN_DRV_4_8, | 972 | 300, UNIPHIER_PIN_DRV_1BIT, |
975 | 300, UNIPHIER_PIN_PULL_DOWN), | 973 | 300, UNIPHIER_PIN_PULL_DOWN), |
976 | UNIPHIER_PINCTRL_PIN(317, "PORT21", UNIPHIER_PIN_IECTRL_NONE, | 974 | UNIPHIER_PINCTRL_PIN(317, "PORT21", UNIPHIER_PIN_IECTRL_NONE, |
977 | 301, UNIPHIER_PIN_DRV_4_8, | 975 | 301, UNIPHIER_PIN_DRV_1BIT, |
978 | 301, UNIPHIER_PIN_PULL_DOWN), | 976 | 301, UNIPHIER_PIN_PULL_DOWN), |
979 | UNIPHIER_PINCTRL_PIN(318, "PORT22", UNIPHIER_PIN_IECTRL_NONE, | 977 | UNIPHIER_PINCTRL_PIN(318, "PORT22", UNIPHIER_PIN_IECTRL_NONE, |
980 | 302, UNIPHIER_PIN_DRV_4_8, | 978 | 302, UNIPHIER_PIN_DRV_1BIT, |
981 | 302, UNIPHIER_PIN_PULL_UP), | 979 | 302, UNIPHIER_PIN_PULL_UP), |
982 | UNIPHIER_PINCTRL_PIN(319, "SD1DAT0", UNIPHIER_PIN_IECTRL_NONE, | 980 | UNIPHIER_PINCTRL_PIN(319, "SD1DAT0", UNIPHIER_PIN_IECTRL_NONE, |
983 | 303, UNIPHIER_PIN_DRV_4_8, | 981 | 303, UNIPHIER_PIN_DRV_1BIT, |
984 | 303, UNIPHIER_PIN_PULL_UP), | 982 | 303, UNIPHIER_PIN_PULL_UP), |
985 | UNIPHIER_PINCTRL_PIN(320, "SD1DAT1", UNIPHIER_PIN_IECTRL_NONE, | 983 | UNIPHIER_PINCTRL_PIN(320, "SD1DAT1", UNIPHIER_PIN_IECTRL_NONE, |
986 | 304, UNIPHIER_PIN_DRV_4_8, | 984 | 304, UNIPHIER_PIN_DRV_1BIT, |
987 | 304, UNIPHIER_PIN_PULL_UP), | 985 | 304, UNIPHIER_PIN_PULL_UP), |
988 | UNIPHIER_PINCTRL_PIN(321, "SD1DAT2", UNIPHIER_PIN_IECTRL_NONE, | 986 | UNIPHIER_PINCTRL_PIN(321, "SD1DAT2", UNIPHIER_PIN_IECTRL_NONE, |
989 | 305, UNIPHIER_PIN_DRV_4_8, | 987 | 305, UNIPHIER_PIN_DRV_1BIT, |
990 | 305, UNIPHIER_PIN_PULL_UP), | 988 | 305, UNIPHIER_PIN_PULL_UP), |
991 | UNIPHIER_PINCTRL_PIN(322, "SD1DAT3", UNIPHIER_PIN_IECTRL_NONE, | 989 | UNIPHIER_PINCTRL_PIN(322, "SD1DAT3", UNIPHIER_PIN_IECTRL_NONE, |
992 | 306, UNIPHIER_PIN_DRV_4_8, | 990 | 306, UNIPHIER_PIN_DRV_1BIT, |
993 | 306, UNIPHIER_PIN_PULL_UP), | 991 | 306, UNIPHIER_PIN_PULL_UP), |
994 | UNIPHIER_PINCTRL_PIN(323, "SD1CMD", UNIPHIER_PIN_IECTRL_NONE, | 992 | UNIPHIER_PINCTRL_PIN(323, "SD1CMD", UNIPHIER_PIN_IECTRL_NONE, |
995 | 307, UNIPHIER_PIN_DRV_4_8, | 993 | 307, UNIPHIER_PIN_DRV_1BIT, |
996 | 307, UNIPHIER_PIN_PULL_UP), | 994 | 307, UNIPHIER_PIN_PULL_UP), |
997 | UNIPHIER_PINCTRL_PIN(324, "SD1CLK", UNIPHIER_PIN_IECTRL_NONE, | 995 | UNIPHIER_PINCTRL_PIN(324, "SD1CLK", UNIPHIER_PIN_IECTRL_NONE, |
998 | 308, UNIPHIER_PIN_DRV_4_8, | 996 | 308, UNIPHIER_PIN_DRV_1BIT, |
999 | 308, UNIPHIER_PIN_PULL_UP), | 997 | 308, UNIPHIER_PIN_PULL_UP), |
1000 | UNIPHIER_PINCTRL_PIN(325, "SD1CD", UNIPHIER_PIN_IECTRL_NONE, | 998 | UNIPHIER_PINCTRL_PIN(325, "SD1CD", UNIPHIER_PIN_IECTRL_NONE, |
1001 | 309, UNIPHIER_PIN_DRV_4_8, | 999 | 309, UNIPHIER_PIN_DRV_1BIT, |
1002 | 309, UNIPHIER_PIN_PULL_UP), | 1000 | 309, UNIPHIER_PIN_PULL_UP), |
1003 | UNIPHIER_PINCTRL_PIN(326, "SD1WP", UNIPHIER_PIN_IECTRL_NONE, | 1001 | UNIPHIER_PINCTRL_PIN(326, "SD1WP", UNIPHIER_PIN_IECTRL_NONE, |
1004 | 310, UNIPHIER_PIN_DRV_4_8, | 1002 | 310, UNIPHIER_PIN_DRV_1BIT, |
1005 | 310, UNIPHIER_PIN_PULL_UP), | 1003 | 310, UNIPHIER_PIN_PULL_UP), |
1006 | UNIPHIER_PINCTRL_PIN(327, "SD1VTCG", UNIPHIER_PIN_IECTRL_NONE, | 1004 | UNIPHIER_PINCTRL_PIN(327, "SD1VTCG", UNIPHIER_PIN_IECTRL_NONE, |
1007 | 311, UNIPHIER_PIN_DRV_4_8, | 1005 | 311, UNIPHIER_PIN_DRV_1BIT, |
1008 | 311, UNIPHIER_PIN_PULL_UP), | 1006 | 311, UNIPHIER_PIN_PULL_UP), |
1009 | UNIPHIER_PINCTRL_PIN(328, "DMDISO", UNIPHIER_PIN_IECTRL_NONE, | 1007 | UNIPHIER_PINCTRL_PIN(328, "DMDISO", UNIPHIER_PIN_IECTRL_NONE, |
1010 | 312, UNIPHIER_PIN_DRV_NONE, | 1008 | -1, UNIPHIER_PIN_DRV_NONE, |
1011 | 312, UNIPHIER_PIN_PULL_DOWN), | 1009 | 312, UNIPHIER_PIN_PULL_DOWN), |
1012 | }; | 1010 | }; |
1013 | 1011 | ||
1014 | static const unsigned emmc_pins[] = {40, 41, 42, 43, 51, 52, 53}; | 1012 | static const unsigned emmc_pins[] = {40, 41, 42, 43, 51, 52, 53}; |
1015 | static const unsigned emmc_muxvals[] = {1, 1, 1, 1, 1, 1, 1}; | 1013 | static const int emmc_muxvals[] = {1, 1, 1, 1, 1, 1, 1}; |
1016 | static const unsigned emmc_dat8_pins[] = {44, 45, 46, 47}; | 1014 | static const unsigned emmc_dat8_pins[] = {44, 45, 46, 47}; |
1017 | static const unsigned emmc_dat8_muxvals[] = {1, 1, 1, 1}; | 1015 | static const int emmc_dat8_muxvals[] = {1, 1, 1, 1}; |
1016 | static const unsigned ether_mii_pins[] = {160, 161, 162, 163, 164, 165, 166, | ||
1017 | 167, 168, 169, 170, 171, 172, 173, | ||
1018 | 174, 175, 176, 177, 178, 179}; | ||
1019 | static const int ether_mii_muxvals[] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
1020 | 0, 0, 0, 0, 0, 0, 0}; | ||
1021 | static const unsigned ether_rgmii_pins[] = {160, 161, 162, 163, 164, 165, 167, | ||
1022 | 168, 169, 170, 171, 172, 176, 177, | ||
1023 | 178, 179}; | ||
1024 | static const int ether_rgmii_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
1025 | 0, 0, 0, 0}; | ||
1026 | static const unsigned ether_rmii_pins[] = {160, 161, 162, 165, 168, 169, 172, | ||
1027 | 173, 176, 177, 178, 179}; | ||
1028 | static const int ether_rmii_muxvals[] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; | ||
1029 | static const unsigned ether_rmiib_pins[] = {161, 162, 165, 167, 168, 169, 172, | ||
1030 | 173, 176, 177, 178, 179}; | ||
1031 | static const int ether_rmiib_muxvals[] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}; | ||
1018 | static const unsigned i2c0_pins[] = {142, 143}; | 1032 | static const unsigned i2c0_pins[] = {142, 143}; |
1019 | static const unsigned i2c0_muxvals[] = {0, 0}; | 1033 | static const int i2c0_muxvals[] = {0, 0}; |
1020 | static const unsigned i2c1_pins[] = {144, 145}; | 1034 | static const unsigned i2c1_pins[] = {144, 145}; |
1021 | static const unsigned i2c1_muxvals[] = {0, 0}; | 1035 | static const int i2c1_muxvals[] = {0, 0}; |
1022 | static const unsigned i2c2_pins[] = {146, 147}; | 1036 | static const unsigned i2c2_pins[] = {146, 147}; |
1023 | static const unsigned i2c2_muxvals[] = {0, 0}; | 1037 | static const int i2c2_muxvals[] = {0, 0}; |
1024 | static const unsigned i2c3_pins[] = {148, 149}; | 1038 | static const unsigned i2c3_pins[] = {148, 149}; |
1025 | static const unsigned i2c3_muxvals[] = {0, 0}; | 1039 | static const int i2c3_muxvals[] = {0, 0}; |
1026 | static const unsigned i2c6_pins[] = {308, 309}; | 1040 | static const unsigned i2c6_pins[] = {308, 309}; |
1027 | static const unsigned i2c6_muxvals[] = {6, 6}; | 1041 | static const int i2c6_muxvals[] = {6, 6}; |
1028 | static const unsigned nand_pins[] = {40, 41, 42, 43, 44, 45, 46, 47, 48, 49, | 1042 | static const unsigned nand_pins[] = {40, 41, 42, 43, 44, 45, 46, 47, 48, 49, |
1029 | 50, 51, 52, 53, 54}; | 1043 | 50, 51, 52, 53, 54}; |
1030 | static const unsigned nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 1044 | static const int nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; |
1031 | 0, 0}; | ||
1032 | static const unsigned nand_cs1_pins[] = {131, 132}; | 1045 | static const unsigned nand_cs1_pins[] = {131, 132}; |
1033 | static const unsigned nand_cs1_muxvals[] = {1, 1}; | 1046 | static const int nand_cs1_muxvals[] = {1, 1}; |
1034 | static const unsigned sd_pins[] = {150, 151, 152, 153, 154, 155, 156, 157, 158}; | 1047 | static const unsigned sd_pins[] = {150, 151, 152, 153, 154, 155, 156, 157, 158}; |
1035 | static const unsigned sd_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; | 1048 | static const int sd_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; |
1036 | static const unsigned sd1_pins[] = {319, 320, 321, 322, 323, 324, 325, 326, | 1049 | static const unsigned sd1_pins[] = {319, 320, 321, 322, 323, 324, 325, 326, |
1037 | 327}; | 1050 | 327}; |
1038 | static const unsigned sd1_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; | 1051 | static const int sd1_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; |
1052 | static const unsigned system_bus_pins[] = {25, 26, 27, 28, 29, 30, 31, 32, 33, | ||
1053 | 34, 35, 36, 37, 38}; | ||
1054 | static const int system_bus_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
1055 | 0}; | ||
1056 | static const unsigned system_bus_cs0_pins[] = {318}; | ||
1057 | static const int system_bus_cs0_muxvals[] = {5}; | ||
1058 | static const unsigned system_bus_cs1_pins[] = {24}; | ||
1059 | static const int system_bus_cs1_muxvals[] = {0}; | ||
1060 | static const unsigned system_bus_cs2_pins[] = {315}; | ||
1061 | static const int system_bus_cs2_muxvals[] = {5}; | ||
1062 | static const unsigned system_bus_cs3_pins[] = {313}; | ||
1063 | static const int system_bus_cs3_muxvals[] = {5}; | ||
1064 | static const unsigned system_bus_cs4_pins[] = {305}; | ||
1065 | static const int system_bus_cs4_muxvals[] = {5}; | ||
1066 | static const unsigned system_bus_cs5_pins[] = {303}; | ||
1067 | static const int system_bus_cs5_muxvals[] = {6}; | ||
1068 | static const unsigned system_bus_cs6_pins[] = {307}; | ||
1069 | static const int system_bus_cs6_muxvals[] = {6}; | ||
1070 | static const unsigned system_bus_cs7_pins[] = {312}; | ||
1071 | static const int system_bus_cs7_muxvals[] = {6}; | ||
1039 | static const unsigned uart0_pins[] = {127, 128}; | 1072 | static const unsigned uart0_pins[] = {127, 128}; |
1040 | static const unsigned uart0_muxvals[] = {0, 0}; | 1073 | static const int uart0_muxvals[] = {0, 0}; |
1041 | static const unsigned uart1_pins[] = {129, 130}; | 1074 | static const unsigned uart1_pins[] = {129, 130}; |
1042 | static const unsigned uart1_muxvals[] = {0, 0}; | 1075 | static const int uart1_muxvals[] = {0, 0}; |
1043 | static const unsigned uart2_pins[] = {131, 132}; | 1076 | static const unsigned uart2_pins[] = {131, 132}; |
1044 | static const unsigned uart2_muxvals[] = {0, 0}; | 1077 | static const int uart2_muxvals[] = {0, 0}; |
1045 | static const unsigned uart3_pins[] = {88, 89}; | 1078 | static const unsigned uart3_pins[] = {88, 89}; |
1046 | static const unsigned uart3_muxvals[] = {2, 2}; | 1079 | static const int uart3_muxvals[] = {2, 2}; |
1047 | static const unsigned usb0_pins[] = {180, 181}; | 1080 | static const unsigned usb0_pins[] = {180, 181}; |
1048 | static const unsigned usb0_muxvals[] = {0, 0}; | 1081 | static const int usb0_muxvals[] = {0, 0}; |
1049 | static const unsigned usb1_pins[] = {182, 183}; | 1082 | static const unsigned usb1_pins[] = {182, 183}; |
1050 | static const unsigned usb1_muxvals[] = {0, 0}; | 1083 | static const int usb1_muxvals[] = {0, 0}; |
1051 | static const unsigned usb2_pins[] = {184, 185}; | 1084 | static const unsigned usb2_pins[] = {184, 185}; |
1052 | static const unsigned usb2_muxvals[] = {0, 0}; | 1085 | static const int usb2_muxvals[] = {0, 0}; |
1053 | static const unsigned usb3_pins[] = {186, 187}; | 1086 | static const unsigned usb3_pins[] = {186, 187}; |
1054 | static const unsigned usb3_muxvals[] = {0, 0}; | 1087 | static const int usb3_muxvals[] = {0, 0}; |
1055 | static const unsigned port_range0_pins[] = { | 1088 | static const unsigned port_range0_pins[] = { |
1056 | 300, 301, 302, 303, 304, 305, 306, 307, /* PORT0x */ | 1089 | 300, 301, 302, 303, 304, 305, 306, 307, /* PORT0x */ |
1057 | 308, 309, 310, 311, 312, 313, 314, 315, /* PORT1x */ | 1090 | 308, 309, 310, 311, 312, 313, 314, 315, /* PORT1x */ |
@@ -1069,7 +1102,7 @@ static const unsigned port_range0_pins[] = { | |||
1069 | 76, 77, 78, 79, 80, 81, 82, 83, /* PORT13x */ | 1102 | 76, 77, 78, 79, 80, 81, 82, 83, /* PORT13x */ |
1070 | 84, 85, 86, 87, 88, 89, 90, 91, /* PORT14x */ | 1103 | 84, 85, 86, 87, 88, 89, 90, 91, /* PORT14x */ |
1071 | }; | 1104 | }; |
1072 | static const unsigned port_range0_muxvals[] = { | 1105 | static const int port_range0_muxvals[] = { |
1073 | 7, 7, 7, 7, 7, 7, 7, 7, /* PORT0x */ | 1106 | 7, 7, 7, 7, 7, 7, 7, 7, /* PORT0x */ |
1074 | 7, 7, 7, 7, 7, 7, 7, 7, /* PORT1x */ | 1107 | 7, 7, 7, 7, 7, 7, 7, 7, /* PORT1x */ |
1075 | 7, 7, 7, 7, 7, 7, 7, 7, /* PORT2x */ | 1108 | 7, 7, 7, 7, 7, 7, 7, 7, /* PORT2x */ |
@@ -1102,7 +1135,7 @@ static const unsigned port_range1_pins[] = { | |||
1102 | 251, 252, 261, 262, 263, 264, 273, 274, /* PORT29x */ | 1135 | 251, 252, 261, 262, 263, 264, 273, 274, /* PORT29x */ |
1103 | 31, 32, 33, 34, 35, 36, 37, 38, /* PORT30x */ | 1136 | 31, 32, 33, 34, 35, 36, 37, 38, /* PORT30x */ |
1104 | }; | 1137 | }; |
1105 | static const unsigned port_range1_muxvals[] = { | 1138 | static const int port_range1_muxvals[] = { |
1106 | 7, 7, 7, /* PORT175-177 */ | 1139 | 7, 7, 7, /* PORT175-177 */ |
1107 | 7, 7, 7, 7, 7, 7, 7, 7, /* PORT18x */ | 1140 | 7, 7, 7, 7, 7, 7, 7, 7, /* PORT18x */ |
1108 | 7, 7, 7, 7, 7, 7, 7, 7, /* PORT19x */ | 1141 | 7, 7, 7, 7, 7, 7, 7, 7, /* PORT19x */ |
@@ -1123,7 +1156,7 @@ static const unsigned xirq_pins[] = { | |||
1123 | 234, 186, 99, 100, 101, 102, 184, 301, /* XIRQ8-15 */ | 1156 | 234, 186, 99, 100, 101, 102, 184, 301, /* XIRQ8-15 */ |
1124 | 302, 303, 304, 305, 306, /* XIRQ16-20 */ | 1157 | 302, 303, 304, 305, 306, /* XIRQ16-20 */ |
1125 | }; | 1158 | }; |
1126 | static const unsigned xirq_muxvals[] = { | 1159 | static const int xirq_muxvals[] = { |
1127 | 7, 7, 7, 7, 7, 7, 7, 7, /* XIRQ0-7 */ | 1160 | 7, 7, 7, 7, 7, 7, 7, 7, /* XIRQ0-7 */ |
1128 | 7, 7, 7, 7, 7, 7, 2, 2, /* XIRQ8-15 */ | 1161 | 7, 7, 7, 7, 7, 7, 2, 2, /* XIRQ8-15 */ |
1129 | 2, 2, 2, 2, 2, /* XIRQ16-20 */ | 1162 | 2, 2, 2, 2, 2, /* XIRQ16-20 */ |
@@ -1131,13 +1164,17 @@ static const unsigned xirq_muxvals[] = { | |||
1131 | static const unsigned xirq_alternatives_pins[] = { | 1164 | static const unsigned xirq_alternatives_pins[] = { |
1132 | 184, 310, 316, | 1165 | 184, 310, 316, |
1133 | }; | 1166 | }; |
1134 | static const unsigned xirq_alternatives_muxvals[] = { | 1167 | static const int xirq_alternatives_muxvals[] = { |
1135 | 2, 2, 2, | 1168 | 2, 2, 2, |
1136 | }; | 1169 | }; |
1137 | 1170 | ||
1138 | static const struct uniphier_pinctrl_group ph1_pro4_groups[] = { | 1171 | static const struct uniphier_pinctrl_group uniphier_pro4_groups[] = { |
1139 | UNIPHIER_PINCTRL_GROUP(emmc), | 1172 | UNIPHIER_PINCTRL_GROUP(emmc), |
1140 | UNIPHIER_PINCTRL_GROUP(emmc_dat8), | 1173 | UNIPHIER_PINCTRL_GROUP(emmc_dat8), |
1174 | UNIPHIER_PINCTRL_GROUP(ether_mii), | ||
1175 | UNIPHIER_PINCTRL_GROUP(ether_rgmii), | ||
1176 | UNIPHIER_PINCTRL_GROUP(ether_rmii), | ||
1177 | UNIPHIER_PINCTRL_GROUP(ether_rmiib), | ||
1141 | UNIPHIER_PINCTRL_GROUP(i2c0), | 1178 | UNIPHIER_PINCTRL_GROUP(i2c0), |
1142 | UNIPHIER_PINCTRL_GROUP(i2c1), | 1179 | UNIPHIER_PINCTRL_GROUP(i2c1), |
1143 | UNIPHIER_PINCTRL_GROUP(i2c2), | 1180 | UNIPHIER_PINCTRL_GROUP(i2c2), |
@@ -1147,6 +1184,15 @@ static const struct uniphier_pinctrl_group ph1_pro4_groups[] = { | |||
1147 | UNIPHIER_PINCTRL_GROUP(nand_cs1), | 1184 | UNIPHIER_PINCTRL_GROUP(nand_cs1), |
1148 | UNIPHIER_PINCTRL_GROUP(sd), | 1185 | UNIPHIER_PINCTRL_GROUP(sd), |
1149 | UNIPHIER_PINCTRL_GROUP(sd1), | 1186 | UNIPHIER_PINCTRL_GROUP(sd1), |
1187 | UNIPHIER_PINCTRL_GROUP(system_bus), | ||
1188 | UNIPHIER_PINCTRL_GROUP(system_bus_cs0), | ||
1189 | UNIPHIER_PINCTRL_GROUP(system_bus_cs1), | ||
1190 | UNIPHIER_PINCTRL_GROUP(system_bus_cs2), | ||
1191 | UNIPHIER_PINCTRL_GROUP(system_bus_cs3), | ||
1192 | UNIPHIER_PINCTRL_GROUP(system_bus_cs4), | ||
1193 | UNIPHIER_PINCTRL_GROUP(system_bus_cs5), | ||
1194 | UNIPHIER_PINCTRL_GROUP(system_bus_cs6), | ||
1195 | UNIPHIER_PINCTRL_GROUP(system_bus_cs7), | ||
1150 | UNIPHIER_PINCTRL_GROUP(uart0), | 1196 | UNIPHIER_PINCTRL_GROUP(uart0), |
1151 | UNIPHIER_PINCTRL_GROUP(uart1), | 1197 | UNIPHIER_PINCTRL_GROUP(uart1), |
1152 | UNIPHIER_PINCTRL_GROUP(uart2), | 1198 | UNIPHIER_PINCTRL_GROUP(uart2), |
@@ -1413,6 +1459,9 @@ static const struct uniphier_pinctrl_group ph1_pro4_groups[] = { | |||
1413 | }; | 1459 | }; |
1414 | 1460 | ||
1415 | static const char * const emmc_groups[] = {"emmc", "emmc_dat8"}; | 1461 | static const char * const emmc_groups[] = {"emmc", "emmc_dat8"}; |
1462 | static const char * const ether_mii_groups[] = {"ether_mii"}; | ||
1463 | static const char * const ether_rgmii_groups[] = {"ether_rgmii"}; | ||
1464 | static const char * const ether_rmii_groups[] = {"ether_rgmii", "ether_rgmiib"}; | ||
1416 | static const char * const i2c0_groups[] = {"i2c0"}; | 1465 | static const char * const i2c0_groups[] = {"i2c0"}; |
1417 | static const char * const i2c1_groups[] = {"i2c1"}; | 1466 | static const char * const i2c1_groups[] = {"i2c1"}; |
1418 | static const char * const i2c2_groups[] = {"i2c2"}; | 1467 | static const char * const i2c2_groups[] = {"i2c2"}; |
@@ -1421,6 +1470,15 @@ static const char * const i2c6_groups[] = {"i2c6"}; | |||
1421 | static const char * const nand_groups[] = {"nand", "nand_cs1"}; | 1470 | static const char * const nand_groups[] = {"nand", "nand_cs1"}; |
1422 | static const char * const sd_groups[] = {"sd"}; | 1471 | static const char * const sd_groups[] = {"sd"}; |
1423 | static const char * const sd1_groups[] = {"sd1"}; | 1472 | static const char * const sd1_groups[] = {"sd1"}; |
1473 | static const char * const system_bus_groups[] = {"system_bus", | ||
1474 | "system_bus_cs0", | ||
1475 | "system_bus_cs1", | ||
1476 | "system_bus_cs2", | ||
1477 | "system_bus_cs3", | ||
1478 | "system_bus_cs4", | ||
1479 | "system_bus_cs5", | ||
1480 | "system_bus_cs6", | ||
1481 | "system_bus_cs7"}; | ||
1424 | static const char * const uart0_groups[] = {"uart0"}; | 1482 | static const char * const uart0_groups[] = {"uart0"}; |
1425 | static const char * const uart1_groups[] = {"uart1"}; | 1483 | static const char * const uart1_groups[] = {"uart1"}; |
1426 | static const char * const uart2_groups[] = {"uart2"}; | 1484 | static const char * const uart2_groups[] = {"uart2"}; |
@@ -1499,8 +1557,11 @@ static const char * const xirq_groups[] = { | |||
1499 | "xirq14b", "xirq17b", "xirq18b", | 1557 | "xirq14b", "xirq17b", "xirq18b", |
1500 | }; | 1558 | }; |
1501 | 1559 | ||
1502 | static const struct uniphier_pinmux_function ph1_pro4_functions[] = { | 1560 | static const struct uniphier_pinmux_function uniphier_pro4_functions[] = { |
1503 | UNIPHIER_PINMUX_FUNCTION(emmc), | 1561 | UNIPHIER_PINMUX_FUNCTION(emmc), |
1562 | UNIPHIER_PINMUX_FUNCTION(ether_mii), | ||
1563 | UNIPHIER_PINMUX_FUNCTION(ether_rgmii), | ||
1564 | UNIPHIER_PINMUX_FUNCTION(ether_rmii), | ||
1504 | UNIPHIER_PINMUX_FUNCTION(i2c0), | 1565 | UNIPHIER_PINMUX_FUNCTION(i2c0), |
1505 | UNIPHIER_PINMUX_FUNCTION(i2c1), | 1566 | UNIPHIER_PINMUX_FUNCTION(i2c1), |
1506 | UNIPHIER_PINMUX_FUNCTION(i2c2), | 1567 | UNIPHIER_PINMUX_FUNCTION(i2c2), |
@@ -1509,6 +1570,7 @@ static const struct uniphier_pinmux_function ph1_pro4_functions[] = { | |||
1509 | UNIPHIER_PINMUX_FUNCTION(nand), | 1570 | UNIPHIER_PINMUX_FUNCTION(nand), |
1510 | UNIPHIER_PINMUX_FUNCTION(sd), | 1571 | UNIPHIER_PINMUX_FUNCTION(sd), |
1511 | UNIPHIER_PINMUX_FUNCTION(sd1), | 1572 | UNIPHIER_PINMUX_FUNCTION(sd1), |
1573 | UNIPHIER_PINMUX_FUNCTION(system_bus), | ||
1512 | UNIPHIER_PINMUX_FUNCTION(uart0), | 1574 | UNIPHIER_PINMUX_FUNCTION(uart0), |
1513 | UNIPHIER_PINMUX_FUNCTION(uart1), | 1575 | UNIPHIER_PINMUX_FUNCTION(uart1), |
1514 | UNIPHIER_PINMUX_FUNCTION(uart2), | 1576 | UNIPHIER_PINMUX_FUNCTION(uart2), |
@@ -1521,43 +1583,36 @@ static const struct uniphier_pinmux_function ph1_pro4_functions[] = { | |||
1521 | UNIPHIER_PINMUX_FUNCTION(xirq), | 1583 | UNIPHIER_PINMUX_FUNCTION(xirq), |
1522 | }; | 1584 | }; |
1523 | 1585 | ||
1524 | static struct uniphier_pinctrl_socdata ph1_pro4_pindata = { | 1586 | static struct uniphier_pinctrl_socdata uniphier_pro4_pindata = { |
1525 | .groups = ph1_pro4_groups, | 1587 | .pins = uniphier_pro4_pins, |
1526 | .groups_count = ARRAY_SIZE(ph1_pro4_groups), | 1588 | .npins = ARRAY_SIZE(uniphier_pro4_pins), |
1527 | .functions = ph1_pro4_functions, | 1589 | .groups = uniphier_pro4_groups, |
1528 | .functions_count = ARRAY_SIZE(ph1_pro4_functions), | 1590 | .groups_count = ARRAY_SIZE(uniphier_pro4_groups), |
1529 | .mux_bits = 4, | 1591 | .functions = uniphier_pro4_functions, |
1530 | .reg_stride = 8, | 1592 | .functions_count = ARRAY_SIZE(uniphier_pro4_functions), |
1531 | .load_pinctrl = true, | 1593 | .caps = UNIPHIER_PINCTRL_CAPS_DBGMUX_SEPARATE, |
1532 | }; | ||
1533 | |||
1534 | static struct pinctrl_desc ph1_pro4_pinctrl_desc = { | ||
1535 | .name = DRIVER_NAME, | ||
1536 | .pins = ph1_pro4_pins, | ||
1537 | .npins = ARRAY_SIZE(ph1_pro4_pins), | ||
1538 | .owner = THIS_MODULE, | ||
1539 | }; | 1594 | }; |
1540 | 1595 | ||
1541 | static int ph1_pro4_pinctrl_probe(struct platform_device *pdev) | 1596 | static int uniphier_pro4_pinctrl_probe(struct platform_device *pdev) |
1542 | { | 1597 | { |
1543 | return uniphier_pinctrl_probe(pdev, &ph1_pro4_pinctrl_desc, | 1598 | return uniphier_pinctrl_probe(pdev, &uniphier_pro4_pindata); |
1544 | &ph1_pro4_pindata); | ||
1545 | } | 1599 | } |
1546 | 1600 | ||
1547 | static const struct of_device_id ph1_pro4_pinctrl_match[] = { | 1601 | static const struct of_device_id uniphier_pro4_pinctrl_match[] = { |
1602 | { .compatible = "socionext,uniphier-pro4-pinctrl" }, | ||
1548 | { .compatible = "socionext,ph1-pro4-pinctrl" }, | 1603 | { .compatible = "socionext,ph1-pro4-pinctrl" }, |
1549 | { /* sentinel */ } | 1604 | { /* sentinel */ } |
1550 | }; | 1605 | }; |
1551 | MODULE_DEVICE_TABLE(of, ph1_pro4_pinctrl_match); | 1606 | MODULE_DEVICE_TABLE(of, uniphier_pro4_pinctrl_match); |
1552 | 1607 | ||
1553 | static struct platform_driver ph1_pro4_pinctrl_driver = { | 1608 | static struct platform_driver uniphier_pro4_pinctrl_driver = { |
1554 | .probe = ph1_pro4_pinctrl_probe, | 1609 | .probe = uniphier_pro4_pinctrl_probe, |
1555 | .driver = { | 1610 | .driver = { |
1556 | .name = DRIVER_NAME, | 1611 | .name = "uniphier-pro4-pinctrl", |
1557 | .of_match_table = ph1_pro4_pinctrl_match, | 1612 | .of_match_table = uniphier_pro4_pinctrl_match, |
1558 | }, | 1613 | }, |
1559 | }; | 1614 | }; |
1560 | module_platform_driver(ph1_pro4_pinctrl_driver); | 1615 | module_platform_driver(uniphier_pro4_pinctrl_driver); |
1561 | 1616 | ||
1562 | MODULE_AUTHOR("Masahiro Yamada <yamada.masahiro@socionext.com>"); | 1617 | MODULE_AUTHOR("Masahiro Yamada <yamada.masahiro@socionext.com>"); |
1563 | MODULE_DESCRIPTION("UniPhier PH1-Pro4 pinctrl driver"); | 1618 | MODULE_DESCRIPTION("UniPhier PH1-Pro4 pinctrl driver"); |
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-pro5.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-pro5.c index 3087f76752a6..55d4a12282a0 100644 --- a/drivers/pinctrl/uniphier/pinctrl-uniphier-pro5.c +++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-pro5.c | |||
@@ -19,823 +19,840 @@ | |||
19 | 19 | ||
20 | #include "pinctrl-uniphier.h" | 20 | #include "pinctrl-uniphier.h" |
21 | 21 | ||
22 | #define DRIVER_NAME "ph1-pro5-pinctrl" | 22 | static const struct pinctrl_pin_desc uniphier_pro5_pins[] = { |
23 | |||
24 | static const struct pinctrl_pin_desc ph1_pro5_pins[] = { | ||
25 | UNIPHIER_PINCTRL_PIN(0, "AEXCKA1", 0, | 23 | UNIPHIER_PINCTRL_PIN(0, "AEXCKA1", 0, |
26 | 0, UNIPHIER_PIN_DRV_4_8, | 24 | 0, UNIPHIER_PIN_DRV_1BIT, |
27 | 0, UNIPHIER_PIN_PULL_DOWN), | 25 | 0, UNIPHIER_PIN_PULL_DOWN), |
28 | UNIPHIER_PINCTRL_PIN(1, "AEXCKA2", 0, | 26 | UNIPHIER_PINCTRL_PIN(1, "AEXCKA2", 0, |
29 | 1, UNIPHIER_PIN_DRV_4_8, | 27 | 1, UNIPHIER_PIN_DRV_1BIT, |
30 | 1, UNIPHIER_PIN_PULL_DOWN), | 28 | 1, UNIPHIER_PIN_PULL_DOWN), |
31 | UNIPHIER_PINCTRL_PIN(2, "CK27EXI", 0, | 29 | UNIPHIER_PINCTRL_PIN(2, "CK27EXI", 0, |
32 | 2, UNIPHIER_PIN_DRV_4_8, | 30 | 2, UNIPHIER_PIN_DRV_1BIT, |
33 | 2, UNIPHIER_PIN_PULL_DOWN), | 31 | 2, UNIPHIER_PIN_PULL_DOWN), |
34 | UNIPHIER_PINCTRL_PIN(3, "CK54EXI", 0, | 32 | UNIPHIER_PINCTRL_PIN(3, "CK54EXI", 0, |
35 | 3, UNIPHIER_PIN_DRV_4_8, | 33 | 3, UNIPHIER_PIN_DRV_1BIT, |
36 | 3, UNIPHIER_PIN_PULL_DOWN), | 34 | 3, UNIPHIER_PIN_PULL_DOWN), |
37 | UNIPHIER_PINCTRL_PIN(4, "ED0", UNIPHIER_PIN_IECTRL_NONE, | 35 | UNIPHIER_PINCTRL_PIN(4, "ED0", UNIPHIER_PIN_IECTRL_NONE, |
38 | 4, UNIPHIER_PIN_DRV_4_8, | 36 | 4, UNIPHIER_PIN_DRV_1BIT, |
39 | 4, UNIPHIER_PIN_PULL_DOWN), | 37 | 4, UNIPHIER_PIN_PULL_DOWN), |
40 | UNIPHIER_PINCTRL_PIN(5, "ED1", UNIPHIER_PIN_IECTRL_NONE, | 38 | UNIPHIER_PINCTRL_PIN(5, "ED1", UNIPHIER_PIN_IECTRL_NONE, |
41 | 5, UNIPHIER_PIN_DRV_4_8, | 39 | 5, UNIPHIER_PIN_DRV_1BIT, |
42 | 5, UNIPHIER_PIN_PULL_DOWN), | 40 | 5, UNIPHIER_PIN_PULL_DOWN), |
43 | UNIPHIER_PINCTRL_PIN(6, "ED2", UNIPHIER_PIN_IECTRL_NONE, | 41 | UNIPHIER_PINCTRL_PIN(6, "ED2", UNIPHIER_PIN_IECTRL_NONE, |
44 | 6, UNIPHIER_PIN_DRV_4_8, | 42 | 6, UNIPHIER_PIN_DRV_1BIT, |
45 | 6, UNIPHIER_PIN_PULL_DOWN), | 43 | 6, UNIPHIER_PIN_PULL_DOWN), |
46 | UNIPHIER_PINCTRL_PIN(7, "ED3", UNIPHIER_PIN_IECTRL_NONE, | 44 | UNIPHIER_PINCTRL_PIN(7, "ED3", UNIPHIER_PIN_IECTRL_NONE, |
47 | 7, UNIPHIER_PIN_DRV_4_8, | 45 | 7, UNIPHIER_PIN_DRV_1BIT, |
48 | 7, UNIPHIER_PIN_PULL_DOWN), | 46 | 7, UNIPHIER_PIN_PULL_DOWN), |
49 | UNIPHIER_PINCTRL_PIN(8, "ED4", UNIPHIER_PIN_IECTRL_NONE, | 47 | UNIPHIER_PINCTRL_PIN(8, "ED4", UNIPHIER_PIN_IECTRL_NONE, |
50 | 8, UNIPHIER_PIN_DRV_4_8, | 48 | 8, UNIPHIER_PIN_DRV_1BIT, |
51 | 8, UNIPHIER_PIN_PULL_DOWN), | 49 | 8, UNIPHIER_PIN_PULL_DOWN), |
52 | UNIPHIER_PINCTRL_PIN(9, "ED5", UNIPHIER_PIN_IECTRL_NONE, | 50 | UNIPHIER_PINCTRL_PIN(9, "ED5", UNIPHIER_PIN_IECTRL_NONE, |
53 | 9, UNIPHIER_PIN_DRV_4_8, | 51 | 9, UNIPHIER_PIN_DRV_1BIT, |
54 | 9, UNIPHIER_PIN_PULL_DOWN), | 52 | 9, UNIPHIER_PIN_PULL_DOWN), |
55 | UNIPHIER_PINCTRL_PIN(10, "ED6", UNIPHIER_PIN_IECTRL_NONE, | 53 | UNIPHIER_PINCTRL_PIN(10, "ED6", UNIPHIER_PIN_IECTRL_NONE, |
56 | 10, UNIPHIER_PIN_DRV_4_8, | 54 | 10, UNIPHIER_PIN_DRV_1BIT, |
57 | 10, UNIPHIER_PIN_PULL_DOWN), | 55 | 10, UNIPHIER_PIN_PULL_DOWN), |
58 | UNIPHIER_PINCTRL_PIN(11, "ED7", UNIPHIER_PIN_IECTRL_NONE, | 56 | UNIPHIER_PINCTRL_PIN(11, "ED7", UNIPHIER_PIN_IECTRL_NONE, |
59 | 11, UNIPHIER_PIN_DRV_4_8, | 57 | 11, UNIPHIER_PIN_DRV_1BIT, |
60 | 11, UNIPHIER_PIN_PULL_DOWN), | 58 | 11, UNIPHIER_PIN_PULL_DOWN), |
61 | UNIPHIER_PINCTRL_PIN(12, "XERWE0", UNIPHIER_PIN_IECTRL_NONE, | 59 | UNIPHIER_PINCTRL_PIN(12, "XERWE0", UNIPHIER_PIN_IECTRL_NONE, |
62 | 12, UNIPHIER_PIN_DRV_4_8, | 60 | 12, UNIPHIER_PIN_DRV_1BIT, |
63 | 12, UNIPHIER_PIN_PULL_UP), | 61 | 12, UNIPHIER_PIN_PULL_UP), |
64 | UNIPHIER_PINCTRL_PIN(13, "XERWE1", UNIPHIER_PIN_IECTRL_NONE, | 62 | UNIPHIER_PINCTRL_PIN(13, "XERWE1", UNIPHIER_PIN_IECTRL_NONE, |
65 | 13, UNIPHIER_PIN_DRV_4_8, | 63 | 13, UNIPHIER_PIN_DRV_1BIT, |
66 | 13, UNIPHIER_PIN_PULL_UP), | 64 | 13, UNIPHIER_PIN_PULL_UP), |
67 | UNIPHIER_PINCTRL_PIN(14, "ERXW", UNIPHIER_PIN_IECTRL_NONE, | 65 | UNIPHIER_PINCTRL_PIN(14, "ERXW", UNIPHIER_PIN_IECTRL_NONE, |
68 | 14, UNIPHIER_PIN_DRV_4_8, | 66 | 14, UNIPHIER_PIN_DRV_1BIT, |
69 | 14, UNIPHIER_PIN_PULL_UP), | 67 | 14, UNIPHIER_PIN_PULL_UP), |
70 | UNIPHIER_PINCTRL_PIN(15, "ES0", UNIPHIER_PIN_IECTRL_NONE, | 68 | UNIPHIER_PINCTRL_PIN(15, "ES0", UNIPHIER_PIN_IECTRL_NONE, |
71 | 15, UNIPHIER_PIN_DRV_4_8, | 69 | 15, UNIPHIER_PIN_DRV_1BIT, |
72 | 15, UNIPHIER_PIN_PULL_UP), | 70 | 15, UNIPHIER_PIN_PULL_UP), |
73 | UNIPHIER_PINCTRL_PIN(16, "ES1", UNIPHIER_PIN_IECTRL_NONE, | 71 | UNIPHIER_PINCTRL_PIN(16, "ES1", UNIPHIER_PIN_IECTRL_NONE, |
74 | 16, UNIPHIER_PIN_DRV_4_8, | 72 | 16, UNIPHIER_PIN_DRV_1BIT, |
75 | 16, UNIPHIER_PIN_PULL_UP), | 73 | 16, UNIPHIER_PIN_PULL_UP), |
76 | UNIPHIER_PINCTRL_PIN(17, "ES2", UNIPHIER_PIN_IECTRL_NONE, | 74 | UNIPHIER_PINCTRL_PIN(17, "ES2", UNIPHIER_PIN_IECTRL_NONE, |
77 | 17, UNIPHIER_PIN_DRV_4_8, | 75 | 17, UNIPHIER_PIN_DRV_1BIT, |
78 | 17, UNIPHIER_PIN_PULL_UP), | 76 | 17, UNIPHIER_PIN_PULL_UP), |
79 | UNIPHIER_PINCTRL_PIN(18, "XECS1", UNIPHIER_PIN_IECTRL_NONE, | 77 | UNIPHIER_PINCTRL_PIN(18, "XECS1", UNIPHIER_PIN_IECTRL_NONE, |
80 | 18, UNIPHIER_PIN_DRV_4_8, | 78 | 18, UNIPHIER_PIN_DRV_1BIT, |
81 | 18, UNIPHIER_PIN_PULL_UP), | 79 | 18, UNIPHIER_PIN_PULL_UP), |
82 | UNIPHIER_PINCTRL_PIN(19, "XNFRE", UNIPHIER_PIN_IECTRL_NONE, | 80 | UNIPHIER_PINCTRL_PIN(19, "XNFRE", UNIPHIER_PIN_IECTRL_NONE, |
83 | 19, UNIPHIER_PIN_DRV_4_8, | 81 | 19, UNIPHIER_PIN_DRV_1BIT, |
84 | 19, UNIPHIER_PIN_PULL_UP), | 82 | 19, UNIPHIER_PIN_PULL_UP), |
85 | UNIPHIER_PINCTRL_PIN(20, "XNFWE", UNIPHIER_PIN_IECTRL_NONE, | 83 | UNIPHIER_PINCTRL_PIN(20, "XNFWE", UNIPHIER_PIN_IECTRL_NONE, |
86 | 20, UNIPHIER_PIN_DRV_4_8, | 84 | 20, UNIPHIER_PIN_DRV_1BIT, |
87 | 20, UNIPHIER_PIN_PULL_UP), | 85 | 20, UNIPHIER_PIN_PULL_UP), |
88 | UNIPHIER_PINCTRL_PIN(21, "NFALE", UNIPHIER_PIN_IECTRL_NONE, | 86 | UNIPHIER_PINCTRL_PIN(21, "NFALE", UNIPHIER_PIN_IECTRL_NONE, |
89 | 21, UNIPHIER_PIN_DRV_4_8, | 87 | 21, UNIPHIER_PIN_DRV_1BIT, |
90 | 21, UNIPHIER_PIN_PULL_DOWN), | 88 | 21, UNIPHIER_PIN_PULL_DOWN), |
91 | UNIPHIER_PINCTRL_PIN(22, "NFCLE", UNIPHIER_PIN_IECTRL_NONE, | 89 | UNIPHIER_PINCTRL_PIN(22, "NFCLE", UNIPHIER_PIN_IECTRL_NONE, |
92 | 22, UNIPHIER_PIN_DRV_4_8, | 90 | 22, UNIPHIER_PIN_DRV_1BIT, |
93 | 22, UNIPHIER_PIN_PULL_DOWN), | 91 | 22, UNIPHIER_PIN_PULL_DOWN), |
94 | UNIPHIER_PINCTRL_PIN(23, "XNFWP", UNIPHIER_PIN_IECTRL_NONE, | 92 | UNIPHIER_PINCTRL_PIN(23, "XNFWP", UNIPHIER_PIN_IECTRL_NONE, |
95 | 23, UNIPHIER_PIN_DRV_4_8, | 93 | 23, UNIPHIER_PIN_DRV_1BIT, |
96 | 23, UNIPHIER_PIN_PULL_DOWN), | 94 | 23, UNIPHIER_PIN_PULL_DOWN), |
97 | UNIPHIER_PINCTRL_PIN(24, "XNFCE0", UNIPHIER_PIN_IECTRL_NONE, | 95 | UNIPHIER_PINCTRL_PIN(24, "XNFCE0", UNIPHIER_PIN_IECTRL_NONE, |
98 | 24, UNIPHIER_PIN_DRV_4_8, | 96 | 24, UNIPHIER_PIN_DRV_1BIT, |
99 | 24, UNIPHIER_PIN_PULL_UP), | 97 | 24, UNIPHIER_PIN_PULL_UP), |
100 | UNIPHIER_PINCTRL_PIN(25, "NFRYBY0", UNIPHIER_PIN_IECTRL_NONE, | 98 | UNIPHIER_PINCTRL_PIN(25, "NFRYBY0", UNIPHIER_PIN_IECTRL_NONE, |
101 | 25, UNIPHIER_PIN_DRV_4_8, | 99 | 25, UNIPHIER_PIN_DRV_1BIT, |
102 | 25, UNIPHIER_PIN_PULL_UP), | 100 | 25, UNIPHIER_PIN_PULL_UP), |
103 | UNIPHIER_PINCTRL_PIN(26, "XNFCE1", UNIPHIER_PIN_IECTRL_NONE, | 101 | UNIPHIER_PINCTRL_PIN(26, "XNFCE1", UNIPHIER_PIN_IECTRL_NONE, |
104 | 26, UNIPHIER_PIN_DRV_4_8, | 102 | 26, UNIPHIER_PIN_DRV_1BIT, |
105 | 26, UNIPHIER_PIN_PULL_UP), | 103 | 26, UNIPHIER_PIN_PULL_UP), |
106 | UNIPHIER_PINCTRL_PIN(27, "NFRYBY1", UNIPHIER_PIN_IECTRL_NONE, | 104 | UNIPHIER_PINCTRL_PIN(27, "NFRYBY1", UNIPHIER_PIN_IECTRL_NONE, |
107 | 27, UNIPHIER_PIN_DRV_4_8, | 105 | 27, UNIPHIER_PIN_DRV_1BIT, |
108 | 27, UNIPHIER_PIN_PULL_UP), | 106 | 27, UNIPHIER_PIN_PULL_UP), |
109 | UNIPHIER_PINCTRL_PIN(28, "NFD0", UNIPHIER_PIN_IECTRL_NONE, | 107 | UNIPHIER_PINCTRL_PIN(28, "NFD0", UNIPHIER_PIN_IECTRL_NONE, |
110 | 28, UNIPHIER_PIN_DRV_4_8, | 108 | 28, UNIPHIER_PIN_DRV_1BIT, |
111 | 28, UNIPHIER_PIN_PULL_UP), | 109 | 28, UNIPHIER_PIN_PULL_UP), |
112 | UNIPHIER_PINCTRL_PIN(29, "NFD1", UNIPHIER_PIN_IECTRL_NONE, | 110 | UNIPHIER_PINCTRL_PIN(29, "NFD1", UNIPHIER_PIN_IECTRL_NONE, |
113 | 29, UNIPHIER_PIN_DRV_4_8, | 111 | 29, UNIPHIER_PIN_DRV_1BIT, |
114 | 29, UNIPHIER_PIN_PULL_UP), | 112 | 29, UNIPHIER_PIN_PULL_UP), |
115 | UNIPHIER_PINCTRL_PIN(30, "NFD2", UNIPHIER_PIN_IECTRL_NONE, | 113 | UNIPHIER_PINCTRL_PIN(30, "NFD2", UNIPHIER_PIN_IECTRL_NONE, |
116 | 30, UNIPHIER_PIN_DRV_4_8, | 114 | 30, UNIPHIER_PIN_DRV_1BIT, |
117 | 30, UNIPHIER_PIN_PULL_UP), | 115 | 30, UNIPHIER_PIN_PULL_UP), |
118 | UNIPHIER_PINCTRL_PIN(31, "NFD3", UNIPHIER_PIN_IECTRL_NONE, | 116 | UNIPHIER_PINCTRL_PIN(31, "NFD3", UNIPHIER_PIN_IECTRL_NONE, |
119 | 31, UNIPHIER_PIN_DRV_4_8, | 117 | 31, UNIPHIER_PIN_DRV_1BIT, |
120 | 31, UNIPHIER_PIN_PULL_UP), | 118 | 31, UNIPHIER_PIN_PULL_UP), |
121 | UNIPHIER_PINCTRL_PIN(32, "NFD4", UNIPHIER_PIN_IECTRL_NONE, | 119 | UNIPHIER_PINCTRL_PIN(32, "NFD4", UNIPHIER_PIN_IECTRL_NONE, |
122 | 32, UNIPHIER_PIN_DRV_4_8, | 120 | 32, UNIPHIER_PIN_DRV_1BIT, |
123 | 32, UNIPHIER_PIN_PULL_UP), | 121 | 32, UNIPHIER_PIN_PULL_UP), |
124 | UNIPHIER_PINCTRL_PIN(33, "NFD5", UNIPHIER_PIN_IECTRL_NONE, | 122 | UNIPHIER_PINCTRL_PIN(33, "NFD5", UNIPHIER_PIN_IECTRL_NONE, |
125 | 33, UNIPHIER_PIN_DRV_4_8, | 123 | 33, UNIPHIER_PIN_DRV_1BIT, |
126 | 33, UNIPHIER_PIN_PULL_UP), | 124 | 33, UNIPHIER_PIN_PULL_UP), |
127 | UNIPHIER_PINCTRL_PIN(34, "NFD6", UNIPHIER_PIN_IECTRL_NONE, | 125 | UNIPHIER_PINCTRL_PIN(34, "NFD6", UNIPHIER_PIN_IECTRL_NONE, |
128 | 34, UNIPHIER_PIN_DRV_4_8, | 126 | 34, UNIPHIER_PIN_DRV_1BIT, |
129 | 34, UNIPHIER_PIN_PULL_UP), | 127 | 34, UNIPHIER_PIN_PULL_UP), |
130 | UNIPHIER_PINCTRL_PIN(35, "NFD7", UNIPHIER_PIN_IECTRL_NONE, | 128 | UNIPHIER_PINCTRL_PIN(35, "NFD7", UNIPHIER_PIN_IECTRL_NONE, |
131 | 35, UNIPHIER_PIN_DRV_4_8, | 129 | 35, UNIPHIER_PIN_DRV_1BIT, |
132 | 35, UNIPHIER_PIN_PULL_UP), | 130 | 35, UNIPHIER_PIN_PULL_UP), |
133 | UNIPHIER_PINCTRL_PIN(36, "XERST", UNIPHIER_PIN_IECTRL_NONE, | 131 | UNIPHIER_PINCTRL_PIN(36, "XERST", UNIPHIER_PIN_IECTRL_NONE, |
134 | 36, UNIPHIER_PIN_DRV_4_8, | 132 | 36, UNIPHIER_PIN_DRV_1BIT, |
135 | 36, UNIPHIER_PIN_PULL_UP), | 133 | 36, UNIPHIER_PIN_PULL_UP), |
136 | UNIPHIER_PINCTRL_PIN(37, "MMCCLK", UNIPHIER_PIN_IECTRL_NONE, | 134 | UNIPHIER_PINCTRL_PIN(37, "MMCCLK", UNIPHIER_PIN_IECTRL_NONE, |
137 | 37, UNIPHIER_PIN_DRV_4_8, | 135 | 37, UNIPHIER_PIN_DRV_1BIT, |
138 | 37, UNIPHIER_PIN_PULL_UP), | 136 | 37, UNIPHIER_PIN_PULL_UP), |
139 | UNIPHIER_PINCTRL_PIN(38, "MMCCMD", UNIPHIER_PIN_IECTRL_NONE, | 137 | UNIPHIER_PINCTRL_PIN(38, "MMCCMD", UNIPHIER_PIN_IECTRL_NONE, |
140 | 38, UNIPHIER_PIN_DRV_4_8, | 138 | 38, UNIPHIER_PIN_DRV_1BIT, |
141 | 38, UNIPHIER_PIN_PULL_UP), | 139 | 38, UNIPHIER_PIN_PULL_UP), |
142 | UNIPHIER_PINCTRL_PIN(39, "MMCDAT0", UNIPHIER_PIN_IECTRL_NONE, | 140 | UNIPHIER_PINCTRL_PIN(39, "MMCDAT0", UNIPHIER_PIN_IECTRL_NONE, |
143 | 39, UNIPHIER_PIN_DRV_4_8, | 141 | 39, UNIPHIER_PIN_DRV_1BIT, |
144 | 39, UNIPHIER_PIN_PULL_UP), | 142 | 39, UNIPHIER_PIN_PULL_UP), |
145 | UNIPHIER_PINCTRL_PIN(40, "MMCDAT1", UNIPHIER_PIN_IECTRL_NONE, | 143 | UNIPHIER_PINCTRL_PIN(40, "MMCDAT1", UNIPHIER_PIN_IECTRL_NONE, |
146 | 40, UNIPHIER_PIN_DRV_4_8, | 144 | 40, UNIPHIER_PIN_DRV_1BIT, |
147 | 40, UNIPHIER_PIN_PULL_UP), | 145 | 40, UNIPHIER_PIN_PULL_UP), |
148 | UNIPHIER_PINCTRL_PIN(41, "MMCDAT2", UNIPHIER_PIN_IECTRL_NONE, | 146 | UNIPHIER_PINCTRL_PIN(41, "MMCDAT2", UNIPHIER_PIN_IECTRL_NONE, |
149 | 41, UNIPHIER_PIN_DRV_4_8, | 147 | 41, UNIPHIER_PIN_DRV_1BIT, |
150 | 41, UNIPHIER_PIN_PULL_UP), | 148 | 41, UNIPHIER_PIN_PULL_UP), |
151 | UNIPHIER_PINCTRL_PIN(42, "MMCDAT3", UNIPHIER_PIN_IECTRL_NONE, | 149 | UNIPHIER_PINCTRL_PIN(42, "MMCDAT3", UNIPHIER_PIN_IECTRL_NONE, |
152 | 42, UNIPHIER_PIN_DRV_4_8, | 150 | 42, UNIPHIER_PIN_DRV_1BIT, |
153 | 42, UNIPHIER_PIN_PULL_UP), | 151 | 42, UNIPHIER_PIN_PULL_UP), |
154 | UNIPHIER_PINCTRL_PIN(43, "MMCDAT4", UNIPHIER_PIN_IECTRL_NONE, | 152 | UNIPHIER_PINCTRL_PIN(43, "MMCDAT4", UNIPHIER_PIN_IECTRL_NONE, |
155 | 43, UNIPHIER_PIN_DRV_4_8, | 153 | 43, UNIPHIER_PIN_DRV_1BIT, |
156 | 43, UNIPHIER_PIN_PULL_UP), | 154 | 43, UNIPHIER_PIN_PULL_UP), |
157 | UNIPHIER_PINCTRL_PIN(44, "MMCDAT5", UNIPHIER_PIN_IECTRL_NONE, | 155 | UNIPHIER_PINCTRL_PIN(44, "MMCDAT5", UNIPHIER_PIN_IECTRL_NONE, |
158 | 44, UNIPHIER_PIN_DRV_4_8, | 156 | 44, UNIPHIER_PIN_DRV_1BIT, |
159 | 44, UNIPHIER_PIN_PULL_UP), | 157 | 44, UNIPHIER_PIN_PULL_UP), |
160 | UNIPHIER_PINCTRL_PIN(45, "MMCDAT6", UNIPHIER_PIN_IECTRL_NONE, | 158 | UNIPHIER_PINCTRL_PIN(45, "MMCDAT6", UNIPHIER_PIN_IECTRL_NONE, |
161 | 45, UNIPHIER_PIN_DRV_4_8, | 159 | 45, UNIPHIER_PIN_DRV_1BIT, |
162 | 45, UNIPHIER_PIN_PULL_UP), | 160 | 45, UNIPHIER_PIN_PULL_UP), |
163 | UNIPHIER_PINCTRL_PIN(46, "MMCDAT7", UNIPHIER_PIN_IECTRL_NONE, | 161 | UNIPHIER_PINCTRL_PIN(46, "MMCDAT7", UNIPHIER_PIN_IECTRL_NONE, |
164 | 46, UNIPHIER_PIN_DRV_4_8, | 162 | 46, UNIPHIER_PIN_DRV_1BIT, |
165 | 46, UNIPHIER_PIN_PULL_UP), | 163 | 46, UNIPHIER_PIN_PULL_UP), |
166 | UNIPHIER_PINCTRL_PIN(47, "TXD0", 0, | 164 | UNIPHIER_PINCTRL_PIN(47, "TXD0", 0, |
167 | 47, UNIPHIER_PIN_DRV_4_8, | 165 | 47, UNIPHIER_PIN_DRV_1BIT, |
168 | 47, UNIPHIER_PIN_PULL_UP), | 166 | 47, UNIPHIER_PIN_PULL_UP), |
169 | UNIPHIER_PINCTRL_PIN(48, "RXD0", 0, | 167 | UNIPHIER_PINCTRL_PIN(48, "RXD0", 0, |
170 | 48, UNIPHIER_PIN_DRV_4_8, | 168 | 48, UNIPHIER_PIN_DRV_1BIT, |
171 | 48, UNIPHIER_PIN_PULL_UP), | 169 | 48, UNIPHIER_PIN_PULL_UP), |
172 | UNIPHIER_PINCTRL_PIN(49, "TXD1", 0, | 170 | UNIPHIER_PINCTRL_PIN(49, "TXD1", 0, |
173 | 49, UNIPHIER_PIN_DRV_4_8, | 171 | 49, UNIPHIER_PIN_DRV_1BIT, |
174 | 49, UNIPHIER_PIN_PULL_UP), | 172 | 49, UNIPHIER_PIN_PULL_UP), |
175 | UNIPHIER_PINCTRL_PIN(50, "RXD1", 0, | 173 | UNIPHIER_PINCTRL_PIN(50, "RXD1", 0, |
176 | 50, UNIPHIER_PIN_DRV_4_8, | 174 | 50, UNIPHIER_PIN_DRV_1BIT, |
177 | 50, UNIPHIER_PIN_PULL_UP), | 175 | 50, UNIPHIER_PIN_PULL_UP), |
178 | UNIPHIER_PINCTRL_PIN(51, "TXD2", UNIPHIER_PIN_IECTRL_NONE, | 176 | UNIPHIER_PINCTRL_PIN(51, "TXD2", UNIPHIER_PIN_IECTRL_NONE, |
179 | 51, UNIPHIER_PIN_DRV_4_8, | 177 | 51, UNIPHIER_PIN_DRV_1BIT, |
180 | 51, UNIPHIER_PIN_PULL_UP), | 178 | 51, UNIPHIER_PIN_PULL_UP), |
181 | UNIPHIER_PINCTRL_PIN(52, "RXD2", UNIPHIER_PIN_IECTRL_NONE, | 179 | UNIPHIER_PINCTRL_PIN(52, "RXD2", UNIPHIER_PIN_IECTRL_NONE, |
182 | 52, UNIPHIER_PIN_DRV_4_8, | 180 | 52, UNIPHIER_PIN_DRV_1BIT, |
183 | 52, UNIPHIER_PIN_PULL_UP), | 181 | 52, UNIPHIER_PIN_PULL_UP), |
184 | UNIPHIER_PINCTRL_PIN(53, "TXD3", 0, | 182 | UNIPHIER_PINCTRL_PIN(53, "TXD3", 0, |
185 | 53, UNIPHIER_PIN_DRV_4_8, | 183 | 53, UNIPHIER_PIN_DRV_1BIT, |
186 | 53, UNIPHIER_PIN_PULL_UP), | 184 | 53, UNIPHIER_PIN_PULL_UP), |
187 | UNIPHIER_PINCTRL_PIN(54, "RXD3", 0, | 185 | UNIPHIER_PINCTRL_PIN(54, "RXD3", 0, |
188 | 54, UNIPHIER_PIN_DRV_4_8, | 186 | 54, UNIPHIER_PIN_DRV_1BIT, |
189 | 54, UNIPHIER_PIN_PULL_UP), | 187 | 54, UNIPHIER_PIN_PULL_UP), |
190 | UNIPHIER_PINCTRL_PIN(55, "MS0CS0", 0, | 188 | UNIPHIER_PINCTRL_PIN(55, "MS0CS0", 0, |
191 | 55, UNIPHIER_PIN_DRV_4_8, | 189 | 55, UNIPHIER_PIN_DRV_1BIT, |
192 | 55, UNIPHIER_PIN_PULL_DOWN), | 190 | 55, UNIPHIER_PIN_PULL_DOWN), |
193 | UNIPHIER_PINCTRL_PIN(56, "MS0DO", 0, | 191 | UNIPHIER_PINCTRL_PIN(56, "MS0DO", 0, |
194 | 56, UNIPHIER_PIN_DRV_4_8, | 192 | 56, UNIPHIER_PIN_DRV_1BIT, |
195 | 56, UNIPHIER_PIN_PULL_DOWN), | 193 | 56, UNIPHIER_PIN_PULL_DOWN), |
196 | UNIPHIER_PINCTRL_PIN(57, "MS0DI", 0, | 194 | UNIPHIER_PINCTRL_PIN(57, "MS0DI", 0, |
197 | 57, UNIPHIER_PIN_DRV_4_8, | 195 | 57, UNIPHIER_PIN_DRV_1BIT, |
198 | 57, UNIPHIER_PIN_PULL_DOWN), | 196 | 57, UNIPHIER_PIN_PULL_DOWN), |
199 | UNIPHIER_PINCTRL_PIN(58, "MS0CLK", 0, | 197 | UNIPHIER_PINCTRL_PIN(58, "MS0CLK", 0, |
200 | 58, UNIPHIER_PIN_DRV_4_8, | 198 | 58, UNIPHIER_PIN_DRV_1BIT, |
201 | 58, UNIPHIER_PIN_PULL_DOWN), | 199 | 58, UNIPHIER_PIN_PULL_DOWN), |
202 | UNIPHIER_PINCTRL_PIN(59, "CSCLK", 0, | 200 | UNIPHIER_PINCTRL_PIN(59, "CSCLK", 0, |
203 | 59, UNIPHIER_PIN_DRV_4_8, | 201 | 59, UNIPHIER_PIN_DRV_1BIT, |
204 | 59, UNIPHIER_PIN_PULL_DOWN), | 202 | 59, UNIPHIER_PIN_PULL_DOWN), |
205 | UNIPHIER_PINCTRL_PIN(60, "CSBPTM", 0, | 203 | UNIPHIER_PINCTRL_PIN(60, "CSBPTM", 0, |
206 | 60, UNIPHIER_PIN_DRV_4_8, | 204 | 60, UNIPHIER_PIN_DRV_1BIT, |
207 | 60, UNIPHIER_PIN_PULL_DOWN), | 205 | 60, UNIPHIER_PIN_PULL_DOWN), |
208 | UNIPHIER_PINCTRL_PIN(61, "CSBMTP", 0, | 206 | UNIPHIER_PINCTRL_PIN(61, "CSBMTP", 0, |
209 | 61, UNIPHIER_PIN_DRV_4_8, | 207 | 61, UNIPHIER_PIN_DRV_1BIT, |
210 | 61, UNIPHIER_PIN_PULL_DOWN), | 208 | 61, UNIPHIER_PIN_PULL_DOWN), |
211 | UNIPHIER_PINCTRL_PIN(62, "XCINTP", 0, | 209 | UNIPHIER_PINCTRL_PIN(62, "XCINTP", 0, |
212 | 62, UNIPHIER_PIN_DRV_4_8, | 210 | 62, UNIPHIER_PIN_DRV_1BIT, |
213 | 62, UNIPHIER_PIN_PULL_DOWN), | 211 | 62, UNIPHIER_PIN_PULL_DOWN), |
214 | UNIPHIER_PINCTRL_PIN(63, "XCINTM", 0, | 212 | UNIPHIER_PINCTRL_PIN(63, "XCINTM", 0, |
215 | 63, UNIPHIER_PIN_DRV_4_8, | 213 | 63, UNIPHIER_PIN_DRV_1BIT, |
216 | 63, UNIPHIER_PIN_PULL_DOWN), | 214 | 63, UNIPHIER_PIN_PULL_DOWN), |
217 | UNIPHIER_PINCTRL_PIN(64, "XCMPREQ", 0, | 215 | UNIPHIER_PINCTRL_PIN(64, "XCMPREQ", 0, |
218 | 64, UNIPHIER_PIN_DRV_4_8, | 216 | 64, UNIPHIER_PIN_DRV_1BIT, |
219 | 64, UNIPHIER_PIN_PULL_DOWN), | 217 | 64, UNIPHIER_PIN_PULL_DOWN), |
220 | UNIPHIER_PINCTRL_PIN(65, "XSRST", 0, | 218 | UNIPHIER_PINCTRL_PIN(65, "XSRST", 0, |
221 | 65, UNIPHIER_PIN_DRV_4_8, | 219 | 65, UNIPHIER_PIN_DRV_1BIT, |
222 | 65, UNIPHIER_PIN_PULL_DOWN), | 220 | 65, UNIPHIER_PIN_PULL_DOWN), |
223 | UNIPHIER_PINCTRL_PIN(66, "LPST", UNIPHIER_PIN_IECTRL_NONE, | 221 | UNIPHIER_PINCTRL_PIN(66, "LPST", UNIPHIER_PIN_IECTRL_NONE, |
224 | 66, UNIPHIER_PIN_DRV_4_8, | 222 | 66, UNIPHIER_PIN_DRV_1BIT, |
225 | 66, UNIPHIER_PIN_PULL_DOWN), | 223 | 66, UNIPHIER_PIN_PULL_DOWN), |
226 | UNIPHIER_PINCTRL_PIN(67, "PWMA", 0, | 224 | UNIPHIER_PINCTRL_PIN(67, "PWMA", 0, |
227 | 67, UNIPHIER_PIN_DRV_4_8, | 225 | 67, UNIPHIER_PIN_DRV_1BIT, |
228 | 67, UNIPHIER_PIN_PULL_DOWN), | 226 | 67, UNIPHIER_PIN_PULL_DOWN), |
229 | UNIPHIER_PINCTRL_PIN(68, "XIRQ0", 0, | 227 | UNIPHIER_PINCTRL_PIN(68, "XIRQ0", 0, |
230 | 68, UNIPHIER_PIN_DRV_4_8, | 228 | 68, UNIPHIER_PIN_DRV_1BIT, |
231 | 68, UNIPHIER_PIN_PULL_DOWN), | 229 | 68, UNIPHIER_PIN_PULL_DOWN), |
232 | UNIPHIER_PINCTRL_PIN(69, "XIRQ1", 0, | 230 | UNIPHIER_PINCTRL_PIN(69, "XIRQ1", 0, |
233 | 69, UNIPHIER_PIN_DRV_4_8, | 231 | 69, UNIPHIER_PIN_DRV_1BIT, |
234 | 69, UNIPHIER_PIN_PULL_DOWN), | 232 | 69, UNIPHIER_PIN_PULL_DOWN), |
235 | UNIPHIER_PINCTRL_PIN(70, "XIRQ2", 0, | 233 | UNIPHIER_PINCTRL_PIN(70, "XIRQ2", 0, |
236 | 70, UNIPHIER_PIN_DRV_4_8, | 234 | 70, UNIPHIER_PIN_DRV_1BIT, |
237 | 70, UNIPHIER_PIN_PULL_DOWN), | 235 | 70, UNIPHIER_PIN_PULL_DOWN), |
238 | UNIPHIER_PINCTRL_PIN(71, "XIRQ3", 0, | 236 | UNIPHIER_PINCTRL_PIN(71, "XIRQ3", 0, |
239 | 71, UNIPHIER_PIN_DRV_4_8, | 237 | 71, UNIPHIER_PIN_DRV_1BIT, |
240 | 71, UNIPHIER_PIN_PULL_DOWN), | 238 | 71, UNIPHIER_PIN_PULL_DOWN), |
241 | UNIPHIER_PINCTRL_PIN(72, "XIRQ4", 0, | 239 | UNIPHIER_PINCTRL_PIN(72, "XIRQ4", 0, |
242 | 72, UNIPHIER_PIN_DRV_4_8, | 240 | 72, UNIPHIER_PIN_DRV_1BIT, |
243 | 72, UNIPHIER_PIN_PULL_DOWN), | 241 | 72, UNIPHIER_PIN_PULL_DOWN), |
244 | UNIPHIER_PINCTRL_PIN(73, "XIRQ5", 0, | 242 | UNIPHIER_PINCTRL_PIN(73, "XIRQ5", 0, |
245 | 73, UNIPHIER_PIN_DRV_4_8, | 243 | 73, UNIPHIER_PIN_DRV_1BIT, |
246 | 73, UNIPHIER_PIN_PULL_DOWN), | 244 | 73, UNIPHIER_PIN_PULL_DOWN), |
247 | UNIPHIER_PINCTRL_PIN(74, "XIRQ6", 0, | 245 | UNIPHIER_PINCTRL_PIN(74, "XIRQ6", 0, |
248 | 74, UNIPHIER_PIN_DRV_4_8, | 246 | 74, UNIPHIER_PIN_DRV_1BIT, |
249 | 74, UNIPHIER_PIN_PULL_DOWN), | 247 | 74, UNIPHIER_PIN_PULL_DOWN), |
250 | UNIPHIER_PINCTRL_PIN(75, "XIRQ7", 0, | 248 | UNIPHIER_PINCTRL_PIN(75, "XIRQ7", 0, |
251 | 75, UNIPHIER_PIN_DRV_4_8, | 249 | 75, UNIPHIER_PIN_DRV_1BIT, |
252 | 75, UNIPHIER_PIN_PULL_DOWN), | 250 | 75, UNIPHIER_PIN_PULL_DOWN), |
253 | UNIPHIER_PINCTRL_PIN(76, "XIRQ8", 0, | 251 | UNIPHIER_PINCTRL_PIN(76, "XIRQ8", 0, |
254 | 76, UNIPHIER_PIN_DRV_4_8, | 252 | 76, UNIPHIER_PIN_DRV_1BIT, |
255 | 76, UNIPHIER_PIN_PULL_DOWN), | 253 | 76, UNIPHIER_PIN_PULL_DOWN), |
256 | UNIPHIER_PINCTRL_PIN(77, "XIRQ9", 0, | 254 | UNIPHIER_PINCTRL_PIN(77, "XIRQ9", 0, |
257 | 77, UNIPHIER_PIN_DRV_4_8, | 255 | 77, UNIPHIER_PIN_DRV_1BIT, |
258 | 77, UNIPHIER_PIN_PULL_DOWN), | 256 | 77, UNIPHIER_PIN_PULL_DOWN), |
259 | UNIPHIER_PINCTRL_PIN(78, "XIRQ10", 0, | 257 | UNIPHIER_PINCTRL_PIN(78, "XIRQ10", 0, |
260 | 78, UNIPHIER_PIN_DRV_4_8, | 258 | 78, UNIPHIER_PIN_DRV_1BIT, |
261 | 78, UNIPHIER_PIN_PULL_DOWN), | 259 | 78, UNIPHIER_PIN_PULL_DOWN), |
262 | UNIPHIER_PINCTRL_PIN(79, "XIRQ11", UNIPHIER_PIN_IECTRL_NONE, | 260 | UNIPHIER_PINCTRL_PIN(79, "XIRQ11", UNIPHIER_PIN_IECTRL_NONE, |
263 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 261 | -1, UNIPHIER_PIN_DRV_FIXED8, |
264 | 79, UNIPHIER_PIN_PULL_DOWN), | 262 | 79, UNIPHIER_PIN_PULL_DOWN), |
265 | UNIPHIER_PINCTRL_PIN(80, "XIRQ12", UNIPHIER_PIN_IECTRL_NONE, | 263 | UNIPHIER_PINCTRL_PIN(80, "XIRQ12", UNIPHIER_PIN_IECTRL_NONE, |
266 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 264 | -1, UNIPHIER_PIN_DRV_FIXED8, |
267 | 80, UNIPHIER_PIN_PULL_DOWN), | 265 | 80, UNIPHIER_PIN_PULL_DOWN), |
268 | UNIPHIER_PINCTRL_PIN(81, "XIRQ13", UNIPHIER_PIN_IECTRL_NONE, | 266 | UNIPHIER_PINCTRL_PIN(81, "XIRQ13", UNIPHIER_PIN_IECTRL_NONE, |
269 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 267 | -1, UNIPHIER_PIN_DRV_FIXED8, |
270 | 81, UNIPHIER_PIN_PULL_DOWN), | 268 | 81, UNIPHIER_PIN_PULL_DOWN), |
271 | UNIPHIER_PINCTRL_PIN(82, "XIRQ14", 0, | 269 | UNIPHIER_PINCTRL_PIN(82, "XIRQ14", 0, |
272 | 82, UNIPHIER_PIN_DRV_4_8, | 270 | 82, UNIPHIER_PIN_DRV_1BIT, |
273 | 82, UNIPHIER_PIN_PULL_DOWN), | 271 | 82, UNIPHIER_PIN_PULL_DOWN), |
274 | UNIPHIER_PINCTRL_PIN(83, "XIRQ15", 0, | 272 | UNIPHIER_PINCTRL_PIN(83, "XIRQ15", 0, |
275 | 83, UNIPHIER_PIN_DRV_4_8, | 273 | 83, UNIPHIER_PIN_DRV_1BIT, |
276 | 83, UNIPHIER_PIN_PULL_DOWN), | 274 | 83, UNIPHIER_PIN_PULL_DOWN), |
277 | UNIPHIER_PINCTRL_PIN(84, "XIRQ16", 0, | 275 | UNIPHIER_PINCTRL_PIN(84, "XIRQ16", 0, |
278 | 84, UNIPHIER_PIN_DRV_4_8, | 276 | 84, UNIPHIER_PIN_DRV_1BIT, |
279 | 84, UNIPHIER_PIN_PULL_DOWN), | 277 | 84, UNIPHIER_PIN_PULL_DOWN), |
280 | UNIPHIER_PINCTRL_PIN(85, "XIRQ17", UNIPHIER_PIN_IECTRL_NONE, | 278 | UNIPHIER_PINCTRL_PIN(85, "XIRQ17", UNIPHIER_PIN_IECTRL_NONE, |
281 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 279 | -1, UNIPHIER_PIN_DRV_FIXED8, |
282 | 85, UNIPHIER_PIN_PULL_DOWN), | 280 | 85, UNIPHIER_PIN_PULL_DOWN), |
283 | UNIPHIER_PINCTRL_PIN(86, "XIRQ18", UNIPHIER_PIN_IECTRL_NONE, | 281 | UNIPHIER_PINCTRL_PIN(86, "XIRQ18", UNIPHIER_PIN_IECTRL_NONE, |
284 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 282 | -1, UNIPHIER_PIN_DRV_FIXED8, |
285 | 86, UNIPHIER_PIN_PULL_DOWN), | 283 | 86, UNIPHIER_PIN_PULL_DOWN), |
286 | UNIPHIER_PINCTRL_PIN(87, "XIRQ19", 0, | 284 | UNIPHIER_PINCTRL_PIN(87, "XIRQ19", 0, |
287 | 87, UNIPHIER_PIN_DRV_4_8, | 285 | 87, UNIPHIER_PIN_DRV_1BIT, |
288 | 87, UNIPHIER_PIN_PULL_DOWN), | 286 | 87, UNIPHIER_PIN_PULL_DOWN), |
289 | UNIPHIER_PINCTRL_PIN(88, "XIRQ20", 0, | 287 | UNIPHIER_PINCTRL_PIN(88, "XIRQ20", 0, |
290 | 88, UNIPHIER_PIN_DRV_4_8, | 288 | 88, UNIPHIER_PIN_DRV_1BIT, |
291 | 88, UNIPHIER_PIN_PULL_DOWN), | 289 | 88, UNIPHIER_PIN_PULL_DOWN), |
292 | UNIPHIER_PINCTRL_PIN(89, "PORT00", 0, | 290 | UNIPHIER_PINCTRL_PIN(89, "PORT00", 0, |
293 | 89, UNIPHIER_PIN_DRV_4_8, | 291 | 89, UNIPHIER_PIN_DRV_1BIT, |
294 | 89, UNIPHIER_PIN_PULL_DOWN), | 292 | 89, UNIPHIER_PIN_PULL_DOWN), |
295 | UNIPHIER_PINCTRL_PIN(90, "PORT01", 0, | 293 | UNIPHIER_PINCTRL_PIN(90, "PORT01", 0, |
296 | 90, UNIPHIER_PIN_DRV_4_8, | 294 | 90, UNIPHIER_PIN_DRV_1BIT, |
297 | 90, UNIPHIER_PIN_PULL_DOWN), | 295 | 90, UNIPHIER_PIN_PULL_DOWN), |
298 | UNIPHIER_PINCTRL_PIN(91, "PORT02", 0, | 296 | UNIPHIER_PINCTRL_PIN(91, "PORT02", 0, |
299 | 91, UNIPHIER_PIN_DRV_4_8, | 297 | 91, UNIPHIER_PIN_DRV_1BIT, |
300 | 91, UNIPHIER_PIN_PULL_DOWN), | 298 | 91, UNIPHIER_PIN_PULL_DOWN), |
301 | UNIPHIER_PINCTRL_PIN(92, "PORT03", 0, | 299 | UNIPHIER_PINCTRL_PIN(92, "PORT03", 0, |
302 | 92, UNIPHIER_PIN_DRV_4_8, | 300 | 92, UNIPHIER_PIN_DRV_1BIT, |
303 | 92, UNIPHIER_PIN_PULL_DOWN), | 301 | 92, UNIPHIER_PIN_PULL_DOWN), |
304 | UNIPHIER_PINCTRL_PIN(93, "PORT04", 0, | 302 | UNIPHIER_PINCTRL_PIN(93, "PORT04", 0, |
305 | 93, UNIPHIER_PIN_DRV_4_8, | 303 | 93, UNIPHIER_PIN_DRV_1BIT, |
306 | 93, UNIPHIER_PIN_PULL_DOWN), | 304 | 93, UNIPHIER_PIN_PULL_DOWN), |
307 | UNIPHIER_PINCTRL_PIN(94, "PORT05", 0, | 305 | UNIPHIER_PINCTRL_PIN(94, "PORT05", 0, |
308 | 94, UNIPHIER_PIN_DRV_4_8, | 306 | 94, UNIPHIER_PIN_DRV_1BIT, |
309 | 94, UNIPHIER_PIN_PULL_DOWN), | 307 | 94, UNIPHIER_PIN_PULL_DOWN), |
310 | UNIPHIER_PINCTRL_PIN(95, "PORT06", 0, | 308 | UNIPHIER_PINCTRL_PIN(95, "PORT06", 0, |
311 | 95, UNIPHIER_PIN_DRV_4_8, | 309 | 95, UNIPHIER_PIN_DRV_1BIT, |
312 | 95, UNIPHIER_PIN_PULL_DOWN), | 310 | 95, UNIPHIER_PIN_PULL_DOWN), |
313 | UNIPHIER_PINCTRL_PIN(96, "PORT07", 0, | 311 | UNIPHIER_PINCTRL_PIN(96, "PORT07", 0, |
314 | 96, UNIPHIER_PIN_DRV_4_8, | 312 | 96, UNIPHIER_PIN_DRV_1BIT, |
315 | 96, UNIPHIER_PIN_PULL_DOWN), | 313 | 96, UNIPHIER_PIN_PULL_DOWN), |
316 | UNIPHIER_PINCTRL_PIN(97, "PORT10", 0, | 314 | UNIPHIER_PINCTRL_PIN(97, "PORT10", 0, |
317 | 97, UNIPHIER_PIN_DRV_4_8, | 315 | 97, UNIPHIER_PIN_DRV_1BIT, |
318 | 97, UNIPHIER_PIN_PULL_DOWN), | 316 | 97, UNIPHIER_PIN_PULL_DOWN), |
319 | UNIPHIER_PINCTRL_PIN(98, "PORT11", 0, | 317 | UNIPHIER_PINCTRL_PIN(98, "PORT11", 0, |
320 | 98, UNIPHIER_PIN_DRV_4_8, | 318 | 98, UNIPHIER_PIN_DRV_1BIT, |
321 | 98, UNIPHIER_PIN_PULL_DOWN), | 319 | 98, UNIPHIER_PIN_PULL_DOWN), |
322 | UNIPHIER_PINCTRL_PIN(99, "PORT12", 0, | 320 | UNIPHIER_PINCTRL_PIN(99, "PORT12", 0, |
323 | 99, UNIPHIER_PIN_DRV_4_8, | 321 | 99, UNIPHIER_PIN_DRV_1BIT, |
324 | 99, UNIPHIER_PIN_PULL_DOWN), | 322 | 99, UNIPHIER_PIN_PULL_DOWN), |
325 | UNIPHIER_PINCTRL_PIN(100, "PORT13", 0, | 323 | UNIPHIER_PINCTRL_PIN(100, "PORT13", 0, |
326 | 100, UNIPHIER_PIN_DRV_4_8, | 324 | 100, UNIPHIER_PIN_DRV_1BIT, |
327 | 100, UNIPHIER_PIN_PULL_DOWN), | 325 | 100, UNIPHIER_PIN_PULL_DOWN), |
328 | UNIPHIER_PINCTRL_PIN(101, "PORT14", 0, | 326 | UNIPHIER_PINCTRL_PIN(101, "PORT14", 0, |
329 | 101, UNIPHIER_PIN_DRV_4_8, | 327 | 101, UNIPHIER_PIN_DRV_1BIT, |
330 | 101, UNIPHIER_PIN_PULL_DOWN), | 328 | 101, UNIPHIER_PIN_PULL_DOWN), |
331 | UNIPHIER_PINCTRL_PIN(102, "PORT15", 0, | 329 | UNIPHIER_PINCTRL_PIN(102, "PORT15", 0, |
332 | 102, UNIPHIER_PIN_DRV_4_8, | 330 | 102, UNIPHIER_PIN_DRV_1BIT, |
333 | 102, UNIPHIER_PIN_PULL_DOWN), | 331 | 102, UNIPHIER_PIN_PULL_DOWN), |
334 | UNIPHIER_PINCTRL_PIN(103, "PORT16", 0, | 332 | UNIPHIER_PINCTRL_PIN(103, "PORT16", 0, |
335 | 103, UNIPHIER_PIN_DRV_4_8, | 333 | 103, UNIPHIER_PIN_DRV_1BIT, |
336 | 103, UNIPHIER_PIN_PULL_DOWN), | 334 | 103, UNIPHIER_PIN_PULL_DOWN), |
337 | UNIPHIER_PINCTRL_PIN(104, "PORT17", 0, | 335 | UNIPHIER_PINCTRL_PIN(104, "PORT17", 0, |
338 | 104, UNIPHIER_PIN_DRV_4_8, | 336 | 104, UNIPHIER_PIN_DRV_1BIT, |
339 | 104, UNIPHIER_PIN_PULL_DOWN), | 337 | 104, UNIPHIER_PIN_PULL_DOWN), |
340 | UNIPHIER_PINCTRL_PIN(105, "T0HPD", 0, | 338 | UNIPHIER_PINCTRL_PIN(105, "T0HPD", 0, |
341 | 105, UNIPHIER_PIN_DRV_4_8, | 339 | 105, UNIPHIER_PIN_DRV_1BIT, |
342 | 105, UNIPHIER_PIN_PULL_DOWN), | 340 | 105, UNIPHIER_PIN_PULL_DOWN), |
343 | UNIPHIER_PINCTRL_PIN(106, "T1HPD", 0, | 341 | UNIPHIER_PINCTRL_PIN(106, "T1HPD", 0, |
344 | 106, UNIPHIER_PIN_DRV_4_8, | 342 | 106, UNIPHIER_PIN_DRV_1BIT, |
345 | 106, UNIPHIER_PIN_PULL_DOWN), | 343 | 106, UNIPHIER_PIN_PULL_DOWN), |
346 | UNIPHIER_PINCTRL_PIN(107, "R0HPD", 0, | 344 | UNIPHIER_PINCTRL_PIN(107, "R0HPD", 0, |
347 | 107, UNIPHIER_PIN_DRV_4_8, | 345 | 107, UNIPHIER_PIN_DRV_1BIT, |
348 | 107, UNIPHIER_PIN_PULL_DOWN), | 346 | 107, UNIPHIER_PIN_PULL_DOWN), |
349 | UNIPHIER_PINCTRL_PIN(108, "R1HPD", 0, | 347 | UNIPHIER_PINCTRL_PIN(108, "R1HPD", 0, |
350 | 108, UNIPHIER_PIN_DRV_4_8, | 348 | 108, UNIPHIER_PIN_DRV_1BIT, |
351 | 108, UNIPHIER_PIN_PULL_DOWN), | 349 | 108, UNIPHIER_PIN_PULL_DOWN), |
352 | UNIPHIER_PINCTRL_PIN(109, "XPERST", 0, | 350 | UNIPHIER_PINCTRL_PIN(109, "XPERST", 0, |
353 | 109, UNIPHIER_PIN_DRV_4_8, | 351 | 109, UNIPHIER_PIN_DRV_1BIT, |
354 | 109, UNIPHIER_PIN_PULL_UP), | 352 | 109, UNIPHIER_PIN_PULL_UP), |
355 | UNIPHIER_PINCTRL_PIN(110, "XPEWAKE", 0, | 353 | UNIPHIER_PINCTRL_PIN(110, "XPEWAKE", 0, |
356 | 110, UNIPHIER_PIN_DRV_4_8, | 354 | 110, UNIPHIER_PIN_DRV_1BIT, |
357 | 110, UNIPHIER_PIN_PULL_UP), | 355 | 110, UNIPHIER_PIN_PULL_UP), |
358 | UNIPHIER_PINCTRL_PIN(111, "XPECLKRQ", 0, | 356 | UNIPHIER_PINCTRL_PIN(111, "XPECLKRQ", 0, |
359 | 111, UNIPHIER_PIN_DRV_4_8, | 357 | 111, UNIPHIER_PIN_DRV_1BIT, |
360 | 111, UNIPHIER_PIN_PULL_UP), | 358 | 111, UNIPHIER_PIN_PULL_UP), |
361 | UNIPHIER_PINCTRL_PIN(112, "SDA0", UNIPHIER_PIN_IECTRL_NONE, | 359 | UNIPHIER_PINCTRL_PIN(112, "SDA0", UNIPHIER_PIN_IECTRL_NONE, |
362 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 360 | -1, UNIPHIER_PIN_DRV_FIXED8, |
363 | 112, UNIPHIER_PIN_PULL_UP), | 361 | 112, UNIPHIER_PIN_PULL_UP), |
364 | UNIPHIER_PINCTRL_PIN(113, "SCL0", UNIPHIER_PIN_IECTRL_NONE, | 362 | UNIPHIER_PINCTRL_PIN(113, "SCL0", UNIPHIER_PIN_IECTRL_NONE, |
365 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 363 | -1, UNIPHIER_PIN_DRV_FIXED8, |
366 | 113, UNIPHIER_PIN_PULL_UP), | 364 | 113, UNIPHIER_PIN_PULL_UP), |
367 | UNIPHIER_PINCTRL_PIN(114, "SDA1", UNIPHIER_PIN_IECTRL_NONE, | 365 | UNIPHIER_PINCTRL_PIN(114, "SDA1", UNIPHIER_PIN_IECTRL_NONE, |
368 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 366 | -1, UNIPHIER_PIN_DRV_FIXED8, |
369 | 114, UNIPHIER_PIN_PULL_UP), | 367 | 114, UNIPHIER_PIN_PULL_UP), |
370 | UNIPHIER_PINCTRL_PIN(115, "SCL1", UNIPHIER_PIN_IECTRL_NONE, | 368 | UNIPHIER_PINCTRL_PIN(115, "SCL1", UNIPHIER_PIN_IECTRL_NONE, |
371 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 369 | -1, UNIPHIER_PIN_DRV_FIXED8, |
372 | 115, UNIPHIER_PIN_PULL_UP), | 370 | 115, UNIPHIER_PIN_PULL_UP), |
373 | UNIPHIER_PINCTRL_PIN(116, "SDA2", UNIPHIER_PIN_IECTRL_NONE, | 371 | UNIPHIER_PINCTRL_PIN(116, "SDA2", UNIPHIER_PIN_IECTRL_NONE, |
374 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 372 | -1, UNIPHIER_PIN_DRV_FIXED8, |
375 | 116, UNIPHIER_PIN_PULL_UP), | 373 | 116, UNIPHIER_PIN_PULL_UP), |
376 | UNIPHIER_PINCTRL_PIN(117, "SCL2", UNIPHIER_PIN_IECTRL_NONE, | 374 | UNIPHIER_PINCTRL_PIN(117, "SCL2", UNIPHIER_PIN_IECTRL_NONE, |
377 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 375 | -1, UNIPHIER_PIN_DRV_FIXED8, |
378 | 117, UNIPHIER_PIN_PULL_UP), | 376 | 117, UNIPHIER_PIN_PULL_UP), |
379 | UNIPHIER_PINCTRL_PIN(118, "SDA3", UNIPHIER_PIN_IECTRL_NONE, | 377 | UNIPHIER_PINCTRL_PIN(118, "SDA3", UNIPHIER_PIN_IECTRL_NONE, |
380 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 378 | -1, UNIPHIER_PIN_DRV_FIXED4, |
381 | 118, UNIPHIER_PIN_PULL_UP), | 379 | 118, UNIPHIER_PIN_PULL_UP), |
382 | UNIPHIER_PINCTRL_PIN(119, "SCL3", UNIPHIER_PIN_IECTRL_NONE, | 380 | UNIPHIER_PINCTRL_PIN(119, "SCL3", UNIPHIER_PIN_IECTRL_NONE, |
383 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 381 | -1, UNIPHIER_PIN_DRV_FIXED4, |
384 | 119, UNIPHIER_PIN_PULL_UP), | 382 | 119, UNIPHIER_PIN_PULL_UP), |
385 | UNIPHIER_PINCTRL_PIN(120, "SPISYNC", UNIPHIER_PIN_IECTRL_NONE, | 383 | UNIPHIER_PINCTRL_PIN(120, "SPISYNC", UNIPHIER_PIN_IECTRL_NONE, |
386 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 384 | -1, UNIPHIER_PIN_DRV_FIXED8, |
387 | 120, UNIPHIER_PIN_PULL_DOWN), | 385 | 120, UNIPHIER_PIN_PULL_DOWN), |
388 | UNIPHIER_PINCTRL_PIN(121, "SPISCLK", UNIPHIER_PIN_IECTRL_NONE, | 386 | UNIPHIER_PINCTRL_PIN(121, "SPISCLK", UNIPHIER_PIN_IECTRL_NONE, |
389 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 387 | -1, UNIPHIER_PIN_DRV_FIXED8, |
390 | 121, UNIPHIER_PIN_PULL_DOWN), | 388 | 121, UNIPHIER_PIN_PULL_DOWN), |
391 | UNIPHIER_PINCTRL_PIN(122, "SPITXD", UNIPHIER_PIN_IECTRL_NONE, | 389 | UNIPHIER_PINCTRL_PIN(122, "SPITXD", UNIPHIER_PIN_IECTRL_NONE, |
392 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 390 | -1, UNIPHIER_PIN_DRV_FIXED8, |
393 | 122, UNIPHIER_PIN_PULL_DOWN), | 391 | 122, UNIPHIER_PIN_PULL_DOWN), |
394 | UNIPHIER_PINCTRL_PIN(123, "SPIRXD", UNIPHIER_PIN_IECTRL_NONE, | 392 | UNIPHIER_PINCTRL_PIN(123, "SPIRXD", UNIPHIER_PIN_IECTRL_NONE, |
395 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 393 | -1, UNIPHIER_PIN_DRV_FIXED8, |
396 | 123, UNIPHIER_PIN_PULL_DOWN), | 394 | 123, UNIPHIER_PIN_PULL_DOWN), |
397 | UNIPHIER_PINCTRL_PIN(124, "USB0VBUS", UNIPHIER_PIN_IECTRL_NONE, | 395 | UNIPHIER_PINCTRL_PIN(124, "USB0VBUS", UNIPHIER_PIN_IECTRL_NONE, |
398 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 396 | -1, UNIPHIER_PIN_DRV_FIXED8, |
399 | 124, UNIPHIER_PIN_PULL_DOWN), | 397 | 124, UNIPHIER_PIN_PULL_DOWN), |
400 | UNIPHIER_PINCTRL_PIN(125, "USB0OD", UNIPHIER_PIN_IECTRL_NONE, | 398 | UNIPHIER_PINCTRL_PIN(125, "USB0OD", UNIPHIER_PIN_IECTRL_NONE, |
401 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 399 | -1, UNIPHIER_PIN_DRV_FIXED8, |
402 | 125, UNIPHIER_PIN_PULL_UP), | 400 | 125, UNIPHIER_PIN_PULL_UP), |
403 | UNIPHIER_PINCTRL_PIN(126, "USB1VBUS", UNIPHIER_PIN_IECTRL_NONE, | 401 | UNIPHIER_PINCTRL_PIN(126, "USB1VBUS", UNIPHIER_PIN_IECTRL_NONE, |
404 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 402 | -1, UNIPHIER_PIN_DRV_FIXED8, |
405 | 126, UNIPHIER_PIN_PULL_DOWN), | 403 | 126, UNIPHIER_PIN_PULL_DOWN), |
406 | UNIPHIER_PINCTRL_PIN(127, "USB1OD", UNIPHIER_PIN_IECTRL_NONE, | 404 | UNIPHIER_PINCTRL_PIN(127, "USB1OD", UNIPHIER_PIN_IECTRL_NONE, |
407 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 405 | -1, UNIPHIER_PIN_DRV_FIXED8, |
408 | 127, UNIPHIER_PIN_PULL_UP), | 406 | 127, UNIPHIER_PIN_PULL_UP), |
409 | UNIPHIER_PINCTRL_PIN(128, "USB2VBUS", UNIPHIER_PIN_IECTRL_NONE, | 407 | UNIPHIER_PINCTRL_PIN(128, "USB2VBUS", UNIPHIER_PIN_IECTRL_NONE, |
410 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 408 | -1, UNIPHIER_PIN_DRV_FIXED8, |
411 | 128, UNIPHIER_PIN_PULL_DOWN), | 409 | 128, UNIPHIER_PIN_PULL_DOWN), |
412 | UNIPHIER_PINCTRL_PIN(129, "USB2OD", UNIPHIER_PIN_IECTRL_NONE, | 410 | UNIPHIER_PINCTRL_PIN(129, "USB2OD", UNIPHIER_PIN_IECTRL_NONE, |
413 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 411 | -1, UNIPHIER_PIN_DRV_FIXED8, |
414 | 129, UNIPHIER_PIN_PULL_UP), | 412 | 129, UNIPHIER_PIN_PULL_UP), |
415 | UNIPHIER_PINCTRL_PIN(130, "SMTRST0", UNIPHIER_PIN_IECTRL_NONE, | 413 | UNIPHIER_PINCTRL_PIN(130, "SMTRST0", UNIPHIER_PIN_IECTRL_NONE, |
416 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 414 | -1, UNIPHIER_PIN_DRV_FIXED8, |
417 | 130, UNIPHIER_PIN_PULL_DOWN), | 415 | 130, UNIPHIER_PIN_PULL_DOWN), |
418 | UNIPHIER_PINCTRL_PIN(131, "SMTCMD0", UNIPHIER_PIN_IECTRL_NONE, | 416 | UNIPHIER_PINCTRL_PIN(131, "SMTCMD0", UNIPHIER_PIN_IECTRL_NONE, |
419 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 417 | -1, UNIPHIER_PIN_DRV_FIXED8, |
420 | 131, UNIPHIER_PIN_PULL_DOWN), | 418 | 131, UNIPHIER_PIN_PULL_DOWN), |
421 | UNIPHIER_PINCTRL_PIN(132, "SMTD0", UNIPHIER_PIN_IECTRL_NONE, | 419 | UNIPHIER_PINCTRL_PIN(132, "SMTD0", UNIPHIER_PIN_IECTRL_NONE, |
422 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 420 | -1, UNIPHIER_PIN_DRV_FIXED8, |
423 | 132, UNIPHIER_PIN_PULL_DOWN), | 421 | 132, UNIPHIER_PIN_PULL_DOWN), |
424 | UNIPHIER_PINCTRL_PIN(133, "SMTSEL0", UNIPHIER_PIN_IECTRL_NONE, | 422 | UNIPHIER_PINCTRL_PIN(133, "SMTSEL0", UNIPHIER_PIN_IECTRL_NONE, |
425 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 423 | -1, UNIPHIER_PIN_DRV_FIXED8, |
426 | 133, UNIPHIER_PIN_PULL_DOWN), | 424 | 133, UNIPHIER_PIN_PULL_DOWN), |
427 | UNIPHIER_PINCTRL_PIN(134, "SMTCLK0", UNIPHIER_PIN_IECTRL_NONE, | 425 | UNIPHIER_PINCTRL_PIN(134, "SMTCLK0", UNIPHIER_PIN_IECTRL_NONE, |
428 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 426 | -1, UNIPHIER_PIN_DRV_FIXED8, |
429 | 134, UNIPHIER_PIN_PULL_DOWN), | 427 | 134, UNIPHIER_PIN_PULL_DOWN), |
430 | UNIPHIER_PINCTRL_PIN(135, "SMTRST1", UNIPHIER_PIN_IECTRL_NONE, | 428 | UNIPHIER_PINCTRL_PIN(135, "SMTRST1", UNIPHIER_PIN_IECTRL_NONE, |
431 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 429 | -1, UNIPHIER_PIN_DRV_FIXED8, |
432 | 135, UNIPHIER_PIN_PULL_DOWN), | 430 | 135, UNIPHIER_PIN_PULL_DOWN), |
433 | UNIPHIER_PINCTRL_PIN(136, "SMTCMD1", UNIPHIER_PIN_IECTRL_NONE, | 431 | UNIPHIER_PINCTRL_PIN(136, "SMTCMD1", UNIPHIER_PIN_IECTRL_NONE, |
434 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 432 | -1, UNIPHIER_PIN_DRV_FIXED8, |
435 | 136, UNIPHIER_PIN_PULL_DOWN), | 433 | 136, UNIPHIER_PIN_PULL_DOWN), |
436 | UNIPHIER_PINCTRL_PIN(137, "SMTD1", UNIPHIER_PIN_IECTRL_NONE, | 434 | UNIPHIER_PINCTRL_PIN(137, "SMTD1", UNIPHIER_PIN_IECTRL_NONE, |
437 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 435 | -1, UNIPHIER_PIN_DRV_FIXED8, |
438 | 137, UNIPHIER_PIN_PULL_DOWN), | 436 | 137, UNIPHIER_PIN_PULL_DOWN), |
439 | UNIPHIER_PINCTRL_PIN(138, "SMTSEL1", UNIPHIER_PIN_IECTRL_NONE, | 437 | UNIPHIER_PINCTRL_PIN(138, "SMTSEL1", UNIPHIER_PIN_IECTRL_NONE, |
440 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 438 | -1, UNIPHIER_PIN_DRV_FIXED8, |
441 | 138, UNIPHIER_PIN_PULL_DOWN), | 439 | 138, UNIPHIER_PIN_PULL_DOWN), |
442 | UNIPHIER_PINCTRL_PIN(139, "SMTCLK1", UNIPHIER_PIN_IECTRL_NONE, | 440 | UNIPHIER_PINCTRL_PIN(139, "SMTCLK1", UNIPHIER_PIN_IECTRL_NONE, |
443 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 441 | -1, UNIPHIER_PIN_DRV_FIXED8, |
444 | 139, UNIPHIER_PIN_PULL_DOWN), | 442 | 139, UNIPHIER_PIN_PULL_DOWN), |
445 | UNIPHIER_PINCTRL_PIN(140, "CH0CLK", UNIPHIER_PIN_IECTRL_NONE, | 443 | UNIPHIER_PINCTRL_PIN(140, "CH0CLK", UNIPHIER_PIN_IECTRL_NONE, |
446 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 444 | -1, UNIPHIER_PIN_DRV_FIXED8, |
447 | 140, UNIPHIER_PIN_PULL_DOWN), | 445 | 140, UNIPHIER_PIN_PULL_DOWN), |
448 | UNIPHIER_PINCTRL_PIN(141, "CH0PSYNC", UNIPHIER_PIN_IECTRL_NONE, | 446 | UNIPHIER_PINCTRL_PIN(141, "CH0PSYNC", UNIPHIER_PIN_IECTRL_NONE, |
449 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 447 | -1, UNIPHIER_PIN_DRV_FIXED8, |
450 | 141, UNIPHIER_PIN_PULL_DOWN), | 448 | 141, UNIPHIER_PIN_PULL_DOWN), |
451 | UNIPHIER_PINCTRL_PIN(142, "CH0VAL", UNIPHIER_PIN_IECTRL_NONE, | 449 | UNIPHIER_PINCTRL_PIN(142, "CH0VAL", UNIPHIER_PIN_IECTRL_NONE, |
452 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 450 | -1, UNIPHIER_PIN_DRV_FIXED8, |
453 | 142, UNIPHIER_PIN_PULL_DOWN), | 451 | 142, UNIPHIER_PIN_PULL_DOWN), |
454 | UNIPHIER_PINCTRL_PIN(143, "CH0DATA", UNIPHIER_PIN_IECTRL_NONE, | 452 | UNIPHIER_PINCTRL_PIN(143, "CH0DATA", UNIPHIER_PIN_IECTRL_NONE, |
455 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 453 | -1, UNIPHIER_PIN_DRV_FIXED8, |
456 | 143, UNIPHIER_PIN_PULL_DOWN), | 454 | 143, UNIPHIER_PIN_PULL_DOWN), |
457 | UNIPHIER_PINCTRL_PIN(144, "CH1CLK", UNIPHIER_PIN_IECTRL_NONE, | 455 | UNIPHIER_PINCTRL_PIN(144, "CH1CLK", UNIPHIER_PIN_IECTRL_NONE, |
458 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 456 | -1, UNIPHIER_PIN_DRV_FIXED8, |
459 | 144, UNIPHIER_PIN_PULL_DOWN), | 457 | 144, UNIPHIER_PIN_PULL_DOWN), |
460 | UNIPHIER_PINCTRL_PIN(145, "CH1PSYNC", UNIPHIER_PIN_IECTRL_NONE, | 458 | UNIPHIER_PINCTRL_PIN(145, "CH1PSYNC", UNIPHIER_PIN_IECTRL_NONE, |
461 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 459 | -1, UNIPHIER_PIN_DRV_FIXED8, |
462 | 145, UNIPHIER_PIN_PULL_DOWN), | 460 | 145, UNIPHIER_PIN_PULL_DOWN), |
463 | UNIPHIER_PINCTRL_PIN(146, "CH1VAL", UNIPHIER_PIN_IECTRL_NONE, | 461 | UNIPHIER_PINCTRL_PIN(146, "CH1VAL", UNIPHIER_PIN_IECTRL_NONE, |
464 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 462 | -1, UNIPHIER_PIN_DRV_FIXED8, |
465 | 146, UNIPHIER_PIN_PULL_DOWN), | 463 | 146, UNIPHIER_PIN_PULL_DOWN), |
466 | UNIPHIER_PINCTRL_PIN(147, "CH1DATA", UNIPHIER_PIN_IECTRL_NONE, | 464 | UNIPHIER_PINCTRL_PIN(147, "CH1DATA", UNIPHIER_PIN_IECTRL_NONE, |
467 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 465 | -1, UNIPHIER_PIN_DRV_FIXED8, |
468 | 147, UNIPHIER_PIN_PULL_DOWN), | 466 | 147, UNIPHIER_PIN_PULL_DOWN), |
469 | UNIPHIER_PINCTRL_PIN(148, "CH2CLK", UNIPHIER_PIN_IECTRL_NONE, | 467 | UNIPHIER_PINCTRL_PIN(148, "CH2CLK", UNIPHIER_PIN_IECTRL_NONE, |
470 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 468 | -1, UNIPHIER_PIN_DRV_FIXED8, |
471 | 148, UNIPHIER_PIN_PULL_DOWN), | 469 | 148, UNIPHIER_PIN_PULL_DOWN), |
472 | UNIPHIER_PINCTRL_PIN(149, "CH2PSYNC", UNIPHIER_PIN_IECTRL_NONE, | 470 | UNIPHIER_PINCTRL_PIN(149, "CH2PSYNC", UNIPHIER_PIN_IECTRL_NONE, |
473 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 471 | -1, UNIPHIER_PIN_DRV_FIXED8, |
474 | 149, UNIPHIER_PIN_PULL_DOWN), | 472 | 149, UNIPHIER_PIN_PULL_DOWN), |
475 | UNIPHIER_PINCTRL_PIN(150, "CH2VAL", UNIPHIER_PIN_IECTRL_NONE, | 473 | UNIPHIER_PINCTRL_PIN(150, "CH2VAL", UNIPHIER_PIN_IECTRL_NONE, |
476 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 474 | -1, UNIPHIER_PIN_DRV_FIXED8, |
477 | 150, UNIPHIER_PIN_PULL_DOWN), | 475 | 150, UNIPHIER_PIN_PULL_DOWN), |
478 | UNIPHIER_PINCTRL_PIN(151, "CH2DATA", UNIPHIER_PIN_IECTRL_NONE, | 476 | UNIPHIER_PINCTRL_PIN(151, "CH2DATA", UNIPHIER_PIN_IECTRL_NONE, |
479 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 477 | -1, UNIPHIER_PIN_DRV_FIXED8, |
480 | 151, UNIPHIER_PIN_PULL_DOWN), | 478 | 151, UNIPHIER_PIN_PULL_DOWN), |
481 | UNIPHIER_PINCTRL_PIN(152, "CH3CLK", UNIPHIER_PIN_IECTRL_NONE, | 479 | UNIPHIER_PINCTRL_PIN(152, "CH3CLK", UNIPHIER_PIN_IECTRL_NONE, |
482 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 480 | -1, UNIPHIER_PIN_DRV_FIXED8, |
483 | 152, UNIPHIER_PIN_PULL_DOWN), | 481 | 152, UNIPHIER_PIN_PULL_DOWN), |
484 | UNIPHIER_PINCTRL_PIN(153, "CH3PSYNC", UNIPHIER_PIN_IECTRL_NONE, | 482 | UNIPHIER_PINCTRL_PIN(153, "CH3PSYNC", UNIPHIER_PIN_IECTRL_NONE, |
485 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 483 | -1, UNIPHIER_PIN_DRV_FIXED8, |
486 | 153, UNIPHIER_PIN_PULL_DOWN), | 484 | 153, UNIPHIER_PIN_PULL_DOWN), |
487 | UNIPHIER_PINCTRL_PIN(154, "CH3VAL", UNIPHIER_PIN_IECTRL_NONE, | 485 | UNIPHIER_PINCTRL_PIN(154, "CH3VAL", UNIPHIER_PIN_IECTRL_NONE, |
488 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 486 | -1, UNIPHIER_PIN_DRV_FIXED8, |
489 | 154, UNIPHIER_PIN_PULL_DOWN), | 487 | 154, UNIPHIER_PIN_PULL_DOWN), |
490 | UNIPHIER_PINCTRL_PIN(155, "CH3DATA", UNIPHIER_PIN_IECTRL_NONE, | 488 | UNIPHIER_PINCTRL_PIN(155, "CH3DATA", UNIPHIER_PIN_IECTRL_NONE, |
491 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 489 | -1, UNIPHIER_PIN_DRV_FIXED8, |
492 | 155, UNIPHIER_PIN_PULL_DOWN), | 490 | 155, UNIPHIER_PIN_PULL_DOWN), |
493 | UNIPHIER_PINCTRL_PIN(156, "CH4CLK", UNIPHIER_PIN_IECTRL_NONE, | 491 | UNIPHIER_PINCTRL_PIN(156, "CH4CLK", UNIPHIER_PIN_IECTRL_NONE, |
494 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 492 | -1, UNIPHIER_PIN_DRV_FIXED8, |
495 | 156, UNIPHIER_PIN_PULL_DOWN), | 493 | 156, UNIPHIER_PIN_PULL_DOWN), |
496 | UNIPHIER_PINCTRL_PIN(157, "CH4PSYNC", UNIPHIER_PIN_IECTRL_NONE, | 494 | UNIPHIER_PINCTRL_PIN(157, "CH4PSYNC", UNIPHIER_PIN_IECTRL_NONE, |
497 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 495 | -1, UNIPHIER_PIN_DRV_FIXED8, |
498 | 157, UNIPHIER_PIN_PULL_DOWN), | 496 | 157, UNIPHIER_PIN_PULL_DOWN), |
499 | UNIPHIER_PINCTRL_PIN(158, "CH4VAL", UNIPHIER_PIN_IECTRL_NONE, | 497 | UNIPHIER_PINCTRL_PIN(158, "CH4VAL", UNIPHIER_PIN_IECTRL_NONE, |
500 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 498 | -1, UNIPHIER_PIN_DRV_FIXED8, |
501 | 158, UNIPHIER_PIN_PULL_DOWN), | 499 | 158, UNIPHIER_PIN_PULL_DOWN), |
502 | UNIPHIER_PINCTRL_PIN(159, "CH4DATA", UNIPHIER_PIN_IECTRL_NONE, | 500 | UNIPHIER_PINCTRL_PIN(159, "CH4DATA", UNIPHIER_PIN_IECTRL_NONE, |
503 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 501 | -1, UNIPHIER_PIN_DRV_FIXED8, |
504 | 159, UNIPHIER_PIN_PULL_DOWN), | 502 | 159, UNIPHIER_PIN_PULL_DOWN), |
505 | UNIPHIER_PINCTRL_PIN(160, "CH5CLK", UNIPHIER_PIN_IECTRL_NONE, | 503 | UNIPHIER_PINCTRL_PIN(160, "CH5CLK", UNIPHIER_PIN_IECTRL_NONE, |
506 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 504 | -1, UNIPHIER_PIN_DRV_FIXED8, |
507 | 160, UNIPHIER_PIN_PULL_DOWN), | 505 | 160, UNIPHIER_PIN_PULL_DOWN), |
508 | UNIPHIER_PINCTRL_PIN(161, "CH5PSYNC", UNIPHIER_PIN_IECTRL_NONE, | 506 | UNIPHIER_PINCTRL_PIN(161, "CH5PSYNC", UNIPHIER_PIN_IECTRL_NONE, |
509 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 507 | -1, UNIPHIER_PIN_DRV_FIXED8, |
510 | 161, UNIPHIER_PIN_PULL_DOWN), | 508 | 161, UNIPHIER_PIN_PULL_DOWN), |
511 | UNIPHIER_PINCTRL_PIN(162, "CH5VAL", UNIPHIER_PIN_IECTRL_NONE, | 509 | UNIPHIER_PINCTRL_PIN(162, "CH5VAL", UNIPHIER_PIN_IECTRL_NONE, |
512 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 510 | -1, UNIPHIER_PIN_DRV_FIXED8, |
513 | 162, UNIPHIER_PIN_PULL_DOWN), | 511 | 162, UNIPHIER_PIN_PULL_DOWN), |
514 | UNIPHIER_PINCTRL_PIN(163, "CH5DATA", UNIPHIER_PIN_IECTRL_NONE, | 512 | UNIPHIER_PINCTRL_PIN(163, "CH5DATA", UNIPHIER_PIN_IECTRL_NONE, |
515 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 513 | -1, UNIPHIER_PIN_DRV_FIXED8, |
516 | 163, UNIPHIER_PIN_PULL_DOWN), | 514 | 163, UNIPHIER_PIN_PULL_DOWN), |
517 | UNIPHIER_PINCTRL_PIN(164, "CH6CLK", UNIPHIER_PIN_IECTRL_NONE, | 515 | UNIPHIER_PINCTRL_PIN(164, "CH6CLK", UNIPHIER_PIN_IECTRL_NONE, |
518 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 516 | -1, UNIPHIER_PIN_DRV_FIXED8, |
519 | 164, UNIPHIER_PIN_PULL_DOWN), | 517 | 164, UNIPHIER_PIN_PULL_DOWN), |
520 | UNIPHIER_PINCTRL_PIN(165, "CH6PSYNC", UNIPHIER_PIN_IECTRL_NONE, | 518 | UNIPHIER_PINCTRL_PIN(165, "CH6PSYNC", UNIPHIER_PIN_IECTRL_NONE, |
521 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 519 | -1, UNIPHIER_PIN_DRV_FIXED8, |
522 | 165, UNIPHIER_PIN_PULL_DOWN), | 520 | 165, UNIPHIER_PIN_PULL_DOWN), |
523 | UNIPHIER_PINCTRL_PIN(166, "CH6VAL", UNIPHIER_PIN_IECTRL_NONE, | 521 | UNIPHIER_PINCTRL_PIN(166, "CH6VAL", UNIPHIER_PIN_IECTRL_NONE, |
524 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 522 | -1, UNIPHIER_PIN_DRV_FIXED8, |
525 | 166, UNIPHIER_PIN_PULL_DOWN), | 523 | 166, UNIPHIER_PIN_PULL_DOWN), |
526 | UNIPHIER_PINCTRL_PIN(167, "CH6DATA", UNIPHIER_PIN_IECTRL_NONE, | 524 | UNIPHIER_PINCTRL_PIN(167, "CH6DATA", UNIPHIER_PIN_IECTRL_NONE, |
527 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 525 | -1, UNIPHIER_PIN_DRV_FIXED8, |
528 | 167, UNIPHIER_PIN_PULL_DOWN), | 526 | 167, UNIPHIER_PIN_PULL_DOWN), |
529 | UNIPHIER_PINCTRL_PIN(168, "CH7CLK", UNIPHIER_PIN_IECTRL_NONE, | 527 | UNIPHIER_PINCTRL_PIN(168, "CH7CLK", UNIPHIER_PIN_IECTRL_NONE, |
530 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 528 | -1, UNIPHIER_PIN_DRV_FIXED8, |
531 | 168, UNIPHIER_PIN_PULL_DOWN), | 529 | 168, UNIPHIER_PIN_PULL_DOWN), |
532 | UNIPHIER_PINCTRL_PIN(169, "CH7PSYNC", UNIPHIER_PIN_IECTRL_NONE, | 530 | UNIPHIER_PINCTRL_PIN(169, "CH7PSYNC", UNIPHIER_PIN_IECTRL_NONE, |
533 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 531 | -1, UNIPHIER_PIN_DRV_FIXED8, |
534 | 169, UNIPHIER_PIN_PULL_DOWN), | 532 | 169, UNIPHIER_PIN_PULL_DOWN), |
535 | UNIPHIER_PINCTRL_PIN(170, "CH7VAL", UNIPHIER_PIN_IECTRL_NONE, | 533 | UNIPHIER_PINCTRL_PIN(170, "CH7VAL", UNIPHIER_PIN_IECTRL_NONE, |
536 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 534 | -1, UNIPHIER_PIN_DRV_FIXED8, |
537 | 170, UNIPHIER_PIN_PULL_DOWN), | 535 | 170, UNIPHIER_PIN_PULL_DOWN), |
538 | UNIPHIER_PINCTRL_PIN(171, "CH7DATA", UNIPHIER_PIN_IECTRL_NONE, | 536 | UNIPHIER_PINCTRL_PIN(171, "CH7DATA", UNIPHIER_PIN_IECTRL_NONE, |
539 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 537 | -1, UNIPHIER_PIN_DRV_FIXED8, |
540 | 171, UNIPHIER_PIN_PULL_DOWN), | 538 | 171, UNIPHIER_PIN_PULL_DOWN), |
541 | UNIPHIER_PINCTRL_PIN(172, "AI1ADCCK", UNIPHIER_PIN_IECTRL_NONE, | 539 | UNIPHIER_PINCTRL_PIN(172, "AI1ADCCK", UNIPHIER_PIN_IECTRL_NONE, |
542 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 540 | -1, UNIPHIER_PIN_DRV_FIXED8, |
543 | 172, UNIPHIER_PIN_PULL_DOWN), | 541 | 172, UNIPHIER_PIN_PULL_DOWN), |
544 | UNIPHIER_PINCTRL_PIN(173, "AI1BCK", UNIPHIER_PIN_IECTRL_NONE, | 542 | UNIPHIER_PINCTRL_PIN(173, "AI1BCK", UNIPHIER_PIN_IECTRL_NONE, |
545 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 543 | -1, UNIPHIER_PIN_DRV_FIXED8, |
546 | 173, UNIPHIER_PIN_PULL_DOWN), | 544 | 173, UNIPHIER_PIN_PULL_DOWN), |
547 | UNIPHIER_PINCTRL_PIN(174, "AI1LRCK", UNIPHIER_PIN_IECTRL_NONE, | 545 | UNIPHIER_PINCTRL_PIN(174, "AI1LRCK", UNIPHIER_PIN_IECTRL_NONE, |
548 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 546 | -1, UNIPHIER_PIN_DRV_FIXED8, |
549 | 174, UNIPHIER_PIN_PULL_DOWN), | 547 | 174, UNIPHIER_PIN_PULL_DOWN), |
550 | UNIPHIER_PINCTRL_PIN(175, "AI1D0", UNIPHIER_PIN_IECTRL_NONE, | 548 | UNIPHIER_PINCTRL_PIN(175, "AI1D0", UNIPHIER_PIN_IECTRL_NONE, |
551 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 549 | -1, UNIPHIER_PIN_DRV_FIXED8, |
552 | 175, UNIPHIER_PIN_PULL_DOWN), | 550 | 175, UNIPHIER_PIN_PULL_DOWN), |
553 | UNIPHIER_PINCTRL_PIN(176, "AI1D1", UNIPHIER_PIN_IECTRL_NONE, | 551 | UNIPHIER_PINCTRL_PIN(176, "AI1D1", UNIPHIER_PIN_IECTRL_NONE, |
554 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 552 | -1, UNIPHIER_PIN_DRV_FIXED8, |
555 | 176, UNIPHIER_PIN_PULL_DOWN), | 553 | 176, UNIPHIER_PIN_PULL_DOWN), |
556 | UNIPHIER_PINCTRL_PIN(177, "AI1D2", UNIPHIER_PIN_IECTRL_NONE, | 554 | UNIPHIER_PINCTRL_PIN(177, "AI1D2", UNIPHIER_PIN_IECTRL_NONE, |
557 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 555 | -1, UNIPHIER_PIN_DRV_FIXED8, |
558 | 177, UNIPHIER_PIN_PULL_DOWN), | 556 | 177, UNIPHIER_PIN_PULL_DOWN), |
559 | UNIPHIER_PINCTRL_PIN(178, "AI1D3", UNIPHIER_PIN_IECTRL_NONE, | 557 | UNIPHIER_PINCTRL_PIN(178, "AI1D3", UNIPHIER_PIN_IECTRL_NONE, |
560 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 558 | -1, UNIPHIER_PIN_DRV_FIXED8, |
561 | 178, UNIPHIER_PIN_PULL_DOWN), | 559 | 178, UNIPHIER_PIN_PULL_DOWN), |
562 | UNIPHIER_PINCTRL_PIN(179, "AI2ADCCK", UNIPHIER_PIN_IECTRL_NONE, | 560 | UNIPHIER_PINCTRL_PIN(179, "AI2ADCCK", UNIPHIER_PIN_IECTRL_NONE, |
563 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 561 | -1, UNIPHIER_PIN_DRV_FIXED8, |
564 | 179, UNIPHIER_PIN_PULL_DOWN), | 562 | 179, UNIPHIER_PIN_PULL_DOWN), |
565 | UNIPHIER_PINCTRL_PIN(180, "AI2BCK", UNIPHIER_PIN_IECTRL_NONE, | 563 | UNIPHIER_PINCTRL_PIN(180, "AI2BCK", UNIPHIER_PIN_IECTRL_NONE, |
566 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 564 | -1, UNIPHIER_PIN_DRV_FIXED8, |
567 | 180, UNIPHIER_PIN_PULL_DOWN), | 565 | 180, UNIPHIER_PIN_PULL_DOWN), |
568 | UNIPHIER_PINCTRL_PIN(181, "AI2LRCK", UNIPHIER_PIN_IECTRL_NONE, | 566 | UNIPHIER_PINCTRL_PIN(181, "AI2LRCK", UNIPHIER_PIN_IECTRL_NONE, |
569 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 567 | -1, UNIPHIER_PIN_DRV_FIXED8, |
570 | 181, UNIPHIER_PIN_PULL_DOWN), | 568 | 181, UNIPHIER_PIN_PULL_DOWN), |
571 | UNIPHIER_PINCTRL_PIN(182, "AI2D0", UNIPHIER_PIN_IECTRL_NONE, | 569 | UNIPHIER_PINCTRL_PIN(182, "AI2D0", UNIPHIER_PIN_IECTRL_NONE, |
572 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 570 | -1, UNIPHIER_PIN_DRV_FIXED8, |
573 | 182, UNIPHIER_PIN_PULL_DOWN), | 571 | 182, UNIPHIER_PIN_PULL_DOWN), |
574 | UNIPHIER_PINCTRL_PIN(183, "AI2D1", UNIPHIER_PIN_IECTRL_NONE, | 572 | UNIPHIER_PINCTRL_PIN(183, "AI2D1", UNIPHIER_PIN_IECTRL_NONE, |
575 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 573 | -1, UNIPHIER_PIN_DRV_FIXED8, |
576 | 183, UNIPHIER_PIN_PULL_DOWN), | 574 | 183, UNIPHIER_PIN_PULL_DOWN), |
577 | UNIPHIER_PINCTRL_PIN(184, "AI2D2", UNIPHIER_PIN_IECTRL_NONE, | 575 | UNIPHIER_PINCTRL_PIN(184, "AI2D2", UNIPHIER_PIN_IECTRL_NONE, |
578 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 576 | -1, UNIPHIER_PIN_DRV_FIXED8, |
579 | 184, UNIPHIER_PIN_PULL_DOWN), | 577 | 184, UNIPHIER_PIN_PULL_DOWN), |
580 | UNIPHIER_PINCTRL_PIN(185, "AI2D3", UNIPHIER_PIN_IECTRL_NONE, | 578 | UNIPHIER_PINCTRL_PIN(185, "AI2D3", UNIPHIER_PIN_IECTRL_NONE, |
581 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 579 | -1, UNIPHIER_PIN_DRV_FIXED8, |
582 | 185, UNIPHIER_PIN_PULL_DOWN), | 580 | 185, UNIPHIER_PIN_PULL_DOWN), |
583 | UNIPHIER_PINCTRL_PIN(186, "AI3ADCCK", UNIPHIER_PIN_IECTRL_NONE, | 581 | UNIPHIER_PINCTRL_PIN(186, "AI3ADCCK", UNIPHIER_PIN_IECTRL_NONE, |
584 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 582 | -1, UNIPHIER_PIN_DRV_FIXED8, |
585 | 186, UNIPHIER_PIN_PULL_DOWN), | 583 | 186, UNIPHIER_PIN_PULL_DOWN), |
586 | UNIPHIER_PINCTRL_PIN(187, "AI3BCK", UNIPHIER_PIN_IECTRL_NONE, | 584 | UNIPHIER_PINCTRL_PIN(187, "AI3BCK", UNIPHIER_PIN_IECTRL_NONE, |
587 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 585 | -1, UNIPHIER_PIN_DRV_FIXED8, |
588 | 187, UNIPHIER_PIN_PULL_DOWN), | 586 | 187, UNIPHIER_PIN_PULL_DOWN), |
589 | UNIPHIER_PINCTRL_PIN(188, "AI3LRCK", UNIPHIER_PIN_IECTRL_NONE, | 587 | UNIPHIER_PINCTRL_PIN(188, "AI3LRCK", UNIPHIER_PIN_IECTRL_NONE, |
590 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 588 | -1, UNIPHIER_PIN_DRV_FIXED8, |
591 | 188, UNIPHIER_PIN_PULL_DOWN), | 589 | 188, UNIPHIER_PIN_PULL_DOWN), |
592 | UNIPHIER_PINCTRL_PIN(189, "AI3D0", UNIPHIER_PIN_IECTRL_NONE, | 590 | UNIPHIER_PINCTRL_PIN(189, "AI3D0", UNIPHIER_PIN_IECTRL_NONE, |
593 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 591 | -1, UNIPHIER_PIN_DRV_FIXED8, |
594 | 189, UNIPHIER_PIN_PULL_DOWN), | 592 | 189, UNIPHIER_PIN_PULL_DOWN), |
595 | UNIPHIER_PINCTRL_PIN(190, "AO1IEC", UNIPHIER_PIN_IECTRL_NONE, | 593 | UNIPHIER_PINCTRL_PIN(190, "AO1IEC", UNIPHIER_PIN_IECTRL_NONE, |
596 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 594 | -1, UNIPHIER_PIN_DRV_FIXED8, |
597 | 190, UNIPHIER_PIN_PULL_DOWN), | 595 | 190, UNIPHIER_PIN_PULL_DOWN), |
598 | UNIPHIER_PINCTRL_PIN(191, "AO1DACCK", UNIPHIER_PIN_IECTRL_NONE, | 596 | UNIPHIER_PINCTRL_PIN(191, "AO1DACCK", UNIPHIER_PIN_IECTRL_NONE, |
599 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 597 | -1, UNIPHIER_PIN_DRV_FIXED8, |
600 | 191, UNIPHIER_PIN_PULL_DOWN), | 598 | 191, UNIPHIER_PIN_PULL_DOWN), |
601 | UNIPHIER_PINCTRL_PIN(192, "AO1BCK", UNIPHIER_PIN_IECTRL_NONE, | 599 | UNIPHIER_PINCTRL_PIN(192, "AO1BCK", UNIPHIER_PIN_IECTRL_NONE, |
602 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 600 | -1, UNIPHIER_PIN_DRV_FIXED8, |
603 | 192, UNIPHIER_PIN_PULL_DOWN), | 601 | 192, UNIPHIER_PIN_PULL_DOWN), |
604 | UNIPHIER_PINCTRL_PIN(193, "AO1LRCK", UNIPHIER_PIN_IECTRL_NONE, | 602 | UNIPHIER_PINCTRL_PIN(193, "AO1LRCK", UNIPHIER_PIN_IECTRL_NONE, |
605 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 603 | -1, UNIPHIER_PIN_DRV_FIXED8, |
606 | 193, UNIPHIER_PIN_PULL_DOWN), | 604 | 193, UNIPHIER_PIN_PULL_DOWN), |
607 | UNIPHIER_PINCTRL_PIN(194, "AO1D0", UNIPHIER_PIN_IECTRL_NONE, | 605 | UNIPHIER_PINCTRL_PIN(194, "AO1D0", UNIPHIER_PIN_IECTRL_NONE, |
608 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 606 | -1, UNIPHIER_PIN_DRV_FIXED8, |
609 | 194, UNIPHIER_PIN_PULL_DOWN), | 607 | 194, UNIPHIER_PIN_PULL_DOWN), |
610 | UNIPHIER_PINCTRL_PIN(195, "AO1D1", UNIPHIER_PIN_IECTRL_NONE, | 608 | UNIPHIER_PINCTRL_PIN(195, "AO1D1", UNIPHIER_PIN_IECTRL_NONE, |
611 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 609 | -1, UNIPHIER_PIN_DRV_FIXED8, |
612 | 195, UNIPHIER_PIN_PULL_DOWN), | 610 | 195, UNIPHIER_PIN_PULL_DOWN), |
613 | UNIPHIER_PINCTRL_PIN(196, "AO1D2", UNIPHIER_PIN_IECTRL_NONE, | 611 | UNIPHIER_PINCTRL_PIN(196, "AO1D2", UNIPHIER_PIN_IECTRL_NONE, |
614 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 612 | -1, UNIPHIER_PIN_DRV_FIXED8, |
615 | 196, UNIPHIER_PIN_PULL_UP), | 613 | 196, UNIPHIER_PIN_PULL_UP), |
616 | UNIPHIER_PINCTRL_PIN(197, "AO1D3", UNIPHIER_PIN_IECTRL_NONE, | 614 | UNIPHIER_PINCTRL_PIN(197, "AO1D3", UNIPHIER_PIN_IECTRL_NONE, |
617 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 615 | -1, UNIPHIER_PIN_DRV_FIXED8, |
618 | 197, UNIPHIER_PIN_PULL_UP), | 616 | 197, UNIPHIER_PIN_PULL_UP), |
619 | UNIPHIER_PINCTRL_PIN(198, "AO2IEC", UNIPHIER_PIN_IECTRL_NONE, | 617 | UNIPHIER_PINCTRL_PIN(198, "AO2IEC", UNIPHIER_PIN_IECTRL_NONE, |
620 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 618 | -1, UNIPHIER_PIN_DRV_FIXED8, |
621 | 198, UNIPHIER_PIN_PULL_DOWN), | 619 | 198, UNIPHIER_PIN_PULL_DOWN), |
622 | UNIPHIER_PINCTRL_PIN(199, "AO2DACCK", UNIPHIER_PIN_IECTRL_NONE, | 620 | UNIPHIER_PINCTRL_PIN(199, "AO2DACCK", UNIPHIER_PIN_IECTRL_NONE, |
623 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 621 | -1, UNIPHIER_PIN_DRV_FIXED8, |
624 | 199, UNIPHIER_PIN_PULL_DOWN), | 622 | 199, UNIPHIER_PIN_PULL_DOWN), |
625 | UNIPHIER_PINCTRL_PIN(200, "AO2BCK", UNIPHIER_PIN_IECTRL_NONE, | 623 | UNIPHIER_PINCTRL_PIN(200, "AO2BCK", UNIPHIER_PIN_IECTRL_NONE, |
626 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 624 | -1, UNIPHIER_PIN_DRV_FIXED8, |
627 | 200, UNIPHIER_PIN_PULL_DOWN), | 625 | 200, UNIPHIER_PIN_PULL_DOWN), |
628 | UNIPHIER_PINCTRL_PIN(201, "AO2LRCK", UNIPHIER_PIN_IECTRL_NONE, | 626 | UNIPHIER_PINCTRL_PIN(201, "AO2LRCK", UNIPHIER_PIN_IECTRL_NONE, |
629 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 627 | -1, UNIPHIER_PIN_DRV_FIXED8, |
630 | 201, UNIPHIER_PIN_PULL_DOWN), | 628 | 201, UNIPHIER_PIN_PULL_DOWN), |
631 | UNIPHIER_PINCTRL_PIN(202, "AO2D0", UNIPHIER_PIN_IECTRL_NONE, | 629 | UNIPHIER_PINCTRL_PIN(202, "AO2D0", UNIPHIER_PIN_IECTRL_NONE, |
632 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 630 | -1, UNIPHIER_PIN_DRV_FIXED8, |
633 | 202, UNIPHIER_PIN_PULL_DOWN), | 631 | 202, UNIPHIER_PIN_PULL_DOWN), |
634 | UNIPHIER_PINCTRL_PIN(203, "AO2D1", UNIPHIER_PIN_IECTRL_NONE, | 632 | UNIPHIER_PINCTRL_PIN(203, "AO2D1", UNIPHIER_PIN_IECTRL_NONE, |
635 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 633 | -1, UNIPHIER_PIN_DRV_FIXED8, |
636 | 203, UNIPHIER_PIN_PULL_DOWN), | 634 | 203, UNIPHIER_PIN_PULL_DOWN), |
637 | UNIPHIER_PINCTRL_PIN(204, "AO2D2", UNIPHIER_PIN_IECTRL_NONE, | 635 | UNIPHIER_PINCTRL_PIN(204, "AO2D2", UNIPHIER_PIN_IECTRL_NONE, |
638 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 636 | -1, UNIPHIER_PIN_DRV_FIXED8, |
639 | 204, UNIPHIER_PIN_PULL_DOWN), | 637 | 204, UNIPHIER_PIN_PULL_DOWN), |
640 | UNIPHIER_PINCTRL_PIN(205, "AO2D3", UNIPHIER_PIN_IECTRL_NONE, | 638 | UNIPHIER_PINCTRL_PIN(205, "AO2D3", UNIPHIER_PIN_IECTRL_NONE, |
641 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 639 | -1, UNIPHIER_PIN_DRV_FIXED8, |
642 | 205, UNIPHIER_PIN_PULL_DOWN), | 640 | 205, UNIPHIER_PIN_PULL_DOWN), |
643 | UNIPHIER_PINCTRL_PIN(206, "AO3DACCK", UNIPHIER_PIN_IECTRL_NONE, | 641 | UNIPHIER_PINCTRL_PIN(206, "AO3DACCK", UNIPHIER_PIN_IECTRL_NONE, |
644 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 642 | -1, UNIPHIER_PIN_DRV_FIXED8, |
645 | 206, UNIPHIER_PIN_PULL_DOWN), | 643 | 206, UNIPHIER_PIN_PULL_DOWN), |
646 | UNIPHIER_PINCTRL_PIN(207, "AO3BCK", UNIPHIER_PIN_IECTRL_NONE, | 644 | UNIPHIER_PINCTRL_PIN(207, "AO3BCK", UNIPHIER_PIN_IECTRL_NONE, |
647 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 645 | -1, UNIPHIER_PIN_DRV_FIXED8, |
648 | 207, UNIPHIER_PIN_PULL_DOWN), | 646 | 207, UNIPHIER_PIN_PULL_DOWN), |
649 | UNIPHIER_PINCTRL_PIN(208, "AO3LRCK", UNIPHIER_PIN_IECTRL_NONE, | 647 | UNIPHIER_PINCTRL_PIN(208, "AO3LRCK", UNIPHIER_PIN_IECTRL_NONE, |
650 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 648 | -1, UNIPHIER_PIN_DRV_FIXED8, |
651 | 208, UNIPHIER_PIN_PULL_DOWN), | 649 | 208, UNIPHIER_PIN_PULL_DOWN), |
652 | UNIPHIER_PINCTRL_PIN(209, "AO3DMIX", UNIPHIER_PIN_IECTRL_NONE, | 650 | UNIPHIER_PINCTRL_PIN(209, "AO3DMIX", UNIPHIER_PIN_IECTRL_NONE, |
653 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 651 | -1, UNIPHIER_PIN_DRV_FIXED8, |
654 | 209, UNIPHIER_PIN_PULL_DOWN), | 652 | 209, UNIPHIER_PIN_PULL_DOWN), |
655 | UNIPHIER_PINCTRL_PIN(210, "AO4DACCK", UNIPHIER_PIN_IECTRL_NONE, | 653 | UNIPHIER_PINCTRL_PIN(210, "AO4DACCK", UNIPHIER_PIN_IECTRL_NONE, |
656 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 654 | -1, UNIPHIER_PIN_DRV_FIXED8, |
657 | 210, UNIPHIER_PIN_PULL_DOWN), | 655 | 210, UNIPHIER_PIN_PULL_DOWN), |
658 | UNIPHIER_PINCTRL_PIN(211, "AO4BCK", UNIPHIER_PIN_IECTRL_NONE, | 656 | UNIPHIER_PINCTRL_PIN(211, "AO4BCK", UNIPHIER_PIN_IECTRL_NONE, |
659 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 657 | -1, UNIPHIER_PIN_DRV_FIXED8, |
660 | 211, UNIPHIER_PIN_PULL_DOWN), | 658 | 211, UNIPHIER_PIN_PULL_DOWN), |
661 | UNIPHIER_PINCTRL_PIN(212, "AO4LRCK", UNIPHIER_PIN_IECTRL_NONE, | 659 | UNIPHIER_PINCTRL_PIN(212, "AO4LRCK", UNIPHIER_PIN_IECTRL_NONE, |
662 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 660 | -1, UNIPHIER_PIN_DRV_FIXED8, |
663 | 212, UNIPHIER_PIN_PULL_DOWN), | 661 | 212, UNIPHIER_PIN_PULL_DOWN), |
664 | UNIPHIER_PINCTRL_PIN(213, "AO4DMIX", UNIPHIER_PIN_IECTRL_NONE, | 662 | UNIPHIER_PINCTRL_PIN(213, "AO4DMIX", UNIPHIER_PIN_IECTRL_NONE, |
665 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 663 | -1, UNIPHIER_PIN_DRV_FIXED8, |
666 | 213, UNIPHIER_PIN_PULL_DOWN), | 664 | 213, UNIPHIER_PIN_PULL_DOWN), |
667 | UNIPHIER_PINCTRL_PIN(214, "VI1CLK", UNIPHIER_PIN_IECTRL_NONE, | 665 | UNIPHIER_PINCTRL_PIN(214, "VI1CLK", UNIPHIER_PIN_IECTRL_NONE, |
668 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 666 | -1, UNIPHIER_PIN_DRV_FIXED8, |
669 | 214, UNIPHIER_PIN_PULL_DOWN), | 667 | 214, UNIPHIER_PIN_PULL_DOWN), |
670 | UNIPHIER_PINCTRL_PIN(215, "VI1C0", UNIPHIER_PIN_IECTRL_NONE, | 668 | UNIPHIER_PINCTRL_PIN(215, "VI1C0", UNIPHIER_PIN_IECTRL_NONE, |
671 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 669 | -1, UNIPHIER_PIN_DRV_FIXED8, |
672 | 215, UNIPHIER_PIN_PULL_DOWN), | 670 | 215, UNIPHIER_PIN_PULL_DOWN), |
673 | UNIPHIER_PINCTRL_PIN(216, "VI1C1", UNIPHIER_PIN_IECTRL_NONE, | 671 | UNIPHIER_PINCTRL_PIN(216, "VI1C1", UNIPHIER_PIN_IECTRL_NONE, |
674 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 672 | -1, UNIPHIER_PIN_DRV_FIXED8, |
675 | 216, UNIPHIER_PIN_PULL_DOWN), | 673 | 216, UNIPHIER_PIN_PULL_DOWN), |
676 | UNIPHIER_PINCTRL_PIN(217, "VI1C2", UNIPHIER_PIN_IECTRL_NONE, | 674 | UNIPHIER_PINCTRL_PIN(217, "VI1C2", UNIPHIER_PIN_IECTRL_NONE, |
677 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 675 | -1, UNIPHIER_PIN_DRV_FIXED8, |
678 | 217, UNIPHIER_PIN_PULL_DOWN), | 676 | 217, UNIPHIER_PIN_PULL_DOWN), |
679 | UNIPHIER_PINCTRL_PIN(218, "VI1C3", UNIPHIER_PIN_IECTRL_NONE, | 677 | UNIPHIER_PINCTRL_PIN(218, "VI1C3", UNIPHIER_PIN_IECTRL_NONE, |
680 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 678 | -1, UNIPHIER_PIN_DRV_FIXED8, |
681 | 218, UNIPHIER_PIN_PULL_DOWN), | 679 | 218, UNIPHIER_PIN_PULL_DOWN), |
682 | UNIPHIER_PINCTRL_PIN(219, "VI1C4", UNIPHIER_PIN_IECTRL_NONE, | 680 | UNIPHIER_PINCTRL_PIN(219, "VI1C4", UNIPHIER_PIN_IECTRL_NONE, |
683 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 681 | -1, UNIPHIER_PIN_DRV_FIXED8, |
684 | 219, UNIPHIER_PIN_PULL_DOWN), | 682 | 219, UNIPHIER_PIN_PULL_DOWN), |
685 | UNIPHIER_PINCTRL_PIN(220, "VI1C5", UNIPHIER_PIN_IECTRL_NONE, | 683 | UNIPHIER_PINCTRL_PIN(220, "VI1C5", UNIPHIER_PIN_IECTRL_NONE, |
686 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 684 | -1, UNIPHIER_PIN_DRV_FIXED8, |
687 | 220, UNIPHIER_PIN_PULL_DOWN), | 685 | 220, UNIPHIER_PIN_PULL_DOWN), |
688 | UNIPHIER_PINCTRL_PIN(221, "VI1C6", UNIPHIER_PIN_IECTRL_NONE, | 686 | UNIPHIER_PINCTRL_PIN(221, "VI1C6", UNIPHIER_PIN_IECTRL_NONE, |
689 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 687 | -1, UNIPHIER_PIN_DRV_FIXED8, |
690 | 221, UNIPHIER_PIN_PULL_DOWN), | 688 | 221, UNIPHIER_PIN_PULL_DOWN), |
691 | UNIPHIER_PINCTRL_PIN(222, "VI1C7", UNIPHIER_PIN_IECTRL_NONE, | 689 | UNIPHIER_PINCTRL_PIN(222, "VI1C7", UNIPHIER_PIN_IECTRL_NONE, |
692 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 690 | -1, UNIPHIER_PIN_DRV_FIXED8, |
693 | 222, UNIPHIER_PIN_PULL_DOWN), | 691 | 222, UNIPHIER_PIN_PULL_DOWN), |
694 | UNIPHIER_PINCTRL_PIN(223, "VI1C8", UNIPHIER_PIN_IECTRL_NONE, | 692 | UNIPHIER_PINCTRL_PIN(223, "VI1C8", UNIPHIER_PIN_IECTRL_NONE, |
695 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 693 | -1, UNIPHIER_PIN_DRV_FIXED8, |
696 | 223, UNIPHIER_PIN_PULL_DOWN), | 694 | 223, UNIPHIER_PIN_PULL_DOWN), |
697 | UNIPHIER_PINCTRL_PIN(224, "VI1C9", UNIPHIER_PIN_IECTRL_NONE, | 695 | UNIPHIER_PINCTRL_PIN(224, "VI1C9", UNIPHIER_PIN_IECTRL_NONE, |
698 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 696 | -1, UNIPHIER_PIN_DRV_FIXED8, |
699 | 224, UNIPHIER_PIN_PULL_DOWN), | 697 | 224, UNIPHIER_PIN_PULL_DOWN), |
700 | UNIPHIER_PINCTRL_PIN(225, "VI1Y0", UNIPHIER_PIN_IECTRL_NONE, | 698 | UNIPHIER_PINCTRL_PIN(225, "VI1Y0", UNIPHIER_PIN_IECTRL_NONE, |
701 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 699 | -1, UNIPHIER_PIN_DRV_FIXED8, |
702 | 225, UNIPHIER_PIN_PULL_DOWN), | 700 | 225, UNIPHIER_PIN_PULL_DOWN), |
703 | UNIPHIER_PINCTRL_PIN(226, "VI1Y1", UNIPHIER_PIN_IECTRL_NONE, | 701 | UNIPHIER_PINCTRL_PIN(226, "VI1Y1", UNIPHIER_PIN_IECTRL_NONE, |
704 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 702 | -1, UNIPHIER_PIN_DRV_FIXED8, |
705 | 226, UNIPHIER_PIN_PULL_DOWN), | 703 | 226, UNIPHIER_PIN_PULL_DOWN), |
706 | UNIPHIER_PINCTRL_PIN(227, "VI1Y2", UNIPHIER_PIN_IECTRL_NONE, | 704 | UNIPHIER_PINCTRL_PIN(227, "VI1Y2", UNIPHIER_PIN_IECTRL_NONE, |
707 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 705 | -1, UNIPHIER_PIN_DRV_FIXED8, |
708 | 227, UNIPHIER_PIN_PULL_DOWN), | 706 | 227, UNIPHIER_PIN_PULL_DOWN), |
709 | UNIPHIER_PINCTRL_PIN(228, "VI1Y3", UNIPHIER_PIN_IECTRL_NONE, | 707 | UNIPHIER_PINCTRL_PIN(228, "VI1Y3", UNIPHIER_PIN_IECTRL_NONE, |
710 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 708 | -1, UNIPHIER_PIN_DRV_FIXED8, |
711 | 228, UNIPHIER_PIN_PULL_DOWN), | 709 | 228, UNIPHIER_PIN_PULL_DOWN), |
712 | UNIPHIER_PINCTRL_PIN(229, "VI1Y4", UNIPHIER_PIN_IECTRL_NONE, | 710 | UNIPHIER_PINCTRL_PIN(229, "VI1Y4", UNIPHIER_PIN_IECTRL_NONE, |
713 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 711 | -1, UNIPHIER_PIN_DRV_FIXED8, |
714 | 229, UNIPHIER_PIN_PULL_DOWN), | 712 | 229, UNIPHIER_PIN_PULL_DOWN), |
715 | UNIPHIER_PINCTRL_PIN(230, "VI1Y5", UNIPHIER_PIN_IECTRL_NONE, | 713 | UNIPHIER_PINCTRL_PIN(230, "VI1Y5", UNIPHIER_PIN_IECTRL_NONE, |
716 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 714 | -1, UNIPHIER_PIN_DRV_FIXED8, |
717 | 230, UNIPHIER_PIN_PULL_DOWN), | 715 | 230, UNIPHIER_PIN_PULL_DOWN), |
718 | UNIPHIER_PINCTRL_PIN(231, "VI1Y6", UNIPHIER_PIN_IECTRL_NONE, | 716 | UNIPHIER_PINCTRL_PIN(231, "VI1Y6", UNIPHIER_PIN_IECTRL_NONE, |
719 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 717 | -1, UNIPHIER_PIN_DRV_FIXED8, |
720 | 231, UNIPHIER_PIN_PULL_DOWN), | 718 | 231, UNIPHIER_PIN_PULL_DOWN), |
721 | UNIPHIER_PINCTRL_PIN(232, "VI1Y7", UNIPHIER_PIN_IECTRL_NONE, | 719 | UNIPHIER_PINCTRL_PIN(232, "VI1Y7", UNIPHIER_PIN_IECTRL_NONE, |
722 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 720 | -1, UNIPHIER_PIN_DRV_FIXED8, |
723 | 232, UNIPHIER_PIN_PULL_DOWN), | 721 | 232, UNIPHIER_PIN_PULL_DOWN), |
724 | UNIPHIER_PINCTRL_PIN(233, "VI1Y8", UNIPHIER_PIN_IECTRL_NONE, | 722 | UNIPHIER_PINCTRL_PIN(233, "VI1Y8", UNIPHIER_PIN_IECTRL_NONE, |
725 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 723 | -1, UNIPHIER_PIN_DRV_FIXED8, |
726 | 233, UNIPHIER_PIN_PULL_DOWN), | 724 | 233, UNIPHIER_PIN_PULL_DOWN), |
727 | UNIPHIER_PINCTRL_PIN(234, "VI1Y9", UNIPHIER_PIN_IECTRL_NONE, | 725 | UNIPHIER_PINCTRL_PIN(234, "VI1Y9", UNIPHIER_PIN_IECTRL_NONE, |
728 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 726 | -1, UNIPHIER_PIN_DRV_FIXED8, |
729 | 234, UNIPHIER_PIN_PULL_DOWN), | 727 | 234, UNIPHIER_PIN_PULL_DOWN), |
730 | UNIPHIER_PINCTRL_PIN(235, "VI1DE", UNIPHIER_PIN_IECTRL_NONE, | 728 | UNIPHIER_PINCTRL_PIN(235, "VI1DE", UNIPHIER_PIN_IECTRL_NONE, |
731 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 729 | -1, UNIPHIER_PIN_DRV_FIXED8, |
732 | 235, UNIPHIER_PIN_PULL_DOWN), | 730 | 235, UNIPHIER_PIN_PULL_DOWN), |
733 | UNIPHIER_PINCTRL_PIN(236, "VI1HSYNC", UNIPHIER_PIN_IECTRL_NONE, | 731 | UNIPHIER_PINCTRL_PIN(236, "VI1HSYNC", UNIPHIER_PIN_IECTRL_NONE, |
734 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 732 | -1, UNIPHIER_PIN_DRV_FIXED8, |
735 | 236, UNIPHIER_PIN_PULL_DOWN), | 733 | 236, UNIPHIER_PIN_PULL_DOWN), |
736 | UNIPHIER_PINCTRL_PIN(237, "VI1VSYNC", UNIPHIER_PIN_IECTRL_NONE, | 734 | UNIPHIER_PINCTRL_PIN(237, "VI1VSYNC", UNIPHIER_PIN_IECTRL_NONE, |
737 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 735 | -1, UNIPHIER_PIN_DRV_FIXED8, |
738 | 237, UNIPHIER_PIN_PULL_DOWN), | 736 | 237, UNIPHIER_PIN_PULL_DOWN), |
739 | UNIPHIER_PINCTRL_PIN(238, "VO1CLK", UNIPHIER_PIN_IECTRL_NONE, | 737 | UNIPHIER_PINCTRL_PIN(238, "VO1CLK", UNIPHIER_PIN_IECTRL_NONE, |
740 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 738 | -1, UNIPHIER_PIN_DRV_FIXED8, |
741 | 238, UNIPHIER_PIN_PULL_DOWN), | 739 | 238, UNIPHIER_PIN_PULL_DOWN), |
742 | UNIPHIER_PINCTRL_PIN(239, "VO1D0", UNIPHIER_PIN_IECTRL_NONE, | 740 | UNIPHIER_PINCTRL_PIN(239, "VO1D0", UNIPHIER_PIN_IECTRL_NONE, |
743 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 741 | -1, UNIPHIER_PIN_DRV_FIXED8, |
744 | 239, UNIPHIER_PIN_PULL_DOWN), | 742 | 239, UNIPHIER_PIN_PULL_DOWN), |
745 | UNIPHIER_PINCTRL_PIN(240, "VO1D1", UNIPHIER_PIN_IECTRL_NONE, | 743 | UNIPHIER_PINCTRL_PIN(240, "VO1D1", UNIPHIER_PIN_IECTRL_NONE, |
746 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 744 | -1, UNIPHIER_PIN_DRV_FIXED8, |
747 | 240, UNIPHIER_PIN_PULL_DOWN), | 745 | 240, UNIPHIER_PIN_PULL_DOWN), |
748 | UNIPHIER_PINCTRL_PIN(241, "VO1D2", UNIPHIER_PIN_IECTRL_NONE, | 746 | UNIPHIER_PINCTRL_PIN(241, "VO1D2", UNIPHIER_PIN_IECTRL_NONE, |
749 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 747 | -1, UNIPHIER_PIN_DRV_FIXED8, |
750 | 241, UNIPHIER_PIN_PULL_DOWN), | 748 | 241, UNIPHIER_PIN_PULL_DOWN), |
751 | UNIPHIER_PINCTRL_PIN(242, "VO1D3", UNIPHIER_PIN_IECTRL_NONE, | 749 | UNIPHIER_PINCTRL_PIN(242, "VO1D3", UNIPHIER_PIN_IECTRL_NONE, |
752 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 750 | -1, UNIPHIER_PIN_DRV_FIXED8, |
753 | 242, UNIPHIER_PIN_PULL_DOWN), | 751 | 242, UNIPHIER_PIN_PULL_DOWN), |
754 | UNIPHIER_PINCTRL_PIN(243, "VO1D4", UNIPHIER_PIN_IECTRL_NONE, | 752 | UNIPHIER_PINCTRL_PIN(243, "VO1D4", UNIPHIER_PIN_IECTRL_NONE, |
755 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 753 | -1, UNIPHIER_PIN_DRV_FIXED8, |
756 | 243, UNIPHIER_PIN_PULL_DOWN), | 754 | 243, UNIPHIER_PIN_PULL_DOWN), |
757 | UNIPHIER_PINCTRL_PIN(244, "VO1D5", UNIPHIER_PIN_IECTRL_NONE, | 755 | UNIPHIER_PINCTRL_PIN(244, "VO1D5", UNIPHIER_PIN_IECTRL_NONE, |
758 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 756 | -1, UNIPHIER_PIN_DRV_FIXED8, |
759 | 244, UNIPHIER_PIN_PULL_DOWN), | 757 | 244, UNIPHIER_PIN_PULL_DOWN), |
760 | UNIPHIER_PINCTRL_PIN(245, "VO1D6", UNIPHIER_PIN_IECTRL_NONE, | 758 | UNIPHIER_PINCTRL_PIN(245, "VO1D6", UNIPHIER_PIN_IECTRL_NONE, |
761 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 759 | -1, UNIPHIER_PIN_DRV_FIXED8, |
762 | 245, UNIPHIER_PIN_PULL_DOWN), | 760 | 245, UNIPHIER_PIN_PULL_DOWN), |
763 | UNIPHIER_PINCTRL_PIN(246, "VO1D7", UNIPHIER_PIN_IECTRL_NONE, | 761 | UNIPHIER_PINCTRL_PIN(246, "VO1D7", UNIPHIER_PIN_IECTRL_NONE, |
764 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 762 | -1, UNIPHIER_PIN_DRV_FIXED8, |
765 | 246, UNIPHIER_PIN_PULL_DOWN), | 763 | 246, UNIPHIER_PIN_PULL_DOWN), |
766 | UNIPHIER_PINCTRL_PIN(247, "SDCD", UNIPHIER_PIN_IECTRL_NONE, | 764 | UNIPHIER_PINCTRL_PIN(247, "SDCD", UNIPHIER_PIN_IECTRL_NONE, |
767 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 765 | -1, UNIPHIER_PIN_DRV_FIXED8, |
768 | 247, UNIPHIER_PIN_PULL_UP), | 766 | 247, UNIPHIER_PIN_PULL_UP), |
769 | UNIPHIER_PINCTRL_PIN(248, "SDWP", UNIPHIER_PIN_IECTRL_NONE, | 767 | UNIPHIER_PINCTRL_PIN(248, "SDWP", UNIPHIER_PIN_IECTRL_NONE, |
770 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 768 | -1, UNIPHIER_PIN_DRV_FIXED8, |
771 | 248, UNIPHIER_PIN_PULL_UP), | 769 | 248, UNIPHIER_PIN_PULL_UP), |
772 | UNIPHIER_PINCTRL_PIN(249, "SDVOLC", UNIPHIER_PIN_IECTRL_NONE, | 770 | UNIPHIER_PINCTRL_PIN(249, "SDVOLC", UNIPHIER_PIN_IECTRL_NONE, |
773 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 771 | -1, UNIPHIER_PIN_DRV_FIXED8, |
774 | 249, UNIPHIER_PIN_PULL_UP), | 772 | 249, UNIPHIER_PIN_PULL_UP), |
775 | UNIPHIER_PINCTRL_PIN(250, "SDCLK", UNIPHIER_PIN_IECTRL_NONE, | 773 | UNIPHIER_PINCTRL_PIN(250, "SDCLK", UNIPHIER_PIN_IECTRL_NONE, |
776 | 40, UNIPHIER_PIN_DRV_8_12_16_20, | 774 | 10, UNIPHIER_PIN_DRV_2BIT, |
777 | -1, UNIPHIER_PIN_PULL_UP_FIXED), | 775 | -1, UNIPHIER_PIN_PULL_UP_FIXED), |
778 | UNIPHIER_PINCTRL_PIN(251, "SDCMD", UNIPHIER_PIN_IECTRL_NONE, | 776 | UNIPHIER_PINCTRL_PIN(251, "SDCMD", UNIPHIER_PIN_IECTRL_NONE, |
779 | 44, UNIPHIER_PIN_DRV_8_12_16_20, | 777 | 11, UNIPHIER_PIN_DRV_2BIT, |
780 | -1, UNIPHIER_PIN_PULL_UP_FIXED), | 778 | -1, UNIPHIER_PIN_PULL_UP_FIXED), |
781 | UNIPHIER_PINCTRL_PIN(252, "SDDAT0", UNIPHIER_PIN_IECTRL_NONE, | 779 | UNIPHIER_PINCTRL_PIN(252, "SDDAT0", UNIPHIER_PIN_IECTRL_NONE, |
782 | 48, UNIPHIER_PIN_DRV_8_12_16_20, | 780 | 12, UNIPHIER_PIN_DRV_2BIT, |
783 | -1, UNIPHIER_PIN_PULL_UP_FIXED), | 781 | -1, UNIPHIER_PIN_PULL_UP_FIXED), |
784 | UNIPHIER_PINCTRL_PIN(253, "SDDAT1", UNIPHIER_PIN_IECTRL_NONE, | 782 | UNIPHIER_PINCTRL_PIN(253, "SDDAT1", UNIPHIER_PIN_IECTRL_NONE, |
785 | 52, UNIPHIER_PIN_DRV_8_12_16_20, | 783 | 13, UNIPHIER_PIN_DRV_2BIT, |
786 | -1, UNIPHIER_PIN_PULL_UP_FIXED), | 784 | -1, UNIPHIER_PIN_PULL_UP_FIXED), |
787 | UNIPHIER_PINCTRL_PIN(254, "SDDAT2", UNIPHIER_PIN_IECTRL_NONE, | 785 | UNIPHIER_PINCTRL_PIN(254, "SDDAT2", UNIPHIER_PIN_IECTRL_NONE, |
788 | 56, UNIPHIER_PIN_DRV_8_12_16_20, | 786 | 14, UNIPHIER_PIN_DRV_2BIT, |
789 | -1, UNIPHIER_PIN_PULL_UP_FIXED), | 787 | -1, UNIPHIER_PIN_PULL_UP_FIXED), |
790 | UNIPHIER_PINCTRL_PIN(255, "SDDAT3", UNIPHIER_PIN_IECTRL_NONE, | 788 | UNIPHIER_PINCTRL_PIN(255, "SDDAT3", UNIPHIER_PIN_IECTRL_NONE, |
791 | 60, UNIPHIER_PIN_DRV_8_12_16_20, | 789 | 15, UNIPHIER_PIN_DRV_2BIT, |
792 | -1, UNIPHIER_PIN_PULL_UP_FIXED), | 790 | -1, UNIPHIER_PIN_PULL_UP_FIXED), |
793 | }; | 791 | }; |
794 | 792 | ||
795 | static const unsigned emmc_pins[] = {36, 37, 38, 39, 40, 41, 42}; | 793 | static const unsigned emmc_pins[] = {36, 37, 38, 39, 40, 41, 42}; |
796 | static const unsigned emmc_muxvals[] = {0, 0, 0, 0, 0, 0, 0}; | 794 | static const int emmc_muxvals[] = {0, 0, 0, 0, 0, 0, 0}; |
797 | static const unsigned emmc_dat8_pins[] = {43, 44, 45, 46}; | 795 | static const unsigned emmc_dat8_pins[] = {43, 44, 45, 46}; |
798 | static const unsigned emmc_dat8_muxvals[] = {0, 0, 0, 0}; | 796 | static const int emmc_dat8_muxvals[] = {0, 0, 0, 0}; |
799 | static const unsigned i2c0_pins[] = {112, 113}; | 797 | static const unsigned i2c0_pins[] = {112, 113}; |
800 | static const unsigned i2c0_muxvals[] = {0, 0}; | 798 | static const int i2c0_muxvals[] = {0, 0}; |
801 | static const unsigned i2c1_pins[] = {114, 115}; | 799 | static const unsigned i2c1_pins[] = {114, 115}; |
802 | static const unsigned i2c1_muxvals[] = {0, 0}; | 800 | static const int i2c1_muxvals[] = {0, 0}; |
803 | static const unsigned i2c2_pins[] = {116, 117}; | 801 | static const unsigned i2c2_pins[] = {116, 117}; |
804 | static const unsigned i2c2_muxvals[] = {0, 0}; | 802 | static const int i2c2_muxvals[] = {0, 0}; |
805 | static const unsigned i2c3_pins[] = {118, 119}; | 803 | static const unsigned i2c3_pins[] = {118, 119}; |
806 | static const unsigned i2c3_muxvals[] = {0, 0}; | 804 | static const int i2c3_muxvals[] = {0, 0}; |
807 | static const unsigned i2c5_pins[] = {87, 88}; | 805 | static const unsigned i2c5_pins[] = {87, 88}; |
808 | static const unsigned i2c5_muxvals[] = {2, 2}; | 806 | static const int i2c5_muxvals[] = {2, 2}; |
809 | static const unsigned i2c5b_pins[] = {196, 197}; | 807 | static const unsigned i2c5b_pins[] = {196, 197}; |
810 | static const unsigned i2c5b_muxvals[] = {2, 2}; | 808 | static const int i2c5b_muxvals[] = {2, 2}; |
811 | static const unsigned i2c5c_pins[] = {215, 216}; | 809 | static const unsigned i2c5c_pins[] = {215, 216}; |
812 | static const unsigned i2c5c_muxvals[] = {2, 2}; | 810 | static const int i2c5c_muxvals[] = {2, 2}; |
813 | static const unsigned i2c6_pins[] = {101, 102}; | 811 | static const unsigned i2c6_pins[] = {101, 102}; |
814 | static const unsigned i2c6_muxvals[] = {2, 2}; | 812 | static const int i2c6_muxvals[] = {2, 2}; |
815 | static const unsigned nand_pins[] = {19, 20, 21, 22, 23, 24, 25, 28, 29, 30, | 813 | static const unsigned nand_pins[] = {19, 20, 21, 22, 23, 24, 25, 28, 29, 30, |
816 | 31, 32, 33, 34, 35}; | 814 | 31, 32, 33, 34, 35}; |
817 | static const unsigned nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 815 | static const int nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; |
818 | 0, 0}; | ||
819 | static const unsigned nand_cs1_pins[] = {26, 27}; | 816 | static const unsigned nand_cs1_pins[] = {26, 27}; |
820 | static const unsigned nand_cs1_muxvals[] = {0, 0}; | 817 | static const int nand_cs1_muxvals[] = {0, 0}; |
821 | static const unsigned sd_pins[] = {250, 251, 252, 253, 254, 255, 256, 257, 258}; | 818 | static const unsigned sd_pins[] = {250, 251, 252, 253, 254, 255, 256, 257, 258}; |
822 | static const unsigned sd_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; | 819 | static const int sd_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; |
820 | static const unsigned system_bus_pins[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13, | ||
821 | 14, 15, 16, 17}; | ||
822 | static const int system_bus_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
823 | 0}; | ||
824 | static const unsigned system_bus_cs0_pins[] = {105}; | ||
825 | static const int system_bus_cs0_muxvals[] = {1}; | ||
826 | static const unsigned system_bus_cs1_pins[] = {18}; | ||
827 | static const int system_bus_cs1_muxvals[] = {0}; | ||
828 | static const unsigned system_bus_cs2_pins[] = {106}; | ||
829 | static const int system_bus_cs2_muxvals[] = {1}; | ||
830 | static const unsigned system_bus_cs3_pins[] = {100}; | ||
831 | static const int system_bus_cs3_muxvals[] = {1}; | ||
832 | static const unsigned system_bus_cs4_pins[] = {101}; | ||
833 | static const int system_bus_cs4_muxvals[] = {1}; | ||
834 | static const unsigned system_bus_cs5_pins[] = {102}; | ||
835 | static const int system_bus_cs5_muxvals[] = {1}; | ||
836 | static const unsigned system_bus_cs6_pins[] = {69}; | ||
837 | static const int system_bus_cs6_muxvals[] = {5}; | ||
838 | static const unsigned system_bus_cs7_pins[] = {70}; | ||
839 | static const int system_bus_cs7_muxvals[] = {5}; | ||
823 | static const unsigned uart0_pins[] = {47, 48}; | 840 | static const unsigned uart0_pins[] = {47, 48}; |
824 | static const unsigned uart0_muxvals[] = {0, 0}; | 841 | static const int uart0_muxvals[] = {0, 0}; |
825 | static const unsigned uart0b_pins[] = {227, 228}; | 842 | static const unsigned uart0b_pins[] = {227, 228}; |
826 | static const unsigned uart0b_muxvals[] = {3, 3}; | 843 | static const int uart0b_muxvals[] = {3, 3}; |
827 | static const unsigned uart1_pins[] = {49, 50}; | 844 | static const unsigned uart1_pins[] = {49, 50}; |
828 | static const unsigned uart1_muxvals[] = {0, 0}; | 845 | static const int uart1_muxvals[] = {0, 0}; |
829 | static const unsigned uart2_pins[] = {51, 52}; | 846 | static const unsigned uart2_pins[] = {51, 52}; |
830 | static const unsigned uart2_muxvals[] = {0, 0}; | 847 | static const int uart2_muxvals[] = {0, 0}; |
831 | static const unsigned uart3_pins[] = {53, 54}; | 848 | static const unsigned uart3_pins[] = {53, 54}; |
832 | static const unsigned uart3_muxvals[] = {0, 0}; | 849 | static const int uart3_muxvals[] = {0, 0}; |
833 | static const unsigned usb0_pins[] = {124, 125}; | 850 | static const unsigned usb0_pins[] = {124, 125}; |
834 | static const unsigned usb0_muxvals[] = {0, 0}; | 851 | static const int usb0_muxvals[] = {0, 0}; |
835 | static const unsigned usb1_pins[] = {126, 127}; | 852 | static const unsigned usb1_pins[] = {126, 127}; |
836 | static const unsigned usb1_muxvals[] = {0, 0}; | 853 | static const int usb1_muxvals[] = {0, 0}; |
837 | static const unsigned usb2_pins[] = {128, 129}; | 854 | static const unsigned usb2_pins[] = {128, 129}; |
838 | static const unsigned usb2_muxvals[] = {0, 0}; | 855 | static const int usb2_muxvals[] = {0, 0}; |
839 | static const unsigned port_range0_pins[] = { | 856 | static const unsigned port_range0_pins[] = { |
840 | 89, 90, 91, 92, 93, 94, 95, 96, /* PORT0x */ | 857 | 89, 90, 91, 92, 93, 94, 95, 96, /* PORT0x */ |
841 | 97, 98, 99, 100, 101, 102, 103, 104, /* PORT1x */ | 858 | 97, 98, 99, 100, 101, 102, 103, 104, /* PORT1x */ |
@@ -853,7 +870,7 @@ static const unsigned port_range0_pins[] = { | |||
853 | 179, 180, 181, 182, 186, 187, 188, 189, /* PORT13x */ | 870 | 179, 180, 181, 182, 186, 187, 188, 189, /* PORT13x */ |
854 | 4, 5, 6, 7, 8, 9, 10, 11, /* PORT14x */ | 871 | 4, 5, 6, 7, 8, 9, 10, 11, /* PORT14x */ |
855 | }; | 872 | }; |
856 | static const unsigned port_range0_muxvals[] = { | 873 | static const int port_range0_muxvals[] = { |
857 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT0x */ | 874 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT0x */ |
858 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT1x */ | 875 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT1x */ |
859 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT2x */ | 876 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT2x */ |
@@ -886,7 +903,7 @@ static const unsigned port_range1_pins[] = { | |||
886 | 105, 106, 18, 27, 36, 128, 132, 137, /* PORT29x */ | 903 | 105, 106, 18, 27, 36, 128, 132, 137, /* PORT29x */ |
887 | 183, 184, 185, 84, 47, 48, 51, 52, /* PORT30x */ | 904 | 183, 184, 185, 84, 47, 48, 51, 52, /* PORT30x */ |
888 | }; | 905 | }; |
889 | static const unsigned port_range1_muxvals[] = { | 906 | static const int port_range1_muxvals[] = { |
890 | 15, 15, 15, /* PORT175-177 */ | 907 | 15, 15, 15, /* PORT175-177 */ |
891 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT18x */ | 908 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT18x */ |
892 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT19x */ | 909 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT19x */ |
@@ -907,7 +924,7 @@ static const unsigned xirq_pins[] = { | |||
907 | 76, 77, 78, 79, 80, 81, 82, 83, /* XIRQ8-15 */ | 924 | 76, 77, 78, 79, 80, 81, 82, 83, /* XIRQ8-15 */ |
908 | 84, 85, 86, 87, 88, /* XIRQ16-20 */ | 925 | 84, 85, 86, 87, 88, /* XIRQ16-20 */ |
909 | }; | 926 | }; |
910 | static const unsigned xirq_muxvals[] = { | 927 | static const int xirq_muxvals[] = { |
911 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ0-7 */ | 928 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ0-7 */ |
912 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ8-15 */ | 929 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ8-15 */ |
913 | 14, 14, 14, 14, 14, /* XIRQ16-20 */ | 930 | 14, 14, 14, 14, 14, /* XIRQ16-20 */ |
@@ -915,11 +932,11 @@ static const unsigned xirq_muxvals[] = { | |||
915 | static const unsigned xirq_alternatives_pins[] = { | 932 | static const unsigned xirq_alternatives_pins[] = { |
916 | 91, 92, 239, 144, 240, 156, 241, 106, 128, | 933 | 91, 92, 239, 144, 240, 156, 241, 106, 128, |
917 | }; | 934 | }; |
918 | static const unsigned xirq_alternatives_muxvals[] = { | 935 | static const int xirq_alternatives_muxvals[] = { |
919 | 14, 14, 14, 14, 14, 14, 14, 14, 14, | 936 | 14, 14, 14, 14, 14, 14, 14, 14, 14, |
920 | }; | 937 | }; |
921 | 938 | ||
922 | static const struct uniphier_pinctrl_group ph1_pro5_groups[] = { | 939 | static const struct uniphier_pinctrl_group uniphier_pro5_groups[] = { |
923 | UNIPHIER_PINCTRL_GROUP(nand), | 940 | UNIPHIER_PINCTRL_GROUP(nand), |
924 | UNIPHIER_PINCTRL_GROUP(nand_cs1), | 941 | UNIPHIER_PINCTRL_GROUP(nand_cs1), |
925 | UNIPHIER_PINCTRL_GROUP(emmc), | 942 | UNIPHIER_PINCTRL_GROUP(emmc), |
@@ -933,6 +950,15 @@ static const struct uniphier_pinctrl_group ph1_pro5_groups[] = { | |||
933 | UNIPHIER_PINCTRL_GROUP(i2c5c), | 950 | UNIPHIER_PINCTRL_GROUP(i2c5c), |
934 | UNIPHIER_PINCTRL_GROUP(i2c6), | 951 | UNIPHIER_PINCTRL_GROUP(i2c6), |
935 | UNIPHIER_PINCTRL_GROUP(sd), | 952 | UNIPHIER_PINCTRL_GROUP(sd), |
953 | UNIPHIER_PINCTRL_GROUP(system_bus), | ||
954 | UNIPHIER_PINCTRL_GROUP(system_bus_cs0), | ||
955 | UNIPHIER_PINCTRL_GROUP(system_bus_cs1), | ||
956 | UNIPHIER_PINCTRL_GROUP(system_bus_cs2), | ||
957 | UNIPHIER_PINCTRL_GROUP(system_bus_cs3), | ||
958 | UNIPHIER_PINCTRL_GROUP(system_bus_cs4), | ||
959 | UNIPHIER_PINCTRL_GROUP(system_bus_cs5), | ||
960 | UNIPHIER_PINCTRL_GROUP(system_bus_cs6), | ||
961 | UNIPHIER_PINCTRL_GROUP(system_bus_cs7), | ||
936 | UNIPHIER_PINCTRL_GROUP(uart0), | 962 | UNIPHIER_PINCTRL_GROUP(uart0), |
937 | UNIPHIER_PINCTRL_GROUP(uart0b), | 963 | UNIPHIER_PINCTRL_GROUP(uart0b), |
938 | UNIPHIER_PINCTRL_GROUP(uart1), | 964 | UNIPHIER_PINCTRL_GROUP(uart1), |
@@ -1213,6 +1239,15 @@ static const char * const i2c5_groups[] = {"i2c5", "i2c5b", "i2c5c"}; | |||
1213 | static const char * const i2c6_groups[] = {"i2c6"}; | 1239 | static const char * const i2c6_groups[] = {"i2c6"}; |
1214 | static const char * const nand_groups[] = {"nand", "nand_cs1"}; | 1240 | static const char * const nand_groups[] = {"nand", "nand_cs1"}; |
1215 | static const char * const sd_groups[] = {"sd"}; | 1241 | static const char * const sd_groups[] = {"sd"}; |
1242 | static const char * const system_bus_groups[] = {"system_bus", | ||
1243 | "system_bus_cs0", | ||
1244 | "system_bus_cs1", | ||
1245 | "system_bus_cs2", | ||
1246 | "system_bus_cs3", | ||
1247 | "system_bus_cs4", | ||
1248 | "system_bus_cs5", | ||
1249 | "system_bus_cs6", | ||
1250 | "system_bus_cs7"}; | ||
1216 | static const char * const uart0_groups[] = {"uart0", "uart0b"}; | 1251 | static const char * const uart0_groups[] = {"uart0", "uart0b"}; |
1217 | static const char * const uart1_groups[] = {"uart1"}; | 1252 | static const char * const uart1_groups[] = {"uart1"}; |
1218 | static const char * const uart2_groups[] = {"uart2"}; | 1253 | static const char * const uart2_groups[] = {"uart2"}; |
@@ -1291,7 +1326,7 @@ static const char * const xirq_groups[] = { | |||
1291 | "xirq18b", "xirq18c", "xirq19b", "xirq20b", | 1326 | "xirq18b", "xirq18c", "xirq19b", "xirq20b", |
1292 | }; | 1327 | }; |
1293 | 1328 | ||
1294 | static const struct uniphier_pinmux_function ph1_pro5_functions[] = { | 1329 | static const struct uniphier_pinmux_function uniphier_pro5_functions[] = { |
1295 | UNIPHIER_PINMUX_FUNCTION(emmc), | 1330 | UNIPHIER_PINMUX_FUNCTION(emmc), |
1296 | UNIPHIER_PINMUX_FUNCTION(i2c0), | 1331 | UNIPHIER_PINMUX_FUNCTION(i2c0), |
1297 | UNIPHIER_PINMUX_FUNCTION(i2c1), | 1332 | UNIPHIER_PINMUX_FUNCTION(i2c1), |
@@ -1301,6 +1336,7 @@ static const struct uniphier_pinmux_function ph1_pro5_functions[] = { | |||
1301 | UNIPHIER_PINMUX_FUNCTION(i2c6), | 1336 | UNIPHIER_PINMUX_FUNCTION(i2c6), |
1302 | UNIPHIER_PINMUX_FUNCTION(nand), | 1337 | UNIPHIER_PINMUX_FUNCTION(nand), |
1303 | UNIPHIER_PINMUX_FUNCTION(sd), | 1338 | UNIPHIER_PINMUX_FUNCTION(sd), |
1339 | UNIPHIER_PINMUX_FUNCTION(system_bus), | ||
1304 | UNIPHIER_PINMUX_FUNCTION(uart0), | 1340 | UNIPHIER_PINMUX_FUNCTION(uart0), |
1305 | UNIPHIER_PINMUX_FUNCTION(uart1), | 1341 | UNIPHIER_PINMUX_FUNCTION(uart1), |
1306 | UNIPHIER_PINMUX_FUNCTION(uart2), | 1342 | UNIPHIER_PINMUX_FUNCTION(uart2), |
@@ -1312,43 +1348,36 @@ static const struct uniphier_pinmux_function ph1_pro5_functions[] = { | |||
1312 | UNIPHIER_PINMUX_FUNCTION(xirq), | 1348 | UNIPHIER_PINMUX_FUNCTION(xirq), |
1313 | }; | 1349 | }; |
1314 | 1350 | ||
1315 | static struct uniphier_pinctrl_socdata ph1_pro5_pindata = { | 1351 | static struct uniphier_pinctrl_socdata uniphier_pro5_pindata = { |
1316 | .groups = ph1_pro5_groups, | 1352 | .pins = uniphier_pro5_pins, |
1317 | .groups_count = ARRAY_SIZE(ph1_pro5_groups), | 1353 | .npins = ARRAY_SIZE(uniphier_pro5_pins), |
1318 | .functions = ph1_pro5_functions, | 1354 | .groups = uniphier_pro5_groups, |
1319 | .functions_count = ARRAY_SIZE(ph1_pro5_functions), | 1355 | .groups_count = ARRAY_SIZE(uniphier_pro5_groups), |
1320 | .mux_bits = 4, | 1356 | .functions = uniphier_pro5_functions, |
1321 | .reg_stride = 8, | 1357 | .functions_count = ARRAY_SIZE(uniphier_pro5_functions), |
1322 | .load_pinctrl = true, | 1358 | .caps = UNIPHIER_PINCTRL_CAPS_DBGMUX_SEPARATE, |
1323 | }; | ||
1324 | |||
1325 | static struct pinctrl_desc ph1_pro5_pinctrl_desc = { | ||
1326 | .name = DRIVER_NAME, | ||
1327 | .pins = ph1_pro5_pins, | ||
1328 | .npins = ARRAY_SIZE(ph1_pro5_pins), | ||
1329 | .owner = THIS_MODULE, | ||
1330 | }; | 1359 | }; |
1331 | 1360 | ||
1332 | static int ph1_pro5_pinctrl_probe(struct platform_device *pdev) | 1361 | static int uniphier_pro5_pinctrl_probe(struct platform_device *pdev) |
1333 | { | 1362 | { |
1334 | return uniphier_pinctrl_probe(pdev, &ph1_pro5_pinctrl_desc, | 1363 | return uniphier_pinctrl_probe(pdev, &uniphier_pro5_pindata); |
1335 | &ph1_pro5_pindata); | ||
1336 | } | 1364 | } |
1337 | 1365 | ||
1338 | static const struct of_device_id ph1_pro5_pinctrl_match[] = { | 1366 | static const struct of_device_id uniphier_pro5_pinctrl_match[] = { |
1367 | { .compatible = "socionext,uniphier-pro5-pinctrl" }, | ||
1339 | { .compatible = "socionext,ph1-pro5-pinctrl" }, | 1368 | { .compatible = "socionext,ph1-pro5-pinctrl" }, |
1340 | { /* sentinel */ } | 1369 | { /* sentinel */ } |
1341 | }; | 1370 | }; |
1342 | MODULE_DEVICE_TABLE(of, ph1_pro5_pinctrl_match); | 1371 | MODULE_DEVICE_TABLE(of, uniphier_pro5_pinctrl_match); |
1343 | 1372 | ||
1344 | static struct platform_driver ph1_pro5_pinctrl_driver = { | 1373 | static struct platform_driver uniphier_pro5_pinctrl_driver = { |
1345 | .probe = ph1_pro5_pinctrl_probe, | 1374 | .probe = uniphier_pro5_pinctrl_probe, |
1346 | .driver = { | 1375 | .driver = { |
1347 | .name = DRIVER_NAME, | 1376 | .name = "uniphier-pro5-pinctrl", |
1348 | .of_match_table = ph1_pro5_pinctrl_match, | 1377 | .of_match_table = uniphier_pro5_pinctrl_match, |
1349 | }, | 1378 | }, |
1350 | }; | 1379 | }; |
1351 | module_platform_driver(ph1_pro5_pinctrl_driver); | 1380 | module_platform_driver(uniphier_pro5_pinctrl_driver); |
1352 | 1381 | ||
1353 | MODULE_AUTHOR("Masahiro Yamada <yamada.masahiro@socionext.com>"); | 1382 | MODULE_AUTHOR("Masahiro Yamada <yamada.masahiro@socionext.com>"); |
1354 | MODULE_DESCRIPTION("UniPhier PH1-Pro5 pinctrl driver"); | 1383 | MODULE_DESCRIPTION("UniPhier PH1-Pro5 pinctrl driver"); |
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c index e868030ff31c..85ca5e2d8a9c 100644 --- a/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c +++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c | |||
@@ -19,760 +19,776 @@ | |||
19 | 19 | ||
20 | #include "pinctrl-uniphier.h" | 20 | #include "pinctrl-uniphier.h" |
21 | 21 | ||
22 | #define DRIVER_NAME "proxstream2-pinctrl" | 22 | static const struct pinctrl_pin_desc uniphier_pxs2_pins[] = { |
23 | |||
24 | static const struct pinctrl_pin_desc proxstream2_pins[] = { | ||
25 | UNIPHIER_PINCTRL_PIN(0, "ED0", UNIPHIER_PIN_IECTRL_NONE, | 23 | UNIPHIER_PINCTRL_PIN(0, "ED0", UNIPHIER_PIN_IECTRL_NONE, |
26 | 0, UNIPHIER_PIN_DRV_4_8, | 24 | 0, UNIPHIER_PIN_DRV_1BIT, |
27 | 0, UNIPHIER_PIN_PULL_DOWN), | 25 | 0, UNIPHIER_PIN_PULL_DOWN), |
28 | UNIPHIER_PINCTRL_PIN(1, "ED1", UNIPHIER_PIN_IECTRL_NONE, | 26 | UNIPHIER_PINCTRL_PIN(1, "ED1", UNIPHIER_PIN_IECTRL_NONE, |
29 | 1, UNIPHIER_PIN_DRV_4_8, | 27 | 1, UNIPHIER_PIN_DRV_1BIT, |
30 | 1, UNIPHIER_PIN_PULL_DOWN), | 28 | 1, UNIPHIER_PIN_PULL_DOWN), |
31 | UNIPHIER_PINCTRL_PIN(2, "ED2", UNIPHIER_PIN_IECTRL_NONE, | 29 | UNIPHIER_PINCTRL_PIN(2, "ED2", UNIPHIER_PIN_IECTRL_NONE, |
32 | 2, UNIPHIER_PIN_DRV_4_8, | 30 | 2, UNIPHIER_PIN_DRV_1BIT, |
33 | 2, UNIPHIER_PIN_PULL_DOWN), | 31 | 2, UNIPHIER_PIN_PULL_DOWN), |
34 | UNIPHIER_PINCTRL_PIN(3, "ED3", UNIPHIER_PIN_IECTRL_NONE, | 32 | UNIPHIER_PINCTRL_PIN(3, "ED3", UNIPHIER_PIN_IECTRL_NONE, |
35 | 3, UNIPHIER_PIN_DRV_4_8, | 33 | 3, UNIPHIER_PIN_DRV_1BIT, |
36 | 3, UNIPHIER_PIN_PULL_DOWN), | 34 | 3, UNIPHIER_PIN_PULL_DOWN), |
37 | UNIPHIER_PINCTRL_PIN(4, "ED4", UNIPHIER_PIN_IECTRL_NONE, | 35 | UNIPHIER_PINCTRL_PIN(4, "ED4", UNIPHIER_PIN_IECTRL_NONE, |
38 | 4, UNIPHIER_PIN_DRV_4_8, | 36 | 4, UNIPHIER_PIN_DRV_1BIT, |
39 | 4, UNIPHIER_PIN_PULL_DOWN), | 37 | 4, UNIPHIER_PIN_PULL_DOWN), |
40 | UNIPHIER_PINCTRL_PIN(5, "ED5", UNIPHIER_PIN_IECTRL_NONE, | 38 | UNIPHIER_PINCTRL_PIN(5, "ED5", UNIPHIER_PIN_IECTRL_NONE, |
41 | 5, UNIPHIER_PIN_DRV_4_8, | 39 | 5, UNIPHIER_PIN_DRV_1BIT, |
42 | 5, UNIPHIER_PIN_PULL_DOWN), | 40 | 5, UNIPHIER_PIN_PULL_DOWN), |
43 | UNIPHIER_PINCTRL_PIN(6, "ED6", UNIPHIER_PIN_IECTRL_NONE, | 41 | UNIPHIER_PINCTRL_PIN(6, "ED6", UNIPHIER_PIN_IECTRL_NONE, |
44 | 6, UNIPHIER_PIN_DRV_4_8, | 42 | 6, UNIPHIER_PIN_DRV_1BIT, |
45 | 6, UNIPHIER_PIN_PULL_DOWN), | 43 | 6, UNIPHIER_PIN_PULL_DOWN), |
46 | UNIPHIER_PINCTRL_PIN(7, "ED7", UNIPHIER_PIN_IECTRL_NONE, | 44 | UNIPHIER_PINCTRL_PIN(7, "ED7", UNIPHIER_PIN_IECTRL_NONE, |
47 | 7, UNIPHIER_PIN_DRV_4_8, | 45 | 7, UNIPHIER_PIN_DRV_1BIT, |
48 | 7, UNIPHIER_PIN_PULL_DOWN), | 46 | 7, UNIPHIER_PIN_PULL_DOWN), |
49 | UNIPHIER_PINCTRL_PIN(8, "XERWE0", UNIPHIER_PIN_IECTRL_NONE, | 47 | UNIPHIER_PINCTRL_PIN(8, "XERWE0", UNIPHIER_PIN_IECTRL_NONE, |
50 | 8, UNIPHIER_PIN_DRV_4_8, | 48 | 8, UNIPHIER_PIN_DRV_1BIT, |
51 | 8, UNIPHIER_PIN_PULL_DOWN), | 49 | 8, UNIPHIER_PIN_PULL_DOWN), |
52 | UNIPHIER_PINCTRL_PIN(9, "XERWE1", UNIPHIER_PIN_IECTRL_NONE, | 50 | UNIPHIER_PINCTRL_PIN(9, "XERWE1", UNIPHIER_PIN_IECTRL_NONE, |
53 | 9, UNIPHIER_PIN_DRV_4_8, | 51 | 9, UNIPHIER_PIN_DRV_1BIT, |
54 | 9, UNIPHIER_PIN_PULL_DOWN), | 52 | 9, UNIPHIER_PIN_PULL_DOWN), |
55 | UNIPHIER_PINCTRL_PIN(10, "ERXW", UNIPHIER_PIN_IECTRL_NONE, | 53 | UNIPHIER_PINCTRL_PIN(10, "ERXW", UNIPHIER_PIN_IECTRL_NONE, |
56 | 10, UNIPHIER_PIN_DRV_4_8, | 54 | 10, UNIPHIER_PIN_DRV_1BIT, |
57 | 10, UNIPHIER_PIN_PULL_DOWN), | 55 | 10, UNIPHIER_PIN_PULL_DOWN), |
58 | UNIPHIER_PINCTRL_PIN(11, "ES0", UNIPHIER_PIN_IECTRL_NONE, | 56 | UNIPHIER_PINCTRL_PIN(11, "ES0", UNIPHIER_PIN_IECTRL_NONE, |
59 | 11, UNIPHIER_PIN_DRV_4_8, | 57 | 11, UNIPHIER_PIN_DRV_1BIT, |
60 | 11, UNIPHIER_PIN_PULL_DOWN), | 58 | 11, UNIPHIER_PIN_PULL_DOWN), |
61 | UNIPHIER_PINCTRL_PIN(12, "ES1", UNIPHIER_PIN_IECTRL_NONE, | 59 | UNIPHIER_PINCTRL_PIN(12, "ES1", UNIPHIER_PIN_IECTRL_NONE, |
62 | 12, UNIPHIER_PIN_DRV_4_8, | 60 | 12, UNIPHIER_PIN_DRV_1BIT, |
63 | 12, UNIPHIER_PIN_PULL_DOWN), | 61 | 12, UNIPHIER_PIN_PULL_DOWN), |
64 | UNIPHIER_PINCTRL_PIN(13, "ES2", UNIPHIER_PIN_IECTRL_NONE, | 62 | UNIPHIER_PINCTRL_PIN(13, "ES2", UNIPHIER_PIN_IECTRL_NONE, |
65 | 13, UNIPHIER_PIN_DRV_4_8, | 63 | 13, UNIPHIER_PIN_DRV_1BIT, |
66 | 13, UNIPHIER_PIN_PULL_DOWN), | 64 | 13, UNIPHIER_PIN_PULL_DOWN), |
67 | UNIPHIER_PINCTRL_PIN(14, "XECS1", UNIPHIER_PIN_IECTRL_NONE, | 65 | UNIPHIER_PINCTRL_PIN(14, "XECS1", UNIPHIER_PIN_IECTRL_NONE, |
68 | 14, UNIPHIER_PIN_DRV_4_8, | 66 | 14, UNIPHIER_PIN_DRV_1BIT, |
69 | 14, UNIPHIER_PIN_PULL_DOWN), | 67 | 14, UNIPHIER_PIN_PULL_DOWN), |
70 | UNIPHIER_PINCTRL_PIN(15, "SMTRST0", UNIPHIER_PIN_IECTRL_NONE, | 68 | UNIPHIER_PINCTRL_PIN(15, "SMTRST0", UNIPHIER_PIN_IECTRL_NONE, |
71 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 69 | -1, UNIPHIER_PIN_DRV_FIXED8, |
72 | 15, UNIPHIER_PIN_PULL_DOWN), | 70 | 15, UNIPHIER_PIN_PULL_DOWN), |
73 | UNIPHIER_PINCTRL_PIN(16, "SMTCMD0", UNIPHIER_PIN_IECTRL_NONE, | 71 | UNIPHIER_PINCTRL_PIN(16, "SMTCMD0", UNIPHIER_PIN_IECTRL_NONE, |
74 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 72 | -1, UNIPHIER_PIN_DRV_FIXED8, |
75 | 16, UNIPHIER_PIN_PULL_DOWN), | 73 | 16, UNIPHIER_PIN_PULL_DOWN), |
76 | UNIPHIER_PINCTRL_PIN(17, "SMTD0", UNIPHIER_PIN_IECTRL_NONE, | 74 | UNIPHIER_PINCTRL_PIN(17, "SMTD0", UNIPHIER_PIN_IECTRL_NONE, |
77 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 75 | -1, UNIPHIER_PIN_DRV_FIXED8, |
78 | 17, UNIPHIER_PIN_PULL_DOWN), | 76 | 17, UNIPHIER_PIN_PULL_DOWN), |
79 | UNIPHIER_PINCTRL_PIN(18, "SMTSEL0", UNIPHIER_PIN_IECTRL_NONE, | 77 | UNIPHIER_PINCTRL_PIN(18, "SMTSEL0", UNIPHIER_PIN_IECTRL_NONE, |
80 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 78 | -1, UNIPHIER_PIN_DRV_FIXED8, |
81 | 18, UNIPHIER_PIN_PULL_DOWN), | 79 | 18, UNIPHIER_PIN_PULL_DOWN), |
82 | UNIPHIER_PINCTRL_PIN(19, "SMTCLK0CG", UNIPHIER_PIN_IECTRL_NONE, | 80 | UNIPHIER_PINCTRL_PIN(19, "SMTCLK0CG", UNIPHIER_PIN_IECTRL_NONE, |
83 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 81 | -1, UNIPHIER_PIN_DRV_FIXED8, |
84 | 19, UNIPHIER_PIN_PULL_DOWN), | 82 | 19, UNIPHIER_PIN_PULL_DOWN), |
85 | UNIPHIER_PINCTRL_PIN(20, "SMTDET0", UNIPHIER_PIN_IECTRL_NONE, | 83 | UNIPHIER_PINCTRL_PIN(20, "SMTDET0", UNIPHIER_PIN_IECTRL_NONE, |
86 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 84 | -1, UNIPHIER_PIN_DRV_FIXED8, |
87 | 20, UNIPHIER_PIN_PULL_DOWN), | 85 | 20, UNIPHIER_PIN_PULL_DOWN), |
88 | UNIPHIER_PINCTRL_PIN(21, "SMTRST1", UNIPHIER_PIN_IECTRL_NONE, | 86 | UNIPHIER_PINCTRL_PIN(21, "SMTRST1", UNIPHIER_PIN_IECTRL_NONE, |
89 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 87 | -1, UNIPHIER_PIN_DRV_FIXED8, |
90 | 21, UNIPHIER_PIN_PULL_DOWN), | 88 | 21, UNIPHIER_PIN_PULL_DOWN), |
91 | UNIPHIER_PINCTRL_PIN(22, "SMTCMD1", UNIPHIER_PIN_IECTRL_NONE, | 89 | UNIPHIER_PINCTRL_PIN(22, "SMTCMD1", UNIPHIER_PIN_IECTRL_NONE, |
92 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 90 | -1, UNIPHIER_PIN_DRV_FIXED8, |
93 | 22, UNIPHIER_PIN_PULL_DOWN), | 91 | 22, UNIPHIER_PIN_PULL_DOWN), |
94 | UNIPHIER_PINCTRL_PIN(23, "SMTD1", UNIPHIER_PIN_IECTRL_NONE, | 92 | UNIPHIER_PINCTRL_PIN(23, "SMTD1", UNIPHIER_PIN_IECTRL_NONE, |
95 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 93 | -1, UNIPHIER_PIN_DRV_FIXED8, |
96 | 23, UNIPHIER_PIN_PULL_DOWN), | 94 | 23, UNIPHIER_PIN_PULL_DOWN), |
97 | UNIPHIER_PINCTRL_PIN(24, "SMTSEL1", UNIPHIER_PIN_IECTRL_NONE, | 95 | UNIPHIER_PINCTRL_PIN(24, "SMTSEL1", UNIPHIER_PIN_IECTRL_NONE, |
98 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 96 | -1, UNIPHIER_PIN_DRV_FIXED8, |
99 | 24, UNIPHIER_PIN_PULL_DOWN), | 97 | 24, UNIPHIER_PIN_PULL_DOWN), |
100 | UNIPHIER_PINCTRL_PIN(25, "SMTCLK1CG", UNIPHIER_PIN_IECTRL_NONE, | 98 | UNIPHIER_PINCTRL_PIN(25, "SMTCLK1CG", UNIPHIER_PIN_IECTRL_NONE, |
101 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 99 | -1, UNIPHIER_PIN_DRV_FIXED8, |
102 | 25, UNIPHIER_PIN_PULL_DOWN), | 100 | 25, UNIPHIER_PIN_PULL_DOWN), |
103 | UNIPHIER_PINCTRL_PIN(26, "SMTDET1", UNIPHIER_PIN_IECTRL_NONE, | 101 | UNIPHIER_PINCTRL_PIN(26, "SMTDET1", UNIPHIER_PIN_IECTRL_NONE, |
104 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 102 | -1, UNIPHIER_PIN_DRV_FIXED8, |
105 | 26, UNIPHIER_PIN_PULL_DOWN), | 103 | 26, UNIPHIER_PIN_PULL_DOWN), |
106 | UNIPHIER_PINCTRL_PIN(27, "XIRQ18", UNIPHIER_PIN_IECTRL_NONE, | 104 | UNIPHIER_PINCTRL_PIN(27, "XIRQ18", UNIPHIER_PIN_IECTRL_NONE, |
107 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 105 | -1, UNIPHIER_PIN_DRV_FIXED8, |
108 | 27, UNIPHIER_PIN_PULL_DOWN), | 106 | 27, UNIPHIER_PIN_PULL_DOWN), |
109 | UNIPHIER_PINCTRL_PIN(28, "XIRQ19", UNIPHIER_PIN_IECTRL_NONE, | 107 | UNIPHIER_PINCTRL_PIN(28, "XIRQ19", UNIPHIER_PIN_IECTRL_NONE, |
110 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 108 | -1, UNIPHIER_PIN_DRV_FIXED8, |
111 | 28, UNIPHIER_PIN_PULL_DOWN), | 109 | 28, UNIPHIER_PIN_PULL_DOWN), |
112 | UNIPHIER_PINCTRL_PIN(29, "XIRQ20", UNIPHIER_PIN_IECTRL_NONE, | 110 | UNIPHIER_PINCTRL_PIN(29, "XIRQ20", UNIPHIER_PIN_IECTRL_NONE, |
113 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 111 | -1, UNIPHIER_PIN_DRV_FIXED8, |
114 | 29, UNIPHIER_PIN_PULL_DOWN), | 112 | 29, UNIPHIER_PIN_PULL_DOWN), |
115 | UNIPHIER_PINCTRL_PIN(30, "XNFRE", UNIPHIER_PIN_IECTRL_NONE, | 113 | UNIPHIER_PINCTRL_PIN(30, "XNFRE", UNIPHIER_PIN_IECTRL_NONE, |
116 | 30, UNIPHIER_PIN_DRV_4_8, | 114 | 30, UNIPHIER_PIN_DRV_1BIT, |
117 | 30, UNIPHIER_PIN_PULL_UP), | 115 | 30, UNIPHIER_PIN_PULL_UP), |
118 | UNIPHIER_PINCTRL_PIN(31, "XNFWE", UNIPHIER_PIN_IECTRL_NONE, | 116 | UNIPHIER_PINCTRL_PIN(31, "XNFWE", UNIPHIER_PIN_IECTRL_NONE, |
119 | 31, UNIPHIER_PIN_DRV_4_8, | 117 | 31, UNIPHIER_PIN_DRV_1BIT, |
120 | 31, UNIPHIER_PIN_PULL_UP), | 118 | 31, UNIPHIER_PIN_PULL_UP), |
121 | UNIPHIER_PINCTRL_PIN(32, "NFALE", UNIPHIER_PIN_IECTRL_NONE, | 119 | UNIPHIER_PINCTRL_PIN(32, "NFALE", UNIPHIER_PIN_IECTRL_NONE, |
122 | 32, UNIPHIER_PIN_DRV_4_8, | 120 | 32, UNIPHIER_PIN_DRV_1BIT, |
123 | 32, UNIPHIER_PIN_PULL_DOWN), | 121 | 32, UNIPHIER_PIN_PULL_DOWN), |
124 | UNIPHIER_PINCTRL_PIN(33, "NFCLE", UNIPHIER_PIN_IECTRL_NONE, | 122 | UNIPHIER_PINCTRL_PIN(33, "NFCLE", UNIPHIER_PIN_IECTRL_NONE, |
125 | 33, UNIPHIER_PIN_DRV_4_8, | 123 | 33, UNIPHIER_PIN_DRV_1BIT, |
126 | 33, UNIPHIER_PIN_PULL_DOWN), | 124 | 33, UNIPHIER_PIN_PULL_DOWN), |
127 | UNIPHIER_PINCTRL_PIN(34, "XNFWP", UNIPHIER_PIN_IECTRL_NONE, | 125 | UNIPHIER_PINCTRL_PIN(34, "XNFWP", UNIPHIER_PIN_IECTRL_NONE, |
128 | 34, UNIPHIER_PIN_DRV_4_8, | 126 | 34, UNIPHIER_PIN_DRV_1BIT, |
129 | 34, UNIPHIER_PIN_PULL_DOWN), | 127 | 34, UNIPHIER_PIN_PULL_DOWN), |
130 | UNIPHIER_PINCTRL_PIN(35, "XNFCE0", UNIPHIER_PIN_IECTRL_NONE, | 128 | UNIPHIER_PINCTRL_PIN(35, "XNFCE0", UNIPHIER_PIN_IECTRL_NONE, |
131 | 35, UNIPHIER_PIN_DRV_4_8, | 129 | 35, UNIPHIER_PIN_DRV_1BIT, |
132 | 35, UNIPHIER_PIN_PULL_UP), | 130 | 35, UNIPHIER_PIN_PULL_UP), |
133 | UNIPHIER_PINCTRL_PIN(36, "NFRYBY0", UNIPHIER_PIN_IECTRL_NONE, | 131 | UNIPHIER_PINCTRL_PIN(36, "NFRYBY0", UNIPHIER_PIN_IECTRL_NONE, |
134 | 36, UNIPHIER_PIN_DRV_4_8, | 132 | 36, UNIPHIER_PIN_DRV_1BIT, |
135 | 36, UNIPHIER_PIN_PULL_UP), | 133 | 36, UNIPHIER_PIN_PULL_UP), |
136 | UNIPHIER_PINCTRL_PIN(37, "XNFCE1", UNIPHIER_PIN_IECTRL_NONE, | 134 | UNIPHIER_PINCTRL_PIN(37, "XNFCE1", UNIPHIER_PIN_IECTRL_NONE, |
137 | 37, UNIPHIER_PIN_DRV_4_8, | 135 | 37, UNIPHIER_PIN_DRV_1BIT, |
138 | 37, UNIPHIER_PIN_PULL_UP), | 136 | 37, UNIPHIER_PIN_PULL_UP), |
139 | UNIPHIER_PINCTRL_PIN(38, "NFRYBY1", UNIPHIER_PIN_IECTRL_NONE, | 137 | UNIPHIER_PINCTRL_PIN(38, "NFRYBY1", UNIPHIER_PIN_IECTRL_NONE, |
140 | 38, UNIPHIER_PIN_DRV_4_8, | 138 | 38, UNIPHIER_PIN_DRV_1BIT, |
141 | 38, UNIPHIER_PIN_PULL_UP), | 139 | 38, UNIPHIER_PIN_PULL_UP), |
142 | UNIPHIER_PINCTRL_PIN(39, "NFD0", UNIPHIER_PIN_IECTRL_NONE, | 140 | UNIPHIER_PINCTRL_PIN(39, "NFD0", UNIPHIER_PIN_IECTRL_NONE, |
143 | 39, UNIPHIER_PIN_DRV_4_8, | 141 | 39, UNIPHIER_PIN_DRV_1BIT, |
144 | 39, UNIPHIER_PIN_PULL_DOWN), | 142 | 39, UNIPHIER_PIN_PULL_DOWN), |
145 | UNIPHIER_PINCTRL_PIN(40, "NFD1", UNIPHIER_PIN_IECTRL_NONE, | 143 | UNIPHIER_PINCTRL_PIN(40, "NFD1", UNIPHIER_PIN_IECTRL_NONE, |
146 | 40, UNIPHIER_PIN_DRV_4_8, | 144 | 40, UNIPHIER_PIN_DRV_1BIT, |
147 | 40, UNIPHIER_PIN_PULL_DOWN), | 145 | 40, UNIPHIER_PIN_PULL_DOWN), |
148 | UNIPHIER_PINCTRL_PIN(41, "NFD2", UNIPHIER_PIN_IECTRL_NONE, | 146 | UNIPHIER_PINCTRL_PIN(41, "NFD2", UNIPHIER_PIN_IECTRL_NONE, |
149 | 41, UNIPHIER_PIN_DRV_4_8, | 147 | 41, UNIPHIER_PIN_DRV_1BIT, |
150 | 41, UNIPHIER_PIN_PULL_DOWN), | 148 | 41, UNIPHIER_PIN_PULL_DOWN), |
151 | UNIPHIER_PINCTRL_PIN(42, "NFD3", UNIPHIER_PIN_IECTRL_NONE, | 149 | UNIPHIER_PINCTRL_PIN(42, "NFD3", UNIPHIER_PIN_IECTRL_NONE, |
152 | 42, UNIPHIER_PIN_DRV_4_8, | 150 | 42, UNIPHIER_PIN_DRV_1BIT, |
153 | 42, UNIPHIER_PIN_PULL_DOWN), | 151 | 42, UNIPHIER_PIN_PULL_DOWN), |
154 | UNIPHIER_PINCTRL_PIN(43, "NFD4", UNIPHIER_PIN_IECTRL_NONE, | 152 | UNIPHIER_PINCTRL_PIN(43, "NFD4", UNIPHIER_PIN_IECTRL_NONE, |
155 | 43, UNIPHIER_PIN_DRV_4_8, | 153 | 43, UNIPHIER_PIN_DRV_1BIT, |
156 | 43, UNIPHIER_PIN_PULL_DOWN), | 154 | 43, UNIPHIER_PIN_PULL_DOWN), |
157 | UNIPHIER_PINCTRL_PIN(44, "NFD5", UNIPHIER_PIN_IECTRL_NONE, | 155 | UNIPHIER_PINCTRL_PIN(44, "NFD5", UNIPHIER_PIN_IECTRL_NONE, |
158 | 44, UNIPHIER_PIN_DRV_4_8, | 156 | 44, UNIPHIER_PIN_DRV_1BIT, |
159 | 44, UNIPHIER_PIN_PULL_DOWN), | 157 | 44, UNIPHIER_PIN_PULL_DOWN), |
160 | UNIPHIER_PINCTRL_PIN(45, "NFD6", UNIPHIER_PIN_IECTRL_NONE, | 158 | UNIPHIER_PINCTRL_PIN(45, "NFD6", UNIPHIER_PIN_IECTRL_NONE, |
161 | 45, UNIPHIER_PIN_DRV_4_8, | 159 | 45, UNIPHIER_PIN_DRV_1BIT, |
162 | 45, UNIPHIER_PIN_PULL_DOWN), | 160 | 45, UNIPHIER_PIN_PULL_DOWN), |
163 | UNIPHIER_PINCTRL_PIN(46, "NFD7", UNIPHIER_PIN_IECTRL_NONE, | 161 | UNIPHIER_PINCTRL_PIN(46, "NFD7", UNIPHIER_PIN_IECTRL_NONE, |
164 | 46, UNIPHIER_PIN_DRV_4_8, | 162 | 46, UNIPHIER_PIN_DRV_1BIT, |
165 | 46, UNIPHIER_PIN_PULL_DOWN), | 163 | 46, UNIPHIER_PIN_PULL_DOWN), |
166 | UNIPHIER_PINCTRL_PIN(47, "SDCLK", UNIPHIER_PIN_IECTRL_NONE, | 164 | UNIPHIER_PINCTRL_PIN(47, "SDCLK", UNIPHIER_PIN_IECTRL_NONE, |
167 | 0, UNIPHIER_PIN_DRV_8_12_16_20, | 165 | 0, UNIPHIER_PIN_DRV_2BIT, |
168 | -1, UNIPHIER_PIN_PULL_UP_FIXED), | 166 | -1, UNIPHIER_PIN_PULL_UP_FIXED), |
169 | UNIPHIER_PINCTRL_PIN(48, "SDCMD", UNIPHIER_PIN_IECTRL_NONE, | 167 | UNIPHIER_PINCTRL_PIN(48, "SDCMD", UNIPHIER_PIN_IECTRL_NONE, |
170 | 4, UNIPHIER_PIN_DRV_8_12_16_20, | 168 | 1, UNIPHIER_PIN_DRV_2BIT, |
171 | -1, UNIPHIER_PIN_PULL_UP_FIXED), | 169 | -1, UNIPHIER_PIN_PULL_UP_FIXED), |
172 | UNIPHIER_PINCTRL_PIN(49, "SDDAT0", UNIPHIER_PIN_IECTRL_NONE, | 170 | UNIPHIER_PINCTRL_PIN(49, "SDDAT0", UNIPHIER_PIN_IECTRL_NONE, |
173 | 8, UNIPHIER_PIN_DRV_8_12_16_20, | 171 | 2, UNIPHIER_PIN_DRV_2BIT, |
174 | -1, UNIPHIER_PIN_PULL_UP_FIXED), | 172 | -1, UNIPHIER_PIN_PULL_UP_FIXED), |
175 | UNIPHIER_PINCTRL_PIN(50, "SDDAT1", UNIPHIER_PIN_IECTRL_NONE, | 173 | UNIPHIER_PINCTRL_PIN(50, "SDDAT1", UNIPHIER_PIN_IECTRL_NONE, |
176 | 12, UNIPHIER_PIN_DRV_8_12_16_20, | 174 | 3, UNIPHIER_PIN_DRV_2BIT, |
177 | -1, UNIPHIER_PIN_PULL_UP_FIXED), | 175 | -1, UNIPHIER_PIN_PULL_UP_FIXED), |
178 | UNIPHIER_PINCTRL_PIN(51, "SDDAT2", UNIPHIER_PIN_IECTRL_NONE, | 176 | UNIPHIER_PINCTRL_PIN(51, "SDDAT2", UNIPHIER_PIN_IECTRL_NONE, |
179 | 16, UNIPHIER_PIN_DRV_8_12_16_20, | 177 | 4, UNIPHIER_PIN_DRV_2BIT, |
180 | -1, UNIPHIER_PIN_PULL_UP_FIXED), | 178 | -1, UNIPHIER_PIN_PULL_UP_FIXED), |
181 | UNIPHIER_PINCTRL_PIN(52, "SDDAT3", UNIPHIER_PIN_IECTRL_NONE, | 179 | UNIPHIER_PINCTRL_PIN(52, "SDDAT3", UNIPHIER_PIN_IECTRL_NONE, |
182 | 20, UNIPHIER_PIN_DRV_8_12_16_20, | 180 | 5, UNIPHIER_PIN_DRV_2BIT, |
183 | -1, UNIPHIER_PIN_PULL_UP_FIXED), | 181 | -1, UNIPHIER_PIN_PULL_UP_FIXED), |
184 | UNIPHIER_PINCTRL_PIN(53, "SDCD", UNIPHIER_PIN_IECTRL_NONE, | 182 | UNIPHIER_PINCTRL_PIN(53, "SDCD", UNIPHIER_PIN_IECTRL_NONE, |
185 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 183 | -1, UNIPHIER_PIN_DRV_FIXED8, |
186 | 53, UNIPHIER_PIN_PULL_DOWN), | 184 | 53, UNIPHIER_PIN_PULL_DOWN), |
187 | UNIPHIER_PINCTRL_PIN(54, "SDWP", UNIPHIER_PIN_IECTRL_NONE, | 185 | UNIPHIER_PINCTRL_PIN(54, "SDWP", UNIPHIER_PIN_IECTRL_NONE, |
188 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 186 | -1, UNIPHIER_PIN_DRV_FIXED8, |
189 | 54, UNIPHIER_PIN_PULL_DOWN), | 187 | 54, UNIPHIER_PIN_PULL_DOWN), |
190 | UNIPHIER_PINCTRL_PIN(55, "SDVOLC", UNIPHIER_PIN_IECTRL_NONE, | 188 | UNIPHIER_PINCTRL_PIN(55, "SDVOLC", UNIPHIER_PIN_IECTRL_NONE, |
191 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 189 | -1, UNIPHIER_PIN_DRV_FIXED8, |
192 | 55, UNIPHIER_PIN_PULL_DOWN), | 190 | 55, UNIPHIER_PIN_PULL_DOWN), |
193 | UNIPHIER_PINCTRL_PIN(56, "USB0VBUS", UNIPHIER_PIN_IECTRL_NONE, | 191 | UNIPHIER_PINCTRL_PIN(56, "USB0VBUS", UNIPHIER_PIN_IECTRL_NONE, |
194 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 192 | -1, UNIPHIER_PIN_DRV_FIXED8, |
195 | 56, UNIPHIER_PIN_PULL_DOWN), | 193 | 56, UNIPHIER_PIN_PULL_DOWN), |
196 | UNIPHIER_PINCTRL_PIN(57, "USB0OD", UNIPHIER_PIN_IECTRL_NONE, | 194 | UNIPHIER_PINCTRL_PIN(57, "USB0OD", UNIPHIER_PIN_IECTRL_NONE, |
197 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 195 | -1, UNIPHIER_PIN_DRV_FIXED8, |
198 | 57, UNIPHIER_PIN_PULL_DOWN), | 196 | 57, UNIPHIER_PIN_PULL_DOWN), |
199 | UNIPHIER_PINCTRL_PIN(58, "USB1VBUS", UNIPHIER_PIN_IECTRL_NONE, | 197 | UNIPHIER_PINCTRL_PIN(58, "USB1VBUS", UNIPHIER_PIN_IECTRL_NONE, |
200 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 198 | -1, UNIPHIER_PIN_DRV_FIXED8, |
201 | 58, UNIPHIER_PIN_PULL_DOWN), | 199 | 58, UNIPHIER_PIN_PULL_DOWN), |
202 | UNIPHIER_PINCTRL_PIN(59, "USB1OD", UNIPHIER_PIN_IECTRL_NONE, | 200 | UNIPHIER_PINCTRL_PIN(59, "USB1OD", UNIPHIER_PIN_IECTRL_NONE, |
203 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 201 | -1, UNIPHIER_PIN_DRV_FIXED8, |
204 | 59, UNIPHIER_PIN_PULL_DOWN), | 202 | 59, UNIPHIER_PIN_PULL_DOWN), |
205 | UNIPHIER_PINCTRL_PIN(60, "USB2VBUS", UNIPHIER_PIN_IECTRL_NONE, | 203 | UNIPHIER_PINCTRL_PIN(60, "USB2VBUS", UNIPHIER_PIN_IECTRL_NONE, |
206 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 204 | -1, UNIPHIER_PIN_DRV_FIXED8, |
207 | 60, UNIPHIER_PIN_PULL_DOWN), | 205 | 60, UNIPHIER_PIN_PULL_DOWN), |
208 | UNIPHIER_PINCTRL_PIN(61, "USB2OD", UNIPHIER_PIN_IECTRL_NONE, | 206 | UNIPHIER_PINCTRL_PIN(61, "USB2OD", UNIPHIER_PIN_IECTRL_NONE, |
209 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 207 | -1, UNIPHIER_PIN_DRV_FIXED8, |
210 | 61, UNIPHIER_PIN_PULL_DOWN), | 208 | 61, UNIPHIER_PIN_PULL_DOWN), |
211 | UNIPHIER_PINCTRL_PIN(62, "USB3VBUS", UNIPHIER_PIN_IECTRL_NONE, | 209 | UNIPHIER_PINCTRL_PIN(62, "USB3VBUS", UNIPHIER_PIN_IECTRL_NONE, |
212 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 210 | -1, UNIPHIER_PIN_DRV_FIXED8, |
213 | 62, UNIPHIER_PIN_PULL_DOWN), | 211 | 62, UNIPHIER_PIN_PULL_DOWN), |
214 | UNIPHIER_PINCTRL_PIN(63, "USB3OD", UNIPHIER_PIN_IECTRL_NONE, | 212 | UNIPHIER_PINCTRL_PIN(63, "USB3OD", UNIPHIER_PIN_IECTRL_NONE, |
215 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 213 | -1, UNIPHIER_PIN_DRV_FIXED8, |
216 | 63, UNIPHIER_PIN_PULL_DOWN), | 214 | 63, UNIPHIER_PIN_PULL_DOWN), |
217 | UNIPHIER_PINCTRL_PIN(64, "CH0CLK", UNIPHIER_PIN_IECTRL_NONE, | 215 | UNIPHIER_PINCTRL_PIN(64, "CH0CLK", UNIPHIER_PIN_IECTRL_NONE, |
218 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 216 | -1, UNIPHIER_PIN_DRV_FIXED8, |
219 | 64, UNIPHIER_PIN_PULL_DOWN), | 217 | 64, UNIPHIER_PIN_PULL_DOWN), |
220 | UNIPHIER_PINCTRL_PIN(65, "CH0PSYNC", UNIPHIER_PIN_IECTRL_NONE, | 218 | UNIPHIER_PINCTRL_PIN(65, "CH0PSYNC", UNIPHIER_PIN_IECTRL_NONE, |
221 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 219 | -1, UNIPHIER_PIN_DRV_FIXED8, |
222 | 65, UNIPHIER_PIN_PULL_DOWN), | 220 | 65, UNIPHIER_PIN_PULL_DOWN), |
223 | UNIPHIER_PINCTRL_PIN(66, "CH0VAL", UNIPHIER_PIN_IECTRL_NONE, | 221 | UNIPHIER_PINCTRL_PIN(66, "CH0VAL", UNIPHIER_PIN_IECTRL_NONE, |
224 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 222 | -1, UNIPHIER_PIN_DRV_FIXED8, |
225 | 66, UNIPHIER_PIN_PULL_DOWN), | 223 | 66, UNIPHIER_PIN_PULL_DOWN), |
226 | UNIPHIER_PINCTRL_PIN(67, "CH0DATA", UNIPHIER_PIN_IECTRL_NONE, | 224 | UNIPHIER_PINCTRL_PIN(67, "CH0DATA", UNIPHIER_PIN_IECTRL_NONE, |
227 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 225 | -1, UNIPHIER_PIN_DRV_FIXED8, |
228 | 67, UNIPHIER_PIN_PULL_DOWN), | 226 | 67, UNIPHIER_PIN_PULL_DOWN), |
229 | UNIPHIER_PINCTRL_PIN(68, "CH1CLK", UNIPHIER_PIN_IECTRL_NONE, | 227 | UNIPHIER_PINCTRL_PIN(68, "CH1CLK", UNIPHIER_PIN_IECTRL_NONE, |
230 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 228 | -1, UNIPHIER_PIN_DRV_FIXED8, |
231 | 68, UNIPHIER_PIN_PULL_DOWN), | 229 | 68, UNIPHIER_PIN_PULL_DOWN), |
232 | UNIPHIER_PINCTRL_PIN(69, "CH1PSYNC", UNIPHIER_PIN_IECTRL_NONE, | 230 | UNIPHIER_PINCTRL_PIN(69, "CH1PSYNC", UNIPHIER_PIN_IECTRL_NONE, |
233 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 231 | -1, UNIPHIER_PIN_DRV_FIXED8, |
234 | 69, UNIPHIER_PIN_PULL_DOWN), | 232 | 69, UNIPHIER_PIN_PULL_DOWN), |
235 | UNIPHIER_PINCTRL_PIN(70, "CH1VAL", UNIPHIER_PIN_IECTRL_NONE, | 233 | UNIPHIER_PINCTRL_PIN(70, "CH1VAL", UNIPHIER_PIN_IECTRL_NONE, |
236 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 234 | -1, UNIPHIER_PIN_DRV_FIXED8, |
237 | 70, UNIPHIER_PIN_PULL_DOWN), | 235 | 70, UNIPHIER_PIN_PULL_DOWN), |
238 | UNIPHIER_PINCTRL_PIN(71, "CH1DATA", UNIPHIER_PIN_IECTRL_NONE, | 236 | UNIPHIER_PINCTRL_PIN(71, "CH1DATA", UNIPHIER_PIN_IECTRL_NONE, |
239 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 237 | -1, UNIPHIER_PIN_DRV_FIXED8, |
240 | 71, UNIPHIER_PIN_PULL_DOWN), | 238 | 71, UNIPHIER_PIN_PULL_DOWN), |
241 | UNIPHIER_PINCTRL_PIN(72, "XIRQ9", UNIPHIER_PIN_IECTRL_NONE, | 239 | UNIPHIER_PINCTRL_PIN(72, "XIRQ9", UNIPHIER_PIN_IECTRL_NONE, |
242 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 240 | -1, UNIPHIER_PIN_DRV_FIXED8, |
243 | 72, UNIPHIER_PIN_PULL_DOWN), | 241 | 72, UNIPHIER_PIN_PULL_DOWN), |
244 | UNIPHIER_PINCTRL_PIN(73, "XIRQ10", UNIPHIER_PIN_IECTRL_NONE, | 242 | UNIPHIER_PINCTRL_PIN(73, "XIRQ10", UNIPHIER_PIN_IECTRL_NONE, |
245 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 243 | -1, UNIPHIER_PIN_DRV_FIXED8, |
246 | 73, UNIPHIER_PIN_PULL_DOWN), | 244 | 73, UNIPHIER_PIN_PULL_DOWN), |
247 | UNIPHIER_PINCTRL_PIN(74, "XIRQ16", UNIPHIER_PIN_IECTRL_NONE, | 245 | UNIPHIER_PINCTRL_PIN(74, "XIRQ16", UNIPHIER_PIN_IECTRL_NONE, |
248 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 246 | -1, UNIPHIER_PIN_DRV_FIXED8, |
249 | 74, UNIPHIER_PIN_PULL_DOWN), | 247 | 74, UNIPHIER_PIN_PULL_DOWN), |
250 | UNIPHIER_PINCTRL_PIN(75, "CH4CLK", UNIPHIER_PIN_IECTRL_NONE, | 248 | UNIPHIER_PINCTRL_PIN(75, "CH4CLK", UNIPHIER_PIN_IECTRL_NONE, |
251 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 249 | -1, UNIPHIER_PIN_DRV_FIXED8, |
252 | 75, UNIPHIER_PIN_PULL_DOWN), | 250 | 75, UNIPHIER_PIN_PULL_DOWN), |
253 | UNIPHIER_PINCTRL_PIN(76, "CH4PSYNC", UNIPHIER_PIN_IECTRL_NONE, | 251 | UNIPHIER_PINCTRL_PIN(76, "CH4PSYNC", UNIPHIER_PIN_IECTRL_NONE, |
254 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 252 | -1, UNIPHIER_PIN_DRV_FIXED8, |
255 | 76, UNIPHIER_PIN_PULL_DOWN), | 253 | 76, UNIPHIER_PIN_PULL_DOWN), |
256 | UNIPHIER_PINCTRL_PIN(77, "CH4VAL", UNIPHIER_PIN_IECTRL_NONE, | 254 | UNIPHIER_PINCTRL_PIN(77, "CH4VAL", UNIPHIER_PIN_IECTRL_NONE, |
257 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 255 | -1, UNIPHIER_PIN_DRV_FIXED8, |
258 | 77, UNIPHIER_PIN_PULL_DOWN), | 256 | 77, UNIPHIER_PIN_PULL_DOWN), |
259 | UNIPHIER_PINCTRL_PIN(78, "CH4DATA", UNIPHIER_PIN_IECTRL_NONE, | 257 | UNIPHIER_PINCTRL_PIN(78, "CH4DATA", UNIPHIER_PIN_IECTRL_NONE, |
260 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 258 | -1, UNIPHIER_PIN_DRV_FIXED8, |
261 | 78, UNIPHIER_PIN_PULL_DOWN), | 259 | 78, UNIPHIER_PIN_PULL_DOWN), |
262 | UNIPHIER_PINCTRL_PIN(79, "CH5CLK", UNIPHIER_PIN_IECTRL_NONE, | 260 | UNIPHIER_PINCTRL_PIN(79, "CH5CLK", UNIPHIER_PIN_IECTRL_NONE, |
263 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 261 | -1, UNIPHIER_PIN_DRV_FIXED8, |
264 | 79, UNIPHIER_PIN_PULL_DOWN), | 262 | 79, UNIPHIER_PIN_PULL_DOWN), |
265 | UNIPHIER_PINCTRL_PIN(80, "CH5PSYNC", UNIPHIER_PIN_IECTRL_NONE, | 263 | UNIPHIER_PINCTRL_PIN(80, "CH5PSYNC", UNIPHIER_PIN_IECTRL_NONE, |
266 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 264 | -1, UNIPHIER_PIN_DRV_FIXED8, |
267 | 80, UNIPHIER_PIN_PULL_DOWN), | 265 | 80, UNIPHIER_PIN_PULL_DOWN), |
268 | UNIPHIER_PINCTRL_PIN(81, "CH5VAL", UNIPHIER_PIN_IECTRL_NONE, | 266 | UNIPHIER_PINCTRL_PIN(81, "CH5VAL", UNIPHIER_PIN_IECTRL_NONE, |
269 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 267 | -1, UNIPHIER_PIN_DRV_FIXED8, |
270 | 81, UNIPHIER_PIN_PULL_DOWN), | 268 | 81, UNIPHIER_PIN_PULL_DOWN), |
271 | UNIPHIER_PINCTRL_PIN(82, "CH5DATA", UNIPHIER_PIN_IECTRL_NONE, | 269 | UNIPHIER_PINCTRL_PIN(82, "CH5DATA", UNIPHIER_PIN_IECTRL_NONE, |
272 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 270 | -1, UNIPHIER_PIN_DRV_FIXED8, |
273 | 82, UNIPHIER_PIN_PULL_DOWN), | 271 | 82, UNIPHIER_PIN_PULL_DOWN), |
274 | UNIPHIER_PINCTRL_PIN(83, "CH6CLK", UNIPHIER_PIN_IECTRL_NONE, | 272 | UNIPHIER_PINCTRL_PIN(83, "CH6CLK", UNIPHIER_PIN_IECTRL_NONE, |
275 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 273 | -1, UNIPHIER_PIN_DRV_FIXED8, |
276 | 83, UNIPHIER_PIN_PULL_DOWN), | 274 | 83, UNIPHIER_PIN_PULL_DOWN), |
277 | UNIPHIER_PINCTRL_PIN(84, "CH6PSYNC", UNIPHIER_PIN_IECTRL_NONE, | 275 | UNIPHIER_PINCTRL_PIN(84, "CH6PSYNC", UNIPHIER_PIN_IECTRL_NONE, |
278 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 276 | -1, UNIPHIER_PIN_DRV_FIXED8, |
279 | 84, UNIPHIER_PIN_PULL_DOWN), | 277 | 84, UNIPHIER_PIN_PULL_DOWN), |
280 | UNIPHIER_PINCTRL_PIN(85, "CH6VAL", UNIPHIER_PIN_IECTRL_NONE, | 278 | UNIPHIER_PINCTRL_PIN(85, "CH6VAL", UNIPHIER_PIN_IECTRL_NONE, |
281 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 279 | -1, UNIPHIER_PIN_DRV_FIXED8, |
282 | 85, UNIPHIER_PIN_PULL_DOWN), | 280 | 85, UNIPHIER_PIN_PULL_DOWN), |
283 | UNIPHIER_PINCTRL_PIN(86, "CH6DATA", UNIPHIER_PIN_IECTRL_NONE, | 281 | UNIPHIER_PINCTRL_PIN(86, "CH6DATA", UNIPHIER_PIN_IECTRL_NONE, |
284 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 282 | -1, UNIPHIER_PIN_DRV_FIXED8, |
285 | 86, UNIPHIER_PIN_PULL_DOWN), | 283 | 86, UNIPHIER_PIN_PULL_DOWN), |
286 | UNIPHIER_PINCTRL_PIN(87, "STS0CLKO", UNIPHIER_PIN_IECTRL_NONE, | 284 | UNIPHIER_PINCTRL_PIN(87, "STS0CLKO", UNIPHIER_PIN_IECTRL_NONE, |
287 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 285 | -1, UNIPHIER_PIN_DRV_FIXED8, |
288 | 87, UNIPHIER_PIN_PULL_DOWN), | 286 | 87, UNIPHIER_PIN_PULL_DOWN), |
289 | UNIPHIER_PINCTRL_PIN(88, "STS0SYNCO", UNIPHIER_PIN_IECTRL_NONE, | 287 | UNIPHIER_PINCTRL_PIN(88, "STS0SYNCO", UNIPHIER_PIN_IECTRL_NONE, |
290 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 288 | -1, UNIPHIER_PIN_DRV_FIXED8, |
291 | 88, UNIPHIER_PIN_PULL_DOWN), | 289 | 88, UNIPHIER_PIN_PULL_DOWN), |
292 | UNIPHIER_PINCTRL_PIN(89, "STS0VALO", UNIPHIER_PIN_IECTRL_NONE, | 290 | UNIPHIER_PINCTRL_PIN(89, "STS0VALO", UNIPHIER_PIN_IECTRL_NONE, |
293 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 291 | -1, UNIPHIER_PIN_DRV_FIXED8, |
294 | 89, UNIPHIER_PIN_PULL_DOWN), | 292 | 89, UNIPHIER_PIN_PULL_DOWN), |
295 | UNIPHIER_PINCTRL_PIN(90, "STS0DATAO", UNIPHIER_PIN_IECTRL_NONE, | 293 | UNIPHIER_PINCTRL_PIN(90, "STS0DATAO", UNIPHIER_PIN_IECTRL_NONE, |
296 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 294 | -1, UNIPHIER_PIN_DRV_FIXED8, |
297 | 90, UNIPHIER_PIN_PULL_DOWN), | 295 | 90, UNIPHIER_PIN_PULL_DOWN), |
298 | UNIPHIER_PINCTRL_PIN(91, "XIRQ17", UNIPHIER_PIN_IECTRL_NONE, | 296 | UNIPHIER_PINCTRL_PIN(91, "XIRQ17", UNIPHIER_PIN_IECTRL_NONE, |
299 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 297 | -1, UNIPHIER_PIN_DRV_FIXED8, |
300 | 91, UNIPHIER_PIN_PULL_DOWN), | 298 | 91, UNIPHIER_PIN_PULL_DOWN), |
301 | UNIPHIER_PINCTRL_PIN(92, "PORT163", UNIPHIER_PIN_IECTRL_NONE, | 299 | UNIPHIER_PINCTRL_PIN(92, "PORT163", UNIPHIER_PIN_IECTRL_NONE, |
302 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 300 | -1, UNIPHIER_PIN_DRV_FIXED8, |
303 | 92, UNIPHIER_PIN_PULL_DOWN), | 301 | 92, UNIPHIER_PIN_PULL_DOWN), |
304 | UNIPHIER_PINCTRL_PIN(93, "PORT165", UNIPHIER_PIN_IECTRL_NONE, | 302 | UNIPHIER_PINCTRL_PIN(93, "PORT165", UNIPHIER_PIN_IECTRL_NONE, |
305 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 303 | -1, UNIPHIER_PIN_DRV_FIXED8, |
306 | 93, UNIPHIER_PIN_PULL_DOWN), | 304 | 93, UNIPHIER_PIN_PULL_DOWN), |
307 | UNIPHIER_PINCTRL_PIN(94, "PORT166", UNIPHIER_PIN_IECTRL_NONE, | 305 | UNIPHIER_PINCTRL_PIN(94, "PORT166", UNIPHIER_PIN_IECTRL_NONE, |
308 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 306 | -1, UNIPHIER_PIN_DRV_FIXED8, |
309 | 94, UNIPHIER_PIN_PULL_DOWN), | 307 | 94, UNIPHIER_PIN_PULL_DOWN), |
310 | UNIPHIER_PINCTRL_PIN(95, "PORT132", UNIPHIER_PIN_IECTRL_NONE, | 308 | UNIPHIER_PINCTRL_PIN(95, "PORT132", UNIPHIER_PIN_IECTRL_NONE, |
311 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 309 | -1, UNIPHIER_PIN_DRV_FIXED8, |
312 | 95, UNIPHIER_PIN_PULL_DOWN), | 310 | 95, UNIPHIER_PIN_PULL_DOWN), |
313 | UNIPHIER_PINCTRL_PIN(96, "PORT133", UNIPHIER_PIN_IECTRL_NONE, | 311 | UNIPHIER_PINCTRL_PIN(96, "PORT133", UNIPHIER_PIN_IECTRL_NONE, |
314 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 312 | -1, UNIPHIER_PIN_DRV_FIXED8, |
315 | 96, UNIPHIER_PIN_PULL_DOWN), | 313 | 96, UNIPHIER_PIN_PULL_DOWN), |
316 | UNIPHIER_PINCTRL_PIN(97, "AO2IEC", UNIPHIER_PIN_IECTRL_NONE, | 314 | UNIPHIER_PINCTRL_PIN(97, "AO2IEC", UNIPHIER_PIN_IECTRL_NONE, |
317 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 315 | -1, UNIPHIER_PIN_DRV_FIXED8, |
318 | 97, UNIPHIER_PIN_PULL_DOWN), | 316 | 97, UNIPHIER_PIN_PULL_DOWN), |
319 | UNIPHIER_PINCTRL_PIN(98, "AI2ADCCK", UNIPHIER_PIN_IECTRL_NONE, | 317 | UNIPHIER_PINCTRL_PIN(98, "AI2ADCCK", UNIPHIER_PIN_IECTRL_NONE, |
320 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 318 | -1, UNIPHIER_PIN_DRV_FIXED8, |
321 | 98, UNIPHIER_PIN_PULL_DOWN), | 319 | 98, UNIPHIER_PIN_PULL_DOWN), |
322 | UNIPHIER_PINCTRL_PIN(99, "AI2BCK", UNIPHIER_PIN_IECTRL_NONE, | 320 | UNIPHIER_PINCTRL_PIN(99, "AI2BCK", UNIPHIER_PIN_IECTRL_NONE, |
323 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 321 | -1, UNIPHIER_PIN_DRV_FIXED8, |
324 | 99, UNIPHIER_PIN_PULL_DOWN), | 322 | 99, UNIPHIER_PIN_PULL_DOWN), |
325 | UNIPHIER_PINCTRL_PIN(100, "AI2LRCK", UNIPHIER_PIN_IECTRL_NONE, | 323 | UNIPHIER_PINCTRL_PIN(100, "AI2LRCK", UNIPHIER_PIN_IECTRL_NONE, |
326 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 324 | -1, UNIPHIER_PIN_DRV_FIXED8, |
327 | 100, UNIPHIER_PIN_PULL_DOWN), | 325 | 100, UNIPHIER_PIN_PULL_DOWN), |
328 | UNIPHIER_PINCTRL_PIN(101, "AI2D0", UNIPHIER_PIN_IECTRL_NONE, | 326 | UNIPHIER_PINCTRL_PIN(101, "AI2D0", UNIPHIER_PIN_IECTRL_NONE, |
329 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 327 | -1, UNIPHIER_PIN_DRV_FIXED8, |
330 | 101, UNIPHIER_PIN_PULL_DOWN), | 328 | 101, UNIPHIER_PIN_PULL_DOWN), |
331 | UNIPHIER_PINCTRL_PIN(102, "AI2D1", UNIPHIER_PIN_IECTRL_NONE, | 329 | UNIPHIER_PINCTRL_PIN(102, "AI2D1", UNIPHIER_PIN_IECTRL_NONE, |
332 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 330 | -1, UNIPHIER_PIN_DRV_FIXED8, |
333 | 102, UNIPHIER_PIN_PULL_DOWN), | 331 | 102, UNIPHIER_PIN_PULL_DOWN), |
334 | UNIPHIER_PINCTRL_PIN(103, "AI2D2", UNIPHIER_PIN_IECTRL_NONE, | 332 | UNIPHIER_PINCTRL_PIN(103, "AI2D2", UNIPHIER_PIN_IECTRL_NONE, |
335 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 333 | -1, UNIPHIER_PIN_DRV_FIXED8, |
336 | 103, UNIPHIER_PIN_PULL_DOWN), | 334 | 103, UNIPHIER_PIN_PULL_DOWN), |
337 | UNIPHIER_PINCTRL_PIN(104, "AI2D3", UNIPHIER_PIN_IECTRL_NONE, | 335 | UNIPHIER_PINCTRL_PIN(104, "AI2D3", UNIPHIER_PIN_IECTRL_NONE, |
338 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 336 | -1, UNIPHIER_PIN_DRV_FIXED8, |
339 | 104, UNIPHIER_PIN_PULL_DOWN), | 337 | 104, UNIPHIER_PIN_PULL_DOWN), |
340 | UNIPHIER_PINCTRL_PIN(105, "AO3DACCK", UNIPHIER_PIN_IECTRL_NONE, | 338 | UNIPHIER_PINCTRL_PIN(105, "AO3DACCK", UNIPHIER_PIN_IECTRL_NONE, |
341 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 339 | -1, UNIPHIER_PIN_DRV_FIXED8, |
342 | 105, UNIPHIER_PIN_PULL_DOWN), | 340 | 105, UNIPHIER_PIN_PULL_DOWN), |
343 | UNIPHIER_PINCTRL_PIN(106, "AO3BCK", UNIPHIER_PIN_IECTRL_NONE, | 341 | UNIPHIER_PINCTRL_PIN(106, "AO3BCK", UNIPHIER_PIN_IECTRL_NONE, |
344 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 342 | -1, UNIPHIER_PIN_DRV_FIXED8, |
345 | 106, UNIPHIER_PIN_PULL_DOWN), | 343 | 106, UNIPHIER_PIN_PULL_DOWN), |
346 | UNIPHIER_PINCTRL_PIN(107, "AO3LRCK", UNIPHIER_PIN_IECTRL_NONE, | 344 | UNIPHIER_PINCTRL_PIN(107, "AO3LRCK", UNIPHIER_PIN_IECTRL_NONE, |
347 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 345 | -1, UNIPHIER_PIN_DRV_FIXED8, |
348 | 107, UNIPHIER_PIN_PULL_DOWN), | 346 | 107, UNIPHIER_PIN_PULL_DOWN), |
349 | UNIPHIER_PINCTRL_PIN(108, "AO3DMIX", UNIPHIER_PIN_IECTRL_NONE, | 347 | UNIPHIER_PINCTRL_PIN(108, "AO3DMIX", UNIPHIER_PIN_IECTRL_NONE, |
350 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 348 | -1, UNIPHIER_PIN_DRV_FIXED8, |
351 | 108, UNIPHIER_PIN_PULL_DOWN), | 349 | 108, UNIPHIER_PIN_PULL_DOWN), |
352 | UNIPHIER_PINCTRL_PIN(109, "SDA0", UNIPHIER_PIN_IECTRL_NONE, | 350 | UNIPHIER_PINCTRL_PIN(109, "SDA0", UNIPHIER_PIN_IECTRL_NONE, |
353 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 351 | -1, UNIPHIER_PIN_DRV_FIXED8, |
354 | 109, UNIPHIER_PIN_PULL_DOWN), | 352 | 109, UNIPHIER_PIN_PULL_DOWN), |
355 | UNIPHIER_PINCTRL_PIN(110, "SCL0", UNIPHIER_PIN_IECTRL_NONE, | 353 | UNIPHIER_PINCTRL_PIN(110, "SCL0", UNIPHIER_PIN_IECTRL_NONE, |
356 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 354 | -1, UNIPHIER_PIN_DRV_FIXED8, |
357 | 110, UNIPHIER_PIN_PULL_DOWN), | 355 | 110, UNIPHIER_PIN_PULL_DOWN), |
358 | UNIPHIER_PINCTRL_PIN(111, "SDA1", UNIPHIER_PIN_IECTRL_NONE, | 356 | UNIPHIER_PINCTRL_PIN(111, "SDA1", UNIPHIER_PIN_IECTRL_NONE, |
359 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 357 | -1, UNIPHIER_PIN_DRV_FIXED8, |
360 | 111, UNIPHIER_PIN_PULL_DOWN), | 358 | 111, UNIPHIER_PIN_PULL_DOWN), |
361 | UNIPHIER_PINCTRL_PIN(112, "SCL1", UNIPHIER_PIN_IECTRL_NONE, | 359 | UNIPHIER_PINCTRL_PIN(112, "SCL1", UNIPHIER_PIN_IECTRL_NONE, |
362 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 360 | -1, UNIPHIER_PIN_DRV_FIXED8, |
363 | 112, UNIPHIER_PIN_PULL_DOWN), | 361 | 112, UNIPHIER_PIN_PULL_DOWN), |
364 | UNIPHIER_PINCTRL_PIN(113, "TXD2", 0, | 362 | UNIPHIER_PINCTRL_PIN(113, "TXD2", 0, |
365 | 113, UNIPHIER_PIN_DRV_4_8, | 363 | 113, UNIPHIER_PIN_DRV_1BIT, |
366 | 113, UNIPHIER_PIN_PULL_UP), | 364 | 113, UNIPHIER_PIN_PULL_UP), |
367 | UNIPHIER_PINCTRL_PIN(114, "RXD2", 0, | 365 | UNIPHIER_PINCTRL_PIN(114, "RXD2", 0, |
368 | 114, UNIPHIER_PIN_DRV_4_8, | 366 | 114, UNIPHIER_PIN_DRV_1BIT, |
369 | 114, UNIPHIER_PIN_PULL_UP), | 367 | 114, UNIPHIER_PIN_PULL_UP), |
370 | UNIPHIER_PINCTRL_PIN(115, "TXD1", 0, | 368 | UNIPHIER_PINCTRL_PIN(115, "TXD1", 0, |
371 | 115, UNIPHIER_PIN_DRV_4_8, | 369 | 115, UNIPHIER_PIN_DRV_1BIT, |
372 | 115, UNIPHIER_PIN_PULL_UP), | 370 | 115, UNIPHIER_PIN_PULL_UP), |
373 | UNIPHIER_PINCTRL_PIN(116, "RXD1", 0, | 371 | UNIPHIER_PINCTRL_PIN(116, "RXD1", 0, |
374 | 116, UNIPHIER_PIN_DRV_4_8, | 372 | 116, UNIPHIER_PIN_DRV_1BIT, |
375 | 116, UNIPHIER_PIN_PULL_UP), | 373 | 116, UNIPHIER_PIN_PULL_UP), |
376 | UNIPHIER_PINCTRL_PIN(117, "PORT190", UNIPHIER_PIN_IECTRL_NONE, | 374 | UNIPHIER_PINCTRL_PIN(117, "PORT190", UNIPHIER_PIN_IECTRL_NONE, |
377 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 375 | -1, UNIPHIER_PIN_DRV_FIXED8, |
378 | 117, UNIPHIER_PIN_PULL_DOWN), | 376 | 117, UNIPHIER_PIN_PULL_DOWN), |
379 | UNIPHIER_PINCTRL_PIN(118, "VI1HSYNC", UNIPHIER_PIN_IECTRL_NONE, | 377 | UNIPHIER_PINCTRL_PIN(118, "VI1HSYNC", UNIPHIER_PIN_IECTRL_NONE, |
380 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 378 | -1, UNIPHIER_PIN_DRV_FIXED8, |
381 | 118, UNIPHIER_PIN_PULL_DOWN), | 379 | 118, UNIPHIER_PIN_PULL_DOWN), |
382 | UNIPHIER_PINCTRL_PIN(119, "VI1VSYNC", UNIPHIER_PIN_IECTRL_NONE, | 380 | UNIPHIER_PINCTRL_PIN(119, "VI1VSYNC", UNIPHIER_PIN_IECTRL_NONE, |
383 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 381 | -1, UNIPHIER_PIN_DRV_FIXED8, |
384 | 119, UNIPHIER_PIN_PULL_DOWN), | 382 | 119, UNIPHIER_PIN_PULL_DOWN), |
385 | UNIPHIER_PINCTRL_PIN(120, "VI1DE", UNIPHIER_PIN_IECTRL_NONE, | 383 | UNIPHIER_PINCTRL_PIN(120, "VI1DE", UNIPHIER_PIN_IECTRL_NONE, |
386 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 384 | -1, UNIPHIER_PIN_DRV_FIXED8, |
387 | 120, UNIPHIER_PIN_PULL_DOWN), | 385 | 120, UNIPHIER_PIN_PULL_DOWN), |
388 | UNIPHIER_PINCTRL_PIN(121, "XIRQ3", UNIPHIER_PIN_IECTRL_NONE, | 386 | UNIPHIER_PINCTRL_PIN(121, "XIRQ3", UNIPHIER_PIN_IECTRL_NONE, |
389 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 387 | -1, UNIPHIER_PIN_DRV_FIXED8, |
390 | 121, UNIPHIER_PIN_PULL_DOWN), | 388 | 121, UNIPHIER_PIN_PULL_DOWN), |
391 | UNIPHIER_PINCTRL_PIN(122, "XIRQ4", UNIPHIER_PIN_IECTRL_NONE, | 389 | UNIPHIER_PINCTRL_PIN(122, "XIRQ4", UNIPHIER_PIN_IECTRL_NONE, |
392 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 390 | -1, UNIPHIER_PIN_DRV_FIXED8, |
393 | 122, UNIPHIER_PIN_PULL_DOWN), | 391 | 122, UNIPHIER_PIN_PULL_DOWN), |
394 | UNIPHIER_PINCTRL_PIN(123, "VI1G2", UNIPHIER_PIN_IECTRL_NONE, | 392 | UNIPHIER_PINCTRL_PIN(123, "VI1G2", UNIPHIER_PIN_IECTRL_NONE, |
395 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 393 | -1, UNIPHIER_PIN_DRV_FIXED8, |
396 | 123, UNIPHIER_PIN_PULL_DOWN), | 394 | 123, UNIPHIER_PIN_PULL_DOWN), |
397 | UNIPHIER_PINCTRL_PIN(124, "VI1G3", UNIPHIER_PIN_IECTRL_NONE, | 395 | UNIPHIER_PINCTRL_PIN(124, "VI1G3", UNIPHIER_PIN_IECTRL_NONE, |
398 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 396 | -1, UNIPHIER_PIN_DRV_FIXED8, |
399 | 124, UNIPHIER_PIN_PULL_DOWN), | 397 | 124, UNIPHIER_PIN_PULL_DOWN), |
400 | UNIPHIER_PINCTRL_PIN(125, "VI1G4", UNIPHIER_PIN_IECTRL_NONE, | 398 | UNIPHIER_PINCTRL_PIN(125, "VI1G4", UNIPHIER_PIN_IECTRL_NONE, |
401 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 399 | -1, UNIPHIER_PIN_DRV_FIXED8, |
402 | 125, UNIPHIER_PIN_PULL_DOWN), | 400 | 125, UNIPHIER_PIN_PULL_DOWN), |
403 | UNIPHIER_PINCTRL_PIN(126, "VI1G5", UNIPHIER_PIN_IECTRL_NONE, | 401 | UNIPHIER_PINCTRL_PIN(126, "VI1G5", UNIPHIER_PIN_IECTRL_NONE, |
404 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 402 | -1, UNIPHIER_PIN_DRV_FIXED8, |
405 | 126, UNIPHIER_PIN_PULL_DOWN), | 403 | 126, UNIPHIER_PIN_PULL_DOWN), |
406 | UNIPHIER_PINCTRL_PIN(127, "VI1G6", UNIPHIER_PIN_IECTRL_NONE, | 404 | UNIPHIER_PINCTRL_PIN(127, "VI1G6", UNIPHIER_PIN_IECTRL_NONE, |
407 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 405 | -1, UNIPHIER_PIN_DRV_FIXED8, |
408 | 127, UNIPHIER_PIN_PULL_DOWN), | 406 | 127, UNIPHIER_PIN_PULL_DOWN), |
409 | UNIPHIER_PINCTRL_PIN(128, "VI1G7", UNIPHIER_PIN_IECTRL_NONE, | 407 | UNIPHIER_PINCTRL_PIN(128, "VI1G7", UNIPHIER_PIN_IECTRL_NONE, |
410 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 408 | -1, UNIPHIER_PIN_DRV_FIXED8, |
411 | 128, UNIPHIER_PIN_PULL_DOWN), | 409 | 128, UNIPHIER_PIN_PULL_DOWN), |
412 | UNIPHIER_PINCTRL_PIN(129, "VI1G8", UNIPHIER_PIN_IECTRL_NONE, | 410 | UNIPHIER_PINCTRL_PIN(129, "VI1G8", UNIPHIER_PIN_IECTRL_NONE, |
413 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 411 | -1, UNIPHIER_PIN_DRV_FIXED8, |
414 | 129, UNIPHIER_PIN_PULL_DOWN), | 412 | 129, UNIPHIER_PIN_PULL_DOWN), |
415 | UNIPHIER_PINCTRL_PIN(130, "VI1G9", UNIPHIER_PIN_IECTRL_NONE, | 413 | UNIPHIER_PINCTRL_PIN(130, "VI1G9", UNIPHIER_PIN_IECTRL_NONE, |
416 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 414 | -1, UNIPHIER_PIN_DRV_FIXED8, |
417 | 130, UNIPHIER_PIN_PULL_DOWN), | 415 | 130, UNIPHIER_PIN_PULL_DOWN), |
418 | UNIPHIER_PINCTRL_PIN(131, "VI1CLK", UNIPHIER_PIN_IECTRL_NONE, | 416 | UNIPHIER_PINCTRL_PIN(131, "VI1CLK", UNIPHIER_PIN_IECTRL_NONE, |
419 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 417 | -1, UNIPHIER_PIN_DRV_FIXED8, |
420 | 131, UNIPHIER_PIN_PULL_DOWN), | 418 | 131, UNIPHIER_PIN_PULL_DOWN), |
421 | UNIPHIER_PINCTRL_PIN(132, "PORT05", UNIPHIER_PIN_IECTRL_NONE, | 419 | UNIPHIER_PINCTRL_PIN(132, "PORT05", UNIPHIER_PIN_IECTRL_NONE, |
422 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 420 | -1, UNIPHIER_PIN_DRV_FIXED8, |
423 | 132, UNIPHIER_PIN_PULL_DOWN), | 421 | 132, UNIPHIER_PIN_PULL_DOWN), |
424 | UNIPHIER_PINCTRL_PIN(133, "PORT06", UNIPHIER_PIN_IECTRL_NONE, | 422 | UNIPHIER_PINCTRL_PIN(133, "PORT06", UNIPHIER_PIN_IECTRL_NONE, |
425 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 423 | -1, UNIPHIER_PIN_DRV_FIXED8, |
426 | 133, UNIPHIER_PIN_PULL_DOWN), | 424 | 133, UNIPHIER_PIN_PULL_DOWN), |
427 | UNIPHIER_PINCTRL_PIN(134, "VI1R2", UNIPHIER_PIN_IECTRL_NONE, | 425 | UNIPHIER_PINCTRL_PIN(134, "VI1R2", UNIPHIER_PIN_IECTRL_NONE, |
428 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 426 | -1, UNIPHIER_PIN_DRV_FIXED8, |
429 | 134, UNIPHIER_PIN_PULL_DOWN), | 427 | 134, UNIPHIER_PIN_PULL_DOWN), |
430 | UNIPHIER_PINCTRL_PIN(135, "VI1R3", UNIPHIER_PIN_IECTRL_NONE, | 428 | UNIPHIER_PINCTRL_PIN(135, "VI1R3", UNIPHIER_PIN_IECTRL_NONE, |
431 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 429 | -1, UNIPHIER_PIN_DRV_FIXED8, |
432 | 135, UNIPHIER_PIN_PULL_DOWN), | 430 | 135, UNIPHIER_PIN_PULL_DOWN), |
433 | UNIPHIER_PINCTRL_PIN(136, "VI1R4", UNIPHIER_PIN_IECTRL_NONE, | 431 | UNIPHIER_PINCTRL_PIN(136, "VI1R4", UNIPHIER_PIN_IECTRL_NONE, |
434 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 432 | -1, UNIPHIER_PIN_DRV_FIXED8, |
435 | 136, UNIPHIER_PIN_PULL_DOWN), | 433 | 136, UNIPHIER_PIN_PULL_DOWN), |
436 | UNIPHIER_PINCTRL_PIN(137, "VI1R5", UNIPHIER_PIN_IECTRL_NONE, | 434 | UNIPHIER_PINCTRL_PIN(137, "VI1R5", UNIPHIER_PIN_IECTRL_NONE, |
437 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 435 | -1, UNIPHIER_PIN_DRV_FIXED8, |
438 | 137, UNIPHIER_PIN_PULL_DOWN), | 436 | 137, UNIPHIER_PIN_PULL_DOWN), |
439 | UNIPHIER_PINCTRL_PIN(138, "VI1R6", UNIPHIER_PIN_IECTRL_NONE, | 437 | UNIPHIER_PINCTRL_PIN(138, "VI1R6", UNIPHIER_PIN_IECTRL_NONE, |
440 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 438 | -1, UNIPHIER_PIN_DRV_FIXED8, |
441 | 138, UNIPHIER_PIN_PULL_DOWN), | 439 | 138, UNIPHIER_PIN_PULL_DOWN), |
442 | UNIPHIER_PINCTRL_PIN(139, "VI1R7", UNIPHIER_PIN_IECTRL_NONE, | 440 | UNIPHIER_PINCTRL_PIN(139, "VI1R7", UNIPHIER_PIN_IECTRL_NONE, |
443 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 441 | -1, UNIPHIER_PIN_DRV_FIXED8, |
444 | 139, UNIPHIER_PIN_PULL_DOWN), | 442 | 139, UNIPHIER_PIN_PULL_DOWN), |
445 | UNIPHIER_PINCTRL_PIN(140, "VI1R8", UNIPHIER_PIN_IECTRL_NONE, | 443 | UNIPHIER_PINCTRL_PIN(140, "VI1R8", UNIPHIER_PIN_IECTRL_NONE, |
446 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 444 | -1, UNIPHIER_PIN_DRV_FIXED8, |
447 | 140, UNIPHIER_PIN_PULL_DOWN), | 445 | 140, UNIPHIER_PIN_PULL_DOWN), |
448 | UNIPHIER_PINCTRL_PIN(141, "VI1R9", UNIPHIER_PIN_IECTRL_NONE, | 446 | UNIPHIER_PINCTRL_PIN(141, "VI1R9", UNIPHIER_PIN_IECTRL_NONE, |
449 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 447 | -1, UNIPHIER_PIN_DRV_FIXED8, |
450 | 141, UNIPHIER_PIN_PULL_DOWN), | 448 | 141, UNIPHIER_PIN_PULL_DOWN), |
451 | UNIPHIER_PINCTRL_PIN(142, "LPST", UNIPHIER_PIN_IECTRL_NONE, | 449 | UNIPHIER_PINCTRL_PIN(142, "LPST", UNIPHIER_PIN_IECTRL_NONE, |
452 | 142, UNIPHIER_PIN_DRV_4_8, | 450 | 142, UNIPHIER_PIN_DRV_1BIT, |
453 | 142, UNIPHIER_PIN_PULL_DOWN), | 451 | 142, UNIPHIER_PIN_PULL_DOWN), |
454 | UNIPHIER_PINCTRL_PIN(143, "MDC", 0, | 452 | UNIPHIER_PINCTRL_PIN(143, "MDC", 0, |
455 | 143, UNIPHIER_PIN_DRV_4_8, | 453 | 143, UNIPHIER_PIN_DRV_1BIT, |
456 | 143, UNIPHIER_PIN_PULL_DOWN), | 454 | 143, UNIPHIER_PIN_PULL_DOWN), |
457 | UNIPHIER_PINCTRL_PIN(144, "MDIO", 0, | 455 | UNIPHIER_PINCTRL_PIN(144, "MDIO", 0, |
458 | 144, UNIPHIER_PIN_DRV_4_8, | 456 | 144, UNIPHIER_PIN_DRV_1BIT, |
459 | 144, UNIPHIER_PIN_PULL_DOWN), | 457 | 144, UNIPHIER_PIN_PULL_DOWN), |
460 | UNIPHIER_PINCTRL_PIN(145, "MDIO_INTL", 0, | 458 | UNIPHIER_PINCTRL_PIN(145, "MDIO_INTL", 0, |
461 | 145, UNIPHIER_PIN_DRV_4_8, | 459 | 145, UNIPHIER_PIN_DRV_1BIT, |
462 | 145, UNIPHIER_PIN_PULL_DOWN), | 460 | 145, UNIPHIER_PIN_PULL_DOWN), |
463 | UNIPHIER_PINCTRL_PIN(146, "PHYRSTL", 0, | 461 | UNIPHIER_PINCTRL_PIN(146, "PHYRSTL", 0, |
464 | 146, UNIPHIER_PIN_DRV_4_8, | 462 | 146, UNIPHIER_PIN_DRV_1BIT, |
465 | 146, UNIPHIER_PIN_PULL_DOWN), | 463 | 146, UNIPHIER_PIN_PULL_DOWN), |
466 | UNIPHIER_PINCTRL_PIN(147, "RGMII_RXCLK", 0, | 464 | UNIPHIER_PINCTRL_PIN(147, "RGMII_RXCLK", 0, |
467 | 147, UNIPHIER_PIN_DRV_4_8, | 465 | 147, UNIPHIER_PIN_DRV_1BIT, |
468 | 147, UNIPHIER_PIN_PULL_DOWN), | 466 | 147, UNIPHIER_PIN_PULL_DOWN), |
469 | UNIPHIER_PINCTRL_PIN(148, "RGMII_RXD0", 0, | 467 | UNIPHIER_PINCTRL_PIN(148, "RGMII_RXD0", 0, |
470 | 148, UNIPHIER_PIN_DRV_4_8, | 468 | 148, UNIPHIER_PIN_DRV_1BIT, |
471 | 148, UNIPHIER_PIN_PULL_DOWN), | 469 | 148, UNIPHIER_PIN_PULL_DOWN), |
472 | UNIPHIER_PINCTRL_PIN(149, "RGMII_RXD1", 0, | 470 | UNIPHIER_PINCTRL_PIN(149, "RGMII_RXD1", 0, |
473 | 149, UNIPHIER_PIN_DRV_4_8, | 471 | 149, UNIPHIER_PIN_DRV_1BIT, |
474 | 149, UNIPHIER_PIN_PULL_DOWN), | 472 | 149, UNIPHIER_PIN_PULL_DOWN), |
475 | UNIPHIER_PINCTRL_PIN(150, "RGMII_RXD2", 0, | 473 | UNIPHIER_PINCTRL_PIN(150, "RGMII_RXD2", 0, |
476 | 150, UNIPHIER_PIN_DRV_4_8, | 474 | 150, UNIPHIER_PIN_DRV_1BIT, |
477 | 150, UNIPHIER_PIN_PULL_DOWN), | 475 | 150, UNIPHIER_PIN_PULL_DOWN), |
478 | UNIPHIER_PINCTRL_PIN(151, "RGMII_RXD3", 0, | 476 | UNIPHIER_PINCTRL_PIN(151, "RGMII_RXD3", 0, |
479 | 151, UNIPHIER_PIN_DRV_4_8, | 477 | 151, UNIPHIER_PIN_DRV_1BIT, |
480 | 151, UNIPHIER_PIN_PULL_DOWN), | 478 | 151, UNIPHIER_PIN_PULL_DOWN), |
481 | UNIPHIER_PINCTRL_PIN(152, "RGMII_RXCTL", 0, | 479 | UNIPHIER_PINCTRL_PIN(152, "RGMII_RXCTL", 0, |
482 | 152, UNIPHIER_PIN_DRV_4_8, | 480 | 152, UNIPHIER_PIN_DRV_1BIT, |
483 | 152, UNIPHIER_PIN_PULL_DOWN), | 481 | 152, UNIPHIER_PIN_PULL_DOWN), |
484 | UNIPHIER_PINCTRL_PIN(153, "RGMII_TXCLK", 0, | 482 | UNIPHIER_PINCTRL_PIN(153, "RGMII_TXCLK", 0, |
485 | 153, UNIPHIER_PIN_DRV_4_8, | 483 | 153, UNIPHIER_PIN_DRV_1BIT, |
486 | 153, UNIPHIER_PIN_PULL_DOWN), | 484 | 153, UNIPHIER_PIN_PULL_DOWN), |
487 | UNIPHIER_PINCTRL_PIN(154, "RGMII_TXD0", 0, | 485 | UNIPHIER_PINCTRL_PIN(154, "RGMII_TXD0", 0, |
488 | 154, UNIPHIER_PIN_DRV_4_8, | 486 | 154, UNIPHIER_PIN_DRV_1BIT, |
489 | 154, UNIPHIER_PIN_PULL_DOWN), | 487 | 154, UNIPHIER_PIN_PULL_DOWN), |
490 | UNIPHIER_PINCTRL_PIN(155, "RGMII_TXD1", 0, | 488 | UNIPHIER_PINCTRL_PIN(155, "RGMII_TXD1", 0, |
491 | 155, UNIPHIER_PIN_DRV_4_8, | 489 | 155, UNIPHIER_PIN_DRV_1BIT, |
492 | 155, UNIPHIER_PIN_PULL_DOWN), | 490 | 155, UNIPHIER_PIN_PULL_DOWN), |
493 | UNIPHIER_PINCTRL_PIN(156, "RGMII_TXD2", 0, | 491 | UNIPHIER_PINCTRL_PIN(156, "RGMII_TXD2", 0, |
494 | 156, UNIPHIER_PIN_DRV_4_8, | 492 | 156, UNIPHIER_PIN_DRV_1BIT, |
495 | 156, UNIPHIER_PIN_PULL_DOWN), | 493 | 156, UNIPHIER_PIN_PULL_DOWN), |
496 | UNIPHIER_PINCTRL_PIN(157, "RGMII_TXD3", 0, | 494 | UNIPHIER_PINCTRL_PIN(157, "RGMII_TXD3", 0, |
497 | 157, UNIPHIER_PIN_DRV_4_8, | 495 | 157, UNIPHIER_PIN_DRV_1BIT, |
498 | 157, UNIPHIER_PIN_PULL_DOWN), | 496 | 157, UNIPHIER_PIN_PULL_DOWN), |
499 | UNIPHIER_PINCTRL_PIN(158, "RGMII_TXCTL", 0, | 497 | UNIPHIER_PINCTRL_PIN(158, "RGMII_TXCTL", 0, |
500 | 158, UNIPHIER_PIN_DRV_4_8, | 498 | 158, UNIPHIER_PIN_DRV_1BIT, |
501 | 158, UNIPHIER_PIN_PULL_DOWN), | 499 | 158, UNIPHIER_PIN_PULL_DOWN), |
502 | UNIPHIER_PINCTRL_PIN(159, "SDA3", UNIPHIER_PIN_IECTRL_NONE, | 500 | UNIPHIER_PINCTRL_PIN(159, "SDA3", UNIPHIER_PIN_IECTRL_NONE, |
503 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 501 | -1, UNIPHIER_PIN_DRV_FIXED8, |
504 | 159, UNIPHIER_PIN_PULL_DOWN), | 502 | 159, UNIPHIER_PIN_PULL_DOWN), |
505 | UNIPHIER_PINCTRL_PIN(160, "SCL3", UNIPHIER_PIN_IECTRL_NONE, | 503 | UNIPHIER_PINCTRL_PIN(160, "SCL3", UNIPHIER_PIN_IECTRL_NONE, |
506 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 504 | -1, UNIPHIER_PIN_DRV_FIXED8, |
507 | 160, UNIPHIER_PIN_PULL_DOWN), | 505 | 160, UNIPHIER_PIN_PULL_DOWN), |
508 | UNIPHIER_PINCTRL_PIN(161, "AI1ADCCK", UNIPHIER_PIN_IECTRL_NONE, | 506 | UNIPHIER_PINCTRL_PIN(161, "AI1ADCCK", UNIPHIER_PIN_IECTRL_NONE, |
509 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 507 | -1, UNIPHIER_PIN_DRV_FIXED8, |
510 | 161, UNIPHIER_PIN_PULL_DOWN), | 508 | 161, UNIPHIER_PIN_PULL_DOWN), |
511 | UNIPHIER_PINCTRL_PIN(162, "AI1BCK", UNIPHIER_PIN_IECTRL_NONE, | 509 | UNIPHIER_PINCTRL_PIN(162, "AI1BCK", UNIPHIER_PIN_IECTRL_NONE, |
512 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 510 | -1, UNIPHIER_PIN_DRV_FIXED8, |
513 | 162, UNIPHIER_PIN_PULL_DOWN), | 511 | 162, UNIPHIER_PIN_PULL_DOWN), |
514 | UNIPHIER_PINCTRL_PIN(163, "CH2CLK", UNIPHIER_PIN_IECTRL_NONE, | 512 | UNIPHIER_PINCTRL_PIN(163, "CH2CLK", UNIPHIER_PIN_IECTRL_NONE, |
515 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 513 | -1, UNIPHIER_PIN_DRV_FIXED8, |
516 | 163, UNIPHIER_PIN_PULL_DOWN), | 514 | 163, UNIPHIER_PIN_PULL_DOWN), |
517 | UNIPHIER_PINCTRL_PIN(164, "CH2PSYNC", UNIPHIER_PIN_IECTRL_NONE, | 515 | UNIPHIER_PINCTRL_PIN(164, "CH2PSYNC", UNIPHIER_PIN_IECTRL_NONE, |
518 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 516 | -1, UNIPHIER_PIN_DRV_FIXED8, |
519 | 164, UNIPHIER_PIN_PULL_DOWN), | 517 | 164, UNIPHIER_PIN_PULL_DOWN), |
520 | UNIPHIER_PINCTRL_PIN(165, "CH2VAL", UNIPHIER_PIN_IECTRL_NONE, | 518 | UNIPHIER_PINCTRL_PIN(165, "CH2VAL", UNIPHIER_PIN_IECTRL_NONE, |
521 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 519 | -1, UNIPHIER_PIN_DRV_FIXED8, |
522 | 165, UNIPHIER_PIN_PULL_DOWN), | 520 | 165, UNIPHIER_PIN_PULL_DOWN), |
523 | UNIPHIER_PINCTRL_PIN(166, "CH2DATA", UNIPHIER_PIN_IECTRL_NONE, | 521 | UNIPHIER_PINCTRL_PIN(166, "CH2DATA", UNIPHIER_PIN_IECTRL_NONE, |
524 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 522 | -1, UNIPHIER_PIN_DRV_FIXED8, |
525 | 166, UNIPHIER_PIN_PULL_DOWN), | 523 | 166, UNIPHIER_PIN_PULL_DOWN), |
526 | UNIPHIER_PINCTRL_PIN(167, "CH3CLK", UNIPHIER_PIN_IECTRL_NONE, | 524 | UNIPHIER_PINCTRL_PIN(167, "CH3CLK", UNIPHIER_PIN_IECTRL_NONE, |
527 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 525 | -1, UNIPHIER_PIN_DRV_FIXED8, |
528 | 167, UNIPHIER_PIN_PULL_DOWN), | 526 | 167, UNIPHIER_PIN_PULL_DOWN), |
529 | UNIPHIER_PINCTRL_PIN(168, "CH3PSYNC", UNIPHIER_PIN_IECTRL_NONE, | 527 | UNIPHIER_PINCTRL_PIN(168, "CH3PSYNC", UNIPHIER_PIN_IECTRL_NONE, |
530 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 528 | -1, UNIPHIER_PIN_DRV_FIXED8, |
531 | 168, UNIPHIER_PIN_PULL_DOWN), | 529 | 168, UNIPHIER_PIN_PULL_DOWN), |
532 | UNIPHIER_PINCTRL_PIN(169, "CH3VAL", UNIPHIER_PIN_IECTRL_NONE, | 530 | UNIPHIER_PINCTRL_PIN(169, "CH3VAL", UNIPHIER_PIN_IECTRL_NONE, |
533 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 531 | -1, UNIPHIER_PIN_DRV_FIXED8, |
534 | 169, UNIPHIER_PIN_PULL_DOWN), | 532 | 169, UNIPHIER_PIN_PULL_DOWN), |
535 | UNIPHIER_PINCTRL_PIN(170, "CH3DATA", UNIPHIER_PIN_IECTRL_NONE, | 533 | UNIPHIER_PINCTRL_PIN(170, "CH3DATA", UNIPHIER_PIN_IECTRL_NONE, |
536 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 534 | -1, UNIPHIER_PIN_DRV_FIXED8, |
537 | 170, UNIPHIER_PIN_PULL_DOWN), | 535 | 170, UNIPHIER_PIN_PULL_DOWN), |
538 | UNIPHIER_PINCTRL_PIN(171, "SDA2", UNIPHIER_PIN_IECTRL_NONE, | 536 | UNIPHIER_PINCTRL_PIN(171, "SDA2", UNIPHIER_PIN_IECTRL_NONE, |
539 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 537 | -1, UNIPHIER_PIN_DRV_FIXED8, |
540 | 171, UNIPHIER_PIN_PULL_DOWN), | 538 | 171, UNIPHIER_PIN_PULL_DOWN), |
541 | UNIPHIER_PINCTRL_PIN(172, "SCL2", UNIPHIER_PIN_IECTRL_NONE, | 539 | UNIPHIER_PINCTRL_PIN(172, "SCL2", UNIPHIER_PIN_IECTRL_NONE, |
542 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 540 | -1, UNIPHIER_PIN_DRV_FIXED8, |
543 | 172, UNIPHIER_PIN_PULL_DOWN), | 541 | 172, UNIPHIER_PIN_PULL_DOWN), |
544 | UNIPHIER_PINCTRL_PIN(173, "AI1LRCK", UNIPHIER_PIN_IECTRL_NONE, | 542 | UNIPHIER_PINCTRL_PIN(173, "AI1LRCK", UNIPHIER_PIN_IECTRL_NONE, |
545 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 543 | -1, UNIPHIER_PIN_DRV_FIXED8, |
546 | 173, UNIPHIER_PIN_PULL_DOWN), | 544 | 173, UNIPHIER_PIN_PULL_DOWN), |
547 | UNIPHIER_PINCTRL_PIN(174, "AI1D0", UNIPHIER_PIN_IECTRL_NONE, | 545 | UNIPHIER_PINCTRL_PIN(174, "AI1D0", UNIPHIER_PIN_IECTRL_NONE, |
548 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 546 | -1, UNIPHIER_PIN_DRV_FIXED8, |
549 | 174, UNIPHIER_PIN_PULL_DOWN), | 547 | 174, UNIPHIER_PIN_PULL_DOWN), |
550 | UNIPHIER_PINCTRL_PIN(175, "AO2LRCK", UNIPHIER_PIN_IECTRL_NONE, | 548 | UNIPHIER_PINCTRL_PIN(175, "AO2LRCK", UNIPHIER_PIN_IECTRL_NONE, |
551 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 549 | -1, UNIPHIER_PIN_DRV_FIXED8, |
552 | 175, UNIPHIER_PIN_PULL_DOWN), | 550 | 175, UNIPHIER_PIN_PULL_DOWN), |
553 | UNIPHIER_PINCTRL_PIN(176, "AO2D0", UNIPHIER_PIN_IECTRL_NONE, | 551 | UNIPHIER_PINCTRL_PIN(176, "AO2D0", UNIPHIER_PIN_IECTRL_NONE, |
554 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 552 | -1, UNIPHIER_PIN_DRV_FIXED8, |
555 | 176, UNIPHIER_PIN_PULL_DOWN), | 553 | 176, UNIPHIER_PIN_PULL_DOWN), |
556 | UNIPHIER_PINCTRL_PIN(177, "AO2DACCK", UNIPHIER_PIN_IECTRL_NONE, | 554 | UNIPHIER_PINCTRL_PIN(177, "AO2DACCK", UNIPHIER_PIN_IECTRL_NONE, |
557 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 555 | -1, UNIPHIER_PIN_DRV_FIXED8, |
558 | 177, UNIPHIER_PIN_PULL_DOWN), | 556 | 177, UNIPHIER_PIN_PULL_DOWN), |
559 | UNIPHIER_PINCTRL_PIN(178, "AO2BCK", UNIPHIER_PIN_IECTRL_NONE, | 557 | UNIPHIER_PINCTRL_PIN(178, "AO2BCK", UNIPHIER_PIN_IECTRL_NONE, |
560 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 558 | -1, UNIPHIER_PIN_DRV_FIXED8, |
561 | 178, UNIPHIER_PIN_PULL_DOWN), | 559 | 178, UNIPHIER_PIN_PULL_DOWN), |
562 | UNIPHIER_PINCTRL_PIN(179, "PORT222", UNIPHIER_PIN_IECTRL_NONE, | 560 | UNIPHIER_PINCTRL_PIN(179, "PORT222", UNIPHIER_PIN_IECTRL_NONE, |
563 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 561 | -1, UNIPHIER_PIN_DRV_FIXED8, |
564 | 179, UNIPHIER_PIN_PULL_DOWN), | 562 | 179, UNIPHIER_PIN_PULL_DOWN), |
565 | UNIPHIER_PINCTRL_PIN(180, "PORT223", UNIPHIER_PIN_IECTRL_NONE, | 563 | UNIPHIER_PINCTRL_PIN(180, "PORT223", UNIPHIER_PIN_IECTRL_NONE, |
566 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 564 | -1, UNIPHIER_PIN_DRV_FIXED8, |
567 | 180, UNIPHIER_PIN_PULL_DOWN), | 565 | 180, UNIPHIER_PIN_PULL_DOWN), |
568 | UNIPHIER_PINCTRL_PIN(181, "PORT224", UNIPHIER_PIN_IECTRL_NONE, | 566 | UNIPHIER_PINCTRL_PIN(181, "PORT224", UNIPHIER_PIN_IECTRL_NONE, |
569 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 567 | -1, UNIPHIER_PIN_DRV_FIXED8, |
570 | 181, UNIPHIER_PIN_PULL_DOWN), | 568 | 181, UNIPHIER_PIN_PULL_DOWN), |
571 | UNIPHIER_PINCTRL_PIN(182, "PORT225", UNIPHIER_PIN_IECTRL_NONE, | 569 | UNIPHIER_PINCTRL_PIN(182, "PORT225", UNIPHIER_PIN_IECTRL_NONE, |
572 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 570 | -1, UNIPHIER_PIN_DRV_FIXED8, |
573 | 182, UNIPHIER_PIN_PULL_DOWN), | 571 | 182, UNIPHIER_PIN_PULL_DOWN), |
574 | UNIPHIER_PINCTRL_PIN(183, "PORT226", UNIPHIER_PIN_IECTRL_NONE, | 572 | UNIPHIER_PINCTRL_PIN(183, "PORT226", UNIPHIER_PIN_IECTRL_NONE, |
575 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 573 | -1, UNIPHIER_PIN_DRV_FIXED8, |
576 | 183, UNIPHIER_PIN_PULL_DOWN), | 574 | 183, UNIPHIER_PIN_PULL_DOWN), |
577 | UNIPHIER_PINCTRL_PIN(184, "PORT227", UNIPHIER_PIN_IECTRL_NONE, | 575 | UNIPHIER_PINCTRL_PIN(184, "PORT227", UNIPHIER_PIN_IECTRL_NONE, |
578 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 576 | -1, UNIPHIER_PIN_DRV_FIXED8, |
579 | 184, UNIPHIER_PIN_PULL_DOWN), | 577 | 184, UNIPHIER_PIN_PULL_DOWN), |
580 | UNIPHIER_PINCTRL_PIN(185, "PORT230", UNIPHIER_PIN_IECTRL_NONE, | 578 | UNIPHIER_PINCTRL_PIN(185, "PORT230", UNIPHIER_PIN_IECTRL_NONE, |
581 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 579 | -1, UNIPHIER_PIN_DRV_FIXED8, |
582 | 185, UNIPHIER_PIN_PULL_DOWN), | 580 | 185, UNIPHIER_PIN_PULL_DOWN), |
583 | UNIPHIER_PINCTRL_PIN(186, "FANPWM", UNIPHIER_PIN_IECTRL_NONE, | 581 | UNIPHIER_PINCTRL_PIN(186, "FANPWM", UNIPHIER_PIN_IECTRL_NONE, |
584 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 582 | -1, UNIPHIER_PIN_DRV_FIXED8, |
585 | 186, UNIPHIER_PIN_PULL_DOWN), | 583 | 186, UNIPHIER_PIN_PULL_DOWN), |
586 | UNIPHIER_PINCTRL_PIN(187, "HRDDCSDA0", 0, | 584 | UNIPHIER_PINCTRL_PIN(187, "HRDDCSDA0", 0, |
587 | 187, UNIPHIER_PIN_DRV_4_8, | 585 | 187, UNIPHIER_PIN_DRV_1BIT, |
588 | 187, UNIPHIER_PIN_PULL_DOWN), | 586 | 187, UNIPHIER_PIN_PULL_DOWN), |
589 | UNIPHIER_PINCTRL_PIN(188, "HRDDCSCL0", 0, | 587 | UNIPHIER_PINCTRL_PIN(188, "HRDDCSCL0", 0, |
590 | 188, UNIPHIER_PIN_DRV_4_8, | 588 | 188, UNIPHIER_PIN_DRV_1BIT, |
591 | 188, UNIPHIER_PIN_PULL_DOWN), | 589 | 188, UNIPHIER_PIN_PULL_DOWN), |
592 | UNIPHIER_PINCTRL_PIN(189, "HRDDCSDA1", 0, | 590 | UNIPHIER_PINCTRL_PIN(189, "HRDDCSDA1", 0, |
593 | 189, UNIPHIER_PIN_DRV_4_8, | 591 | 189, UNIPHIER_PIN_DRV_1BIT, |
594 | 189, UNIPHIER_PIN_PULL_DOWN), | 592 | 189, UNIPHIER_PIN_PULL_DOWN), |
595 | UNIPHIER_PINCTRL_PIN(190, "HRDDCSCL1", 0, | 593 | UNIPHIER_PINCTRL_PIN(190, "HRDDCSCL1", 0, |
596 | 190, UNIPHIER_PIN_DRV_4_8, | 594 | 190, UNIPHIER_PIN_DRV_1BIT, |
597 | 190, UNIPHIER_PIN_PULL_DOWN), | 595 | 190, UNIPHIER_PIN_PULL_DOWN), |
598 | UNIPHIER_PINCTRL_PIN(191, "HTDDCSDA0", 0, | 596 | UNIPHIER_PINCTRL_PIN(191, "HTDDCSDA0", 0, |
599 | 191, UNIPHIER_PIN_DRV_4_8, | 597 | 191, UNIPHIER_PIN_DRV_1BIT, |
600 | 191, UNIPHIER_PIN_PULL_DOWN), | 598 | 191, UNIPHIER_PIN_PULL_DOWN), |
601 | UNIPHIER_PINCTRL_PIN(192, "HTDDCSCL0", 0, | 599 | UNIPHIER_PINCTRL_PIN(192, "HTDDCSCL0", 0, |
602 | 192, UNIPHIER_PIN_DRV_4_8, | 600 | 192, UNIPHIER_PIN_DRV_1BIT, |
603 | 192, UNIPHIER_PIN_PULL_DOWN), | 601 | 192, UNIPHIER_PIN_PULL_DOWN), |
604 | UNIPHIER_PINCTRL_PIN(193, "HTDDCSDA1", 0, | 602 | UNIPHIER_PINCTRL_PIN(193, "HTDDCSDA1", 0, |
605 | 193, UNIPHIER_PIN_DRV_4_8, | 603 | 193, UNIPHIER_PIN_DRV_1BIT, |
606 | 193, UNIPHIER_PIN_PULL_DOWN), | 604 | 193, UNIPHIER_PIN_PULL_DOWN), |
607 | UNIPHIER_PINCTRL_PIN(194, "HTDDCSCL1", 0, | 605 | UNIPHIER_PINCTRL_PIN(194, "HTDDCSCL1", 0, |
608 | 194, UNIPHIER_PIN_DRV_4_8, | 606 | 194, UNIPHIER_PIN_DRV_1BIT, |
609 | 194, UNIPHIER_PIN_PULL_DOWN), | 607 | 194, UNIPHIER_PIN_PULL_DOWN), |
610 | UNIPHIER_PINCTRL_PIN(195, "PORT241", 0, | 608 | UNIPHIER_PINCTRL_PIN(195, "PORT241", 0, |
611 | 195, UNIPHIER_PIN_DRV_4_8, | 609 | 195, UNIPHIER_PIN_DRV_1BIT, |
612 | 195, UNIPHIER_PIN_PULL_DOWN), | 610 | 195, UNIPHIER_PIN_PULL_DOWN), |
613 | UNIPHIER_PINCTRL_PIN(196, "PORT242", 0, | 611 | UNIPHIER_PINCTRL_PIN(196, "PORT242", 0, |
614 | 196, UNIPHIER_PIN_DRV_4_8, | 612 | 196, UNIPHIER_PIN_DRV_1BIT, |
615 | 196, UNIPHIER_PIN_PULL_DOWN), | 613 | 196, UNIPHIER_PIN_PULL_DOWN), |
616 | UNIPHIER_PINCTRL_PIN(197, "PORT243", 0, | 614 | UNIPHIER_PINCTRL_PIN(197, "PORT243", 0, |
617 | 197, UNIPHIER_PIN_DRV_4_8, | 615 | 197, UNIPHIER_PIN_DRV_1BIT, |
618 | 197, UNIPHIER_PIN_PULL_DOWN), | 616 | 197, UNIPHIER_PIN_PULL_DOWN), |
619 | UNIPHIER_PINCTRL_PIN(198, "MVSYNC", 0, | 617 | UNIPHIER_PINCTRL_PIN(198, "MVSYNC", 0, |
620 | 198, UNIPHIER_PIN_DRV_4_8, | 618 | 198, UNIPHIER_PIN_DRV_1BIT, |
621 | 198, UNIPHIER_PIN_PULL_DOWN), | 619 | 198, UNIPHIER_PIN_PULL_DOWN), |
622 | UNIPHIER_PINCTRL_PIN(199, "SPISYNC0", UNIPHIER_PIN_IECTRL_NONE, | 620 | UNIPHIER_PINCTRL_PIN(199, "SPISYNC0", UNIPHIER_PIN_IECTRL_NONE, |
623 | 199, UNIPHIER_PIN_DRV_4_8, | 621 | 199, UNIPHIER_PIN_DRV_1BIT, |
624 | 199, UNIPHIER_PIN_PULL_DOWN), | 622 | 199, UNIPHIER_PIN_PULL_DOWN), |
625 | UNIPHIER_PINCTRL_PIN(200, "SPISCLK0", UNIPHIER_PIN_IECTRL_NONE, | 623 | UNIPHIER_PINCTRL_PIN(200, "SPISCLK0", UNIPHIER_PIN_IECTRL_NONE, |
626 | 200, UNIPHIER_PIN_DRV_4_8, | 624 | 200, UNIPHIER_PIN_DRV_1BIT, |
627 | 200, UNIPHIER_PIN_PULL_DOWN), | 625 | 200, UNIPHIER_PIN_PULL_DOWN), |
628 | UNIPHIER_PINCTRL_PIN(201, "SPITXD0", UNIPHIER_PIN_IECTRL_NONE, | 626 | UNIPHIER_PINCTRL_PIN(201, "SPITXD0", UNIPHIER_PIN_IECTRL_NONE, |
629 | 201, UNIPHIER_PIN_DRV_4_8, | 627 | 201, UNIPHIER_PIN_DRV_1BIT, |
630 | 201, UNIPHIER_PIN_PULL_DOWN), | 628 | 201, UNIPHIER_PIN_PULL_DOWN), |
631 | UNIPHIER_PINCTRL_PIN(202, "SPIRXD0", UNIPHIER_PIN_IECTRL_NONE, | 629 | UNIPHIER_PINCTRL_PIN(202, "SPIRXD0", UNIPHIER_PIN_IECTRL_NONE, |
632 | 202, UNIPHIER_PIN_DRV_4_8, | 630 | 202, UNIPHIER_PIN_DRV_1BIT, |
633 | 202, UNIPHIER_PIN_PULL_DOWN), | 631 | 202, UNIPHIER_PIN_PULL_DOWN), |
634 | UNIPHIER_PINCTRL_PIN(203, "CK54EXI", UNIPHIER_PIN_IECTRL_NONE, | 632 | UNIPHIER_PINCTRL_PIN(203, "CK54EXI", UNIPHIER_PIN_IECTRL_NONE, |
635 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 633 | -1, UNIPHIER_PIN_DRV_FIXED8, |
636 | 203, UNIPHIER_PIN_PULL_DOWN), | 634 | 203, UNIPHIER_PIN_PULL_DOWN), |
637 | UNIPHIER_PINCTRL_PIN(204, "AEXCKA1", UNIPHIER_PIN_IECTRL_NONE, | 635 | UNIPHIER_PINCTRL_PIN(204, "AEXCKA1", UNIPHIER_PIN_IECTRL_NONE, |
638 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 636 | -1, UNIPHIER_PIN_DRV_FIXED8, |
639 | 204, UNIPHIER_PIN_PULL_DOWN), | 637 | 204, UNIPHIER_PIN_PULL_DOWN), |
640 | UNIPHIER_PINCTRL_PIN(205, "AEXCKA2", UNIPHIER_PIN_IECTRL_NONE, | 638 | UNIPHIER_PINCTRL_PIN(205, "AEXCKA2", UNIPHIER_PIN_IECTRL_NONE, |
641 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 639 | -1, UNIPHIER_PIN_DRV_FIXED8, |
642 | 205, UNIPHIER_PIN_PULL_DOWN), | 640 | 205, UNIPHIER_PIN_PULL_DOWN), |
643 | UNIPHIER_PINCTRL_PIN(206, "CK27EXI", UNIPHIER_PIN_IECTRL_NONE, | 641 | UNIPHIER_PINCTRL_PIN(206, "CK27EXI", UNIPHIER_PIN_IECTRL_NONE, |
644 | -1, UNIPHIER_PIN_DRV_FIXED_8, | 642 | -1, UNIPHIER_PIN_DRV_FIXED8, |
645 | 206, UNIPHIER_PIN_PULL_DOWN), | 643 | 206, UNIPHIER_PIN_PULL_DOWN), |
646 | UNIPHIER_PINCTRL_PIN(207, "STCDIN", 0, | 644 | UNIPHIER_PINCTRL_PIN(207, "STCDIN", 0, |
647 | 207, UNIPHIER_PIN_DRV_4_8, | 645 | 207, UNIPHIER_PIN_DRV_1BIT, |
648 | 207, UNIPHIER_PIN_PULL_DOWN), | 646 | 207, UNIPHIER_PIN_PULL_DOWN), |
649 | UNIPHIER_PINCTRL_PIN(208, "PHSYNI", 0, | 647 | UNIPHIER_PINCTRL_PIN(208, "PHSYNI", 0, |
650 | 208, UNIPHIER_PIN_DRV_4_8, | 648 | 208, UNIPHIER_PIN_DRV_1BIT, |
651 | 208, UNIPHIER_PIN_PULL_DOWN), | 649 | 208, UNIPHIER_PIN_PULL_DOWN), |
652 | UNIPHIER_PINCTRL_PIN(209, "PVSYNI", 0, | 650 | UNIPHIER_PINCTRL_PIN(209, "PVSYNI", 0, |
653 | 209, UNIPHIER_PIN_DRV_4_8, | 651 | 209, UNIPHIER_PIN_DRV_1BIT, |
654 | 209, UNIPHIER_PIN_PULL_DOWN), | 652 | 209, UNIPHIER_PIN_PULL_DOWN), |
655 | UNIPHIER_PINCTRL_PIN(210, "MVSYN", UNIPHIER_PIN_IECTRL_NONE, | 653 | UNIPHIER_PINCTRL_PIN(210, "MVSYN", UNIPHIER_PIN_IECTRL_NONE, |
656 | 210, UNIPHIER_PIN_DRV_4_8, | 654 | 210, UNIPHIER_PIN_DRV_1BIT, |
657 | 210, UNIPHIER_PIN_PULL_DOWN), | 655 | 210, UNIPHIER_PIN_PULL_DOWN), |
658 | UNIPHIER_PINCTRL_PIN(211, "STCV", UNIPHIER_PIN_IECTRL_NONE, | 656 | UNIPHIER_PINCTRL_PIN(211, "STCV", UNIPHIER_PIN_IECTRL_NONE, |
659 | 211, UNIPHIER_PIN_DRV_4_8, | 657 | 211, UNIPHIER_PIN_DRV_1BIT, |
660 | 211, UNIPHIER_PIN_PULL_DOWN), | 658 | 211, UNIPHIER_PIN_PULL_DOWN), |
661 | UNIPHIER_PINCTRL_PIN(212, "PORT262", UNIPHIER_PIN_IECTRL_NONE, | 659 | UNIPHIER_PINCTRL_PIN(212, "PORT262", UNIPHIER_PIN_IECTRL_NONE, |
662 | 212, UNIPHIER_PIN_DRV_4_8, | 660 | 212, UNIPHIER_PIN_DRV_1BIT, |
663 | 212, UNIPHIER_PIN_PULL_DOWN), | 661 | 212, UNIPHIER_PIN_PULL_DOWN), |
664 | UNIPHIER_PINCTRL_PIN(213, "USB0VBUS_IRQ", UNIPHIER_PIN_IECTRL_NONE, | 662 | UNIPHIER_PINCTRL_PIN(213, "USB0VBUS_IRQ", UNIPHIER_PIN_IECTRL_NONE, |
665 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 663 | -1, UNIPHIER_PIN_DRV_FIXED4, |
666 | 213, UNIPHIER_PIN_PULL_DOWN), | 664 | 213, UNIPHIER_PIN_PULL_DOWN), |
667 | UNIPHIER_PINCTRL_PIN(214, "USB1VBUS_IRQ", UNIPHIER_PIN_IECTRL_NONE, | 665 | UNIPHIER_PINCTRL_PIN(214, "USB1VBUS_IRQ", UNIPHIER_PIN_IECTRL_NONE, |
668 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 666 | -1, UNIPHIER_PIN_DRV_FIXED4, |
669 | 214, UNIPHIER_PIN_PULL_DOWN), | 667 | 214, UNIPHIER_PIN_PULL_DOWN), |
670 | UNIPHIER_PINCTRL_PIN(215, "PORT265", UNIPHIER_PIN_IECTRL_NONE, | 668 | UNIPHIER_PINCTRL_PIN(215, "PORT265", UNIPHIER_PIN_IECTRL_NONE, |
671 | 215, UNIPHIER_PIN_DRV_4_8, | 669 | 215, UNIPHIER_PIN_DRV_1BIT, |
672 | 215, UNIPHIER_PIN_PULL_DOWN), | 670 | 215, UNIPHIER_PIN_PULL_DOWN), |
673 | UNIPHIER_PINCTRL_PIN(216, "CK25O", 0, | 671 | UNIPHIER_PINCTRL_PIN(216, "CK25O", 0, |
674 | 216, UNIPHIER_PIN_DRV_4_8, | 672 | 216, UNIPHIER_PIN_DRV_1BIT, |
675 | 216, UNIPHIER_PIN_PULL_DOWN), | 673 | 216, UNIPHIER_PIN_PULL_DOWN), |
676 | UNIPHIER_PINCTRL_PIN(217, "TXD0", 0, | 674 | UNIPHIER_PINCTRL_PIN(217, "TXD0", 0, |
677 | 217, UNIPHIER_PIN_DRV_4_8, | 675 | 217, UNIPHIER_PIN_DRV_1BIT, |
678 | 217, UNIPHIER_PIN_PULL_DOWN), | 676 | 217, UNIPHIER_PIN_PULL_DOWN), |
679 | UNIPHIER_PINCTRL_PIN(218, "RXD0", 0, | 677 | UNIPHIER_PINCTRL_PIN(218, "RXD0", 0, |
680 | 218, UNIPHIER_PIN_DRV_4_8, | 678 | 218, UNIPHIER_PIN_DRV_1BIT, |
681 | 218, UNIPHIER_PIN_PULL_DOWN), | 679 | 218, UNIPHIER_PIN_PULL_DOWN), |
682 | UNIPHIER_PINCTRL_PIN(219, "TXD3", 0, | 680 | UNIPHIER_PINCTRL_PIN(219, "TXD3", 0, |
683 | 219, UNIPHIER_PIN_DRV_4_8, | 681 | 219, UNIPHIER_PIN_DRV_1BIT, |
684 | 219, UNIPHIER_PIN_PULL_DOWN), | 682 | 219, UNIPHIER_PIN_PULL_DOWN), |
685 | UNIPHIER_PINCTRL_PIN(220, "RXD3", 0, | 683 | UNIPHIER_PINCTRL_PIN(220, "RXD3", 0, |
686 | 220, UNIPHIER_PIN_DRV_4_8, | 684 | 220, UNIPHIER_PIN_DRV_1BIT, |
687 | 220, UNIPHIER_PIN_PULL_DOWN), | 685 | 220, UNIPHIER_PIN_PULL_DOWN), |
688 | UNIPHIER_PINCTRL_PIN(221, "PORT273", 0, | 686 | UNIPHIER_PINCTRL_PIN(221, "PORT273", 0, |
689 | 221, UNIPHIER_PIN_DRV_4_8, | 687 | 221, UNIPHIER_PIN_DRV_1BIT, |
690 | 221, UNIPHIER_PIN_PULL_DOWN), | 688 | 221, UNIPHIER_PIN_PULL_DOWN), |
691 | UNIPHIER_PINCTRL_PIN(222, "STCDOUTC", 0, | 689 | UNIPHIER_PINCTRL_PIN(222, "STCDOUTC", 0, |
692 | 222, UNIPHIER_PIN_DRV_4_8, | 690 | 222, UNIPHIER_PIN_DRV_1BIT, |
693 | 222, UNIPHIER_PIN_PULL_DOWN), | 691 | 222, UNIPHIER_PIN_PULL_DOWN), |
694 | UNIPHIER_PINCTRL_PIN(223, "PORT274", 0, | 692 | UNIPHIER_PINCTRL_PIN(223, "PORT274", 0, |
695 | 223, UNIPHIER_PIN_DRV_4_8, | 693 | 223, UNIPHIER_PIN_DRV_1BIT, |
696 | 223, UNIPHIER_PIN_PULL_DOWN), | 694 | 223, UNIPHIER_PIN_PULL_DOWN), |
697 | UNIPHIER_PINCTRL_PIN(224, "PORT275", 0, | 695 | UNIPHIER_PINCTRL_PIN(224, "PORT275", 0, |
698 | 224, UNIPHIER_PIN_DRV_4_8, | 696 | 224, UNIPHIER_PIN_DRV_1BIT, |
699 | 224, UNIPHIER_PIN_PULL_DOWN), | 697 | 224, UNIPHIER_PIN_PULL_DOWN), |
700 | UNIPHIER_PINCTRL_PIN(225, "PORT276", 0, | 698 | UNIPHIER_PINCTRL_PIN(225, "PORT276", 0, |
701 | 225, UNIPHIER_PIN_DRV_4_8, | 699 | 225, UNIPHIER_PIN_DRV_1BIT, |
702 | 225, UNIPHIER_PIN_PULL_DOWN), | 700 | 225, UNIPHIER_PIN_PULL_DOWN), |
703 | UNIPHIER_PINCTRL_PIN(226, "PORT277", 0, | 701 | UNIPHIER_PINCTRL_PIN(226, "PORT277", 0, |
704 | 226, UNIPHIER_PIN_DRV_4_8, | 702 | 226, UNIPHIER_PIN_DRV_1BIT, |
705 | 226, UNIPHIER_PIN_PULL_DOWN), | 703 | 226, UNIPHIER_PIN_PULL_DOWN), |
706 | UNIPHIER_PINCTRL_PIN(227, "PORT280", 0, | 704 | UNIPHIER_PINCTRL_PIN(227, "PORT280", 0, |
707 | 227, UNIPHIER_PIN_DRV_4_8, | 705 | 227, UNIPHIER_PIN_DRV_1BIT, |
708 | 227, UNIPHIER_PIN_PULL_DOWN), | 706 | 227, UNIPHIER_PIN_PULL_DOWN), |
709 | UNIPHIER_PINCTRL_PIN(228, "PORT281", 0, | 707 | UNIPHIER_PINCTRL_PIN(228, "PORT281", 0, |
710 | 228, UNIPHIER_PIN_DRV_4_8, | 708 | 228, UNIPHIER_PIN_DRV_1BIT, |
711 | 228, UNIPHIER_PIN_PULL_DOWN), | 709 | 228, UNIPHIER_PIN_PULL_DOWN), |
712 | UNIPHIER_PINCTRL_PIN(229, "PORT282", 0, | 710 | UNIPHIER_PINCTRL_PIN(229, "PORT282", 0, |
713 | 229, UNIPHIER_PIN_DRV_4_8, | 711 | 229, UNIPHIER_PIN_DRV_1BIT, |
714 | 229, UNIPHIER_PIN_PULL_DOWN), | 712 | 229, UNIPHIER_PIN_PULL_DOWN), |
715 | UNIPHIER_PINCTRL_PIN(230, "PORT283", 0, | 713 | UNIPHIER_PINCTRL_PIN(230, "PORT283", 0, |
716 | 230, UNIPHIER_PIN_DRV_4_8, | 714 | 230, UNIPHIER_PIN_DRV_1BIT, |
717 | 230, UNIPHIER_PIN_PULL_DOWN), | 715 | 230, UNIPHIER_PIN_PULL_DOWN), |
718 | UNIPHIER_PINCTRL_PIN(231, "PORT284", 0, | 716 | UNIPHIER_PINCTRL_PIN(231, "PORT284", 0, |
719 | 231, UNIPHIER_PIN_DRV_4_8, | 717 | 231, UNIPHIER_PIN_DRV_1BIT, |
720 | 231, UNIPHIER_PIN_PULL_DOWN), | 718 | 231, UNIPHIER_PIN_PULL_DOWN), |
721 | UNIPHIER_PINCTRL_PIN(232, "PORT285", 0, | 719 | UNIPHIER_PINCTRL_PIN(232, "PORT285", 0, |
722 | 232, UNIPHIER_PIN_DRV_4_8, | 720 | 232, UNIPHIER_PIN_DRV_1BIT, |
723 | 232, UNIPHIER_PIN_PULL_DOWN), | 721 | 232, UNIPHIER_PIN_PULL_DOWN), |
724 | UNIPHIER_PINCTRL_PIN(233, "T0HPD", 0, | 722 | UNIPHIER_PINCTRL_PIN(233, "T0HPD", 0, |
725 | 233, UNIPHIER_PIN_DRV_4_8, | 723 | 233, UNIPHIER_PIN_DRV_1BIT, |
726 | 233, UNIPHIER_PIN_PULL_DOWN), | 724 | 233, UNIPHIER_PIN_PULL_DOWN), |
727 | UNIPHIER_PINCTRL_PIN(234, "T1HPD", 0, | 725 | UNIPHIER_PINCTRL_PIN(234, "T1HPD", 0, |
728 | 234, UNIPHIER_PIN_DRV_4_8, | 726 | 234, UNIPHIER_PIN_DRV_1BIT, |
729 | 234, UNIPHIER_PIN_PULL_DOWN), | 727 | 234, UNIPHIER_PIN_PULL_DOWN), |
730 | }; | 728 | }; |
731 | 729 | ||
732 | static const unsigned emmc_pins[] = {36, 37, 38, 39, 40, 41, 42}; | 730 | static const unsigned emmc_pins[] = {36, 37, 38, 39, 40, 41, 42}; |
733 | static const unsigned emmc_muxvals[] = {9, 9, 9, 9, 9, 9, 9}; | 731 | static const int emmc_muxvals[] = {9, 9, 9, 9, 9, 9, 9}; |
734 | static const unsigned emmc_dat8_pins[] = {43, 44, 45, 46}; | 732 | static const unsigned emmc_dat8_pins[] = {43, 44, 45, 46}; |
735 | static const unsigned emmc_dat8_muxvals[] = {9, 9, 9, 9}; | 733 | static const int emmc_dat8_muxvals[] = {9, 9, 9, 9}; |
734 | static const unsigned ether_mii_pins[] = {143, 144, 145, 146, 147, 148, 149, | ||
735 | 150, 151, 152, 153, 154, 155, 156, | ||
736 | 158, 159, 199, 200, 201, 202}; | ||
737 | static const int ether_mii_muxvals[] = {8, 8, 8, 8, 10, 10, 10, 10, 10, 10, 10, | ||
738 | 10, 10, 10, 10, 10, 12, 12, 12, 12}; | ||
739 | static const unsigned ether_rgmii_pins[] = {143, 144, 145, 146, 147, 148, 149, | ||
740 | 150, 151, 152, 153, 154, 155, 156, | ||
741 | 157, 158}; | ||
742 | static const int ether_rgmii_muxvals[] = {8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, | ||
743 | 8, 8, 8, 8}; | ||
744 | static const unsigned ether_rmii_pins[] = {143, 144, 145, 146, 147, 148, 149, | ||
745 | 150, 152, 154, 155, 158}; | ||
746 | static const int ether_rmii_muxvals[] = {8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9}; | ||
736 | static const unsigned i2c0_pins[] = {109, 110}; | 747 | static const unsigned i2c0_pins[] = {109, 110}; |
737 | static const unsigned i2c0_muxvals[] = {8, 8}; | 748 | static const int i2c0_muxvals[] = {8, 8}; |
738 | static const unsigned i2c1_pins[] = {111, 112}; | 749 | static const unsigned i2c1_pins[] = {111, 112}; |
739 | static const unsigned i2c1_muxvals[] = {8, 8}; | 750 | static const int i2c1_muxvals[] = {8, 8}; |
740 | static const unsigned i2c2_pins[] = {171, 172}; | 751 | static const unsigned i2c2_pins[] = {171, 172}; |
741 | static const unsigned i2c2_muxvals[] = {8, 8}; | 752 | static const int i2c2_muxvals[] = {8, 8}; |
742 | static const unsigned i2c3_pins[] = {159, 160}; | 753 | static const unsigned i2c3_pins[] = {159, 160}; |
743 | static const unsigned i2c3_muxvals[] = {8, 8}; | 754 | static const int i2c3_muxvals[] = {8, 8}; |
744 | static const unsigned i2c5_pins[] = {183, 184}; | 755 | static const unsigned i2c5_pins[] = {183, 184}; |
745 | static const unsigned i2c5_muxvals[] = {11, 11}; | 756 | static const int i2c5_muxvals[] = {11, 11}; |
746 | static const unsigned i2c6_pins[] = {185, 186}; | 757 | static const unsigned i2c6_pins[] = {185, 186}; |
747 | static const unsigned i2c6_muxvals[] = {11, 11}; | 758 | static const int i2c6_muxvals[] = {11, 11}; |
748 | static const unsigned nand_pins[] = {30, 31, 32, 33, 34, 35, 36, 39, 40, 41, | 759 | static const unsigned nand_pins[] = {30, 31, 32, 33, 34, 35, 36, 39, 40, 41, |
749 | 42, 43, 44, 45, 46}; | 760 | 42, 43, 44, 45, 46}; |
750 | static const unsigned nand_muxvals[] = {8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, | 761 | static const int nand_muxvals[] = {8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}; |
751 | 8, 8}; | ||
752 | static const unsigned nand_cs1_pins[] = {37, 38}; | 762 | static const unsigned nand_cs1_pins[] = {37, 38}; |
753 | static const unsigned nand_cs1_muxvals[] = {8, 8}; | 763 | static const int nand_cs1_muxvals[] = {8, 8}; |
754 | static const unsigned sd_pins[] = {47, 48, 49, 50, 51, 52, 53, 54, 55}; | 764 | static const unsigned sd_pins[] = {47, 48, 49, 50, 51, 52, 53, 54, 55}; |
755 | static const unsigned sd_muxvals[] = {8, 8, 8, 8, 8, 8, 8, 8, 8}; | 765 | static const int sd_muxvals[] = {8, 8, 8, 8, 8, 8, 8, 8, 8}; |
766 | static const unsigned system_bus_pins[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, | ||
767 | 11, 12, 13}; | ||
768 | static const int system_bus_muxvals[] = {8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, | ||
769 | 8}; | ||
770 | static const unsigned system_bus_cs1_pins[] = {14}; | ||
771 | static const int system_bus_cs1_muxvals[] = {8}; | ||
756 | static const unsigned uart0_pins[] = {217, 218}; | 772 | static const unsigned uart0_pins[] = {217, 218}; |
757 | static const unsigned uart0_muxvals[] = {8, 8}; | 773 | static const int uart0_muxvals[] = {8, 8}; |
758 | static const unsigned uart0b_pins[] = {179, 180}; | 774 | static const unsigned uart0b_pins[] = {179, 180}; |
759 | static const unsigned uart0b_muxvals[] = {10, 10}; | 775 | static const int uart0b_muxvals[] = {10, 10}; |
760 | static const unsigned uart1_pins[] = {115, 116}; | 776 | static const unsigned uart1_pins[] = {115, 116}; |
761 | static const unsigned uart1_muxvals[] = {8, 8}; | 777 | static const int uart1_muxvals[] = {8, 8}; |
762 | static const unsigned uart2_pins[] = {113, 114}; | 778 | static const unsigned uart2_pins[] = {113, 114}; |
763 | static const unsigned uart2_muxvals[] = {8, 8}; | 779 | static const int uart2_muxvals[] = {8, 8}; |
764 | static const unsigned uart3_pins[] = {219, 220}; | 780 | static const unsigned uart3_pins[] = {219, 220}; |
765 | static const unsigned uart3_muxvals[] = {8, 8}; | 781 | static const int uart3_muxvals[] = {8, 8}; |
766 | static const unsigned uart3b_pins[] = {181, 182}; | 782 | static const unsigned uart3b_pins[] = {181, 182}; |
767 | static const unsigned uart3b_muxvals[] = {10, 10}; | 783 | static const int uart3b_muxvals[] = {10, 10}; |
768 | static const unsigned usb0_pins[] = {56, 57}; | 784 | static const unsigned usb0_pins[] = {56, 57}; |
769 | static const unsigned usb0_muxvals[] = {8, 8}; | 785 | static const int usb0_muxvals[] = {8, 8}; |
770 | static const unsigned usb1_pins[] = {58, 59}; | 786 | static const unsigned usb1_pins[] = {58, 59}; |
771 | static const unsigned usb1_muxvals[] = {8, 8}; | 787 | static const int usb1_muxvals[] = {8, 8}; |
772 | static const unsigned usb2_pins[] = {60, 61}; | 788 | static const unsigned usb2_pins[] = {60, 61}; |
773 | static const unsigned usb2_muxvals[] = {8, 8}; | 789 | static const int usb2_muxvals[] = {8, 8}; |
774 | static const unsigned usb3_pins[] = {62, 63}; | 790 | static const unsigned usb3_pins[] = {62, 63}; |
775 | static const unsigned usb3_muxvals[] = {8, 8}; | 791 | static const int usb3_muxvals[] = {8, 8}; |
776 | static const unsigned port_range0_pins[] = { | 792 | static const unsigned port_range0_pins[] = { |
777 | 127, 128, 129, 130, 131, 132, 133, 134, /* PORT0x */ | 793 | 127, 128, 129, 130, 131, 132, 133, 134, /* PORT0x */ |
778 | 135, 136, 137, 138, 139, 140, 141, 142, /* PORT1x */ | 794 | 135, 136, 137, 138, 139, 140, 141, 142, /* PORT1x */ |
@@ -786,7 +802,7 @@ static const unsigned port_range0_pins[] = { | |||
786 | 61, 62, 63, 64, 65, 66, 67, 68, /* PORT9x */ | 802 | 61, 62, 63, 64, 65, 66, 67, 68, /* PORT9x */ |
787 | 69, 70, 71, 76, 77, 78, 79, 80, /* PORT10x */ | 803 | 69, 70, 71, 76, 77, 78, 79, 80, /* PORT10x */ |
788 | }; | 804 | }; |
789 | static const unsigned port_range0_muxvals[] = { | 805 | static const int port_range0_muxvals[] = { |
790 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT0x */ | 806 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT0x */ |
791 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT1x */ | 807 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT1x */ |
792 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT2x */ | 808 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT2x */ |
@@ -818,7 +834,7 @@ static const unsigned port_range1_pins[] = { | |||
818 | 218, 219, 220, 221, 223, 224, 225, 226, /* PORT27x */ | 834 | 218, 219, 220, 221, 223, 224, 225, 226, /* PORT27x */ |
819 | 227, 228, 229, 230, 231, 232, 233, 234, /* PORT28x */ | 835 | 227, 228, 229, 230, 231, 232, 233, 234, /* PORT28x */ |
820 | }; | 836 | }; |
821 | static const unsigned port_range1_muxvals[] = { | 837 | static const int port_range1_muxvals[] = { |
822 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT12x */ | 838 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT12x */ |
823 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT13x */ | 839 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT13x */ |
824 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT14x */ | 840 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT14x */ |
@@ -842,15 +858,18 @@ static const unsigned xirq_pins[] = { | |||
842 | 126, 72, 73, 92, 177, 93, 94, 176, /* XIRQ8-15 */ | 858 | 126, 72, 73, 92, 177, 93, 94, 176, /* XIRQ8-15 */ |
843 | 74, 91, 27, 28, 29, 75, 20, 26, /* XIRQ16-23 */ | 859 | 74, 91, 27, 28, 29, 75, 20, 26, /* XIRQ16-23 */ |
844 | }; | 860 | }; |
845 | static const unsigned xirq_muxvals[] = { | 861 | static const int xirq_muxvals[] = { |
846 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ0-7 */ | 862 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ0-7 */ |
847 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ8-15 */ | 863 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ8-15 */ |
848 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ16-23 */ | 864 | 14, 14, 14, 14, 14, 14, 14, 14, /* XIRQ16-23 */ |
849 | }; | 865 | }; |
850 | 866 | ||
851 | static const struct uniphier_pinctrl_group proxstream2_groups[] = { | 867 | static const struct uniphier_pinctrl_group uniphier_pxs2_groups[] = { |
852 | UNIPHIER_PINCTRL_GROUP(emmc), | 868 | UNIPHIER_PINCTRL_GROUP(emmc), |
853 | UNIPHIER_PINCTRL_GROUP(emmc_dat8), | 869 | UNIPHIER_PINCTRL_GROUP(emmc_dat8), |
870 | UNIPHIER_PINCTRL_GROUP(ether_mii), | ||
871 | UNIPHIER_PINCTRL_GROUP(ether_rgmii), | ||
872 | UNIPHIER_PINCTRL_GROUP(ether_rmii), | ||
854 | UNIPHIER_PINCTRL_GROUP(i2c0), | 873 | UNIPHIER_PINCTRL_GROUP(i2c0), |
855 | UNIPHIER_PINCTRL_GROUP(i2c1), | 874 | UNIPHIER_PINCTRL_GROUP(i2c1), |
856 | UNIPHIER_PINCTRL_GROUP(i2c2), | 875 | UNIPHIER_PINCTRL_GROUP(i2c2), |
@@ -860,6 +879,8 @@ static const struct uniphier_pinctrl_group proxstream2_groups[] = { | |||
860 | UNIPHIER_PINCTRL_GROUP(nand), | 879 | UNIPHIER_PINCTRL_GROUP(nand), |
861 | UNIPHIER_PINCTRL_GROUP(nand_cs1), | 880 | UNIPHIER_PINCTRL_GROUP(nand_cs1), |
862 | UNIPHIER_PINCTRL_GROUP(sd), | 881 | UNIPHIER_PINCTRL_GROUP(sd), |
882 | UNIPHIER_PINCTRL_GROUP(system_bus), | ||
883 | UNIPHIER_PINCTRL_GROUP(system_bus_cs1), | ||
863 | UNIPHIER_PINCTRL_GROUP(uart0), | 884 | UNIPHIER_PINCTRL_GROUP(uart0), |
864 | UNIPHIER_PINCTRL_GROUP(uart0b), | 885 | UNIPHIER_PINCTRL_GROUP(uart0b), |
865 | UNIPHIER_PINCTRL_GROUP(uart1), | 886 | UNIPHIER_PINCTRL_GROUP(uart1), |
@@ -1124,6 +1145,9 @@ static const struct uniphier_pinctrl_group proxstream2_groups[] = { | |||
1124 | }; | 1145 | }; |
1125 | 1146 | ||
1126 | static const char * const emmc_groups[] = {"emmc", "emmc_dat8"}; | 1147 | static const char * const emmc_groups[] = {"emmc", "emmc_dat8"}; |
1148 | static const char * const ether_mii_groups[] = {"ether_mii"}; | ||
1149 | static const char * const ether_rgmii_groups[] = {"ether_rgmii"}; | ||
1150 | static const char * const ether_rmii_groups[] = {"ether_rmii"}; | ||
1127 | static const char * const i2c0_groups[] = {"i2c0"}; | 1151 | static const char * const i2c0_groups[] = {"i2c0"}; |
1128 | static const char * const i2c1_groups[] = {"i2c1"}; | 1152 | static const char * const i2c1_groups[] = {"i2c1"}; |
1129 | static const char * const i2c2_groups[] = {"i2c2"}; | 1153 | static const char * const i2c2_groups[] = {"i2c2"}; |
@@ -1132,6 +1156,8 @@ static const char * const i2c5_groups[] = {"i2c5"}; | |||
1132 | static const char * const i2c6_groups[] = {"i2c6"}; | 1156 | static const char * const i2c6_groups[] = {"i2c6"}; |
1133 | static const char * const nand_groups[] = {"nand", "nand_cs1"}; | 1157 | static const char * const nand_groups[] = {"nand", "nand_cs1"}; |
1134 | static const char * const sd_groups[] = {"sd"}; | 1158 | static const char * const sd_groups[] = {"sd"}; |
1159 | static const char * const system_bus_groups[] = {"system_bus", | ||
1160 | "system_bus_cs1"}; | ||
1135 | static const char * const uart0_groups[] = {"uart0", "uart0b"}; | 1161 | static const char * const uart0_groups[] = {"uart0", "uart0b"}; |
1136 | static const char * const uart1_groups[] = {"uart1"}; | 1162 | static const char * const uart1_groups[] = {"uart1"}; |
1137 | static const char * const uart2_groups[] = {"uart2"}; | 1163 | static const char * const uart2_groups[] = {"uart2"}; |
@@ -1208,8 +1234,11 @@ static const char * const xirq_groups[] = { | |||
1208 | "xirq20", "xirq21", "xirq22", "xirq23", | 1234 | "xirq20", "xirq21", "xirq22", "xirq23", |
1209 | }; | 1235 | }; |
1210 | 1236 | ||
1211 | static const struct uniphier_pinmux_function proxstream2_functions[] = { | 1237 | static const struct uniphier_pinmux_function uniphier_pxs2_functions[] = { |
1212 | UNIPHIER_PINMUX_FUNCTION(emmc), | 1238 | UNIPHIER_PINMUX_FUNCTION(emmc), |
1239 | UNIPHIER_PINMUX_FUNCTION(ether_mii), | ||
1240 | UNIPHIER_PINMUX_FUNCTION(ether_rgmii), | ||
1241 | UNIPHIER_PINMUX_FUNCTION(ether_rmii), | ||
1213 | UNIPHIER_PINMUX_FUNCTION(i2c0), | 1242 | UNIPHIER_PINMUX_FUNCTION(i2c0), |
1214 | UNIPHIER_PINMUX_FUNCTION(i2c1), | 1243 | UNIPHIER_PINMUX_FUNCTION(i2c1), |
1215 | UNIPHIER_PINMUX_FUNCTION(i2c2), | 1244 | UNIPHIER_PINMUX_FUNCTION(i2c2), |
@@ -1218,6 +1247,7 @@ static const struct uniphier_pinmux_function proxstream2_functions[] = { | |||
1218 | UNIPHIER_PINMUX_FUNCTION(i2c6), | 1247 | UNIPHIER_PINMUX_FUNCTION(i2c6), |
1219 | UNIPHIER_PINMUX_FUNCTION(nand), | 1248 | UNIPHIER_PINMUX_FUNCTION(nand), |
1220 | UNIPHIER_PINMUX_FUNCTION(sd), | 1249 | UNIPHIER_PINMUX_FUNCTION(sd), |
1250 | UNIPHIER_PINMUX_FUNCTION(system_bus), | ||
1221 | UNIPHIER_PINMUX_FUNCTION(uart0), | 1251 | UNIPHIER_PINMUX_FUNCTION(uart0), |
1222 | UNIPHIER_PINMUX_FUNCTION(uart1), | 1252 | UNIPHIER_PINMUX_FUNCTION(uart1), |
1223 | UNIPHIER_PINMUX_FUNCTION(uart2), | 1253 | UNIPHIER_PINMUX_FUNCTION(uart2), |
@@ -1230,43 +1260,36 @@ static const struct uniphier_pinmux_function proxstream2_functions[] = { | |||
1230 | UNIPHIER_PINMUX_FUNCTION(xirq), | 1260 | UNIPHIER_PINMUX_FUNCTION(xirq), |
1231 | }; | 1261 | }; |
1232 | 1262 | ||
1233 | static struct uniphier_pinctrl_socdata proxstream2_pindata = { | 1263 | static struct uniphier_pinctrl_socdata uniphier_pxs2_pindata = { |
1234 | .groups = proxstream2_groups, | 1264 | .pins = uniphier_pxs2_pins, |
1235 | .groups_count = ARRAY_SIZE(proxstream2_groups), | 1265 | .npins = ARRAY_SIZE(uniphier_pxs2_pins), |
1236 | .functions = proxstream2_functions, | 1266 | .groups = uniphier_pxs2_groups, |
1237 | .functions_count = ARRAY_SIZE(proxstream2_functions), | 1267 | .groups_count = ARRAY_SIZE(uniphier_pxs2_groups), |
1238 | .mux_bits = 8, | 1268 | .functions = uniphier_pxs2_functions, |
1239 | .reg_stride = 4, | 1269 | .functions_count = ARRAY_SIZE(uniphier_pxs2_functions), |
1240 | .load_pinctrl = false, | 1270 | .caps = 0, |
1241 | }; | ||
1242 | |||
1243 | static struct pinctrl_desc proxstream2_pinctrl_desc = { | ||
1244 | .name = DRIVER_NAME, | ||
1245 | .pins = proxstream2_pins, | ||
1246 | .npins = ARRAY_SIZE(proxstream2_pins), | ||
1247 | .owner = THIS_MODULE, | ||
1248 | }; | 1271 | }; |
1249 | 1272 | ||
1250 | static int proxstream2_pinctrl_probe(struct platform_device *pdev) | 1273 | static int uniphier_pxs2_pinctrl_probe(struct platform_device *pdev) |
1251 | { | 1274 | { |
1252 | return uniphier_pinctrl_probe(pdev, &proxstream2_pinctrl_desc, | 1275 | return uniphier_pinctrl_probe(pdev, &uniphier_pxs2_pindata); |
1253 | &proxstream2_pindata); | ||
1254 | } | 1276 | } |
1255 | 1277 | ||
1256 | static const struct of_device_id proxstream2_pinctrl_match[] = { | 1278 | static const struct of_device_id uniphier_pxs2_pinctrl_match[] = { |
1279 | { .compatible = "socionext,uniphier-pxs2-pinctrl" }, | ||
1257 | { .compatible = "socionext,proxstream2-pinctrl" }, | 1280 | { .compatible = "socionext,proxstream2-pinctrl" }, |
1258 | { /* sentinel */ } | 1281 | { /* sentinel */ } |
1259 | }; | 1282 | }; |
1260 | MODULE_DEVICE_TABLE(of, proxstream2_pinctrl_match); | 1283 | MODULE_DEVICE_TABLE(of, uniphier_pxs2_pinctrl_match); |
1261 | 1284 | ||
1262 | static struct platform_driver proxstream2_pinctrl_driver = { | 1285 | static struct platform_driver uniphier_pxs2_pinctrl_driver = { |
1263 | .probe = proxstream2_pinctrl_probe, | 1286 | .probe = uniphier_pxs2_pinctrl_probe, |
1264 | .driver = { | 1287 | .driver = { |
1265 | .name = DRIVER_NAME, | 1288 | .name = "uniphier-pxs2-pinctrl", |
1266 | .of_match_table = proxstream2_pinctrl_match, | 1289 | .of_match_table = uniphier_pxs2_pinctrl_match, |
1267 | }, | 1290 | }, |
1268 | }; | 1291 | }; |
1269 | module_platform_driver(proxstream2_pinctrl_driver); | 1292 | module_platform_driver(uniphier_pxs2_pinctrl_driver); |
1270 | 1293 | ||
1271 | MODULE_AUTHOR("Masahiro Yamada <yamada.masahiro@socionext.com>"); | 1294 | MODULE_AUTHOR("Masahiro Yamada <yamada.masahiro@socionext.com>"); |
1272 | MODULE_DESCRIPTION("UniPhier ProXstream2 pinctrl driver"); | 1295 | MODULE_DESCRIPTION("UniPhier ProXstream2 pinctrl driver"); |
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-sld8.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-sld8.c index ceb7a9899bde..da689d880f46 100644 --- a/drivers/pinctrl/uniphier/pinctrl-uniphier-sld8.c +++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-sld8.c | |||
@@ -19,453 +19,518 @@ | |||
19 | 19 | ||
20 | #include "pinctrl-uniphier.h" | 20 | #include "pinctrl-uniphier.h" |
21 | 21 | ||
22 | #define DRIVER_NAME "ph1-sld8-pinctrl" | 22 | static const struct pinctrl_pin_desc uniphier_sld8_pins[] = { |
23 | |||
24 | static const struct pinctrl_pin_desc ph1_sld8_pins[] = { | ||
25 | UNIPHIER_PINCTRL_PIN(0, "PCA00", 0, | 23 | UNIPHIER_PINCTRL_PIN(0, "PCA00", 0, |
26 | 15, UNIPHIER_PIN_DRV_4_8, | 24 | 15, UNIPHIER_PIN_DRV_1BIT, |
27 | 15, UNIPHIER_PIN_PULL_DOWN), | 25 | 15, UNIPHIER_PIN_PULL_DOWN), |
28 | UNIPHIER_PINCTRL_PIN(1, "PCA01", 0, | 26 | UNIPHIER_PINCTRL_PIN(1, "PCA01", 0, |
29 | 16, UNIPHIER_PIN_DRV_4_8, | 27 | 16, UNIPHIER_PIN_DRV_1BIT, |
30 | 16, UNIPHIER_PIN_PULL_DOWN), | 28 | 16, UNIPHIER_PIN_PULL_DOWN), |
31 | UNIPHIER_PINCTRL_PIN(2, "PCA02", 0, | 29 | UNIPHIER_PINCTRL_PIN(2, "PCA02", 0, |
32 | 17, UNIPHIER_PIN_DRV_4_8, | 30 | 17, UNIPHIER_PIN_DRV_1BIT, |
33 | 17, UNIPHIER_PIN_PULL_DOWN), | 31 | 17, UNIPHIER_PIN_PULL_DOWN), |
34 | UNIPHIER_PINCTRL_PIN(3, "PCA03", 0, | 32 | UNIPHIER_PINCTRL_PIN(3, "PCA03", 0, |
35 | 18, UNIPHIER_PIN_DRV_4_8, | 33 | 18, UNIPHIER_PIN_DRV_1BIT, |
36 | 18, UNIPHIER_PIN_PULL_DOWN), | 34 | 18, UNIPHIER_PIN_PULL_DOWN), |
37 | UNIPHIER_PINCTRL_PIN(4, "PCA04", 0, | 35 | UNIPHIER_PINCTRL_PIN(4, "PCA04", 0, |
38 | 19, UNIPHIER_PIN_DRV_4_8, | 36 | 19, UNIPHIER_PIN_DRV_1BIT, |
39 | 19, UNIPHIER_PIN_PULL_DOWN), | 37 | 19, UNIPHIER_PIN_PULL_DOWN), |
40 | UNIPHIER_PINCTRL_PIN(5, "PCA05", 0, | 38 | UNIPHIER_PINCTRL_PIN(5, "PCA05", 0, |
41 | 20, UNIPHIER_PIN_DRV_4_8, | 39 | 20, UNIPHIER_PIN_DRV_1BIT, |
42 | 20, UNIPHIER_PIN_PULL_DOWN), | 40 | 20, UNIPHIER_PIN_PULL_DOWN), |
43 | UNIPHIER_PINCTRL_PIN(6, "PCA06", 0, | 41 | UNIPHIER_PINCTRL_PIN(6, "PCA06", 0, |
44 | 21, UNIPHIER_PIN_DRV_4_8, | 42 | 21, UNIPHIER_PIN_DRV_1BIT, |
45 | 21, UNIPHIER_PIN_PULL_DOWN), | 43 | 21, UNIPHIER_PIN_PULL_DOWN), |
46 | UNIPHIER_PINCTRL_PIN(7, "PCA07", 0, | 44 | UNIPHIER_PINCTRL_PIN(7, "PCA07", 0, |
47 | 22, UNIPHIER_PIN_DRV_4_8, | 45 | 22, UNIPHIER_PIN_DRV_1BIT, |
48 | 22, UNIPHIER_PIN_PULL_DOWN), | 46 | 22, UNIPHIER_PIN_PULL_DOWN), |
49 | UNIPHIER_PINCTRL_PIN(8, "PCA08", 0, | 47 | UNIPHIER_PINCTRL_PIN(8, "PCA08", 0, |
50 | 23, UNIPHIER_PIN_DRV_4_8, | 48 | 23, UNIPHIER_PIN_DRV_1BIT, |
51 | 23, UNIPHIER_PIN_PULL_DOWN), | 49 | 23, UNIPHIER_PIN_PULL_DOWN), |
52 | UNIPHIER_PINCTRL_PIN(9, "PCA09", 0, | 50 | UNIPHIER_PINCTRL_PIN(9, "PCA09", 0, |
53 | 24, UNIPHIER_PIN_DRV_4_8, | 51 | 24, UNIPHIER_PIN_DRV_1BIT, |
54 | 24, UNIPHIER_PIN_PULL_DOWN), | 52 | 24, UNIPHIER_PIN_PULL_DOWN), |
55 | UNIPHIER_PINCTRL_PIN(10, "PCA10", 0, | 53 | UNIPHIER_PINCTRL_PIN(10, "PCA10", 0, |
56 | 25, UNIPHIER_PIN_DRV_4_8, | 54 | 25, UNIPHIER_PIN_DRV_1BIT, |
57 | 25, UNIPHIER_PIN_PULL_DOWN), | 55 | 25, UNIPHIER_PIN_PULL_DOWN), |
58 | UNIPHIER_PINCTRL_PIN(11, "PCA11", 0, | 56 | UNIPHIER_PINCTRL_PIN(11, "PCA11", 0, |
59 | 26, UNIPHIER_PIN_DRV_4_8, | 57 | 26, UNIPHIER_PIN_DRV_1BIT, |
60 | 26, UNIPHIER_PIN_PULL_DOWN), | 58 | 26, UNIPHIER_PIN_PULL_DOWN), |
61 | UNIPHIER_PINCTRL_PIN(12, "PCA12", 0, | 59 | UNIPHIER_PINCTRL_PIN(12, "PCA12", 0, |
62 | 27, UNIPHIER_PIN_DRV_4_8, | 60 | 27, UNIPHIER_PIN_DRV_1BIT, |
63 | 27, UNIPHIER_PIN_PULL_DOWN), | 61 | 27, UNIPHIER_PIN_PULL_DOWN), |
64 | UNIPHIER_PINCTRL_PIN(13, "PCA13", 0, | 62 | UNIPHIER_PINCTRL_PIN(13, "PCA13", 0, |
65 | 28, UNIPHIER_PIN_DRV_4_8, | 63 | 28, UNIPHIER_PIN_DRV_1BIT, |
66 | 28, UNIPHIER_PIN_PULL_DOWN), | 64 | 28, UNIPHIER_PIN_PULL_DOWN), |
67 | UNIPHIER_PINCTRL_PIN(14, "PCA14", 0, | 65 | UNIPHIER_PINCTRL_PIN(14, "PCA14", 0, |
68 | 29, UNIPHIER_PIN_DRV_4_8, | 66 | 29, UNIPHIER_PIN_DRV_1BIT, |
69 | 29, UNIPHIER_PIN_PULL_DOWN), | 67 | 29, UNIPHIER_PIN_PULL_DOWN), |
70 | UNIPHIER_PINCTRL_PIN(15, "XNFRE_GB", UNIPHIER_PIN_IECTRL_NONE, | 68 | UNIPHIER_PINCTRL_PIN(15, "XNFRE_GB", UNIPHIER_PIN_IECTRL_NONE, |
71 | 30, UNIPHIER_PIN_DRV_4_8, | 69 | 30, UNIPHIER_PIN_DRV_1BIT, |
72 | 30, UNIPHIER_PIN_PULL_UP), | 70 | 30, UNIPHIER_PIN_PULL_UP), |
73 | UNIPHIER_PINCTRL_PIN(16, "XNFWE_GB", UNIPHIER_PIN_IECTRL_NONE, | 71 | UNIPHIER_PINCTRL_PIN(16, "XNFWE_GB", UNIPHIER_PIN_IECTRL_NONE, |
74 | 31, UNIPHIER_PIN_DRV_4_8, | 72 | 31, UNIPHIER_PIN_DRV_1BIT, |
75 | 31, UNIPHIER_PIN_PULL_UP), | 73 | 31, UNIPHIER_PIN_PULL_UP), |
76 | UNIPHIER_PINCTRL_PIN(17, "NFALE_GB", UNIPHIER_PIN_IECTRL_NONE, | 74 | UNIPHIER_PINCTRL_PIN(17, "NFALE_GB", UNIPHIER_PIN_IECTRL_NONE, |
77 | 32, UNIPHIER_PIN_DRV_4_8, | 75 | 32, UNIPHIER_PIN_DRV_1BIT, |
78 | 32, UNIPHIER_PIN_PULL_DOWN), | 76 | 32, UNIPHIER_PIN_PULL_DOWN), |
79 | UNIPHIER_PINCTRL_PIN(18, "NFCLE_GB", UNIPHIER_PIN_IECTRL_NONE, | 77 | UNIPHIER_PINCTRL_PIN(18, "NFCLE_GB", UNIPHIER_PIN_IECTRL_NONE, |
80 | 33, UNIPHIER_PIN_DRV_4_8, | 78 | 33, UNIPHIER_PIN_DRV_1BIT, |
81 | 33, UNIPHIER_PIN_PULL_DOWN), | 79 | 33, UNIPHIER_PIN_PULL_DOWN), |
82 | UNIPHIER_PINCTRL_PIN(19, "XNFWP_GB", UNIPHIER_PIN_IECTRL_NONE, | 80 | UNIPHIER_PINCTRL_PIN(19, "XNFWP_GB", UNIPHIER_PIN_IECTRL_NONE, |
83 | 34, UNIPHIER_PIN_DRV_4_8, | 81 | 34, UNIPHIER_PIN_DRV_1BIT, |
84 | 34, UNIPHIER_PIN_PULL_DOWN), | 82 | 34, UNIPHIER_PIN_PULL_DOWN), |
85 | UNIPHIER_PINCTRL_PIN(20, "XNFCE0_GB", UNIPHIER_PIN_IECTRL_NONE, | 83 | UNIPHIER_PINCTRL_PIN(20, "XNFCE0_GB", UNIPHIER_PIN_IECTRL_NONE, |
86 | 35, UNIPHIER_PIN_DRV_4_8, | 84 | 35, UNIPHIER_PIN_DRV_1BIT, |
87 | 35, UNIPHIER_PIN_PULL_UP), | 85 | 35, UNIPHIER_PIN_PULL_UP), |
88 | UNIPHIER_PINCTRL_PIN(21, "NANDRYBY0_GB", UNIPHIER_PIN_IECTRL_NONE, | 86 | UNIPHIER_PINCTRL_PIN(21, "NANDRYBY0_GB", UNIPHIER_PIN_IECTRL_NONE, |
89 | 36, UNIPHIER_PIN_DRV_4_8, | 87 | 36, UNIPHIER_PIN_DRV_1BIT, |
90 | 36, UNIPHIER_PIN_PULL_UP), | 88 | 36, UNIPHIER_PIN_PULL_UP), |
91 | UNIPHIER_PINCTRL_PIN(22, "XNFCE1_GB", UNIPHIER_PIN_IECTRL_NONE, | 89 | UNIPHIER_PINCTRL_PIN(22, "XNFCE1_GB", UNIPHIER_PIN_IECTRL_NONE, |
92 | 0, UNIPHIER_PIN_DRV_8_12_16_20, | 90 | 0, UNIPHIER_PIN_DRV_2BIT, |
93 | 119, UNIPHIER_PIN_PULL_UP), | 91 | 119, UNIPHIER_PIN_PULL_UP), |
94 | UNIPHIER_PINCTRL_PIN(23, "NANDRYBY1_GB", UNIPHIER_PIN_IECTRL_NONE, | 92 | UNIPHIER_PINCTRL_PIN(23, "NANDRYBY1_GB", UNIPHIER_PIN_IECTRL_NONE, |
95 | 4, UNIPHIER_PIN_DRV_8_12_16_20, | 93 | 1, UNIPHIER_PIN_DRV_2BIT, |
96 | 120, UNIPHIER_PIN_PULL_UP), | 94 | 120, UNIPHIER_PIN_PULL_UP), |
97 | UNIPHIER_PINCTRL_PIN(24, "NFD0_GB", UNIPHIER_PIN_IECTRL_NONE, | 95 | UNIPHIER_PINCTRL_PIN(24, "NFD0_GB", UNIPHIER_PIN_IECTRL_NONE, |
98 | 8, UNIPHIER_PIN_DRV_8_12_16_20, | 96 | 2, UNIPHIER_PIN_DRV_2BIT, |
99 | 121, UNIPHIER_PIN_PULL_UP), | 97 | 121, UNIPHIER_PIN_PULL_UP), |
100 | UNIPHIER_PINCTRL_PIN(25, "NFD1_GB", UNIPHIER_PIN_IECTRL_NONE, | 98 | UNIPHIER_PINCTRL_PIN(25, "NFD1_GB", UNIPHIER_PIN_IECTRL_NONE, |
101 | 12, UNIPHIER_PIN_DRV_8_12_16_20, | 99 | 3, UNIPHIER_PIN_DRV_2BIT, |
102 | 122, UNIPHIER_PIN_PULL_UP), | 100 | 122, UNIPHIER_PIN_PULL_UP), |
103 | UNIPHIER_PINCTRL_PIN(26, "NFD2_GB", UNIPHIER_PIN_IECTRL_NONE, | 101 | UNIPHIER_PINCTRL_PIN(26, "NFD2_GB", UNIPHIER_PIN_IECTRL_NONE, |
104 | 16, UNIPHIER_PIN_DRV_8_12_16_20, | 102 | 4, UNIPHIER_PIN_DRV_2BIT, |
105 | 123, UNIPHIER_PIN_PULL_UP), | 103 | 123, UNIPHIER_PIN_PULL_UP), |
106 | UNIPHIER_PINCTRL_PIN(27, "NFD3_GB", UNIPHIER_PIN_IECTRL_NONE, | 104 | UNIPHIER_PINCTRL_PIN(27, "NFD3_GB", UNIPHIER_PIN_IECTRL_NONE, |
107 | 20, UNIPHIER_PIN_DRV_8_12_16_20, | 105 | 5, UNIPHIER_PIN_DRV_2BIT, |
108 | 124, UNIPHIER_PIN_PULL_UP), | 106 | 124, UNIPHIER_PIN_PULL_UP), |
109 | UNIPHIER_PINCTRL_PIN(28, "NFD4_GB", UNIPHIER_PIN_IECTRL_NONE, | 107 | UNIPHIER_PINCTRL_PIN(28, "NFD4_GB", UNIPHIER_PIN_IECTRL_NONE, |
110 | 24, UNIPHIER_PIN_DRV_8_12_16_20, | 108 | 6, UNIPHIER_PIN_DRV_2BIT, |
111 | 125, UNIPHIER_PIN_PULL_UP), | 109 | 125, UNIPHIER_PIN_PULL_UP), |
112 | UNIPHIER_PINCTRL_PIN(29, "NFD5_GB", UNIPHIER_PIN_IECTRL_NONE, | 110 | UNIPHIER_PINCTRL_PIN(29, "NFD5_GB", UNIPHIER_PIN_IECTRL_NONE, |
113 | 28, UNIPHIER_PIN_DRV_8_12_16_20, | 111 | 7, UNIPHIER_PIN_DRV_2BIT, |
114 | 126, UNIPHIER_PIN_PULL_UP), | 112 | 126, UNIPHIER_PIN_PULL_UP), |
115 | UNIPHIER_PINCTRL_PIN(30, "NFD6_GB", UNIPHIER_PIN_IECTRL_NONE, | 113 | UNIPHIER_PINCTRL_PIN(30, "NFD6_GB", UNIPHIER_PIN_IECTRL_NONE, |
116 | 32, UNIPHIER_PIN_DRV_8_12_16_20, | 114 | 8, UNIPHIER_PIN_DRV_2BIT, |
117 | 127, UNIPHIER_PIN_PULL_UP), | 115 | 127, UNIPHIER_PIN_PULL_UP), |
118 | UNIPHIER_PINCTRL_PIN(31, "NFD7_GB", UNIPHIER_PIN_IECTRL_NONE, | 116 | UNIPHIER_PINCTRL_PIN(31, "NFD7_GB", UNIPHIER_PIN_IECTRL_NONE, |
119 | 36, UNIPHIER_PIN_DRV_8_12_16_20, | 117 | 9, UNIPHIER_PIN_DRV_2BIT, |
120 | 128, UNIPHIER_PIN_PULL_UP), | 118 | 128, UNIPHIER_PIN_PULL_UP), |
121 | UNIPHIER_PINCTRL_PIN(32, "SDCLK", 8, | 119 | UNIPHIER_PINCTRL_PIN(32, "SDCLK", 8, |
122 | 40, UNIPHIER_PIN_DRV_8_12_16_20, | 120 | 10, UNIPHIER_PIN_DRV_2BIT, |
123 | -1, UNIPHIER_PIN_PULL_NONE), | 121 | -1, UNIPHIER_PIN_PULL_NONE), |
124 | UNIPHIER_PINCTRL_PIN(33, "SDCMD", 8, | 122 | UNIPHIER_PINCTRL_PIN(33, "SDCMD", 8, |
125 | 44, UNIPHIER_PIN_DRV_8_12_16_20, | 123 | 11, UNIPHIER_PIN_DRV_2BIT, |
126 | -1, UNIPHIER_PIN_PULL_NONE), | 124 | -1, UNIPHIER_PIN_PULL_NONE), |
127 | UNIPHIER_PINCTRL_PIN(34, "SDDAT0", 8, | 125 | UNIPHIER_PINCTRL_PIN(34, "SDDAT0", 8, |
128 | 48, UNIPHIER_PIN_DRV_8_12_16_20, | 126 | 12, UNIPHIER_PIN_DRV_2BIT, |
129 | -1, UNIPHIER_PIN_PULL_NONE), | 127 | -1, UNIPHIER_PIN_PULL_NONE), |
130 | UNIPHIER_PINCTRL_PIN(35, "SDDAT1", 8, | 128 | UNIPHIER_PINCTRL_PIN(35, "SDDAT1", 8, |
131 | 52, UNIPHIER_PIN_DRV_8_12_16_20, | 129 | 13, UNIPHIER_PIN_DRV_2BIT, |
132 | -1, UNIPHIER_PIN_PULL_NONE), | 130 | -1, UNIPHIER_PIN_PULL_NONE), |
133 | UNIPHIER_PINCTRL_PIN(36, "SDDAT2", 8, | 131 | UNIPHIER_PINCTRL_PIN(36, "SDDAT2", 8, |
134 | 56, UNIPHIER_PIN_DRV_8_12_16_20, | 132 | 14, UNIPHIER_PIN_DRV_2BIT, |
135 | -1, UNIPHIER_PIN_PULL_NONE), | 133 | -1, UNIPHIER_PIN_PULL_NONE), |
136 | UNIPHIER_PINCTRL_PIN(37, "SDDAT3", 8, | 134 | UNIPHIER_PINCTRL_PIN(37, "SDDAT3", 8, |
137 | 60, UNIPHIER_PIN_DRV_8_12_16_20, | 135 | 15, UNIPHIER_PIN_DRV_2BIT, |
138 | -1, UNIPHIER_PIN_PULL_NONE), | 136 | -1, UNIPHIER_PIN_PULL_NONE), |
139 | UNIPHIER_PINCTRL_PIN(38, "SDCD", 8, | 137 | UNIPHIER_PINCTRL_PIN(38, "SDCD", 8, |
140 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 138 | -1, UNIPHIER_PIN_DRV_FIXED4, |
141 | 129, UNIPHIER_PIN_PULL_DOWN), | 139 | 129, UNIPHIER_PIN_PULL_DOWN), |
142 | UNIPHIER_PINCTRL_PIN(39, "SDWP", 8, | 140 | UNIPHIER_PINCTRL_PIN(39, "SDWP", 8, |
143 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 141 | -1, UNIPHIER_PIN_DRV_FIXED4, |
144 | 130, UNIPHIER_PIN_PULL_DOWN), | 142 | 130, UNIPHIER_PIN_PULL_DOWN), |
145 | UNIPHIER_PINCTRL_PIN(40, "SDVOLC", 9, | 143 | UNIPHIER_PINCTRL_PIN(40, "SDVOLC", 9, |
146 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 144 | -1, UNIPHIER_PIN_DRV_FIXED4, |
147 | 131, UNIPHIER_PIN_PULL_DOWN), | 145 | 131, UNIPHIER_PIN_PULL_DOWN), |
148 | UNIPHIER_PINCTRL_PIN(41, "USB0VBUS", 0, | 146 | UNIPHIER_PINCTRL_PIN(41, "USB0VBUS", 0, |
149 | 37, UNIPHIER_PIN_DRV_4_8, | 147 | 37, UNIPHIER_PIN_DRV_1BIT, |
150 | 37, UNIPHIER_PIN_PULL_DOWN), | 148 | 37, UNIPHIER_PIN_PULL_DOWN), |
151 | UNIPHIER_PINCTRL_PIN(42, "USB0OD", 0, | 149 | UNIPHIER_PINCTRL_PIN(42, "USB0OD", 0, |
152 | 38, UNIPHIER_PIN_DRV_4_8, | 150 | 38, UNIPHIER_PIN_DRV_1BIT, |
153 | 38, UNIPHIER_PIN_PULL_DOWN), | 151 | 38, UNIPHIER_PIN_PULL_DOWN), |
154 | UNIPHIER_PINCTRL_PIN(43, "USB1VBUS", 0, | 152 | UNIPHIER_PINCTRL_PIN(43, "USB1VBUS", 0, |
155 | 39, UNIPHIER_PIN_DRV_4_8, | 153 | 39, UNIPHIER_PIN_DRV_1BIT, |
156 | 39, UNIPHIER_PIN_PULL_DOWN), | 154 | 39, UNIPHIER_PIN_PULL_DOWN), |
157 | UNIPHIER_PINCTRL_PIN(44, "USB1OD", 0, | 155 | UNIPHIER_PINCTRL_PIN(44, "USB1OD", 0, |
158 | 40, UNIPHIER_PIN_DRV_4_8, | 156 | 40, UNIPHIER_PIN_DRV_1BIT, |
159 | 40, UNIPHIER_PIN_PULL_DOWN), | 157 | 40, UNIPHIER_PIN_PULL_DOWN), |
160 | UNIPHIER_PINCTRL_PIN(45, "PCRESET", 0, | 158 | UNIPHIER_PINCTRL_PIN(45, "PCRESET", 0, |
161 | 41, UNIPHIER_PIN_DRV_4_8, | 159 | 41, UNIPHIER_PIN_DRV_1BIT, |
162 | 41, UNIPHIER_PIN_PULL_DOWN), | 160 | 41, UNIPHIER_PIN_PULL_DOWN), |
163 | UNIPHIER_PINCTRL_PIN(46, "PCREG", 0, | 161 | UNIPHIER_PINCTRL_PIN(46, "PCREG", 0, |
164 | 42, UNIPHIER_PIN_DRV_4_8, | 162 | 42, UNIPHIER_PIN_DRV_1BIT, |
165 | 42, UNIPHIER_PIN_PULL_DOWN), | 163 | 42, UNIPHIER_PIN_PULL_DOWN), |
166 | UNIPHIER_PINCTRL_PIN(47, "PCCE2", 0, | 164 | UNIPHIER_PINCTRL_PIN(47, "PCCE2", 0, |
167 | 43, UNIPHIER_PIN_DRV_4_8, | 165 | 43, UNIPHIER_PIN_DRV_1BIT, |
168 | 43, UNIPHIER_PIN_PULL_DOWN), | 166 | 43, UNIPHIER_PIN_PULL_DOWN), |
169 | UNIPHIER_PINCTRL_PIN(48, "PCVS1", 0, | 167 | UNIPHIER_PINCTRL_PIN(48, "PCVS1", 0, |
170 | 44, UNIPHIER_PIN_DRV_4_8, | 168 | 44, UNIPHIER_PIN_DRV_1BIT, |
171 | 44, UNIPHIER_PIN_PULL_DOWN), | 169 | 44, UNIPHIER_PIN_PULL_DOWN), |
172 | UNIPHIER_PINCTRL_PIN(49, "PCCD2", 0, | 170 | UNIPHIER_PINCTRL_PIN(49, "PCCD2", 0, |
173 | 45, UNIPHIER_PIN_DRV_4_8, | 171 | 45, UNIPHIER_PIN_DRV_1BIT, |
174 | 45, UNIPHIER_PIN_PULL_DOWN), | 172 | 45, UNIPHIER_PIN_PULL_DOWN), |
175 | UNIPHIER_PINCTRL_PIN(50, "PCCD1", 0, | 173 | UNIPHIER_PINCTRL_PIN(50, "PCCD1", 0, |
176 | 46, UNIPHIER_PIN_DRV_4_8, | 174 | 46, UNIPHIER_PIN_DRV_1BIT, |
177 | 46, UNIPHIER_PIN_PULL_DOWN), | 175 | 46, UNIPHIER_PIN_PULL_DOWN), |
178 | UNIPHIER_PINCTRL_PIN(51, "PCREADY", 0, | 176 | UNIPHIER_PINCTRL_PIN(51, "PCREADY", 0, |
179 | 47, UNIPHIER_PIN_DRV_4_8, | 177 | 47, UNIPHIER_PIN_DRV_1BIT, |
180 | 47, UNIPHIER_PIN_PULL_DOWN), | 178 | 47, UNIPHIER_PIN_PULL_DOWN), |
181 | UNIPHIER_PINCTRL_PIN(52, "PCDOE", 0, | 179 | UNIPHIER_PINCTRL_PIN(52, "PCDOE", 0, |
182 | 48, UNIPHIER_PIN_DRV_4_8, | 180 | 48, UNIPHIER_PIN_DRV_1BIT, |
183 | 48, UNIPHIER_PIN_PULL_DOWN), | 181 | 48, UNIPHIER_PIN_PULL_DOWN), |
184 | UNIPHIER_PINCTRL_PIN(53, "PCCE1", 0, | 182 | UNIPHIER_PINCTRL_PIN(53, "PCCE1", 0, |
185 | 49, UNIPHIER_PIN_DRV_4_8, | 183 | 49, UNIPHIER_PIN_DRV_1BIT, |
186 | 49, UNIPHIER_PIN_PULL_DOWN), | 184 | 49, UNIPHIER_PIN_PULL_DOWN), |
187 | UNIPHIER_PINCTRL_PIN(54, "PCWE", 0, | 185 | UNIPHIER_PINCTRL_PIN(54, "PCWE", 0, |
188 | 50, UNIPHIER_PIN_DRV_4_8, | 186 | 50, UNIPHIER_PIN_DRV_1BIT, |
189 | 50, UNIPHIER_PIN_PULL_DOWN), | 187 | 50, UNIPHIER_PIN_PULL_DOWN), |
190 | UNIPHIER_PINCTRL_PIN(55, "PCOE", 0, | 188 | UNIPHIER_PINCTRL_PIN(55, "PCOE", 0, |
191 | 51, UNIPHIER_PIN_DRV_4_8, | 189 | 51, UNIPHIER_PIN_DRV_1BIT, |
192 | 51, UNIPHIER_PIN_PULL_DOWN), | 190 | 51, UNIPHIER_PIN_PULL_DOWN), |
193 | UNIPHIER_PINCTRL_PIN(56, "PCWAIT", 0, | 191 | UNIPHIER_PINCTRL_PIN(56, "PCWAIT", 0, |
194 | 52, UNIPHIER_PIN_DRV_4_8, | 192 | 52, UNIPHIER_PIN_DRV_1BIT, |
195 | 52, UNIPHIER_PIN_PULL_DOWN), | 193 | 52, UNIPHIER_PIN_PULL_DOWN), |
196 | UNIPHIER_PINCTRL_PIN(57, "PCIOWR", 0, | 194 | UNIPHIER_PINCTRL_PIN(57, "PCIOWR", 0, |
197 | 53, UNIPHIER_PIN_DRV_4_8, | 195 | 53, UNIPHIER_PIN_DRV_1BIT, |
198 | 53, UNIPHIER_PIN_PULL_DOWN), | 196 | 53, UNIPHIER_PIN_PULL_DOWN), |
199 | UNIPHIER_PINCTRL_PIN(58, "PCIORD", 0, | 197 | UNIPHIER_PINCTRL_PIN(58, "PCIORD", 0, |
200 | 54, UNIPHIER_PIN_DRV_4_8, | 198 | 54, UNIPHIER_PIN_DRV_1BIT, |
201 | 54, UNIPHIER_PIN_PULL_DOWN), | 199 | 54, UNIPHIER_PIN_PULL_DOWN), |
202 | UNIPHIER_PINCTRL_PIN(59, "HS0DIN0", 0, | 200 | UNIPHIER_PINCTRL_PIN(59, "HS0DIN0", 0, |
203 | 55, UNIPHIER_PIN_DRV_4_8, | 201 | 55, UNIPHIER_PIN_DRV_1BIT, |
204 | 55, UNIPHIER_PIN_PULL_DOWN), | 202 | 55, UNIPHIER_PIN_PULL_DOWN), |
205 | UNIPHIER_PINCTRL_PIN(60, "HS0DIN1", 0, | 203 | UNIPHIER_PINCTRL_PIN(60, "HS0DIN1", 0, |
206 | 56, UNIPHIER_PIN_DRV_4_8, | 204 | 56, UNIPHIER_PIN_DRV_1BIT, |
207 | 56, UNIPHIER_PIN_PULL_DOWN), | 205 | 56, UNIPHIER_PIN_PULL_DOWN), |
208 | UNIPHIER_PINCTRL_PIN(61, "HS0DIN2", 0, | 206 | UNIPHIER_PINCTRL_PIN(61, "HS0DIN2", 0, |
209 | 57, UNIPHIER_PIN_DRV_4_8, | 207 | 57, UNIPHIER_PIN_DRV_1BIT, |
210 | 57, UNIPHIER_PIN_PULL_DOWN), | 208 | 57, UNIPHIER_PIN_PULL_DOWN), |
211 | UNIPHIER_PINCTRL_PIN(62, "HS0DIN3", 0, | 209 | UNIPHIER_PINCTRL_PIN(62, "HS0DIN3", 0, |
212 | 58, UNIPHIER_PIN_DRV_4_8, | 210 | 58, UNIPHIER_PIN_DRV_1BIT, |
213 | 58, UNIPHIER_PIN_PULL_DOWN), | 211 | 58, UNIPHIER_PIN_PULL_DOWN), |
214 | UNIPHIER_PINCTRL_PIN(63, "HS0DIN4", 0, | 212 | UNIPHIER_PINCTRL_PIN(63, "HS0DIN4", 0, |
215 | 59, UNIPHIER_PIN_DRV_4_8, | 213 | 59, UNIPHIER_PIN_DRV_1BIT, |
216 | 59, UNIPHIER_PIN_PULL_DOWN), | 214 | 59, UNIPHIER_PIN_PULL_DOWN), |
217 | UNIPHIER_PINCTRL_PIN(64, "HS0DIN5", 0, | 215 | UNIPHIER_PINCTRL_PIN(64, "HS0DIN5", 0, |
218 | 60, UNIPHIER_PIN_DRV_4_8, | 216 | 60, UNIPHIER_PIN_DRV_1BIT, |
219 | 60, UNIPHIER_PIN_PULL_DOWN), | 217 | 60, UNIPHIER_PIN_PULL_DOWN), |
220 | UNIPHIER_PINCTRL_PIN(65, "HS0DIN6", 0, | 218 | UNIPHIER_PINCTRL_PIN(65, "HS0DIN6", 0, |
221 | 61, UNIPHIER_PIN_DRV_4_8, | 219 | 61, UNIPHIER_PIN_DRV_1BIT, |
222 | 61, UNIPHIER_PIN_PULL_DOWN), | 220 | 61, UNIPHIER_PIN_PULL_DOWN), |
223 | UNIPHIER_PINCTRL_PIN(66, "HS0DIN7", 0, | 221 | UNIPHIER_PINCTRL_PIN(66, "HS0DIN7", 0, |
224 | 62, UNIPHIER_PIN_DRV_4_8, | 222 | 62, UNIPHIER_PIN_DRV_1BIT, |
225 | 62, UNIPHIER_PIN_PULL_DOWN), | 223 | 62, UNIPHIER_PIN_PULL_DOWN), |
226 | UNIPHIER_PINCTRL_PIN(67, "HS0BCLKIN", 0, | 224 | UNIPHIER_PINCTRL_PIN(67, "HS0BCLKIN", 0, |
227 | 63, UNIPHIER_PIN_DRV_4_8, | 225 | 63, UNIPHIER_PIN_DRV_1BIT, |
228 | 63, UNIPHIER_PIN_PULL_DOWN), | 226 | 63, UNIPHIER_PIN_PULL_DOWN), |
229 | UNIPHIER_PINCTRL_PIN(68, "HS0VALIN", 0, | 227 | UNIPHIER_PINCTRL_PIN(68, "HS0VALIN", 0, |
230 | 64, UNIPHIER_PIN_DRV_4_8, | 228 | 64, UNIPHIER_PIN_DRV_1BIT, |
231 | 64, UNIPHIER_PIN_PULL_DOWN), | 229 | 64, UNIPHIER_PIN_PULL_DOWN), |
232 | UNIPHIER_PINCTRL_PIN(69, "HS0SYNCIN", 0, | 230 | UNIPHIER_PINCTRL_PIN(69, "HS0SYNCIN", 0, |
233 | 65, UNIPHIER_PIN_DRV_4_8, | 231 | 65, UNIPHIER_PIN_DRV_1BIT, |
234 | 65, UNIPHIER_PIN_PULL_DOWN), | 232 | 65, UNIPHIER_PIN_PULL_DOWN), |
235 | UNIPHIER_PINCTRL_PIN(70, "HSDOUT0", 0, | 233 | UNIPHIER_PINCTRL_PIN(70, "HSDOUT0", 0, |
236 | 66, UNIPHIER_PIN_DRV_4_8, | 234 | 66, UNIPHIER_PIN_DRV_1BIT, |
237 | 66, UNIPHIER_PIN_PULL_DOWN), | 235 | 66, UNIPHIER_PIN_PULL_DOWN), |
238 | UNIPHIER_PINCTRL_PIN(71, "HSDOUT1", 0, | 236 | UNIPHIER_PINCTRL_PIN(71, "HSDOUT1", 0, |
239 | 67, UNIPHIER_PIN_DRV_4_8, | 237 | 67, UNIPHIER_PIN_DRV_1BIT, |
240 | 67, UNIPHIER_PIN_PULL_DOWN), | 238 | 67, UNIPHIER_PIN_PULL_DOWN), |
241 | UNIPHIER_PINCTRL_PIN(72, "HSDOUT2", 0, | 239 | UNIPHIER_PINCTRL_PIN(72, "HSDOUT2", 0, |
242 | 68, UNIPHIER_PIN_DRV_4_8, | 240 | 68, UNIPHIER_PIN_DRV_1BIT, |
243 | 68, UNIPHIER_PIN_PULL_DOWN), | 241 | 68, UNIPHIER_PIN_PULL_DOWN), |
244 | UNIPHIER_PINCTRL_PIN(73, "HSDOUT3", 0, | 242 | UNIPHIER_PINCTRL_PIN(73, "HSDOUT3", 0, |
245 | 69, UNIPHIER_PIN_DRV_4_8, | 243 | 69, UNIPHIER_PIN_DRV_1BIT, |
246 | 69, UNIPHIER_PIN_PULL_DOWN), | 244 | 69, UNIPHIER_PIN_PULL_DOWN), |
247 | UNIPHIER_PINCTRL_PIN(74, "HSDOUT4", 0, | 245 | UNIPHIER_PINCTRL_PIN(74, "HSDOUT4", 0, |
248 | 70, UNIPHIER_PIN_DRV_4_8, | 246 | 70, UNIPHIER_PIN_DRV_1BIT, |
249 | 70, UNIPHIER_PIN_PULL_DOWN), | 247 | 70, UNIPHIER_PIN_PULL_DOWN), |
250 | UNIPHIER_PINCTRL_PIN(75, "HSDOUT5", 0, | 248 | UNIPHIER_PINCTRL_PIN(75, "HSDOUT5", 0, |
251 | 71, UNIPHIER_PIN_DRV_4_8, | 249 | 71, UNIPHIER_PIN_DRV_1BIT, |
252 | 71, UNIPHIER_PIN_PULL_DOWN), | 250 | 71, UNIPHIER_PIN_PULL_DOWN), |
253 | UNIPHIER_PINCTRL_PIN(76, "HSDOUT6", 0, | 251 | UNIPHIER_PINCTRL_PIN(76, "HSDOUT6", 0, |
254 | 72, UNIPHIER_PIN_DRV_4_8, | 252 | 72, UNIPHIER_PIN_DRV_1BIT, |
255 | 72, UNIPHIER_PIN_PULL_DOWN), | 253 | 72, UNIPHIER_PIN_PULL_DOWN), |
256 | UNIPHIER_PINCTRL_PIN(77, "HSDOUT7", 0, | 254 | UNIPHIER_PINCTRL_PIN(77, "HSDOUT7", 0, |
257 | 73, UNIPHIER_PIN_DRV_4_8, | 255 | 73, UNIPHIER_PIN_DRV_1BIT, |
258 | 73, UNIPHIER_PIN_PULL_DOWN), | 256 | 73, UNIPHIER_PIN_PULL_DOWN), |
259 | UNIPHIER_PINCTRL_PIN(78, "HSBCLKOUT", 0, | 257 | UNIPHIER_PINCTRL_PIN(78, "HSBCLKOUT", 0, |
260 | 74, UNIPHIER_PIN_DRV_4_8, | 258 | 74, UNIPHIER_PIN_DRV_1BIT, |
261 | 74, UNIPHIER_PIN_PULL_DOWN), | 259 | 74, UNIPHIER_PIN_PULL_DOWN), |
262 | UNIPHIER_PINCTRL_PIN(79, "HSVALOUT", 0, | 260 | UNIPHIER_PINCTRL_PIN(79, "HSVALOUT", 0, |
263 | 75, UNIPHIER_PIN_DRV_4_8, | 261 | 75, UNIPHIER_PIN_DRV_1BIT, |
264 | 75, UNIPHIER_PIN_PULL_DOWN), | 262 | 75, UNIPHIER_PIN_PULL_DOWN), |
265 | UNIPHIER_PINCTRL_PIN(80, "HSSYNCOUT", 0, | 263 | UNIPHIER_PINCTRL_PIN(80, "HSSYNCOUT", 0, |
266 | 76, UNIPHIER_PIN_DRV_4_8, | 264 | 76, UNIPHIER_PIN_DRV_1BIT, |
267 | 76, UNIPHIER_PIN_PULL_DOWN), | 265 | 76, UNIPHIER_PIN_PULL_DOWN), |
268 | UNIPHIER_PINCTRL_PIN(81, "HS1DIN0", 0, | 266 | UNIPHIER_PINCTRL_PIN(81, "HS1DIN0", 0, |
269 | 77, UNIPHIER_PIN_DRV_4_8, | 267 | 77, UNIPHIER_PIN_DRV_1BIT, |
270 | 77, UNIPHIER_PIN_PULL_DOWN), | 268 | 77, UNIPHIER_PIN_PULL_DOWN), |
271 | UNIPHIER_PINCTRL_PIN(82, "HS1DIN1", 0, | 269 | UNIPHIER_PINCTRL_PIN(82, "HS1DIN1", 0, |
272 | 78, UNIPHIER_PIN_DRV_4_8, | 270 | 78, UNIPHIER_PIN_DRV_1BIT, |
273 | 78, UNIPHIER_PIN_PULL_DOWN), | 271 | 78, UNIPHIER_PIN_PULL_DOWN), |
274 | UNIPHIER_PINCTRL_PIN(83, "HS1DIN2", 0, | 272 | UNIPHIER_PINCTRL_PIN(83, "HS1DIN2", 0, |
275 | 79, UNIPHIER_PIN_DRV_4_8, | 273 | 79, UNIPHIER_PIN_DRV_1BIT, |
276 | 79, UNIPHIER_PIN_PULL_DOWN), | 274 | 79, UNIPHIER_PIN_PULL_DOWN), |
277 | UNIPHIER_PINCTRL_PIN(84, "HS1DIN3", 0, | 275 | UNIPHIER_PINCTRL_PIN(84, "HS1DIN3", 0, |
278 | 80, UNIPHIER_PIN_DRV_4_8, | 276 | 80, UNIPHIER_PIN_DRV_1BIT, |
279 | 80, UNIPHIER_PIN_PULL_DOWN), | 277 | 80, UNIPHIER_PIN_PULL_DOWN), |
280 | UNIPHIER_PINCTRL_PIN(85, "HS1DIN4", 0, | 278 | UNIPHIER_PINCTRL_PIN(85, "HS1DIN4", 0, |
281 | 81, UNIPHIER_PIN_DRV_4_8, | 279 | 81, UNIPHIER_PIN_DRV_1BIT, |
282 | 81, UNIPHIER_PIN_PULL_DOWN), | 280 | 81, UNIPHIER_PIN_PULL_DOWN), |
283 | UNIPHIER_PINCTRL_PIN(86, "HS1DIN5", 0, | 281 | UNIPHIER_PINCTRL_PIN(86, "HS1DIN5", 0, |
284 | 82, UNIPHIER_PIN_DRV_4_8, | 282 | 82, UNIPHIER_PIN_DRV_1BIT, |
285 | 82, UNIPHIER_PIN_PULL_DOWN), | 283 | 82, UNIPHIER_PIN_PULL_DOWN), |
286 | UNIPHIER_PINCTRL_PIN(87, "HS1DIN6", 0, | 284 | UNIPHIER_PINCTRL_PIN(87, "HS1DIN6", 0, |
287 | 83, UNIPHIER_PIN_DRV_4_8, | 285 | 83, UNIPHIER_PIN_DRV_1BIT, |
288 | 83, UNIPHIER_PIN_PULL_DOWN), | 286 | 83, UNIPHIER_PIN_PULL_DOWN), |
289 | UNIPHIER_PINCTRL_PIN(88, "HS1DIN7", 0, | 287 | UNIPHIER_PINCTRL_PIN(88, "HS1DIN7", 0, |
290 | 84, UNIPHIER_PIN_DRV_4_8, | 288 | 84, UNIPHIER_PIN_DRV_1BIT, |
291 | 84, UNIPHIER_PIN_PULL_DOWN), | 289 | 84, UNIPHIER_PIN_PULL_DOWN), |
292 | UNIPHIER_PINCTRL_PIN(89, "HS1BCLKIN", 0, | 290 | UNIPHIER_PINCTRL_PIN(89, "HS1BCLKIN", 0, |
293 | 85, UNIPHIER_PIN_DRV_4_8, | 291 | 85, UNIPHIER_PIN_DRV_1BIT, |
294 | 85, UNIPHIER_PIN_PULL_DOWN), | 292 | 85, UNIPHIER_PIN_PULL_DOWN), |
295 | UNIPHIER_PINCTRL_PIN(90, "HS1VALIN", 0, | 293 | UNIPHIER_PINCTRL_PIN(90, "HS1VALIN", 0, |
296 | 86, UNIPHIER_PIN_DRV_4_8, | 294 | 86, UNIPHIER_PIN_DRV_1BIT, |
297 | 86, UNIPHIER_PIN_PULL_DOWN), | 295 | 86, UNIPHIER_PIN_PULL_DOWN), |
298 | UNIPHIER_PINCTRL_PIN(91, "HS1SYNCIN", 0, | 296 | UNIPHIER_PINCTRL_PIN(91, "HS1SYNCIN", 0, |
299 | 87, UNIPHIER_PIN_DRV_4_8, | 297 | 87, UNIPHIER_PIN_DRV_1BIT, |
300 | 87, UNIPHIER_PIN_PULL_DOWN), | 298 | 87, UNIPHIER_PIN_PULL_DOWN), |
301 | UNIPHIER_PINCTRL_PIN(92, "AGCI", 3, | 299 | UNIPHIER_PINCTRL_PIN(92, "AGCI", 3, |
302 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 300 | -1, UNIPHIER_PIN_DRV_FIXED4, |
303 | 132, UNIPHIER_PIN_PULL_DOWN), | 301 | 132, UNIPHIER_PIN_PULL_DOWN), |
304 | UNIPHIER_PINCTRL_PIN(93, "AGCR", 4, | 302 | UNIPHIER_PINCTRL_PIN(93, "AGCR", 4, |
305 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 303 | -1, UNIPHIER_PIN_DRV_FIXED4, |
306 | 133, UNIPHIER_PIN_PULL_DOWN), | 304 | 133, UNIPHIER_PIN_PULL_DOWN), |
307 | UNIPHIER_PINCTRL_PIN(94, "AGCBS", 5, | 305 | UNIPHIER_PINCTRL_PIN(94, "AGCBS", 5, |
308 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 306 | -1, UNIPHIER_PIN_DRV_FIXED4, |
309 | 134, UNIPHIER_PIN_PULL_DOWN), | 307 | 134, UNIPHIER_PIN_PULL_DOWN), |
310 | UNIPHIER_PINCTRL_PIN(95, "IECOUT", 0, | 308 | UNIPHIER_PINCTRL_PIN(95, "IECOUT", 0, |
311 | 88, UNIPHIER_PIN_DRV_4_8, | 309 | 88, UNIPHIER_PIN_DRV_1BIT, |
312 | 88, UNIPHIER_PIN_PULL_DOWN), | 310 | 88, UNIPHIER_PIN_PULL_DOWN), |
313 | UNIPHIER_PINCTRL_PIN(96, "ASMCK", 0, | 311 | UNIPHIER_PINCTRL_PIN(96, "ASMCK", 0, |
314 | 89, UNIPHIER_PIN_DRV_4_8, | 312 | 89, UNIPHIER_PIN_DRV_1BIT, |
315 | 89, UNIPHIER_PIN_PULL_DOWN), | 313 | 89, UNIPHIER_PIN_PULL_DOWN), |
316 | UNIPHIER_PINCTRL_PIN(97, "ABCKO", UNIPHIER_PIN_IECTRL_NONE, | 314 | UNIPHIER_PINCTRL_PIN(97, "ABCKO", UNIPHIER_PIN_IECTRL_NONE, |
317 | 90, UNIPHIER_PIN_DRV_4_8, | 315 | 90, UNIPHIER_PIN_DRV_1BIT, |
318 | 90, UNIPHIER_PIN_PULL_DOWN), | 316 | 90, UNIPHIER_PIN_PULL_DOWN), |
319 | UNIPHIER_PINCTRL_PIN(98, "ALRCKO", UNIPHIER_PIN_IECTRL_NONE, | 317 | UNIPHIER_PINCTRL_PIN(98, "ALRCKO", UNIPHIER_PIN_IECTRL_NONE, |
320 | 91, UNIPHIER_PIN_DRV_4_8, | 318 | 91, UNIPHIER_PIN_DRV_1BIT, |
321 | 91, UNIPHIER_PIN_PULL_DOWN), | 319 | 91, UNIPHIER_PIN_PULL_DOWN), |
322 | UNIPHIER_PINCTRL_PIN(99, "ASDOUT0", UNIPHIER_PIN_IECTRL_NONE, | 320 | UNIPHIER_PINCTRL_PIN(99, "ASDOUT0", UNIPHIER_PIN_IECTRL_NONE, |
323 | 92, UNIPHIER_PIN_DRV_4_8, | 321 | 92, UNIPHIER_PIN_DRV_1BIT, |
324 | 92, UNIPHIER_PIN_PULL_DOWN), | 322 | 92, UNIPHIER_PIN_PULL_DOWN), |
325 | UNIPHIER_PINCTRL_PIN(100, "ASDOUT1", UNIPHIER_PIN_IECTRL_NONE, | 323 | UNIPHIER_PINCTRL_PIN(100, "ASDOUT1", UNIPHIER_PIN_IECTRL_NONE, |
326 | 93, UNIPHIER_PIN_DRV_4_8, | 324 | 93, UNIPHIER_PIN_DRV_1BIT, |
327 | 93, UNIPHIER_PIN_PULL_UP), | 325 | 93, UNIPHIER_PIN_PULL_UP), |
328 | UNIPHIER_PINCTRL_PIN(101, "ARCOUT", 0, | 326 | UNIPHIER_PINCTRL_PIN(101, "ARCOUT", 0, |
329 | 94, UNIPHIER_PIN_DRV_4_8, | 327 | 94, UNIPHIER_PIN_DRV_1BIT, |
330 | 94, UNIPHIER_PIN_PULL_DOWN), | 328 | 94, UNIPHIER_PIN_PULL_DOWN), |
331 | UNIPHIER_PINCTRL_PIN(102, "SDA0", 10, | 329 | UNIPHIER_PINCTRL_PIN(102, "SDA0", 10, |
332 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 330 | -1, UNIPHIER_PIN_DRV_FIXED4, |
333 | -1, UNIPHIER_PIN_PULL_NONE), | 331 | -1, UNIPHIER_PIN_PULL_NONE), |
334 | UNIPHIER_PINCTRL_PIN(103, "SCL0", 10, | 332 | UNIPHIER_PINCTRL_PIN(103, "SCL0", 10, |
335 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 333 | -1, UNIPHIER_PIN_DRV_FIXED4, |
336 | -1, UNIPHIER_PIN_PULL_NONE), | 334 | -1, UNIPHIER_PIN_PULL_NONE), |
337 | UNIPHIER_PINCTRL_PIN(104, "SDA1", 11, | 335 | UNIPHIER_PINCTRL_PIN(104, "SDA1", 11, |
338 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 336 | -1, UNIPHIER_PIN_DRV_FIXED4, |
339 | -1, UNIPHIER_PIN_PULL_NONE), | 337 | -1, UNIPHIER_PIN_PULL_NONE), |
340 | UNIPHIER_PINCTRL_PIN(105, "SCL1", 11, | 338 | UNIPHIER_PINCTRL_PIN(105, "SCL1", 11, |
341 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 339 | -1, UNIPHIER_PIN_DRV_FIXED4, |
342 | -1, UNIPHIER_PIN_PULL_NONE), | 340 | -1, UNIPHIER_PIN_PULL_NONE), |
343 | UNIPHIER_PINCTRL_PIN(106, "DMDSDA0", 12, | 341 | UNIPHIER_PINCTRL_PIN(106, "DMDSDA0", 12, |
344 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 342 | -1, UNIPHIER_PIN_DRV_FIXED4, |
345 | -1, UNIPHIER_PIN_PULL_NONE), | 343 | -1, UNIPHIER_PIN_PULL_NONE), |
346 | UNIPHIER_PINCTRL_PIN(107, "DMDSCL0", 12, | 344 | UNIPHIER_PINCTRL_PIN(107, "DMDSCL0", 12, |
347 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 345 | -1, UNIPHIER_PIN_DRV_FIXED4, |
348 | -1, UNIPHIER_PIN_PULL_NONE), | 346 | -1, UNIPHIER_PIN_PULL_NONE), |
349 | UNIPHIER_PINCTRL_PIN(108, "DMDSDA1", 13, | 347 | UNIPHIER_PINCTRL_PIN(108, "DMDSDA1", 13, |
350 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 348 | -1, UNIPHIER_PIN_DRV_FIXED4, |
351 | -1, UNIPHIER_PIN_PULL_NONE), | 349 | -1, UNIPHIER_PIN_PULL_NONE), |
352 | UNIPHIER_PINCTRL_PIN(109, "DMDSCL1", 13, | 350 | UNIPHIER_PINCTRL_PIN(109, "DMDSCL1", 13, |
353 | -1, UNIPHIER_PIN_DRV_FIXED_4, | 351 | -1, UNIPHIER_PIN_DRV_FIXED4, |
354 | -1, UNIPHIER_PIN_PULL_NONE), | 352 | -1, UNIPHIER_PIN_PULL_NONE), |
355 | UNIPHIER_PINCTRL_PIN(110, "SBO0", UNIPHIER_PIN_IECTRL_NONE, | 353 | UNIPHIER_PINCTRL_PIN(110, "SBO0", UNIPHIER_PIN_IECTRL_NONE, |
356 | 95, UNIPHIER_PIN_DRV_4_8, | 354 | 95, UNIPHIER_PIN_DRV_1BIT, |
357 | 95, UNIPHIER_PIN_PULL_UP), | 355 | 95, UNIPHIER_PIN_PULL_UP), |
358 | UNIPHIER_PINCTRL_PIN(111, "SBI0", UNIPHIER_PIN_IECTRL_NONE, | 356 | UNIPHIER_PINCTRL_PIN(111, "SBI0", UNIPHIER_PIN_IECTRL_NONE, |
359 | 96, UNIPHIER_PIN_DRV_4_8, | 357 | 96, UNIPHIER_PIN_DRV_1BIT, |
360 | 96, UNIPHIER_PIN_PULL_UP), | 358 | 96, UNIPHIER_PIN_PULL_UP), |
361 | UNIPHIER_PINCTRL_PIN(112, "SBO1", 0, | 359 | UNIPHIER_PINCTRL_PIN(112, "SBO1", 0, |
362 | 97, UNIPHIER_PIN_DRV_4_8, | 360 | 97, UNIPHIER_PIN_DRV_1BIT, |
363 | 97, UNIPHIER_PIN_PULL_UP), | 361 | 97, UNIPHIER_PIN_PULL_UP), |
364 | UNIPHIER_PINCTRL_PIN(113, "SBI1", 0, | 362 | UNIPHIER_PINCTRL_PIN(113, "SBI1", 0, |
365 | 98, UNIPHIER_PIN_DRV_4_8, | 363 | 98, UNIPHIER_PIN_DRV_1BIT, |
366 | 98, UNIPHIER_PIN_PULL_UP), | 364 | 98, UNIPHIER_PIN_PULL_UP), |
367 | UNIPHIER_PINCTRL_PIN(114, "TXD1", 0, | 365 | UNIPHIER_PINCTRL_PIN(114, "TXD1", 0, |
368 | 99, UNIPHIER_PIN_DRV_4_8, | 366 | 99, UNIPHIER_PIN_DRV_1BIT, |
369 | 99, UNIPHIER_PIN_PULL_UP), | 367 | 99, UNIPHIER_PIN_PULL_UP), |
370 | UNIPHIER_PINCTRL_PIN(115, "RXD1", 0, | 368 | UNIPHIER_PINCTRL_PIN(115, "RXD1", 0, |
371 | 100, UNIPHIER_PIN_DRV_4_8, | 369 | 100, UNIPHIER_PIN_DRV_1BIT, |
372 | 100, UNIPHIER_PIN_PULL_UP), | 370 | 100, UNIPHIER_PIN_PULL_UP), |
373 | UNIPHIER_PINCTRL_PIN(116, "HIN", 1, | 371 | UNIPHIER_PINCTRL_PIN(116, "HIN", 1, |
374 | -1, UNIPHIER_PIN_DRV_FIXED_5, | 372 | -1, UNIPHIER_PIN_DRV_FIXED5, |
375 | -1, UNIPHIER_PIN_PULL_NONE), | 373 | -1, UNIPHIER_PIN_PULL_NONE), |
376 | UNIPHIER_PINCTRL_PIN(117, "VIN", 2, | 374 | UNIPHIER_PINCTRL_PIN(117, "VIN", 2, |
377 | -1, UNIPHIER_PIN_DRV_FIXED_5, | 375 | -1, UNIPHIER_PIN_DRV_FIXED5, |
378 | -1, UNIPHIER_PIN_PULL_NONE), | 376 | -1, UNIPHIER_PIN_PULL_NONE), |
379 | UNIPHIER_PINCTRL_PIN(118, "TCON0", 0, | 377 | UNIPHIER_PINCTRL_PIN(118, "TCON0", 0, |
380 | 101, UNIPHIER_PIN_DRV_4_8, | 378 | 101, UNIPHIER_PIN_DRV_1BIT, |
381 | 101, UNIPHIER_PIN_PULL_DOWN), | 379 | 101, UNIPHIER_PIN_PULL_DOWN), |
382 | UNIPHIER_PINCTRL_PIN(119, "TCON1", 0, | 380 | UNIPHIER_PINCTRL_PIN(119, "TCON1", 0, |
383 | 102, UNIPHIER_PIN_DRV_4_8, | 381 | 102, UNIPHIER_PIN_DRV_1BIT, |
384 | 102, UNIPHIER_PIN_PULL_DOWN), | 382 | 102, UNIPHIER_PIN_PULL_DOWN), |
385 | UNIPHIER_PINCTRL_PIN(120, "TCON2", 0, | 383 | UNIPHIER_PINCTRL_PIN(120, "TCON2", 0, |
386 | 103, UNIPHIER_PIN_DRV_4_8, | 384 | 103, UNIPHIER_PIN_DRV_1BIT, |
387 | 103, UNIPHIER_PIN_PULL_DOWN), | 385 | 103, UNIPHIER_PIN_PULL_DOWN), |
388 | UNIPHIER_PINCTRL_PIN(121, "TCON3", 0, | 386 | UNIPHIER_PINCTRL_PIN(121, "TCON3", 0, |
389 | 104, UNIPHIER_PIN_DRV_4_8, | 387 | 104, UNIPHIER_PIN_DRV_1BIT, |
390 | 104, UNIPHIER_PIN_PULL_DOWN), | 388 | 104, UNIPHIER_PIN_PULL_DOWN), |
391 | UNIPHIER_PINCTRL_PIN(122, "TCON4", 0, | 389 | UNIPHIER_PINCTRL_PIN(122, "TCON4", 0, |
392 | 105, UNIPHIER_PIN_DRV_4_8, | 390 | 105, UNIPHIER_PIN_DRV_1BIT, |
393 | 105, UNIPHIER_PIN_PULL_DOWN), | 391 | 105, UNIPHIER_PIN_PULL_DOWN), |
394 | UNIPHIER_PINCTRL_PIN(123, "TCON5", 0, | 392 | UNIPHIER_PINCTRL_PIN(123, "TCON5", 0, |
395 | 106, UNIPHIER_PIN_DRV_4_8, | 393 | 106, UNIPHIER_PIN_DRV_1BIT, |
396 | 106, UNIPHIER_PIN_PULL_DOWN), | 394 | 106, UNIPHIER_PIN_PULL_DOWN), |
397 | UNIPHIER_PINCTRL_PIN(124, "TCON6", 0, | 395 | UNIPHIER_PINCTRL_PIN(124, "TCON6", 0, |
398 | 107, UNIPHIER_PIN_DRV_4_8, | 396 | 107, UNIPHIER_PIN_DRV_1BIT, |
399 | 107, UNIPHIER_PIN_PULL_DOWN), | 397 | 107, UNIPHIER_PIN_PULL_DOWN), |
400 | UNIPHIER_PINCTRL_PIN(125, "TCON7", 0, | 398 | UNIPHIER_PINCTRL_PIN(125, "TCON7", 0, |
401 | 108, UNIPHIER_PIN_DRV_4_8, | 399 | 108, UNIPHIER_PIN_DRV_1BIT, |
402 | 108, UNIPHIER_PIN_PULL_DOWN), | 400 | 108, UNIPHIER_PIN_PULL_DOWN), |
403 | UNIPHIER_PINCTRL_PIN(126, "TCON8", 0, | 401 | UNIPHIER_PINCTRL_PIN(126, "TCON8", 0, |
404 | 109, UNIPHIER_PIN_DRV_4_8, | 402 | 109, UNIPHIER_PIN_DRV_1BIT, |
405 | 109, UNIPHIER_PIN_PULL_DOWN), | 403 | 109, UNIPHIER_PIN_PULL_DOWN), |
406 | UNIPHIER_PINCTRL_PIN(127, "PWMA", 0, | 404 | UNIPHIER_PINCTRL_PIN(127, "PWMA", 0, |
407 | 110, UNIPHIER_PIN_DRV_4_8, | 405 | 110, UNIPHIER_PIN_DRV_1BIT, |
408 | 110, UNIPHIER_PIN_PULL_DOWN), | 406 | 110, UNIPHIER_PIN_PULL_DOWN), |
409 | UNIPHIER_PINCTRL_PIN(128, "XIRQ0", 0, | 407 | UNIPHIER_PINCTRL_PIN(128, "XIRQ0", 0, |
410 | 111, UNIPHIER_PIN_DRV_4_8, | 408 | 111, UNIPHIER_PIN_DRV_1BIT, |
411 | 111, UNIPHIER_PIN_PULL_DOWN), | 409 | 111, UNIPHIER_PIN_PULL_DOWN), |
412 | UNIPHIER_PINCTRL_PIN(129, "XIRQ1", 0, | 410 | UNIPHIER_PINCTRL_PIN(129, "XIRQ1", 0, |
413 | 112, UNIPHIER_PIN_DRV_4_8, | 411 | 112, UNIPHIER_PIN_DRV_1BIT, |
414 | 112, UNIPHIER_PIN_PULL_DOWN), | 412 | 112, UNIPHIER_PIN_PULL_DOWN), |
415 | UNIPHIER_PINCTRL_PIN(130, "XIRQ2", 0, | 413 | UNIPHIER_PINCTRL_PIN(130, "XIRQ2", 0, |
416 | 113, UNIPHIER_PIN_DRV_4_8, | 414 | 113, UNIPHIER_PIN_DRV_1BIT, |
417 | 113, UNIPHIER_PIN_PULL_DOWN), | 415 | 113, UNIPHIER_PIN_PULL_DOWN), |
418 | UNIPHIER_PINCTRL_PIN(131, "XIRQ3", 0, | 416 | UNIPHIER_PINCTRL_PIN(131, "XIRQ3", 0, |
419 | 114, UNIPHIER_PIN_DRV_4_8, | 417 | 114, UNIPHIER_PIN_DRV_1BIT, |
420 | 114, UNIPHIER_PIN_PULL_DOWN), | 418 | 114, UNIPHIER_PIN_PULL_DOWN), |
421 | UNIPHIER_PINCTRL_PIN(132, "XIRQ4", 0, | 419 | UNIPHIER_PINCTRL_PIN(132, "XIRQ4", 0, |
422 | 115, UNIPHIER_PIN_DRV_4_8, | 420 | 115, UNIPHIER_PIN_DRV_1BIT, |
423 | 115, UNIPHIER_PIN_PULL_DOWN), | 421 | 115, UNIPHIER_PIN_PULL_DOWN), |
424 | UNIPHIER_PINCTRL_PIN(133, "XIRQ5", 0, | 422 | UNIPHIER_PINCTRL_PIN(133, "XIRQ5", 0, |
425 | 116, UNIPHIER_PIN_DRV_4_8, | 423 | 116, UNIPHIER_PIN_DRV_1BIT, |
426 | 116, UNIPHIER_PIN_PULL_DOWN), | 424 | 116, UNIPHIER_PIN_PULL_DOWN), |
427 | UNIPHIER_PINCTRL_PIN(134, "XIRQ6", 0, | 425 | UNIPHIER_PINCTRL_PIN(134, "XIRQ6", 0, |
428 | 117, UNIPHIER_PIN_DRV_4_8, | 426 | 117, UNIPHIER_PIN_DRV_1BIT, |
429 | 117, UNIPHIER_PIN_PULL_DOWN), | 427 | 117, UNIPHIER_PIN_PULL_DOWN), |
430 | UNIPHIER_PINCTRL_PIN(135, "XIRQ7", 0, | 428 | UNIPHIER_PINCTRL_PIN(135, "XIRQ7", 0, |
431 | 118, UNIPHIER_PIN_DRV_4_8, | 429 | 118, UNIPHIER_PIN_DRV_1BIT, |
432 | 118, UNIPHIER_PIN_PULL_DOWN), | 430 | 118, UNIPHIER_PIN_PULL_DOWN), |
431 | /* dedicated pins */ | ||
432 | UNIPHIER_PINCTRL_PIN(136, "ED0", -1, | ||
433 | 0, UNIPHIER_PIN_DRV_1BIT, | ||
434 | 0, UNIPHIER_PIN_PULL_DOWN), | ||
435 | UNIPHIER_PINCTRL_PIN(137, "ED1", -1, | ||
436 | 1, UNIPHIER_PIN_DRV_1BIT, | ||
437 | 1, UNIPHIER_PIN_PULL_DOWN), | ||
438 | UNIPHIER_PINCTRL_PIN(138, "ED2", -1, | ||
439 | 2, UNIPHIER_PIN_DRV_1BIT, | ||
440 | 2, UNIPHIER_PIN_PULL_DOWN), | ||
441 | UNIPHIER_PINCTRL_PIN(139, "ED3", -1, | ||
442 | 3, UNIPHIER_PIN_DRV_1BIT, | ||
443 | 3, UNIPHIER_PIN_PULL_DOWN), | ||
444 | UNIPHIER_PINCTRL_PIN(140, "ED4", -1, | ||
445 | 4, UNIPHIER_PIN_DRV_1BIT, | ||
446 | 4, UNIPHIER_PIN_PULL_DOWN), | ||
447 | UNIPHIER_PINCTRL_PIN(141, "ED5", -1, | ||
448 | 5, UNIPHIER_PIN_DRV_1BIT, | ||
449 | 5, UNIPHIER_PIN_PULL_DOWN), | ||
450 | UNIPHIER_PINCTRL_PIN(142, "ED6", -1, | ||
451 | 6, UNIPHIER_PIN_DRV_1BIT, | ||
452 | 6, UNIPHIER_PIN_PULL_DOWN), | ||
453 | UNIPHIER_PINCTRL_PIN(143, "ED7", -1, | ||
454 | 7, UNIPHIER_PIN_DRV_1BIT, | ||
455 | 7, UNIPHIER_PIN_PULL_DOWN), | ||
456 | UNIPHIER_PINCTRL_PIN(144, "XERWE0", -1, | ||
457 | 8, UNIPHIER_PIN_DRV_1BIT, | ||
458 | 8, UNIPHIER_PIN_PULL_UP), | ||
459 | UNIPHIER_PINCTRL_PIN(145, "XERWE1", -1, | ||
460 | 9, UNIPHIER_PIN_DRV_1BIT, | ||
461 | 9, UNIPHIER_PIN_PULL_UP), | ||
462 | UNIPHIER_PINCTRL_PIN(146, "ERXW", -1, | ||
463 | 10, UNIPHIER_PIN_DRV_1BIT, | ||
464 | 10, UNIPHIER_PIN_PULL_UP), | ||
465 | UNIPHIER_PINCTRL_PIN(147, "ES0", -1, | ||
466 | 11, UNIPHIER_PIN_DRV_1BIT, | ||
467 | 11, UNIPHIER_PIN_PULL_UP), | ||
468 | UNIPHIER_PINCTRL_PIN(148, "ES1", -1, | ||
469 | 12, UNIPHIER_PIN_DRV_1BIT, | ||
470 | 12, UNIPHIER_PIN_PULL_UP), | ||
471 | UNIPHIER_PINCTRL_PIN(149, "ES2", -1, | ||
472 | 13, UNIPHIER_PIN_DRV_1BIT, | ||
473 | 13, UNIPHIER_PIN_PULL_UP), | ||
474 | UNIPHIER_PINCTRL_PIN(150, "XECS1", -1, | ||
475 | 14, UNIPHIER_PIN_DRV_1BIT, | ||
476 | 14, UNIPHIER_PIN_PULL_DOWN), | ||
433 | }; | 477 | }; |
434 | 478 | ||
435 | static const unsigned emmc_pins[] = {21, 22, 23, 24, 25, 26, 27}; | 479 | static const unsigned emmc_pins[] = {21, 22, 23, 24, 25, 26, 27}; |
436 | static const unsigned emmc_muxvals[] = {1, 1, 1, 1, 1, 1, 1}; | 480 | static const int emmc_muxvals[] = {1, 1, 1, 1, 1, 1, 1}; |
437 | static const unsigned emmc_dat8_pins[] = {28, 29, 30, 31}; | 481 | static const unsigned emmc_dat8_pins[] = {28, 29, 30, 31}; |
438 | static const unsigned emmc_dat8_muxvals[] = {1, 1, 1, 1}; | 482 | static const int emmc_dat8_muxvals[] = {1, 1, 1, 1}; |
483 | static const unsigned ether_mii_pins[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 14, | ||
484 | 61, 63, 64, 65, 66, 67, 68}; | ||
485 | static const int ether_mii_muxvals[] = {13, 13, 13, 13, 13, 13, 13, 13, 13, 13, | ||
486 | 13, 13, 27, 27, 27, 27, 27, 27, 27}; | ||
487 | static const unsigned ether_rmii_pins[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, | ||
488 | 14}; | ||
489 | static const int ether_rmii_muxvals[] = {13, 13, 13, 13, 13, 13, 13, 13, 13, | ||
490 | 13, 13, 13}; | ||
439 | static const unsigned i2c0_pins[] = {102, 103}; | 491 | static const unsigned i2c0_pins[] = {102, 103}; |
440 | static const unsigned i2c0_muxvals[] = {0, 0}; | 492 | static const int i2c0_muxvals[] = {0, 0}; |
441 | static const unsigned i2c1_pins[] = {104, 105}; | 493 | static const unsigned i2c1_pins[] = {104, 105}; |
442 | static const unsigned i2c1_muxvals[] = {0, 0}; | 494 | static const int i2c1_muxvals[] = {0, 0}; |
443 | static const unsigned i2c2_pins[] = {108, 109}; | 495 | static const unsigned i2c2_pins[] = {108, 109}; |
444 | static const unsigned i2c2_muxvals[] = {2, 2}; | 496 | static const int i2c2_muxvals[] = {2, 2}; |
445 | static const unsigned i2c3_pins[] = {108, 109}; | 497 | static const unsigned i2c3_pins[] = {108, 109}; |
446 | static const unsigned i2c3_muxvals[] = {3, 3}; | 498 | static const int i2c3_muxvals[] = {3, 3}; |
447 | static const unsigned nand_pins[] = {15, 16, 17, 18, 19, 20, 21, 24, 25, 26, | 499 | static const unsigned nand_pins[] = {15, 16, 17, 18, 19, 20, 21, 24, 25, 26, |
448 | 27, 28, 29, 30, 31}; | 500 | 27, 28, 29, 30, 31}; |
449 | static const unsigned nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 501 | static const int nand_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; |
450 | 0, 0}; | ||
451 | static const unsigned nand_cs1_pins[] = {22, 23}; | 502 | static const unsigned nand_cs1_pins[] = {22, 23}; |
452 | static const unsigned nand_cs1_muxvals[] = {0, 0}; | 503 | static const int nand_cs1_muxvals[] = {0, 0}; |
453 | static const unsigned sd_pins[] = {32, 33, 34, 35, 36, 37, 38, 39, 40}; | 504 | static const unsigned sd_pins[] = {32, 33, 34, 35, 36, 37, 38, 39, 40}; |
454 | static const unsigned sd_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; | 505 | static const int sd_muxvals[] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; |
506 | static const unsigned system_bus_pins[] = {136, 137, 138, 139, 140, 141, 142, | ||
507 | 143, 144, 145, 146, 147, 148, 149}; | ||
508 | static const int system_bus_muxvals[] = {-1, -1, -1, -1, -1, -1, -1, -1, -1, | ||
509 | -1, -1, -1, -1, -1}; | ||
510 | static const unsigned system_bus_cs1_pins[] = {150}; | ||
511 | static const int system_bus_cs1_muxvals[] = {-1}; | ||
512 | static const unsigned system_bus_cs2_pins[] = {10}; | ||
513 | static const int system_bus_cs2_muxvals[] = {1}; | ||
514 | static const unsigned system_bus_cs3_pins[] = {11}; | ||
515 | static const int system_bus_cs3_muxvals[] = {1}; | ||
516 | static const unsigned system_bus_cs4_pins[] = {12}; | ||
517 | static const int system_bus_cs4_muxvals[] = {1}; | ||
518 | static const unsigned system_bus_cs5_pins[] = {13}; | ||
519 | static const int system_bus_cs5_muxvals[] = {1}; | ||
455 | static const unsigned uart0_pins[] = {70, 71}; | 520 | static const unsigned uart0_pins[] = {70, 71}; |
456 | static const unsigned uart0_muxvals[] = {3, 3}; | 521 | static const int uart0_muxvals[] = {3, 3}; |
457 | static const unsigned uart1_pins[] = {114, 115}; | 522 | static const unsigned uart1_pins[] = {114, 115}; |
458 | static const unsigned uart1_muxvals[] = {0, 0}; | 523 | static const int uart1_muxvals[] = {0, 0}; |
459 | static const unsigned uart2_pins[] = {112, 113}; | 524 | static const unsigned uart2_pins[] = {112, 113}; |
460 | static const unsigned uart2_muxvals[] = {1, 1}; | 525 | static const int uart2_muxvals[] = {1, 1}; |
461 | static const unsigned uart3_pins[] = {110, 111}; | 526 | static const unsigned uart3_pins[] = {110, 111}; |
462 | static const unsigned uart3_muxvals[] = {1, 1}; | 527 | static const int uart3_muxvals[] = {1, 1}; |
463 | static const unsigned usb0_pins[] = {41, 42}; | 528 | static const unsigned usb0_pins[] = {41, 42}; |
464 | static const unsigned usb0_muxvals[] = {0, 0}; | 529 | static const int usb0_muxvals[] = {0, 0}; |
465 | static const unsigned usb1_pins[] = {43, 44}; | 530 | static const unsigned usb1_pins[] = {43, 44}; |
466 | static const unsigned usb1_muxvals[] = {0, 0}; | 531 | static const int usb1_muxvals[] = {0, 0}; |
467 | static const unsigned usb2_pins[] = {114, 115}; | 532 | static const unsigned usb2_pins[] = {114, 115}; |
468 | static const unsigned usb2_muxvals[] = {1, 1}; | 533 | static const int usb2_muxvals[] = {1, 1}; |
469 | static const unsigned port_range0_pins[] = { | 534 | static const unsigned port_range0_pins[] = { |
470 | 0, 1, 2, 3, 4, 5, 6, 7, /* PORT0x */ | 535 | 0, 1, 2, 3, 4, 5, 6, 7, /* PORT0x */ |
471 | 8, 9, 10, 11, 12, 13, 14, 15, /* PORT1x */ | 536 | 8, 9, 10, 11, 12, 13, 14, 15, /* PORT1x */ |
@@ -481,7 +546,7 @@ static const unsigned port_range0_pins[] = { | |||
481 | 48, 49, 46, 45, 123, 124, 125, 126, /* PORT11x */ | 546 | 48, 49, 46, 45, 123, 124, 125, 126, /* PORT11x */ |
482 | 47, 127, 20, 56, 22, /* PORT120-124 */ | 547 | 47, 127, 20, 56, 22, /* PORT120-124 */ |
483 | }; | 548 | }; |
484 | static const unsigned port_range0_muxvals[] = { | 549 | static const int port_range0_muxvals[] = { |
485 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT0x */ | 550 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT0x */ |
486 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT1x */ | 551 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT1x */ |
487 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT2x */ | 552 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT2x */ |
@@ -499,39 +564,41 @@ static const unsigned port_range0_muxvals[] = { | |||
499 | static const unsigned port_range1_pins[] = { | 564 | static const unsigned port_range1_pins[] = { |
500 | 116, 117, /* PORT130-131 */ | 565 | 116, 117, /* PORT130-131 */ |
501 | }; | 566 | }; |
502 | static const unsigned port_range1_muxvals[] = { | 567 | static const int port_range1_muxvals[] = { |
503 | 15, 15, /* PORT130-131 */ | 568 | 15, 15, /* PORT130-131 */ |
504 | }; | 569 | }; |
505 | static const unsigned port_range2_pins[] = { | 570 | static const unsigned port_range2_pins[] = { |
506 | 102, 103, 104, 105, 106, 107, 108, 109, /* PORT14x */ | 571 | 102, 103, 104, 105, 106, 107, 108, 109, /* PORT14x */ |
507 | }; | 572 | }; |
508 | static const unsigned port_range2_muxvals[] = { | 573 | static const int port_range2_muxvals[] = { |
509 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT14x */ | 574 | 15, 15, 15, 15, 15, 15, 15, 15, /* PORT14x */ |
510 | }; | 575 | }; |
511 | static const unsigned port_range3_pins[] = { | 576 | static const unsigned port_range3_pins[] = { |
512 | 23, /* PORT166 */ | 577 | 23, /* PORT166 */ |
513 | }; | 578 | }; |
514 | static const unsigned port_range3_muxvals[] = { | 579 | static const int port_range3_muxvals[] = { |
515 | 15, /* PORT166 */ | 580 | 15, /* PORT166 */ |
516 | }; | 581 | }; |
517 | static const unsigned xirq_range0_pins[] = { | 582 | static const unsigned xirq_range0_pins[] = { |
518 | 128, 129, 130, 131, 132, 133, 134, 135, /* XIRQ0-7 */ | 583 | 128, 129, 130, 131, 132, 133, 134, 135, /* XIRQ0-7 */ |
519 | 82, 87, 88, 50, 51, /* XIRQ8-12 */ | 584 | 82, 87, 88, 50, 51, /* XIRQ8-12 */ |
520 | }; | 585 | }; |
521 | static const unsigned xirq_range0_muxvals[] = { | 586 | static const int xirq_range0_muxvals[] = { |
522 | 0, 0, 0, 0, 0, 0, 0, 0, /* XIRQ0-7 */ | 587 | 0, 0, 0, 0, 0, 0, 0, 0, /* XIRQ0-7 */ |
523 | 14, 14, 14, 14, 14, /* XIRQ8-12 */ | 588 | 14, 14, 14, 14, 14, /* XIRQ8-12 */ |
524 | }; | 589 | }; |
525 | static const unsigned xirq_range1_pins[] = { | 590 | static const unsigned xirq_range1_pins[] = { |
526 | 52, 58, /* XIRQ14-15 */ | 591 | 52, 58, /* XIRQ14-15 */ |
527 | }; | 592 | }; |
528 | static const unsigned xirq_range1_muxvals[] = { | 593 | static const int xirq_range1_muxvals[] = { |
529 | 14, 14, /* XIRQ14-15 */ | 594 | 14, 14, /* XIRQ14-15 */ |
530 | }; | 595 | }; |
531 | 596 | ||
532 | static const struct uniphier_pinctrl_group ph1_sld8_groups[] = { | 597 | static const struct uniphier_pinctrl_group uniphier_sld8_groups[] = { |
533 | UNIPHIER_PINCTRL_GROUP(emmc), | 598 | UNIPHIER_PINCTRL_GROUP(emmc), |
534 | UNIPHIER_PINCTRL_GROUP(emmc_dat8), | 599 | UNIPHIER_PINCTRL_GROUP(emmc_dat8), |
600 | UNIPHIER_PINCTRL_GROUP(ether_mii), | ||
601 | UNIPHIER_PINCTRL_GROUP(ether_rmii), | ||
535 | UNIPHIER_PINCTRL_GROUP(i2c0), | 602 | UNIPHIER_PINCTRL_GROUP(i2c0), |
536 | UNIPHIER_PINCTRL_GROUP(i2c1), | 603 | UNIPHIER_PINCTRL_GROUP(i2c1), |
537 | UNIPHIER_PINCTRL_GROUP(i2c2), | 604 | UNIPHIER_PINCTRL_GROUP(i2c2), |
@@ -539,6 +606,12 @@ static const struct uniphier_pinctrl_group ph1_sld8_groups[] = { | |||
539 | UNIPHIER_PINCTRL_GROUP(nand), | 606 | UNIPHIER_PINCTRL_GROUP(nand), |
540 | UNIPHIER_PINCTRL_GROUP(nand_cs1), | 607 | UNIPHIER_PINCTRL_GROUP(nand_cs1), |
541 | UNIPHIER_PINCTRL_GROUP(sd), | 608 | UNIPHIER_PINCTRL_GROUP(sd), |
609 | UNIPHIER_PINCTRL_GROUP(system_bus), | ||
610 | UNIPHIER_PINCTRL_GROUP(system_bus_cs1), | ||
611 | UNIPHIER_PINCTRL_GROUP(system_bus_cs2), | ||
612 | UNIPHIER_PINCTRL_GROUP(system_bus_cs3), | ||
613 | UNIPHIER_PINCTRL_GROUP(system_bus_cs4), | ||
614 | UNIPHIER_PINCTRL_GROUP(system_bus_cs5), | ||
542 | UNIPHIER_PINCTRL_GROUP(uart0), | 615 | UNIPHIER_PINCTRL_GROUP(uart0), |
543 | UNIPHIER_PINCTRL_GROUP(uart1), | 616 | UNIPHIER_PINCTRL_GROUP(uart1), |
544 | UNIPHIER_PINCTRL_GROUP(uart2), | 617 | UNIPHIER_PINCTRL_GROUP(uart2), |
@@ -682,12 +755,20 @@ static const struct uniphier_pinctrl_group ph1_sld8_groups[] = { | |||
682 | }; | 755 | }; |
683 | 756 | ||
684 | static const char * const emmc_groups[] = {"emmc", "emmc_dat8"}; | 757 | static const char * const emmc_groups[] = {"emmc", "emmc_dat8"}; |
758 | static const char * const ether_mii_groups[] = {"ether_mii"}; | ||
759 | static const char * const ether_rmii_groups[] = {"ether_rmii"}; | ||
685 | static const char * const i2c0_groups[] = {"i2c0"}; | 760 | static const char * const i2c0_groups[] = {"i2c0"}; |
686 | static const char * const i2c1_groups[] = {"i2c1"}; | 761 | static const char * const i2c1_groups[] = {"i2c1"}; |
687 | static const char * const i2c2_groups[] = {"i2c2"}; | 762 | static const char * const i2c2_groups[] = {"i2c2"}; |
688 | static const char * const i2c3_groups[] = {"i2c3"}; | 763 | static const char * const i2c3_groups[] = {"i2c3"}; |
689 | static const char * const nand_groups[] = {"nand", "nand_cs1"}; | 764 | static const char * const nand_groups[] = {"nand", "nand_cs1"}; |
690 | static const char * const sd_groups[] = {"sd"}; | 765 | static const char * const sd_groups[] = {"sd"}; |
766 | static const char * const system_bus_groups[] = {"system_bus", | ||
767 | "system_bus_cs1", | ||
768 | "system_bus_cs2", | ||
769 | "system_bus_cs3", | ||
770 | "system_bus_cs4", | ||
771 | "system_bus_cs5"}; | ||
691 | static const char * const uart0_groups[] = {"uart0"}; | 772 | static const char * const uart0_groups[] = {"uart0"}; |
692 | static const char * const uart1_groups[] = {"uart1"}; | 773 | static const char * const uart1_groups[] = {"uart1"}; |
693 | static const char * const uart2_groups[] = {"uart2"}; | 774 | static const char * const uart2_groups[] = {"uart2"}; |
@@ -736,14 +817,17 @@ static const char * const xirq_groups[] = { | |||
736 | "xirq12", /* none*/ "xirq14", "xirq15", | 817 | "xirq12", /* none*/ "xirq14", "xirq15", |
737 | }; | 818 | }; |
738 | 819 | ||
739 | static const struct uniphier_pinmux_function ph1_sld8_functions[] = { | 820 | static const struct uniphier_pinmux_function uniphier_sld8_functions[] = { |
740 | UNIPHIER_PINMUX_FUNCTION(emmc), | 821 | UNIPHIER_PINMUX_FUNCTION(emmc), |
822 | UNIPHIER_PINMUX_FUNCTION(ether_mii), | ||
823 | UNIPHIER_PINMUX_FUNCTION(ether_rmii), | ||
741 | UNIPHIER_PINMUX_FUNCTION(i2c0), | 824 | UNIPHIER_PINMUX_FUNCTION(i2c0), |
742 | UNIPHIER_PINMUX_FUNCTION(i2c1), | 825 | UNIPHIER_PINMUX_FUNCTION(i2c1), |
743 | UNIPHIER_PINMUX_FUNCTION(i2c2), | 826 | UNIPHIER_PINMUX_FUNCTION(i2c2), |
744 | UNIPHIER_PINMUX_FUNCTION(i2c3), | 827 | UNIPHIER_PINMUX_FUNCTION(i2c3), |
745 | UNIPHIER_PINMUX_FUNCTION(nand), | 828 | UNIPHIER_PINMUX_FUNCTION(nand), |
746 | UNIPHIER_PINMUX_FUNCTION(sd), | 829 | UNIPHIER_PINMUX_FUNCTION(sd), |
830 | UNIPHIER_PINMUX_FUNCTION(system_bus), | ||
747 | UNIPHIER_PINMUX_FUNCTION(uart0), | 831 | UNIPHIER_PINMUX_FUNCTION(uart0), |
748 | UNIPHIER_PINMUX_FUNCTION(uart1), | 832 | UNIPHIER_PINMUX_FUNCTION(uart1), |
749 | UNIPHIER_PINMUX_FUNCTION(uart2), | 833 | UNIPHIER_PINMUX_FUNCTION(uart2), |
@@ -755,43 +839,36 @@ static const struct uniphier_pinmux_function ph1_sld8_functions[] = { | |||
755 | UNIPHIER_PINMUX_FUNCTION(xirq), | 839 | UNIPHIER_PINMUX_FUNCTION(xirq), |
756 | }; | 840 | }; |
757 | 841 | ||
758 | static struct uniphier_pinctrl_socdata ph1_sld8_pindata = { | 842 | static struct uniphier_pinctrl_socdata uniphier_sld8_pindata = { |
759 | .groups = ph1_sld8_groups, | 843 | .pins = uniphier_sld8_pins, |
760 | .groups_count = ARRAY_SIZE(ph1_sld8_groups), | 844 | .npins = ARRAY_SIZE(uniphier_sld8_pins), |
761 | .functions = ph1_sld8_functions, | 845 | .groups = uniphier_sld8_groups, |
762 | .functions_count = ARRAY_SIZE(ph1_sld8_functions), | 846 | .groups_count = ARRAY_SIZE(uniphier_sld8_groups), |
763 | .mux_bits = 8, | 847 | .functions = uniphier_sld8_functions, |
764 | .reg_stride = 4, | 848 | .functions_count = ARRAY_SIZE(uniphier_sld8_functions), |
765 | .load_pinctrl = false, | 849 | .caps = 0, |
766 | }; | ||
767 | |||
768 | static struct pinctrl_desc ph1_sld8_pinctrl_desc = { | ||
769 | .name = DRIVER_NAME, | ||
770 | .pins = ph1_sld8_pins, | ||
771 | .npins = ARRAY_SIZE(ph1_sld8_pins), | ||
772 | .owner = THIS_MODULE, | ||
773 | }; | 850 | }; |
774 | 851 | ||
775 | static int ph1_sld8_pinctrl_probe(struct platform_device *pdev) | 852 | static int uniphier_sld8_pinctrl_probe(struct platform_device *pdev) |
776 | { | 853 | { |
777 | return uniphier_pinctrl_probe(pdev, &ph1_sld8_pinctrl_desc, | 854 | return uniphier_pinctrl_probe(pdev, &uniphier_sld8_pindata); |
778 | &ph1_sld8_pindata); | ||
779 | } | 855 | } |
780 | 856 | ||
781 | static const struct of_device_id ph1_sld8_pinctrl_match[] = { | 857 | static const struct of_device_id uniphier_sld8_pinctrl_match[] = { |
858 | { .compatible = "socionext,uniphier-sld8-pinctrl" }, | ||
782 | { .compatible = "socionext,ph1-sld8-pinctrl" }, | 859 | { .compatible = "socionext,ph1-sld8-pinctrl" }, |
783 | { /* sentinel */ } | 860 | { /* sentinel */ } |
784 | }; | 861 | }; |
785 | MODULE_DEVICE_TABLE(of, ph1_sld8_pinctrl_match); | 862 | MODULE_DEVICE_TABLE(of, uniphier_sld8_pinctrl_match); |
786 | 863 | ||
787 | static struct platform_driver ph1_sld8_pinctrl_driver = { | 864 | static struct platform_driver uniphier_sld8_pinctrl_driver = { |
788 | .probe = ph1_sld8_pinctrl_probe, | 865 | .probe = uniphier_sld8_pinctrl_probe, |
789 | .driver = { | 866 | .driver = { |
790 | .name = DRIVER_NAME, | 867 | .name = "uniphier-sld8-pinctrl", |
791 | .of_match_table = ph1_sld8_pinctrl_match, | 868 | .of_match_table = uniphier_sld8_pinctrl_match, |
792 | }, | 869 | }, |
793 | }; | 870 | }; |
794 | module_platform_driver(ph1_sld8_pinctrl_driver); | 871 | module_platform_driver(uniphier_sld8_pinctrl_driver); |
795 | 872 | ||
796 | MODULE_AUTHOR("Masahiro Yamada <yamada.masahiro@socionext.com>"); | 873 | MODULE_AUTHOR("Masahiro Yamada <yamada.masahiro@socionext.com>"); |
797 | MODULE_DESCRIPTION("UniPhier PH1-sLD8 pinctrl driver"); | 874 | MODULE_DESCRIPTION("UniPhier PH1-sLD8 pinctrl driver"); |
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier.h b/drivers/pinctrl/uniphier/pinctrl-uniphier.h index a21154f4b453..923f36cb245d 100644 --- a/drivers/pinctrl/uniphier/pinctrl-uniphier.h +++ b/drivers/pinctrl/uniphier/pinctrl-uniphier.h | |||
@@ -15,14 +15,18 @@ | |||
15 | #ifndef __PINCTRL_UNIPHIER_H__ | 15 | #ifndef __PINCTRL_UNIPHIER_H__ |
16 | #define __PINCTRL_UNIPHIER_H__ | 16 | #define __PINCTRL_UNIPHIER_H__ |
17 | 17 | ||
18 | #include <linux/bitops.h> | ||
18 | #include <linux/bug.h> | 19 | #include <linux/bug.h> |
19 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
20 | #include <linux/types.h> | 21 | #include <linux/types.h> |
21 | 22 | ||
23 | struct platform_device; | ||
24 | |||
22 | #define UNIPHIER_PINCTRL_PINMUX_BASE 0x0 | 25 | #define UNIPHIER_PINCTRL_PINMUX_BASE 0x0 |
23 | #define UNIPHIER_PINCTRL_LOAD_PINMUX 0x700 | 26 | #define UNIPHIER_PINCTRL_LOAD_PINMUX 0x700 |
24 | #define UNIPHIER_PINCTRL_DRVCTRL_BASE 0x800 | 27 | #define UNIPHIER_PINCTRL_DRVCTRL_BASE 0x800 |
25 | #define UNIPHIER_PINCTRL_DRV2CTRL_BASE 0x900 | 28 | #define UNIPHIER_PINCTRL_DRV2CTRL_BASE 0x900 |
29 | #define UNIPHIER_PINCTRL_DRV3CTRL_BASE 0x980 | ||
26 | #define UNIPHIER_PINCTRL_PUPDCTRL_BASE 0xa00 | 30 | #define UNIPHIER_PINCTRL_PUPDCTRL_BASE 0xa00 |
27 | #define UNIPHIER_PINCTRL_IECTRL 0xd00 | 31 | #define UNIPHIER_PINCTRL_IECTRL 0xd00 |
28 | 32 | ||
@@ -39,16 +43,16 @@ | |||
39 | #define UNIPHIER_PIN_DRVCTRL_MASK ((1UL << (UNIPHIER_PIN_DRVCTRL_BITS)) \ | 43 | #define UNIPHIER_PIN_DRVCTRL_MASK ((1UL << (UNIPHIER_PIN_DRVCTRL_BITS)) \ |
40 | - 1) | 44 | - 1) |
41 | 45 | ||
42 | /* supported drive strength (mA) */ | 46 | /* drive control type */ |
43 | #define UNIPHIER_PIN_DRV_STR_SHIFT ((UNIPHIER_PIN_DRVCTRL_SHIFT) + \ | 47 | #define UNIPHIER_PIN_DRV_TYPE_SHIFT ((UNIPHIER_PIN_DRVCTRL_SHIFT) + \ |
44 | (UNIPHIER_PIN_DRVCTRL_BITS)) | 48 | (UNIPHIER_PIN_DRVCTRL_BITS)) |
45 | #define UNIPHIER_PIN_DRV_STR_BITS 3 | 49 | #define UNIPHIER_PIN_DRV_TYPE_BITS 3 |
46 | #define UNIPHIER_PIN_DRV_STR_MASK ((1UL << (UNIPHIER_PIN_DRV_STR_BITS)) \ | 50 | #define UNIPHIER_PIN_DRV_TYPE_MASK ((1UL << (UNIPHIER_PIN_DRV_TYPE_BITS)) \ |
47 | - 1) | 51 | - 1) |
48 | 52 | ||
49 | /* pull-up / pull-down register number */ | 53 | /* pull-up / pull-down register number */ |
50 | #define UNIPHIER_PIN_PUPDCTRL_SHIFT ((UNIPHIER_PIN_DRV_STR_SHIFT) + \ | 54 | #define UNIPHIER_PIN_PUPDCTRL_SHIFT ((UNIPHIER_PIN_DRV_TYPE_SHIFT) + \ |
51 | (UNIPHIER_PIN_DRV_STR_BITS)) | 55 | (UNIPHIER_PIN_DRV_TYPE_BITS)) |
52 | #define UNIPHIER_PIN_PUPDCTRL_BITS 9 | 56 | #define UNIPHIER_PIN_PUPDCTRL_BITS 9 |
53 | #define UNIPHIER_PIN_PUPDCTRL_MASK ((1UL << (UNIPHIER_PIN_PUPDCTRL_BITS))\ | 57 | #define UNIPHIER_PIN_PUPDCTRL_MASK ((1UL << (UNIPHIER_PIN_PUPDCTRL_BITS))\ |
54 | - 1) | 58 | - 1) |
@@ -66,13 +70,14 @@ | |||
66 | 70 | ||
67 | #define UNIPHIER_PIN_IECTRL_NONE (UNIPHIER_PIN_IECTRL_MASK) | 71 | #define UNIPHIER_PIN_IECTRL_NONE (UNIPHIER_PIN_IECTRL_MASK) |
68 | 72 | ||
69 | /* selectable drive strength */ | 73 | /* drive control type */ |
70 | enum uniphier_pin_drv_str { | 74 | enum uniphier_pin_drv_type { |
71 | UNIPHIER_PIN_DRV_4_8, /* 2 level control: 4/8 mA */ | 75 | UNIPHIER_PIN_DRV_1BIT, /* 2 level control: 4/8 mA */ |
72 | UNIPHIER_PIN_DRV_8_12_16_20, /* 4 level control: 8/12/16/20 mA */ | 76 | UNIPHIER_PIN_DRV_2BIT, /* 4 level control: 8/12/16/20 mA */ |
73 | UNIPHIER_PIN_DRV_FIXED_4, /* fixed to 4mA */ | 77 | UNIPHIER_PIN_DRV_3BIT, /* 8 level control: 4/5/7/9/11/12/14/16 mA */ |
74 | UNIPHIER_PIN_DRV_FIXED_5, /* fixed to 5mA */ | 78 | UNIPHIER_PIN_DRV_FIXED4, /* fixed to 4mA */ |
75 | UNIPHIER_PIN_DRV_FIXED_8, /* fixed to 8mA */ | 79 | UNIPHIER_PIN_DRV_FIXED5, /* fixed to 5mA */ |
80 | UNIPHIER_PIN_DRV_FIXED8, /* fixed to 8mA */ | ||
76 | UNIPHIER_PIN_DRV_NONE, /* no support (input only pin) */ | 81 | UNIPHIER_PIN_DRV_NONE, /* no support (input only pin) */ |
77 | }; | 82 | }; |
78 | 83 | ||
@@ -89,17 +94,17 @@ enum uniphier_pin_pull_dir { | |||
89 | (((x) & (UNIPHIER_PIN_IECTRL_MASK)) << (UNIPHIER_PIN_IECTRL_SHIFT)) | 94 | (((x) & (UNIPHIER_PIN_IECTRL_MASK)) << (UNIPHIER_PIN_IECTRL_SHIFT)) |
90 | #define UNIPHIER_PIN_DRVCTRL(x) \ | 95 | #define UNIPHIER_PIN_DRVCTRL(x) \ |
91 | (((x) & (UNIPHIER_PIN_DRVCTRL_MASK)) << (UNIPHIER_PIN_DRVCTRL_SHIFT)) | 96 | (((x) & (UNIPHIER_PIN_DRVCTRL_MASK)) << (UNIPHIER_PIN_DRVCTRL_SHIFT)) |
92 | #define UNIPHIER_PIN_DRV_STR(x) \ | 97 | #define UNIPHIER_PIN_DRV_TYPE(x) \ |
93 | (((x) & (UNIPHIER_PIN_DRV_STR_MASK)) << (UNIPHIER_PIN_DRV_STR_SHIFT)) | 98 | (((x) & (UNIPHIER_PIN_DRV_TYPE_MASK)) << (UNIPHIER_PIN_DRV_TYPE_SHIFT)) |
94 | #define UNIPHIER_PIN_PUPDCTRL(x) \ | 99 | #define UNIPHIER_PIN_PUPDCTRL(x) \ |
95 | (((x) & (UNIPHIER_PIN_PUPDCTRL_MASK)) << (UNIPHIER_PIN_PUPDCTRL_SHIFT)) | 100 | (((x) & (UNIPHIER_PIN_PUPDCTRL_MASK)) << (UNIPHIER_PIN_PUPDCTRL_SHIFT)) |
96 | #define UNIPHIER_PIN_PULL_DIR(x) \ | 101 | #define UNIPHIER_PIN_PULL_DIR(x) \ |
97 | (((x) & (UNIPHIER_PIN_PULL_DIR_MASK)) << (UNIPHIER_PIN_PULL_DIR_SHIFT)) | 102 | (((x) & (UNIPHIER_PIN_PULL_DIR_MASK)) << (UNIPHIER_PIN_PULL_DIR_SHIFT)) |
98 | 103 | ||
99 | #define UNIPHIER_PIN_ATTR_PACKED(iectrl, drvctrl, drv_str, pupdctrl, pull_dir)\ | 104 | #define UNIPHIER_PIN_ATTR_PACKED(iectrl, drvctrl, drv_type, pupdctrl, pull_dir)\ |
100 | (UNIPHIER_PIN_IECTRL(iectrl) | \ | 105 | (UNIPHIER_PIN_IECTRL(iectrl) | \ |
101 | UNIPHIER_PIN_DRVCTRL(drvctrl) | \ | 106 | UNIPHIER_PIN_DRVCTRL(drvctrl) | \ |
102 | UNIPHIER_PIN_DRV_STR(drv_str) | \ | 107 | UNIPHIER_PIN_DRV_TYPE(drv_type) | \ |
103 | UNIPHIER_PIN_PUPDCTRL(pupdctrl) | \ | 108 | UNIPHIER_PIN_PUPDCTRL(pupdctrl) | \ |
104 | UNIPHIER_PIN_PULL_DIR(pull_dir)) | 109 | UNIPHIER_PIN_PULL_DIR(pull_dir)) |
105 | 110 | ||
@@ -115,10 +120,10 @@ static inline unsigned int uniphier_pin_get_drvctrl(void *drv_data) | |||
115 | UNIPHIER_PIN_DRVCTRL_MASK; | 120 | UNIPHIER_PIN_DRVCTRL_MASK; |
116 | } | 121 | } |
117 | 122 | ||
118 | static inline unsigned int uniphier_pin_get_drv_str(void *drv_data) | 123 | static inline unsigned int uniphier_pin_get_drv_type(void *drv_data) |
119 | { | 124 | { |
120 | return ((unsigned long)drv_data >> UNIPHIER_PIN_DRV_STR_SHIFT) & | 125 | return ((unsigned long)drv_data >> UNIPHIER_PIN_DRV_TYPE_SHIFT) & |
121 | UNIPHIER_PIN_DRV_STR_MASK; | 126 | UNIPHIER_PIN_DRV_TYPE_MASK; |
122 | } | 127 | } |
123 | 128 | ||
124 | static inline unsigned int uniphier_pin_get_pupdctrl(void *drv_data) | 129 | static inline unsigned int uniphier_pin_get_pupdctrl(void *drv_data) |
@@ -143,7 +148,7 @@ struct uniphier_pinctrl_group { | |||
143 | const char *name; | 148 | const char *name; |
144 | const unsigned *pins; | 149 | const unsigned *pins; |
145 | unsigned num_pins; | 150 | unsigned num_pins; |
146 | const unsigned *muxvals; | 151 | const int *muxvals; |
147 | enum uniphier_pinmux_gpio_range_type range_type; | 152 | enum uniphier_pinmux_gpio_range_type range_type; |
148 | }; | 153 | }; |
149 | 154 | ||
@@ -154,13 +159,15 @@ struct uniphier_pinmux_function { | |||
154 | }; | 159 | }; |
155 | 160 | ||
156 | struct uniphier_pinctrl_socdata { | 161 | struct uniphier_pinctrl_socdata { |
162 | const struct pinctrl_pin_desc *pins; | ||
163 | unsigned int npins; | ||
157 | const struct uniphier_pinctrl_group *groups; | 164 | const struct uniphier_pinctrl_group *groups; |
158 | int groups_count; | 165 | int groups_count; |
159 | const struct uniphier_pinmux_function *functions; | 166 | const struct uniphier_pinmux_function *functions; |
160 | int functions_count; | 167 | int functions_count; |
161 | unsigned mux_bits; | 168 | unsigned int caps; |
162 | unsigned reg_stride; | 169 | #define UNIPHIER_PINCTRL_CAPS_PERPIN_IECTRL BIT(1) |
163 | bool load_pinctrl; | 170 | #define UNIPHIER_PINCTRL_CAPS_DBGMUX_SEPARATE BIT(0) |
164 | }; | 171 | }; |
165 | 172 | ||
166 | #define UNIPHIER_PINCTRL_PIN(a, b, c, d, e, f, g) \ | 173 | #define UNIPHIER_PINCTRL_PIN(a, b, c, d, e, f, g) \ |
@@ -205,11 +212,7 @@ struct uniphier_pinctrl_socdata { | |||
205 | .num_groups = ARRAY_SIZE(func##_groups), \ | 212 | .num_groups = ARRAY_SIZE(func##_groups), \ |
206 | } | 213 | } |
207 | 214 | ||
208 | struct platform_device; | ||
209 | struct pinctrl_desc; | ||
210 | |||
211 | int uniphier_pinctrl_probe(struct platform_device *pdev, | 215 | int uniphier_pinctrl_probe(struct platform_device *pdev, |
212 | struct pinctrl_desc *desc, | ||
213 | struct uniphier_pinctrl_socdata *socdata); | 216 | struct uniphier_pinctrl_socdata *socdata); |
214 | 217 | ||
215 | #endif /* __PINCTRL_UNIPHIER_H__ */ | 218 | #endif /* __PINCTRL_UNIPHIER_H__ */ |
diff --git a/include/dt-bindings/pinctrl/stm32f746-pinfunc.h b/include/dt-bindings/pinctrl/stm32f746-pinfunc.h new file mode 100644 index 000000000000..6348c6a830e9 --- /dev/null +++ b/include/dt-bindings/pinctrl/stm32f746-pinfunc.h | |||
@@ -0,0 +1,1324 @@ | |||
1 | #ifndef _DT_BINDINGS_STM32F746_PINFUNC_H | ||
2 | #define _DT_BINDINGS_STM32F746_PINFUNC_H | ||
3 | |||
4 | #define STM32F746_PA0_FUNC_GPIO 0x0 | ||
5 | #define STM32F746_PA0_FUNC_TIM2_CH1_TIM2_ETR 0x2 | ||
6 | #define STM32F746_PA0_FUNC_TIM5_CH1 0x3 | ||
7 | #define STM32F746_PA0_FUNC_TIM8_ETR 0x4 | ||
8 | #define STM32F746_PA0_FUNC_USART2_CTS 0x8 | ||
9 | #define STM32F746_PA0_FUNC_UART4_TX 0x9 | ||
10 | #define STM32F746_PA0_FUNC_SAI2_SD_B 0xb | ||
11 | #define STM32F746_PA0_FUNC_ETH_MII_CRS 0xc | ||
12 | #define STM32F746_PA0_FUNC_EVENTOUT 0x10 | ||
13 | #define STM32F746_PA0_FUNC_ANALOG 0x11 | ||
14 | |||
15 | #define STM32F746_PA1_FUNC_GPIO 0x100 | ||
16 | #define STM32F746_PA1_FUNC_TIM2_CH2 0x102 | ||
17 | #define STM32F746_PA1_FUNC_TIM5_CH2 0x103 | ||
18 | #define STM32F746_PA1_FUNC_USART2_RTS 0x108 | ||
19 | #define STM32F746_PA1_FUNC_UART4_RX 0x109 | ||
20 | #define STM32F746_PA1_FUNC_QUADSPI_BK1_IO3 0x10a | ||
21 | #define STM32F746_PA1_FUNC_SAI2_MCLK_B 0x10b | ||
22 | #define STM32F746_PA1_FUNC_ETH_MII_RX_CLK_ETH_RMII_REF_CLK 0x10c | ||
23 | #define STM32F746_PA1_FUNC_LCD_R2 0x10f | ||
24 | #define STM32F746_PA1_FUNC_EVENTOUT 0x110 | ||
25 | #define STM32F746_PA1_FUNC_ANALOG 0x111 | ||
26 | |||
27 | #define STM32F746_PA2_FUNC_GPIO 0x200 | ||
28 | #define STM32F746_PA2_FUNC_TIM2_CH3 0x202 | ||
29 | #define STM32F746_PA2_FUNC_TIM5_CH3 0x203 | ||
30 | #define STM32F746_PA2_FUNC_TIM9_CH1 0x204 | ||
31 | #define STM32F746_PA2_FUNC_USART2_TX 0x208 | ||
32 | #define STM32F746_PA2_FUNC_SAI2_SCK_B 0x209 | ||
33 | #define STM32F746_PA2_FUNC_ETH_MDIO 0x20c | ||
34 | #define STM32F746_PA2_FUNC_LCD_R1 0x20f | ||
35 | #define STM32F746_PA2_FUNC_EVENTOUT 0x210 | ||
36 | #define STM32F746_PA2_FUNC_ANALOG 0x211 | ||
37 | |||
38 | #define STM32F746_PA3_FUNC_GPIO 0x300 | ||
39 | #define STM32F746_PA3_FUNC_TIM2_CH4 0x302 | ||
40 | #define STM32F746_PA3_FUNC_TIM5_CH4 0x303 | ||
41 | #define STM32F746_PA3_FUNC_TIM9_CH2 0x304 | ||
42 | #define STM32F746_PA3_FUNC_USART2_RX 0x308 | ||
43 | #define STM32F746_PA3_FUNC_OTG_HS_ULPI_D0 0x30b | ||
44 | #define STM32F746_PA3_FUNC_ETH_MII_COL 0x30c | ||
45 | #define STM32F746_PA3_FUNC_LCD_B5 0x30f | ||
46 | #define STM32F746_PA3_FUNC_EVENTOUT 0x310 | ||
47 | #define STM32F746_PA3_FUNC_ANALOG 0x311 | ||
48 | |||
49 | #define STM32F746_PA4_FUNC_GPIO 0x400 | ||
50 | #define STM32F746_PA4_FUNC_SPI1_NSS_I2S1_WS 0x406 | ||
51 | #define STM32F746_PA4_FUNC_SPI3_NSS_I2S3_WS 0x407 | ||
52 | #define STM32F746_PA4_FUNC_USART2_CK 0x408 | ||
53 | #define STM32F746_PA4_FUNC_OTG_HS_SOF 0x40d | ||
54 | #define STM32F746_PA4_FUNC_DCMI_HSYNC 0x40e | ||
55 | #define STM32F746_PA4_FUNC_LCD_VSYNC 0x40f | ||
56 | #define STM32F746_PA4_FUNC_EVENTOUT 0x410 | ||
57 | #define STM32F746_PA4_FUNC_ANALOG 0x411 | ||
58 | |||
59 | #define STM32F746_PA5_FUNC_GPIO 0x500 | ||
60 | #define STM32F746_PA5_FUNC_TIM2_CH1_TIM2_ETR 0x502 | ||
61 | #define STM32F746_PA5_FUNC_TIM8_CH1N 0x504 | ||
62 | #define STM32F746_PA5_FUNC_SPI1_SCK_I2S1_CK 0x506 | ||
63 | #define STM32F746_PA5_FUNC_OTG_HS_ULPI_CK 0x50b | ||
64 | #define STM32F746_PA5_FUNC_LCD_R4 0x50f | ||
65 | #define STM32F746_PA5_FUNC_EVENTOUT 0x510 | ||
66 | #define STM32F746_PA5_FUNC_ANALOG 0x511 | ||
67 | |||
68 | #define STM32F746_PA6_FUNC_GPIO 0x600 | ||
69 | #define STM32F746_PA6_FUNC_TIM1_BKIN 0x602 | ||
70 | #define STM32F746_PA6_FUNC_TIM3_CH1 0x603 | ||
71 | #define STM32F746_PA6_FUNC_TIM8_BKIN 0x604 | ||
72 | #define STM32F746_PA6_FUNC_SPI1_MISO 0x606 | ||
73 | #define STM32F746_PA6_FUNC_TIM13_CH1 0x60a | ||
74 | #define STM32F746_PA6_FUNC_DCMI_PIXCLK 0x60e | ||
75 | #define STM32F746_PA6_FUNC_LCD_G2 0x60f | ||
76 | #define STM32F746_PA6_FUNC_EVENTOUT 0x610 | ||
77 | #define STM32F746_PA6_FUNC_ANALOG 0x611 | ||
78 | |||
79 | #define STM32F746_PA7_FUNC_GPIO 0x700 | ||
80 | #define STM32F746_PA7_FUNC_TIM1_CH1N 0x702 | ||
81 | #define STM32F746_PA7_FUNC_TIM3_CH2 0x703 | ||
82 | #define STM32F746_PA7_FUNC_TIM8_CH1N 0x704 | ||
83 | #define STM32F746_PA7_FUNC_SPI1_MOSI_I2S1_SD 0x706 | ||
84 | #define STM32F746_PA7_FUNC_TIM14_CH1 0x70a | ||
85 | #define STM32F746_PA7_FUNC_ETH_MII_RX_DV_ETH_RMII_CRS_DV 0x70c | ||
86 | #define STM32F746_PA7_FUNC_FMC_SDNWE 0x70d | ||
87 | #define STM32F746_PA7_FUNC_EVENTOUT 0x710 | ||
88 | #define STM32F746_PA7_FUNC_ANALOG 0x711 | ||
89 | |||
90 | #define STM32F746_PA8_FUNC_GPIO 0x800 | ||
91 | #define STM32F746_PA8_FUNC_MCO1 0x801 | ||
92 | #define STM32F746_PA8_FUNC_TIM1_CH1 0x802 | ||
93 | #define STM32F746_PA8_FUNC_TIM8_BKIN2 0x804 | ||
94 | #define STM32F746_PA8_FUNC_I2C3_SCL 0x805 | ||
95 | #define STM32F746_PA8_FUNC_USART1_CK 0x808 | ||
96 | #define STM32F746_PA8_FUNC_OTG_FS_SOF 0x80b | ||
97 | #define STM32F746_PA8_FUNC_LCD_R6 0x80f | ||
98 | #define STM32F746_PA8_FUNC_EVENTOUT 0x810 | ||
99 | #define STM32F746_PA8_FUNC_ANALOG 0x811 | ||
100 | |||
101 | #define STM32F746_PA9_FUNC_GPIO 0x900 | ||
102 | #define STM32F746_PA9_FUNC_TIM1_CH2 0x902 | ||
103 | #define STM32F746_PA9_FUNC_I2C3_SMBA 0x905 | ||
104 | #define STM32F746_PA9_FUNC_SPI2_SCK_I2S2_CK 0x906 | ||
105 | #define STM32F746_PA9_FUNC_USART1_TX 0x908 | ||
106 | #define STM32F746_PA9_FUNC_DCMI_D0 0x90e | ||
107 | #define STM32F746_PA9_FUNC_EVENTOUT 0x910 | ||
108 | #define STM32F746_PA9_FUNC_ANALOG 0x911 | ||
109 | |||
110 | #define STM32F746_PA10_FUNC_GPIO 0xa00 | ||
111 | #define STM32F746_PA10_FUNC_TIM1_CH3 0xa02 | ||
112 | #define STM32F746_PA10_FUNC_USART1_RX 0xa08 | ||
113 | #define STM32F746_PA10_FUNC_OTG_FS_ID 0xa0b | ||
114 | #define STM32F746_PA10_FUNC_DCMI_D1 0xa0e | ||
115 | #define STM32F746_PA10_FUNC_EVENTOUT 0xa10 | ||
116 | #define STM32F746_PA10_FUNC_ANALOG 0xa11 | ||
117 | |||
118 | #define STM32F746_PA11_FUNC_GPIO 0xb00 | ||
119 | #define STM32F746_PA11_FUNC_TIM1_CH4 0xb02 | ||
120 | #define STM32F746_PA11_FUNC_USART1_CTS 0xb08 | ||
121 | #define STM32F746_PA11_FUNC_CAN1_RX 0xb0a | ||
122 | #define STM32F746_PA11_FUNC_OTG_FS_DM 0xb0b | ||
123 | #define STM32F746_PA11_FUNC_LCD_R4 0xb0f | ||
124 | #define STM32F746_PA11_FUNC_EVENTOUT 0xb10 | ||
125 | #define STM32F746_PA11_FUNC_ANALOG 0xb11 | ||
126 | |||
127 | #define STM32F746_PA12_FUNC_GPIO 0xc00 | ||
128 | #define STM32F746_PA12_FUNC_TIM1_ETR 0xc02 | ||
129 | #define STM32F746_PA12_FUNC_USART1_RTS 0xc08 | ||
130 | #define STM32F746_PA12_FUNC_SAI2_FS_B 0xc09 | ||
131 | #define STM32F746_PA12_FUNC_CAN1_TX 0xc0a | ||
132 | #define STM32F746_PA12_FUNC_OTG_FS_DP 0xc0b | ||
133 | #define STM32F746_PA12_FUNC_LCD_R5 0xc0f | ||
134 | #define STM32F746_PA12_FUNC_EVENTOUT 0xc10 | ||
135 | #define STM32F746_PA12_FUNC_ANALOG 0xc11 | ||
136 | |||
137 | #define STM32F746_PA13_FUNC_GPIO 0xd00 | ||
138 | #define STM32F746_PA13_FUNC_JTMS_SWDIO 0xd01 | ||
139 | #define STM32F746_PA13_FUNC_EVENTOUT 0xd10 | ||
140 | #define STM32F746_PA13_FUNC_ANALOG 0xd11 | ||
141 | |||
142 | #define STM32F746_PA14_FUNC_GPIO 0xe00 | ||
143 | #define STM32F746_PA14_FUNC_JTCK_SWCLK 0xe01 | ||
144 | #define STM32F746_PA14_FUNC_EVENTOUT 0xe10 | ||
145 | #define STM32F746_PA14_FUNC_ANALOG 0xe11 | ||
146 | |||
147 | #define STM32F746_PA15_FUNC_GPIO 0xf00 | ||
148 | #define STM32F746_PA15_FUNC_JTDI 0xf01 | ||
149 | #define STM32F746_PA15_FUNC_TIM2_CH1_TIM2_ETR 0xf02 | ||
150 | #define STM32F746_PA15_FUNC_HDMI_CEC 0xf05 | ||
151 | #define STM32F746_PA15_FUNC_SPI1_NSS_I2S1_WS 0xf06 | ||
152 | #define STM32F746_PA15_FUNC_SPI3_NSS_I2S3_WS 0xf07 | ||
153 | #define STM32F746_PA15_FUNC_UART4_RTS 0xf09 | ||
154 | #define STM32F746_PA15_FUNC_EVENTOUT 0xf10 | ||
155 | #define STM32F746_PA15_FUNC_ANALOG 0xf11 | ||
156 | |||
157 | |||
158 | #define STM32F746_PB0_FUNC_GPIO 0x1000 | ||
159 | #define STM32F746_PB0_FUNC_TIM1_CH2N 0x1002 | ||
160 | #define STM32F746_PB0_FUNC_TIM3_CH3 0x1003 | ||
161 | #define STM32F746_PB0_FUNC_TIM8_CH2N 0x1004 | ||
162 | #define STM32F746_PB0_FUNC_UART4_CTS 0x1009 | ||
163 | #define STM32F746_PB0_FUNC_LCD_R3 0x100a | ||
164 | #define STM32F746_PB0_FUNC_OTG_HS_ULPI_D1 0x100b | ||
165 | #define STM32F746_PB0_FUNC_ETH_MII_RXD2 0x100c | ||
166 | #define STM32F746_PB0_FUNC_EVENTOUT 0x1010 | ||
167 | #define STM32F746_PB0_FUNC_ANALOG 0x1011 | ||
168 | |||
169 | #define STM32F746_PB1_FUNC_GPIO 0x1100 | ||
170 | #define STM32F746_PB1_FUNC_TIM1_CH3N 0x1102 | ||
171 | #define STM32F746_PB1_FUNC_TIM3_CH4 0x1103 | ||
172 | #define STM32F746_PB1_FUNC_TIM8_CH3N 0x1104 | ||
173 | #define STM32F746_PB1_FUNC_LCD_R6 0x110a | ||
174 | #define STM32F746_PB1_FUNC_OTG_HS_ULPI_D2 0x110b | ||
175 | #define STM32F746_PB1_FUNC_ETH_MII_RXD3 0x110c | ||
176 | #define STM32F746_PB1_FUNC_EVENTOUT 0x1110 | ||
177 | #define STM32F746_PB1_FUNC_ANALOG 0x1111 | ||
178 | |||
179 | #define STM32F746_PB2_FUNC_GPIO 0x1200 | ||
180 | #define STM32F746_PB2_FUNC_SAI1_SD_A 0x1207 | ||
181 | #define STM32F746_PB2_FUNC_SPI3_MOSI_I2S3_SD 0x1208 | ||
182 | #define STM32F746_PB2_FUNC_QUADSPI_CLK 0x120a | ||
183 | #define STM32F746_PB2_FUNC_EVENTOUT 0x1210 | ||
184 | #define STM32F746_PB2_FUNC_ANALOG 0x1211 | ||
185 | |||
186 | #define STM32F746_PB3_FUNC_GPIO 0x1300 | ||
187 | #define STM32F746_PB3_FUNC_JTDO_TRACESWO 0x1301 | ||
188 | #define STM32F746_PB3_FUNC_TIM2_CH2 0x1302 | ||
189 | #define STM32F746_PB3_FUNC_SPI1_SCK_I2S1_CK 0x1306 | ||
190 | #define STM32F746_PB3_FUNC_SPI3_SCK_I2S3_CK 0x1307 | ||
191 | #define STM32F746_PB3_FUNC_EVENTOUT 0x1310 | ||
192 | #define STM32F746_PB3_FUNC_ANALOG 0x1311 | ||
193 | |||
194 | #define STM32F746_PB4_FUNC_GPIO 0x1400 | ||
195 | #define STM32F746_PB4_FUNC_NJTRST 0x1401 | ||
196 | #define STM32F746_PB4_FUNC_TIM3_CH1 0x1403 | ||
197 | #define STM32F746_PB4_FUNC_SPI1_MISO 0x1406 | ||
198 | #define STM32F746_PB4_FUNC_SPI3_MISO 0x1407 | ||
199 | #define STM32F746_PB4_FUNC_SPI2_NSS_I2S2_WS 0x1408 | ||
200 | #define STM32F746_PB4_FUNC_EVENTOUT 0x1410 | ||
201 | #define STM32F746_PB4_FUNC_ANALOG 0x1411 | ||
202 | |||
203 | #define STM32F746_PB5_FUNC_GPIO 0x1500 | ||
204 | #define STM32F746_PB5_FUNC_TIM3_CH2 0x1503 | ||
205 | #define STM32F746_PB5_FUNC_I2C1_SMBA 0x1505 | ||
206 | #define STM32F746_PB5_FUNC_SPI1_MOSI_I2S1_SD 0x1506 | ||
207 | #define STM32F746_PB5_FUNC_SPI3_MOSI_I2S3_SD 0x1507 | ||
208 | #define STM32F746_PB5_FUNC_CAN2_RX 0x150a | ||
209 | #define STM32F746_PB5_FUNC_OTG_HS_ULPI_D7 0x150b | ||
210 | #define STM32F746_PB5_FUNC_ETH_PPS_OUT 0x150c | ||
211 | #define STM32F746_PB5_FUNC_FMC_SDCKE1 0x150d | ||
212 | #define STM32F746_PB5_FUNC_DCMI_D10 0x150e | ||
213 | #define STM32F746_PB5_FUNC_EVENTOUT 0x1510 | ||
214 | #define STM32F746_PB5_FUNC_ANALOG 0x1511 | ||
215 | |||
216 | #define STM32F746_PB6_FUNC_GPIO 0x1600 | ||
217 | #define STM32F746_PB6_FUNC_TIM4_CH1 0x1603 | ||
218 | #define STM32F746_PB6_FUNC_HDMI_CEC 0x1604 | ||
219 | #define STM32F746_PB6_FUNC_I2C1_SCL 0x1605 | ||
220 | #define STM32F746_PB6_FUNC_USART1_TX 0x1608 | ||
221 | #define STM32F746_PB6_FUNC_CAN2_TX 0x160a | ||
222 | #define STM32F746_PB6_FUNC_QUADSPI_BK1_NCS 0x160b | ||
223 | #define STM32F746_PB6_FUNC_FMC_SDNE1 0x160d | ||
224 | #define STM32F746_PB6_FUNC_DCMI_D5 0x160e | ||
225 | #define STM32F746_PB6_FUNC_EVENTOUT 0x1610 | ||
226 | #define STM32F746_PB6_FUNC_ANALOG 0x1611 | ||
227 | |||
228 | #define STM32F746_PB7_FUNC_GPIO 0x1700 | ||
229 | #define STM32F746_PB7_FUNC_TIM4_CH2 0x1703 | ||
230 | #define STM32F746_PB7_FUNC_I2C1_SDA 0x1705 | ||
231 | #define STM32F746_PB7_FUNC_USART1_RX 0x1708 | ||
232 | #define STM32F746_PB7_FUNC_FMC_NL 0x170d | ||
233 | #define STM32F746_PB7_FUNC_DCMI_VSYNC 0x170e | ||
234 | #define STM32F746_PB7_FUNC_EVENTOUT 0x1710 | ||
235 | #define STM32F746_PB7_FUNC_ANALOG 0x1711 | ||
236 | |||
237 | #define STM32F746_PB8_FUNC_GPIO 0x1800 | ||
238 | #define STM32F746_PB8_FUNC_TIM4_CH3 0x1803 | ||
239 | #define STM32F746_PB8_FUNC_TIM10_CH1 0x1804 | ||
240 | #define STM32F746_PB8_FUNC_I2C1_SCL 0x1805 | ||
241 | #define STM32F746_PB8_FUNC_CAN1_RX 0x180a | ||
242 | #define STM32F746_PB8_FUNC_ETH_MII_TXD3 0x180c | ||
243 | #define STM32F746_PB8_FUNC_SDMMC1_D4 0x180d | ||
244 | #define STM32F746_PB8_FUNC_DCMI_D6 0x180e | ||
245 | #define STM32F746_PB8_FUNC_LCD_B6 0x180f | ||
246 | #define STM32F746_PB8_FUNC_EVENTOUT 0x1810 | ||
247 | #define STM32F746_PB8_FUNC_ANALOG 0x1811 | ||
248 | |||
249 | #define STM32F746_PB9_FUNC_GPIO 0x1900 | ||
250 | #define STM32F746_PB9_FUNC_TIM4_CH4 0x1903 | ||
251 | #define STM32F746_PB9_FUNC_TIM11_CH1 0x1904 | ||
252 | #define STM32F746_PB9_FUNC_I2C1_SDA 0x1905 | ||
253 | #define STM32F746_PB9_FUNC_SPI2_NSS_I2S2_WS 0x1906 | ||
254 | #define STM32F746_PB9_FUNC_CAN1_TX 0x190a | ||
255 | #define STM32F746_PB9_FUNC_SDMMC1_D5 0x190d | ||
256 | #define STM32F746_PB9_FUNC_DCMI_D7 0x190e | ||
257 | #define STM32F746_PB9_FUNC_LCD_B7 0x190f | ||
258 | #define STM32F746_PB9_FUNC_EVENTOUT 0x1910 | ||
259 | #define STM32F746_PB9_FUNC_ANALOG 0x1911 | ||
260 | |||
261 | #define STM32F746_PB10_FUNC_GPIO 0x1a00 | ||
262 | #define STM32F746_PB10_FUNC_TIM2_CH3 0x1a02 | ||
263 | #define STM32F746_PB10_FUNC_I2C2_SCL 0x1a05 | ||
264 | #define STM32F746_PB10_FUNC_SPI2_SCK_I2S2_CK 0x1a06 | ||
265 | #define STM32F746_PB10_FUNC_USART3_TX 0x1a08 | ||
266 | #define STM32F746_PB10_FUNC_OTG_HS_ULPI_D3 0x1a0b | ||
267 | #define STM32F746_PB10_FUNC_ETH_MII_RX_ER 0x1a0c | ||
268 | #define STM32F746_PB10_FUNC_LCD_G4 0x1a0f | ||
269 | #define STM32F746_PB10_FUNC_EVENTOUT 0x1a10 | ||
270 | #define STM32F746_PB10_FUNC_ANALOG 0x1a11 | ||
271 | |||
272 | #define STM32F746_PB11_FUNC_GPIO 0x1b00 | ||
273 | #define STM32F746_PB11_FUNC_TIM2_CH4 0x1b02 | ||
274 | #define STM32F746_PB11_FUNC_I2C2_SDA 0x1b05 | ||
275 | #define STM32F746_PB11_FUNC_USART3_RX 0x1b08 | ||
276 | #define STM32F746_PB11_FUNC_OTG_HS_ULPI_D4 0x1b0b | ||
277 | #define STM32F746_PB11_FUNC_ETH_MII_TX_EN_ETH_RMII_TX_EN 0x1b0c | ||
278 | #define STM32F746_PB11_FUNC_LCD_G5 0x1b0f | ||
279 | #define STM32F746_PB11_FUNC_EVENTOUT 0x1b10 | ||
280 | #define STM32F746_PB11_FUNC_ANALOG 0x1b11 | ||
281 | |||
282 | #define STM32F746_PB12_FUNC_GPIO 0x1c00 | ||
283 | #define STM32F746_PB12_FUNC_TIM1_BKIN 0x1c02 | ||
284 | #define STM32F746_PB12_FUNC_I2C2_SMBA 0x1c05 | ||
285 | #define STM32F746_PB12_FUNC_SPI2_NSS_I2S2_WS 0x1c06 | ||
286 | #define STM32F746_PB12_FUNC_USART3_CK 0x1c08 | ||
287 | #define STM32F746_PB12_FUNC_CAN2_RX 0x1c0a | ||
288 | #define STM32F746_PB12_FUNC_OTG_HS_ULPI_D5 0x1c0b | ||
289 | #define STM32F746_PB12_FUNC_ETH_MII_TXD0_ETH_RMII_TXD0 0x1c0c | ||
290 | #define STM32F746_PB12_FUNC_OTG_HS_ID 0x1c0d | ||
291 | #define STM32F746_PB12_FUNC_EVENTOUT 0x1c10 | ||
292 | #define STM32F746_PB12_FUNC_ANALOG 0x1c11 | ||
293 | |||
294 | #define STM32F746_PB13_FUNC_GPIO 0x1d00 | ||
295 | #define STM32F746_PB13_FUNC_TIM1_CH1N 0x1d02 | ||
296 | #define STM32F746_PB13_FUNC_SPI2_SCK_I2S2_CK 0x1d06 | ||
297 | #define STM32F746_PB13_FUNC_USART3_CTS 0x1d08 | ||
298 | #define STM32F746_PB13_FUNC_CAN2_TX 0x1d0a | ||
299 | #define STM32F746_PB13_FUNC_OTG_HS_ULPI_D6 0x1d0b | ||
300 | #define STM32F746_PB13_FUNC_ETH_MII_TXD1_ETH_RMII_TXD1 0x1d0c | ||
301 | #define STM32F746_PB13_FUNC_EVENTOUT 0x1d10 | ||
302 | #define STM32F746_PB13_FUNC_ANALOG 0x1d11 | ||
303 | |||
304 | #define STM32F746_PB14_FUNC_GPIO 0x1e00 | ||
305 | #define STM32F746_PB14_FUNC_TIM1_CH2N 0x1e02 | ||
306 | #define STM32F746_PB14_FUNC_TIM8_CH2N 0x1e04 | ||
307 | #define STM32F746_PB14_FUNC_SPI2_MISO 0x1e06 | ||
308 | #define STM32F746_PB14_FUNC_USART3_RTS 0x1e08 | ||
309 | #define STM32F746_PB14_FUNC_TIM12_CH1 0x1e0a | ||
310 | #define STM32F746_PB14_FUNC_OTG_HS_DM 0x1e0d | ||
311 | #define STM32F746_PB14_FUNC_EVENTOUT 0x1e10 | ||
312 | #define STM32F746_PB14_FUNC_ANALOG 0x1e11 | ||
313 | |||
314 | #define STM32F746_PB15_FUNC_GPIO 0x1f00 | ||
315 | #define STM32F746_PB15_FUNC_RTC_REFIN 0x1f01 | ||
316 | #define STM32F746_PB15_FUNC_TIM1_CH3N 0x1f02 | ||
317 | #define STM32F746_PB15_FUNC_TIM8_CH3N 0x1f04 | ||
318 | #define STM32F746_PB15_FUNC_SPI2_MOSI_I2S2_SD 0x1f06 | ||
319 | #define STM32F746_PB15_FUNC_TIM12_CH2 0x1f0a | ||
320 | #define STM32F746_PB15_FUNC_OTG_HS_DP 0x1f0d | ||
321 | #define STM32F746_PB15_FUNC_EVENTOUT 0x1f10 | ||
322 | #define STM32F746_PB15_FUNC_ANALOG 0x1f11 | ||
323 | |||
324 | |||
325 | #define STM32F746_PC0_FUNC_GPIO 0x2000 | ||
326 | #define STM32F746_PC0_FUNC_SAI2_FS_B 0x2009 | ||
327 | #define STM32F746_PC0_FUNC_OTG_HS_ULPI_STP 0x200b | ||
328 | #define STM32F746_PC0_FUNC_FMC_SDNWE 0x200d | ||
329 | #define STM32F746_PC0_FUNC_LCD_R5 0x200f | ||
330 | #define STM32F746_PC0_FUNC_EVENTOUT 0x2010 | ||
331 | #define STM32F746_PC0_FUNC_ANALOG 0x2011 | ||
332 | |||
333 | #define STM32F746_PC1_FUNC_GPIO 0x2100 | ||
334 | #define STM32F746_PC1_FUNC_TRACED0 0x2101 | ||
335 | #define STM32F746_PC1_FUNC_SPI2_MOSI_I2S2_SD 0x2106 | ||
336 | #define STM32F746_PC1_FUNC_SAI1_SD_A 0x2107 | ||
337 | #define STM32F746_PC1_FUNC_ETH_MDC 0x210c | ||
338 | #define STM32F746_PC1_FUNC_EVENTOUT 0x2110 | ||
339 | #define STM32F746_PC1_FUNC_ANALOG 0x2111 | ||
340 | |||
341 | #define STM32F746_PC2_FUNC_GPIO 0x2200 | ||
342 | #define STM32F746_PC2_FUNC_SPI2_MISO 0x2206 | ||
343 | #define STM32F746_PC2_FUNC_OTG_HS_ULPI_DIR 0x220b | ||
344 | #define STM32F746_PC2_FUNC_ETH_MII_TXD2 0x220c | ||
345 | #define STM32F746_PC2_FUNC_FMC_SDNE0 0x220d | ||
346 | #define STM32F746_PC2_FUNC_EVENTOUT 0x2210 | ||
347 | #define STM32F746_PC2_FUNC_ANALOG 0x2211 | ||
348 | |||
349 | #define STM32F746_PC3_FUNC_GPIO 0x2300 | ||
350 | #define STM32F746_PC3_FUNC_SPI2_MOSI_I2S2_SD 0x2306 | ||
351 | #define STM32F746_PC3_FUNC_OTG_HS_ULPI_NXT 0x230b | ||
352 | #define STM32F746_PC3_FUNC_ETH_MII_TX_CLK 0x230c | ||
353 | #define STM32F746_PC3_FUNC_FMC_SDCKE0 0x230d | ||
354 | #define STM32F746_PC3_FUNC_EVENTOUT 0x2310 | ||
355 | #define STM32F746_PC3_FUNC_ANALOG 0x2311 | ||
356 | |||
357 | #define STM32F746_PC4_FUNC_GPIO 0x2400 | ||
358 | #define STM32F746_PC4_FUNC_I2S1_MCK 0x2406 | ||
359 | #define STM32F746_PC4_FUNC_SPDIFRX_IN2 0x2409 | ||
360 | #define STM32F746_PC4_FUNC_ETH_MII_RXD0_ETH_RMII_RXD0 0x240c | ||
361 | #define STM32F746_PC4_FUNC_FMC_SDNE0 0x240d | ||
362 | #define STM32F746_PC4_FUNC_EVENTOUT 0x2410 | ||
363 | #define STM32F746_PC4_FUNC_ANALOG 0x2411 | ||
364 | |||
365 | #define STM32F746_PC5_FUNC_GPIO 0x2500 | ||
366 | #define STM32F746_PC5_FUNC_SPDIFRX_IN3 0x2509 | ||
367 | #define STM32F746_PC5_FUNC_ETH_MII_RXD1_ETH_RMII_RXD1 0x250c | ||
368 | #define STM32F746_PC5_FUNC_FMC_SDCKE0 0x250d | ||
369 | #define STM32F746_PC5_FUNC_EVENTOUT 0x2510 | ||
370 | #define STM32F746_PC5_FUNC_ANALOG 0x2511 | ||
371 | |||
372 | #define STM32F746_PC6_FUNC_GPIO 0x2600 | ||
373 | #define STM32F746_PC6_FUNC_TIM3_CH1 0x2603 | ||
374 | #define STM32F746_PC6_FUNC_TIM8_CH1 0x2604 | ||
375 | #define STM32F746_PC6_FUNC_I2S2_MCK 0x2606 | ||
376 | #define STM32F746_PC6_FUNC_USART6_TX 0x2609 | ||
377 | #define STM32F746_PC6_FUNC_SDMMC1_D6 0x260d | ||
378 | #define STM32F746_PC6_FUNC_DCMI_D0 0x260e | ||
379 | #define STM32F746_PC6_FUNC_LCD_HSYNC 0x260f | ||
380 | #define STM32F746_PC6_FUNC_EVENTOUT 0x2610 | ||
381 | #define STM32F746_PC6_FUNC_ANALOG 0x2611 | ||
382 | |||
383 | #define STM32F746_PC7_FUNC_GPIO 0x2700 | ||
384 | #define STM32F746_PC7_FUNC_TIM3_CH2 0x2703 | ||
385 | #define STM32F746_PC7_FUNC_TIM8_CH2 0x2704 | ||
386 | #define STM32F746_PC7_FUNC_I2S3_MCK 0x2707 | ||
387 | #define STM32F746_PC7_FUNC_USART6_RX 0x2709 | ||
388 | #define STM32F746_PC7_FUNC_SDMMC1_D7 0x270d | ||
389 | #define STM32F746_PC7_FUNC_DCMI_D1 0x270e | ||
390 | #define STM32F746_PC7_FUNC_LCD_G6 0x270f | ||
391 | #define STM32F746_PC7_FUNC_EVENTOUT 0x2710 | ||
392 | #define STM32F746_PC7_FUNC_ANALOG 0x2711 | ||
393 | |||
394 | #define STM32F746_PC8_FUNC_GPIO 0x2800 | ||
395 | #define STM32F746_PC8_FUNC_TRACED1 0x2801 | ||
396 | #define STM32F746_PC8_FUNC_TIM3_CH3 0x2803 | ||
397 | #define STM32F746_PC8_FUNC_TIM8_CH3 0x2804 | ||
398 | #define STM32F746_PC8_FUNC_UART5_RTS 0x2808 | ||
399 | #define STM32F746_PC8_FUNC_USART6_CK 0x2809 | ||
400 | #define STM32F746_PC8_FUNC_SDMMC1_D0 0x280d | ||
401 | #define STM32F746_PC8_FUNC_DCMI_D2 0x280e | ||
402 | #define STM32F746_PC8_FUNC_EVENTOUT 0x2810 | ||
403 | #define STM32F746_PC8_FUNC_ANALOG 0x2811 | ||
404 | |||
405 | #define STM32F746_PC9_FUNC_GPIO 0x2900 | ||
406 | #define STM32F746_PC9_FUNC_MCO2 0x2901 | ||
407 | #define STM32F746_PC9_FUNC_TIM3_CH4 0x2903 | ||
408 | #define STM32F746_PC9_FUNC_TIM8_CH4 0x2904 | ||
409 | #define STM32F746_PC9_FUNC_I2C3_SDA 0x2905 | ||
410 | #define STM32F746_PC9_FUNC_I2S_CKIN 0x2906 | ||
411 | #define STM32F746_PC9_FUNC_UART5_CTS 0x2908 | ||
412 | #define STM32F746_PC9_FUNC_QUADSPI_BK1_IO0 0x290a | ||
413 | #define STM32F746_PC9_FUNC_SDMMC1_D1 0x290d | ||
414 | #define STM32F746_PC9_FUNC_DCMI_D3 0x290e | ||
415 | #define STM32F746_PC9_FUNC_EVENTOUT 0x2910 | ||
416 | #define STM32F746_PC9_FUNC_ANALOG 0x2911 | ||
417 | |||
418 | #define STM32F746_PC10_FUNC_GPIO 0x2a00 | ||
419 | #define STM32F746_PC10_FUNC_SPI3_SCK_I2S3_CK 0x2a07 | ||
420 | #define STM32F746_PC10_FUNC_USART3_TX 0x2a08 | ||
421 | #define STM32F746_PC10_FUNC_UART4_TX 0x2a09 | ||
422 | #define STM32F746_PC10_FUNC_QUADSPI_BK1_IO1 0x2a0a | ||
423 | #define STM32F746_PC10_FUNC_SDMMC1_D2 0x2a0d | ||
424 | #define STM32F746_PC10_FUNC_DCMI_D8 0x2a0e | ||
425 | #define STM32F746_PC10_FUNC_LCD_R2 0x2a0f | ||
426 | #define STM32F746_PC10_FUNC_EVENTOUT 0x2a10 | ||
427 | #define STM32F746_PC10_FUNC_ANALOG 0x2a11 | ||
428 | |||
429 | #define STM32F746_PC11_FUNC_GPIO 0x2b00 | ||
430 | #define STM32F746_PC11_FUNC_SPI3_MISO 0x2b07 | ||
431 | #define STM32F746_PC11_FUNC_USART3_RX 0x2b08 | ||
432 | #define STM32F746_PC11_FUNC_UART4_RX 0x2b09 | ||
433 | #define STM32F746_PC11_FUNC_QUADSPI_BK2_NCS 0x2b0a | ||
434 | #define STM32F746_PC11_FUNC_SDMMC1_D3 0x2b0d | ||
435 | #define STM32F746_PC11_FUNC_DCMI_D4 0x2b0e | ||
436 | #define STM32F746_PC11_FUNC_EVENTOUT 0x2b10 | ||
437 | #define STM32F746_PC11_FUNC_ANALOG 0x2b11 | ||
438 | |||
439 | #define STM32F746_PC12_FUNC_GPIO 0x2c00 | ||
440 | #define STM32F746_PC12_FUNC_TRACED3 0x2c01 | ||
441 | #define STM32F746_PC12_FUNC_SPI3_MOSI_I2S3_SD 0x2c07 | ||
442 | #define STM32F746_PC12_FUNC_USART3_CK 0x2c08 | ||
443 | #define STM32F746_PC12_FUNC_UART5_TX 0x2c09 | ||
444 | #define STM32F746_PC12_FUNC_SDMMC1_CK 0x2c0d | ||
445 | #define STM32F746_PC12_FUNC_DCMI_D9 0x2c0e | ||
446 | #define STM32F746_PC12_FUNC_EVENTOUT 0x2c10 | ||
447 | #define STM32F746_PC12_FUNC_ANALOG 0x2c11 | ||
448 | |||
449 | #define STM32F746_PC13_FUNC_GPIO 0x2d00 | ||
450 | #define STM32F746_PC13_FUNC_EVENTOUT 0x2d10 | ||
451 | #define STM32F746_PC13_FUNC_ANALOG 0x2d11 | ||
452 | |||
453 | #define STM32F746_PC14_FUNC_GPIO 0x2e00 | ||
454 | #define STM32F746_PC14_FUNC_EVENTOUT 0x2e10 | ||
455 | #define STM32F746_PC14_FUNC_ANALOG 0x2e11 | ||
456 | |||
457 | #define STM32F746_PC15_FUNC_GPIO 0x2f00 | ||
458 | #define STM32F746_PC15_FUNC_EVENTOUT 0x2f10 | ||
459 | #define STM32F746_PC15_FUNC_ANALOG 0x2f11 | ||
460 | |||
461 | |||
462 | #define STM32F746_PD0_FUNC_GPIO 0x3000 | ||
463 | #define STM32F746_PD0_FUNC_CAN1_RX 0x300a | ||
464 | #define STM32F746_PD0_FUNC_FMC_D2 0x300d | ||
465 | #define STM32F746_PD0_FUNC_EVENTOUT 0x3010 | ||
466 | #define STM32F746_PD0_FUNC_ANALOG 0x3011 | ||
467 | |||
468 | #define STM32F746_PD1_FUNC_GPIO 0x3100 | ||
469 | #define STM32F746_PD1_FUNC_CAN1_TX 0x310a | ||
470 | #define STM32F746_PD1_FUNC_FMC_D3 0x310d | ||
471 | #define STM32F746_PD1_FUNC_EVENTOUT 0x3110 | ||
472 | #define STM32F746_PD1_FUNC_ANALOG 0x3111 | ||
473 | |||
474 | #define STM32F746_PD2_FUNC_GPIO 0x3200 | ||
475 | #define STM32F746_PD2_FUNC_TRACED2 0x3201 | ||
476 | #define STM32F746_PD2_FUNC_TIM3_ETR 0x3203 | ||
477 | #define STM32F746_PD2_FUNC_UART5_RX 0x3209 | ||
478 | #define STM32F746_PD2_FUNC_SDMMC1_CMD 0x320d | ||
479 | #define STM32F746_PD2_FUNC_DCMI_D11 0x320e | ||
480 | #define STM32F746_PD2_FUNC_EVENTOUT 0x3210 | ||
481 | #define STM32F746_PD2_FUNC_ANALOG 0x3211 | ||
482 | |||
483 | #define STM32F746_PD3_FUNC_GPIO 0x3300 | ||
484 | #define STM32F746_PD3_FUNC_SPI2_SCK_I2S2_CK 0x3306 | ||
485 | #define STM32F746_PD3_FUNC_USART2_CTS 0x3308 | ||
486 | #define STM32F746_PD3_FUNC_FMC_CLK 0x330d | ||
487 | #define STM32F746_PD3_FUNC_DCMI_D5 0x330e | ||
488 | #define STM32F746_PD3_FUNC_LCD_G7 0x330f | ||
489 | #define STM32F746_PD3_FUNC_EVENTOUT 0x3310 | ||
490 | #define STM32F746_PD3_FUNC_ANALOG 0x3311 | ||
491 | |||
492 | #define STM32F746_PD4_FUNC_GPIO 0x3400 | ||
493 | #define STM32F746_PD4_FUNC_USART2_RTS 0x3408 | ||
494 | #define STM32F746_PD4_FUNC_FMC_NOE 0x340d | ||
495 | #define STM32F746_PD4_FUNC_EVENTOUT 0x3410 | ||
496 | #define STM32F746_PD4_FUNC_ANALOG 0x3411 | ||
497 | |||
498 | #define STM32F746_PD5_FUNC_GPIO 0x3500 | ||
499 | #define STM32F746_PD5_FUNC_USART2_TX 0x3508 | ||
500 | #define STM32F746_PD5_FUNC_FMC_NWE 0x350d | ||
501 | #define STM32F746_PD5_FUNC_EVENTOUT 0x3510 | ||
502 | #define STM32F746_PD5_FUNC_ANALOG 0x3511 | ||
503 | |||
504 | #define STM32F746_PD6_FUNC_GPIO 0x3600 | ||
505 | #define STM32F746_PD6_FUNC_SPI3_MOSI_I2S3_SD 0x3606 | ||
506 | #define STM32F746_PD6_FUNC_SAI1_SD_A 0x3607 | ||
507 | #define STM32F746_PD6_FUNC_USART2_RX 0x3608 | ||
508 | #define STM32F746_PD6_FUNC_FMC_NWAIT 0x360d | ||
509 | #define STM32F746_PD6_FUNC_DCMI_D10 0x360e | ||
510 | #define STM32F746_PD6_FUNC_LCD_B2 0x360f | ||
511 | #define STM32F746_PD6_FUNC_EVENTOUT 0x3610 | ||
512 | #define STM32F746_PD6_FUNC_ANALOG 0x3611 | ||
513 | |||
514 | #define STM32F746_PD7_FUNC_GPIO 0x3700 | ||
515 | #define STM32F746_PD7_FUNC_USART2_CK 0x3708 | ||
516 | #define STM32F746_PD7_FUNC_SPDIFRX_IN0 0x3709 | ||
517 | #define STM32F746_PD7_FUNC_FMC_NE1 0x370d | ||
518 | #define STM32F746_PD7_FUNC_EVENTOUT 0x3710 | ||
519 | #define STM32F746_PD7_FUNC_ANALOG 0x3711 | ||
520 | |||
521 | #define STM32F746_PD8_FUNC_GPIO 0x3800 | ||
522 | #define STM32F746_PD8_FUNC_USART3_TX 0x3808 | ||
523 | #define STM32F746_PD8_FUNC_SPDIFRX_IN1 0x3809 | ||
524 | #define STM32F746_PD8_FUNC_FMC_D13 0x380d | ||
525 | #define STM32F746_PD8_FUNC_EVENTOUT 0x3810 | ||
526 | #define STM32F746_PD8_FUNC_ANALOG 0x3811 | ||
527 | |||
528 | #define STM32F746_PD9_FUNC_GPIO 0x3900 | ||
529 | #define STM32F746_PD9_FUNC_USART3_RX 0x3908 | ||
530 | #define STM32F746_PD9_FUNC_FMC_D14 0x390d | ||
531 | #define STM32F746_PD9_FUNC_EVENTOUT 0x3910 | ||
532 | #define STM32F746_PD9_FUNC_ANALOG 0x3911 | ||
533 | |||
534 | #define STM32F746_PD10_FUNC_GPIO 0x3a00 | ||
535 | #define STM32F746_PD10_FUNC_USART3_CK 0x3a08 | ||
536 | #define STM32F746_PD10_FUNC_FMC_D15 0x3a0d | ||
537 | #define STM32F746_PD10_FUNC_LCD_B3 0x3a0f | ||
538 | #define STM32F746_PD10_FUNC_EVENTOUT 0x3a10 | ||
539 | #define STM32F746_PD10_FUNC_ANALOG 0x3a11 | ||
540 | |||
541 | #define STM32F746_PD11_FUNC_GPIO 0x3b00 | ||
542 | #define STM32F746_PD11_FUNC_I2C4_SMBA 0x3b05 | ||
543 | #define STM32F746_PD11_FUNC_USART3_CTS 0x3b08 | ||
544 | #define STM32F746_PD11_FUNC_QUADSPI_BK1_IO0 0x3b0a | ||
545 | #define STM32F746_PD11_FUNC_SAI2_SD_A 0x3b0b | ||
546 | #define STM32F746_PD11_FUNC_FMC_A16_FMC_CLE 0x3b0d | ||
547 | #define STM32F746_PD11_FUNC_EVENTOUT 0x3b10 | ||
548 | #define STM32F746_PD11_FUNC_ANALOG 0x3b11 | ||
549 | |||
550 | #define STM32F746_PD12_FUNC_GPIO 0x3c00 | ||
551 | #define STM32F746_PD12_FUNC_TIM4_CH1 0x3c03 | ||
552 | #define STM32F746_PD12_FUNC_LPTIM1_IN1 0x3c04 | ||
553 | #define STM32F746_PD12_FUNC_I2C4_SCL 0x3c05 | ||
554 | #define STM32F746_PD12_FUNC_USART3_RTS 0x3c08 | ||
555 | #define STM32F746_PD12_FUNC_QUADSPI_BK1_IO1 0x3c0a | ||
556 | #define STM32F746_PD12_FUNC_SAI2_FS_A 0x3c0b | ||
557 | #define STM32F746_PD12_FUNC_FMC_A17_FMC_ALE 0x3c0d | ||
558 | #define STM32F746_PD12_FUNC_EVENTOUT 0x3c10 | ||
559 | #define STM32F746_PD12_FUNC_ANALOG 0x3c11 | ||
560 | |||
561 | #define STM32F746_PD13_FUNC_GPIO 0x3d00 | ||
562 | #define STM32F746_PD13_FUNC_TIM4_CH2 0x3d03 | ||
563 | #define STM32F746_PD13_FUNC_LPTIM1_OUT 0x3d04 | ||
564 | #define STM32F746_PD13_FUNC_I2C4_SDA 0x3d05 | ||
565 | #define STM32F746_PD13_FUNC_QUADSPI_BK1_IO3 0x3d0a | ||
566 | #define STM32F746_PD13_FUNC_SAI2_SCK_A 0x3d0b | ||
567 | #define STM32F746_PD13_FUNC_FMC_A18 0x3d0d | ||
568 | #define STM32F746_PD13_FUNC_EVENTOUT 0x3d10 | ||
569 | #define STM32F746_PD13_FUNC_ANALOG 0x3d11 | ||
570 | |||
571 | #define STM32F746_PD14_FUNC_GPIO 0x3e00 | ||
572 | #define STM32F746_PD14_FUNC_TIM4_CH3 0x3e03 | ||
573 | #define STM32F746_PD14_FUNC_UART8_CTS 0x3e09 | ||
574 | #define STM32F746_PD14_FUNC_FMC_D0 0x3e0d | ||
575 | #define STM32F746_PD14_FUNC_EVENTOUT 0x3e10 | ||
576 | #define STM32F746_PD14_FUNC_ANALOG 0x3e11 | ||
577 | |||
578 | #define STM32F746_PD15_FUNC_GPIO 0x3f00 | ||
579 | #define STM32F746_PD15_FUNC_TIM4_CH4 0x3f03 | ||
580 | #define STM32F746_PD15_FUNC_UART8_RTS 0x3f09 | ||
581 | #define STM32F746_PD15_FUNC_FMC_D1 0x3f0d | ||
582 | #define STM32F746_PD15_FUNC_EVENTOUT 0x3f10 | ||
583 | #define STM32F746_PD15_FUNC_ANALOG 0x3f11 | ||
584 | |||
585 | |||
586 | #define STM32F746_PE0_FUNC_GPIO 0x4000 | ||
587 | #define STM32F746_PE0_FUNC_TIM4_ETR 0x4003 | ||
588 | #define STM32F746_PE0_FUNC_LPTIM1_ETR 0x4004 | ||
589 | #define STM32F746_PE0_FUNC_UART8_RX 0x4009 | ||
590 | #define STM32F746_PE0_FUNC_SAI2_MCLK_A 0x400b | ||
591 | #define STM32F746_PE0_FUNC_FMC_NBL0 0x400d | ||
592 | #define STM32F746_PE0_FUNC_DCMI_D2 0x400e | ||
593 | #define STM32F746_PE0_FUNC_EVENTOUT 0x4010 | ||
594 | #define STM32F746_PE0_FUNC_ANALOG 0x4011 | ||
595 | |||
596 | #define STM32F746_PE1_FUNC_GPIO 0x4100 | ||
597 | #define STM32F746_PE1_FUNC_LPTIM1_IN2 0x4104 | ||
598 | #define STM32F746_PE1_FUNC_UART8_TX 0x4109 | ||
599 | #define STM32F746_PE1_FUNC_FMC_NBL1 0x410d | ||
600 | #define STM32F746_PE1_FUNC_DCMI_D3 0x410e | ||
601 | #define STM32F746_PE1_FUNC_EVENTOUT 0x4110 | ||
602 | #define STM32F746_PE1_FUNC_ANALOG 0x4111 | ||
603 | |||
604 | #define STM32F746_PE2_FUNC_GPIO 0x4200 | ||
605 | #define STM32F746_PE2_FUNC_TRACECLK 0x4201 | ||
606 | #define STM32F746_PE2_FUNC_SPI4_SCK 0x4206 | ||
607 | #define STM32F746_PE2_FUNC_SAI1_MCLK_A 0x4207 | ||
608 | #define STM32F746_PE2_FUNC_QUADSPI_BK1_IO2 0x420a | ||
609 | #define STM32F746_PE2_FUNC_ETH_MII_TXD3 0x420c | ||
610 | #define STM32F746_PE2_FUNC_FMC_A23 0x420d | ||
611 | #define STM32F746_PE2_FUNC_EVENTOUT 0x4210 | ||
612 | #define STM32F746_PE2_FUNC_ANALOG 0x4211 | ||
613 | |||
614 | #define STM32F746_PE3_FUNC_GPIO 0x4300 | ||
615 | #define STM32F746_PE3_FUNC_TRACED0 0x4301 | ||
616 | #define STM32F746_PE3_FUNC_SAI1_SD_B 0x4307 | ||
617 | #define STM32F746_PE3_FUNC_FMC_A19 0x430d | ||
618 | #define STM32F746_PE3_FUNC_EVENTOUT 0x4310 | ||
619 | #define STM32F746_PE3_FUNC_ANALOG 0x4311 | ||
620 | |||
621 | #define STM32F746_PE4_FUNC_GPIO 0x4400 | ||
622 | #define STM32F746_PE4_FUNC_TRACED1 0x4401 | ||
623 | #define STM32F746_PE4_FUNC_SPI4_NSS 0x4406 | ||
624 | #define STM32F746_PE4_FUNC_SAI1_FS_A 0x4407 | ||
625 | #define STM32F746_PE4_FUNC_FMC_A20 0x440d | ||
626 | #define STM32F746_PE4_FUNC_DCMI_D4 0x440e | ||
627 | #define STM32F746_PE4_FUNC_LCD_B0 0x440f | ||
628 | #define STM32F746_PE4_FUNC_EVENTOUT 0x4410 | ||
629 | #define STM32F746_PE4_FUNC_ANALOG 0x4411 | ||
630 | |||
631 | #define STM32F746_PE5_FUNC_GPIO 0x4500 | ||
632 | #define STM32F746_PE5_FUNC_TRACED2 0x4501 | ||
633 | #define STM32F746_PE5_FUNC_TIM9_CH1 0x4504 | ||
634 | #define STM32F746_PE5_FUNC_SPI4_MISO 0x4506 | ||
635 | #define STM32F746_PE5_FUNC_SAI1_SCK_A 0x4507 | ||
636 | #define STM32F746_PE5_FUNC_FMC_A21 0x450d | ||
637 | #define STM32F746_PE5_FUNC_DCMI_D6 0x450e | ||
638 | #define STM32F746_PE5_FUNC_LCD_G0 0x450f | ||
639 | #define STM32F746_PE5_FUNC_EVENTOUT 0x4510 | ||
640 | #define STM32F746_PE5_FUNC_ANALOG 0x4511 | ||
641 | |||
642 | #define STM32F746_PE6_FUNC_GPIO 0x4600 | ||
643 | #define STM32F746_PE6_FUNC_TRACED3 0x4601 | ||
644 | #define STM32F746_PE6_FUNC_TIM1_BKIN2 0x4602 | ||
645 | #define STM32F746_PE6_FUNC_TIM9_CH2 0x4604 | ||
646 | #define STM32F746_PE6_FUNC_SPI4_MOSI 0x4606 | ||
647 | #define STM32F746_PE6_FUNC_SAI1_SD_A 0x4607 | ||
648 | #define STM32F746_PE6_FUNC_SAI2_MCLK_B 0x460b | ||
649 | #define STM32F746_PE6_FUNC_FMC_A22 0x460d | ||
650 | #define STM32F746_PE6_FUNC_DCMI_D7 0x460e | ||
651 | #define STM32F746_PE6_FUNC_LCD_G1 0x460f | ||
652 | #define STM32F746_PE6_FUNC_EVENTOUT 0x4610 | ||
653 | #define STM32F746_PE6_FUNC_ANALOG 0x4611 | ||
654 | |||
655 | #define STM32F746_PE7_FUNC_GPIO 0x4700 | ||
656 | #define STM32F746_PE7_FUNC_TIM1_ETR 0x4702 | ||
657 | #define STM32F746_PE7_FUNC_UART7_RX 0x4709 | ||
658 | #define STM32F746_PE7_FUNC_QUADSPI_BK2_IO0 0x470b | ||
659 | #define STM32F746_PE7_FUNC_FMC_D4 0x470d | ||
660 | #define STM32F746_PE7_FUNC_EVENTOUT 0x4710 | ||
661 | #define STM32F746_PE7_FUNC_ANALOG 0x4711 | ||
662 | |||
663 | #define STM32F746_PE8_FUNC_GPIO 0x4800 | ||
664 | #define STM32F746_PE8_FUNC_TIM1_CH1N 0x4802 | ||
665 | #define STM32F746_PE8_FUNC_UART7_TX 0x4809 | ||
666 | #define STM32F746_PE8_FUNC_QUADSPI_BK2_IO1 0x480b | ||
667 | #define STM32F746_PE8_FUNC_FMC_D5 0x480d | ||
668 | #define STM32F746_PE8_FUNC_EVENTOUT 0x4810 | ||
669 | #define STM32F746_PE8_FUNC_ANALOG 0x4811 | ||
670 | |||
671 | #define STM32F746_PE9_FUNC_GPIO 0x4900 | ||
672 | #define STM32F746_PE9_FUNC_TIM1_CH1 0x4902 | ||
673 | #define STM32F746_PE9_FUNC_UART7_RTS 0x4909 | ||
674 | #define STM32F746_PE9_FUNC_QUADSPI_BK2_IO2 0x490b | ||
675 | #define STM32F746_PE9_FUNC_FMC_D6 0x490d | ||
676 | #define STM32F746_PE9_FUNC_EVENTOUT 0x4910 | ||
677 | #define STM32F746_PE9_FUNC_ANALOG 0x4911 | ||
678 | |||
679 | #define STM32F746_PE10_FUNC_GPIO 0x4a00 | ||
680 | #define STM32F746_PE10_FUNC_TIM1_CH2N 0x4a02 | ||
681 | #define STM32F746_PE10_FUNC_UART7_CTS 0x4a09 | ||
682 | #define STM32F746_PE10_FUNC_QUADSPI_BK2_IO3 0x4a0b | ||
683 | #define STM32F746_PE10_FUNC_FMC_D7 0x4a0d | ||
684 | #define STM32F746_PE10_FUNC_EVENTOUT 0x4a10 | ||
685 | #define STM32F746_PE10_FUNC_ANALOG 0x4a11 | ||
686 | |||
687 | #define STM32F746_PE11_FUNC_GPIO 0x4b00 | ||
688 | #define STM32F746_PE11_FUNC_TIM1_CH2 0x4b02 | ||
689 | #define STM32F746_PE11_FUNC_SPI4_NSS 0x4b06 | ||
690 | #define STM32F746_PE11_FUNC_SAI2_SD_B 0x4b0b | ||
691 | #define STM32F746_PE11_FUNC_FMC_D8 0x4b0d | ||
692 | #define STM32F746_PE11_FUNC_LCD_G3 0x4b0f | ||
693 | #define STM32F746_PE11_FUNC_EVENTOUT 0x4b10 | ||
694 | #define STM32F746_PE11_FUNC_ANALOG 0x4b11 | ||
695 | |||
696 | #define STM32F746_PE12_FUNC_GPIO 0x4c00 | ||
697 | #define STM32F746_PE12_FUNC_TIM1_CH3N 0x4c02 | ||
698 | #define STM32F746_PE12_FUNC_SPI4_SCK 0x4c06 | ||
699 | #define STM32F746_PE12_FUNC_SAI2_SCK_B 0x4c0b | ||
700 | #define STM32F746_PE12_FUNC_FMC_D9 0x4c0d | ||
701 | #define STM32F746_PE12_FUNC_LCD_B4 0x4c0f | ||
702 | #define STM32F746_PE12_FUNC_EVENTOUT 0x4c10 | ||
703 | #define STM32F746_PE12_FUNC_ANALOG 0x4c11 | ||
704 | |||
705 | #define STM32F746_PE13_FUNC_GPIO 0x4d00 | ||
706 | #define STM32F746_PE13_FUNC_TIM1_CH3 0x4d02 | ||
707 | #define STM32F746_PE13_FUNC_SPI4_MISO 0x4d06 | ||
708 | #define STM32F746_PE13_FUNC_SAI2_FS_B 0x4d0b | ||
709 | #define STM32F746_PE13_FUNC_FMC_D10 0x4d0d | ||
710 | #define STM32F746_PE13_FUNC_LCD_DE 0x4d0f | ||
711 | #define STM32F746_PE13_FUNC_EVENTOUT 0x4d10 | ||
712 | #define STM32F746_PE13_FUNC_ANALOG 0x4d11 | ||
713 | |||
714 | #define STM32F746_PE14_FUNC_GPIO 0x4e00 | ||
715 | #define STM32F746_PE14_FUNC_TIM1_CH4 0x4e02 | ||
716 | #define STM32F746_PE14_FUNC_SPI4_MOSI 0x4e06 | ||
717 | #define STM32F746_PE14_FUNC_SAI2_MCLK_B 0x4e0b | ||
718 | #define STM32F746_PE14_FUNC_FMC_D11 0x4e0d | ||
719 | #define STM32F746_PE14_FUNC_LCD_CLK 0x4e0f | ||
720 | #define STM32F746_PE14_FUNC_EVENTOUT 0x4e10 | ||
721 | #define STM32F746_PE14_FUNC_ANALOG 0x4e11 | ||
722 | |||
723 | #define STM32F746_PE15_FUNC_GPIO 0x4f00 | ||
724 | #define STM32F746_PE15_FUNC_TIM1_BKIN 0x4f02 | ||
725 | #define STM32F746_PE15_FUNC_FMC_D12 0x4f0d | ||
726 | #define STM32F746_PE15_FUNC_LCD_R7 0x4f0f | ||
727 | #define STM32F746_PE15_FUNC_EVENTOUT 0x4f10 | ||
728 | #define STM32F746_PE15_FUNC_ANALOG 0x4f11 | ||
729 | |||
730 | |||
731 | #define STM32F746_PF0_FUNC_GPIO 0x5000 | ||
732 | #define STM32F746_PF0_FUNC_I2C2_SDA 0x5005 | ||
733 | #define STM32F746_PF0_FUNC_FMC_A0 0x500d | ||
734 | #define STM32F746_PF0_FUNC_EVENTOUT 0x5010 | ||
735 | #define STM32F746_PF0_FUNC_ANALOG 0x5011 | ||
736 | |||
737 | #define STM32F746_PF1_FUNC_GPIO 0x5100 | ||
738 | #define STM32F746_PF1_FUNC_I2C2_SCL 0x5105 | ||
739 | #define STM32F746_PF1_FUNC_FMC_A1 0x510d | ||
740 | #define STM32F746_PF1_FUNC_EVENTOUT 0x5110 | ||
741 | #define STM32F746_PF1_FUNC_ANALOG 0x5111 | ||
742 | |||
743 | #define STM32F746_PF2_FUNC_GPIO 0x5200 | ||
744 | #define STM32F746_PF2_FUNC_I2C2_SMBA 0x5205 | ||
745 | #define STM32F746_PF2_FUNC_FMC_A2 0x520d | ||
746 | #define STM32F746_PF2_FUNC_EVENTOUT 0x5210 | ||
747 | #define STM32F746_PF2_FUNC_ANALOG 0x5211 | ||
748 | |||
749 | #define STM32F746_PF3_FUNC_GPIO 0x5300 | ||
750 | #define STM32F746_PF3_FUNC_FMC_A3 0x530d | ||
751 | #define STM32F746_PF3_FUNC_EVENTOUT 0x5310 | ||
752 | #define STM32F746_PF3_FUNC_ANALOG 0x5311 | ||
753 | |||
754 | #define STM32F746_PF4_FUNC_GPIO 0x5400 | ||
755 | #define STM32F746_PF4_FUNC_FMC_A4 0x540d | ||
756 | #define STM32F746_PF4_FUNC_EVENTOUT 0x5410 | ||
757 | #define STM32F746_PF4_FUNC_ANALOG 0x5411 | ||
758 | |||
759 | #define STM32F746_PF5_FUNC_GPIO 0x5500 | ||
760 | #define STM32F746_PF5_FUNC_FMC_A5 0x550d | ||
761 | #define STM32F746_PF5_FUNC_EVENTOUT 0x5510 | ||
762 | #define STM32F746_PF5_FUNC_ANALOG 0x5511 | ||
763 | |||
764 | #define STM32F746_PF6_FUNC_GPIO 0x5600 | ||
765 | #define STM32F746_PF6_FUNC_TIM10_CH1 0x5604 | ||
766 | #define STM32F746_PF6_FUNC_SPI5_NSS 0x5606 | ||
767 | #define STM32F746_PF6_FUNC_SAI1_SD_B 0x5607 | ||
768 | #define STM32F746_PF6_FUNC_UART7_RX 0x5609 | ||
769 | #define STM32F746_PF6_FUNC_QUADSPI_BK1_IO3 0x560a | ||
770 | #define STM32F746_PF6_FUNC_EVENTOUT 0x5610 | ||
771 | #define STM32F746_PF6_FUNC_ANALOG 0x5611 | ||
772 | |||
773 | #define STM32F746_PF7_FUNC_GPIO 0x5700 | ||
774 | #define STM32F746_PF7_FUNC_TIM11_CH1 0x5704 | ||
775 | #define STM32F746_PF7_FUNC_SPI5_SCK 0x5706 | ||
776 | #define STM32F746_PF7_FUNC_SAI1_MCLK_B 0x5707 | ||
777 | #define STM32F746_PF7_FUNC_UART7_TX 0x5709 | ||
778 | #define STM32F746_PF7_FUNC_QUADSPI_BK1_IO2 0x570a | ||
779 | #define STM32F746_PF7_FUNC_EVENTOUT 0x5710 | ||
780 | #define STM32F746_PF7_FUNC_ANALOG 0x5711 | ||
781 | |||
782 | #define STM32F746_PF8_FUNC_GPIO 0x5800 | ||
783 | #define STM32F746_PF8_FUNC_SPI5_MISO 0x5806 | ||
784 | #define STM32F746_PF8_FUNC_SAI1_SCK_B 0x5807 | ||
785 | #define STM32F746_PF8_FUNC_UART7_RTS 0x5809 | ||
786 | #define STM32F746_PF8_FUNC_TIM13_CH1 0x580a | ||
787 | #define STM32F746_PF8_FUNC_QUADSPI_BK1_IO0 0x580b | ||
788 | #define STM32F746_PF8_FUNC_EVENTOUT 0x5810 | ||
789 | #define STM32F746_PF8_FUNC_ANALOG 0x5811 | ||
790 | |||
791 | #define STM32F746_PF9_FUNC_GPIO 0x5900 | ||
792 | #define STM32F746_PF9_FUNC_SPI5_MOSI 0x5906 | ||
793 | #define STM32F746_PF9_FUNC_SAI1_FS_B 0x5907 | ||
794 | #define STM32F746_PF9_FUNC_UART7_CTS 0x5909 | ||
795 | #define STM32F746_PF9_FUNC_TIM14_CH1 0x590a | ||
796 | #define STM32F746_PF9_FUNC_QUADSPI_BK1_IO1 0x590b | ||
797 | #define STM32F746_PF9_FUNC_EVENTOUT 0x5910 | ||
798 | #define STM32F746_PF9_FUNC_ANALOG 0x5911 | ||
799 | |||
800 | #define STM32F746_PF10_FUNC_GPIO 0x5a00 | ||
801 | #define STM32F746_PF10_FUNC_DCMI_D11 0x5a0e | ||
802 | #define STM32F746_PF10_FUNC_LCD_DE 0x5a0f | ||
803 | #define STM32F746_PF10_FUNC_EVENTOUT 0x5a10 | ||
804 | #define STM32F746_PF10_FUNC_ANALOG 0x5a11 | ||
805 | |||
806 | #define STM32F746_PF11_FUNC_GPIO 0x5b00 | ||
807 | #define STM32F746_PF11_FUNC_SPI5_MOSI 0x5b06 | ||
808 | #define STM32F746_PF11_FUNC_SAI2_SD_B 0x5b0b | ||
809 | #define STM32F746_PF11_FUNC_FMC_SDNRAS 0x5b0d | ||
810 | #define STM32F746_PF11_FUNC_DCMI_D12 0x5b0e | ||
811 | #define STM32F746_PF11_FUNC_EVENTOUT 0x5b10 | ||
812 | #define STM32F746_PF11_FUNC_ANALOG 0x5b11 | ||
813 | |||
814 | #define STM32F746_PF12_FUNC_GPIO 0x5c00 | ||
815 | #define STM32F746_PF12_FUNC_FMC_A6 0x5c0d | ||
816 | #define STM32F746_PF12_FUNC_EVENTOUT 0x5c10 | ||
817 | #define STM32F746_PF12_FUNC_ANALOG 0x5c11 | ||
818 | |||
819 | #define STM32F746_PF13_FUNC_GPIO 0x5d00 | ||
820 | #define STM32F746_PF13_FUNC_I2C4_SMBA 0x5d05 | ||
821 | #define STM32F746_PF13_FUNC_FMC_A7 0x5d0d | ||
822 | #define STM32F746_PF13_FUNC_EVENTOUT 0x5d10 | ||
823 | #define STM32F746_PF13_FUNC_ANALOG 0x5d11 | ||
824 | |||
825 | #define STM32F746_PF14_FUNC_GPIO 0x5e00 | ||
826 | #define STM32F746_PF14_FUNC_I2C4_SCL 0x5e05 | ||
827 | #define STM32F746_PF14_FUNC_FMC_A8 0x5e0d | ||
828 | #define STM32F746_PF14_FUNC_EVENTOUT 0x5e10 | ||
829 | #define STM32F746_PF14_FUNC_ANALOG 0x5e11 | ||
830 | |||
831 | #define STM32F746_PF15_FUNC_GPIO 0x5f00 | ||
832 | #define STM32F746_PF15_FUNC_I2C4_SDA 0x5f05 | ||
833 | #define STM32F746_PF15_FUNC_FMC_A9 0x5f0d | ||
834 | #define STM32F746_PF15_FUNC_EVENTOUT 0x5f10 | ||
835 | #define STM32F746_PF15_FUNC_ANALOG 0x5f11 | ||
836 | |||
837 | |||
838 | #define STM32F746_PG0_FUNC_GPIO 0x6000 | ||
839 | #define STM32F746_PG0_FUNC_FMC_A10 0x600d | ||
840 | #define STM32F746_PG0_FUNC_EVENTOUT 0x6010 | ||
841 | #define STM32F746_PG0_FUNC_ANALOG 0x6011 | ||
842 | |||
843 | #define STM32F746_PG1_FUNC_GPIO 0x6100 | ||
844 | #define STM32F746_PG1_FUNC_FMC_A11 0x610d | ||
845 | #define STM32F746_PG1_FUNC_EVENTOUT 0x6110 | ||
846 | #define STM32F746_PG1_FUNC_ANALOG 0x6111 | ||
847 | |||
848 | #define STM32F746_PG2_FUNC_GPIO 0x6200 | ||
849 | #define STM32F746_PG2_FUNC_FMC_A12 0x620d | ||
850 | #define STM32F746_PG2_FUNC_EVENTOUT 0x6210 | ||
851 | #define STM32F746_PG2_FUNC_ANALOG 0x6211 | ||
852 | |||
853 | #define STM32F746_PG3_FUNC_GPIO 0x6300 | ||
854 | #define STM32F746_PG3_FUNC_FMC_A13 0x630d | ||
855 | #define STM32F746_PG3_FUNC_EVENTOUT 0x6310 | ||
856 | #define STM32F746_PG3_FUNC_ANALOG 0x6311 | ||
857 | |||
858 | #define STM32F746_PG4_FUNC_GPIO 0x6400 | ||
859 | #define STM32F746_PG4_FUNC_FMC_A14_FMC_BA0 0x640d | ||
860 | #define STM32F746_PG4_FUNC_EVENTOUT 0x6410 | ||
861 | #define STM32F746_PG4_FUNC_ANALOG 0x6411 | ||
862 | |||
863 | #define STM32F746_PG5_FUNC_GPIO 0x6500 | ||
864 | #define STM32F746_PG5_FUNC_FMC_A15_FMC_BA1 0x650d | ||
865 | #define STM32F746_PG5_FUNC_EVENTOUT 0x6510 | ||
866 | #define STM32F746_PG5_FUNC_ANALOG 0x6511 | ||
867 | |||
868 | #define STM32F746_PG6_FUNC_GPIO 0x6600 | ||
869 | #define STM32F746_PG6_FUNC_DCMI_D12 0x660e | ||
870 | #define STM32F746_PG6_FUNC_LCD_R7 0x660f | ||
871 | #define STM32F746_PG6_FUNC_EVENTOUT 0x6610 | ||
872 | #define STM32F746_PG6_FUNC_ANALOG 0x6611 | ||
873 | |||
874 | #define STM32F746_PG7_FUNC_GPIO 0x6700 | ||
875 | #define STM32F746_PG7_FUNC_USART6_CK 0x6709 | ||
876 | #define STM32F746_PG7_FUNC_FMC_INT 0x670d | ||
877 | #define STM32F746_PG7_FUNC_DCMI_D13 0x670e | ||
878 | #define STM32F746_PG7_FUNC_LCD_CLK 0x670f | ||
879 | #define STM32F746_PG7_FUNC_EVENTOUT 0x6710 | ||
880 | #define STM32F746_PG7_FUNC_ANALOG 0x6711 | ||
881 | |||
882 | #define STM32F746_PG8_FUNC_GPIO 0x6800 | ||
883 | #define STM32F746_PG8_FUNC_SPI6_NSS 0x6806 | ||
884 | #define STM32F746_PG8_FUNC_SPDIFRX_IN2 0x6808 | ||
885 | #define STM32F746_PG8_FUNC_USART6_RTS 0x6809 | ||
886 | #define STM32F746_PG8_FUNC_ETH_PPS_OUT 0x680c | ||
887 | #define STM32F746_PG8_FUNC_FMC_SDCLK 0x680d | ||
888 | #define STM32F746_PG8_FUNC_EVENTOUT 0x6810 | ||
889 | #define STM32F746_PG8_FUNC_ANALOG 0x6811 | ||
890 | |||
891 | #define STM32F746_PG9_FUNC_GPIO 0x6900 | ||
892 | #define STM32F746_PG9_FUNC_SPDIFRX_IN3 0x6908 | ||
893 | #define STM32F746_PG9_FUNC_USART6_RX 0x6909 | ||
894 | #define STM32F746_PG9_FUNC_QUADSPI_BK2_IO2 0x690a | ||
895 | #define STM32F746_PG9_FUNC_SAI2_FS_B 0x690b | ||
896 | #define STM32F746_PG9_FUNC_FMC_NE2_FMC_NCE 0x690d | ||
897 | #define STM32F746_PG9_FUNC_DCMI_VSYNC 0x690e | ||
898 | #define STM32F746_PG9_FUNC_EVENTOUT 0x6910 | ||
899 | #define STM32F746_PG9_FUNC_ANALOG 0x6911 | ||
900 | |||
901 | #define STM32F746_PG10_FUNC_GPIO 0x6a00 | ||
902 | #define STM32F746_PG10_FUNC_LCD_G3 0x6a0a | ||
903 | #define STM32F746_PG10_FUNC_SAI2_SD_B 0x6a0b | ||
904 | #define STM32F746_PG10_FUNC_FMC_NE3 0x6a0d | ||
905 | #define STM32F746_PG10_FUNC_DCMI_D2 0x6a0e | ||
906 | #define STM32F746_PG10_FUNC_LCD_B2 0x6a0f | ||
907 | #define STM32F746_PG10_FUNC_EVENTOUT 0x6a10 | ||
908 | #define STM32F746_PG10_FUNC_ANALOG 0x6a11 | ||
909 | |||
910 | #define STM32F746_PG11_FUNC_GPIO 0x6b00 | ||
911 | #define STM32F746_PG11_FUNC_SPDIFRX_IN0 0x6b08 | ||
912 | #define STM32F746_PG11_FUNC_ETH_MII_TX_EN_ETH_RMII_TX_EN 0x6b0c | ||
913 | #define STM32F746_PG11_FUNC_DCMI_D3 0x6b0e | ||
914 | #define STM32F746_PG11_FUNC_LCD_B3 0x6b0f | ||
915 | #define STM32F746_PG11_FUNC_EVENTOUT 0x6b10 | ||
916 | #define STM32F746_PG11_FUNC_ANALOG 0x6b11 | ||
917 | |||
918 | #define STM32F746_PG12_FUNC_GPIO 0x6c00 | ||
919 | #define STM32F746_PG12_FUNC_LPTIM1_IN1 0x6c04 | ||
920 | #define STM32F746_PG12_FUNC_SPI6_MISO 0x6c06 | ||
921 | #define STM32F746_PG12_FUNC_SPDIFRX_IN1 0x6c08 | ||
922 | #define STM32F746_PG12_FUNC_USART6_RTS 0x6c09 | ||
923 | #define STM32F746_PG12_FUNC_LCD_B4 0x6c0a | ||
924 | #define STM32F746_PG12_FUNC_FMC_NE4 0x6c0d | ||
925 | #define STM32F746_PG12_FUNC_LCD_B1 0x6c0f | ||
926 | #define STM32F746_PG12_FUNC_EVENTOUT 0x6c10 | ||
927 | #define STM32F746_PG12_FUNC_ANALOG 0x6c11 | ||
928 | |||
929 | #define STM32F746_PG13_FUNC_GPIO 0x6d00 | ||
930 | #define STM32F746_PG13_FUNC_TRACED0 0x6d01 | ||
931 | #define STM32F746_PG13_FUNC_LPTIM1_OUT 0x6d04 | ||
932 | #define STM32F746_PG13_FUNC_SPI6_SCK 0x6d06 | ||
933 | #define STM32F746_PG13_FUNC_USART6_CTS 0x6d09 | ||
934 | #define STM32F746_PG13_FUNC_ETH_MII_TXD0_ETH_RMII_TXD0 0x6d0c | ||
935 | #define STM32F746_PG13_FUNC_FMC_A24 0x6d0d | ||
936 | #define STM32F746_PG13_FUNC_LCD_R0 0x6d0f | ||
937 | #define STM32F746_PG13_FUNC_EVENTOUT 0x6d10 | ||
938 | #define STM32F746_PG13_FUNC_ANALOG 0x6d11 | ||
939 | |||
940 | #define STM32F746_PG14_FUNC_GPIO 0x6e00 | ||
941 | #define STM32F746_PG14_FUNC_TRACED1 0x6e01 | ||
942 | #define STM32F746_PG14_FUNC_LPTIM1_ETR 0x6e04 | ||
943 | #define STM32F746_PG14_FUNC_SPI6_MOSI 0x6e06 | ||
944 | #define STM32F746_PG14_FUNC_USART6_TX 0x6e09 | ||
945 | #define STM32F746_PG14_FUNC_QUADSPI_BK2_IO3 0x6e0a | ||
946 | #define STM32F746_PG14_FUNC_ETH_MII_TXD1_ETH_RMII_TXD1 0x6e0c | ||
947 | #define STM32F746_PG14_FUNC_FMC_A25 0x6e0d | ||
948 | #define STM32F746_PG14_FUNC_LCD_B0 0x6e0f | ||
949 | #define STM32F746_PG14_FUNC_EVENTOUT 0x6e10 | ||
950 | #define STM32F746_PG14_FUNC_ANALOG 0x6e11 | ||
951 | |||
952 | #define STM32F746_PG15_FUNC_GPIO 0x6f00 | ||
953 | #define STM32F746_PG15_FUNC_USART6_CTS 0x6f09 | ||
954 | #define STM32F746_PG15_FUNC_FMC_SDNCAS 0x6f0d | ||
955 | #define STM32F746_PG15_FUNC_DCMI_D13 0x6f0e | ||
956 | #define STM32F746_PG15_FUNC_EVENTOUT 0x6f10 | ||
957 | #define STM32F746_PG15_FUNC_ANALOG 0x6f11 | ||
958 | |||
959 | |||
960 | #define STM32F746_PH0_FUNC_GPIO 0x7000 | ||
961 | #define STM32F746_PH0_FUNC_EVENTOUT 0x7010 | ||
962 | #define STM32F746_PH0_FUNC_ANALOG 0x7011 | ||
963 | |||
964 | #define STM32F746_PH1_FUNC_GPIO 0x7100 | ||
965 | #define STM32F746_PH1_FUNC_EVENTOUT 0x7110 | ||
966 | #define STM32F746_PH1_FUNC_ANALOG 0x7111 | ||
967 | |||
968 | #define STM32F746_PH2_FUNC_GPIO 0x7200 | ||
969 | #define STM32F746_PH2_FUNC_LPTIM1_IN2 0x7204 | ||
970 | #define STM32F746_PH2_FUNC_QUADSPI_BK2_IO0 0x720a | ||
971 | #define STM32F746_PH2_FUNC_SAI2_SCK_B 0x720b | ||
972 | #define STM32F746_PH2_FUNC_ETH_MII_CRS 0x720c | ||
973 | #define STM32F746_PH2_FUNC_FMC_SDCKE0 0x720d | ||
974 | #define STM32F746_PH2_FUNC_LCD_R0 0x720f | ||
975 | #define STM32F746_PH2_FUNC_EVENTOUT 0x7210 | ||
976 | #define STM32F746_PH2_FUNC_ANALOG 0x7211 | ||
977 | |||
978 | #define STM32F746_PH3_FUNC_GPIO 0x7300 | ||
979 | #define STM32F746_PH3_FUNC_QUADSPI_BK2_IO1 0x730a | ||
980 | #define STM32F746_PH3_FUNC_SAI2_MCLK_B 0x730b | ||
981 | #define STM32F746_PH3_FUNC_ETH_MII_COL 0x730c | ||
982 | #define STM32F746_PH3_FUNC_FMC_SDNE0 0x730d | ||
983 | #define STM32F746_PH3_FUNC_LCD_R1 0x730f | ||
984 | #define STM32F746_PH3_FUNC_EVENTOUT 0x7310 | ||
985 | #define STM32F746_PH3_FUNC_ANALOG 0x7311 | ||
986 | |||
987 | #define STM32F746_PH4_FUNC_GPIO 0x7400 | ||
988 | #define STM32F746_PH4_FUNC_I2C2_SCL 0x7405 | ||
989 | #define STM32F746_PH4_FUNC_OTG_HS_ULPI_NXT 0x740b | ||
990 | #define STM32F746_PH4_FUNC_EVENTOUT 0x7410 | ||
991 | #define STM32F746_PH4_FUNC_ANALOG 0x7411 | ||
992 | |||
993 | #define STM32F746_PH5_FUNC_GPIO 0x7500 | ||
994 | #define STM32F746_PH5_FUNC_I2C2_SDA 0x7505 | ||
995 | #define STM32F746_PH5_FUNC_SPI5_NSS 0x7506 | ||
996 | #define STM32F746_PH5_FUNC_FMC_SDNWE 0x750d | ||
997 | #define STM32F746_PH5_FUNC_EVENTOUT 0x7510 | ||
998 | #define STM32F746_PH5_FUNC_ANALOG 0x7511 | ||
999 | |||
1000 | #define STM32F746_PH6_FUNC_GPIO 0x7600 | ||
1001 | #define STM32F746_PH6_FUNC_I2C2_SMBA 0x7605 | ||
1002 | #define STM32F746_PH6_FUNC_SPI5_SCK 0x7606 | ||
1003 | #define STM32F746_PH6_FUNC_TIM12_CH1 0x760a | ||
1004 | #define STM32F746_PH6_FUNC_ETH_MII_RXD2 0x760c | ||
1005 | #define STM32F746_PH6_FUNC_FMC_SDNE1 0x760d | ||
1006 | #define STM32F746_PH6_FUNC_DCMI_D8 0x760e | ||
1007 | #define STM32F746_PH6_FUNC_EVENTOUT 0x7610 | ||
1008 | #define STM32F746_PH6_FUNC_ANALOG 0x7611 | ||
1009 | |||
1010 | #define STM32F746_PH7_FUNC_GPIO 0x7700 | ||
1011 | #define STM32F746_PH7_FUNC_I2C3_SCL 0x7705 | ||
1012 | #define STM32F746_PH7_FUNC_SPI5_MISO 0x7706 | ||
1013 | #define STM32F746_PH7_FUNC_ETH_MII_RXD3 0x770c | ||
1014 | #define STM32F746_PH7_FUNC_FMC_SDCKE1 0x770d | ||
1015 | #define STM32F746_PH7_FUNC_DCMI_D9 0x770e | ||
1016 | #define STM32F746_PH7_FUNC_EVENTOUT 0x7710 | ||
1017 | #define STM32F746_PH7_FUNC_ANALOG 0x7711 | ||
1018 | |||
1019 | #define STM32F746_PH8_FUNC_GPIO 0x7800 | ||
1020 | #define STM32F746_PH8_FUNC_I2C3_SDA 0x7805 | ||
1021 | #define STM32F746_PH8_FUNC_FMC_D16 0x780d | ||
1022 | #define STM32F746_PH8_FUNC_DCMI_HSYNC 0x780e | ||
1023 | #define STM32F746_PH8_FUNC_LCD_R2 0x780f | ||
1024 | #define STM32F746_PH8_FUNC_EVENTOUT 0x7810 | ||
1025 | #define STM32F746_PH8_FUNC_ANALOG 0x7811 | ||
1026 | |||
1027 | #define STM32F746_PH9_FUNC_GPIO 0x7900 | ||
1028 | #define STM32F746_PH9_FUNC_I2C3_SMBA 0x7905 | ||
1029 | #define STM32F746_PH9_FUNC_TIM12_CH2 0x790a | ||
1030 | #define STM32F746_PH9_FUNC_FMC_D17 0x790d | ||
1031 | #define STM32F746_PH9_FUNC_DCMI_D0 0x790e | ||
1032 | #define STM32F746_PH9_FUNC_LCD_R3 0x790f | ||
1033 | #define STM32F746_PH9_FUNC_EVENTOUT 0x7910 | ||
1034 | #define STM32F746_PH9_FUNC_ANALOG 0x7911 | ||
1035 | |||
1036 | #define STM32F746_PH10_FUNC_GPIO 0x7a00 | ||
1037 | #define STM32F746_PH10_FUNC_TIM5_CH1 0x7a03 | ||
1038 | #define STM32F746_PH10_FUNC_I2C4_SMBA 0x7a05 | ||
1039 | #define STM32F746_PH10_FUNC_FMC_D18 0x7a0d | ||
1040 | #define STM32F746_PH10_FUNC_DCMI_D1 0x7a0e | ||
1041 | #define STM32F746_PH10_FUNC_LCD_R4 0x7a0f | ||
1042 | #define STM32F746_PH10_FUNC_EVENTOUT 0x7a10 | ||
1043 | #define STM32F746_PH10_FUNC_ANALOG 0x7a11 | ||
1044 | |||
1045 | #define STM32F746_PH11_FUNC_GPIO 0x7b00 | ||
1046 | #define STM32F746_PH11_FUNC_TIM5_CH2 0x7b03 | ||
1047 | #define STM32F746_PH11_FUNC_I2C4_SCL 0x7b05 | ||
1048 | #define STM32F746_PH11_FUNC_FMC_D19 0x7b0d | ||
1049 | #define STM32F746_PH11_FUNC_DCMI_D2 0x7b0e | ||
1050 | #define STM32F746_PH11_FUNC_LCD_R5 0x7b0f | ||
1051 | #define STM32F746_PH11_FUNC_EVENTOUT 0x7b10 | ||
1052 | #define STM32F746_PH11_FUNC_ANALOG 0x7b11 | ||
1053 | |||
1054 | #define STM32F746_PH12_FUNC_GPIO 0x7c00 | ||
1055 | #define STM32F746_PH12_FUNC_TIM5_CH3 0x7c03 | ||
1056 | #define STM32F746_PH12_FUNC_I2C4_SDA 0x7c05 | ||
1057 | #define STM32F746_PH12_FUNC_FMC_D20 0x7c0d | ||
1058 | #define STM32F746_PH12_FUNC_DCMI_D3 0x7c0e | ||
1059 | #define STM32F746_PH12_FUNC_LCD_R6 0x7c0f | ||
1060 | #define STM32F746_PH12_FUNC_EVENTOUT 0x7c10 | ||
1061 | #define STM32F746_PH12_FUNC_ANALOG 0x7c11 | ||
1062 | |||
1063 | #define STM32F746_PH13_FUNC_GPIO 0x7d00 | ||
1064 | #define STM32F746_PH13_FUNC_TIM8_CH1N 0x7d04 | ||
1065 | #define STM32F746_PH13_FUNC_CAN1_TX 0x7d0a | ||
1066 | #define STM32F746_PH13_FUNC_FMC_D21 0x7d0d | ||
1067 | #define STM32F746_PH13_FUNC_LCD_G2 0x7d0f | ||
1068 | #define STM32F746_PH13_FUNC_EVENTOUT 0x7d10 | ||
1069 | #define STM32F746_PH13_FUNC_ANALOG 0x7d11 | ||
1070 | |||
1071 | #define STM32F746_PH14_FUNC_GPIO 0x7e00 | ||
1072 | #define STM32F746_PH14_FUNC_TIM8_CH2N 0x7e04 | ||
1073 | #define STM32F746_PH14_FUNC_FMC_D22 0x7e0d | ||
1074 | #define STM32F746_PH14_FUNC_DCMI_D4 0x7e0e | ||
1075 | #define STM32F746_PH14_FUNC_LCD_G3 0x7e0f | ||
1076 | #define STM32F746_PH14_FUNC_EVENTOUT 0x7e10 | ||
1077 | #define STM32F746_PH14_FUNC_ANALOG 0x7e11 | ||
1078 | |||
1079 | #define STM32F746_PH15_FUNC_GPIO 0x7f00 | ||
1080 | #define STM32F746_PH15_FUNC_TIM8_CH3N 0x7f04 | ||
1081 | #define STM32F746_PH15_FUNC_FMC_D23 0x7f0d | ||
1082 | #define STM32F746_PH15_FUNC_DCMI_D11 0x7f0e | ||
1083 | #define STM32F746_PH15_FUNC_LCD_G4 0x7f0f | ||
1084 | #define STM32F746_PH15_FUNC_EVENTOUT 0x7f10 | ||
1085 | #define STM32F746_PH15_FUNC_ANALOG 0x7f11 | ||
1086 | |||
1087 | |||
1088 | #define STM32F746_PI0_FUNC_GPIO 0x8000 | ||
1089 | #define STM32F746_PI0_FUNC_TIM5_CH4 0x8003 | ||
1090 | #define STM32F746_PI0_FUNC_SPI2_NSS_I2S2_WS 0x8006 | ||
1091 | #define STM32F746_PI0_FUNC_FMC_D24 0x800d | ||
1092 | #define STM32F746_PI0_FUNC_DCMI_D13 0x800e | ||
1093 | #define STM32F746_PI0_FUNC_LCD_G5 0x800f | ||
1094 | #define STM32F746_PI0_FUNC_EVENTOUT 0x8010 | ||
1095 | #define STM32F746_PI0_FUNC_ANALOG 0x8011 | ||
1096 | |||
1097 | #define STM32F746_PI1_FUNC_GPIO 0x8100 | ||
1098 | #define STM32F746_PI1_FUNC_TIM8_BKIN2 0x8104 | ||
1099 | #define STM32F746_PI1_FUNC_SPI2_SCK_I2S2_CK 0x8106 | ||
1100 | #define STM32F746_PI1_FUNC_FMC_D25 0x810d | ||
1101 | #define STM32F746_PI1_FUNC_DCMI_D8 0x810e | ||
1102 | #define STM32F746_PI1_FUNC_LCD_G6 0x810f | ||
1103 | #define STM32F746_PI1_FUNC_EVENTOUT 0x8110 | ||
1104 | #define STM32F746_PI1_FUNC_ANALOG 0x8111 | ||
1105 | |||
1106 | #define STM32F746_PI2_FUNC_GPIO 0x8200 | ||
1107 | #define STM32F746_PI2_FUNC_TIM8_CH4 0x8204 | ||
1108 | #define STM32F746_PI2_FUNC_SPI2_MISO 0x8206 | ||
1109 | #define STM32F746_PI2_FUNC_FMC_D26 0x820d | ||
1110 | #define STM32F746_PI2_FUNC_DCMI_D9 0x820e | ||
1111 | #define STM32F746_PI2_FUNC_LCD_G7 0x820f | ||
1112 | #define STM32F746_PI2_FUNC_EVENTOUT 0x8210 | ||
1113 | #define STM32F746_PI2_FUNC_ANALOG 0x8211 | ||
1114 | |||
1115 | #define STM32F746_PI3_FUNC_GPIO 0x8300 | ||
1116 | #define STM32F746_PI3_FUNC_TIM8_ETR 0x8304 | ||
1117 | #define STM32F746_PI3_FUNC_SPI2_MOSI_I2S2_SD 0x8306 | ||
1118 | #define STM32F746_PI3_FUNC_FMC_D27 0x830d | ||
1119 | #define STM32F746_PI3_FUNC_DCMI_D10 0x830e | ||
1120 | #define STM32F746_PI3_FUNC_EVENTOUT 0x8310 | ||
1121 | #define STM32F746_PI3_FUNC_ANALOG 0x8311 | ||
1122 | |||
1123 | #define STM32F746_PI4_FUNC_GPIO 0x8400 | ||
1124 | #define STM32F746_PI4_FUNC_TIM8_BKIN 0x8404 | ||
1125 | #define STM32F746_PI4_FUNC_SAI2_MCLK_A 0x840b | ||
1126 | #define STM32F746_PI4_FUNC_FMC_NBL2 0x840d | ||
1127 | #define STM32F746_PI4_FUNC_DCMI_D5 0x840e | ||
1128 | #define STM32F746_PI4_FUNC_LCD_B4 0x840f | ||
1129 | #define STM32F746_PI4_FUNC_EVENTOUT 0x8410 | ||
1130 | #define STM32F746_PI4_FUNC_ANALOG 0x8411 | ||
1131 | |||
1132 | #define STM32F746_PI5_FUNC_GPIO 0x8500 | ||
1133 | #define STM32F746_PI5_FUNC_TIM8_CH1 0x8504 | ||
1134 | #define STM32F746_PI5_FUNC_SAI2_SCK_A 0x850b | ||
1135 | #define STM32F746_PI5_FUNC_FMC_NBL3 0x850d | ||
1136 | #define STM32F746_PI5_FUNC_DCMI_VSYNC 0x850e | ||
1137 | #define STM32F746_PI5_FUNC_LCD_B5 0x850f | ||
1138 | #define STM32F746_PI5_FUNC_EVENTOUT 0x8510 | ||
1139 | #define STM32F746_PI5_FUNC_ANALOG 0x8511 | ||
1140 | |||
1141 | #define STM32F746_PI6_FUNC_GPIO 0x8600 | ||
1142 | #define STM32F746_PI6_FUNC_TIM8_CH2 0x8604 | ||
1143 | #define STM32F746_PI6_FUNC_SAI2_SD_A 0x860b | ||
1144 | #define STM32F746_PI6_FUNC_FMC_D28 0x860d | ||
1145 | #define STM32F746_PI6_FUNC_DCMI_D6 0x860e | ||
1146 | #define STM32F746_PI6_FUNC_LCD_B6 0x860f | ||
1147 | #define STM32F746_PI6_FUNC_EVENTOUT 0x8610 | ||
1148 | #define STM32F746_PI6_FUNC_ANALOG 0x8611 | ||
1149 | |||
1150 | #define STM32F746_PI7_FUNC_GPIO 0x8700 | ||
1151 | #define STM32F746_PI7_FUNC_TIM8_CH3 0x8704 | ||
1152 | #define STM32F746_PI7_FUNC_SAI2_FS_A 0x870b | ||
1153 | #define STM32F746_PI7_FUNC_FMC_D29 0x870d | ||
1154 | #define STM32F746_PI7_FUNC_DCMI_D7 0x870e | ||
1155 | #define STM32F746_PI7_FUNC_LCD_B7 0x870f | ||
1156 | #define STM32F746_PI7_FUNC_EVENTOUT 0x8710 | ||
1157 | #define STM32F746_PI7_FUNC_ANALOG 0x8711 | ||
1158 | |||
1159 | #define STM32F746_PI8_FUNC_GPIO 0x8800 | ||
1160 | #define STM32F746_PI8_FUNC_EVENTOUT 0x8810 | ||
1161 | #define STM32F746_PI8_FUNC_ANALOG 0x8811 | ||
1162 | |||
1163 | #define STM32F746_PI9_FUNC_GPIO 0x8900 | ||
1164 | #define STM32F746_PI9_FUNC_CAN1_RX 0x890a | ||
1165 | #define STM32F746_PI9_FUNC_FMC_D30 0x890d | ||
1166 | #define STM32F746_PI9_FUNC_LCD_VSYNC 0x890f | ||
1167 | #define STM32F746_PI9_FUNC_EVENTOUT 0x8910 | ||
1168 | #define STM32F746_PI9_FUNC_ANALOG 0x8911 | ||
1169 | |||
1170 | #define STM32F746_PI10_FUNC_GPIO 0x8a00 | ||
1171 | #define STM32F746_PI10_FUNC_ETH_MII_RX_ER 0x8a0c | ||
1172 | #define STM32F746_PI10_FUNC_FMC_D31 0x8a0d | ||
1173 | #define STM32F746_PI10_FUNC_LCD_HSYNC 0x8a0f | ||
1174 | #define STM32F746_PI10_FUNC_EVENTOUT 0x8a10 | ||
1175 | #define STM32F746_PI10_FUNC_ANALOG 0x8a11 | ||
1176 | |||
1177 | #define STM32F746_PI11_FUNC_GPIO 0x8b00 | ||
1178 | #define STM32F746_PI11_FUNC_OTG_HS_ULPI_DIR 0x8b0b | ||
1179 | #define STM32F746_PI11_FUNC_EVENTOUT 0x8b10 | ||
1180 | #define STM32F746_PI11_FUNC_ANALOG 0x8b11 | ||
1181 | |||
1182 | #define STM32F746_PI12_FUNC_GPIO 0x8c00 | ||
1183 | #define STM32F746_PI12_FUNC_LCD_HSYNC 0x8c0f | ||
1184 | #define STM32F746_PI12_FUNC_EVENTOUT 0x8c10 | ||
1185 | #define STM32F746_PI12_FUNC_ANALOG 0x8c11 | ||
1186 | |||
1187 | #define STM32F746_PI13_FUNC_GPIO 0x8d00 | ||
1188 | #define STM32F746_PI13_FUNC_LCD_VSYNC 0x8d0f | ||
1189 | #define STM32F746_PI13_FUNC_EVENTOUT 0x8d10 | ||
1190 | #define STM32F746_PI13_FUNC_ANALOG 0x8d11 | ||
1191 | |||
1192 | #define STM32F746_PI14_FUNC_GPIO 0x8e00 | ||
1193 | #define STM32F746_PI14_FUNC_LCD_CLK 0x8e0f | ||
1194 | #define STM32F746_PI14_FUNC_EVENTOUT 0x8e10 | ||
1195 | #define STM32F746_PI14_FUNC_ANALOG 0x8e11 | ||
1196 | |||
1197 | #define STM32F746_PI15_FUNC_GPIO 0x8f00 | ||
1198 | #define STM32F746_PI15_FUNC_LCD_R0 0x8f0f | ||
1199 | #define STM32F746_PI15_FUNC_EVENTOUT 0x8f10 | ||
1200 | #define STM32F746_PI15_FUNC_ANALOG 0x8f11 | ||
1201 | |||
1202 | |||
1203 | #define STM32F746_PJ0_FUNC_GPIO 0x9000 | ||
1204 | #define STM32F746_PJ0_FUNC_LCD_R1 0x900f | ||
1205 | #define STM32F746_PJ0_FUNC_EVENTOUT 0x9010 | ||
1206 | #define STM32F746_PJ0_FUNC_ANALOG 0x9011 | ||
1207 | |||
1208 | #define STM32F746_PJ1_FUNC_GPIO 0x9100 | ||
1209 | #define STM32F746_PJ1_FUNC_LCD_R2 0x910f | ||
1210 | #define STM32F746_PJ1_FUNC_EVENTOUT 0x9110 | ||
1211 | #define STM32F746_PJ1_FUNC_ANALOG 0x9111 | ||
1212 | |||
1213 | #define STM32F746_PJ2_FUNC_GPIO 0x9200 | ||
1214 | #define STM32F746_PJ2_FUNC_LCD_R3 0x920f | ||
1215 | #define STM32F746_PJ2_FUNC_EVENTOUT 0x9210 | ||
1216 | #define STM32F746_PJ2_FUNC_ANALOG 0x9211 | ||
1217 | |||
1218 | #define STM32F746_PJ3_FUNC_GPIO 0x9300 | ||
1219 | #define STM32F746_PJ3_FUNC_LCD_R4 0x930f | ||
1220 | #define STM32F746_PJ3_FUNC_EVENTOUT 0x9310 | ||
1221 | #define STM32F746_PJ3_FUNC_ANALOG 0x9311 | ||
1222 | |||
1223 | #define STM32F746_PJ4_FUNC_GPIO 0x9400 | ||
1224 | #define STM32F746_PJ4_FUNC_LCD_R5 0x940f | ||
1225 | #define STM32F746_PJ4_FUNC_EVENTOUT 0x9410 | ||
1226 | #define STM32F746_PJ4_FUNC_ANALOG 0x9411 | ||
1227 | |||
1228 | #define STM32F746_PJ5_FUNC_GPIO 0x9500 | ||
1229 | #define STM32F746_PJ5_FUNC_LCD_R6 0x950f | ||
1230 | #define STM32F746_PJ5_FUNC_EVENTOUT 0x9510 | ||
1231 | #define STM32F746_PJ5_FUNC_ANALOG 0x9511 | ||
1232 | |||
1233 | #define STM32F746_PJ6_FUNC_GPIO 0x9600 | ||
1234 | #define STM32F746_PJ6_FUNC_LCD_R7 0x960f | ||
1235 | #define STM32F746_PJ6_FUNC_EVENTOUT 0x9610 | ||
1236 | #define STM32F746_PJ6_FUNC_ANALOG 0x9611 | ||
1237 | |||
1238 | #define STM32F746_PJ7_FUNC_GPIO 0x9700 | ||
1239 | #define STM32F746_PJ7_FUNC_LCD_G0 0x970f | ||
1240 | #define STM32F746_PJ7_FUNC_EVENTOUT 0x9710 | ||
1241 | #define STM32F746_PJ7_FUNC_ANALOG 0x9711 | ||
1242 | |||
1243 | #define STM32F746_PJ8_FUNC_GPIO 0x9800 | ||
1244 | #define STM32F746_PJ8_FUNC_LCD_G1 0x980f | ||
1245 | #define STM32F746_PJ8_FUNC_EVENTOUT 0x9810 | ||
1246 | #define STM32F746_PJ8_FUNC_ANALOG 0x9811 | ||
1247 | |||
1248 | #define STM32F746_PJ9_FUNC_GPIO 0x9900 | ||
1249 | #define STM32F746_PJ9_FUNC_LCD_G2 0x990f | ||
1250 | #define STM32F746_PJ9_FUNC_EVENTOUT 0x9910 | ||
1251 | #define STM32F746_PJ9_FUNC_ANALOG 0x9911 | ||
1252 | |||
1253 | #define STM32F746_PJ10_FUNC_GPIO 0x9a00 | ||
1254 | #define STM32F746_PJ10_FUNC_LCD_G3 0x9a0f | ||
1255 | #define STM32F746_PJ10_FUNC_EVENTOUT 0x9a10 | ||
1256 | #define STM32F746_PJ10_FUNC_ANALOG 0x9a11 | ||
1257 | |||
1258 | #define STM32F746_PJ11_FUNC_GPIO 0x9b00 | ||
1259 | #define STM32F746_PJ11_FUNC_LCD_G4 0x9b0f | ||
1260 | #define STM32F746_PJ11_FUNC_EVENTOUT 0x9b10 | ||
1261 | #define STM32F746_PJ11_FUNC_ANALOG 0x9b11 | ||
1262 | |||
1263 | #define STM32F746_PJ12_FUNC_GPIO 0x9c00 | ||
1264 | #define STM32F746_PJ12_FUNC_LCD_B0 0x9c0f | ||
1265 | #define STM32F746_PJ12_FUNC_EVENTOUT 0x9c10 | ||
1266 | #define STM32F746_PJ12_FUNC_ANALOG 0x9c11 | ||
1267 | |||
1268 | #define STM32F746_PJ13_FUNC_GPIO 0x9d00 | ||
1269 | #define STM32F746_PJ13_FUNC_LCD_B1 0x9d0f | ||
1270 | #define STM32F746_PJ13_FUNC_EVENTOUT 0x9d10 | ||
1271 | #define STM32F746_PJ13_FUNC_ANALOG 0x9d11 | ||
1272 | |||
1273 | #define STM32F746_PJ14_FUNC_GPIO 0x9e00 | ||
1274 | #define STM32F746_PJ14_FUNC_LCD_B2 0x9e0f | ||
1275 | #define STM32F746_PJ14_FUNC_EVENTOUT 0x9e10 | ||
1276 | #define STM32F746_PJ14_FUNC_ANALOG 0x9e11 | ||
1277 | |||
1278 | #define STM32F746_PJ15_FUNC_GPIO 0x9f00 | ||
1279 | #define STM32F746_PJ15_FUNC_LCD_B3 0x9f0f | ||
1280 | #define STM32F746_PJ15_FUNC_EVENTOUT 0x9f10 | ||
1281 | #define STM32F746_PJ15_FUNC_ANALOG 0x9f11 | ||
1282 | |||
1283 | |||
1284 | #define STM32F746_PK0_FUNC_GPIO 0xa000 | ||
1285 | #define STM32F746_PK0_FUNC_LCD_G5 0xa00f | ||
1286 | #define STM32F746_PK0_FUNC_EVENTOUT 0xa010 | ||
1287 | #define STM32F746_PK0_FUNC_ANALOG 0xa011 | ||
1288 | |||
1289 | #define STM32F746_PK1_FUNC_GPIO 0xa100 | ||
1290 | #define STM32F746_PK1_FUNC_LCD_G6 0xa10f | ||
1291 | #define STM32F746_PK1_FUNC_EVENTOUT 0xa110 | ||
1292 | #define STM32F746_PK1_FUNC_ANALOG 0xa111 | ||
1293 | |||
1294 | #define STM32F746_PK2_FUNC_GPIO 0xa200 | ||
1295 | #define STM32F746_PK2_FUNC_LCD_G7 0xa20f | ||
1296 | #define STM32F746_PK2_FUNC_EVENTOUT 0xa210 | ||
1297 | #define STM32F746_PK2_FUNC_ANALOG 0xa211 | ||
1298 | |||
1299 | #define STM32F746_PK3_FUNC_GPIO 0xa300 | ||
1300 | #define STM32F746_PK3_FUNC_LCD_B4 0xa30f | ||
1301 | #define STM32F746_PK3_FUNC_EVENTOUT 0xa310 | ||
1302 | #define STM32F746_PK3_FUNC_ANALOG 0xa311 | ||
1303 | |||
1304 | #define STM32F746_PK4_FUNC_GPIO 0xa400 | ||
1305 | #define STM32F746_PK4_FUNC_LCD_B5 0xa40f | ||
1306 | #define STM32F746_PK4_FUNC_EVENTOUT 0xa410 | ||
1307 | #define STM32F746_PK4_FUNC_ANALOG 0xa411 | ||
1308 | |||
1309 | #define STM32F746_PK5_FUNC_GPIO 0xa500 | ||
1310 | #define STM32F746_PK5_FUNC_LCD_B6 0xa50f | ||
1311 | #define STM32F746_PK5_FUNC_EVENTOUT 0xa510 | ||
1312 | #define STM32F746_PK5_FUNC_ANALOG 0xa511 | ||
1313 | |||
1314 | #define STM32F746_PK6_FUNC_GPIO 0xa600 | ||
1315 | #define STM32F746_PK6_FUNC_LCD_B7 0xa60f | ||
1316 | #define STM32F746_PK6_FUNC_EVENTOUT 0xa610 | ||
1317 | #define STM32F746_PK6_FUNC_ANALOG 0xa611 | ||
1318 | |||
1319 | #define STM32F746_PK7_FUNC_GPIO 0xa700 | ||
1320 | #define STM32F746_PK7_FUNC_LCD_DE 0xa70f | ||
1321 | #define STM32F746_PK7_FUNC_EVENTOUT 0xa710 | ||
1322 | #define STM32F746_PK7_FUNC_ANALOG 0xa711 | ||
1323 | |||
1324 | #endif /* _DT_BINDINGS_STM32F746_PINFUNC_H */ | ||
diff --git a/include/linux/pinctrl/pinconf-generic.h b/include/linux/pinctrl/pinconf-generic.h index d921afd5f109..12343caa114e 100644 --- a/include/linux/pinctrl/pinconf-generic.h +++ b/include/linux/pinctrl/pinconf-generic.h | |||
@@ -175,6 +175,8 @@ int pinconf_generic_dt_subnode_to_map(struct pinctrl_dev *pctldev, | |||
175 | int pinconf_generic_dt_node_to_map(struct pinctrl_dev *pctldev, | 175 | int pinconf_generic_dt_node_to_map(struct pinctrl_dev *pctldev, |
176 | struct device_node *np_config, struct pinctrl_map **map, | 176 | struct device_node *np_config, struct pinctrl_map **map, |
177 | unsigned *num_maps, enum pinctrl_map_type type); | 177 | unsigned *num_maps, enum pinctrl_map_type type); |
178 | void pinconf_generic_dt_free_map(struct pinctrl_dev *pctldev, | ||
179 | struct pinctrl_map *map, unsigned num_maps); | ||
178 | 180 | ||
179 | static inline int pinconf_generic_dt_node_to_map_group( | 181 | static inline int pinconf_generic_dt_node_to_map_group( |
180 | struct pinctrl_dev *pctldev, struct device_node *np_config, | 182 | struct pinctrl_dev *pctldev, struct device_node *np_config, |