DTS file customization

cancel
Showing results for 
Search instead for 
Did you mean: 

DTS file customization

3,753 Views
Contributor II

Hi,

I would like to add some SPI, I2C, Serial devices to IMX6 DL reference designs. When referring to DTB (Device Tree Blobs) generation from DTS file and referring to DTS file for example ecspi1 is lke as below:

 

 

pinctrl_ecspi1: ecspi1grp {

            fsl,pins = <

                MX6QDL_PAD_EIM_D17__ECSPI1_MISO        0x100b1

                MX6QDL_PAD_EIM_D18__ECSPI1_MOSI        0x100b1

                MX6QDL_PAD_EIM_D16__ECSPI1_SCLK        0x100b1

                MX6QDL_PAD_EIM_EB2__GPIO2_IO30          0x0b0b0    /* CS */

            >;

        };

 

 

What does this 0x100b1 specifies. How to arrive at that value. Why CS (Chip Select is given 0x0b0b0). How to calculate that value/arrive at some value. And also in some places it is like this:

 

pinctrl_usdhc1: usdhc1grp {

            fsl,pins = <

                MX6QDL_PAD_SD1_CMD__SD1_CMD        0x17059

                MX6QDL_PAD_SD1_CLK__SD1_CLK           0x10059

                MX6QDL_PAD_SD1_DAT0__SD1_DATA0        0x17059

                MX6QDL_PAD_SD1_DAT1__SD1_DATA1        0x17059

                MX6QDL_PAD_SD1_DAT2__SD1_DATA2        0x17059

                MX6QDL_PAD_SD1_DAT3__SD1_DATA3        0x17059

            >;

        };

 

in above snippet how 0x17059 came???

Labels (1)
0 Kudos
1 Reply

64 Views
NXP Employee
NXP Employee

Could you prefer the below documents. It will be helpful to understand the value for pad

The document is fsl,imx6dl-pinctrl.txt in kernel source directory Documentation/devicetree/bindings/pinctrl/

Also there is fsl,imx-pinctrl.txt and it is helpful to understand other options for pad.

--------------------------------------------------------------------------

* Freescale IMX6 DualLite/Solo IOMUX Controller

Please refer to fsl,imx-pinctrl.txt in this directory for common binding part

and usage.

Required properties:

- compatible: "fsl,imx6dl-iomuxc"

- fsl,pins: two integers array, represents a group of pins mux and config

  setting. The format is fsl,pins = <PIN_FUNC_ID CONFIG>, PIN_FUNC_ID is a

  pin working on a specific function, CONFIG is the pad setting value like

  pull-up for this pin. Please refer to imx6dl datasheet for the valid pad

  config settings.

CONFIG bits definition:

PAD_CTL_HYS                     (1 << 16)

PAD_CTL_PUS_100K_DOWN           (0 << 14)

PAD_CTL_PUS_47K_UP              (1 << 14)

PAD_CTL_PUS_100K_UP             (2 << 14)

PAD_CTL_PUS_22K_UP              (3 << 14)

PAD_CTL_PUE                     (1 << 13)

PAD_CTL_PKE                     (1 << 12)

PAD_CTL_ODE                     (1 << 11)

PAD_CTL_SPEED_LOW               (1 << 6)

PAD_CTL_SPEED_MED               (2 << 6)

PAD_CTL_SPEED_HIGH              (3 << 6)

PAD_CTL_DSE_DISABLE             (0 << 3)

PAD_CTL_DSE_240ohm              (1 << 3)

PAD_CTL_DSE_120ohm              (2 << 3)

PAD_CTL_DSE_80ohm               (3 << 3)

PAD_CTL_DSE_60ohm               (4 << 3)

PAD_CTL_DSE_48ohm               (5 << 3)

PAD_CTL_DSE_40ohm               (6 << 3)

PAD_CTL_DSE_34ohm               (7 << 3)

PAD_CTL_SRE_FAST                (1 << 0)

PAD_CTL_SRE_SLOW                (0 << 0)

Refer to imx6dl-pinfunc.h in device tree source folder for all available

imx6dl PIN_FUNC_ID.

0 Kudos