/*
 *  BSD LICENSE
 *
 *  Copyright(c) 2016-2017 Broadcom.  All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions
 *  are met:
 *
 *    * Redistributions of source code must retain the above copyright
 *      notice, this list of conditions and the following disclaimer.
 *    * Redistributions in binary form must reproduce the above copyright
 *      notice, this list of conditions and the following disclaimer in
 *      the documentation and/or other materials provided with the
 *      distribution.
 *    * Neither the name of Broadcom nor the names of its
 *      contributors may be used to endorse or promote products derived
 *      from this software without specific prior written permission.
 *
 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

#include <dt-bindings/pinctrl/brcm,pinctrl-stingray.h>

		pinconf: pinconf@00140000 {
			compatible = "pinconf-single";
			reg = <0x00140000 0x250>;
			pinctrl-single,register-width = <32>;

			/* pinconf functions */
		};

		pinmux: pinmux@0014029c {
			compatible = "pinctrl-single";
			reg = <0x0014029c 0x250>;
			#address-cells = <1>;
			#size-cells = <1>;
			pinctrl-single,register-width = <32>;
			pinctrl-single,function-mask = <0xf>;
			pinctrl-single,gpio-range = <
				&range 0 154 MODE_GPIO
				>;
			range: gpio-range {
				#pinctrl-single,gpio-range-cells = <3>;
			};

			/* pinctrl functions */
			tsio_pins: pinmux_gpio_14 {
				pinctrl-single,pins = <
					0x038 MODE_NITRO /* tsio_0 */
					0x03c MODE_NITRO /* tsio_1 */
				>;
			};

			nor_pins: pinmux_pnor_adv_n {
				pinctrl-single,pins = <
					0x0ac MODE_PNOR /* nand_ce1_n */
					0x0b0 MODE_PNOR /* nand_ce0_n */
					0x0b4 MODE_PNOR /* nand_we_n */
					0x0b8 MODE_PNOR /* nand_wp_n */
					0x0bc MODE_PNOR /* nand_re_n */
					0x0c0 MODE_PNOR /* nand_rdy_bsy_n */
					0x0c4 MODE_PNOR /* nand_io0_0 */
					0x0c8 MODE_PNOR /* nand_io1_0 */
					0x0cc MODE_PNOR /* nand_io2_0 */
					0x0d0 MODE_PNOR /* nand_io3_0 */
					0x0d4 MODE_PNOR /* nand_io4_0 */
					0x0d8 MODE_PNOR /* nand_io5_0 */
					0x0dc MODE_PNOR /* nand_io6_0 */
					0x0e0 MODE_PNOR /* nand_io7_0 */
					0x0e4 MODE_PNOR /* nand_io8_0 */
					0x0e8 MODE_PNOR /* nand_io9_0 */
					0x0ec MODE_PNOR /* nand_io10_0 */
					0x0f0 MODE_PNOR /* nand_io11_0 */
					0x0f4 MODE_PNOR /* nand_io12_0 */
					0x0f8 MODE_PNOR /* nand_io13_0 */
					0x0fc MODE_PNOR /* nand_io14_0 */
					0x100 MODE_PNOR /* nand_io15_0 */
					0x104 MODE_PNOR /* nand_ale_0 */
					0x108 MODE_PNOR /* nand_cle_0 */
					0x040 MODE_PNOR /* pnor_adv_n */
					0x044 MODE_PNOR /* pnor_baa_n */
					0x048 MODE_PNOR /* pnor_bls_0_n */
					0x04c MODE_PNOR /* pnor_bls_1_n */
					0x050 MODE_PNOR /* pnor_cre */
					0x054 MODE_PNOR /* pnor_cs_2_n */
					0x058 MODE_PNOR /* pnor_cs_1_n */
					0x05c MODE_PNOR /* pnor_cs_0_n */
					0x060 MODE_PNOR /* pnor_we_n */
					0x064 MODE_PNOR /* pnor_oe_n */
					0x068 MODE_PNOR /* pnor_intr */
					0x06c MODE_PNOR /* pnor_dat_0 */
					0x070 MODE_PNOR /* pnor_dat_1 */
					0x074 MODE_PNOR /* pnor_dat_2 */
					0x078 MODE_PNOR /* pnor_dat_3 */
					0x07c MODE_PNOR /* pnor_dat_4 */
					0x080 MODE_PNOR /* pnor_dat_5 */
					0x084 MODE_PNOR /* pnor_dat_6 */
					0x088 MODE_PNOR /* pnor_dat_7 */
					0x08c MODE_PNOR /* pnor_dat_8 */
					0x090 MODE_PNOR /* pnor_dat_9 */
					0x094 MODE_PNOR /* pnor_dat_10 */
					0x098 MODE_PNOR /* pnor_dat_11 */
					0x09c MODE_PNOR /* pnor_dat_12 */
					0x0a0 MODE_PNOR /* pnor_dat_13 */
					0x0a4 MODE_PNOR /* pnor_dat_14 */
					0x0a8 MODE_PNOR /* pnor_dat_15 */
				>;
			};

			nand_pins: pinmux_nand_ce1_n {
				pinctrl-single,pins = <
					0x0ac MODE_NAND /* nand_ce1_n */
					0x0b0 MODE_NAND /* nand_ce0_n */
					0x0b4 MODE_NAND /* nand_we_n */
					0x0b8 MODE_NAND /* nand_wp_n */
					0x0bc MODE_NAND /* nand_re_n */
					0x0c0 MODE_NAND /* nand_rdy_bsy_n */
					0x0c4 MODE_NAND /* nand_io0_0 */
					0x0c8 MODE_NAND /* nand_io1_0 */
					0x0cc MODE_NAND /* nand_io2_0 */
					0x0d0 MODE_NAND /* nand_io3_0 */
					0x0d4 MODE_NAND /* nand_io4_0 */
					0x0d8 MODE_NAND /* nand_io5_0 */
					0x0dc MODE_NAND /* nand_io6_0 */
					0x0e0 MODE_NAND /* nand_io7_0 */
					0x0e4 MODE_NAND /* nand_io8_0 */
					0x0e8 MODE_NAND /* nand_io9_0 */
					0x0ec MODE_NAND /* nand_io10_0 */
					0x0f0 MODE_NAND /* nand_io11_0 */
					0x0f4 MODE_NAND /* nand_io12_0 */
					0x0f8 MODE_NAND /* nand_io13_0 */
					0x0fc MODE_NAND /* nand_io14_0 */
					0x100 MODE_NAND /* nand_io15_0 */
					0x104 MODE_NAND /* nand_ale_0 */
					0x108 MODE_NAND /* nand_cle_0 */
				>;
			};

			pwm0_pins: pinmux_pwm_0 {
				pinctrl-single,pins = <
					0x10c MODE_NITRO
				>;
			};

			pwm1_pins: pinmux_pwm_1 {
				pinctrl-single,pins = <
					0x110 MODE_NITRO
				>;
			};

			pwm2_pins: pinmux_pwm_2 {
				pinctrl-single,pins = <
					0x114 MODE_NITRO
				>;
			};

			pwm3_pins: pinmux_pwm_3 {
				pinctrl-single,pins = <
					0x118 MODE_NITRO
				>;
			};

			dbu_rxd_pins: pinmux_uart1_sin_nitro {
				pinctrl-single,pins = <
					0x11c MODE_NITRO /* dbu_rxd */
					0x120 MODE_NITRO /* dbu_txd */
				>;
			};

			uart1_pins: pinmux_uart1_sin_nand {
				pinctrl-single,pins = <
					0x11c MODE_NAND /* uart1_sin */
					0x120 MODE_NAND /* uart1_out */
				>;
			};

			uart2_pins: pinmux_uart2_sin {
				pinctrl-single,pins = <
					0x124 MODE_NITRO /* uart2_sin */
					0x128 MODE_NITRO /* uart2_out */
				>;
			};

			uart3_pins: pinmux_uart3_sin {
				pinctrl-single,pins = <
					0x12c MODE_NITRO /* uart3_sin */
					0x130 MODE_NITRO /* uart3_out */
				>;
			};

			i2s_pins: pinmux_i2s_bitclk {
				pinctrl-single,pins = <
					0x134 MODE_NITRO /* i2s_bitclk */
					0x138 MODE_NITRO /* i2s_sdout */
					0x13c MODE_NITRO /* i2s_sdin */
					0x140 MODE_NITRO /* i2s_ws */
					0x144 MODE_NITRO /* i2s_mclk */
					0x148 MODE_NITRO /* i2s_spdif_out */
				>;
			};

			qspi_pins: pinumx_qspi_hold_n {
				pinctrl-single,pins = <
					0x14c MODE_NAND /* qspi_hold_n */
					0x150 MODE_NAND /* qspi_wp_n */
					0x154 MODE_NAND /* qspi_sck */
					0x158 MODE_NAND /* qspi_cs_n */
					0x15c MODE_NAND /* qspi_mosi */
					0x160 MODE_NAND /* qspi_miso */
				>;
			};

			mdio_pins: pinumx_ext_mdio {
				pinctrl-single,pins = <
					0x164 MODE_NITRO /* ext_mdio */
					0x168 MODE_NITRO /* ext_mdc */
				>;
			};

			i2c0_pins: pinmux_i2c0_sda {
				pinctrl-single,pins = <
					0x16c MODE_NITRO /* i2c0_sda */
					0x170 MODE_NITRO /* i2c0_scl */
				>;
			};

			i2c1_pins: pinmux_i2c1_sda {
				pinctrl-single,pins = <
					0x174 MODE_NITRO /* i2c1_sda */
					0x178 MODE_NITRO /* i2c1_scl */
				>;
			};

			sdio0_pins: pinmux_sdio0_cd_l {
				pinctrl-single,pins = <
					0x17c MODE_NITRO /* sdio0_cd_l */
					0x180 MODE_NITRO /* sdio0_clk_sdcard */
					0x184 MODE_NITRO /* sdio0_data0 */
					0x188 MODE_NITRO /* sdio0_data1 */
					0x18c MODE_NITRO /* sdio0_data2 */
					0x190 MODE_NITRO /* sdio0_data3 */
					0x194 MODE_NITRO /* sdio0_data4 */
					0x198 MODE_NITRO /* sdio0_data5 */
					0x19c MODE_NITRO /* sdio0_data6 */
					0x1a0 MODE_NITRO /* sdio0_data7 */
					0x1a4 MODE_NITRO /* sdio0_cmd */
					0x1a8 MODE_NITRO /* sdio0_emmc_rst_n */
					0x1ac MODE_NITRO /* sdio0_led_on */
					0x1b0 MODE_NITRO /* sdio0_wp */
				>;
			};

			sdio1_pins: pinmux_sdio1_cd_l {
				pinctrl-single,pins = <
					0x1b4 MODE_NITRO /* sdio1_cd_l */
					0x1b8 MODE_NITRO /* sdio1_clk_sdcard */
					0x1bc MODE_NITRO /* sdio1_data0 */
					0x1c0 MODE_NITRO /* sdio1_data1 */
					0x1c4 MODE_NITRO /* sdio1_data2 */
					0x1c8 MODE_NITRO /* sdio1_data3 */
					0x1cc MODE_NITRO /* sdio1_data4 */
					0x1d0 MODE_NITRO /* sdio1_data5 */
					0x1d4 MODE_NITRO /* sdio1_data6 */
					0x1d8 MODE_NITRO /* sdio1_data7 */
					0x1dc MODE_NITRO /* sdio1_cmd */
					0x1e0 MODE_NITRO /* sdio1_emmc_rst_n */
					0x1e4 MODE_NITRO /* sdio1_led_on */
					0x1e8 MODE_NITRO /* sdio1_wp */
				>;
			};

			spi0_pins: pinmux_spi0_sck_nand {
				pinctrl-single,pins = <
					0x1ec MODE_NITRO /* spi0_sck */
					0x1f0 MODE_NITRO /* spi0_rxd */
					0x1f4 MODE_NITRO /* spi0_fss */
					0x1f8 MODE_NITRO /* spi0_txd */
				>;
			};

			spi1_pins: pinmux_spi1_sck_nand {
				pinctrl-single,pins = <
					0x1fc MODE_NITRO /* spi1_sck */
					0x200 MODE_NITRO /* spi1_rxd */
					0x204 MODE_NITRO /* spi1_fss */
					0x208 MODE_NITRO /* spi1_txd */
				>;
			};

			nuart_pins: pinmux_uart0_sin_nitro {
				pinctrl-single,pins = <
					0x20c MODE_NITRO /* nuart_rxd */
					0x210 MODE_NITRO /* nuart_txd */
				>;
			};

			uart0_pins: pinumux_uart0_sin_nand {
				pinctrl-single,pins = <
					0x20c MODE_NAND /* uart0_sin */
					0x210 MODE_NAND /* uart0_out */
					0x214 MODE_NAND /* uart0_rts */
					0x218 MODE_NAND /* uart0_cts */
					0x21c MODE_NAND /* uart0_dtr */
					0x220 MODE_NAND /* uart0_dcd */
					0x224 MODE_NAND /* uart0_dsr */
					0x228 MODE_NAND /* uart0_ri */
				>;
			};

			drdu2_pins: pinmux_drdu2_overcurrent {
				pinctrl-single,pins = <
					0x22c MODE_NITRO /* drdu2_overcurrent */
					0x230 MODE_NITRO /* drdu2_vbus_ppc */
					0x234 MODE_NITRO /* drdu2_vbus_present */
					0x238 MODE_NITRO /* drdu2_id */
				>;
			};

			drdu3_pins: pinmux_drdu3_overcurrent {
				pinctrl-single,pins = <
					0x23c MODE_NITRO /* drdu3_overcurrent */
					0x240 MODE_NITRO /* drdu3_vbus_ppc */
					0x244 MODE_NITRO /* drdu3_vbus_present */
					0x248 MODE_NITRO /* drdu3_id */
				>;
			};

			usb3h_pins: pinmux_usb3h_overcurrent {
				pinctrl-single,pins = <
					0x24c MODE_NITRO /* usb3h_overcurrent */
					0x250 MODE_NITRO /* usb3h_vbus_ppc */
				>;
			};
		};
