| .. | .. |
|---|
| 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 | }; |
|---|