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

dt-bindings: pinctrl: imx7ulp: back to imx legacy binding for consistency

We already had an earlier conclusion that all new i.MX Socs will keep
using the legacy i.MX Pinctrl bindings instead of generic pin config.
However, MX7ULP generic pin config binding support has already been in
tree before that time. Per SoC maintainers' suggestions, in order to
get a better consistency for all i.MX devices, we'd like to go back to
imx legacy binding for MX7ULP as well.

Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Stefan Agner <stefan@agner.ch>
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: linux-gpio@vger.kernel.org
Cc: devicetree@vger.kernel.org
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Acked-by: Fabio Estevam <fabio.estevam@nxp.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

authored by

A.s. Dong and committed by
Linus Walleij
0934eec7 cd8a145a

+27 -35
+27 -35
Documentation/devicetree/bindings/pinctrl/fsl,imx7ulp-pinctrl.txt
··· 7 7 This binding doc is only for the IOMUXC1 support in A7 Domain and it only 8 8 supports generic pin config. 9 9 10 - Please also refer pinctrl-bindings.txt in this directory for generic pinctrl 11 - binding. 12 - 13 - === Pin Controller Node === 10 + Please refer to fsl,imx-pinctrl.txt in this directory for common binding 11 + part and usage. 14 12 15 13 Required properties: 16 - - compatible: "fsl,imx7ulp-iomuxc1" 17 - - reg: Should contain the base physical address and size of the iomuxc 18 - registers. 14 + - compatible: "fsl,imx7ulp-iomuxc1". 15 + - fsl,pins: Each entry consists of 5 integers which represents the mux 16 + and config setting for one pin. The first 4 integers 17 + <mux_conf_reg input_reg mux_mode input_val> are specified 18 + using a PIN_FUNC_ID macro, which can be found in 19 + imx7ulp-pinfunc.h in the device tree source folder. 20 + The last integer CONFIG is the pad setting value like 21 + pull-up on this pin. 19 22 20 - === Pin Configuration Node === 21 - - pinmux: One integers array, represents a group of pins mux setting. 22 - The format is pinmux = <PIN_FUNC_ID>, PIN_FUNC_ID is a pin working on 23 - a specific function. 23 + Please refer to i.MX7ULP Reference Manual for detailed 24 + CONFIG settings. 24 25 25 - NOTE: i.MX7ULP PIN_FUNC_ID consists of 4 integers as it shares one mux 26 - and config register as follows: 27 - <mux_conf_reg input_reg mux_mode input_val> 28 - 29 - Refer to imx7ulp-pinfunc.h in in device tree source folder for all 30 - available imx7ulp PIN_FUNC_ID. 31 - 32 - Optional Properties: 33 - - drive-strength Integer. Controls Drive Strength 34 - 0: Standard 35 - 1: Hi Driver 36 - - drive-push-pull Bool. Enable Pin Push-pull 37 - - drive-open-drain Bool. Enable Pin Open-drian 38 - - slew-rate: Integer. Controls Slew Rate 39 - 0: Standard 40 - 1: Slow 41 - - bias-disable: Bool. Pull disabled 42 - - bias-pull-down: Bool. Pull down on pin 43 - - bias-pull-up: Bool. Pull up on pin 26 + CONFIG bits definition: 27 + PAD_CTL_OBE (1 << 17) 28 + PAD_CTL_IBE (1 << 16) 29 + PAD_CTL_LK (1 << 16) 30 + PAD_CTL_DSE_HI (1 << 6) 31 + PAD_CTL_DSE_STD (0 << 6) 32 + PAD_CTL_ODE (1 << 5) 33 + PAD_CTL_PUSH_PULL (0 << 5) 34 + PAD_CTL_SRE_SLOW (1 << 2) 35 + PAD_CTL_SRE_STD (0 << 2) 36 + PAD_CTL_PE (1 << 0) 44 37 45 38 Examples: 46 39 #include "imx7ulp-pinfunc.h" 47 40 48 41 /* Pin Controller Node */ 49 - iomuxc1: iomuxc@40ac0000 { 42 + iomuxc1: pinctrl@40ac0000 { 50 43 compatible = "fsl,imx7ulp-iomuxc1"; 51 44 reg = <0x40ac0000 0x1000>; 52 45 53 46 /* Pin Configuration Node */ 54 47 pinctrl_lpuart4: lpuart4grp { 55 - pinmux = < 56 - IMX7ULP_PAD_PTC3__LPUART4_RX 57 - IMX7ULP_PAD_PTC2__LPUART4_TX 48 + fsl,pins = < 49 + IMX7ULP_PAD_PTC3__LPUART4_RX 0x1 50 + IMX7ULP_PAD_PTC2__LPUART4_TX 0x1 58 51 >; 59 - bias-pull-up; 60 52 }; 61 53 };