| /* | 
 |  * Copyright (C) 2015, 2016 Zodiac Inflight Innovations | 
 |  * | 
 |  * Based on an original 'vf610-twr.dts' which is Copyright 2015, | 
 |  * Freescale Semiconductor, Inc. | 
 |  * | 
 |  * This file is dual-licensed: you can use it either under the terms | 
 |  * of the GPL or the X11 license, at your option. Note that this dual | 
 |  * licensing only applies to this file, and not this project as a | 
 |  * whole. | 
 |  * | 
 |  *  a) This file is free software; you can redistribute it and/or | 
 |  *     modify it under the terms of the GNU General Public License | 
 |  *     version 2 as published by the Free Software Foundation. | 
 |  * | 
 |  *     This file is distributed in the hope that it will be useful, | 
 |  *     but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
 |  *     GNU General Public License for more details. | 
 |  * | 
 |  * Or, alternatively, | 
 |  * | 
 |  *  b) Permission is hereby granted, free of charge, to any person | 
 |  *     obtaining a copy of this software and associated documentation | 
 |  *     files (the "Software"), to deal in the Software without | 
 |  *     restriction, including without limitation the rights to use, | 
 |  *     copy, modify, merge, publish, distribute, sublicense, and/or | 
 |  *     sell copies of the Software, and to permit persons to whom the | 
 |  *     Software is furnished to do so, subject to the following | 
 |  *     conditions: | 
 |  * | 
 |  *     The above copyright notice and this permission notice shall be | 
 |  *     included in all copies or substantial portions of the Software. | 
 |  * | 
 |  *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND, | 
 |  *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | 
 |  *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | 
 |  *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | 
 |  *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | 
 |  *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | 
 |  *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | 
 |  *     OTHER DEALINGS IN THE SOFTWARE. | 
 |  */ | 
 |  | 
 | /dts-v1/; | 
 | #include "vf610-zii-dev.dtsi" | 
 |  | 
 | / { | 
 | 	model = "ZII VF610 Development Board, Rev C"; | 
 | 	compatible = "zii,vf610dev-c", "zii,vf610dev", "fsl,vf610"; | 
 |  | 
 | 	mdio-mux { | 
 | 		compatible = "mdio-mux-gpio"; | 
 | 		pinctrl-0 = <&pinctrl_mdio_mux>; | 
 | 		pinctrl-names = "default"; | 
 | 		gpios = <&gpio0 8  GPIO_ACTIVE_HIGH | 
 | 			 &gpio0 9  GPIO_ACTIVE_HIGH | 
 | 			 &gpio0 25 GPIO_ACTIVE_HIGH>; | 
 | 		mdio-parent-bus = <&mdio1>; | 
 | 		#address-cells = <1>; | 
 | 		#size-cells = <0>; | 
 |  | 
 | 		mdio_mux_1: mdio@1 { | 
 | 			reg = <1>; | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 |  | 
 | 			switch0: switch@0 { | 
 | 				compatible = "marvell,mv88e6190"; | 
 | 				pinctrl-0 = <&pinctrl_gpio_switch0>; | 
 | 				pinctrl-names = "default"; | 
 | 				reg = <0>; | 
 | 				dsa,member = <0 0>; | 
 | 				eeprom-length = <65536>; | 
 | 				interrupt-parent = <&gpio0>; | 
 | 				interrupts = <27 IRQ_TYPE_LEVEL_LOW>; | 
 | 				interrupt-controller; | 
 | 				#interrupt-cells = <2>; | 
 |  | 
 | 				ports { | 
 | 					#address-cells = <1>; | 
 | 					#size-cells = <0>; | 
 |  | 
 | 					port@0 { | 
 | 						reg = <0>; | 
 | 						label = "cpu"; | 
 | 						ethernet = <&fec1>; | 
 |  | 
 | 						fixed-link { | 
 | 							speed = <100>; | 
 | 							full-duplex; | 
 | 						}; | 
 | 					}; | 
 |  | 
 | 					port@1 { | 
 | 						reg = <1>; | 
 | 						label = "lan1"; | 
 | 						phy-handle = <&switch0phy1>; | 
 | 					}; | 
 |  | 
 | 					port@2 { | 
 | 						reg = <2>; | 
 | 						label = "lan2"; | 
 | 						phy-handle = <&switch0phy2>; | 
 | 					}; | 
 |  | 
 | 					port@3 { | 
 | 						reg = <3>; | 
 | 						label = "lan3"; | 
 | 						phy-handle = <&switch0phy3>; | 
 | 					}; | 
 |  | 
 | 					port@4 { | 
 | 						reg = <4>; | 
 | 						label = "lan4"; | 
 | 						phy-handle = <&switch0phy4>; | 
 | 					}; | 
 |  | 
 | 					switch0port10: port@10 { | 
 | 						reg = <10>; | 
 | 						label = "dsa"; | 
 | 						phy-mode = "xaui"; | 
 | 						link = <&switch1port10>; | 
 | 					}; | 
 | 				}; | 
 |  | 
 | 				mdio { | 
 | 					#address-cells = <1>; | 
 | 					#size-cells = <0>; | 
 |  | 
 | 					switch0phy1: switch0phy@1 { | 
 | 						reg = <1>; | 
 | 						interrupt-parent = <&switch0>; | 
 | 						interrupts = <1 IRQ_TYPE_LEVEL_HIGH>; | 
 | 					}; | 
 |  | 
 | 					switch0phy2: switch0phy@2 { | 
 | 						reg = <2>; | 
 | 						interrupt-parent = <&switch0>; | 
 | 						interrupts = <2 IRQ_TYPE_LEVEL_HIGH>; | 
 | 					}; | 
 |  | 
 | 					switch0phy3: switch0phy@3 { | 
 | 						reg = <3>; | 
 | 						interrupt-parent = <&switch0>; | 
 | 						interrupts = <3 IRQ_TYPE_LEVEL_HIGH>; | 
 | 					}; | 
 |  | 
 | 					switch0phy4: switch0phy@4 { | 
 | 						reg = <4>; | 
 | 						interrupt-parent = <&switch0>; | 
 | 						interrupts = <4 IRQ_TYPE_LEVEL_HIGH>; | 
 | 					}; | 
 | 				}; | 
 | 			}; | 
 | 		}; | 
 |  | 
 | 		mdio_mux_2: mdio@2 { | 
 | 			reg = <2>; | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 |  | 
 | 			switch1: switch@0 { | 
 | 				compatible = "marvell,mv88e6190"; | 
 | 				pinctrl-0 = <&pinctrl_gpio_switch1>; | 
 | 				pinctrl-names = "default"; | 
 | 				reg = <0>; | 
 | 				dsa,member = <0 1>; | 
 | 				eeprom-length = <65536>; | 
 | 				interrupt-parent = <&gpio0>; | 
 | 				interrupts = <26 IRQ_TYPE_LEVEL_LOW>; | 
 | 				interrupt-controller; | 
 | 				#interrupt-cells = <2>; | 
 |  | 
 | 				ports { | 
 | 					#address-cells = <1>; | 
 | 					#size-cells = <0>; | 
 |  | 
 | 					port@1 { | 
 | 						reg = <1>; | 
 | 						label = "lan5"; | 
 | 						phy-handle = <&switch1phy1>; | 
 | 					}; | 
 |  | 
 | 					port@2 { | 
 | 						reg = <2>; | 
 | 						label = "lan6"; | 
 | 						phy-handle = <&switch1phy2>; | 
 | 					}; | 
 |  | 
 | 					port@3 { | 
 | 						reg = <3>; | 
 | 						label = "lan7"; | 
 | 						phy-handle = <&switch1phy3>; | 
 | 					}; | 
 |  | 
 | 					port@4 { | 
 | 						reg = <4>; | 
 | 						label = "lan8"; | 
 | 						phy-handle = <&switch1phy4>; | 
 | 					}; | 
 |  | 
 |  | 
 | 					switch1port10: port@10 { | 
 | 						reg = <10>; | 
 | 						label = "dsa"; | 
 | 						phy-mode = "xaui"; | 
 | 						link = <&switch0port10>; | 
 | 					}; | 
 | 				}; | 
 | 				mdio { | 
 | 					#address-cells = <1>; | 
 | 					#size-cells = <0>; | 
 |  | 
 | 					switch1phy1: switch1phy@1 { | 
 | 						reg = <1>; | 
 | 						interrupt-parent = <&switch1>; | 
 | 						interrupts = <1 IRQ_TYPE_LEVEL_HIGH>; | 
 | 					}; | 
 |  | 
 | 					switch1phy2: switch1phy@2 { | 
 | 						reg = <2>; | 
 | 						interrupt-parent = <&switch1>; | 
 | 						interrupts = <2 IRQ_TYPE_LEVEL_HIGH>; | 
 | 					}; | 
 |  | 
 | 					switch1phy3: switch1phy@3 { | 
 | 						reg = <3>; | 
 | 						interrupt-parent = <&switch1>; | 
 | 						interrupts = <3 IRQ_TYPE_LEVEL_HIGH>; | 
 | 					}; | 
 |  | 
 | 					switch1phy4: switch1phy@4 { | 
 | 						reg = <4>; | 
 | 						interrupt-parent = <&switch1>; | 
 | 						interrupts = <4 IRQ_TYPE_LEVEL_HIGH>; | 
 | 					}; | 
 | 				}; | 
 | 			}; | 
 | 		}; | 
 |  | 
 | 		mdio_mux_4: mdio@4 { | 
 | 			reg = <4>; | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 		}; | 
 | 	}; | 
 | }; | 
 |  | 
 | &dspi0 { | 
 | 	bus-num = <0>; | 
 | 	pinctrl-names = "default"; | 
 | 	pinctrl-0 = <&pinctrl_dspi0>; | 
 | 	status = "okay"; | 
 | 	spi-num-chipselects = <2>; | 
 |  | 
 | 	m25p128@0 { | 
 | 		compatible = "m25p128", "jedec,spi-nor"; | 
 | 		#address-cells = <1>; | 
 | 		#size-cells = <1>; | 
 | 		reg = <0>; | 
 | 		spi-max-frequency = <1000000>; | 
 | 	}; | 
 |  | 
 | 	atzb-rf-233@1 { | 
 | 		compatible = "atmel,at86rf233"; | 
 |  | 
 | 		pinctrl-names = "default"; | 
 | 		pinctrl-0 = <&pinctr_atzb_rf_233>; | 
 |  | 
 | 		spi-max-frequency = <7500000>; | 
 | 		reg = <1>; | 
 | 		interrupts = <4 IRQ_TYPE_LEVEL_HIGH>; | 
 | 		interrupt-parent = <&gpio3>; | 
 | 		xtal-trim = /bits/ 8 <0x06>; | 
 |  | 
 | 		sleep-gpio = <&gpio0 24 GPIO_ACTIVE_HIGH>; | 
 | 		reset-gpio = <&gpio6 10 GPIO_ACTIVE_HIGH>; | 
 |  | 
 | 		fsl,spi-cs-sck-delay = <180>; | 
 | 		fsl,spi-sck-cs-delay = <250>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &i2c0 { | 
 | 	/* | 
 | 	 * U712 | 
 | 	 * | 
 | 	 * Exposed signals: | 
 | 	 *    P1 - WE2_CMD | 
 | 	 *    P2 - WE2_CLK | 
 | 	 */ | 
 | 	gpio5: pca9557@18 { | 
 | 		compatible = "nxp,pca9557"; | 
 | 		reg = <0x18>; | 
 | 		gpio-controller; | 
 | 		#gpio-cells = <2>; | 
 | 	}; | 
 |  | 
 | 	/* | 
 | 	 * U121 | 
 | 	 * | 
 | 	 * Exposed signals: | 
 | 	 *    I/O0  - ENET_SWR_EN | 
 | 	 *    I/O1  - ESW1_RESETn | 
 | 	 *    I/O2  - ARINC_RESET | 
 | 	 *    I/O3  - DD1_IO_RESET | 
 | 	 *    I/O4  - ESW2_RESETn | 
 | 	 *    I/O5  - ESW3_RESETn | 
 | 	 *    I/O6  - ESW4_RESETn | 
 | 	 *    I/O8  - TP909 | 
 | 	 *    I/O9  - FEM_SEL | 
 | 	 *    I/O10 - WIFI_RESETn | 
 | 	 *    I/O11 - PHY_RSTn | 
 | 	 *    I/O12 - OPT1_SD | 
 | 	 *    I/O13 - OPT2_SD | 
 | 	 *    I/O14 - OPT1_TX_DIS | 
 | 	 *    I/O15 - OPT2_TX_DIS | 
 | 	 */ | 
 | 	gpio6: sx1503@20 { | 
 | 		compatible = "semtech,sx1503q"; | 
 |  | 
 | 		pinctrl-names = "default"; | 
 | 		pinctrl-0 = <&pinctrl_sx1503_20>; | 
 | 		#gpio-cells = <2>; | 
 | 		#interrupt-cells = <2>; | 
 | 		reg = <0x20>; | 
 | 		interrupt-parent = <&gpio0>; | 
 | 		interrupts = <23 IRQ_TYPE_EDGE_FALLING>; | 
 | 		gpio-controller; | 
 | 		interrupt-controller; | 
 |  | 
 | 		enet_swr_en { | 
 | 			gpio-hog; | 
 | 			gpios = <0 GPIO_ACTIVE_HIGH>; | 
 | 			output-high; | 
 | 			line-name = "enet-swr-en"; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	/* | 
 | 	 * U715 | 
 | 	 * | 
 | 	 * Exposed signals: | 
 | 	 *     IO0 - WE1_CLK | 
 | 	 *     IO1 - WE1_CMD | 
 | 	 */ | 
 | 	gpio7: pca9554@22 { | 
 | 		compatible = "nxp,pca9554"; | 
 | 		reg = <0x22>; | 
 | 		gpio-controller; | 
 | 		#gpio-cells = <2>; | 
 |  | 
 | 	}; | 
 | }; | 
 |  | 
 | &i2c1 { | 
 | 	at24mac602@50 { | 
 | 		compatible = "atmel,24c02"; | 
 | 		reg = <0x50>; | 
 | 		read-only; | 
 | 	}; | 
 | }; | 
 |  | 
 | &i2c2 { | 
 | 	tca9548@70 { | 
 | 		compatible = "nxp,pca9548"; | 
 | 		pinctrl-0 = <&pinctrl_i2c_mux_reset>; | 
 | 		pinctrl-names = "default"; | 
 | 		#address-cells = <1>; | 
 | 		#size-cells = <0>; | 
 | 		reg = <0x70>; | 
 | 		reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>; | 
 |  | 
 | 		i2c@0 { | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			reg = <0>; | 
 | 		}; | 
 |  | 
 | 		i2c@1 { | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			reg = <1>; | 
 |  | 
 | 			sfp2: at24c04@50 { | 
 | 				compatible = "atmel,24c02"; | 
 | 				reg = <0x50>; | 
 | 			}; | 
 | 		}; | 
 |  | 
 | 		i2c@2 { | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			reg = <2>; | 
 |  | 
 | 			sfp3: at24c04@50 { | 
 | 				compatible = "atmel,24c02"; | 
 | 				reg = <0x50>; | 
 | 			}; | 
 | 		}; | 
 |  | 
 | 		i2c@3 { | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			reg = <3>; | 
 | 		}; | 
 | 	}; | 
 | }; | 
 |  | 
 | &uart3 { | 
 | 	pinctrl-names = "default"; | 
 | 	pinctrl-0 = <&pinctrl_uart3>; | 
 | 	status = "okay"; | 
 | }; | 
 |  | 
 | &gpio0 { | 
 | 	eth0_intrp { | 
 | 		gpio-hog; | 
 | 		gpios = <23 GPIO_ACTIVE_HIGH>; | 
 | 		input; | 
 | 		line-name = "sx1503-irq"; | 
 | 	}; | 
 | }; | 
 |  | 
 | &gpio3 { | 
 | 	eth0_intrp { | 
 | 		gpio-hog; | 
 | 		gpios = <2 GPIO_ACTIVE_HIGH>; | 
 | 		input; | 
 | 		line-name = "eth0-intrp"; | 
 | 	}; | 
 | }; | 
 |  | 
 | &fec0 { | 
 | 	mdio { | 
 | 		#address-cells = <1>; | 
 | 		#size-cells = <0>; | 
 | 		status = "okay"; | 
 |  | 
 | 		ethernet-phy@0 { | 
 | 			compatible = "ethernet-phy-ieee802.3-c22"; | 
 |  | 
 | 			pinctrl-names = "default"; | 
 | 			pinctrl-0 = <&pinctrl_fec0_phy_int>; | 
 |  | 
 | 			interrupt-parent = <&gpio3>; | 
 | 			interrupts = <2 IRQ_TYPE_LEVEL_LOW>; | 
 | 			reg = <0>; | 
 | 		}; | 
 | 	}; | 
 | }; | 
 |  | 
 | &iomuxc { | 
 | 	pinctr_atzb_rf_233: pinctrl-atzb-rf-233 { | 
 | 		fsl,pins = < | 
 | 			VF610_PAD_PTB2__GPIO_24		0x31c2 | 
 | 			VF610_PAD_PTE27__GPIO_132	0x33e2 | 
 | 		>; | 
 | 	}; | 
 |  | 
 |  | 
 | 	pinctrl_sx1503_20: pinctrl-sx1503-20 { | 
 | 		fsl,pins = < | 
 | 			VF610_PAD_PTB1__GPIO_23		0x219d | 
 | 		>; | 
 | 	}; | 
 |  | 
 | 	pinctrl_uart3: uart3grp { | 
 | 		fsl,pins = < | 
 | 			VF610_PAD_PTA20__UART3_TX	0x21a2 | 
 | 			VF610_PAD_PTA21__UART3_RX	0x21a1 | 
 | 		>; | 
 | 	}; | 
 |  | 
 | 	pinctrl_mdio_mux: pinctrl-mdio-mux { | 
 | 		fsl,pins = < | 
 | 			VF610_PAD_PTA18__GPIO_8		0x31c2 | 
 | 			VF610_PAD_PTA19__GPIO_9		0x31c2 | 
 | 			VF610_PAD_PTB3__GPIO_25		0x31c2 | 
 | 		>; | 
 | 	}; | 
 |  | 
 | 	pinctrl_fec0_phy_int: pinctrl-fec0-phy-int { | 
 | 		fsl,pins = < | 
 | 			VF610_PAD_PTB28__GPIO_98	0x219d | 
 | 		>; | 
 | 	}; | 
 | }; |