// SPDX-License-Identifier: GPL-2.0-only
/*
 *  Copyright (C) 2012-2013 Linaro Ltd.
 *  Author: Haojian Zhuang <haojian.zhuang@linaro.org>
 */

/dts-v1/;

#include "hi3620.dtsi"

/ {
	model = "Hisilicon Hi4511 Development Board";
	compatible = "hisilicon,hi3620-hi4511";

	chosen {
		bootargs = "root=/dev/ram0";
		stdout-path = "serial0:115200n8";
	};

	memory@40000000 {
		device_type = "memory";
		reg = <0x40000000 0x20000000>;
	};

	amba-bus {
		dual_timer0: dual_timer@800000 {
			status = "okay";
		};

		uart0: serial@b00000 {	/* console */
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&uart0_pmx_func &uart0_cfg_func>;
			pinctrl-1 = <&uart0_pmx_idle &uart0_cfg_idle>;
			status = "okay";
		};

		uart1: serial@b01000 { /* modem */
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&uart1_pmx_func &uart1_cfg_func>;
			pinctrl-1 = <&uart1_pmx_idle &uart1_cfg_idle>;
			status = "okay";
		};

		uart2: serial@b02000 { /* audience */
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&uart2_pmx_func &uart2_cfg_func>;
			pinctrl-1 = <&uart2_pmx_idle &uart2_cfg_idle>;
			status = "okay";
		};

		uart3: serial@b03000 {
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&uart3_pmx_func &uart3_cfg_func>;
			pinctrl-1 = <&uart3_pmx_idle &uart3_cfg_idle>;
			status = "okay";
		};

		uart4: serial@b04000 {
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&uart4_pmx_func &uart4_cfg_func>;
			pinctrl-1 = <&uart4_pmx_idle &uart4_cfg_func>;
			status = "okay";
		};

		pmx0: pinmux@803000 {
			pinctrl-names = "default";
			pinctrl-0 = <&board_pmx_pins>;

			board_pmx_pins: board-pins {
				pinctrl-single,pins = <
					0x008 0x0	/* GPIO -- eFUSE_DOUT */
					0x100 0x0	/* USIM_CLK & USIM_DATA (IOMG63) */
				>;
			};
			uart0_pmx_func: uart0-pins {
				pinctrl-single,pins = <
					0x0f0 0x0
					0x0f4 0x0	/* UART0_RX & UART0_TX */
				>;
			};
			uart0_pmx_idle: uart0-idle-pins {
				pinctrl-single,pins = <
					/*0x0f0 0x1*/	/* UART0_CTS & UART0_RTS */
					0x0f4 0x1	/* UART0_RX & UART0_TX */
				>;
			};
			uart1_pmx_func: uart1-pins {
				pinctrl-single,pins = <
					0x0f8 0x0	/* UART1_CTS & UART1_RTS (IOMG61) */
					0x0fc 0x0	/* UART1_RX & UART1_TX (IOMG62) */
				>;
			};
			uart1_pmx_idle: uart1-idle-pins {
				pinctrl-single,pins = <
					0x0f8 0x1	/* GPIO (IOMG61) */
					0x0fc 0x1	/* GPIO (IOMG62) */
				>;
			};
			uart2_pmx_func: uart2-pins {
				pinctrl-single,pins = <
					0x104 0x2	/* UART2_RXD (IOMG96) */
					0x108 0x2	/* UART2_TXD (IOMG64) */
				>;
			};
			uart2_pmx_idle: uart2-idle-pins {
				pinctrl-single,pins = <
					0x104 0x1	/* GPIO (IOMG96) */
					0x108 0x1	/* GPIO (IOMG64) */
				>;
			};
			uart3_pmx_func: uart3-pins {
				pinctrl-single,pins = <
					0x160 0x2	/* UART3_CTS & UART3_RTS (IOMG85) */
					0x164 0x2	/* UART3_RXD & UART3_TXD (IOMG86) */
				>;
			};
			uart3_pmx_idle: uart3-idle-pins {
				pinctrl-single,pins = <
					0x160 0x1	/* GPIO (IOMG85) */
					0x164 0x1	/* GPIO (IOMG86) */
				>;
			};
			uart4_pmx_func: uart4-pins {
				pinctrl-single,pins = <
					0x168 0x0	/* UART4_CTS & UART4_RTS (IOMG87) */
					0x16c 0x0	/* UART4_RXD (IOMG88) */
					0x170 0x0	/* UART4_TXD (IOMG93) */
				>;
			};
			uart4_pmx_idle: uart4-idle-pins {
				pinctrl-single,pins = <
					0x168 0x1	/* GPIO (IOMG87) */
					0x16c 0x1	/* GPIO (IOMG88) */
					0x170 0x1	/* GPIO (IOMG93) */
				>;
			};
			i2c0_pmx_func: i2c0-pins {
				pinctrl-single,pins = <
					0x0b4 0x0	/* I2C0_SCL & I2C0_SDA (IOMG45) */
				>;
			};
			i2c0_pmx_idle: i2c0-idle-pins {
				pinctrl-single,pins = <
					0x0b4 0x1	/* GPIO (IOMG45) */
				>;
			};
			i2c1_pmx_func: i2c1-pins {
				pinctrl-single,pins = <
					0x0b8 0x0	/* I2C1_SCL & I2C1_SDA (IOMG46) */
				>;
			};
			i2c1_pmx_idle: i2c1-idle-pins {
				pinctrl-single,pins = <
					0x0b8 0x1	/* GPIO (IOMG46) */
				>;
			};
			i2c2_pmx_func: i2c2-pins {
				pinctrl-single,pins = <
					0x068 0x0	/* I2C2_SCL (IOMG26) */
					0x06c 0x0	/* I2C2_SDA (IOMG27) */
				>;
			};
			i2c2_pmx_idle: i2c2-idle-pins {
				pinctrl-single,pins = <
					0x068 0x1	/* GPIO (IOMG26) */
					0x06c 0x1	/* GPIO (IOMG27) */
				>;
			};
			i2c3_pmx_func: i2c3-pins {
				pinctrl-single,pins = <
					0x050 0x2	/* I2C3_SCL (IOMG20) */
					0x054 0x2	/* I2C3_SDA (IOMG21) */
				>;
			};
			i2c3_pmx_idle: i2c3-idle-pins {
				pinctrl-single,pins = <
					0x050 0x1	/* GPIO (IOMG20) */
					0x054 0x1	/* GPIO (IOMG21) */
				>;
			};
			spi0_pmx_func: spi0-pins {
				pinctrl-single,pins = <
					0x0d4 0x0	/* SPI0_CLK/SPI0_DI/SPI0_DO (IOMG53) */
					0x0d8 0x0	/* SPI0_CS0 (IOMG54) */
					0x0dc 0x0	/* SPI0_CS1 (IOMG55) */
					0x0e0 0x0	/* SPI0_CS2 (IOMG56) */
					0x0e4 0x0	/* SPI0_CS3 (IOMG57) */
				>;
			};
			spi0_pmx_idle: spi0-idle-pins {
				pinctrl-single,pins = <
					0x0d4 0x1	/* GPIO (IOMG53) */
					0x0d8 0x1	/* GPIO (IOMG54) */
					0x0dc 0x1	/* GPIO (IOMG55) */
					0x0e0 0x1	/* GPIO (IOMG56) */
					0x0e4 0x1	/* GPIO (IOMG57) */
				>;
			};
			spi1_pmx_func: spi1-pins {
				pinctrl-single,pins = <
					0x184 0x0	/* SPI1_CLK/SPI1_DI (IOMG98) */
					0x0e8 0x0	/* SPI1_DO (IOMG58) */
					0x0ec 0x0	/* SPI1_CS (IOMG95) */
				>;
			};
			spi1_pmx_idle: spi1-idle-pins {
				pinctrl-single,pins = <
					0x184 0x1	/* GPIO (IOMG98) */
					0x0e8 0x1	/* GPIO (IOMG58) */
					0x0ec 0x1	/* GPIO (IOMG95) */
				>;
			};
			kpc_pmx_func: kpc-pins {
				pinctrl-single,pins = <
					0x12c 0x0	/* KEY_IN0 (IOMG73) */
					0x130 0x0	/* KEY_IN1 (IOMG74) */
					0x134 0x0	/* KEY_IN2 (IOMG75) */
					0x10c 0x0	/* KEY_OUT0 (IOMG65) */
					0x110 0x0	/* KEY_OUT1 (IOMG66) */
					0x114 0x0	/* KEY_OUT2 (IOMG67) */
				>;
			};
			kpc_pmx_idle: kpc-idle-pins {
				pinctrl-single,pins = <
					0x12c 0x1	/* GPIO (IOMG73) */
					0x130 0x1	/* GPIO (IOMG74) */
					0x134 0x1	/* GPIO (IOMG75) */
					0x10c 0x1	/* GPIO (IOMG65) */
					0x110 0x1	/* GPIO (IOMG66) */
					0x114 0x1	/* GPIO (IOMG67) */
				>;
			};
			gpio_key_func: gpio-key-pins {
				pinctrl-single,pins = <
					0x10c 0x1	/* KEY_OUT0/GPIO (IOMG65) */
					0x130 0x1	/* KEY_IN1/GPIO (IOMG74) */
				>;
			};
			emmc_pmx_func: emmc-pins {
				pinctrl-single,pins = <
					0x030 0x2	/* eMMC_CMD/eMMC_CLK (IOMG12) */
					0x018 0x0	/* NAND_CS3_N (IOMG6) */
					0x024 0x0	/* NAND_BUSY2_N (IOMG8) */
					0x028 0x0	/* NAND_BUSY3_N (IOMG9) */
					0x02c 0x2	/* eMMC_DATA[0:7] (IOMG10) */
				>;
			};
			emmc_pmx_idle: emmc-idle-pins {
				pinctrl-single,pins = <
					0x030 0x0	/* GPIO (IOMG12) */
					0x018 0x1	/* GPIO (IOMG6) */
					0x024 0x1	/* GPIO (IOMG8) */
					0x028 0x1	/* GPIO (IOMG9) */
					0x02c 0x1	/* GPIO (IOMG10) */
				>;
			};
			sd_pmx_func: sd-pins {
				pinctrl-single,pins = <
					0x0bc 0x0	/* SD_CLK/SD_CMD/SD_DATA0/SD_DATA1/SD_DATA2 (IOMG47) */
					0x0c0 0x0	/* SD_DATA3 (IOMG48) */
				>;
			};
			sd_pmx_idle: sd-idle-pins {
				pinctrl-single,pins = <
					0x0bc 0x1	/* GPIO (IOMG47) */
					0x0c0 0x1	/* GPIO (IOMG48) */
				>;
			};
			nand_pmx_func: nand-pins {
				pinctrl-single,pins = <
					0x00c 0x0	/* NAND_ALE/NAND_CLE/.../NAND_DATA[0:7] (IOMG3) */
					0x010 0x0	/* NAND_CS1_N (IOMG4) */
					0x014 0x0	/* NAND_CS2_N (IOMG5) */
					0x018 0x0	/* NAND_CS3_N (IOMG6) */
					0x01c 0x0	/* NAND_BUSY0_N (IOMG94) */
					0x020 0x0	/* NAND_BUSY1_N (IOMG7) */
					0x024 0x0	/* NAND_BUSY2_N (IOMG8) */
					0x028 0x0	/* NAND_BUSY3_N (IOMG9) */
					0x02c 0x0	/* NAND_DATA[8:15] (IOMG10) */
				>;
			};
			nand_pmx_idle: nand-idle-pins {
				pinctrl-single,pins = <
					0x00c 0x1	/* GPIO (IOMG3) */
					0x010 0x1	/* GPIO (IOMG4) */
					0x014 0x1	/* GPIO (IOMG5) */
					0x018 0x1	/* GPIO (IOMG6) */
					0x01c 0x1	/* GPIO (IOMG94) */
					0x020 0x1	/* GPIO (IOMG7) */
					0x024 0x1	/* GPIO (IOMG8) */
					0x028 0x1	/* GPIO (IOMG9) */
					0x02c 0x1	/* GPIO (IOMG10) */
				>;
			};
			sdio_pmx_func: sdio-pins {
				pinctrl-single,pins = <
					0x0c4 0x0	/* SDIO_CLK/SDIO_CMD/SDIO_DATA[0:3] (IOMG49) */
				>;
			};
			sdio_pmx_idle: sdio-idle-pins {
				pinctrl-single,pins = <
					0x0c4 0x1	/* GPIO (IOMG49) */
				>;
			};
			audio_out_pmx_func: audio-out-pins {
				pinctrl-single,pins = <
					0x0f0 0x1	/* GPIO (IOMG59), audio spk & earphone */
				>;
			};
		};

		pmx1: pinmux@803800 {
			pinctrl-names = "default";
			pinctrl-0 = <	&board_pu_pins &board_pd_pins &board_pd_ps_pins
					&board_np_pins &board_ps_pins &kpc_cfg_func
					&audio_out_cfg_func>;
			board_pu_pins: board-pu-pins {
				pinctrl-single,pins = <
					0x014 0		/* GPIO_158 (IOCFG2) */
					0x018 0		/* GPIO_159 (IOCFG3) */
					0x01c 0		/* BOOT_MODE0 (IOCFG4) */
					0x020 0		/* BOOT_MODE1 (IOCFG5) */
				>;
				pinctrl-single,bias-pulldown = <0 2 0 2>;
				pinctrl-single,bias-pullup = <1 1 0 1>;
			};
			board_pd_pins: board-pd-pins {
				pinctrl-single,pins = <
					0x038 0		/* eFUSE_DOUT (IOCFG11) */
					0x150 0		/* ISP_GPIO8 (IOCFG93) */
					0x154 0		/* ISP_GPIO9 (IOCFG94) */
				>;
				pinctrl-single,bias-pulldown = <2 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
			};
			board_pd_ps_pins: board-pd-ps-pins {
				pinctrl-single,pins = <
					0x2d8 0		/* CLK_OUT0 (IOCFG190) */
					0x004 0		/* PMU_SPI_DATA (IOCFG192) */
				>;
				pinctrl-single,bias-pulldown = <2 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
				pinctrl-single,drive-strength = <0x30 0xf0>;
			};
			board_np_pins: board-np-pins {
				pinctrl-single,pins = <
					0x24c 0		/* KEYPAD_OUT7 (IOCFG155) */
				>;
				pinctrl-single,bias-pulldown = <0 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
			};
			board_ps_pins: board-ps-pins {
				pinctrl-single,pins = <
					0x000 0		/* PMU_SPI_CLK (IOCFG191) */
					0x008 0		/* PMU_SPI_CS_N (IOCFG193) */
				>;
				pinctrl-single,drive-strength = <0x30 0xf0>;
			};
			uart0_cfg_func: uart0-cfg-pins {
				pinctrl-single,pins = <
					0x208 0		/* UART0_RXD (IOCFG138) */
					0x20c 0		/* UART0_TXD (IOCFG139) */
				>;
				pinctrl-single,bias-pulldown = <0 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
			};
			uart0_cfg_idle: uart0-cfg-idle-pins {
				pinctrl-single,pins = <
					0x208 0		/* UART0_RXD (IOCFG138) */
					0x20c 0		/* UART0_TXD (IOCFG139) */
				>;
				pinctrl-single,bias-pulldown = <2 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
			};
			uart1_cfg_func: uart1-cfg-pins {
				pinctrl-single,pins = <
					0x210 0		/* UART1_CTS (IOCFG140) */
					0x214 0		/* UART1_RTS (IOCFG141) */
					0x218 0		/* UART1_RXD (IOCFG142) */
					0x21c 0		/* UART1_TXD (IOCFG143) */
				>;
				pinctrl-single,bias-pulldown = <0 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
			};
			uart1_cfg_idle: uart1-cfg-idle-pins {
				pinctrl-single,pins = <
					0x210 0		/* UART1_CTS (IOCFG140) */
					0x214 0		/* UART1_RTS (IOCFG141) */
					0x218 0		/* UART1_RXD (IOCFG142) */
					0x21c 0		/* UART1_TXD (IOCFG143) */
				>;
				pinctrl-single,bias-pulldown = <2 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
			};
			uart2_cfg_func: uart2-cfg-pins {
				pinctrl-single,pins = <
					0x220 0		/* UART2_CTS (IOCFG144) */
					0x224 0		/* UART2_RTS (IOCFG145) */
					0x228 0		/* UART2_RXD (IOCFG146) */
					0x22c 0		/* UART2_TXD (IOCFG147) */
				>;
				pinctrl-single,bias-pulldown = <0 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
			};
			uart2_cfg_idle: uart2-cfg-idle-pins {
				pinctrl-single,pins = <
					0x220 0		/* GPIO (IOCFG144) */
					0x224 0		/* GPIO (IOCFG145) */
					0x228 0		/* GPIO (IOCFG146) */
					0x22c 0		/* GPIO (IOCFG147) */
				>;
				pinctrl-single,bias-pulldown = <2 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
			};
			uart3_cfg_func: uart3-cfg-pins {
				pinctrl-single,pins = <
					0x294 0		/* UART3_CTS (IOCFG173) */
					0x298 0		/* UART3_RTS (IOCFG174) */
					0x29c 0		/* UART3_RXD (IOCFG175) */
					0x2a0 0		/* UART3_TXD (IOCFG176) */
				>;
				pinctrl-single,bias-pulldown = <0 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
			};
			uart3_cfg_idle: uart3-cfg-idle-pins {
				pinctrl-single,pins = <
					0x294 0		/* UART3_CTS (IOCFG173) */
					0x298 0		/* UART3_RTS (IOCFG174) */
					0x29c 0		/* UART3_RXD (IOCFG175) */
					0x2a0 0		/* UART3_TXD (IOCFG176) */
				>;
				pinctrl-single,bias-pulldown = <2 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
			};
			uart4_cfg_func: uart4-cfg-pins {
				pinctrl-single,pins = <
					0x2a4 0		/* UART4_CTS (IOCFG177) */
					0x2a8 0		/* UART4_RTS (IOCFG178) */
					0x2ac 0		/* UART4_RXD (IOCFG179) */
					0x2b0 0		/* UART4_TXD (IOCFG180) */
				>;
				pinctrl-single,bias-pulldown = <0 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
			};
			i2c0_cfg_func: i2c0-cfg-pins {
				pinctrl-single,pins = <
					0x17c 0		/* I2C0_SCL (IOCFG103) */
					0x180 0		/* I2C0_SDA (IOCFG104) */
				>;
				pinctrl-single,bias-pulldown = <0 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
				pinctrl-single,drive-strength = <0x30 0xf0>;
			};
			i2c1_cfg_func: i2c1-cfg-pins {
				pinctrl-single,pins = <
					0x184 0		/* I2C1_SCL (IOCFG105) */
					0x188 0		/* I2C1_SDA (IOCFG106) */
				>;
				pinctrl-single,bias-pulldown = <0 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
				pinctrl-single,drive-strength = <0x30 0xf0>;
			};
			i2c2_cfg_func: i2c2-cfg-pins {
				pinctrl-single,pins = <
					0x118 0		/* I2C2_SCL (IOCFG79) */
					0x11c 0		/* I2C2_SDA (IOCFG80) */
				>;
				pinctrl-single,bias-pulldown = <0 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
				pinctrl-single,drive-strength = <0x30 0xf0>;
			};
			i2c3_cfg_func: i2c3-cfg-pins {
				pinctrl-single,pins = <
					0x100 0		/* I2C3_SCL (IOCFG73) */
					0x104 0		/* I2C3_SDA (IOCFG74) */
				>;
				pinctrl-single,bias-pulldown = <0 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
				pinctrl-single,drive-strength = <0x30 0xf0>;
			};
			spi0_cfg_func1: spi0-cfg-func1-pins {
				pinctrl-single,pins = <
					0x1d4 0		/* SPI0_CLK (IOCFG125) */
					0x1d8 0		/* SPI0_DI (IOCFG126) */
					0x1dc 0		/* SPI0_DO (IOCFG127) */
				>;
				pinctrl-single,bias-pulldown = <2 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
				pinctrl-single,drive-strength = <0x30 0xf0>;
			};
			spi0_cfg_func2: spi0-cfg-func2-pins {
				pinctrl-single,pins = <
					0x1e0 0		/* SPI0_CS0 (IOCFG128) */
					0x1e4 0		/* SPI0_CS1 (IOCFG129) */
					0x1e8 0		/* SPI0_CS2 (IOCFG130 */
					0x1ec 0		/* SPI0_CS3 (IOCFG131) */
				>;
				pinctrl-single,bias-pulldown = <0 2 0 2>;
				pinctrl-single,bias-pullup = <1 1 0 1>;
				pinctrl-single,drive-strength = <0x30 0xf0>;
			};
			spi1_cfg_func1: spi1-cfg-func1-pins {
				pinctrl-single,pins = <
					0x1f0 0		/* SPI1_CLK (IOCFG132) */
					0x1f4 0		/* SPI1_DI (IOCFG133) */
					0x1f8 0		/* SPI1_DO (IOCFG134) */
				>;
				pinctrl-single,bias-pulldown = <2 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
				pinctrl-single,drive-strength = <0x30 0xf0>;
			};
			spi1_cfg_func2: spi1-cfg-func2-pins {
				pinctrl-single,pins = <
					0x1fc 0		/* SPI1_CS (IOCFG135) */
				>;
				pinctrl-single,bias-pulldown = <0 2 0 2>;
				pinctrl-single,bias-pullup = <1 1 0 1>;
				pinctrl-single,drive-strength = <0x30 0xf0>;
			};
			kpc_cfg_func: kpc-cfg-pins {
				pinctrl-single,pins = <
					0x250 0		/* KEY_IN0 (IOCFG156) */
					0x254 0		/* KEY_IN1 (IOCFG157) */
					0x258 0		/* KEY_IN2 (IOCFG158) */
					0x230 0		/* KEY_OUT0 (IOCFG148) */
					0x234 0		/* KEY_OUT1 (IOCFG149) */
					0x238 0		/* KEY_OUT2 (IOCFG150) */
				>;
				pinctrl-single,bias-pulldown = <2 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
			};
			emmc_cfg_func: emmc-cfg-pins {
				pinctrl-single,pins = <
					0x0ac 0		/* eMMC_CMD (IOCFG40) */
					0x0b0 0		/* eMMC_CLK (IOCFG41) */
					0x058 0		/* NAND_CS3_N (IOCFG19) */
					0x064 0		/* NAND_BUSY2_N (IOCFG22) */
					0x068 0		/* NAND_BUSY3_N (IOCFG23) */
					0x08c 0		/* NAND_DATA8 (IOCFG32) */
					0x090 0		/* NAND_DATA9 (IOCFG33) */
					0x094 0		/* NAND_DATA10 (IOCFG34) */
					0x098 0		/* NAND_DATA11 (IOCFG35) */
					0x09c 0		/* NAND_DATA12 (IOCFG36) */
					0x0a0 0		/* NAND_DATA13 (IOCFG37) */
					0x0a4 0		/* NAND_DATA14 (IOCFG38) */
					0x0a8 0		/* NAND_DATA15 (IOCFG39) */
				>;
				pinctrl-single,bias-pulldown = <0 2 0 2>;
				pinctrl-single,bias-pullup = <1 1 0 1>;
				pinctrl-single,drive-strength = <0x30 0xf0>;
			};
			sd_cfg_func1: sd-cfg-func1-pins {
				pinctrl-single,pins = <
					0x18c 0		/* SD_CLK (IOCFG107) */
					0x190 0		/* SD_CMD (IOCFG108) */
				>;
				pinctrl-single,bias-pulldown = <2 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
				pinctrl-single,drive-strength = <0x30 0xf0>;
			};
			sd_cfg_func2: sd-cfg-func2-pins {
				pinctrl-single,pins = <
					0x194 0		/* SD_DATA0 (IOCFG109) */
					0x198 0		/* SD_DATA1 (IOCFG110) */
					0x19c 0		/* SD_DATA2 (IOCFG111) */
					0x1a0 0		/* SD_DATA3 (IOCFG112) */
				>;
				pinctrl-single,bias-pulldown = <2 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
				pinctrl-single,drive-strength = <0x70 0xf0>;
			};
			nand_cfg_func1: nand-cfg-func1-pins {
				pinctrl-single,pins = <
					0x03c 0		/* NAND_ALE (IOCFG12) */
					0x040 0		/* NAND_CLE (IOCFG13) */
					0x06c 0		/* NAND_DATA0 (IOCFG24) */
					0x070 0		/* NAND_DATA1 (IOCFG25) */
					0x074 0		/* NAND_DATA2 (IOCFG26) */
					0x078 0		/* NAND_DATA3 (IOCFG27) */
					0x07c 0		/* NAND_DATA4 (IOCFG28) */
					0x080 0		/* NAND_DATA5 (IOCFG29) */
					0x084 0		/* NAND_DATA6 (IOCFG30) */
					0x088 0		/* NAND_DATA7 (IOCFG31) */
					0x08c 0		/* NAND_DATA8 (IOCFG32) */
					0x090 0		/* NAND_DATA9 (IOCFG33) */
					0x094 0		/* NAND_DATA10 (IOCFG34) */
					0x098 0		/* NAND_DATA11 (IOCFG35) */
					0x09c 0		/* NAND_DATA12 (IOCFG36) */
					0x0a0 0		/* NAND_DATA13 (IOCFG37) */
					0x0a4 0		/* NAND_DATA14 (IOCFG38) */
					0x0a8 0		/* NAND_DATA15 (IOCFG39) */
				>;
				pinctrl-single,bias-pulldown = <2 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
				pinctrl-single,drive-strength = <0x30 0xf0>;
			};
			nand_cfg_func2: nand-cfg-func2-pins {
				pinctrl-single,pins = <
					0x044 0		/* NAND_RE_N (IOCFG14) */
					0x048 0		/* NAND_WE_N (IOCFG15) */
					0x04c 0		/* NAND_CS0_N (IOCFG16) */
					0x050 0		/* NAND_CS1_N (IOCFG17) */
					0x054 0		/* NAND_CS2_N (IOCFG18) */
					0x058 0		/* NAND_CS3_N (IOCFG19) */
					0x05c 0		/* NAND_BUSY0_N (IOCFG20) */
					0x060 0		/* NAND_BUSY1_N (IOCFG21) */
					0x064 0		/* NAND_BUSY2_N (IOCFG22) */
					0x068 0		/* NAND_BUSY3_N (IOCFG23) */
				>;
				pinctrl-single,bias-pulldown = <0 2 0 2>;
				pinctrl-single,bias-pullup = <1 1 0 1>;
				pinctrl-single,drive-strength = <0x30 0xf0>;
			};
			sdio_cfg_func: sdio-cfg-pins {
				pinctrl-single,pins = <
					0x1a4 0		/* SDIO0_CLK (IOCG113) */
					0x1a8 0		/* SDIO0_CMD (IOCG114) */
					0x1ac 0		/* SDIO0_DATA0 (IOCG115) */
					0x1b0 0		/* SDIO0_DATA1 (IOCG116) */
					0x1b4 0		/* SDIO0_DATA2 (IOCG117) */
					0x1b8 0		/* SDIO0_DATA3 (IOCG118) */
				>;
				pinctrl-single,bias-pulldown = <2 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
				pinctrl-single,drive-strength = <0x30 0xf0>;
			};
			audio_out_cfg_func: audio-out-cfg-pins {
				pinctrl-single,pins = <
					0x200 0		/* GPIO (IOCFG136) */
					0x204 0		/* GPIO (IOCFG137) */
				>;
				pinctrl-single,bias-pulldown = <2 2 0 2>;
				pinctrl-single,bias-pullup = <0 1 0 1>;
			};
		};
	};

	gpio-keys {
		compatible = "gpio-keys";

		call {
			label = "call";
			gpios = <&gpio17 2 0>;
			linux,code = <169>;	/* KEY_PHONE */
		};
	};
};
