Home | History | Annotate | Line # | Download | only in dts
      1      1.1  jmcneill // SPDX-License-Identifier: (GPL-2.0 OR MIT)
      2      1.1  jmcneill /*
      3      1.1  jmcneill  * Device Tree file for Helios4
      4      1.1  jmcneill  * based on SolidRun Clearfog revision A1 rev 2.0 (88F6828)
      5      1.1  jmcneill  *
      6      1.1  jmcneill  *  Copyright (C) 2017 Aditya Prayoga <aditya (a] kobol.io>
      7      1.1  jmcneill  *
      8      1.1  jmcneill  */
      9      1.1  jmcneill 
     10      1.1  jmcneill /dts-v1/;
     11      1.1  jmcneill #include "armada-388.dtsi"
     12      1.1  jmcneill #include "armada-38x-solidrun-microsom.dtsi"
     13      1.1  jmcneill 
     14      1.1  jmcneill / {
     15      1.1  jmcneill 	model = "Helios4";
     16      1.1  jmcneill 	compatible = "kobol,helios4", "marvell,armada388",
     17      1.1  jmcneill 		"marvell,armada385", "marvell,armada380";
     18      1.1  jmcneill 
     19      1.1  jmcneill 	memory {
     20      1.1  jmcneill 		device_type = "memory";
     21      1.1  jmcneill 		reg = <0x00000000 0x80000000>; /* 2 GB */
     22      1.1  jmcneill 	};
     23      1.1  jmcneill 
     24      1.1  jmcneill 	aliases {
     25      1.1  jmcneill 		/* So that mvebu u-boot can update the MAC addresses */
     26      1.1  jmcneill 		ethernet1 = &eth0;
     27      1.1  jmcneill 	};
     28      1.1  jmcneill 
     29      1.1  jmcneill 	chosen {
     30      1.1  jmcneill 		stdout-path = "serial0:115200n8";
     31      1.1  jmcneill 	};
     32      1.1  jmcneill 
     33      1.1  jmcneill 	reg_12v: regulator-12v {
     34      1.1  jmcneill 		compatible = "regulator-fixed";
     35      1.1  jmcneill 		regulator-name = "power_brick_12V";
     36      1.1  jmcneill 		regulator-min-microvolt = <12000000>;
     37      1.1  jmcneill 		regulator-max-microvolt = <12000000>;
     38      1.1  jmcneill 		regulator-always-on;
     39      1.1  jmcneill 	};
     40      1.1  jmcneill 
     41      1.1  jmcneill 	reg_3p3v: regulator-3p3v {
     42      1.1  jmcneill 		compatible = "regulator-fixed";
     43      1.1  jmcneill 		regulator-name = "3P3V";
     44      1.1  jmcneill 		regulator-min-microvolt = <3300000>;
     45      1.1  jmcneill 		regulator-max-microvolt = <3300000>;
     46      1.1  jmcneill 		regulator-always-on;
     47      1.1  jmcneill 		vin-supply = <&reg_12v>;
     48      1.1  jmcneill 	};
     49      1.1  jmcneill 
     50      1.1  jmcneill 	reg_5p0v_hdd: regulator-5v-hdd {
     51      1.1  jmcneill 		compatible = "regulator-fixed";
     52      1.1  jmcneill 		regulator-name = "5V_HDD";
     53      1.1  jmcneill 		regulator-min-microvolt = <5000000>;
     54      1.1  jmcneill 		regulator-max-microvolt = <5000000>;
     55      1.1  jmcneill 		regulator-always-on;
     56      1.1  jmcneill 		vin-supply = <&reg_12v>;
     57      1.1  jmcneill 	};
     58      1.1  jmcneill 
     59      1.1  jmcneill 	reg_5p0v_usb: regulator-5v-usb {
     60      1.1  jmcneill 		compatible = "regulator-fixed";
     61      1.1  jmcneill 		regulator-name = "USB-PWR";
     62      1.1  jmcneill 		regulator-min-microvolt = <5000000>;
     63      1.1  jmcneill 		regulator-max-microvolt = <5000000>;
     64      1.1  jmcneill 		regulator-boot-on;
     65      1.1  jmcneill 		regulator-always-on;
     66      1.1  jmcneill 		enable-active-high;
     67      1.1  jmcneill 		gpio = <&expander0 6 GPIO_ACTIVE_HIGH>;
     68      1.1  jmcneill 		vin-supply = <&reg_12v>;
     69      1.1  jmcneill 	};
     70      1.1  jmcneill 
     71      1.1  jmcneill 	system-leds {
     72      1.1  jmcneill 		compatible = "gpio-leds";
     73  1.1.1.2  jmcneill 		pinctrl-names = "default";
     74  1.1.1.2  jmcneill 		pinctrl-0 = <&helios_system_led_pins>;
     75  1.1.1.2  jmcneill 
     76      1.1  jmcneill 		status-led {
     77      1.1  jmcneill 			label = "helios4:green:status";
     78      1.1  jmcneill 			gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
     79      1.1  jmcneill 			linux,default-trigger = "heartbeat";
     80      1.1  jmcneill 			default-state = "on";
     81      1.1  jmcneill 		};
     82      1.1  jmcneill 
     83      1.1  jmcneill 		fault-led {
     84      1.1  jmcneill 			label = "helios4:red:fault";
     85      1.1  jmcneill 			gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
     86      1.1  jmcneill 			default-state = "keep";
     87      1.1  jmcneill 		};
     88      1.1  jmcneill 	};
     89      1.1  jmcneill 
     90      1.1  jmcneill 	io-leds {
     91      1.1  jmcneill 		compatible = "gpio-leds";
     92  1.1.1.2  jmcneill 		pinctrl-names = "default";
     93  1.1.1.2  jmcneill 		pinctrl-0 = <&helios_io_led_pins>;
     94  1.1.1.2  jmcneill 
     95      1.1  jmcneill 		sata1-led {
     96      1.1  jmcneill 			label = "helios4:green:ata1";
     97      1.1  jmcneill 			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
     98      1.1  jmcneill 			linux,default-trigger = "ata1";
     99      1.1  jmcneill 			default-state = "off";
    100      1.1  jmcneill 		};
    101      1.1  jmcneill 		sata2-led {
    102      1.1  jmcneill 			label = "helios4:green:ata2";
    103      1.1  jmcneill 			gpios = <&gpio1 18 GPIO_ACTIVE_LOW>;
    104      1.1  jmcneill 			linux,default-trigger = "ata2";
    105      1.1  jmcneill 			default-state = "off";
    106      1.1  jmcneill 		};
    107      1.1  jmcneill 		sata3-led {
    108      1.1  jmcneill 			label = "helios4:green:ata3";
    109      1.1  jmcneill 			gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
    110      1.1  jmcneill 			linux,default-trigger = "ata3";
    111      1.1  jmcneill 			default-state = "off";
    112      1.1  jmcneill 		};
    113      1.1  jmcneill 		sata4-led {
    114      1.1  jmcneill 			label = "helios4:green:ata4";
    115      1.1  jmcneill 			gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
    116      1.1  jmcneill 			linux,default-trigger = "ata4";
    117      1.1  jmcneill 			default-state = "off";
    118      1.1  jmcneill 		};
    119      1.1  jmcneill 		usb-led {
    120      1.1  jmcneill 			label = "helios4:green:usb";
    121      1.1  jmcneill 			gpios = <&gpio1 22 GPIO_ACTIVE_LOW>;
    122      1.1  jmcneill 			linux,default-trigger = "usb-host";
    123      1.1  jmcneill 			default-state = "off";
    124      1.1  jmcneill 		};
    125      1.1  jmcneill 	};
    126      1.1  jmcneill 
    127      1.1  jmcneill 	fan1: j10-pwm {
    128      1.1  jmcneill 		compatible = "pwm-fan";
    129      1.1  jmcneill 		pwms = <&gpio1 9 40000>;	/* Target freq:25 kHz */
    130  1.1.1.2  jmcneill 		pinctrl-names = "default";
    131  1.1.1.2  jmcneill 		pinctrl-0 = <&helios_fan1_pins>;
    132      1.1  jmcneill 	};
    133      1.1  jmcneill 
    134      1.1  jmcneill 	fan2: j17-pwm {
    135      1.1  jmcneill 		compatible = "pwm-fan";
    136      1.1  jmcneill 		pwms = <&gpio1 23 40000>;	/* Target freq:25 kHz */
    137  1.1.1.2  jmcneill 		pinctrl-names = "default";
    138  1.1.1.2  jmcneill 		pinctrl-0 = <&helios_fan2_pins>;
    139      1.1  jmcneill 	};
    140      1.1  jmcneill 
    141      1.1  jmcneill 	usb2_phy: usb2-phy {
    142      1.1  jmcneill 		compatible = "usb-nop-xceiv";
    143      1.1  jmcneill 		vbus-regulator = <&reg_5p0v_usb>;
    144      1.1  jmcneill 	};
    145      1.1  jmcneill 
    146      1.1  jmcneill 	usb3_phy: usb3-phy {
    147      1.1  jmcneill 		compatible = "usb-nop-xceiv";
    148      1.1  jmcneill 	};
    149      1.1  jmcneill 
    150      1.1  jmcneill 	soc {
    151      1.1  jmcneill 		internal-regs {
    152      1.1  jmcneill 			i2c@11000 {
    153      1.1  jmcneill 				/*
    154      1.1  jmcneill 				 * PCA9655 GPIO expander, up to 1MHz clock.
    155      1.1  jmcneill 				 *  0-Board Revision bit 0 #
    156      1.1  jmcneill 				 *  1-Board Revision bit 1 #
    157      1.1  jmcneill 				 *  5-USB3 overcurrent
    158      1.1  jmcneill 				 *  6-USB3 power
    159      1.1  jmcneill 				 */
    160      1.1  jmcneill 				expander0: gpio-expander@20 {
    161      1.1  jmcneill 					/*
    162      1.1  jmcneill 					 * This is how it should be:
    163      1.1  jmcneill 					 * compatible = "onnn,pca9655",
    164      1.1  jmcneill 					 *	 "nxp,pca9555";
    165      1.1  jmcneill 					 * but you can't do this because of
    166      1.1  jmcneill 					 * the way I2C works.
    167      1.1  jmcneill 					 */
    168      1.1  jmcneill 					compatible = "nxp,pca9555";
    169      1.1  jmcneill 					gpio-controller;
    170      1.1  jmcneill 					#gpio-cells = <2>;
    171      1.1  jmcneill 					reg = <0x20>;
    172      1.1  jmcneill 					pinctrl-names = "default";
    173      1.1  jmcneill 					pinctrl-0 = <&pca0_pins>;
    174      1.1  jmcneill 					interrupt-parent = <&gpio0>;
    175      1.1  jmcneill 					interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
    176      1.1  jmcneill 					interrupt-controller;
    177      1.1  jmcneill 					#interrupt-cells = <2>;
    178      1.1  jmcneill 
    179  1.1.1.2  jmcneill 					board-rev-bit-0-hog {
    180      1.1  jmcneill 						gpio-hog;
    181      1.1  jmcneill 						gpios = <0 GPIO_ACTIVE_LOW>;
    182      1.1  jmcneill 						input;
    183      1.1  jmcneill 						line-name = "board-rev-0";
    184      1.1  jmcneill 					};
    185  1.1.1.2  jmcneill 					board-rev-bit-1-hog {
    186      1.1  jmcneill 						gpio-hog;
    187      1.1  jmcneill 						gpios = <1 GPIO_ACTIVE_LOW>;
    188      1.1  jmcneill 						input;
    189      1.1  jmcneill 						line-name = "board-rev-1";
    190      1.1  jmcneill 					};
    191  1.1.1.2  jmcneill 					usb3-ilimit-hog {
    192      1.1  jmcneill 						gpio-hog;
    193      1.1  jmcneill 						gpios = <5 GPIO_ACTIVE_HIGH>;
    194      1.1  jmcneill 						input;
    195      1.1  jmcneill 						line-name = "usb-overcurrent-status";
    196      1.1  jmcneill 					};
    197      1.1  jmcneill 				};
    198      1.1  jmcneill 
    199      1.1  jmcneill 				temp_sensor: temp@4c {
    200      1.1  jmcneill 					compatible = "ti,lm75";
    201      1.1  jmcneill 					reg = <0x4c>;
    202      1.1  jmcneill 					vcc-supply = <&reg_3p3v>;
    203      1.1  jmcneill 				};
    204      1.1  jmcneill 			};
    205      1.1  jmcneill 
    206      1.1  jmcneill 			i2c@11100 {
    207      1.1  jmcneill 				/*
    208      1.1  jmcneill 				 * External I2C Bus for user peripheral
    209      1.1  jmcneill 				 */
    210      1.1  jmcneill 				clock-frequency = <400000>;
    211      1.1  jmcneill 				pinctrl-0 = <&helios_i2c1_pins>;
    212      1.1  jmcneill 				pinctrl-names = "default";
    213      1.1  jmcneill 				status = "okay";
    214      1.1  jmcneill 			};
    215      1.1  jmcneill 
    216      1.1  jmcneill 			sata@a8000 {
    217      1.1  jmcneill 				status = "okay";
    218      1.1  jmcneill 				#address-cells = <1>;
    219      1.1  jmcneill 				#size-cells = <0>;
    220      1.1  jmcneill 
    221      1.1  jmcneill 				sata0: sata-port@0 {
    222      1.1  jmcneill 					reg = <0>;
    223      1.1  jmcneill 				};
    224      1.1  jmcneill 
    225      1.1  jmcneill 				sata1: sata-port@1 {
    226      1.1  jmcneill 					reg = <1>;
    227      1.1  jmcneill 				};
    228      1.1  jmcneill 			};
    229      1.1  jmcneill 
    230      1.1  jmcneill 			sata@e0000 {
    231      1.1  jmcneill 				status = "okay";
    232      1.1  jmcneill 				#address-cells = <1>;
    233      1.1  jmcneill 				#size-cells = <0>;
    234      1.1  jmcneill 
    235      1.1  jmcneill 				sata2: sata-port@0 {
    236      1.1  jmcneill 					reg = <0>;
    237      1.1  jmcneill 				};
    238      1.1  jmcneill 
    239      1.1  jmcneill 				sata3: sata-port@1 {
    240      1.1  jmcneill 					reg = <1>;
    241      1.1  jmcneill 				};
    242      1.1  jmcneill 			};
    243      1.1  jmcneill 
    244      1.1  jmcneill 			spi@10680 {
    245      1.1  jmcneill 				pinctrl-0 = <&spi1_pins
    246      1.1  jmcneill 					     &microsom_spi1_cs_pins>;
    247      1.1  jmcneill 				pinctrl-names = "default";
    248      1.1  jmcneill 				status = "okay";
    249      1.1  jmcneill 			};
    250      1.1  jmcneill 
    251      1.1  jmcneill 			sdhci@d8000 {
    252      1.1  jmcneill 				bus-width = <4>;
    253      1.1  jmcneill 				cd-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
    254      1.1  jmcneill 				no-1-8-v;
    255      1.1  jmcneill 				pinctrl-0 = <&helios_sdhci_pins
    256      1.1  jmcneill 					     &helios_sdhci_cd_pins>;
    257      1.1  jmcneill 				pinctrl-names = "default";
    258      1.1  jmcneill 				status = "okay";
    259      1.1  jmcneill 				vmmc = <&reg_3p3v>;
    260      1.1  jmcneill 				wp-inverted;
    261      1.1  jmcneill 			};
    262      1.1  jmcneill 
    263      1.1  jmcneill 			usb@58000 {
    264      1.1  jmcneill 				usb-phy = <&usb2_phy>;
    265      1.1  jmcneill 				status = "okay";
    266      1.1  jmcneill 			};
    267      1.1  jmcneill 
    268      1.1  jmcneill 			usb3@f0000 {
    269      1.1  jmcneill 				status = "okay";
    270      1.1  jmcneill 			};
    271      1.1  jmcneill 
    272      1.1  jmcneill 			usb3@f8000 {
    273      1.1  jmcneill 				status = "okay";
    274      1.1  jmcneill 			};
    275      1.1  jmcneill 
    276      1.1  jmcneill 			pinctrl@18000 {
    277      1.1  jmcneill 				pca0_pins: pca0-pins {
    278      1.1  jmcneill 					marvell,pins = "mpp23";
    279      1.1  jmcneill 					marvell,function = "gpio";
    280      1.1  jmcneill 				};
    281      1.1  jmcneill 				microsom_phy0_int_pins: microsom-phy0-int-pins {
    282      1.1  jmcneill 					marvell,pins = "mpp18";
    283      1.1  jmcneill 					marvell,function = "gpio";
    284      1.1  jmcneill 				};
    285      1.1  jmcneill 				helios_i2c1_pins: i2c1-pins {
    286      1.1  jmcneill 					marvell,pins = "mpp26", "mpp27";
    287      1.1  jmcneill 					marvell,function = "i2c1";
    288      1.1  jmcneill 				};
    289      1.1  jmcneill 				helios_sdhci_cd_pins: helios-sdhci-cd-pins {
    290      1.1  jmcneill 					marvell,pins = "mpp20";
    291      1.1  jmcneill 					marvell,function = "gpio";
    292      1.1  jmcneill 				};
    293      1.1  jmcneill 				helios_sdhci_pins: helios-sdhci-pins {
    294      1.1  jmcneill 					marvell,pins = "mpp21", "mpp28",
    295      1.1  jmcneill 						       "mpp37", "mpp38",
    296      1.1  jmcneill 						       "mpp39", "mpp40";
    297      1.1  jmcneill 					marvell,function = "sd0";
    298      1.1  jmcneill 				};
    299  1.1.1.2  jmcneill 				helios_system_led_pins: helios-system-led-pins {
    300  1.1.1.2  jmcneill 					marvell,pins = "mpp24", "mpp25";
    301  1.1.1.2  jmcneill 					marvell,function = "gpio";
    302  1.1.1.2  jmcneill 				};
    303  1.1.1.2  jmcneill 				helios_io_led_pins: helios-io-led-pins {
    304  1.1.1.2  jmcneill 					marvell,pins = "mpp49", "mpp50",
    305      1.1  jmcneill 						       "mpp52", "mpp53",
    306      1.1  jmcneill 						       "mpp54";
    307      1.1  jmcneill 					marvell,function = "gpio";
    308      1.1  jmcneill 				};
    309  1.1.1.2  jmcneill 				helios_fan1_pins: helios_fan1_pins {
    310  1.1.1.2  jmcneill 					marvell,pins = "mpp41", "mpp43";
    311  1.1.1.2  jmcneill 					marvell,function = "gpio";
    312  1.1.1.2  jmcneill 				};
    313  1.1.1.2  jmcneill 				helios_fan2_pins: helios_fan2_pins {
    314  1.1.1.2  jmcneill 					marvell,pins = "mpp48", "mpp55";
    315      1.1  jmcneill 					marvell,function = "gpio";
    316      1.1  jmcneill 				};
    317      1.1  jmcneill 				microsom_spi1_cs_pins: spi1-cs-pins {
    318      1.1  jmcneill 					marvell,pins = "mpp59";
    319      1.1  jmcneill 					marvell,function = "spi1";
    320      1.1  jmcneill 				};
    321      1.1  jmcneill 			};
    322      1.1  jmcneill 		};
    323      1.1  jmcneill 	};
    324      1.1  jmcneill };
    325