Merge tag 'efi-2020-07-rc2-2' of https://gitlab.denx.de/u-boot/custodians/u-boot-efi
[oweals/u-boot.git] / arch / arm / dts / am33xx.dtsi
index 21fcc440fc1a9d886d408701a705ad4daabd2325..d3dd6a16e70a706f214bf5ab54bdff396ed2c2bc 100644 (file)
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/pinctrl/am33xx.h>
-
-#include "skeleton.dtsi"
+#include <dt-bindings/clock/am3.h>
 
 / {
        compatible = "ti,am33xx";
        interrupt-parent = <&intc>;
+       #address-cells = <1>;
+       #size-cells = <1>;
+       chosen { };
 
        aliases {
                i2c0 = &i2c0;
                serial3 = &uart3;
                serial4 = &uart4;
                serial5 = &uart5;
-               d_can0 = &dcan0;
-               d_can1 = &dcan1;
+               d-can0 = &dcan0;
+               d-can1 = &dcan1;
                usb0 = &usb0;
                usb1 = &usb1;
                phy0 = &usb0_phy;
                phy1 = &usb1_phy;
                ethernet0 = &cpsw_emac0;
                ethernet1 = &cpsw_emac1;
+               spi0 = &spi0;
+               spi1 = &spi1;
        };
 
        cpus {
                        device_type = "cpu";
                        reg = <0>;
 
-                       /*
-                        * To consider voltage drop between PMIC and SoC,
-                        * tolerance value is reduced to 2% from 4% and
-                        * voltage value is increased as a precaution.
-                        */
-                       operating-points = <
-                               /* kHz    uV */
-                               720000  1285000
-                               600000  1225000
-                               500000  1125000
-                               275000  1125000
-                       >;
-                       voltage-tolerance = <2>; /* 2 percentage */
+                       operating-points-v2 = <&cpu0_opp_table>;
 
                        clocks = <&dpll_mpu_ck>;
                        clock-names = "cpu";
                };
        };
 
-       pmu {
+       cpu0_opp_table: opp-table {
+               compatible = "operating-points-v2-ti-cpu";
+               syscon = <&scm_conf>;
+
+               /*
+                * The three following nodes are marked with opp-suspend
+                * because the can not be enabled simultaneously on a
+                * single SoC.
+                */
+               opp50-300000000 {
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-microvolt = <950000 931000 969000>;
+                       opp-supported-hw = <0x06 0x0010>;
+                       opp-suspend;
+               };
+
+               opp100-275000000 {
+                       opp-hz = /bits/ 64 <275000000>;
+                       opp-microvolt = <1100000 1078000 1122000>;
+                       opp-supported-hw = <0x01 0x00FF>;
+                       opp-suspend;
+               };
+
+               opp100-300000000 {
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-microvolt = <1100000 1078000 1122000>;
+                       opp-supported-hw = <0x06 0x0020>;
+                       opp-suspend;
+               };
+
+               opp100-500000000 {
+                       opp-hz = /bits/ 64 <500000000>;
+                       opp-microvolt = <1100000 1078000 1122000>;
+                       opp-supported-hw = <0x01 0xFFFF>;
+               };
+
+               opp100-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <1100000 1078000 1122000>;
+                       opp-supported-hw = <0x06 0x0040>;
+               };
+
+               opp120-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <1200000 1176000 1224000>;
+                       opp-supported-hw = <0x01 0xFFFF>;
+               };
+
+               opp120-720000000 {
+                       opp-hz = /bits/ 64 <720000000>;
+                       opp-microvolt = <1200000 1176000 1224000>;
+                       opp-supported-hw = <0x06 0x0080>;
+               };
+
+               oppturbo-720000000 {
+                       opp-hz = /bits/ 64 <720000000>;
+                       opp-microvolt = <1260000 1234800 1285200>;
+                       opp-supported-hw = <0x01 0xFFFF>;
+               };
+
+               oppturbo-800000000 {
+                       opp-hz = /bits/ 64 <800000000>;
+                       opp-microvolt = <1260000 1234800 1285200>;
+                       opp-supported-hw = <0x06 0x0100>;
+               };
+
+               oppnitro-1000000000 {
+                       opp-hz = /bits/ 64 <1000000000>;
+                       opp-microvolt = <1325000 1298500 1351500>;
+                       opp-supported-hw = <0x04 0x0200>;
+               };
+       };
+
+       pmu@4b000000 {
                compatible = "arm,cortex-a8-pmu";
                interrupts = <3>;
+               reg = <0x4b000000 0x1000000>;
+               ti,hwmods = "debugss";
        };
 
        /*
                mpu {
                        compatible = "ti,omap3-mpu";
                        ti,hwmods = "mpu";
+                       pm-sram = <&pm_sram_code
+                                  &pm_sram_data>;
                };
        };
 
                        #size-cells = <1>;
                        ranges = <0 0x44c00000 0x280000>;
 
+                       wkup_m3: wkup_m3@100000 {
+                               compatible = "ti,am3352-wkup-m3";
+                               reg = <0x100000 0x4000>,
+                                     <0x180000 0x2000>;
+                               reg-names = "umem", "dmem";
+                               ti,hwmods = "wkup_m3";
+                               ti,pm-firmware = "am335x-pm-firmware.elf";
+                       };
+
                        prcm: prcm@200000 {
-                               compatible = "ti,am3-prcm";
+                               compatible = "ti,am3-prcm", "simple-bus";
                                reg = <0x200000 0x4000>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges = <0 0x200000 0x4000>;
 
                                prcm_clocks: clocks {
                                        #address-cells = <1>;
                                reg = <0x210000 0x2000>;
                                #address-cells = <1>;
                                #size-cells = <1>;
+                               #pinctrl-cells = <1>;
                                ranges = <0 0x210000 0x2000>;
 
                                am33xx_pinmux: pinmux@800 {
                                        reg = <0x800 0x238>;
                                        #address-cells = <1>;
                                        #size-cells = <0>;
+                                       #pinctrl-cells = <1>;
                                        pinctrl-single,register-width = <32>;
                                        pinctrl-single,function-mask = <0x7f>;
                                };
 
                                scm_conf: scm_conf@0 {
-                                       compatible = "syscon";
+                                       compatible = "syscon", "simple-bus";
                                        reg = <0x0 0x800>;
                                        #address-cells = <1>;
                                        #size-cells = <1>;
+                                       ranges = <0 0 0x800>;
 
                                        scm_clocks: clocks {
                                                #address-cells = <1>;
                                        };
                                };
 
+                               wkup_m3_ipc: wkup_m3_ipc@1324 {
+                                       compatible = "ti,am3352-wkup-m3-ipc";
+                                       reg = <0x1324 0x24>;
+                                       interrupts = <78>;
+                                       ti,rproc = <&wkup_m3>;
+                                       mboxes = <&mailbox &mbox_wkupm3>;
+                               };
+
+                               edma_xbar: dma-router@f90 {
+                                       compatible = "ti,am335x-edma-crossbar";
+                                       reg = <0xf90 0x40>;
+                                       #dma-cells = <3>;
+                                       dma-requests = <32>;
+                                       dma-masters = <&edma>;
+                               };
+
                                scm_clockdomains: clockdomains {
                                };
                        };
                };
 
                edma: edma@49000000 {
-                       compatible = "ti,edma3";
-                       ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2";
-                       reg =   <0x49000000 0x10000>,
-                               <0x44e10f90 0x40>;
+                       compatible = "ti,edma3-tpcc";
+                       ti,hwmods = "tpcc";
+                       reg =   <0x49000000 0x10000>;
+                       reg-names = "edma3_cc";
                        interrupts = <12 13 14>;
-                       #dma-cells = <1>;
+                       interrupt-names = "edma3_ccint", "edma3_mperr",
+                                         "edma3_ccerrint";
+                       dma-requests = <64>;
+                       #dma-cells = <2>;
+
+                       ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
+                                  <&edma_tptc2 0>;
+
+                       ti,edma-memcpy-channels = <20 21>;
+               };
+
+               edma_tptc0: tptc@49800000 {
+                       compatible = "ti,edma3-tptc";
+                       ti,hwmods = "tptc0";
+                       reg =   <0x49800000 0x100000>;
+                       interrupts = <112>;
+                       interrupt-names = "edma3_tcerrint";
+               };
+
+               edma_tptc1: tptc@49900000 {
+                       compatible = "ti,edma3-tptc";
+                       ti,hwmods = "tptc1";
+                       reg =   <0x49900000 0x100000>;
+                       interrupts = <113>;
+                       interrupt-names = "edma3_tcerrint";
+               };
+
+               edma_tptc2: tptc@49a00000 {
+                       compatible = "ti,edma3-tptc";
+                       ti,hwmods = "tptc2";
+                       reg =   <0x49a00000 0x100000>;
+                       interrupts = <114>;
+                       interrupt-names = "edma3_tcerrint";
                };
 
                gpio0: gpio@44e07000 {
                };
 
                uart0: serial@44e09000 {
-                       compatible = "ti,omap3-uart";
+                       compatible = "ti,am3352-uart", "ti,omap3-uart";
                        ti,hwmods = "uart1";
                        clock-frequency = <48000000>;
                        reg = <0x44e09000 0x2000>;
                        interrupts = <72>;
                        status = "disabled";
-                       dmas = <&edma 26>, <&edma 27>;
+                       dmas = <&edma 26 0>, <&edma 27 0>;
                        dma-names = "tx", "rx";
                };
 
                uart1: serial@48022000 {
-                       compatible = "ti,omap3-uart";
+                       compatible = "ti,am3352-uart", "ti,omap3-uart";
                        ti,hwmods = "uart2";
                        clock-frequency = <48000000>;
                        reg = <0x48022000 0x2000>;
                        interrupts = <73>;
                        status = "disabled";
-                       dmas = <&edma 28>, <&edma 29>;
+                       dmas = <&edma 28 0>, <&edma 29 0>;
                        dma-names = "tx", "rx";
                };
 
                uart2: serial@48024000 {
-                       compatible = "ti,omap3-uart";
+                       compatible = "ti,am3352-uart", "ti,omap3-uart";
                        ti,hwmods = "uart3";
                        clock-frequency = <48000000>;
                        reg = <0x48024000 0x2000>;
                        interrupts = <74>;
                        status = "disabled";
-                       dmas = <&edma 30>, <&edma 31>;
+                       dmas = <&edma 30 0>, <&edma 31 0>;
                        dma-names = "tx", "rx";
                };
 
                uart3: serial@481a6000 {
-                       compatible = "ti,omap3-uart";
+                       compatible = "ti,am3352-uart", "ti,omap3-uart";
                        ti,hwmods = "uart4";
                        clock-frequency = <48000000>;
                        reg = <0x481a6000 0x2000>;
                };
 
                uart4: serial@481a8000 {
-                       compatible = "ti,omap3-uart";
+                       compatible = "ti,am3352-uart", "ti,omap3-uart";
                        ti,hwmods = "uart5";
                        clock-frequency = <48000000>;
                        reg = <0x481a8000 0x2000>;
                };
 
                uart5: serial@481aa000 {
-                       compatible = "ti,omap3-uart";
+                       compatible = "ti,am3352-uart", "ti,omap3-uart";
                        ti,hwmods = "uart6";
                        clock-frequency = <48000000>;
                        reg = <0x481aa000 0x2000>;
                        ti,dual-volt;
                        ti,needs-special-reset;
                        ti,needs-special-hs-handling;
-                       dmas = <&edma 24
-                               &edma 25>;
+                       dmas = <&edma_xbar 24 0 0
+                               &edma_xbar 25 0 0>;
                        dma-names = "tx", "rx";
                        interrupts = <64>;
-                       interrupt-parent = <&intc>;
                        reg = <0x48060000 0x1000>;
                        status = "disabled";
                };
                        compatible = "ti,omap4-hsmmc";
                        ti,hwmods = "mmc2";
                        ti,needs-special-reset;
-                       dmas = <&edma 2
-                               &edma 3>;
+                       dmas = <&edma 2 0
+                               &edma 3 0>;
                        dma-names = "tx", "rx";
                        interrupts = <28>;
-                       interrupt-parent = <&intc>;
                        reg = <0x481d8000 0x1000>;
                        status = "disabled";
                };
                        ti,hwmods = "mmc3";
                        ti,needs-special-reset;
                        interrupts = <29>;
-                       interrupt-parent = <&intc>;
                        reg = <0x47810000 0x1000>;
                        status = "disabled";
                };
                        status = "disabled";
                };
 
-               mailbox: mailbox@480C8000 {
+               mailbox: mailbox@480c8000 {
                        compatible = "ti,omap4-mailbox";
                        reg = <0x480C8000 0x200>;
                        interrupts = <77>;
                        ti,mbox-num-users = <4>;
                        ti,mbox-num-fifos = <8>;
                        mbox_wkupm3: wkup_m3 {
+                               ti,mbox-send-noirq;
                                ti,mbox-tx = <0 0 0>;
                                ti,mbox-rx = <0 0 3>;
                        };
                        interrupts = <67>;
                        ti,hwmods = "timer1";
                        ti,timer-alwon;
+                       clocks = <&timer1_fck>;
+                       clock-names = "fck";
                };
 
                timer2: timer@48040000 {
                        reg = <0x48040000 0x400>;
                        interrupts = <68>;
                        ti,hwmods = "timer2";
+                       clocks = <&timer2_fck>;
+                       clock-names = "fck";
                };
 
                timer3: timer@48042000 {
                        interrupts = <75
                                      76>;
                        ti,hwmods = "rtc";
+                       clocks = <&l4_per_clkctrl AM3_CLKDIV32K_CLKCTRL 0>;
+                       clock-names = "int-clk";
                };
 
                spi0: spi@48030000 {
                        interrupts = <65>;
                        ti,spi-num-cs = <2>;
                        ti,hwmods = "spi0";
-                       dmas = <&edma 16
-                               &edma 17
-                               &edma 18
-                               &edma 19>;
+                       dmas = <&edma 16 0
+                               &edma 17 0
+                               &edma 18 0
+                               &edma 19 0>;
                        dma-names = "tx0", "rx0", "tx1", "rx1";
                        status = "disabled";
                };
                        interrupts = <125>;
                        ti,spi-num-cs = <2>;
                        ti,hwmods = "spi1";
-                       dmas = <&edma 42
-                               &edma 43
-                               &edma 44
-                               &edma 45>;
+                       dmas = <&edma 42 0
+                               &edma 43 0
+                               &edma 44 0
+                               &edma 45 0>;
                        dma-names = "tx0", "rx0", "tx1", "rx1";
                        status = "disabled";
                };
                                reg-names = "phy";
                                status = "disabled";
                                ti,ctrl_mod = <&usb_ctrl_mod>;
+                               #phy-cells = <0>;
                        };
 
                        usb0: usb@47401000 {
                                reg-names = "phy";
                                status = "disabled";
                                ti,ctrl_mod = <&usb_ctrl_mod>;
+                               #phy-cells = <0>;
                        };
 
                        usb1: usb@47401800 {
                                  0x48300200 0x48300200 0x80>; /* EHRPWM */
 
                        ecap0: ecap@48300100 {
-                               compatible = "ti,am33xx-ecap";
+                               compatible = "ti,am3352-ecap",
+                                            "ti,am33xx-ecap";
                                #pwm-cells = <3>;
                                reg = <0x48300100 0x80>;
+                               clocks = <&l4ls_gclk>;
+                               clock-names = "fck";
                                interrupts = <31>;
                                interrupt-names = "ecap0";
-                               ti,hwmods = "ecap0";
                                status = "disabled";
                        };
 
-                       ehrpwm0: ehrpwm@48300200 {
-                               compatible = "ti,am33xx-ehrpwm";
+                       ehrpwm0: pwm@48300200 {
+                               compatible = "ti,am3352-ehrpwm",
+                                            "ti,am33xx-ehrpwm";
                                #pwm-cells = <3>;
                                reg = <0x48300200 0x80>;
-                               ti,hwmods = "ehrpwm0";
+                               clocks = <&ehrpwm0_tbclk>, <&l4ls_gclk>;
+                               clock-names = "tbclk", "fck";
                                status = "disabled";
                        };
                };
                                  0x48302200 0x48302200 0x80>; /* EHRPWM */
 
                        ecap1: ecap@48302100 {
-                               compatible = "ti,am33xx-ecap";
+                               compatible = "ti,am3352-ecap",
+                                            "ti,am33xx-ecap";
                                #pwm-cells = <3>;
                                reg = <0x48302100 0x80>;
+                               clocks = <&l4ls_gclk>;
+                               clock-names = "fck";
                                interrupts = <47>;
                                interrupt-names = "ecap1";
-                               ti,hwmods = "ecap1";
                                status = "disabled";
                        };
 
-                       ehrpwm1: ehrpwm@48302200 {
-                               compatible = "ti,am33xx-ehrpwm";
+                       ehrpwm1: pwm@48302200 {
+                               compatible = "ti,am3352-ehrpwm",
+                                            "ti,am33xx-ehrpwm";
                                #pwm-cells = <3>;
                                reg = <0x48302200 0x80>;
-                               ti,hwmods = "ehrpwm1";
+                               clocks = <&ehrpwm1_tbclk>, <&l4ls_gclk>;
+                               clock-names = "tbclk", "fck";
                                status = "disabled";
                        };
                };
                                  0x48304200 0x48304200 0x80>; /* EHRPWM */
 
                        ecap2: ecap@48304100 {
-                               compatible = "ti,am33xx-ecap";
+                               compatible = "ti,am3352-ecap",
+                                            "ti,am33xx-ecap";
                                #pwm-cells = <3>;
                                reg = <0x48304100 0x80>;
+                               clocks = <&l4ls_gclk>;
+                               clock-names = "fck";
                                interrupts = <61>;
                                interrupt-names = "ecap2";
-                               ti,hwmods = "ecap2";
                                status = "disabled";
                        };
 
-                       ehrpwm2: ehrpwm@48304200 {
-                               compatible = "ti,am33xx-ehrpwm";
+                       ehrpwm2: pwm@48304200 {
+                               compatible = "ti,am3352-ehrpwm",
+                                            "ti,am33xx-ehrpwm";
                                #pwm-cells = <3>;
                                reg = <0x48304200 0x80>;
-                               ti,hwmods = "ehrpwm2";
+                               clocks = <&ehrpwm2_tbclk>, <&l4ls_gclk>;
+                               clock-names = "tbclk", "fck";
                                status = "disabled";
                        };
                };
 
                mac: ethernet@4a100000 {
-                       compatible = "ti,cpsw";
+                       compatible = "ti,am335x-cpsw","ti,cpsw";
                        ti,hwmods = "cpgmac0";
                        clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
                        clock-names = "fck", "cpts";
                        cpdma_channels = <8>;
                        ale_entries = <1024>;
                        bd_ram_size = <0x2000>;
-                       no_bd_ram = <0>;
-                       rx_descs = <64>;
                        mac_control = <0x20>;
                        slaves = <2>;
                        active_slave = <0>;
                               0x4a101200 0x100>;
                        #address-cells = <1>;
                        #size-cells = <1>;
-                       interrupt-parent = <&intc>;
                        /*
                         * c0_rx_thresh_pend
                         * c0_rx_pend
                        status = "disabled";
 
                        davinci_mdio: mdio@4a101000 {
-                               compatible = "ti,davinci_mdio";
+                               compatible = "ti,cpsw-mdio","ti,davinci_mdio";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                ti,hwmods = "davinci_mdio";
                ocmcram: ocmcram@40300000 {
                        compatible = "mmio-sram";
                        reg = <0x40300000 0x10000>; /* 64k */
-               };
+                       ranges = <0x0 0x40300000 0x10000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
 
-               wkup_m3: wkup_m3@44d00000 {
-                       compatible = "ti,am3353-wkup-m3";
-                       reg = <0x44d00000 0x4000        /* M3 UMEM */
-                              0x44d80000 0x2000>;      /* M3 DMEM */
-                       ti,hwmods = "wkup_m3";
-                       ti,no-reset-on-init;
+                       pm_sram_code: pm-sram-code@0 {
+                               compatible = "ti,sram";
+                               reg = <0x0 0x1000>;
+                               protect-exec;
+                       };
+
+                       pm_sram_data: pm-sram-data@1000 {
+                               compatible = "ti,sram";
+                               reg = <0x1000 0x1000>;
+                               pool;
+                       };
                };
 
                elm: elm@48080000 {
                lcdc: lcdc@4830e000 {
                        compatible = "ti,am33xx-tilcdc";
                        reg = <0x4830e000 0x1000>;
-                       interrupt-parent = <&intc>;
                        interrupts = <36>;
                        ti,hwmods = "lcdc";
                        status = "disabled";
                tscadc: tscadc@44e0d000 {
                        compatible = "ti,am3359-tscadc";
                        reg = <0x44e0d000 0x1000>;
-                       interrupt-parent = <&intc>;
                        interrupts = <16>;
                        ti,hwmods = "adc_tsc";
                        status = "disabled";
+                       dmas = <&edma 53 0>, <&edma 57 0>;
+                       dma-names = "fifo0", "fifo1";
 
                        tsc {
                                compatible = "ti,am3359-tsc";
                        };
                };
 
+               emif: emif@4c000000 {
+                       compatible = "ti,emif-am3352";
+                       reg = <0x4c000000 0x1000000>;
+                       ti,hwmods = "emif";
+                       interrupts = <101>;
+                       sram = <&pm_sram_code
+                               &pm_sram_data>;
+                       ti,no-idle;
+               };
+
                gpmc: gpmc@50000000 {
                        compatible = "ti,am3352-gpmc";
                        ti,hwmods = "gpmc";
                        ti,no-idle-on-init;
                        reg = <0x50000000 0x2000>;
                        interrupts = <100>;
+                       dmas = <&edma 52 0>;
+                       dma-names = "rxtx";
                        gpmc,num-cs = <7>;
                        gpmc,num-waitpins = <2>;
                        #address-cells = <2>;
                        #size-cells = <1>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
                        status = "disabled";
                };
 
                        ti,hwmods = "sham";
                        reg = <0x53100000 0x200>;
                        interrupts = <109>;
-                       dmas = <&edma 36>;
+                       dmas = <&edma 36 0>;
                        dma-names = "rx";
                };
 
                        ti,hwmods = "aes";
                        reg = <0x53500000 0xa0>;
                        interrupts = <103>;
-                       dmas = <&edma 6>,
-                              <&edma 5>;
+                       dmas = <&edma 6 0>,
+                              <&edma 5 0>;
                        dma-names = "tx", "rx";
                };
 
                        interrupts = <80>, <81>;
                        interrupt-names = "tx", "rx";
                        status = "disabled";
-                       dmas = <&edma 8>,
-                               <&edma 9>;
+                       dmas = <&edma 8 2>,
+                               <&edma 9 2>;
                        dma-names = "tx", "rx";
                };
 
-               mcasp1: mcasp@4803C000 {
+               mcasp1: mcasp@4803c000 {
                        compatible = "ti,am33xx-mcasp-audio";
                        ti,hwmods = "mcasp1";
                        reg = <0x4803C000 0x2000>,
                        interrupts = <82>, <83>;
                        interrupt-names = "tx", "rx";
                        status = "disabled";
-                       dmas = <&edma 10>,
-                               <&edma 11>;
+                       dmas = <&edma 10 2>,
+                               <&edma 11 2>;
                        dma-names = "tx", "rx";
                };
 
        };
 };
 
-/include/ "am33xx-clocks.dtsi"
+#include "am33xx-clocks.dtsi"