// 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 = "ok";
		};

		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 = "ok";
		};

		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 = "ok";
		};

		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 = "ok";
		};

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

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

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

			board_pmx_pins: board_pmx_pins {
				pinctrl-single,pins = <
					0x008 0x0	/* GPIO -- eFUSE_DOUT */
					0x100 0x0	/* USIM_CLK & USIM_DATA (IOMG63) */
				>;
			};
			uart0_pmx_func: uart0_pmx_func {
				pinctrl-single,pins = <
					0x0f0 0x0
					0x0f4 0x0	/* UART0_RX & UART0_TX */
				>;
			};
			uart0_pmx_idle: uart0_pmx_idle {
				pinctrl-single,pins = <
					/*0x0f0 0x1*/	/* UART0_CTS & UART0_RTS */
					0x0f4 0x1	/* UART0_RX & UART0_TX */
				>;
			};
			uart1_pmx_func: uart1_pmx_func {
				pinctrl-single,pins = <
					0x0f8 0x0	/* UART1_CTS & UART1_RTS (IOMG61) */
					0x0fc 0x0	/* UART1_RX & UART1_TX (IOMG62) */
				>;
			};
			uart1_pmx_idle: uart1_pmx_idle {
				pinctrl-single,pins = <
					0x0f8 0x1	/* GPIO (IOMG61) */
					0x0fc 0x1	/* GPIO (IOMG62) */
				>;
			};
			uart2_pmx_func: uart2_pmx_func {
				pinctrl-single,pins = <
					0x104 0x2	/* UART2_RXD (IOMG96) */
					0x108 0x2	/* UART2_TXD (IOMG64) */
				>;
			};
			uart2_pmx_idle: uart2_pmx_idle {
				pinctrl-single,pins = <
					0x104 0x1	/* GPIO (IOMG96) */
					0x108 0x1	/* GPIO (IOMG64) */
				>;
			};
			uart3_pmx_func: uart3_pmx_func {
				pinctrl-single,pins = <
					0x160 0x2	/* UART3_CTS & UART3_RTS (IOMG85) */
					0x164 0x2	/* UART3_RXD & UART3_TXD (IOMG86) */
				>;
			};
			uart3_pmx_idle: uart3_pmx_idle {
				pinctrl-single,pins = <
					0x160 0x1	/* GPIO (IOMG85) */
					0x164 0x1	/* GPIO (IOMG86) */
				>;
			};
			uart4_pmx_func: uart4_pmx_func {
				pinctrl-single,pins = <
					0x168 0x0	/* UART4_CTS & UART4_RTS (IOMG87) */
					0x16c 0x0	/* UART4_RXD (IOMG88) */
					0x170 0x0	/* UART4_TXD (IOMG93) */
				>;
			};
			uart4_pmx_idle: uart4_pmx_idle {
				pinctrl-single,pins = <
					0x168 0x1	/* GPIO (IOMG87) */
					0x16c 0x1	/* GPIO (IOMG88) */
					0x170 0x1	/* GPIO (IOMG93) */
				>;
			};
			i2c0_pmx_func: i2c0_pmx_func {
				pinctrl-single,pins = <
					0x0b4 0x0	/* I2C0_SCL & I2C0_SDA (IOMG45) */
				>;
			};
			i2c0_pmx_idle: i2c0_pmx_idle {
				pinctrl-single,pins = <
					0x0b4 0x1	/* GPIO (IOMG45) */
				>;
			};
			i2c1_pmx_func: i2c1_pmx_func {
				pinctrl-single,pins = <
					0x0b8 0x0	/* I2C1_SCL & I2C1_SDA (IOMG46) */
				>;
			};
			i2c1_pmx_idle: i2c1_pmx_idle {
				pinctrl-single,pins = <
					0x0b8 0x1	/* GPIO (IOMG46) */
				>;
			};
			i2c2_pmx_func: i2c2_pmx_func {
				pinctrl-single,pins = <
					0x068 0x0	/* I2C2_SCL (IOMG26) */
					0x06c 0x0	/* I2C2_SDA (IOMG27) */
				>;
			};
			i2c2_pmx_idle: i2c2_pmx_idle {
				pinctrl-single,pins = <
					0x068 0x1	/* GPIO (IOMG26) */
					0x06c 0x1	/* GPIO (IOMG27) */
				>;
			};
			i2c3_pmx_func: i2c3_pmx_func {
				pinctrl-single,pins = <
					0x050 0x2	/* I2C3_SCL (IOMG20) */
					0x054 0x2	/* I2C3_SDA (IOMG21) */
				>;
			};
			i2c3_pmx_idle: i2c3_pmx_idle {
				pinctrl-single,pins = <
					0x050 0x1	/* GPIO (IOMG20) */
					0x054 0x1	/* GPIO (IOMG21) */
				>;
			};
			spi0_pmx_func: spi0_pmx_func {
				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_pmx_idle {
				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_pmx_func {
				pinctrl-single,pins = <
					0x184 0x0	/* SPI1_CLK/SPI1_DI (IOMG98) */
					0x0e8 0x0	/* SPI1_DO (IOMG58) */
					0x0ec 0x0	/* SPI1_CS (IOMG95) */
				>;
			};
			spi1_pmx_idle: spi1_pmx_idle {
				pinctrl-single,pins = <
					0x184 0x1	/* GPIO (IOMG98) */
					0x0e8 0x1	/* GPIO (IOMG58) */
					0x0ec 0x1	/* GPIO (IOMG95) */
				>;
			};
			kpc_pmx_func: kpc_pmx_func {
				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_pmx_idle {
				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_func {
				pinctrl-single,pins = <
					0x10c 0x1	/* KEY_OUT0/GPIO (IOMG65) */
					0x130 0x1	/* KEY_IN1/GPIO (IOMG74) */
				>;
			};
			emmc_pmx_func: emmc_pmx_func {
				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_pmx_idle {
				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_pmx_func {
				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_pmx_idle {
				pinctrl-single,pins = <
					0x0bc 0x1	/* GPIO (IOMG47) */
					0x0c0 0x1	/* GPIO (IOMG48) */
				>;
			};
			nand_pmx_func: nand_pmx_func {
				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_pmx_idle {
				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_pmx_func {
				pinctrl-single,pins = <
					0x0c4 0x0	/* SDIO_CLK/SDIO_CMD/SDIO_DATA[0:3] (IOMG49) */
				>;
			};
			sdio_pmx_idle: sdio_pmx_idle {
				pinctrl-single,pins = <
					0x0c4 0x1	/* GPIO (IOMG49) */
				>;
			};
			audio_out_pmx_func: audio_out_pmx_func {
				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_func {
				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 {
				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_func {
				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 {
				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_func {
				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 {
				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_func {
				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 {
				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_func {
				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_func {
				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_func {
				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_func {
				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_func {
				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 {
				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 {
				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 {
				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 {
				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_func {
				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_func {
				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 {
				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 {
				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 {
				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 {
				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_func {
				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_func {
				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 */
		};
	};
};
