18c2ecf20Sopenharmony_ci* Pin configuration for TI IODELAY controller
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciTI dra7 based SoCs such as am57xx have a controller for setting the IO delay
48c2ecf20Sopenharmony_cifor each pin. For most part the IO delay values are programmed by the bootloader,
58c2ecf20Sopenharmony_cibut some pins need to be configured dynamically by the kernel such as the
68c2ecf20Sopenharmony_ciMMC pins.
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ciRequired Properties:
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci  - compatible: Must be "ti,dra7-iodelay"
118c2ecf20Sopenharmony_ci  - reg: Base address and length of the memory resource used
128c2ecf20Sopenharmony_ci  - #address-cells: Number of address cells
138c2ecf20Sopenharmony_ci  - #size-cells: Size of cells
148c2ecf20Sopenharmony_ci  - #pinctrl-cells: Number of pinctrl cells, must be 2. See also
158c2ecf20Sopenharmony_ci    Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ciExample
188c2ecf20Sopenharmony_ci-------
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ciIn the SoC specific dtsi file:
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci	dra7_iodelay_core: padconf@4844a000 {
238c2ecf20Sopenharmony_ci		compatible = "ti,dra7-iodelay";
248c2ecf20Sopenharmony_ci		reg = <0x4844a000 0x0d1c>;
258c2ecf20Sopenharmony_ci		#address-cells = <1>;
268c2ecf20Sopenharmony_ci		#size-cells = <0>;
278c2ecf20Sopenharmony_ci		#pinctrl-cells = <2>;
288c2ecf20Sopenharmony_ci	};
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ciIn board-specific file:
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci&dra7_iodelay_core {
338c2ecf20Sopenharmony_ci	mmc2_iodelay_3v3_conf: mmc2_iodelay_3v3_conf {
348c2ecf20Sopenharmony_ci		pinctrl-pin-array = <
358c2ecf20Sopenharmony_ci		0x18c A_DELAY_PS(0) G_DELAY_PS(120)	/* CFG_GPMC_A19_IN */
368c2ecf20Sopenharmony_ci		0x1a4 A_DELAY_PS(265) G_DELAY_PS(360)	/* CFG_GPMC_A20_IN */
378c2ecf20Sopenharmony_ci		0x1b0 A_DELAY_PS(0) G_DELAY_PS(120)	/* CFG_GPMC_A21_IN */
388c2ecf20Sopenharmony_ci		0x1bc A_DELAY_PS(0) G_DELAY_PS(120)	/* CFG_GPMC_A22_IN */
398c2ecf20Sopenharmony_ci		0x1c8 A_DELAY_PS(287) G_DELAY_PS(420)	/* CFG_GPMC_A23_IN */
408c2ecf20Sopenharmony_ci		0x1d4 A_DELAY_PS(144) G_DELAY_PS(240)	/* CFG_GPMC_A24_IN */
418c2ecf20Sopenharmony_ci		0x1e0 A_DELAY_PS(0) G_DELAY_PS(0)	/* CFG_GPMC_A25_IN */
428c2ecf20Sopenharmony_ci		0x1ec A_DELAY_PS(120) G_DELAY_PS(0)	/* CFG_GPMC_A26_IN */
438c2ecf20Sopenharmony_ci		0x1f8 A_DELAY_PS(120) G_DELAY_PS(180)	/* CFG_GPMC_A27_IN */
448c2ecf20Sopenharmony_ci		0x360 A_DELAY_PS(0) G_DELAY_PS(0)	/* CFG_GPMC_CS1_IN */
458c2ecf20Sopenharmony_ci		>;
468c2ecf20Sopenharmony_ci	};
478c2ecf20Sopenharmony_ci};
48