[PATCH 0/7] PCI irq mapping fixes and cleanups

Tim Harvey tharvey at gateworks.com
Mon Mar 3 13:28:00 EST 2014


On Mon, Mar 3, 2014 at 10:01 AM, Jason Gunthorpe
<jgunthorpe at obsidianresearch.com> wrote:
> On Mon, Mar 03, 2014 at 09:49:52AM -0800, Tim Harvey wrote:
>
>> I'm not clear why irq 20 is getting returned for all the slots with
>> (slot%4)=0 and func=0.  If I start debugging of_irq_parse_pci() I see
>> that it walks up the tree until it gets to the pcie host controller
>> then calls of_irq_parse_raw() which is returning irq20 or -EINVAL.
>
> Can you share your DT as well?

sure - I'm not sure what the best way to show this is (a dtc
commandline probably?).  This is from u-boot:

/ {
        board = "GW5410-SP275-B";
        system-serial = [35 30 38 38 30];
        #address-cells = <0x00000001>;
        #size-cells = <0x00000001>;
        model = "Gateworks Ventana i.MX6 Quad GW54XX";
        compatible = "gw,imx6q-gw54xx", "gw,ventana", "fsl,imx6q";
        chosen {
                bootargs = "console=ttymxc1,115200";
        };
        aliases {
                gpio0 = "/soc/aips-bus at 02000000/gpio at 0209c000";
                gpio1 = "/soc/aips-bus at 02000000/gpio at 020a0000";
                gpio2 = "/soc/aips-bus at 02000000/gpio at 020a4000";
                gpio3 = "/soc/aips-bus at 02000000/gpio at 020a8000";
                gpio4 = "/soc/aips-bus at 02000000/gpio at 020ac000";
                gpio5 = "/soc/aips-bus at 02000000/gpio at 020b0000";
                gpio6 = "/soc/aips-bus at 02000000/gpio at 020b4000";
                i2c0 = "/soc/aips-bus at 02100000/i2c at 021a0000";
                i2c1 = "/soc/aips-bus at 02100000/i2c at 021a4000";
                i2c2 = "/soc/aips-bus at 02100000/i2c at 021a8000";
                serial0 =
"/soc/aips-bus at 02000000/spba-bus at 02000000/serial at 02020000";
                serial1 = "/soc/aips-bus at 02100000/serial at 021e8000";
                serial4 = "/soc/aips-bus at 02100000/serial at 021f4000";
                can0 = "/soc/aips-bus at 02000000/flexcan at 02090000";
                ethernet0 = "/soc/aips-bus at 02100000/ethernet at 02188000";
                led0 = "/leds/user1";
                led1 = "/leds/user2";
                led2 = "/leds/user3";
                nand = "/soc/gpmi-nand at 00112000";
                usb0 = "/soc/aips-bus at 02100000/usb at 02184200";
                usb1 = "/soc/aips-bus at 02100000/usb at 02184000";
                usdhc2 = "/soc/aips-bus at 02100000/usdhc at 02198000";
        };
        memory {
                device_type = "memory";
                reg = <0x10000000 0x40000000>;
        };
        interrupt-controller at 00a01000 {
                compatible = "arm,cortex-a9-gic";
                #interrupt-cells = <0x00000003>;
                #address-cells = <0x00000001>;
                #size-cells = <0x00000001>;
                interrupt-controller;
                reg = <0x00a01000 0x00001000 0x00a00100 0x00000100>;
                linux,phandle = <0x00000001>;
                phandle = <0x00000001>;
        };
        clocks {
                #address-cells = <0x00000001>;
                #size-cells = <0x00000000>;
                ckil {
                        compatible = "fsl,imx-ckil", "fixed-clock";
                        clock-frequency = <0x00008000>;
                };
                ckih1 {
                        compatible = "fsl,imx-ckih1", "fixed-clock";
                        clock-frequency = <0x00000000>;
                };
                osc {
                        compatible = "fsl,imx-osc", "fixed-clock";
                        clock-frequency = <0x016e3600>;
                };
        };
        soc {
                #address-cells = <0x00000001>;
                #size-cells = <0x00000001>;
                compatible = "simple-bus";
                interrupt-parent = <0x00000001>;
                ranges;
                dma-apbh at 00110000 {
                        compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh";
                        reg = <0x00110000 0x00002000>;
                        interrupts = <0x00000000 0x0000000d 0x00000004
0x00000000 0x0000000d 0x00000004 0x00000000 0x0000000d 0x00000004
0x00000000 0x0000000d 0x00000004>;
                        interrupt-names = "gpmi0", "gpmi1", "gpmi2", "gpmi3";
                        #dma-cells = <0x00000001>;
                        dma-channels = <0x00000004>;
                        clocks = <0x00000002 0x0000006a>;
                        linux,phandle = <0x00000003>;
                        phandle = <0x00000003>;
                };
                gpmi-nand at 00112000 {
                        compatible = "fsl,imx6q-gpmi-nand";
                        #address-cells = <0x00000001>;
                        #size-cells = <0x00000001>;
                        reg = <0x00112000 0x00002000 0x00114000 0x00002000>;
                        reg-names = "gpmi-nand", "bch";
                        interrupts = <0x00000000 0x0000000f 0x00000004>;
                        interrupt-names = "bch";
                        clocks = <0x00000002 0x00000098 0x00000002
0x00000099 0x00000002 0x00000097 0x00000002 0x00000096 0x00000002
0x00000095>;
                        clock-names = "gpmi_io", "gpmi_apb",
"gpmi_bch", "gpmi_bch_apb", "per1_bch";
                        dmas = <0x00000003 0x00000000>;
                        dma-names = "rx-tx";
                        status = "okay";
                        pinctrl-names = "default";
                        pinctrl-0 = <0x00000004>;
                        partition at 0 {
                                label = "uboot";
                                reg = <0x00000000 0x01000000>;
                        };
                        partition at 1000000 {
                                label = "env";
                                reg = <0x01000000 0x00100000>;
                        };
                        partition at 1100000 {
                                label = "rootfs";
                                reg = <0x01100000 0x0ef00000>;
                        };
                };
                timer at 00a00600 {
                        compatible = "arm,cortex-a9-twd-timer";
                        reg = <0x00a00600 0x00000020>;
                        interrupts = <0x00000001 0x0000000d 0x00000f01>;
                        clocks = <0x00000002 0x0000000f>;
                };
                l2-cache at 00a02000 {
                        compatible = "arm,pl310-cache";
                        reg = <0x00a02000 0x00001000>;
                        interrupts = <0x00000000 0x0000005c 0x00000004>;
                        cache-unified;
                        cache-level = <0x00000002>;
                        arm,tag-latency = <0x00000004 0x00000002 0x00000003>;
                        arm,data-latency = <0x00000004 0x00000002 0x00000003>;
                        linux,phandle = <0x00000022>;
                        phandle = <0x00000022>;
                };
                pcie at 0x01000000 {
                        compatible = "fsl,imx6q-pcie", "snps,dw-pcie";
                        reg = <0x01ffc000 0x00004000>;
                        #address-cells = <0x00000003>;
                        #size-cells = <0x00000002>;
                        device_type = "pci";
                        ranges = * 0x18000ce0 [0x00000048];
                        num-lanes = <0x00000001>;
                        interrupts = <0x00000000 0x0000007b 0x00000004>;
                        #interrupt-cells = <0x00000001>;
                        interrupt-map-mask = <0x00000000 0x00000000
0x00000000 0x00000007>;
                        interrupt-map = * 0x18000d88 [0x00000080];
                        clocks = <0x00000002 0x000000bd 0x00000002
0x000000bb 0x00000002 0x000000ce 0x00000002 0x00000090>;
                        clock-names = "pcie_ref_125m",
"sata_ref_100m", "lvds_gate", "pcie_axi";
                        status = "okay";
                        reset-gpio = <0x00000005 0x0000001d 0x00000000>;
                };
                pmu {
                        compatible = "arm,cortex-a9-pmu";
                        interrupts = <0x00000000 0x0000005e 0x00000004>;
                };
                aips-bus at 02000000 {
                        compatible = "fsl,aips-bus", "simple-bus";
                        #address-cells = <0x00000001>;
                        #size-cells = <0x00000001>;
                        reg = <0x02000000 0x00100000>;
                        ranges;
                        spba-bus at 02000000 {
                                compatible = "fsl,spba-bus", "simple-bus";
                                #address-cells = <0x00000001>;
                                #size-cells = <0x00000001>;
                                reg = <0x02000000 0x00040000>;
                                ranges;
                                spdif at 02004000 {
                                        compatible = "fsl,imx35-spdif";
                                        reg = <0x02004000 0x00004000>;
                                        interrupts = <0x00000000
0x00000034 0x00000004>;
                                        dmas = <0x00000006 0x0000000e
0x00000012 0x00000000 0x00000006 0x0000000f 0x00000012 0x00000000>;
                                        dma-names = "rx", "tx";
                                        clocks = * 0x18001084 [0x00000048];
                                        clock-names = "core", "rxtx0",
"rxtx1", "rxtx2", "rxtx3", "rxtx4", "rxtx5", "rxtx6", "rxtx7";
                                        status = "disabled";
                                };
                                serial at 02020000 {
                                        compatible = "fsl,imx6q-uart",
"fsl,imx21-uart";
                                        reg = <0x02020000 0x00004000>;
                                        interrupts = <0x00000000
0x0000001a 0x00000004>;
                                        clocks = <0x00000002
0x000000a0 0x00000002 0x000000a1>;
                                        clock-names = "ipg", "per";
                                        dmas = <0x00000006 0x00000019
0x00000004 0x00000000 0x00000006 0x0000001a 0x00000004 0x00000000>;
                                        dma-names = "rx", "tx";
                                        status = "okay";
                                        pinctrl-names = "default";
                                        pinctrl-0 = <0x00000007>;
                                };
                                esai at 02024000 {
                                        reg = <0x02024000 0x00004000>;
                                        interrupts = <0x00000000
0x00000033 0x00000004>;
                                };
                                ssi at 0202c000 {
                                        compatible = "fsl,imx6q-ssi",
"fsl,imx21-ssi";
                                        reg = <0x0202c000 0x00004000>;
                                        interrupts = <0x00000000
0x0000002f 0x00000004>;
                                        clocks = <0x00000002 0x000000b3>;
                                        dmas = <0x00000006 0x00000029
0x00000001 0x00000000 0x00000006 0x0000002a 0x00000001 0x00000000>;
                                        dma-names = "rx", "tx";
                                        fsl,fifo-depth = <0x0000000f>;
                                        fsl,ssi-dma-events =
<0x0000002a 0x00000029>;
                                        status = "okay";
                                        fsl,mode = "i2s-slave";
                                };
                                ssi at 02030000 {
                                        compatible = "fsl,imx6q-ssi",
"fsl,imx21-ssi";
                                        reg = <0x02030000 0x00004000>;
                                        interrupts = <0x00000000
0x00000030 0x00000004>;
                                        clocks = <0x00000002 0x000000b4>;
                                        dmas = <0x00000006 0x0000002d
0x00000001 0x00000000 0x00000006 0x0000002e 0x00000001 0x00000000>;
                                        dma-names = "rx", "tx";
                                        fsl,fifo-depth = <0x0000000f>;
                                        fsl,ssi-dma-events =
<0x0000002e 0x0000002d>;
                                        status = "disabled";
                                };
                                asrc at 02034000 {
                                        reg = <0x02034000 0x00004000>;
                                        interrupts = <0x00000000
0x00000032 0x00000004>;
                                };
                                spba at 0203c000 {
                                        reg = <0x0203c000 0x00004000>;
                                };
                                ecspi at 02018000 {
                                        #address-cells = <0x00000001>;
                                        #size-cells = <0x00000000>;
                                        compatible =
"fsl,imx6q-ecspi", "fsl,imx51-ecspi";
                                        reg = <0x02018000 0x00004000>;
                                        interrupts = <0x00000000
0x00000023 0x00000004>;
                                        clocks = <0x00000002
0x00000074 0x00000002 0x00000074>;
                                        clock-names = "ipg", "per";
                                        status = "disabled";
                                };
                        };
                        vpu at 02040000 {
                                reg = <0x02040000 0x0003c000>;
                                interrupts = <0x00000000 0x00000003
0x00000004 0x00000000 0x0000000c 0x00000004>;
                        };
                        aipstz at 0207c000 {
                                reg = <0x0207c000 0x00004000>;
                        };
                        pwm at 02080000 {
                                #pwm-cells = <0x00000002>;
                                compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
                                reg = <0x02080000 0x00004000>;
                                interrupts = <0x00000000 0x00000053 0x00000004>;
                                clocks = <0x00000002 0x0000003e
0x00000002 0x00000091>;
                                clock-names = "ipg", "per";
                        };
                        pwm at 02084000 {
                                #pwm-cells = <0x00000002>;
                                compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
                                reg = <0x02084000 0x00004000>;
                                interrupts = <0x00000000 0x00000054 0x00000004>;
                                clocks = <0x00000002 0x0000003e
0x00000002 0x00000092>;
                                clock-names = "ipg", "per";
                        };
                        pwm at 02088000 {
                                #pwm-cells = <0x00000002>;
                                compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
                                reg = <0x02088000 0x00004000>;
                                interrupts = <0x00000000 0x00000055 0x00000004>;
                                clocks = <0x00000002 0x0000003e
0x00000002 0x00000093>;
                                clock-names = "ipg", "per";
                        };
                        pwm at 0208c000 {
                                #pwm-cells = <0x00000002>;
                                compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
                                reg = <0x0208c000 0x00004000>;
                                interrupts = <0x00000000 0x00000056 0x00000004>;
                                clocks = <0x00000002 0x0000003e
0x00000002 0x00000094>;
                                clock-names = "ipg", "per";
                        };
                        flexcan at 02090000 {
                                compatible = "fsl,imx6q-flexcan";
                                reg = <0x02090000 0x00004000>;
                                interrupts = <0x00000000 0x0000006e 0x00000004>;
                                clocks = <0x00000002 0x0000006c
0x00000002 0x0000006d>;
                                clock-names = "ipg", "per";
                                status = "okay";
                                pinctrl-names = "default";
                                pinctrl-0 = <0x00000008>;
                        };
                        flexcan at 02094000 {
                                compatible = "fsl,imx6q-flexcan";
                                reg = <0x02094000 0x00004000>;
                                interrupts = <0x00000000 0x0000006f 0x00000004>;
                                clocks = <0x00000002 0x0000006e
0x00000002 0x0000006f>;
                                clock-names = "ipg", "per";
                                status = "disabled";
                        };
                        gpt at 02098000 {
                                compatible = "fsl,imx6q-gpt", "fsl,imx31-gpt";
                                reg = <0x02098000 0x00004000>;
                                interrupts = <0x00000000 0x00000037 0x00000004>;
                                clocks = <0x00000002 0x00000077
0x00000002 0x00000078>;
                                clock-names = "ipg", "per";
                        };
                        gpio at 0209c000 {
                                compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
                                reg = <0x0209c000 0x00004000>;
                                interrupts = <0x00000000 0x00000042
0x00000004 0x00000000 0x00000043 0x00000004>;
                                gpio-controller;
                                #gpio-cells = <0x00000002>;
                                interrupt-controller;
                                #interrupt-cells = <0x00000002>;
                                linux,phandle = <0x00000005>;
                                phandle = <0x00000005>;
                        };
                        gpio at 020a0000 {
                                compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
                                reg = <0x020a0000 0x00004000>;
                                interrupts = <0x00000000 0x00000044
0x00000004 0x00000000 0x00000045 0x00000004>;
                                gpio-controller;
                                #gpio-cells = <0x00000002>;
                                interrupt-controller;
                                #interrupt-cells = <0x00000002>;
                        };
                        gpio at 020a4000 {
                                compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
                                reg = <0x020a4000 0x00004000>;
                                interrupts = <0x00000000 0x00000046
0x00000004 0x00000000 0x00000047 0x00000004>;
                                gpio-controller;
                                #gpio-cells = <0x00000002>;
                                interrupt-controller;
                                #interrupt-cells = <0x00000002>;
                                linux,phandle = <0x00000027>;
                                phandle = <0x00000027>;
                        };
                        gpio at 020a8000 {
                                compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
                                reg = <0x020a8000 0x00004000>;
                                interrupts = <0x00000000 0x00000048
0x00000004 0x00000000 0x00000049 0x00000004>;
                                gpio-controller;
                                #gpio-cells = <0x00000002>;
                                interrupt-controller;
                                #interrupt-cells = <0x00000002>;
                                linux,phandle = <0x00000026>;
                                phandle = <0x00000026>;
                        };
                        gpio at 020ac000 {
                                compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
                                reg = <0x020ac000 0x00004000>;
                                interrupts = <0x00000000 0x0000004a
0x00000004 0x00000000 0x0000004b 0x00000004>;
                                gpio-controller;
                                #gpio-cells = <0x00000002>;
                                interrupt-controller;
                                #interrupt-cells = <0x00000002>;
                        };
                        gpio at 020b0000 {
                                compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
                                reg = <0x020b0000 0x00004000>;
                                interrupts = <0x00000000 0x0000004c
0x00000004 0x00000000 0x0000004d 0x00000004>;
                                gpio-controller;
                                #gpio-cells = <0x00000002>;
                                interrupt-controller;
                                #interrupt-cells = <0x00000002>;
                        };
                        gpio at 020b4000 {
                                compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
                                reg = <0x020b4000 0x00004000>;
                                interrupts = <0x00000000 0x0000004e
0x00000004 0x00000000 0x0000004f 0x00000004>;
                                gpio-controller;
                                #gpio-cells = <0x00000002>;
                                interrupt-controller;
                                #interrupt-cells = <0x00000002>;
                                linux,phandle = <0x00000018>;
                                phandle = <0x00000018>;
                        };
                        kpp at 020b8000 {
                                reg = <0x020b8000 0x00004000>;
                                interrupts = <0x00000000 0x00000052 0x00000004>;
                        };
                        wdog at 020bc000 {
                                compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt";
                                reg = <0x020bc000 0x00004000>;
                                interrupts = <0x00000000 0x00000050 0x00000004>;
                                clocks = <0x00000002 0x00000000>;
                        };
                        wdog at 020c0000 {
                                compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt";
                                reg = <0x020c0000 0x00004000>;
                                interrupts = <0x00000000 0x00000051 0x00000004>;
                                clocks = <0x00000002 0x00000000>;
                                status = "disabled";
                        };
                        ccm at 020c4000 {
                                compatible = "fsl,imx6q-ccm";
                                reg = <0x020c4000 0x00004000>;
                                interrupts = <0x00000000 0x00000057
0x00000004 0x00000000 0x00000058 0x00000004>;
                                #clock-cells = <0x00000001>;
                                linux,phandle = <0x00000002>;
                                phandle = <0x00000002>;
                        };
                        anatop at 020c8000 {
                                compatible = "fsl,imx6q-anatop",
"syscon", "simple-bus";
                                reg = <0x020c8000 0x00001000>;
                                interrupts = <0x00000000 0x00000031
0x00000004 0x00000000 0x00000036 0x00000004 0x00000000 0x0000007f
0x00000004>;
                                linux,phandle = <0x00000009>;
                                phandle = <0x00000009>;
                                regulator-1p1 at 110 {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vdd1p1";
                                        regulator-min-microvolt = "", "5";
                                        regulator-max-microvolt = <0x0014fb18>;
                                        regulator-always-on;
                                        anatop-reg-offset = <0x00000110>;
                                        anatop-vol-bit-shift = <0x00000008>;
                                        anatop-vol-bit-width = <0x00000005>;
                                        anatop-min-bit-val = <0x00000004>;
                                        anatop-min-voltage = "", "5";
                                        anatop-max-voltage = <0x0014fb18>;
                                };
                                regulator-3p0 at 120 {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vdd3p0";
                                        regulator-min-microvolt = <0x002ab980>;
                                        regulator-max-microvolt = <0x003010b0>;
                                        regulator-always-on;
                                        anatop-reg-offset = <0x00000120>;
                                        anatop-vol-bit-shift = <0x00000008>;
                                        anatop-vol-bit-width = <0x00000005>;
                                        anatop-min-bit-val = <0x00000000>;
                                        anatop-min-voltage = <0x00280de8>;
                                        anatop-max-voltage = <0x0033e140>;
                                };
                                regulator-2p5 at 130 {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vdd2p5";
                                        regulator-min-microvolt = <0x001e8480>;
                                        regulator-max-microvolt = <0x0029f630>;
                                        regulator-always-on;
                                        anatop-reg-offset = <0x00000130>;
                                        anatop-vol-bit-shift = <0x00000008>;
                                        anatop-vol-bit-width = <0x00000005>;
                                        anatop-min-bit-val = <0x00000000>;
                                        anatop-min-voltage = <0x001e8480>;
                                        anatop-max-voltage = <0x0029f630>;
                                };
                                regulator-vddcore at 140 {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "cpu";
                                        regulator-min-microvolt = <0x000b1008>;
                                        regulator-max-microvolt = <0x00162010>;
                                        regulator-always-on;
                                        anatop-reg-offset = <0x00000140>;
                                        anatop-vol-bit-shift = <0x00000000>;
                                        anatop-vol-bit-width = <0x00000005>;
                                        anatop-delay-reg-offset = <0x00000170>;
                                        anatop-delay-bit-shift = <0x00000018>;
                                        anatop-delay-bit-width = <0x00000002>;
                                        anatop-min-bit-val = <0x00000001>;
                                        anatop-min-voltage = <0x000b1008>;
                                        anatop-max-voltage = <0x00162010>;
                                        linux,phandle = <0x00000023>;
                                        phandle = <0x00000023>;
                                };
                                regulator-vddpu at 140 {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vddpu";
                                        regulator-min-microvolt = <0x000b1008>;
                                        regulator-max-microvolt = <0x00162010>;
                                        regulator-always-on;
                                        anatop-reg-offset = <0x00000140>;
                                        anatop-vol-bit-shift = <0x00000009>;
                                        anatop-vol-bit-width = <0x00000005>;
                                        anatop-delay-reg-offset = <0x00000170>;
                                        anatop-delay-bit-shift = <0x0000001a>;
                                        anatop-delay-bit-width = <0x00000002>;
                                        anatop-min-bit-val = <0x00000001>;
                                        anatop-min-voltage = <0x000b1008>;
                                        anatop-max-voltage = <0x00162010>;
                                        linux,phandle = <0x00000024>;
                                        phandle = <0x00000024>;
                                };
                                regulator-vddsoc at 140 {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vddsoc";
                                        regulator-min-microvolt = <0x000b1008>;
                                        regulator-max-microvolt = <0x00162010>;
                                        regulator-always-on;
                                        anatop-reg-offset = <0x00000140>;
                                        anatop-vol-bit-shift = <0x00000012>;
                                        anatop-vol-bit-width = <0x00000005>;
                                        anatop-delay-reg-offset = <0x00000170>;
                                        anatop-delay-bit-shift = <0x0000001c>;
                                        anatop-delay-bit-width = <0x00000002>;
                                        anatop-min-bit-val = <0x00000001>;
                                        anatop-min-voltage = <0x000b1008>;
                                        anatop-max-voltage = <0x00162010>;
                                        linux,phandle = <0x00000025>;
                                        phandle = <0x00000025>;
                                };
                        };
                        tempmon {
                                compatible = "fsl,imx6q-tempmon";
                                interrupts = <0x00000000 0x00000031 0x00000004>;
                                fsl,tempmon = <0x00000009>;
                                fsl,tempmon-data = <0x0000000a>;
                        };
                        usbphy at 020c9000 {
                                compatible = "fsl,imx6q-usbphy",
"fsl,imx23-usbphy";
                                reg = <0x020c9000 0x00001000>;
                                interrupts = <0x00000000 0x0000002c 0x00000004>;
                                clocks = <0x00000002 0x000000b6>;
                                linux,phandle = <0x00000010>;
                                phandle = <0x00000010>;
                        };
                        usbphy at 020ca000 {
                                compatible = "fsl,imx6q-usbphy",
"fsl,imx23-usbphy";
                                reg = <0x020ca000 0x00001000>;
                                interrupts = <0x00000000 0x0000002d 0x00000004>;
                                clocks = <0x00000002 0x000000b7>;
                                linux,phandle = <0x00000014>;
                                phandle = <0x00000014>;
                        };
                        snvs at 020cc000 {
                                compatible = "fsl,sec-v4.0-mon", "simple-bus";
                                #address-cells = <0x00000001>;
                                #size-cells = <0x00000001>;
                                ranges = <0x00000000 0x020cc000 0x00004000>;
                                snvs-rtc-lp at 34 {
                                        compatible = "fsl,sec-v4.0-mon-rtc-lp";
                                        reg = <0x00000034 0x00000058>;
                                        interrupts = <0x00000000
0x00000013 0x00000004 0x00000000 0x00000014 0x00000004>;
                                };
                        };
                        epit at 020d0000 {
                                reg = <0x020d0000 0x00004000>;
                                interrupts = <0x00000000 0x00000038 0x00000004>;
                        };
                        epit at 020d4000 {
                                reg = <0x020d4000 0x00004000>;
                                interrupts = <0x00000000 0x00000039 0x00000004>;
                        };
                        src at 020d8000 {
                                compatible = "fsl,imx6q-src", "fsl,imx51-src";
                                reg = <0x020d8000 0x00004000>;
                                interrupts = <0x00000000 0x0000005b
0x00000004 0x00000000 0x00000060 0x00000004>;
                                #reset-cells = <0x00000001>;
                                linux,phandle = <0x00000021>;
                                phandle = <0x00000021>;
                        };
                        gpc at 020dc000 {
                                compatible = "fsl,imx6q-gpc";
                                reg = <0x020dc000 0x00004000>;
                                interrupts = <0x00000000 0x00000059
0x00000004 0x00000000 0x0000005a 0x00000004>;
                        };
                        iomuxc-gpr at 020e0000 {
                                compatible = "fsl,imx6q-iomuxc-gpr", "syscon";
                                reg = <0x020e0000 0x00000038>;
                                linux,phandle = <0x0000000c>;
                                phandle = <0x0000000c>;
                        };
                        iomuxc at 020e0000 {
                                compatible = "fsl,imx6q-iomuxc";
                                reg = <0x020e0000 0x00004000>;
                                pinctrl-names = "default";
                                pinctrl-0 = <0x0000000b>;
                                audmux {
                                        audmux-1 {
                                                fsl,pins = *
0x18002eb8 [0x00000060];
                                                linux,phandle = <0x0000001e>;
                                                phandle = <0x0000001e>;
                                        };
                                        audmux-2 {
                                                fsl,pins = *
0x18002f58 [0x00000060];
                                        };
                                        audmux-3 {
                                                fsl,pins = *
0x18002fd8 [0x00000048];
                                        };
                                        audmux-4 {
                                                fsl,pins = *
0x18003040 [0x00000048];
                                        };
                                };
                                ecspi1 {
                                        ecspi1grp-1 {
                                                fsl,pins = *
0x180030b8 [0x00000048];
                                        };
                                        ecspi1grp-2 {
                                                fsl,pins = *
0x18003120 [0x00000048];
                                        };
                                };
                                ecspi3 {
                                        ecspi3grp-1 {
                                                fsl,pins = *
0x18003198 [0x00000048];
                                        };
                                };
                                enet {
                                        enetgrp-1 {
                                                fsl,pins = *
0x18003210 [0x00000180];
                                                linux,phandle = <0x00000016>;
                                                phandle = <0x00000016>;
                                        };
                                        enetgrp-2 {
                                                fsl,pins = *
0x180033d0 [0x00000168];
                                        };
                                        enetgrp-3 {
                                                fsl,pins = *
0x18003558 [0x00000180];
                                        };
                                };
                                esai {
                                        esaigrp-1 {
                                                fsl,pins = *
0x18003708 [0x000000d8];
                                        };
                                        esaigrp-2 {
                                                fsl,pins = *
0x18003800 [0x000000f0];
                                        };
                                };
                                flexcan1 {
                                        flexcan1grp-1 {
                                                fsl,pins = <0x0000020c
0x000005dc 0x000007e4 0x00000002 0x00000000 0x80000000 0x00000208
0x000005d8 0x00000000 0x00000002 0x00000000 0x80000000>;
                                                linux,phandle = <0x00000008>;
                                                phandle = <0x00000008>;
                                        };
                                        flexcan1grp-2 {
                                                fsl,pins = <0x00000240
0x00000610 0x00000000 0x00000003 0x00000000 0x80000000 0x0000020c
0x000005dc 0x000007e4 0x00000002 0x00000000 0x80000000>;
                                        };
                                };
                                flexcan2 {
                                        flexcan2grp-1 {
                                                fsl,pins = <0x00000218
0x000005e8 0x00000000 0x00000000 0x00000000 0x80000000 0x0000021c
0x000005ec 0x000007e8 0x00000000 0x00000000 0x80000000>;
                                        };
                                };
                                gpmi-nand {
                                        gpmi-nand-1 {
                                                fsl,pins = *
0x18003a68 [0x00000198];
                                        };
                                        gpmi-nand-2 {
                                                fsl,pins = *
0x18003c20 [0x00000180];
                                                linux,phandle = <0x00000004>;
                                                phandle = <0x00000004>;
                                        };
                                };
                                hdmi_hdcp {
                                        hdmihdcpgrp-1 {
                                                fsl,pins = <0x00000210
0x000005e0 0x00000890 0x00000002 0x00000001 0x4001b8b1 0x00000214
0x000005e4 0x00000894 0x00000002 0x00000001 0x4001b8b1>;
                                        };
                                        hdmihdcpgrp-2 {
                                                fsl,pins = <0x0000008c
0x000003a0 0x00000890 0x00000004 0x00000000 0x4001b8b1 0x00000090
0x000003a4 0x00000894 0x00000004 0x00000000 0x4001b8b1>;
                                        };
                                        hdmihdcpgrp-3 {
                                                fsl,pins = <0x0000008c
0x000003a0 0x00000890 0x00000004 0x00000000 0x4001b8b1 0x00000214
0x000005e4 0x00000894 0x00000002 0x00000001 0x4001b8b1>;
                                        };
                                };
                                hdmi_cec {
                                        hdmicecgrp-1 {
                                                fsl,pins = <0x00000088
0x0000039c 0x0000088c 0x00000006 0x00000000 0x0001f8b0>;
                                        };
                                        hdmicecgrp-2 {
                                                fsl,pins = <0x0000020c
0x000005dc 0x0000088c 0x00000006 0x00000001 0x0001f8b0>;
                                        };
                                };
                                i2c1 {
                                        i2c1grp-1 {
                                                fsl,pins = <0x000000a4
0x000003b8 0x00000898 0x00000006 0x00000000 0x4001b8b1 0x000000c4
0x000003d8 0x0000089c 0x00000001 0x00000000 0x4001b8b1>;
                                                linux,phandle = <0x0000001a>;
                                                phandle = <0x0000001a>;
                                        };
                                        i2c1grp-2 {
                                                fsl,pins = <0x00000278
0x00000648 0x0000089c 0x00000004 0x00000001 0x4001b8b1 0x0000027c
0x0000064c 0x00000898 0x00000004 0x00000001 0x4001b8b1>;
                                        };
                                };
                                i2c2 {
                                        i2c2grp-1 {
                                                fsl,pins = <0x0000008c
0x000003a0 0x000008a0 0x00000006 0x00000000 0x4001b8b1 0x00000090
0x000003a4 0x000008a4 0x00000006 0x00000000 0x4001b8b1>;
                                        };
                                        i2c2grp-2 {
                                                fsl,pins = <0x00000210
0x000005e0 0x000008a0 0x00000004 0x00000001 0x4001b8b1 0x00000214
0x000005e4 0x000008a4 0x00000004 0x00000001 0x4001b8b1>;
                                                linux,phandle = <0x0000001b>;
                                                phandle = <0x0000001b>;
                                        };
                                        i2c2grp-3 {
                                                fsl,pins = <0x0000008c
0x000003a0 0x000008a0 0x00000006 0x00000000 0x4001b8b1 0x00000214
0x000005e4 0x000008a4 0x00000004 0x00000001 0x4001b8b1>;
                                        };
                                };
                                i2c3 {
                                        i2c3grp-1 {
                                                fsl,pins = <0x00000094
0x000003a8 0x000008a8 0x00000006 0x00000000 0x4001b8b1 0x00000098
0x000003ac 0x000008ac 0x00000006 0x00000000 0x4001b8b1>;
                                        };
                                        i2c3grp-2 {
                                                fsl,pins = <0x0000022c
0x000005fc 0x000008a8 0x00000002 0x00000001 0x4001b8b1 0x00000230
0x00000600 0x000008ac 0x00000002 0x00000001 0x4001b8b1>;
                                                linux,phandle = <0x0000001c>;
                                                phandle = <0x0000001c>;
                                        };
                                        i2c3grp-3 {
                                                fsl,pins = <0x0000023c
0x0000060c 0x000008a8 0x00000006 0x00000002 0x4001b8b1 0x00000248
0x00000618 0x000008ac 0x00000006 0x00000002 0x4001b8b1>;
                                        };
                                        i2c3grp-4 {
                                                fsl,pins = <0x0000022c
0x000005fc 0x000008a8 0x00000002 0x00000001 0x4001b8b1 0x00000098
0x000003ac 0x000008ac 0x00000006 0x00000000 0x4001b8b1>;
                                        };
                                };
                                ipu1 {
                                        ipu1grp-1 {
                                                fsl,pins = *
0x180042ec [0x000002b8];
                                        };
                                        ipu1grp-2 {
                                                fsl,pins = *
0x180045c4 [0x00000120];
                                        };
                                        ipu1grp-3 {
                                                fsl,pins = *
0x18004704 [0x000001c8];
                                        };
                                };
                                mlb {
                                        mlbgrp-1 {
                                                fsl,pins = *
0x180048f8 [0x00000048];
                                        };
                                        mlbgrp-2 {
                                                fsl,pins = *
0x18004960 [0x00000048];
                                        };
                                };
                                pwm0 {
                                        pwm0grp-1 {
                                                fsl,pins = <0x00000344
0x0000072c 0x00000000 0x00000003 0x00000000 0x0001b0b1>;
                                        };
                                };
                                pwm3 {
                                        pwm3grp-1 {
                                                fsl,pins = <0x00000320
0x00000708 0x00000000 0x00000002 0x00000000 0x0001b0b1>;
                                        };
                                };
                                spdif {
                                        spdifgrp-1 {
                                                fsl,pins = <0x00000210
0x000005e0 0x00000914 0x00000006 0x00000002 0x0001b0b0>;
                                        };
                                        spdifgrp-2 {
                                                fsl,pins = <0x00000248
0x00000618 0x00000914 0x00000004 0x00000003 0x0001b0b0 0x0000024c
0x0000061c 0x00000000 0x00000004 0x00000000 0x0001b0b0>;
                                        };
                                        spdifgrp-3 {
                                                fsl,pins = <0x000001e4
0x000004f8 0x00000000 0x00000003 0x00000000 0x0001b0b0>;
                                        };
                                };
                                uart1 {
                                        uart1grp-1 {
                                                fsl,pins = <0x00000280
0x00000650 0x00000000 0x00000003 0x00000000 0x0001b0b1 0x00000284
0x00000654 0x00000920 0x00000003 0x00000001 0x0001b0b1>;
                                        };
                                        uart1grp-2 {
                                                fsl,pins = <0x000002a8
0x00000690 0x00000000 0x00000001 0x00000000 0x0001b0b1 0x000002ac
0x00000694 0x00000920 0x00000001 0x00000003 0x0001b0b1>;
                                                linux,phandle = <0x00000007>;
                                                phandle = <0x00000007>;
                                        };
                                };
                                uart2 {
                                        uart2grp-1 {
                                                fsl,pins = <0x000000bc
0x000003d0 0x00000000 0x00000004 0x00000000 0x0001b0b1 0x000000c0
0x000003d4 0x00000928 0x00000004 0x00000001 0x0001b0b1>;
                                        };
                                        uart2grp-2 {
                                                fsl,pins = *
0x18004c58 [0x00000060];
                                        };
                                        uart2grp-3 {
                                                fsl,pins = <0x00000338
0x00000720 0x00000000 0x00000002 0x00000000 0x0001b0b1 0x0000032c
0x00000714 0x00000928 0x00000002 0x00000006 0x0001b0b1>;
                                                linux,phandle = <0x0000001f>;
                                                phandle = <0x0000001f>;
                                        };
                                };
                                uart3 {
                                        uart3grp-1 {
                                                fsl,pins = *
0x18004d58 [0x00000060];
                                        };
                                        uart3grp-2 {
                                                fsl,pins = *
0x18004dd8 [0x00000060];
                                        };
                                        uart3grp-3 {
                                                fsl,pins = <0x000000b4
0x000003c8 0x00000000 0x00000002 0x00000000 0x0001b0b1 0x000000b8
0x000003cc 0x00000930 0x00000002 0x00000001 0x0001b0b1>;
                                        };
                                };
                                uart4 {
                                        uart4grp-1 {
                                                fsl,pins = <0x000001f8
0x000005c8 0x00000000 0x00000004 0x00000000 0x0001b0b1 0x000001fc
0x000005cc 0x00000938 0x00000004 0x00000001 0x0001b0b1>;
                                        };
                                };
                                uart5 {
                                        uart5grp-1 {
                                                fsl,pins = <0x00000200
0x000005d0 0x00000000 0x00000004 0x00000000 0x0001b0b1 0x00000204
0x000005d4 0x00000940 0x00000004 0x00000001 0x0001b0b1>;
                                                linux,phandle = <0x00000020>;
                                                phandle = <0x00000020>;
                                        };
                                };
                                usbotg {
                                        usbotggrp-1 {
                                                fsl,pins = <0x00000224
0x000005f4 0x00000004 0x00000003 0xff0d0101 0x00017059>;
                                                linux,phandle = <0x00000013>;
                                                phandle = <0x00000013>;
                                        };
                                        usbotggrp-2 {
                                                fsl,pins = <0x000001d8
0x000004ec 0x00000004 0x00000000 0xff0d0100 0x00017059>;
                                        };
                                };
                                usbh2 {
                                        usbh2grp-1 {
                                                fsl,pins = <0x00000058
0x0000036c 0x00000000 0x00000000 0x00000000 0x40013030 0x00000074
0x00000388 0x00000000 0x00000000 0x00000000 0x40013030>;
                                        };
                                        usbh2grp-2 {
                                                fsl,pins = <0x00000074
0x00000388 0x00000000 0x00000000 0x00000000 0x40017030>;
                                        };
                                };
                                usbh3 {
                                        usbh3grp-1 {
                                                fsl,pins = <0x0000006c
0x00000380 0x00000000 0x00000000 0x00000000 0x40013030 0x00000084
0x00000398 0x00000000 0x00000000 0x00000000 0x40013030>;
                                        };
                                        usbh3grp-2 {
                                                fsl,pins = <0x00000084
0x00000398 0x00000000 0x00000000 0x00000000 0x40017030>;
                                        };
                                };
                                usdhc1 {
                                        usdhc1grp-1 {
                                                fsl,pins = *
0x18005168 [0x000000f0];
                                        };
                                        usdhc1grp-2 {
                                                fsl,pins = *
0x18005278 [0x00000090];
                                        };
                                };
                                usdhc2 {
                                        usdhc2grp-1 {
                                                fsl,pins = *
0x18005338 [0x000000f0];
                                        };
                                        usdhc2grp-2 {
                                                fsl,pins = *
0x18005448 [0x00000090];
                                        };
                                };
                                usdhc3 {
                                        usdhc3grp-1 {
                                                fsl,pins = *
0x18005508 [0x000000f0];
                                        };
                                        usdhc3grp-1-100mhz {
                                                fsl,pins = *
0x18005620 [0x000000f0];
                                        };
                                        usdhc3grp-1-200mhz {
                                                fsl,pins = *
0x18005738 [0x000000f0];
                                        };
                                        usdhc3grp-2 {
                                                fsl,pins = *
0x18005848 [0x00000090];
                                                linux,phandle = <0x00000017>;
                                                phandle = <0x00000017>;
                                        };
                                };
                                usdhc4 {
                                        usdhc4grp-1 {
                                                fsl,pins = *
0x18005928 [0x000000f0];
                                        };
                                        usdhc4grp-2 {
                                                fsl,pins = *
0x18005a38 [0x00000090];
                                        };
                                };
                                weim {
                                        weim_cs0grp-1 {
                                                fsl,pins = <0x000000f8
0x0000040c 0x00000000 0x00000000 0x00000000 0x0000b0b1>;
                                        };
                                        weim_norgrp-1 {
                                                fsl,pins = *
0x18005b38 [0x00000408];
                                        };
                                };
                                ipu2 {
                                        ipu2grp-1 {
                                                fsl,pins = *
0x18005f70 [0x000002b8];
                                        };
                                };
                                hog {
                                        hoggrp {
                                                fsl,pins = *
0x18006250 [0x00000138];
                                                linux,phandle = <0x0000000b>;
                                                phandle = <0x0000000b>;
                                        };
                                };
                        };
                        ldb at 020e0008 {
                                #address-cells = <0x00000001>;
                                #size-cells = <0x00000000>;
                                compatible = "fsl,imx6q-ldb", "fsl,imx53-ldb";
                                gpr = <0x0000000c>;
                                status = "okay";
                                clocks = <0x00000002 0x00000021
0x00000002 0x00000022 0x00000002 0x00000027 0x00000002 0x00000028
0x00000002 0x00000029 0x00000002 0x0000002a 0x00000002 0x00000087
0x00000002 0x00000088>;
                                clock-names = "di0_pll", "di1_pll",
"di0_sel", "di1_sel", "di2_sel", "di3_sel", "di0", "di1";
                                lvds-channel at 0 {
                                        reg = <0x00000000>;
                                        status = "disabled";
                                        crtcs = <0x0000000d 0x00000000
0x0000000d 0x00000001 0x0000000e 0x00000000 0x0000000e 0x00000001>;
                                };
                                lvds-channel at 1 {
                                        reg = <0x00000001>;
                                        status = "okay";
                                        crtcs = <0x0000000d 0x00000000
0x0000000d 0x00000001 0x0000000e 0x00000000 0x0000000e 0x00000001>;
                                        fsl,data-mapping = "spwg";
                                        fsl,data-width = <0x00000012>;
                                        display-timings {
                                                native-mode = <0x0000000f>;
                                                hsd100pxn1 {

clock-frequency = <0x03dfd240>;
                                                        hactive = <0x00000400>;
                                                        vactive = <0x00000300>;
                                                        hback-porch =
<0x000000dc>;
                                                        hfront-porch =
<0x00000028>;
                                                        vback-porch =
<0x00000015>;
                                                        vfront-porch =
<0x00000007>;
                                                        hsync-len =
<0x0000003c>;
                                                        vsync-len =
<0x0000000a>;
                                                        linux,phandle
= <0x0000000f>;
                                                        phandle = <0x0000000f>;
                                                };
                                        };
                                };
                        };
                        dcic at 020e4000 {
                                reg = <0x020e4000 0x00004000>;
                                interrupts = <0x00000000 0x0000007c 0x00000004>;
                        };
                        dcic at 020e8000 {
                                reg = <0x020e8000 0x00004000>;
                                interrupts = <0x00000000 0x0000007d 0x00000004>;
                        };
                        sdma at 020ec000 {
                                compatible = "fsl,imx6q-sdma", "fsl,imx35-sdma";
                                reg = <0x020ec000 0x00004000>;
                                interrupts = <0x00000000 0x00000002 0x00000004>;
                                clocks = <0x00000002 0x0000009b
0x00000002 0x0000009b>;
                                clock-names = "ipg", "ahb";
                                #dma-cells = <0x00000003>;
                                fsl,sdma-ram-script-name =
"imx/sdma/sdma-imx6q.bin";
                                linux,phandle = <0x00000006>;
                                phandle = <0x00000006>;
                        };
                };
                aips-bus at 02100000 {
                        compatible = "fsl,aips-bus", "simple-bus";
                        #address-cells = <0x00000001>;
                        #size-cells = <0x00000001>;
                        reg = <0x02100000 0x00100000>;
                        ranges;
                        caam at 02100000 {
                                reg = <0x02100000 0x00040000>;
                                interrupts = <0x00000000 0x00000069
0x00000004 0x00000000 0x0000006a 0x00000004>;
                        };
                        aipstz at 0217c000 {
                                reg = <0x0217c000 0x00004000>;
                        };
                        usb at 02184000 {
                                compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
                                reg = <0x02184000 0x00000200>;
                                interrupts = <0x00000000 0x0000002b 0x00000004>;
                                clocks = <0x00000002 0x000000a2>;
                                fsl,usbphy = <0x00000010>;
                                fsl,usbmisc = <0x00000011 0x00000000>;
                                status = "okay";
                                vbus-supply = <0x00000012>;
                                pinctrl-names = "default";
                                pinctrl-0 = <0x00000013>;
                                disable-over-current;
                        };
                        usb at 02184200 {
                                compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
                                reg = <0x02184200 0x00000200>;
                                interrupts = <0x00000000 0x00000028 0x00000004>;
                                clocks = <0x00000002 0x000000a2>;
                                fsl,usbphy = <0x00000014>;
                                fsl,usbmisc = <0x00000011 0x00000001>;
                                status = "okay";
                                vbus-supply = <0x00000015>;
                        };
                        usb at 02184400 {
                                compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
                                reg = <0x02184400 0x00000200>;
                                interrupts = <0x00000000 0x00000029 0x00000004>;
                                clocks = <0x00000002 0x000000a2>;
                                fsl,usbmisc = <0x00000011 0x00000002>;
                                status = "disabled";
                        };
                        usb at 02184600 {
                                compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
                                reg = <0x02184600 0x00000200>;
                                interrupts = <0x00000000 0x0000002a 0x00000004>;
                                clocks = <0x00000002 0x000000a2>;
                                fsl,usbmisc = <0x00000011 0x00000003>;
                                status = "disabled";
                        };
                        usbmisc at 02184800 {
                                #index-cells = <0x00000001>;
                                compatible = "fsl,imx6q-usbmisc";
                                reg = <0x02184800 0x00000200>;
                                clocks = <0x00000002 0x000000a2>;
                                linux,phandle = <0x00000011>;
                                phandle = <0x00000011>;
                        };
                        ethernet at 02188000 {
                                compatible = "fsl,imx6q-fec";
                                reg = <0x02188000 0x00004000>;
                                interrupts = <0x00000000 0x00000076
0x00000004 0x00000000 0x00000077 0x00000004>;
                                clocks = <0x00000002 0x00000075
0x00000002 0x00000075 0x00000002 0x000000be>;
                                clock-names = "ipg", "ahb", "ptp";
                                status = "okay";
                                pinctrl-names = "default";
                                pinctrl-0 = <0x00000016>;
                                phy-mode = "rgmii";
                                phy-reset-gpios = <0x00000005
0x0000001e 0x00000000>;
                        };
                        mlb at 0218c000 {
                                reg = <0x0218c000 0x00004000>;
                                interrupts = <0x00000000 0x00000035
0x00000004 0x00000000 0x00000075 0x00000004 0x00000000 0x0000007e
0x00000004>;
                        };
                        usdhc at 02190000 {
                                compatible = "fsl,imx6q-usdhc";
                                reg = <0x02190000 0x00004000>;
                                interrupts = <0x00000000 0x00000016 0x00000004>;
                                clocks = <0x00000002 0x000000a3
0x00000002 0x000000a3 0x00000002 0x000000a3>;
                                clock-names = "ipg", "ahb", "per";
                                bus-width = <0x00000004>;
                                status = "disabled";
                        };
                        usdhc at 02194000 {
                                compatible = "fsl,imx6q-usdhc";
                                reg = <0x02194000 0x00004000>;
                                interrupts = <0x00000000 0x00000017 0x00000004>;
                                clocks = <0x00000002 0x000000a4
0x00000002 0x000000a4 0x00000002 0x000000a4>;
                                clock-names = "ipg", "ahb", "per";
                                bus-width = <0x00000004>;
                                status = "disabled";
                        };
                        usdhc at 02198000 {
                                compatible = "fsl,imx6q-usdhc";
                                reg = <0x02198000 0x00004000>;
                                interrupts = <0x00000000 0x00000018 0x00000004>;
                                clocks = <0x00000002 0x000000a5
0x00000002 0x000000a5 0x00000002 0x000000a5>;
                                clock-names = "ipg", "ahb", "per";
                                bus-width = <0x00000004>;
                                status = "okay";
                                pinctrl-names = "default";
                                pinctrl-0 = <0x00000017>;
                                cd-gpios = <0x00000018 0x00000000 0x00000000>;
                                vmmc-supply = <0x00000019>;
                        };
                        usdhc at 0219c000 {
                                compatible = "fsl,imx6q-usdhc";
                                reg = <0x0219c000 0x00004000>;
                                interrupts = <0x00000000 0x00000019 0x00000004>;
                                clocks = <0x00000002 0x000000a6
0x00000002 0x000000a6 0x00000002 0x000000a6>;
                                clock-names = "ipg", "ahb", "per";
                                bus-width = <0x00000004>;
                                status = "disabled";
                        };
                        i2c at 021a0000 {
                                #address-cells = <0x00000001>;
                                #size-cells = <0x00000000>;
                                compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
                                reg = <0x021a0000 0x00004000>;
                                interrupts = <0x00000000 0x00000024 0x00000004>;
                                clocks = <0x00000002 0x0000007d>;
                                status = "okay";
                                clock-frequency = <0x000186a0>;
                                pinctrl-names = "default";
                                pinctrl-0 = <0x0000001a>;
                                eeprom at 50 {
                                        compatible = "atmel,24c02";
                                        reg = <0x00000050>;
                                        pagesize = <0x00000010>;
                                };
                                eeprom at 51 {
                                        compatible = "atmel,24c02";
                                        reg = <0x00000051>;
                                        pagesize = <0x00000010>;
                                };
                                eeprom at 52 {
                                        compatible = "atmel,24c02";
                                        reg = <0x00000052>;
                                        pagesize = <0x00000010>;
                                };
                                eeprom at 53 {
                                        compatible = "atmel,24c02";
                                        reg = <0x00000053>;
                                        pagesize = <0x00000010>;
                                };
                                pca9555 at 23 {
                                        compatible = "nxp,pca9555";
                                        reg = <0x00000023>;
                                        gpio-controller;
                                        #gpio-cells = <0x00000002>;
                                };
                                gsc at 29 {
                                        compatible = "gw,gsp";
                                        reg = <0x00000029>;
                                };
                                ds1672 at 68 {
                                        compatible = "dallas,ds1672";
                                        reg = <0x00000068>;
                                };
                        };
                        i2c at 021a4000 {
                                #address-cells = <0x00000001>;
                                #size-cells = <0x00000000>;
                                compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
                                reg = <0x021a4000 0x00004000>;
                                interrupts = <0x00000000 0x00000025 0x00000004>;
                                clocks = <0x00000002 0x0000007e>;
                                status = "okay";
                                clock-frequency = <0x000186a0>;
                                pinctrl-names = "default";
                                pinctrl-0 = <0x0000001b>;
                                pfuze100 at 08 {
                                        compatible = "fsl,pfuze100";
                                        reg = <0x00000008>;
                                        regulators {
                                                sw1ab {

regulator-min-microvolt = <0x000493e0>;

regulator-max-microvolt = <0x001c9c38>;
                                                        regulator-boot-on;
                                                        regulator-always-on;

regulator-ramp-delay = <0x0000186a>;
                                                };
                                                sw1c {

regulator-min-microvolt = <0x000493e0>;

regulator-max-microvolt = <0x001c9c38>;
                                                        regulator-boot-on;
                                                        regulator-always-on;

regulator-ramp-delay = <0x0000186a>;
                                                };
                                                sw2 {

regulator-min-microvolt = "", "5";

regulator-max-microvolt = <0x003c45b0>;
                                                        regulator-boot-on;
                                                        regulator-always-on;
                                                };
                                                sw3a {

regulator-min-microvolt = <0x00061a80>;

regulator-max-microvolt = <0x001e22d8>;
                                                        regulator-boot-on;
                                                        regulator-always-on;
                                                };
                                                sw3b {

regulator-min-microvolt = <0x00061a80>;

regulator-max-microvolt = <0x001e22d8>;
                                                        regulator-boot-on;
                                                        regulator-always-on;
                                                };
                                                sw4 {

regulator-min-microvolt = "", "5";

regulator-max-microvolt = <0x00325aa0>;
                                                        linux,phandle
= <0x0000001d>;
                                                        phandle = <0x0000001d>;
                                                };
                                                swbst {

regulator-min-microvolt = <0x004c4b40>;

regulator-max-microvolt = <0x004e9530>;
                                                };
                                                vsnvs {

regulator-min-microvolt = <0x000f4240>;

regulator-max-microvolt = <0x002dc6c0>;
                                                        regulator-boot-on;
                                                        regulator-always-on;
                                                };
                                                vrefddr {
                                                        regulator-boot-on;
                                                        regulator-always-on;
                                                };
                                                vgen1 {

regulator-min-microvolt = "", "5";

regulator-max-microvolt = <0x0017a6b0>;
                                                };
                                                vgen2 {

regulator-min-microvolt = "", "5";

regulator-max-microvolt = <0x0017a6b0>;
                                                };
                                                vgen3 {

regulator-min-microvolt = <0x001b7740>;

regulator-max-microvolt = <0x00325aa0>;
                                                };
                                                vgen4 {

regulator-min-microvolt = <0x001b7740>;

regulator-max-microvolt = <0x00325aa0>;
                                                        regulator-always-on;
                                                };
                                                vgen5 {

regulator-min-microvolt = <0x001b7740>;

regulator-max-microvolt = <0x00325aa0>;
                                                        regulator-always-on;
                                                };
                                                vgen6 {

regulator-min-microvolt = <0x001b7740>;

regulator-max-microvolt = <0x00325aa0>;
                                                        regulator-always-on;
                                                };
                                        };
                                };
                                pex8609 at 3f {
                                        compatible = "plx,pex8609";
                                        reg = <0x0000003f>;
                                };
                                si52147 at 6b {
                                        compatible = "sil,si52147";
                                        reg = <0x0000006b>;
                                };
                        };
                        i2c at 021a8000 {
                                #address-cells = <0x00000001>;
                                #size-cells = <0x00000000>;
                                compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
                                reg = <0x021a8000 0x00004000>;
                                interrupts = <0x00000000 0x00000026 0x00000004>;
                                clocks = <0x00000002 0x0000007f>;
                                status = "okay";
                                clock-frequency = <0x000186a0>;
                                pinctrl-names = "default";
                                pinctrl-0 = <0x0000001c>;
                                fxos8700 at 1e {
                                        compatible = "fsl,fxos8700";
                                        reg = <0x0000001e>;
                                };
                                sgtl5000 at 0a {
                                        compatible = "fsl,sgtl5000";
                                        reg = <0x0000000a>;
                                        clocks = <0x00000002 0x000000c9>;
                                        VDDA-supply = <0x0000001d>;
                                        VDDIO-supply = <0x00000019>;
                                        linux,phandle = <0x00000029>;
                                        phandle = <0x00000029>;
                                };
                                adv7611 at 4c {
                                        compatible = "adi,adv7611";
                                        reg = <0x0000004c>;
                                };
                                egalax_ts at 04 {
                                        compatible = "eeti,egalax_ts";
                                        reg = <0x00000004>;
                                        interrupt-parent = <0x00000018>;
                                        interrupts = <0x0000000c 0x00000002>;
                                        wakeup-gpios = <0x00000018
0x0000000c 0x00000000>;
                                };
                                adv7393 at 2a {
                                        compatible = "adi,adv7393";
                                        reg = <0x0000002a>;
                                };
                                adv7180 at 20 {
                                        compatible = "adi,adv7180";
                                        reg = <0x00000020>;
                                };
                        };
                        romcp at 021ac000 {
                                reg = <0x021ac000 0x00004000>;
                        };
                        mmdc at 021b0000 {
                                compatible = "fsl,imx6q-mmdc";
                                reg = <0x021b0000 0x00004000>;
                        };
                        mmdc at 021b4000 {
                                reg = <0x021b4000 0x00004000>;
                        };
                        weim at 021b8000 {
                                compatible = "fsl,imx6q-weim";
                                reg = <0x021b8000 0x00004000>;
                                interrupts = <0x00000000 0x0000000e 0x00000004>;
                                clocks = <0x00000002 0x000000c4>;
                        };
                        ocotp at 021bc000 {
                                compatible = "fsl,imx6q-ocotp", "syscon";
                                reg = <0x021bc000 0x00004000>;
                                linux,phandle = <0x0000000a>;
                                phandle = <0x0000000a>;
                        };
                        tzasc at 021d0000 {
                                reg = <0x021d0000 0x00004000>;
                                interrupts = <0x00000000 0x0000006c 0x00000004>;
                        };
                        tzasc at 021d4000 {
                                reg = <0x021d4000 0x00004000>;
                                interrupts = <0x00000000 0x0000006d 0x00000004>;
                        };
                        audmux at 021d8000 {
                                compatible = "fsl,imx6q-audmux",
"fsl,imx31-audmux";
                                reg = <0x021d8000 0x00004000>;
                                status = "okay";
                                pinctrl-names = "default";
                                pinctrl-0 = <0x0000001e>;
                        };
                        mipi at 021dc000 {
                                reg = <0x021dc000 0x00004000>;
                        };
                        mipi at 021e0000 {
                                reg = <0x021e0000 0x00004000>;
                        };
                        vdoa at 021e4000 {
                                reg = <0x021e4000 0x00004000>;
                                interrupts = <0x00000000 0x00000012 0x00000004>;
                        };
                        serial at 021e8000 {
                                compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
                                reg = <0x021e8000 0x00004000>;
                                interrupts = <0x00000000 0x0000001b 0x00000004>;
                                clocks = <0x00000002 0x000000a0
0x00000002 0x000000a1>;
                                clock-names = "ipg", "per";
                                dmas = <0x00000006 0x0000001b
0x00000004 0x00000000 0x00000006 0x0000001c 0x00000004 0x00000000>;
                                dma-names = "rx", "tx";
                                status = "okay";
                                pinctrl-names = "default";
                                pinctrl-0 = <0x0000001f>;
                        };
                        serial at 021f4000 {
                                compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
                                reg = <0x021f4000 0x00004000>;
                                interrupts = <0x00000000 0x0000001e 0x00000004>;
                                clocks = <0x00000002 0x000000a0
0x00000002 0x000000a1>;
                                clock-names = "ipg", "per";
                                dmas = <0x00000006 0x00000021
0x00000004 0x00000000 0x00000006 0x00000022 0x00000004 0x00000000>;
                                dma-names = "rx", "tx";
                                status = "okay";
                                pinctrl-names = "default";
                                pinctrl-0 = <0x00000020>;
                        };
                };
                ipu at 02400000 {
                        #crtc-cells = <0x00000001>;
                        compatible = "fsl,imx6q-ipu";
                        reg = <0x02400000 0x00400000>;
                        interrupts = <0x00000000 0x00000006 0x00000004
0x00000000 0x00000005 0x00000004>;
                        clocks = <0x00000002 0x00000082 0x00000002
0x00000083 0x00000002 0x00000084>;
                        clock-names = "bus", "di0", "di1";
                        resets = <0x00000021 0x00000002>;
                        linux,phandle = <0x0000000d>;
                        phandle = <0x0000000d>;
                };
                sram at 00900000 {
                        compatible = "mmio-sram";
                        reg = <0x00900000 0x00040000>;
                        clocks = <0x00000002 0x0000008e>;
                };
                sata at 02200000 {
                        compatible = "fsl,imx6q-ahci";
                        reg = <0x02200000 0x00004000>;
                        interrupts = <0x00000000 0x00000027 0x00000004>;
                        clocks = <0x00000002 0x0000009a 0x00000002
0x000000bb 0x00000002 0x00000069>;
                        clock-names = "sata", "sata_ref", "ahb";
                        status = "okay";
                };
                ipu at 02800000 {
                        #crtc-cells = <0x00000001>;
                        compatible = "fsl,imx6q-ipu";
                        reg = <0x02800000 0x00400000>;
                        interrupts = <0x00000000 0x00000008 0x00000004
0x00000000 0x00000007 0x00000004>;
                        clocks = <0x00000002 0x00000085 0x00000002
0x00000086 0x00000002 0x00000089>;
                        clock-names = "bus", "di0", "di1";
                        resets = <0x00000021 0x00000004>;
                        linux,phandle = <0x0000000e>;
                        phandle = <0x0000000e>;
                };
        };
        cpus {
                #address-cells = <0x00000001>;
                #size-cells = <0x00000000>;
                cpu at 0 {
                        compatible = "arm,cortex-a9";
                        device_type = "cpu";
                        reg = <0x00000000>;
                        next-level-cache = <0x00000022>;
                        operating-points = <0x00124f80 0x00137478
0x000f32a0 0x001312d0 0x000c15c0 0x00118c30 0x00060ae0 0x000e7ef0>;
                        clock-latency = <0x0000ee6c>;
                        clocks = <0x00000002 0x00000068 0x00000002
0x00000006 0x00000002 0x00000010 0x00000002 0x00000011 0x00000002
0x000000aa>;
                        clock-names = "arm", "pll2_pfd2_396m", "step",
"pll1_sw", "pll1_sys";
                        arm-supply = <0x00000023>;
                        pu-supply = <0x00000024>;
                        soc-supply = <0x00000025>;
                };
                cpu at 1 {
                        compatible = "arm,cortex-a9";
                        device_type = "cpu";
                        reg = <0x00000001>;
                        next-level-cache = <0x00000022>;
                };
                cpu at 2 {
                        compatible = "arm,cortex-a9";
                        device_type = "cpu";
                        reg = <0x00000002>;
                        next-level-cache = <0x00000022>;
                };
                cpu at 3 {
                        compatible = "arm,cortex-a9";
                        device_type = "cpu";
                        reg = <0x00000003>;
                        next-level-cache = <0x00000022>;
                };
        };
        leds {
                compatible = "gpio-leds";
                user1 {
                        label = "user1";
                        gpios = <0x00000026 0x00000006 0x00000000>;
                        default-state = "on";
                        linux,default-trigger = "heartbeat";
                };
                user2 {
                        label = "user2";
                        gpios = <0x00000026 0x00000007 0x00000000>;
                        default-state = "off";
                };
                user3 {
                        label = "user3";
                        gpios = <0x00000026 0x0000000f 0x00000001>;
                        default-state = "off";
                };
        };
        pps {
                compatible = "pps-gpio";
                gpios = <0x00000005 0x0000001a 0x00000000>;
                status = "okay";
        };
        regulators {
                compatible = "simple-bus";
                1p0v {
                        compatible = "regulator-fixed";
                        regulator-name = "1P0V";
                        regulator-min-microvolt = <0x000f4240>;
                        regulator-max-microvolt = <0x000f4240>;
                        regulator-always-on;
                };
                3p3v {
                        compatible = "regulator-fixed";
                        regulator-name = "3P3V";
                        regulator-min-microvolt = <0x00325aa0>;
                        regulator-max-microvolt = <0x00325aa0>;
                        regulator-always-on;
                        linux,phandle = <0x00000019>;
                        phandle = <0x00000019>;
                };
                usb_h1_vbus {
                        compatible = "regulator-fixed";
                        regulator-name = "usb_h1_vbus";
                        regulator-min-microvolt = <0x004c4b40>;
                        regulator-max-microvolt = <0x004c4b40>;
                        regulator-always-on;
                        linux,phandle = <0x00000015>;
                        phandle = <0x00000015>;
                };
                usb_otg_vbus {
                        compatible = "regulator-fixed";
                        regulator-name = "usb_otg_vbus";
                        regulator-min-microvolt = <0x004c4b40>;
                        regulator-max-microvolt = <0x004c4b40>;
                        gpio = <0x00000027 0x00000016 0x00000000>;
                        enable-active-high;
                        linux,phandle = <0x00000012>;
                        phandle = <0x00000012>;
                };
        };
        sound {
                compatible = "fsl,imx6q-sabrelite-sgtl5000",
"fsl,imx-audio-sgtl5000";
                model = "imx6q-sabrelite-sgtl5000";
                ssi-controller = <0x00000028>;
                audio-codec = <0x00000029>;
                audio-routing = "MIC_IN", "Mic Jack", "Mic Jack", "Mic
Bias", "Headphone Jack", "HP_OUT";
                mux-int-port = <0x00000001>;
                mux-ext-port = <0x00000004>;
        };
};


Tim

>
> Jason



More information about the linux-arm-kernel mailing list