Home | History | Annotate | Line # | Download | only in st
      1 /*
      2  * Copyright 2017 - Vikas MANOCHA <vikas.manocha (at) st.com>
      3  *
      4  * This file is dual-licensed: you can use it either under the terms
      5  * of the GPL or the X11 license, at your option. Note that this dual
      6  * licensing only applies to this file, and not this project as a
      7  * whole.
      8  *
      9  *  a) This file is free software; you can redistribute it and/or
     10  *     modify it under the terms of the GNU General Public License as
     11  *     published by the Free Software Foundation; either version 2 of the
     12  *     License, or (at your option) any later version.
     13  *
     14  *     This file is distributed in the hope that it will be useful,
     15  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
     16  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     17  *     GNU General Public License for more details.
     18  *
     19  * Or, alternatively,
     20  *
     21  *  b) Permission is hereby granted, free of charge, to any person
     22  *     obtaining a copy of this software and associated documentation
     23  *     files (the "Software"), to deal in the Software without
     24  *     restriction, including without limitation the rights to use,
     25  *     copy, modify, merge, publish, distribute, sublicense, and/or
     26  *     sell copies of the Software, and to permit persons to whom the
     27  *     Software is furnished to do so, subject to the following
     28  *     conditions:
     29  *
     30  *     The above copyright notice and this permission notice shall be
     31  *     included in all copies or substantial portions of the Software.
     32  *
     33  *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
     34  *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
     35  *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
     36  *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
     37  *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
     38  *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
     39  *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
     40  *     OTHER DEALINGS IN THE SOFTWARE.
     41  */
     42 
     43 /dts-v1/;
     44 #include "stm32f746.dtsi"
     45 #include "stm32f746-pinctrl.dtsi"
     46 #include <dt-bindings/gpio/gpio.h>
     47 #include <dt-bindings/input/input.h>
     48 #include <dt-bindings/interrupt-controller/irq.h>
     49 
     50 / {
     51 	model = "STMicroelectronics STM32F746-DISCO board";
     52 	compatible = "st,stm32f746-disco", "st,stm32f746";
     53 
     54 	chosen {
     55 		bootargs = "root=/dev/ram";
     56 		stdout-path = "serial0:115200n8";
     57 	};
     58 
     59 	memory@c0000000 {
     60 		device_type = "memory";
     61 		reg = <0xC0000000 0x800000>;
     62 	};
     63 
     64 	reserved-memory {
     65 		#address-cells = <1>;
     66 		#size-cells = <1>;
     67 		ranges;
     68 
     69 		linux,cma {
     70 			compatible = "shared-dma-pool";
     71 			no-map;
     72 			size = <0x80000>;
     73 			linux,dma-default;
     74 		};
     75 	};
     76 
     77 	aliases {
     78 		serial0 = &usart1;
     79 	};
     80 
     81 	usbotg_hs_phy: usb-phy {
     82 		#phy-cells = <0>;
     83 		compatible = "usb-nop-xceiv";
     84 		clocks = <&rcc 0 STM32F7_AHB1_CLOCK(OTGHSULPI)>;
     85 		clock-names = "main_clk";
     86 	};
     87 
     88 	/* This turns on vbus for otg fs for host mode (dwc2) */
     89 	vcc5v_otg_fs: vcc5v-otg-fs-regulator {
     90 		compatible = "regulator-fixed";
     91 		gpio = <&gpiod 5 0>;
     92 		regulator-name = "vcc5_host1";
     93 		regulator-always-on;
     94 	};
     95 
     96 	vcc_3v3: vcc-3v3 {
     97 		compatible = "regulator-fixed";
     98 		regulator-name = "vcc_3v3";
     99 		regulator-min-microvolt = <3300000>;
    100 		regulator-max-microvolt = <3300000>;
    101 	};
    102 
    103 	backlight: backlight {
    104 		compatible = "gpio-backlight";
    105 		gpios = <&gpiok 3 GPIO_ACTIVE_HIGH>;
    106 		status = "okay";
    107 	};
    108 
    109 	panel_rgb: panel-rgb {
    110 		compatible = "rocktech,rk043fn48h";
    111 		power-supply = <&vcc_3v3>;
    112 		backlight = <&backlight>;
    113 		enable-gpios = <&gpioi 12 GPIO_ACTIVE_HIGH>;
    114 		status = "okay";
    115 		port {
    116 			panel_in_rgb: endpoint {
    117 				remote-endpoint = <&ltdc_out_rgb>;
    118 			};
    119 		};
    120 	};
    121 };
    122 
    123 &clk_hse {
    124 	clock-frequency = <25000000>;
    125 };
    126 
    127 &i2c1 {
    128 	pinctrl-0 = <&i2c1_pins_b>;
    129 	pinctrl-names = "default";
    130 	i2c-scl-rising-time-ns = <185>;
    131 	i2c-scl-falling-time-ns = <20>;
    132 	status = "okay";
    133 };
    134 
    135 &i2c3 {
    136 	pinctrl-0 = <&i2c3_pins_a>;
    137 	pinctrl-names = "default";
    138 	clock-frequency = <400000>;
    139 	status = "okay";
    140 
    141 	touchscreen@38 {
    142 		compatible = "edt,edt-ft5306";
    143 		reg = <0x38>;
    144 		interrupt-parent = <&gpioi>;
    145 		interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
    146 		touchscreen-size-x = <480>;
    147 		touchscreen-size-y = <272>;
    148 	};
    149 };
    150 
    151 &ltdc {
    152 	pinctrl-0 = <&ltdc_pins_a>;
    153 	pinctrl-names = "default";
    154 	status = "okay";
    155 
    156 	port {
    157 		ltdc_out_rgb: endpoint {
    158 			remote-endpoint = <&panel_in_rgb>;
    159 		};
    160 	};
    161 };
    162 
    163 &sdio1 {
    164 	status = "okay";
    165 	vmmc-supply = <&vcc_3v3>;
    166 	cd-gpios = <&gpioc 13 GPIO_ACTIVE_LOW>;
    167 	pinctrl-names = "default", "opendrain", "sleep";
    168 	pinctrl-0 = <&sdio_pins_a>;
    169 	pinctrl-1 = <&sdio_pins_od_a>;
    170 	pinctrl-2 = <&sdio_pins_sleep_a>;
    171 	bus-width = <4>;
    172 };
    173 
    174 &timers5 {
    175 	/* Override timer5 to act as clockevent */
    176 	compatible = "st,stm32-timer";
    177 	interrupts = <50>;
    178 	status = "okay";
    179 	/delete-property/#address-cells;
    180 	/delete-property/#size-cells;
    181 	/delete-property/clock-names;
    182 	/delete-node/pwm;
    183 	/delete-node/timer@4;
    184 };
    185 
    186 &usart1 {
    187 	pinctrl-0 = <&usart1_pins_b>;
    188 	pinctrl-names = "default";
    189 	status = "okay";
    190 };
    191 
    192 &usbotg_fs {
    193 	dr_mode = "host";
    194 	pinctrl-0 = <&usbotg_fs_pins_a>;
    195 	pinctrl-names = "default";
    196 	status = "okay";
    197 };
    198 
    199 &usbotg_hs {
    200 	dr_mode = "host";
    201 	phys = <&usbotg_hs_phy>;
    202 	phy-names = "usb2-phy";
    203 	pinctrl-0 = <&usbotg_hs_pins_b>;
    204 	pinctrl-names = "default";
    205 	status = "okay";
    206 };
    207