1*4f79d0d3SJagan Teki 2*4f79d0d3SJagan Teki/* 3*4f79d0d3SJagan Teki * Copyright 2013 Freescale Semiconductor, Inc. 4*4f79d0d3SJagan Teki * 5*4f79d0d3SJagan Teki * This program is free software; you can redistribute it and/or modify 6*4f79d0d3SJagan Teki * it under the terms of the GNU General Public License version 2 as 7*4f79d0d3SJagan Teki * published by the Free Software Foundation. 8*4f79d0d3SJagan Teki * 9*4f79d0d3SJagan Teki */ 10*4f79d0d3SJagan Teki 11*4f79d0d3SJagan Teki#include <dt-bindings/interrupt-controller/irq.h> 12*4f79d0d3SJagan Teki#include "imx6q-pinfunc.h" 13*4f79d0d3SJagan Teki#include "imx6qdl.dtsi" 14*4f79d0d3SJagan Teki 15*4f79d0d3SJagan Teki/ { 16*4f79d0d3SJagan Teki aliases { 17*4f79d0d3SJagan Teki ipu1 = &ipu2; 18*4f79d0d3SJagan Teki spi4 = &ecspi5; 19*4f79d0d3SJagan Teki }; 20*4f79d0d3SJagan Teki 21*4f79d0d3SJagan Teki cpus { 22*4f79d0d3SJagan Teki #address-cells = <1>; 23*4f79d0d3SJagan Teki #size-cells = <0>; 24*4f79d0d3SJagan Teki 25*4f79d0d3SJagan Teki cpu0: cpu@0 { 26*4f79d0d3SJagan Teki compatible = "arm,cortex-a9"; 27*4f79d0d3SJagan Teki device_type = "cpu"; 28*4f79d0d3SJagan Teki reg = <0>; 29*4f79d0d3SJagan Teki next-level-cache = <&L2>; 30*4f79d0d3SJagan Teki operating-points = < 31*4f79d0d3SJagan Teki /* kHz uV */ 32*4f79d0d3SJagan Teki 1200000 1275000 33*4f79d0d3SJagan Teki 996000 1250000 34*4f79d0d3SJagan Teki 852000 1250000 35*4f79d0d3SJagan Teki 792000 1175000 36*4f79d0d3SJagan Teki 396000 975000 37*4f79d0d3SJagan Teki >; 38*4f79d0d3SJagan Teki fsl,soc-operating-points = < 39*4f79d0d3SJagan Teki /* ARM kHz SOC-PU uV */ 40*4f79d0d3SJagan Teki 1200000 1275000 41*4f79d0d3SJagan Teki 996000 1250000 42*4f79d0d3SJagan Teki 852000 1250000 43*4f79d0d3SJagan Teki 792000 1175000 44*4f79d0d3SJagan Teki 396000 1175000 45*4f79d0d3SJagan Teki >; 46*4f79d0d3SJagan Teki clock-latency = <61036>; /* two CLK32 periods */ 47*4f79d0d3SJagan Teki clocks = <&clks IMX6QDL_CLK_ARM>, 48*4f79d0d3SJagan Teki <&clks IMX6QDL_CLK_PLL2_PFD2_396M>, 49*4f79d0d3SJagan Teki <&clks IMX6QDL_CLK_STEP>, 50*4f79d0d3SJagan Teki <&clks IMX6QDL_CLK_PLL1_SW>, 51*4f79d0d3SJagan Teki <&clks IMX6QDL_CLK_PLL1_SYS>; 52*4f79d0d3SJagan Teki clock-names = "arm", "pll2_pfd2_396m", "step", 53*4f79d0d3SJagan Teki "pll1_sw", "pll1_sys"; 54*4f79d0d3SJagan Teki arm-supply = <®_arm>; 55*4f79d0d3SJagan Teki pu-supply = <®_pu>; 56*4f79d0d3SJagan Teki soc-supply = <®_soc>; 57*4f79d0d3SJagan Teki }; 58*4f79d0d3SJagan Teki 59*4f79d0d3SJagan Teki cpu@1 { 60*4f79d0d3SJagan Teki compatible = "arm,cortex-a9"; 61*4f79d0d3SJagan Teki device_type = "cpu"; 62*4f79d0d3SJagan Teki reg = <1>; 63*4f79d0d3SJagan Teki next-level-cache = <&L2>; 64*4f79d0d3SJagan Teki }; 65*4f79d0d3SJagan Teki 66*4f79d0d3SJagan Teki cpu@2 { 67*4f79d0d3SJagan Teki compatible = "arm,cortex-a9"; 68*4f79d0d3SJagan Teki device_type = "cpu"; 69*4f79d0d3SJagan Teki reg = <2>; 70*4f79d0d3SJagan Teki next-level-cache = <&L2>; 71*4f79d0d3SJagan Teki }; 72*4f79d0d3SJagan Teki 73*4f79d0d3SJagan Teki cpu@3 { 74*4f79d0d3SJagan Teki compatible = "arm,cortex-a9"; 75*4f79d0d3SJagan Teki device_type = "cpu"; 76*4f79d0d3SJagan Teki reg = <3>; 77*4f79d0d3SJagan Teki next-level-cache = <&L2>; 78*4f79d0d3SJagan Teki }; 79*4f79d0d3SJagan Teki }; 80*4f79d0d3SJagan Teki 81*4f79d0d3SJagan Teki soc { 82*4f79d0d3SJagan Teki ocram: sram@00900000 { 83*4f79d0d3SJagan Teki compatible = "mmio-sram"; 84*4f79d0d3SJagan Teki reg = <0x00900000 0x40000>; 85*4f79d0d3SJagan Teki clocks = <&clks IMX6QDL_CLK_OCRAM>; 86*4f79d0d3SJagan Teki }; 87*4f79d0d3SJagan Teki 88*4f79d0d3SJagan Teki aips-bus@02000000 { /* AIPS1 */ 89*4f79d0d3SJagan Teki spba-bus@02000000 { 90*4f79d0d3SJagan Teki ecspi5: ecspi@02018000 { 91*4f79d0d3SJagan Teki #address-cells = <1>; 92*4f79d0d3SJagan Teki #size-cells = <0>; 93*4f79d0d3SJagan Teki compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; 94*4f79d0d3SJagan Teki reg = <0x02018000 0x4000>; 95*4f79d0d3SJagan Teki interrupts = <0 35 IRQ_TYPE_LEVEL_HIGH>; 96*4f79d0d3SJagan Teki clocks = <&clks IMX6Q_CLK_ECSPI5>, 97*4f79d0d3SJagan Teki <&clks IMX6Q_CLK_ECSPI5>; 98*4f79d0d3SJagan Teki clock-names = "ipg", "per"; 99*4f79d0d3SJagan Teki dmas = <&sdma 11 7 1>, <&sdma 12 7 2>; 100*4f79d0d3SJagan Teki dma-names = "rx", "tx"; 101*4f79d0d3SJagan Teki status = "disabled"; 102*4f79d0d3SJagan Teki }; 103*4f79d0d3SJagan Teki }; 104*4f79d0d3SJagan Teki 105*4f79d0d3SJagan Teki iomuxc: iomuxc@020e0000 { 106*4f79d0d3SJagan Teki compatible = "fsl,imx6q-iomuxc"; 107*4f79d0d3SJagan Teki }; 108*4f79d0d3SJagan Teki }; 109*4f79d0d3SJagan Teki 110*4f79d0d3SJagan Teki sata: sata@02200000 { 111*4f79d0d3SJagan Teki compatible = "fsl,imx6q-ahci"; 112*4f79d0d3SJagan Teki reg = <0x02200000 0x4000>; 113*4f79d0d3SJagan Teki interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>; 114*4f79d0d3SJagan Teki clocks = <&clks IMX6QDL_CLK_SATA>, 115*4f79d0d3SJagan Teki <&clks IMX6QDL_CLK_SATA_REF_100M>, 116*4f79d0d3SJagan Teki <&clks IMX6QDL_CLK_AHB>; 117*4f79d0d3SJagan Teki clock-names = "sata", "sata_ref", "ahb"; 118*4f79d0d3SJagan Teki status = "disabled"; 119*4f79d0d3SJagan Teki }; 120*4f79d0d3SJagan Teki 121*4f79d0d3SJagan Teki gpu_vg: gpu@02204000 { 122*4f79d0d3SJagan Teki compatible = "vivante,gc"; 123*4f79d0d3SJagan Teki reg = <0x02204000 0x4000>; 124*4f79d0d3SJagan Teki interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>; 125*4f79d0d3SJagan Teki clocks = <&clks IMX6QDL_CLK_OPENVG_AXI>, 126*4f79d0d3SJagan Teki <&clks IMX6QDL_CLK_GPU2D_CORE>; 127*4f79d0d3SJagan Teki clock-names = "bus", "core"; 128*4f79d0d3SJagan Teki power-domains = <&gpc 1>; 129*4f79d0d3SJagan Teki }; 130*4f79d0d3SJagan Teki 131*4f79d0d3SJagan Teki ipu2: ipu@02800000 { 132*4f79d0d3SJagan Teki #address-cells = <1>; 133*4f79d0d3SJagan Teki #size-cells = <0>; 134*4f79d0d3SJagan Teki compatible = "fsl,imx6q-ipu"; 135*4f79d0d3SJagan Teki reg = <0x02800000 0x400000>; 136*4f79d0d3SJagan Teki interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>, 137*4f79d0d3SJagan Teki <0 7 IRQ_TYPE_LEVEL_HIGH>; 138*4f79d0d3SJagan Teki clocks = <&clks IMX6QDL_CLK_IPU2>, 139*4f79d0d3SJagan Teki <&clks IMX6QDL_CLK_IPU2_DI0>, 140*4f79d0d3SJagan Teki <&clks IMX6QDL_CLK_IPU2_DI1>; 141*4f79d0d3SJagan Teki clock-names = "bus", "di0", "di1"; 142*4f79d0d3SJagan Teki resets = <&src 4>; 143*4f79d0d3SJagan Teki 144*4f79d0d3SJagan Teki ipu2_csi0: port@0 { 145*4f79d0d3SJagan Teki reg = <0>; 146*4f79d0d3SJagan Teki }; 147*4f79d0d3SJagan Teki 148*4f79d0d3SJagan Teki ipu2_csi1: port@1 { 149*4f79d0d3SJagan Teki reg = <1>; 150*4f79d0d3SJagan Teki }; 151*4f79d0d3SJagan Teki 152*4f79d0d3SJagan Teki ipu2_di0: port@2 { 153*4f79d0d3SJagan Teki #address-cells = <1>; 154*4f79d0d3SJagan Teki #size-cells = <0>; 155*4f79d0d3SJagan Teki reg = <2>; 156*4f79d0d3SJagan Teki 157*4f79d0d3SJagan Teki ipu2_di0_disp0: disp0-endpoint { 158*4f79d0d3SJagan Teki }; 159*4f79d0d3SJagan Teki 160*4f79d0d3SJagan Teki ipu2_di0_hdmi: hdmi-endpoint { 161*4f79d0d3SJagan Teki remote-endpoint = <&hdmi_mux_2>; 162*4f79d0d3SJagan Teki }; 163*4f79d0d3SJagan Teki 164*4f79d0d3SJagan Teki ipu2_di0_mipi: mipi-endpoint { 165*4f79d0d3SJagan Teki remote-endpoint = <&mipi_mux_2>; 166*4f79d0d3SJagan Teki }; 167*4f79d0d3SJagan Teki 168*4f79d0d3SJagan Teki ipu2_di0_lvds0: lvds0-endpoint { 169*4f79d0d3SJagan Teki remote-endpoint = <&lvds0_mux_2>; 170*4f79d0d3SJagan Teki }; 171*4f79d0d3SJagan Teki 172*4f79d0d3SJagan Teki ipu2_di0_lvds1: lvds1-endpoint { 173*4f79d0d3SJagan Teki remote-endpoint = <&lvds1_mux_2>; 174*4f79d0d3SJagan Teki }; 175*4f79d0d3SJagan Teki }; 176*4f79d0d3SJagan Teki 177*4f79d0d3SJagan Teki ipu2_di1: port@3 { 178*4f79d0d3SJagan Teki #address-cells = <1>; 179*4f79d0d3SJagan Teki #size-cells = <0>; 180*4f79d0d3SJagan Teki reg = <3>; 181*4f79d0d3SJagan Teki 182*4f79d0d3SJagan Teki ipu2_di1_hdmi: hdmi-endpoint { 183*4f79d0d3SJagan Teki remote-endpoint = <&hdmi_mux_3>; 184*4f79d0d3SJagan Teki }; 185*4f79d0d3SJagan Teki 186*4f79d0d3SJagan Teki ipu2_di1_mipi: mipi-endpoint { 187*4f79d0d3SJagan Teki remote-endpoint = <&mipi_mux_3>; 188*4f79d0d3SJagan Teki }; 189*4f79d0d3SJagan Teki 190*4f79d0d3SJagan Teki ipu2_di1_lvds0: lvds0-endpoint { 191*4f79d0d3SJagan Teki remote-endpoint = <&lvds0_mux_3>; 192*4f79d0d3SJagan Teki }; 193*4f79d0d3SJagan Teki 194*4f79d0d3SJagan Teki ipu2_di1_lvds1: lvds1-endpoint { 195*4f79d0d3SJagan Teki remote-endpoint = <&lvds1_mux_3>; 196*4f79d0d3SJagan Teki }; 197*4f79d0d3SJagan Teki }; 198*4f79d0d3SJagan Teki }; 199*4f79d0d3SJagan Teki }; 200*4f79d0d3SJagan Teki 201*4f79d0d3SJagan Teki display-subsystem { 202*4f79d0d3SJagan Teki compatible = "fsl,imx-display-subsystem"; 203*4f79d0d3SJagan Teki ports = <&ipu1_di0>, <&ipu1_di1>, <&ipu2_di0>, <&ipu2_di1>; 204*4f79d0d3SJagan Teki }; 205*4f79d0d3SJagan Teki 206*4f79d0d3SJagan Teki gpu-subsystem { 207*4f79d0d3SJagan Teki compatible = "fsl,imx-gpu-subsystem"; 208*4f79d0d3SJagan Teki cores = <&gpu_2d>, <&gpu_3d>, <&gpu_vg>; 209*4f79d0d3SJagan Teki }; 210*4f79d0d3SJagan Teki}; 211*4f79d0d3SJagan Teki 212*4f79d0d3SJagan Teki&hdmi { 213*4f79d0d3SJagan Teki compatible = "fsl,imx6q-hdmi"; 214*4f79d0d3SJagan Teki 215*4f79d0d3SJagan Teki port@2 { 216*4f79d0d3SJagan Teki reg = <2>; 217*4f79d0d3SJagan Teki 218*4f79d0d3SJagan Teki hdmi_mux_2: endpoint { 219*4f79d0d3SJagan Teki remote-endpoint = <&ipu2_di0_hdmi>; 220*4f79d0d3SJagan Teki }; 221*4f79d0d3SJagan Teki }; 222*4f79d0d3SJagan Teki 223*4f79d0d3SJagan Teki port@3 { 224*4f79d0d3SJagan Teki reg = <3>; 225*4f79d0d3SJagan Teki 226*4f79d0d3SJagan Teki hdmi_mux_3: endpoint { 227*4f79d0d3SJagan Teki remote-endpoint = <&ipu2_di1_hdmi>; 228*4f79d0d3SJagan Teki }; 229*4f79d0d3SJagan Teki }; 230*4f79d0d3SJagan Teki}; 231*4f79d0d3SJagan Teki 232*4f79d0d3SJagan Teki&ldb { 233*4f79d0d3SJagan Teki clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, <&clks IMX6QDL_CLK_LDB_DI1_SEL>, 234*4f79d0d3SJagan Teki <&clks IMX6QDL_CLK_IPU1_DI0_SEL>, <&clks IMX6QDL_CLK_IPU1_DI1_SEL>, 235*4f79d0d3SJagan Teki <&clks IMX6QDL_CLK_IPU2_DI0_SEL>, <&clks IMX6QDL_CLK_IPU2_DI1_SEL>, 236*4f79d0d3SJagan Teki <&clks IMX6QDL_CLK_LDB_DI0>, <&clks IMX6QDL_CLK_LDB_DI1>; 237*4f79d0d3SJagan Teki clock-names = "di0_pll", "di1_pll", 238*4f79d0d3SJagan Teki "di0_sel", "di1_sel", "di2_sel", "di3_sel", 239*4f79d0d3SJagan Teki "di0", "di1"; 240*4f79d0d3SJagan Teki 241*4f79d0d3SJagan Teki lvds-channel@0 { 242*4f79d0d3SJagan Teki port@2 { 243*4f79d0d3SJagan Teki reg = <2>; 244*4f79d0d3SJagan Teki 245*4f79d0d3SJagan Teki lvds0_mux_2: endpoint { 246*4f79d0d3SJagan Teki remote-endpoint = <&ipu2_di0_lvds0>; 247*4f79d0d3SJagan Teki }; 248*4f79d0d3SJagan Teki }; 249*4f79d0d3SJagan Teki 250*4f79d0d3SJagan Teki port@3 { 251*4f79d0d3SJagan Teki reg = <3>; 252*4f79d0d3SJagan Teki 253*4f79d0d3SJagan Teki lvds0_mux_3: endpoint { 254*4f79d0d3SJagan Teki remote-endpoint = <&ipu2_di1_lvds0>; 255*4f79d0d3SJagan Teki }; 256*4f79d0d3SJagan Teki }; 257*4f79d0d3SJagan Teki }; 258*4f79d0d3SJagan Teki 259*4f79d0d3SJagan Teki lvds-channel@1 { 260*4f79d0d3SJagan Teki port@2 { 261*4f79d0d3SJagan Teki reg = <2>; 262*4f79d0d3SJagan Teki 263*4f79d0d3SJagan Teki lvds1_mux_2: endpoint { 264*4f79d0d3SJagan Teki remote-endpoint = <&ipu2_di0_lvds1>; 265*4f79d0d3SJagan Teki }; 266*4f79d0d3SJagan Teki }; 267*4f79d0d3SJagan Teki 268*4f79d0d3SJagan Teki port@3 { 269*4f79d0d3SJagan Teki reg = <3>; 270*4f79d0d3SJagan Teki 271*4f79d0d3SJagan Teki lvds1_mux_3: endpoint { 272*4f79d0d3SJagan Teki remote-endpoint = <&ipu2_di1_lvds1>; 273*4f79d0d3SJagan Teki }; 274*4f79d0d3SJagan Teki }; 275*4f79d0d3SJagan Teki }; 276*4f79d0d3SJagan Teki}; 277*4f79d0d3SJagan Teki 278*4f79d0d3SJagan Teki&mipi_dsi { 279*4f79d0d3SJagan Teki ports { 280*4f79d0d3SJagan Teki port@2 { 281*4f79d0d3SJagan Teki reg = <2>; 282*4f79d0d3SJagan Teki 283*4f79d0d3SJagan Teki mipi_mux_2: endpoint { 284*4f79d0d3SJagan Teki remote-endpoint = <&ipu2_di0_mipi>; 285*4f79d0d3SJagan Teki }; 286*4f79d0d3SJagan Teki }; 287*4f79d0d3SJagan Teki 288*4f79d0d3SJagan Teki port@3 { 289*4f79d0d3SJagan Teki reg = <3>; 290*4f79d0d3SJagan Teki 291*4f79d0d3SJagan Teki mipi_mux_3: endpoint { 292*4f79d0d3SJagan Teki remote-endpoint = <&ipu2_di1_mipi>; 293*4f79d0d3SJagan Teki }; 294*4f79d0d3SJagan Teki }; 295*4f79d0d3SJagan Teki }; 296*4f79d0d3SJagan Teki}; 297*4f79d0d3SJagan Teki 298*4f79d0d3SJagan Teki&vpu { 299*4f79d0d3SJagan Teki compatible = "fsl,imx6q-vpu", "cnm,coda960"; 300*4f79d0d3SJagan Teki}; 301