arm: dts: lx2160a: add noted for dpmacs 1, 2, 5-6
[oweals/u-boot.git] / arch / arm / dts / stm32mp157c-ev1.dts
index a6ee37924fe18fe574add7271b21358dfd678376..8a4c7ff31a922e7717f78a36eac0b5f963a6d9c9 100644 (file)
@@ -6,6 +6,8 @@
 /dts-v1/;
 
 #include "stm32mp157c-ed1.dts"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
 
 / {
        model = "STMicroelectronics STM32MP157C eval daughter on eval mother";
                ethernet0 = &ethernet0;
        };
 
+       clocks {
+               clk_ext_camera: clk-ext-camera {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <24000000>;
+               };
+       };
+
+       joystick {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&joystick_pins>;
+               pinctrl-names = "default";
+               button-0 {
+                       label = "JoySel";
+                       linux,code = <KEY_ENTER>;
+                       interrupt-parent = <&stmfx_pinctrl>;
+                       interrupts = <0 IRQ_TYPE_EDGE_RISING>;
+               };
+               button-1 {
+                       label = "JoyDown";
+                       linux,code = <KEY_DOWN>;
+                       interrupt-parent = <&stmfx_pinctrl>;
+                       interrupts = <1 IRQ_TYPE_EDGE_RISING>;
+               };
+               button-2 {
+                       label = "JoyLeft";
+                       linux,code = <KEY_LEFT>;
+                       interrupt-parent = <&stmfx_pinctrl>;
+                       interrupts = <2 IRQ_TYPE_EDGE_RISING>;
+               };
+               button-3 {
+                       label = "JoyRight";
+                       linux,code = <KEY_RIGHT>;
+                       interrupt-parent = <&stmfx_pinctrl>;
+                       interrupts = <3 IRQ_TYPE_EDGE_RISING>;
+               };
+               button-4 {
+                       label = "JoyUp";
+                       linux,code = <KEY_UP>;
+                       interrupt-parent = <&stmfx_pinctrl>;
+                       interrupts = <4 IRQ_TYPE_EDGE_RISING>;
+               };
+       };
+
        panel_backlight: panel-backlight {
                compatible = "gpio-backlight";
                gpios = <&gpiod 13 GPIO_ACTIVE_LOW>;
        status = "okay";
 };
 
+&dcmi {
+       status = "okay";
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&dcmi_pins_a>;
+       pinctrl-1 = <&dcmi_sleep_pins_a>;
+
+       port {
+               dcmi_0: endpoint {
+                       remote-endpoint = <&ov5640_0>;
+                       bus-width = <8>;
+                       hsync-active = <0>;
+                       vsync-active = <0>;
+                       pclk-sample = <1>;
+               };
+       };
+};
+
 &dsi {
        #address-cells = <1>;
        #size-cells = <0>;
+       phy-dsi-supply = <&reg18>;
        status = "okay";
 
        ports {
                reg = <0>;
                reset-gpios = <&gpiof 15 GPIO_ACTIVE_LOW>;
                backlight = <&panel_backlight>;
+               power-supply = <&v3v3>;
                status = "okay";
 
                port {
        pinctrl-0 = <&ethernet0_rgmii_pins_a>;
        pinctrl-1 = <&ethernet0_rgmii_pins_sleep_a>;
        pinctrl-names = "default", "sleep";
-       phy-mode = "rgmii";
+       phy-mode = "rgmii-id";
        max-speed = <1000>;
        phy-handle = <&phy0>;
 
        };
 };
 
+&fmc {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&fmc_pins_a>;
+       pinctrl-1 = <&fmc_sleep_pins_a>;
+       status = "okay";
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       nand@0 {
+               reg = <0>;
+               nand-on-flash-bbt;
+               #address-cells = <1>;
+               #size-cells = <1>;
+       };
+};
+
 &i2c2 {
-       pinctrl-names = "default";
+       pinctrl-names = "default", "sleep";
        pinctrl-0 = <&i2c2_pins_a>;
+       pinctrl-1 = <&i2c2_pins_sleep_a>;
        i2c-scl-rising-time-ns = <185>;
        i2c-scl-falling-time-ns = <20>;
        status = "okay";
 
+       ov5640: camera@3c {
+               compatible = "ovti,ov5640";
+               reg = <0x3c>;
+               clocks = <&clk_ext_camera>;
+               clock-names = "xclk";
+               DOVDD-supply = <&v2v8>;
+               powerdown-gpios = <&stmfx_pinctrl 18 (GPIO_ACTIVE_HIGH | GPIO_PUSH_PULL)>;
+               reset-gpios = <&stmfx_pinctrl 19 (GPIO_ACTIVE_LOW | GPIO_PUSH_PULL)>;
+               rotation = <180>;
+               status = "okay";
+
+               port {
+                       ov5640_0: endpoint {
+                               remote-endpoint = <&dcmi_0>;
+                               bus-width = <8>;
+                               data-shift = <2>; /* lines 9:2 are used */
+                               hsync-active = <0>;
+                               vsync-active = <0>;
+                               pclk-sample = <1>;
+                       };
+               };
+       };
+
        stmfx: stmfx@42 {
                compatible = "st,stmfx-0300";
                reg = <0x42>;
                interrupt-parent = <&gpioi>;
                vdd-supply = <&v3v3>;
 
-               stmfx_pinctrl: stmfx-pin-controller {
+               stmfx_pinctrl: pinctrl {
                        compatible = "st,stmfx-0300-pinctrl";
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                        gpio-ranges = <&stmfx_pinctrl 0 0 24>;
-                       status = "disabled";
+
+                       joystick_pins: joystick-pins {
+                               pins = "gpio0", "gpio1", "gpio2", "gpio3", "gpio4";
+                               bias-pull-down;
+                       };
                };
        };
 };
 
 &i2c5 {
-       pinctrl-names = "default";
+       pinctrl-names = "default", "sleep";
        pinctrl-0 = <&i2c5_pins_a>;
+       pinctrl-1 = <&i2c5_pins_sleep_a>;
        i2c-scl-rising-time-ns = <185>;
        i2c-scl-falling-time-ns = <20>;
        status = "okay";
 };
 
 &m_can1 {
-       pinctrl-names = "default";
+       pinctrl-names = "default", "sleep";
        pinctrl-0 = <&m_can1_pins_a>;
+       pinctrl-1 = <&m_can1_sleep_pins_a>;
        status = "okay";
 };
 
 &qspi {
-       pinctrl-names = "default";
+       pinctrl-names = "default", "sleep";
        pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a &qspi_bk2_pins_a>;
+       pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a &qspi_bk2_sleep_pins_a>;
        reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
        #address-cells = <1>;
        #size-cells = <0>;
        status = "okay";
 
        flash0: mx66l51235l@0 {
+               compatible = "jedec,spi-nor";
                reg = <0>;
                spi-rx-bus-width = <4>;
                spi-max-frequency = <108000000>;
        };
 
        flash1: mx66l51235l@1 {
+               compatible = "jedec,spi-nor";
                reg = <1>;
                spi-rx-bus-width = <4>;
                spi-max-frequency = <108000000>;
        };
 };
 
+&sdmmc3 {
+       pinctrl-names = "default", "opendrain", "sleep";
+       pinctrl-0 = <&sdmmc3_b4_pins_a>;
+       pinctrl-1 = <&sdmmc3_b4_od_pins_a>;
+       pinctrl-2 = <&sdmmc3_b4_sleep_pins_a>;
+       broken-cd;
+       st,neg-edge;
+       bus-width = <4>;
+       vmmc-supply = <&v3v3>;
+       status = "disabled";
+};
+
 &spi1 {
        pinctrl-names = "default";
        pinctrl-0 = <&spi1_pins_a>;
 };
 
 &timers2 {
+       /* spare dmas for other usage (un-delete to enable pwm capture) */
+       /delete-property/dmas;
+       /delete-property/dma-names;
        status = "disabled";
        pwm {
                pinctrl-0 = <&pwm2_pins_a>;
-               pinctrl-names = "default";
+               pinctrl-1 = <&pwm2_sleep_pins_a>;
+               pinctrl-names = "default", "sleep";
                status = "okay";
        };
        timer@1 {
 };
 
 &timers8 {
+       /delete-property/dmas;
+       /delete-property/dma-names;
        status = "disabled";
        pwm {
                pinctrl-0 = <&pwm8_pins_a>;
-               pinctrl-names = "default";
+               pinctrl-1 = <&pwm8_sleep_pins_a>;
+               pinctrl-names = "default", "sleep";
                status = "okay";
        };
        timer@7 {
 };
 
 &timers12 {
+       /delete-property/dmas;
+       /delete-property/dma-names;
        status = "disabled";
        pwm {
                pinctrl-0 = <&pwm12_pins_a>;
-               pinctrl-names = "default";
+               pinctrl-1 = <&pwm12_sleep_pins_a>;
+               pinctrl-names = "default", "sleep";
                status = "okay";
        };
        timer@11 {
 
 &usbh_ehci {
        phys = <&usbphyc_port0>;
-       phy-names = "usb";
-       vbus-supply = <&vbus_sw>;
        status = "okay";
 };
 
 &usbotg_hs {
-       pinctrl-names = "default";
        pinctrl-0 = <&usbotg_hs_pins_a>;
-       dr_mode = "peripheral";
+       pinctrl-names = "default";
        phys = <&usbphyc_port1 0>;
        phy-names = "usb2-phy";
        status = "okay";