This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3352: MMC2 configuration issue

Part Number: AM3352
Other Parts Discussed in Thread: WL1837, WL1835, WL1837MOD

Hi Experts,

A customer has been developing AM3352 with WL1837MODGIM0CR.
They are testing the system as follows:
PC(RealTime Tuning Tool)COM1―UART5(AM3352)-MMC2(AM3352)-WIFI(WL1837)

With this system, they have a problem that the MMC2 (AM3352) is not recognized as a SDIO.

They would like to know which files they have to modify.
I have received these files below from the customer.

am33xx.dtsi
am335x-evm.dts
.config(tisdk_am335x-evm_defconfig)
and log file.

I could send the files locally if you need. So please let me know.
Thank you so much in advance for your skillful support.

Best regards,
Hitoshi

  • Hi,
    You query has been assigned to a TI engineer. Please note that response may be delayed due to Christmas and New Year holidays.
  • Sugawara-san,

    Hitoshi Sugawara said:

    A customer has been developing AM3352 with WL1837MODGIM0CR.
    They are testing the system as follows:
    PC(RealTime Tuning Tool)COM1―UART5(AM3352)-MMC2(AM3352)-WIFI(WL1837)

    With this system, they have a problem that the MMC2 (AM3352) is not recognized as a SDIO.

    They would like to know which files they have to modify.

    There is actually a readily available design called BeagleBoneBlack Wireless that has an WL1835 WiFi module connected to MMC2 of an AM335x device which seems pretty similar to the system you are describing here.
    https://beagleboard.org/black-wireless

    Hardware Design Files
    https://github.com/beagleboard/beaglebone-black-wireless

    Kernel 4.19 Device Tree File (includes description of WL1835 connected to MMC2)
    https://github.com/beagleboard/linux/blob/4.19/arch/arm/boot/dts/am335x-boneblack-wireless.dts

    And this is the associated "defconfig" for building the Kernel for BeagleBoneBlacks, including the wireless version
    https://github.com/beagleboard/linux/blob/4.19/arch/arm/configs/bb.org_defconfig

    I suggest you start from this Kernel snapshot (DTS, config) to see if you can establish a known-good reference point, and then investigate why the customer system does not work.

    Regards, Andreas

  • Hi Andreas,

    Thank you for your quick reply.
    Let me dispatch the suggestion to the customer.
    Will keep you updated.

    Best regards,
    Hitoshi

  • Hi Andreas,

    Thank you for the BeagleBoneBlack board use case examples.
    According to the DTS configuration, the customer thinks their program seems correct.
    There might be any other portion has  issues.

    For further investigation, could you please help these questions as follows:

    1.MMC clock setting
       Is it set in the file /include/ "am33xx-clocks.dtsi which is included by DTS?

    2.MMC register look up
       The look up function was developed and checked the address.
        The addresses for UART and RTC registers were able to be read correctly.
        However, the address for MMC was not able to be read and it is Segmentation fault.
        If there are any points where must be fixed, please let us know.

        ( readl_relaxed( ioremap( addr, REG_DRV_REMAP_SIZE ) ) )

     ( readw_relaxed( ioremap( addr, REG_DRV_REMAP_SIZE ) ) )

      (UART register look up: OK)

        root@am335x-evm:/# reg-read32 44e09000

         000000e1

       (MMC register look up : NG)

         Segmentation fault

         root@am335x-evm:/# reg-read32 481d8000

         [ 578.577923] Unhandled fault: external abort on non-linefetch (0x1028) at 0xfa1d8000 [ 578.585995] Internal error: : 1028 [#2] SMP ARM


    3. Please let us know the version of the SDK and the protocol stack when TI evaluated the WiFi/BT operation with AM3352 and WL1837MOD?

    Thank you in advance for your kind looking into the issue.
    Best regards,
    Hitoshi

  • Sugawara-san,

    Hitoshi Sugawara said:
    1.MMC clock setting
       Is it set in the file /include/ "am33xx-clocks.dtsi which is included by DTS?

    It really depends on the entire DTS include and overlay hierarchy, starting with the top-level dts file. Sometimes it can be confusing to decipher the actual final configuration for a given peripheral but one thing you can do is to use the device-tree compiler (dtc) to reverse-compile a binary device tree blob file back into source code. This way you see the final file as it will get consumed by Kernel and which settings will be active.

    For example to see the final device tree config used for the Kernel on a current 4.19 Kernel for the wireless beaglebone black you can do this

    a0797059@jiji:~/git/linux (ti-linux-4.19.y-dev)
    $ dtc -I dtb arch/arm/boot/dts/am335x-boneblack-wireless.dtb
    <stdout>: Warning (unit_address_vs_reg): Node /ocp/i2c@44e0b000/tda19988 has a reg or ranges property, but no unit name
    <stdout>: Warning (unit_address_vs_reg): Node /ocp/i2c@44e0b000/tda19988/ports/port@0 has a unit name, but no reg property
    <stdout>: Warning (unit_address_vs_reg): Node /ocp/i2c@44e0b000/tda19988/ports/port@0/endpoint@0 has a unit name, but no reg property
    <stdout>: Warning (unit_address_vs_reg): Node /ocp/ethernet@4a100000/slave@4a100200 has a unit name, but no reg property
    <stdout>: Warning (unit_address_vs_reg): Node /ocp/ethernet@4a100000/slave@4a100300 has a unit name, but no reg property
    <stdout>: Warning (unit_address_vs_reg): Node /ocp/lcdc@4830e000/port/endpoint@0 has a unit name, but no reg property
    <stdout>: Warning (unit_address_vs_reg): Node /fixedregulator@2 has a unit name, but no reg property
    <stdout>: Warning (simple_bus_reg): Node /ocp/l4_wkup@44c00000/prcm@200000/clocks missing or empty reg/ranges property
    <stdout>: Warning (simple_bus_reg): Node /ocp/l4_wkup@44c00000/prcm@200000/clockdomains missing or empty reg/ranges property
    <stdout>: Warning (simple_bus_reg): Node /ocp/l4_wkup@44c00000/scm@210000/scm_conf@0/clocks missing or empty reg/ranges property
    <stdout>: Warning (simple_bus_reg): Node /ocp/l4_wkup@44c00000/scm@210000/clockdomains missing or empty reg/ranges property
    /dts-v1/;
    
    / {
            compatible = "ti,am335x-bone-black-wireless", "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
            interrupt-parent = <0x1>;
            #address-cells = <0x1>;
            #size-cells = <0x1>;
            model = "TI AM335x BeagleBone Black Wireless";
    
            chosen {
                    stdout-path = "/ocp/serial@44e09000";
            };
    
            aliases {
                    i2c0 = "/ocp/i2c@44e0b000";
                    i2c1 = "/ocp/i2c@4802a000";
                    i2c2 = "/ocp/i2c@4819c000";
                    serial0 = "/ocp/serial@44e09000";
                    serial1 = "/ocp/serial@48022000";
                    serial2 = "/ocp/serial@48024000";
                    serial3 = "/ocp/serial@481a6000";
                    serial4 = "/ocp/serial@481a8000";
                    serial5 = "/ocp/serial@481aa000";
                    d-can0 = "/ocp/can@481cc000";
                    d-can1 = "/ocp/can@481d0000";
                    usb0 = "/ocp/usb@47400000/usb@47401000";
                    usb1 = "/ocp/usb@47400000/usb@47401800";
                    phy0 = "/ocp/usb@47400000/usb-phy@47401300";
                    phy1 = "/ocp/usb@47400000/usb-phy@47401b00";
                    ethernet0 = "/ocp/ethernet@4a100000/slave@4a100200";
                    ethernet1 = "/ocp/ethernet@4a100000/slave@4a100300";
                    spi0 = "/ocp/spi@48030000";
                    spi1 = "/ocp/spi@481a0000";
            };
    
            cpus {
                    #address-cells = <0x1>;
                    #size-cells = <0x0>;
    
                    cpu@0 {
                            compatible = "arm,cortex-a8";
                            enable-method = "ti,am3352";
                            device_type = "cpu";
                            reg = <0x0>;
                            operating-points-v2 = <0x2>;
                            clocks = <0x3>;
                            clock-names = "cpu";
                            clock-latency = <0x493e0>;
                            cpu-idle-states = <0x4>;
                            cpu0-supply = <0x5>;
                    };
    
                    idle-states {
    
                            mpu_gate {
                                    compatible = "arm,idle-state";
                                    entry-latency-us = <0x28>;
                                    exit-latency-us = <0x5a>;
                                    min-residency-us = <0x12c>;
                                    ti,idle-wkup-m3;
                                    phandle = <0x4>;
                            };
                    };
            };
    
            opp-table {
                    compatible = "operating-points-v2-ti-cpu";
                    syscon = <0x6>;
                    phandle = <0x2>;
    
                    opp50-300000000 {
                            opp-hz = <0x0 0x11e1a300>;
                            opp-microvolt = <0xe7ef0 0xe34b8 0xec928>;
                            opp-supported-hw = <0x6 0x10>;
                            opp-suspend;
                    };
    
                    opp100-275000000 {
                            opp-hz = <0x0 0x10642ac0>;
                            opp-microvolt = <0x10c8e0 0x1072f0 0x111ed0>;
                            opp-supported-hw = <0x1 0xff>;
                            opp-suspend;
                    };
    
                    opp100-300000000 {
                            opp-hz = <0x0 0x11e1a300>;
                            opp-microvolt = <0x10c8e0 0x1072f0 0x111ed0>;
                            opp-supported-hw = <0x6 0x20>;
                            opp-suspend;
                    };
    
                    opp100-500000000 {
                            opp-hz = <0x0 0x1dcd6500>;
                            opp-microvolt = <0x10c8e0 0x1072f0 0x111ed0>;
                            opp-supported-hw = <0x1 0xffff>;
                    };
    
                    opp100-600000000 {
                            opp-hz = <0x0 0x23c34600>;
                            opp-microvolt = <0x10c8e0 0x1072f0 0x111ed0>;
                            opp-supported-hw = <0x6 0x40>;
                    };
    
                    opp120-600000000 {
                            opp-hz = <0x0 0x23c34600>;
                            opp-microvolt = <0x124f80 0x11f1c0 0x12ad40>;
                            opp-supported-hw = <0x1 0xffff>;
                    };
    
                    opp120-720000000 {
                            opp-hz = <0x0 0x2aea5400>;
                            opp-microvolt = <0x124f80 0x11f1c0 0x12ad40>;
                            opp-supported-hw = <0x6 0x80>;
                    };
    
                    oppturbo-720000000 {
                            opp-hz = <0x0 0x2aea5400>;
                            opp-microvolt = <0x1339e0 0x12d770 0x139c50>;
                            opp-supported-hw = <0x1 0xffff>;
                    };
    
                    oppturbo-800000000 {
                            opp-hz = <0x0 0x2faf0800>;
                            opp-microvolt = <0x1339e0 0x12d770 0x139c50>;
                            opp-supported-hw = <0x6 0x100>;
                    };
    
                    oppnitro-1000000000 {
                            opp-hz = <0x0 0x3b9aca00>;
                            opp-microvolt = <0x1437c8 0x13d044 0x149f4c>;
                            opp-supported-hw = <0x4 0x200>;
                    };
            };
    
            pmu@4b000000 {
                    compatible = "arm,cortex-a8-pmu";
                    interrupts = <0x3>;
                    reg = <0x4b000000 0x1000000>;
                    ti,hwmods = "debugss";
            };
    
            soc {
                    compatible = "ti,omap-infra";
    
                    mpu {
                            compatible = "ti,omap3-mpu";
                            ti,hwmods = "mpu";
                            pm-sram = <0x7 0x8>;
                    };
            };
    
            ocp {
                    compatible = "simple-bus";
                    #address-cells = <0x1>;
                    #size-cells = <0x1>;
                    ranges;
                    ti,hwmods = "l3_main";
    
                    l4_wkup@44c00000 {
                            compatible = "ti,am3-l4-wkup", "simple-bus";
                            #address-cells = <0x1>;
                            #size-cells = <0x1>;
                            ranges = <0x0 0x44c00000 0x280000>;
    
                            wkup_m3@100000 {
                                    compatible = "ti,am3352-wkup-m3";
                                    reg = <0x100000 0x4000 0x180000 0x2000>;
                                    reg-names = "umem", "dmem";
                                    ti,hwmods = "wkup_m3";
                                    ti,pm-firmware = "am335x-pm-firmware.elf";
                                    phandle = <0x25>;
                            };
    
                            prcm@200000 {
                                    compatible = "ti,am3-prcm", "simple-bus";
                                    reg = <0x200000 0x4000>;
                                    #address-cells = <0x1>;
                                    #size-cells = <0x1>;
                                    ranges = <0x0 0x200000 0x4000>;
    
                                    clocks {
                                            #address-cells = <0x1>;
                                            #size-cells = <0x0>;
    
                                            clk_32768_ck {
                                                    #clock-cells = <0x0>;
                                                    compatible = "fixed-clock";
                                                    clock-frequency = <0x8000>;
                                                    phandle = <0x18>;
                                            };
    
                                            clk_rc32k_ck {
                                                    #clock-cells = <0x0>;
                                                    compatible = "fixed-clock";
                                                    clock-frequency = <0x7d00>;
                                                    phandle = <0x17>;
                                            };
    
                                            virt_19200000_ck {
                                                    #clock-cells = <0x0>;
                                                    compatible = "fixed-clock";
                                                    clock-frequency = <0x124f800>;
                                                    phandle = <0x20>;
                                            };
    
                                            virt_24000000_ck {
                                                    #clock-cells = <0x0>;
                                                    compatible = "fixed-clock";
                                                    clock-frequency = <0x16e3600>;
                                                    phandle = <0x21>;
                                            };
    
                                            virt_25000000_ck {
                                                    #clock-cells = <0x0>;
                                                    compatible = "fixed-clock";
                                                    clock-frequency = <0x17d7840>;
                                                    phandle = <0x22>;
                                            };
    
                                            virt_26000000_ck {
                                                    #clock-cells = <0x0>;
                                                    compatible = "fixed-clock";
                                                    clock-frequency = <0x18cba80>;
                                                    phandle = <0x23>;
                                            };
    
                                            tclkin_ck {
                                                    #clock-cells = <0x0>;
                                                    compatible = "fixed-clock";
                                                    clock-frequency = <0xb71b00>;
                                                    phandle = <0x16>;
                                            };
    
                                            dpll_core_ck@490 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,am3-dpll-core-clock";
                                                    clocks = <0x9 0x9>;
                                                    reg = <0x490 0x45c 0x468>;
                                                    phandle = <0xa>;
                                            };
    
                                            dpll_core_x2_ck {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,am3-dpll-x2-clock";
                                                    clocks = <0xa>;
                                                    phandle = <0xb>;
                                            };
    
                                            dpll_core_m4_ck@480 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,divider-clock";
                                                    clocks = <0xb>;
                                                    ti,max-div = <0x1f>;
                                                    reg = <0x480>;
                                                    ti,index-starts-at-one;
                                                    phandle = <0x12>;
                                            };
    
                                            dpll_core_m5_ck@484 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,divider-clock";
                                                    clocks = <0xb>;
                                                    ti,max-div = <0x1f>;
                                                    reg = <0x484>;
                                                    ti,index-starts-at-one;
                                                    phandle = <0x1a>;
                                            };
    
                                            dpll_core_m6_ck@4d8 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,divider-clock";
                                                    clocks = <0xb>;
                                                    ti,max-div = <0x1f>;
                                                    reg = <0x4d8>;
                                                    ti,index-starts-at-one;
                                            };
    
                                            dpll_mpu_ck@488 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,am3-dpll-clock";
                                                    clocks = <0x9 0x9>;
                                                    reg = <0x488 0x420 0x42c>;
                                                    phandle = <0x3>;
                                            };
    
                                            dpll_mpu_m2_ck@4a8 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,divider-clock";
                                                    clocks = <0x3>;
                                                    ti,max-div = <0x1f>;
                                                    reg = <0x4a8>;
                                                    ti,index-starts-at-one;
                                            };
    
                                            dpll_ddr_ck@494 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,am3-dpll-no-gate-clock";
                                                    clocks = <0x9 0x9>;
                                                    reg = <0x494 0x434 0x440>;
                                                    phandle = <0xc>;
                                            };
    
                                            dpll_ddr_m2_ck@4a0 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,divider-clock";
                                                    clocks = <0xc>;
                                                    ti,max-div = <0x1f>;
                                                    reg = <0x4a0>;
                                                    ti,index-starts-at-one;
                                                    phandle = <0xd>;
                                            };
    
                                            dpll_ddr_m2_div2_ck {
                                                    #clock-cells = <0x0>;
                                                    compatible = "fixed-factor-clock";
                                                    clocks = <0xd>;
                                                    clock-mult = <0x1>;
                                                    clock-div = <0x2>;
                                            };
    
                                            dpll_disp_ck@498 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,am3-dpll-no-gate-clock";
                                                    clocks = <0x9 0x9>;
                                                    reg = <0x498 0x448 0x454>;
                                                    phandle = <0xe>;
                                            };
    
                                            dpll_disp_m2_ck@4a4 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,divider-clock";
                                                    clocks = <0xe>;
                                                    ti,max-div = <0x1f>;
                                                    reg = <0x4a4>;
                                                    ti,index-starts-at-one;
                                                    ti,set-rate-parent;
                                                    phandle = <0x14>;
                                            };
    
                                            dpll_per_ck@48c {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,am3-dpll-no-gate-j-type-clock";
                                                    clocks = <0x9 0x9>;
                                                    reg = <0x48c 0x470 0x49c>;
                                                    phandle = <0xf>;
                                            };
    
                                            dpll_per_m2_ck@4ac {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,divider-clock";
                                                    clocks = <0xf>;
                                                    ti,max-div = <0x1f>;
                                                    reg = <0x4ac>;
                                                    ti,index-starts-at-one;
                                                    phandle = <0x10>;
                                            };
    
                                            dpll_per_m2_div4_wkupdm_ck {
                                                    #clock-cells = <0x0>;
                                                    compatible = "fixed-factor-clock";
                                                    clocks = <0x10>;
                                                    clock-mult = <0x1>;
                                                    clock-div = <0x4>;
                                            };
    
                                            dpll_per_m2_div4_ck {
                                                    #clock-cells = <0x0>;
                                                    compatible = "fixed-factor-clock";
                                                    clocks = <0x10>;
                                                    clock-mult = <0x1>;
                                                    clock-div = <0x4>;
                                            };
    
                                            clk_24mhz {
                                                    #clock-cells = <0x0>;
                                                    compatible = "fixed-factor-clock";
                                                    clocks = <0x10>;
                                                    clock-mult = <0x1>;
                                                    clock-div = <0x8>;
                                                    phandle = <0x11>;
                                            };
    
                                            clkdiv32k_ck {
                                                    #clock-cells = <0x0>;
                                                    compatible = "fixed-factor-clock";
                                                    clocks = <0x11>;
                                                    clock-mult = <0x1>;
                                                    clock-div = <0x2dc>;
                                            };
    
                                            l3_gclk {
                                                    #clock-cells = <0x0>;
                                                    compatible = "fixed-factor-clock";
                                                    clocks = <0x12>;
                                                    clock-mult = <0x1>;
                                                    clock-div = <0x1>;
                                                    phandle = <0x13>;
                                            };
    
                                            pruss_ocp_gclk@530 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,mux-clock";
                                                    clocks = <0x13 0x14>;
                                                    reg = <0x530>;
                                            };
    
                                            mmu_fck@914 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,gate-clock";
                                                    clocks = <0x12>;
                                                    ti,bit-shift = <0x1>;
                                                    reg = <0x914>;
                                            };
    
                                            timer1_fck@528 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,mux-clock";
                                                    clocks = <0x9 0x15 0x138 0x0 0x16 0x17 0x18>;
                                                    reg = <0x528>;
                                                    phandle = <0x3e>;
                                            };
    
                                            timer2_fck@508 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,mux-clock";
                                                    clocks = <0x16 0x9 0x15 0x138 0x0>;
                                                    reg = <0x508>;
                                                    phandle = <0x3f>;
                                            };
    
                                            timer3_fck@50c {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,mux-clock";
                                                    clocks = <0x16 0x9 0x15 0x138 0x0>;
                                                    reg = <0x50c>;
                                            };
    
                                            timer4_fck@510 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,mux-clock";
                                                    clocks = <0x16 0x9 0x15 0x138 0x0>;
                                                    reg = <0x510>;
                                            };
    
                                            timer5_fck@518 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,mux-clock";
                                                    clocks = <0x16 0x9 0x15 0x138 0x0>;
                                                    reg = <0x518>;
                                            };
    
                                            timer6_fck@51c {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,mux-clock";
                                                    clocks = <0x16 0x9 0x15 0x138 0x0>;
                                                    reg = <0x51c>;
                                            };
    
                                            timer7_fck@504 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,mux-clock";
                                                    clocks = <0x16 0x9 0x15 0x138 0x0>;
                                                    reg = <0x504>;
                                            };
    
                                            usbotg_fck@47c {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,gate-clock";
                                                    clocks = <0xf>;
                                                    ti,bit-shift = <0x8>;
                                                    reg = <0x47c>;
                                            };
    
                                            dpll_core_m4_div2_ck {
                                                    #clock-cells = <0x0>;
                                                    compatible = "fixed-factor-clock";
                                                    clocks = <0x12>;
                                                    clock-mult = <0x1>;
                                                    clock-div = <0x2>;
                                                    phandle = <0x19>;
                                            };
    
                                            ieee5000_fck@e4 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,gate-clock";
                                                    clocks = <0x19>;
                                                    ti,bit-shift = <0x1>;
                                                    reg = <0xe4>;
                                            };
    
                                            wdt1_fck@538 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,mux-clock";
                                                    clocks = <0x17 0x15 0x138 0x0>;
                                                    reg = <0x538>;
                                            };
    
                                            l4_rtc_gclk {
                                                    #clock-cells = <0x0>;
                                                    compatible = "fixed-factor-clock";
                                                    clocks = <0x12>;
                                                    clock-mult = <0x1>;
                                                    clock-div = <0x2>;
                                            };
    
                                            l4hs_gclk {
                                                    #clock-cells = <0x0>;
                                                    compatible = "fixed-factor-clock";
                                                    clocks = <0x12>;
                                                    clock-mult = <0x1>;
                                                    clock-div = <0x1>;
                                            };
    
                                            l3s_gclk {
                                                    #clock-cells = <0x0>;
                                                    compatible = "fixed-factor-clock";
                                                    clocks = <0x19>;
                                                    clock-mult = <0x1>;
                                                    clock-div = <0x1>;
                                            };
    
                                            l4fw_gclk {
                                                    #clock-cells = <0x0>;
                                                    compatible = "fixed-factor-clock";
                                                    clocks = <0x19>;
                                                    clock-mult = <0x1>;
                                                    clock-div = <0x1>;
                                            };
    
                                            l4ls_gclk {
                                                    #clock-cells = <0x0>;
                                                    compatible = "fixed-factor-clock";
                                                    clocks = <0x19>;
                                                    clock-mult = <0x1>;
                                                    clock-div = <0x1>;
                                                    phandle = <0x24>;
                                            };
    
                                            sysclk_div_ck {
                                                    #clock-cells = <0x0>;
                                                    compatible = "fixed-factor-clock";
                                                    clocks = <0x12>;
                                                    clock-mult = <0x1>;
                                                    clock-div = <0x1>;
                                            };
    
                                            cpsw_125mhz_gclk {
                                                    #clock-cells = <0x0>;
                                                    compatible = "fixed-factor-clock";
                                                    clocks = <0x1a>;
                                                    clock-mult = <0x1>;
                                                    clock-div = <0x2>;
                                                    phandle = <0x48>;
                                            };
    
                                            cpsw_cpts_rft_clk@520 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,mux-clock";
                                                    clocks = <0x1a 0x12>;
                                                    reg = <0x520>;
                                                    phandle = <0x49>;
                                            };
    
                                            gpio0_dbclk_mux_ck@53c {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,mux-clock";
                                                    clocks = <0x17 0x18 0x15 0x138 0x0>;
                                                    reg = <0x53c>;
                                            };
    
                                            lcd_gclk@534 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,mux-clock";
                                                    clocks = <0x14 0x1a 0x10>;
                                                    reg = <0x534>;
                                                    ti,set-rate-parent;
                                                    phandle = <0x1c>;
                                            };
    
                                            mmc_clk {
                                                    #clock-cells = <0x0>;
                                                    compatible = "fixed-factor-clock";
                                                    clocks = <0x10>;
                                                    clock-mult = <0x1>;
                                                    clock-div = <0x2>;
                                            };
    
                                            gfx_fclk_clksel_ck@52c {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,mux-clock";
                                                    clocks = <0x12 0x10>;
                                                    ti,bit-shift = <0x1>;
                                                    reg = <0x52c>;
                                                    phandle = <0x1b>;
                                            };
    
                                            gfx_fck_div_ck@52c {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,divider-clock";
                                                    clocks = <0x1b>;
                                                    reg = <0x52c>;
                                                    ti,max-div = <0x2>;
                                                    phandle = <0x52>;
                                            };
    
                                            sysclkout_pre_ck@700 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,mux-clock";
                                                    clocks = <0x18 0x13 0xd 0x10 0x1c>;
                                                    reg = <0x700>;
                                                    phandle = <0x1d>;
                                            };
    
                                            clkout2_div_ck@700 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,divider-clock";
                                                    clocks = <0x1d>;
                                                    ti,bit-shift = <0x3>;
                                                    ti,max-div = <0x8>;
                                                    reg = <0x700>;
                                                    phandle = <0x1e>;
                                            };
    
                                            clkout2_ck@700 {
                                                    #clock-cells = <0x0>;
                                                    compatible = "ti,gate-clock";
                                                    clocks = <0x1e>;
                                                    ti,bit-shift = <0x7>;
                                                    reg = <0x700>;
                                            };
                                    };
    
                                    clockdomains {
                                    };
    
                                    l4_per_cm@0 {
                                            compatible = "ti,omap4-cm";
                                            reg = <0x0 0x200>;
                                            #address-cells = <0x1>;
                                            #size-cells = <0x1>;
                                            ranges = <0x0 0x0 0x200>;
    
                                            clk@14 {
                                                    compatible = "ti,clkctrl";
                                                    reg = <0x14 0x13c>;
                                                    #clock-cells = <0x2>;
                                                    phandle = <0x15>;
                                            };
                                    };
    
                                    l4_wkup_cm@400 {
                                            compatible = "ti,omap4-cm";
                                            reg = <0x400 0x100>;
                                            #address-cells = <0x1>;
                                            #size-cells = <0x1>;
                                            ranges = <0x0 0x400 0x100>;
    
                                            clk@4 {
                                                    compatible = "ti,clkctrl";
                                                    reg = <0x4 0xd4>;
                                                    #clock-cells = <0x2>;
                                            };
                                    };
    
                                    mpu_cm@600 {
                                            compatible = "ti,omap4-cm";
                                            reg = <0x600 0x100>;
                                            #address-cells = <0x1>;
                                            #size-cells = <0x1>;
                                            ranges = <0x0 0x600 0x100>;
    
                                            clk@4 {
                                                    compatible = "ti,clkctrl";
                                                    reg = <0x4 0x4>;
                                                    #clock-cells = <0x2>;
                                            };
                                    };
    
                                    l4_rtc_cm@800 {
                                            compatible = "ti,omap4-cm";
                                            reg = <0x800 0x100>;
                                            #address-cells = <0x1>;
                                            #size-cells = <0x1>;
                                            ranges = <0x0 0x800 0x100>;
    
                                            clk@0 {
                                                    compatible = "ti,clkctrl";
                                                    reg = <0x0 0x4>;
                                                    #clock-cells = <0x2>;
                                            };
                                    };
    
                                    gfx_l3_cm@900 {
                                            compatible = "ti,omap4-cm";
                                            reg = <0x900 0x100>;
                                            #address-cells = <0x1>;
                                            #size-cells = <0x1>;
                                            ranges = <0x0 0x900 0x100>;
    
                                            clk@4 {
                                                    compatible = "ti,clkctrl";
                                                    reg = <0x4 0x4>;
                                                    #clock-cells = <0x2>;
                                            };
                                    };
    
                                    l4_cefuse_cm@a00 {
                                            compatible = "ti,omap4-cm";
                                            reg = <0xa00 0x100>;
                                            #address-cells = <0x1>;
                                            #size-cells = <0x1>;
                                            ranges = <0x0 0xa00 0x100>;
    
                                            clk@20 {
                                                    compatible = "ti,clkctrl";
                                                    reg = <0x20 0x4>;
                                                    #clock-cells = <0x2>;
                                            };
                                    };
                            };
    
                            scm@210000 {
                                    compatible = "ti,am3-scm", "simple-bus";
                                    reg = <0x210000 0x2000>;
                                    #address-cells = <0x1>;
                                    #size-cells = <0x1>;
                                    #pinctrl-cells = <0x1>;
                                    ranges = <0x0 0x210000 0x2000>;
    
                                    pinmux@800 {
                                            compatible = "pinctrl-single";
                                            reg = <0x800 0x238>;
                                            #address-cells = <0x1>;
                                            #size-cells = <0x0>;
                                            #pinctrl-cells = <0x1>;
                                            pinctrl-single,register-width = <0x20>;
                                            pinctrl-single,function-mask = <0x7f>;
                                            pinctrl-names = "default";
                                            pinctrl-0 = <0x1f>;
    
                                            user_leds_s0 {
                                                    pinctrl-single,pins = <0x54 0x7 0x58 0x17 0x5c 0x7 0x60 0x17>;
                                                    phandle = <0x53>;
                                            };
    
                                            pinmux_i2c0_pins {
                                                    pinctrl-single,pins = <0x188 0x30 0x18c 0x30>;
                                                    phandle = <0x30>;
                                            };
    
                                            pinmux_i2c2_pins {
                                                    pinctrl-single,pins = <0x178 0x33 0x17c 0x33>;
                                                    phandle = <0x34>;
                                            };
    
                                            pinmux_uart0_pins {
                                                    pinctrl-single,pins = <0x170 0x30 0x174 0x0>;
                                                    phandle = <0x2c>;
                                            };
    
                                            pinmux_clkout2_pin {
                                                    pinctrl-single,pins = <0x1b4 0x3>;
                                                    phandle = <0x1f>;
                                            };
    
                                            cpsw_default {
                                                    pinctrl-single,pins = <0x110 0x30 0x114 0x0 0x118 0x30 0x11c 0x0 0x120 0x0 0x124 0x0 0x128 0x0 0x12c 0x30 0x130 0x30 0x134 0x30 0x138 0x30 0x13c 0x30 0x140 0x30>;
                                                    phandle = <0x4a>;
                                            };
    
                                            cpsw_sleep {
                                                    pinctrl-single,pins = <0x110 0x27 0x114 0x27 0x118 0x27 0x11c 0x27 0x120 0x27 0x124 0x27 0x128 0x27 0x12c 0x27 0x130 0x27 0x134 0x27 0x138 0x27 0x13c 0x27 0x140 0x27>;
                                                    phandle = <0x4b>;
                                            };
    
                                            davinci_mdio_default {
                                                    pinctrl-single,pins = <0x148 0x30 0x14c 0x10>;
                                                    phandle = <0x4c>;
                                            };
    
                                            davinci_mdio_sleep {
                                                    pinctrl-single,pins = <0x148 0x27 0x14c 0x27>;
                                                    phandle = <0x4d>;
                                            };
    
                                            pinmux_mmc1_pins {
                                                    pinctrl-single,pins = <0x160 0x2f 0xfc 0x30 0xf8 0x30 0xf4 0x30 0xf0 0x30 0x104 0x30 0x100 0x30>;
                                                    phandle = <0x36>;
                                            };
    
                                            pinmux_emmc_pins {
                                                    pinctrl-single,pins = <0x80 0x32 0x84 0x32 0x0 0x31 0x4 0x31 0x8 0x31 0xc 0x31 0x10 0x31 0x14 0x31 0x18 0x31 0x1c 0x31>;
                                                    phandle = <0x38>;
                                            };
    
                                            nxp_hdmi_bonelt_pins {
                                                    pinctrl-single,pins = <0x1b0 0x3 0xa0 0x8 0xa4 0x8 0xa8 0x8 0xac 0x8 0xb0 0x8 0xb4 0x8 0xb8 0x8 0xbc 0x8 0xc0 0x8 0xc4 0x8 0xc8 0x8 0xcc 0x8 0xd0 0x8 0xd4 0x8 0xd8 0x8 0xdc 0x8 0xe0 0x0 0xe4 0x0 0xe8 0x0 0xec 0x0>;
                                                    phandle = <0x31>;
                                            };
    
                                            nxp_hdmi_bonelt_off_pins {
                                                    pinctrl-single,pins = <0x1b0 0x3>;
                                                    phandle = <0x32>;
                                            };
    
                                            mcasp0_pins {
                                                    pinctrl-single,pins = <0x1ac 0x30 0x19c 0x2 0x194 0x10 0x190 0x0 0x6c 0x7>;
                                                    phandle = <0x51>;
                                            };
    
                                            pinmux_bt_pins {
                                                    pinctrl-single,pins = <0x128 0x17>;
                                                    phandle = <0x2e>;
                                            };
    
                                            pinmux_mmc3_pins {
                                                    pinctrl-single,pins = <0x13c 0x36 0x114 0x36 0x118 0x35 0x11c 0x35 0x120 0x35 0x108 0x35>;
                                                    phandle = <0x3a>;
                                            };
    
                                            pinmux_uart3_pins {
                                                    pinctrl-single,pins = <0x134 0x31 0x138 0x1 0x148 0x2b 0x14c 0x3>;
                                                    phandle = <0x2d>;
                                            };
    
                                            pinmux_wl18xx_pins {
                                                    pinctrl-single,pins = <0x12c 0x7 0x144 0x27 0x130 0x17>;
                                                    phandle = <0x3b>;
                                            };
                                    };
    
                                    scm_conf@0 {
                                            compatible = "syscon", "simple-bus";
                                            reg = <0x0 0x800>;
                                            #address-cells = <0x1>;
                                            #size-cells = <0x1>;
                                            ranges = <0x0 0x0 0x800>;
                                            phandle = <0x6>;
    
                                            clocks {
                                                    #address-cells = <0x1>;
                                                    #size-cells = <0x0>;
    
                                                    sys_clkin_ck@40 {
                                                            #clock-cells = <0x0>;
                                                            compatible = "ti,mux-clock";
                                                            clocks = <0x20 0x21 0x22 0x23>;
                                                            ti,bit-shift = <0x16>;
                                                            reg = <0x40>;
                                                            phandle = <0x9>;
                                                    };
    
                                                    adc_tsc_fck {
                                                            #clock-cells = <0x0>;
                                                            compatible = "fixed-factor-clock";
                                                            clocks = <0x9>;
                                                            clock-mult = <0x1>;
                                                            clock-div = <0x1>;
                                                    };
    
                                                    dcan0_fck {
                                                            #clock-cells = <0x0>;
                                                            compatible = "fixed-factor-clock";
                                                            clocks = <0x9>;
                                                            clock-mult = <0x1>;
                                                            clock-div = <0x1>;
                                                            phandle = <0x3c>;
                                                    };
    
                                                    dcan1_fck {
                                                            #clock-cells = <0x0>;
                                                            compatible = "fixed-factor-clock";
                                                            clocks = <0x9>;
                                                            clock-mult = <0x1>;
                                                            clock-div = <0x1>;
                                                            phandle = <0x3d>;
                                                    };
    
                                                    mcasp0_fck {
                                                            #clock-cells = <0x0>;
                                                            compatible = "fixed-factor-clock";
                                                            clocks = <0x9>;
                                                            clock-mult = <0x1>;
                                                            clock-div = <0x1>;
                                                    };
    
                                                    mcasp1_fck {
                                                            #clock-cells = <0x0>;
                                                            compatible = "fixed-factor-clock";
                                                            clocks = <0x9>;
                                                            clock-mult = <0x1>;
                                                            clock-div = <0x1>;
                                                    };
    
                                                    smartreflex0_fck {
                                                            #clock-cells = <0x0>;
                                                            compatible = "fixed-factor-clock";
                                                            clocks = <0x9>;
                                                            clock-mult = <0x1>;
                                                            clock-div = <0x1>;
                                                    };
    
                                                    smartreflex1_fck {
                                                            #clock-cells = <0x0>;
                                                            compatible = "fixed-factor-clock";
                                                            clocks = <0x9>;
                                                            clock-mult = <0x1>;
                                                            clock-div = <0x1>;
                                                    };
    
                                                    sha0_fck {
                                                            #clock-cells = <0x0>;
                                                            compatible = "fixed-factor-clock";
                                                            clocks = <0x9>;
                                                            clock-mult = <0x1>;
                                                            clock-div = <0x1>;
                                                    };
    
                                                    aes0_fck {
                                                            #clock-cells = <0x0>;
                                                            compatible = "fixed-factor-clock";
                                                            clocks = <0x9>;
                                                            clock-mult = <0x1>;
                                                            clock-div = <0x1>;
                                                    };
    
                                                    rng_fck {
                                                            #clock-cells = <0x0>;
                                                            compatible = "fixed-factor-clock";
                                                            clocks = <0x9>;
                                                            clock-mult = <0x1>;
                                                            clock-div = <0x1>;
                                                    };
    
                                                    ehrpwm0_tbclk@44e10664 {
                                                            #clock-cells = <0x0>;
                                                            compatible = "ti,gate-clock";
                                                            clocks = <0x24>;
                                                            ti,bit-shift = <0x0>;
                                                            reg = <0x664>;
                                                            phandle = <0x45>;
                                                    };
    
                                                    ehrpwm1_tbclk@44e10664 {
                                                            #clock-cells = <0x0>;
                                                            compatible = "ti,gate-clock";
                                                            clocks = <0x24>;
                                                            ti,bit-shift = <0x1>;
                                                            reg = <0x664>;
                                                            phandle = <0x46>;
                                                    };
    
                                                    ehrpwm2_tbclk@44e10664 {
                                                            #clock-cells = <0x0>;
                                                            compatible = "ti,gate-clock";
                                                            clocks = <0x24>;
                                                            ti,bit-shift = <0x2>;
                                                            reg = <0x664>;
                                                            phandle = <0x47>;
                                                    };
                                            };
                                    };
    
                                    wkup_m3_ipc@1324 {
                                            compatible = "ti,am3352-wkup-m3-ipc";
                                            reg = <0x1324 0x24>;
                                            interrupts = <0x4e>;
                                            ti,rproc = <0x25>;
                                            mboxes = <0x26 0x27>;
                                            ti,scale-data-fw = "am335x-bone-scale-data.bin";
                                    };
    
                                    dma-router@f90 {
                                            compatible = "ti,am335x-edma-crossbar";
                                            reg = <0xf90 0x40>;
                                            #dma-cells = <0x3>;
                                            dma-requests = <0x20>;
                                            dma-masters = <0x28>;
                                            phandle = <0x35>;
                                    };
    
                                    clockdomains {
                                    };
                            };
                    };
    
                    interrupt-controller@48200000 {
                            compatible = "ti,am33xx-intc";
                            interrupt-controller;
                            #interrupt-cells = <0x1>;
                            reg = <0x48200000 0x1000>;
                            phandle = <0x1>;
                    };
    
                    edma@49000000 {
                            compatible = "ti,edma3-tpcc";
                            ti,hwmods = "tpcc";
                            reg = <0x49000000 0x10000>;
                            reg-names = "edma3_cc";
                            interrupts = <0xc 0xd 0xe>;
                            interrupt-names = "edma3_ccint", "edma3_mperr", "edma3_ccerrint";
                            dma-requests = <0x40>;
                            #dma-cells = <0x2>;
                            ti,tptcs = <0x29 0x7 0x2a 0x5 0x2b 0x0>;
                            ti,edma-memcpy-channels = <0x14 0x15>;
                            phandle = <0x28>;
                    };
    
                    tptc@49800000 {
                            compatible = "ti,edma3-tptc";
                            ti,hwmods = "tptc0";
                            reg = <0x49800000 0x100000>;
                            interrupts = <0x70>;
                            interrupt-names = "edma3_tcerrint";
                            phandle = <0x29>;
                    };
    
                    tptc@49900000 {
                            compatible = "ti,edma3-tptc";
                            ti,hwmods = "tptc1";
                            reg = <0x49900000 0x100000>;
                            interrupts = <0x71>;
                            interrupt-names = "edma3_tcerrint";
                            phandle = <0x2a>;
                    };
    
                    tptc@49a00000 {
                            compatible = "ti,edma3-tptc";
                            ti,hwmods = "tptc2";
                            reg = <0x49a00000 0x100000>;
                            interrupts = <0x72>;
                            interrupt-names = "edma3_tcerrint";
                            phandle = <0x2b>;
                    };
    
                    gpio@44e07000 {
                            compatible = "ti,omap4-gpio";
                            ti,hwmods = "gpio1";
                            gpio-controller;
                            #gpio-cells = <0x2>;
                            interrupt-controller;
                            #interrupt-cells = <0x2>;
                            reg = <0x44e07000 0x1000>;
                            interrupts = <0x60>;
                            phandle = <0x2f>;
                    };
    
                    gpio@4804c000 {
                            compatible = "ti,omap4-gpio";
                            ti,hwmods = "gpio2";
                            gpio-controller;
                            #gpio-cells = <0x2>;
                            interrupt-controller;
                            #interrupt-cells = <0x2>;
                            reg = <0x4804c000 0x1000>;
                            interrupts = <0x62>;
                            phandle = <0x54>;
                    };
    
                    gpio@481ac000 {
                            compatible = "ti,omap4-gpio";
                            ti,hwmods = "gpio3";
                            gpio-controller;
                            #gpio-cells = <0x2>;
                            interrupt-controller;
                            #interrupt-cells = <0x2>;
                            reg = <0x481ac000 0x1000>;
                            interrupts = <0x20>;
                    };
    
                    gpio@481ae000 {
                            compatible = "ti,omap4-gpio";
                            ti,hwmods = "gpio4";
                            gpio-controller;
                            #gpio-cells = <0x2>;
                            interrupt-controller;
                            #interrupt-cells = <0x2>;
                            reg = <0x481ae000 0x1000>;
                            interrupts = <0x3e>;
                            phandle = <0x5a>;
    
                            ls_buf_en {
                                    gpio-hog;
                                    gpios = <0xa 0x0>;
                                    output-high;
                                    line-name = "LS_BUF_EN";
                            };
                    };
    
                    serial@44e09000 {
                            compatible = "ti,am3352-uart", "ti,omap3-uart";
                            ti,hwmods = "uart1";
                            clock-frequency = <0x2dc6c00>;
                            reg = <0x44e09000 0x2000>;
                            interrupts = <0x48>;
                            status = "okay";
                            dmas = <0x28 0x1a 0x0 0x28 0x1b 0x0>;
                            dma-names = "tx", "rx";
                            pinctrl-names = "default";
                            pinctrl-0 = <0x2c>;
                    };
    
                    serial@48022000 {
                            compatible = "ti,am3352-uart", "ti,omap3-uart";
                            ti,hwmods = "uart2";
                            clock-frequency = <0x2dc6c00>;
                            reg = <0x48022000 0x2000>;
                            interrupts = <0x49>;
                            status = "disabled";
                            dmas = <0x28 0x1c 0x0 0x28 0x1d 0x0>;
                            dma-names = "tx", "rx";
                    };
    
                    serial@48024000 {
                            compatible = "ti,am3352-uart", "ti,omap3-uart";
                            ti,hwmods = "uart3";
                            clock-frequency = <0x2dc6c00>;
                            reg = <0x48024000 0x2000>;
                            interrupts = <0x4a>;
                            status = "disabled";
                            dmas = <0x28 0x1e 0x0 0x28 0x1f 0x0>;
                            dma-names = "tx", "rx";
                    };
    
                    serial@481a6000 {
                            compatible = "ti,am3352-uart", "ti,omap3-uart";
                            ti,hwmods = "uart4";
                            clock-frequency = <0x2dc6c00>;
                            reg = <0x481a6000 0x2000>;
                            interrupts = <0x2c>;
                            status = "okay";
                            pinctrl-names = "default";
                            pinctrl-0 = <0x2d 0x2e>;
    
                            bluetooth {
                                    compatible = "ti,wl1835-st";
                                    enable-gpios = <0x2f 0x1c 0x0>;
                            };
                    };
    
                    serial@481a8000 {
                            compatible = "ti,am3352-uart", "ti,omap3-uart";
                            ti,hwmods = "uart5";
                            clock-frequency = <0x2dc6c00>;
                            reg = <0x481a8000 0x2000>;
                            interrupts = <0x2d>;
                            status = "disabled";
                    };
    
                    serial@481aa000 {
                            compatible = "ti,am3352-uart", "ti,omap3-uart";
                            ti,hwmods = "uart6";
                            clock-frequency = <0x2dc6c00>;
                            reg = <0x481aa000 0x2000>;
                            interrupts = <0x2e>;
                            status = "disabled";
                    };
    
                    i2c@44e0b000 {
                            compatible = "ti,omap4-i2c";
                            #address-cells = <0x1>;
                            #size-cells = <0x0>;
                            ti,hwmods = "i2c1";
                            reg = <0x44e0b000 0x1000>;
                            interrupts = <0x46>;
                            status = "okay";
                            pinctrl-names = "default";
                            pinctrl-0 = <0x30>;
                            clock-frequency = <0x61a80>;
    
                            tps@24 {
                                    reg = <0x24>;
                                    compatible = "ti,tps65217";
                                    interrupt-controller;
                                    #interrupt-cells = <0x1>;
                                    interrupts = <0x7>;
                                    interrupt-parent = <0x1>;
                                    ti,pmic-shutdown-controller;
                                    phandle = <0x43>;
    
                                    charger {
                                            compatible = "ti,tps65217-charger";
                                            interrupts = <0x0 0x1>;
                                            interrupt-names = "USB", "AC";
                                            status = "okay";
                                    };
    
                                    pwrbutton {
                                            compatible = "ti,tps65217-pwrbutton";
                                            interrupts = <0x2>;
                                            status = "okay";
                                    };
    
                                    regulators {
                                            #address-cells = <0x1>;
                                            #size-cells = <0x0>;
    
                                            regulator@0 {
                                                    reg = <0x0>;
                                                    regulator-compatible = "dcdc1";
                                                    regulator-name = "vdds_dpr";
                                                    regulator-always-on;
                                            };
    
                                            regulator@1 {
                                                    reg = <0x1>;
                                                    regulator-compatible = "dcdc2";
                                                    regulator-name = "vdd_mpu";
                                                    regulator-min-microvolt = <0xe1d48>;
                                                    regulator-max-microvolt = <0x149f4c>;
                                                    regulator-boot-on;
                                                    regulator-always-on;
                                                    phandle = <0x5>;
                                            };
    
                                            regulator@2 {
                                                    reg = <0x2>;
                                                    regulator-compatible = "dcdc3";
                                                    regulator-name = "vdd_core";
                                                    regulator-min-microvolt = <0xe1d48>;
                                                    regulator-max-microvolt = <0x118c30>;
                                                    regulator-boot-on;
                                                    regulator-always-on;
                                            };
    
                                            regulator@3 {
                                                    reg = <0x3>;
                                                    regulator-compatible = "ldo1";
                                                    regulator-name = "vio,vrtc,vdds";
                                                    regulator-always-on;
                                            };
    
                                            regulator@4 {
                                                    reg = <0x4>;
                                                    regulator-compatible = "ldo2";
                                                    regulator-name = "vdd_3v3aux";
                                                    regulator-always-on;
                                            };
    
                                            regulator@5 {
                                                    reg = <0x5>;
                                                    regulator-compatible = "ldo3";
                                                    regulator-name = "vdd_1v8";
                                                    regulator-always-on;
                                                    regulator-min-microvolt = <0x1b7740>;
                                                    regulator-max-microvolt = <0x1b7740>;
                                            };
    
                                            regulator@6 {
                                                    reg = <0x6>;
                                                    regulator-compatible = "ldo4";
                                                    regulator-name = "vdd_3v3a";
                                                    regulator-always-on;
                                            };
                                    };
                            };
    
                            baseboard_eeprom@50 {
                                    compatible = "atmel,24c256";
                                    reg = <0x50>;
                                    #address-cells = <0x1>;
                                    #size-cells = <0x1>;
    
                                    baseboard_data@0 {
                                            reg = <0x0 0x100>;
                                    };
                            };
    
                            tda19988 {
                                    compatible = "nxp,tda998x";
                                    reg = <0x70>;
                                    pinctrl-names = "default", "off";
                                    pinctrl-0 = <0x31>;
                                    pinctrl-1 = <0x32>;
                                    #sound-dai-cells = <0x0>;
                                    audio-ports = <0x2 0x3>;
                                    phandle = <0x59>;
    
                                    ports {
    
                                            port@0 {
    
                                                    endpoint@0 {
                                                            remote-endpoint = <0x33>;
                                                            phandle = <0x50>;
                                                    };
                                            };
                                    };
                            };
                    };
    
                    i2c@4802a000 {
                            compatible = "ti,omap4-i2c";
                            #address-cells = <0x1>;
                            #size-cells = <0x0>;
                            ti,hwmods = "i2c2";
                            reg = <0x4802a000 0x1000>;
                            interrupts = <0x47>;
                            status = "disabled";
                    };
    
                    i2c@4819c000 {
                            compatible = "ti,omap4-i2c";
                            #address-cells = <0x1>;
                            #size-cells = <0x0>;
                            ti,hwmods = "i2c3";
                            reg = <0x4819c000 0x1000>;
                            interrupts = <0x1e>;
                            status = "okay";
                            pinctrl-names = "default";
                            pinctrl-0 = <0x34>;
                            clock-frequency = <0x186a0>;
    
                            cape_eeprom0@54 {
                                    compatible = "atmel,24c256";
                                    reg = <0x54>;
                                    #address-cells = <0x1>;
                                    #size-cells = <0x1>;
    
                                    cape_data@0 {
                                            reg = <0x0 0x100>;
                                    };
                            };
    
                            cape_eeprom1@55 {
                                    compatible = "atmel,24c256";
                                    reg = <0x55>;
                                    #address-cells = <0x1>;
                                    #size-cells = <0x1>;
    
                                    cape_data@0 {
                                            reg = <0x0 0x100>;
                                    };
                            };
    
                            cape_eeprom2@56 {
                                    compatible = "atmel,24c256";
                                    reg = <0x56>;
                                    #address-cells = <0x1>;
                                    #size-cells = <0x1>;
    
                                    cape_data@0 {
                                            reg = <0x0 0x100>;
                                    };
                            };
    
                            cape_eeprom3@57 {
                                    compatible = "atmel,24c256";
                                    reg = <0x57>;
                                    #address-cells = <0x1>;
                                    #size-cells = <0x1>;
    
                                    cape_data@0 {
                                            reg = <0x0 0x100>;
                                    };
                            };
                    };
    
                    mmc@48060000 {
                            compatible = "ti,omap4-hsmmc";
                            ti,hwmods = "mmc1";
                            ti,dual-volt;
                            ti,needs-special-reset;
                            ti,needs-special-hs-handling;
                            dmas = <0x35 0x18 0x0 0x0 0x35 0x19 0x0 0x0>;
                            dma-names = "tx", "rx";
                            interrupts = <0x40>;
                            reg = <0x48060000 0x1000>;
                            status = "okay";
                            bus-width = <0x4>;
                            pinctrl-names = "default";
                            pinctrl-0 = <0x36>;
                            cd-gpios = <0x2f 0x6 0x1>;
                            vmmc-supply = <0x37>;
                    };
    
                    mmc@481d8000 {
                            compatible = "ti,omap4-hsmmc";
                            ti,hwmods = "mmc2";
                            ti,needs-special-reset;
                            dmas = <0x28 0x2 0x0 0x28 0x3 0x0>;
                            dma-names = "tx", "rx";
                            interrupts = <0x1c>;
                            reg = <0x481d8000 0x1000>;
                            status = "okay";
                            vmmc-supply = <0x37>;
                            pinctrl-names = "default";
                            pinctrl-0 = <0x38>;
                            bus-width = <0x8>;
                    };
    
                    mmc@47810000 {
                            compatible = "ti,omap4-hsmmc";
                            ti,hwmods = "mmc3";
                            ti,needs-special-reset;
                            interrupts = <0x1d>;
                            reg = <0x47810000 0x1000>;
                            status = "okay";
                            dmas = <0x35 0xc 0x0 0x1 0x35 0xd 0x0 0x2>;
                            dma-names = "tx", "rx";
                            vmmc-supply = <0x39>;
                            bus-width = <0x4>;
                            non-removable;
                            cap-power-off-card;
                            ti,needs-special-hs-handling;
                            keep-power-in-suspend;
                            pinctrl-names = "default";
                            pinctrl-0 = <0x3a 0x3b>;
                            #address-cells = <0x1>;
                            #size-cells = <0x0>;
    
                            wlcore@2 {
                                    compatible = "ti,wl1835";
                                    reg = <0x2>;
                                    interrupt-parent = <0x2f>;
                                    interrupts = <0x1d 0x1>;
                            };
                    };
    
                    spinlock@480ca000 {
                            compatible = "ti,omap4-hwspinlock";
                            reg = <0x480ca000 0x1000>;
                            ti,hwmods = "spinlock";
                            #hwlock-cells = <0x1>;
                    };
    
                    wdt@44e35000 {
                            compatible = "ti,omap3-wdt";
                            ti,hwmods = "wd_timer2";
                            reg = <0x44e35000 0x1000>;
                            interrupts = <0x5b>;
                    };
    
                    can@481cc000 {
                            compatible = "ti,am3352-d_can";
                            ti,hwmods = "d_can0";
                            reg = <0x481cc000 0x2000>;
                            clocks = <0x3c>;
                            clock-names = "fck";
                            syscon-raminit = <0x6 0x644 0x0>;
                            interrupts = <0x34>;
                            status = "disabled";
                    };
    
                    can@481d0000 {
                            compatible = "ti,am3352-d_can";
                            ti,hwmods = "d_can1";
                            reg = <0x481d0000 0x2000>;
                            clocks = <0x3d>;
                            clock-names = "fck";
                            syscon-raminit = <0x6 0x644 0x1>;
                            interrupts = <0x37>;
                            status = "disabled";
                    };
    
                    mailbox@480c8000 {
                            compatible = "ti,omap4-mailbox";
                            reg = <0x480c8000 0x200>;
                            interrupts = <0x4d>;
                            ti,hwmods = "mailbox";
                            #mbox-cells = <0x1>;
                            ti,mbox-num-users = <0x4>;
                            ti,mbox-num-fifos = <0x8>;
                            phandle = <0x26>;
    
                            wkup_m3 {
                                    ti,mbox-send-noirq;
                                    ti,mbox-tx = <0x0 0x0 0x0>;
                                    ti,mbox-rx = <0x0 0x0 0x3>;
                                    phandle = <0x27>;
                            };
                    };
    
                    timer@44e31000 {
                            compatible = "ti,am335x-timer-1ms";
                            reg = <0x44e31000 0x400>;
                            interrupts = <0x43>;
                            ti,hwmods = "timer1";
                            ti,timer-alwon;
                            clocks = <0x3e>;
                            clock-names = "fck";
                    };
    
                    timer@48040000 {
                            compatible = "ti,am335x-timer";
                            reg = <0x48040000 0x400>;
                            interrupts = <0x44>;
                            ti,hwmods = "timer2";
                            clocks = <0x3f>;
                            clock-names = "fck";
                    };
    
                    timer@48042000 {
                            compatible = "ti,am335x-timer";
                            reg = <0x48042000 0x400>;
                            interrupts = <0x45>;
                            ti,hwmods = "timer3";
                    };
    
                    timer@48044000 {
                            compatible = "ti,am335x-timer";
                            reg = <0x48044000 0x400>;
                            interrupts = <0x5c>;
                            ti,hwmods = "timer4";
                            ti,timer-pwm;
                    };
    
                    timer@48046000 {
                            compatible = "ti,am335x-timer";
                            reg = <0x48046000 0x400>;
                            interrupts = <0x5d>;
                            ti,hwmods = "timer5";
                            ti,timer-pwm;
                    };
    
                    timer@48048000 {
                            compatible = "ti,am335x-timer";
                            reg = <0x48048000 0x400>;
                            interrupts = <0x5e>;
                            ti,hwmods = "timer6";
                            ti,timer-pwm;
                    };
    
                    timer@4804a000 {
                            compatible = "ti,am335x-timer";
                            reg = <0x4804a000 0x400>;
                            interrupts = <0x5f>;
                            ti,hwmods = "timer7";
                            ti,timer-pwm;
                    };
    
                    rtc@44e3e000 {
                            compatible = "ti,am3352-rtc", "ti,da830-rtc";
                            reg = <0x44e3e000 0x1000>;
                            interrupts = <0x4b 0x4c>;
                            ti,hwmods = "rtc";
                            clocks = <0x18 0x15 0x138 0x0>;
                            clock-names = "ext-clk", "int-clk";
                            system-power-controller;
                    };
    
                    spi@48030000 {
                            compatible = "ti,omap4-mcspi";
                            #address-cells = <0x1>;
                            #size-cells = <0x0>;
                            reg = <0x48030000 0x400>;
                            interrupts = <0x41>;
                            ti,spi-num-cs = <0x2>;
                            ti,hwmods = "spi0";
                            dmas = <0x28 0x10 0x0 0x28 0x11 0x0 0x28 0x12 0x0 0x28 0x13 0x0>;
                            dma-names = "tx0", "rx0", "tx1", "rx1";
                            status = "disabled";
                    };
    
                    spi@481a0000 {
                            compatible = "ti,omap4-mcspi";
                            #address-cells = <0x1>;
                            #size-cells = <0x0>;
                            reg = <0x481a0000 0x400>;
                            interrupts = <0x7d>;
                            ti,spi-num-cs = <0x2>;
                            ti,hwmods = "spi1";
                            dmas = <0x28 0x2a 0x0 0x28 0x2b 0x0 0x28 0x2c 0x0 0x28 0x2d 0x0>;
                            dma-names = "tx0", "rx0", "tx1", "rx1";
                            status = "disabled";
                    };
    
                    usb@47400000 {
                            compatible = "ti,am33xx-usb";
                            reg = <0x47400000 0x1000>;
                            ranges;
                            #address-cells = <0x1>;
                            #size-cells = <0x1>;
                            ti,hwmods = "usb_otg_hs";
                            status = "okay";
    
                            control@44e10620 {
                                    compatible = "ti,am335x-usb-ctrl-module";
                                    reg = <0x44e10620 0x10 0x44e10648 0x4>;
                                    reg-names = "phy_ctrl", "wakeup";
                                    status = "okay";
                                    phandle = <0x40>;
                            };
    
                            usb-phy@47401300 {
                                    compatible = "ti,am335x-usb-phy";
                                    reg = <0x47401300 0x100>;
                                    reg-names = "phy";
                                    status = "okay";
                                    ti,ctrl_mod = <0x40>;
                                    #phy-cells = <0x0>;
                                    phandle = <0x41>;
                            };
    
                            usb@47401000 {
                                    compatible = "ti,musb-am33xx";
                                    status = "okay";
                                    reg = <0x47401400 0x400 0x47401000 0x200>;
                                    reg-names = "mc", "control";
                                    interrupts = <0x12>;
                                    interrupt-names = "mc", "vbus";
                                    dr_mode = "peripheral";
                                    mentor,multipoint = <0x1>;
                                    mentor,num-eps = <0x10>;
                                    mentor,ram-bits = <0xc>;
                                    mentor,power = <0x1f4>;
                                    phys = <0x41>;
                                    dmas = <0x42 0x0 0x0 0x42 0x1 0x0 0x42 0x2 0x0 0x42 0x3 0x0 0x42 0x4 0x0 0x42 0x5 0x0 0x42 0x6 0x0 0x42 0x7 0x0 0x42 0x8 0x0 0x42 0x9 0x0 0x42 0xa 0x0 0x42 0xb 0x0 0x42 0xc 0x0 0x42 0xd 0x0 0x42 0xe 0x0 0x42 0x0 0x1 0x42 0x1 0x1 0x42 0x2 0x1 0x42 0x3 0x1 0x42 0x4 0x1 0x42 0x5 0x1 0x42 0x6 0x1 0x42 0x7 0x1 0x42 0x8 0x1 0x42 0x9 0x1 0x42 0xa 0x1 0x42 0xb 0x1 0x42 0xc 0x1 0x42 0xd 0x1 0x42 0xe 0x1>;
                                    dma-names = "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7", "rx8", "rx9", "rx10", "rx11", "rx12", "rx13", "rx14", "rx15", "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7", "tx8", "tx9", "tx10", "tx11", "tx12", "tx13", "tx14", "tx15";
                                    interrupts-extended = <0x1 0x12 0x43 0x0>;
                            };
    
                            usb-phy@47401b00 {
                                    compatible = "ti,am335x-usb-phy";
                                    reg = <0x47401b00 0x100>;
                                    reg-names = "phy";
                                    status = "okay";
                                    ti,ctrl_mod = <0x40>;
                                    #phy-cells = <0x0>;
                                    phandle = <0x44>;
                            };
    
                            usb@47401800 {
                                    compatible = "ti,musb-am33xx";
                                    status = "okay";
                                    reg = <0x47401c00 0x400 0x47401800 0x200>;
                                    reg-names = "mc", "control";
                                    interrupts = <0x13>;
                                    interrupt-names = "mc";
                                    dr_mode = "host";
                                    mentor,multipoint = <0x1>;
                                    mentor,num-eps = <0x10>;
                                    mentor,ram-bits = <0xc>;
                                    mentor,power = <0x1f4>;
                                    phys = <0x44>;
                                    dmas = <0x42 0xf 0x0 0x42 0x10 0x0 0x42 0x11 0x0 0x42 0x12 0x0 0x42 0x13 0x0 0x42 0x14 0x0 0x42 0x15 0x0 0x42 0x16 0x0 0x42 0x17 0x0 0x42 0x18 0x0 0x42 0x19 0x0 0x42 0x1a 0x0 0x42 0x1b 0x0 0x42 0x1c 0x0 0x42 0x1d 0x0 0x42 0xf 0x1 0x42 0x10 0x1 0x42 0x11 0x1 0x42 0x12 0x1 0x42 0x13 0x1 0x42 0x14 0x1 0x42 0x15 0x1 0x42 0x16 0x1 0x42 0x17 0x1 0x42 0x18 0x1 0x42 0x19 0x1 0x42 0x1a 0x1 0x42 0x1b 0x1 0x42 0x1c 0x1 0x42 0x1d 0x1>;
                                    dma-names = "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7", "rx8", "rx9", "rx10", "rx11", "rx12", "rx13", "rx14", "rx15", "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7", "tx8", "tx9", "tx10", "tx11", "tx12", "tx13", "tx14", "tx15";
                            };
    
                            dma-controller@47402000 {
                                    compatible = "ti,am3359-cppi41";
                                    reg = <0x47400000 0x1000 0x47402000 0x1000 0x47403000 0x1000 0x47404000 0x4000>;
                                    reg-names = "glue", "controller", "scheduler", "queuemgr";
                                    interrupts = <0x11>;
                                    interrupt-names = "glue";
                                    #dma-cells = <0x2>;
                                    #dma-channels = <0x1e>;
                                    #dma-requests = <0x100>;
                                    status = "okay";
                                    phandle = <0x42>;
                            };
                    };
    
                    epwmss@48300000 {
                            compatible = "ti,am33xx-pwmss";
                            reg = <0x48300000 0x10>;
                            ti,hwmods = "epwmss0";
                            #address-cells = <0x1>;
                            #size-cells = <0x1>;
                            status = "disabled";
                            ranges = <0x48300100 0x48300100 0x80 0x48300180 0x48300180 0x80 0x48300200 0x48300200 0x80>;
    
                            ecap@48300100 {
                                    compatible = "ti,am3352-ecap", "ti,am33xx-ecap";
                                    #pwm-cells = <0x3>;
                                    reg = <0x48300100 0x80>;
                                    clocks = <0x24>;
                                    clock-names = "fck";
                                    interrupts = <0x1f>;
                                    interrupt-names = "ecap0";
                                    status = "disabled";
                            };
    
                            pwm@48300200 {
                                    compatible = "ti,am3352-ehrpwm", "ti,am33xx-ehrpwm";
                                    #pwm-cells = <0x3>;
                                    reg = <0x48300200 0x80>;
                                    clocks = <0x45 0x24>;
                                    clock-names = "tbclk", "fck";
                                    status = "disabled";
                            };
                    };
    
                    epwmss@48302000 {
                            compatible = "ti,am33xx-pwmss";
                            reg = <0x48302000 0x10>;
                            ti,hwmods = "epwmss1";
                            #address-cells = <0x1>;
                            #size-cells = <0x1>;
                            status = "disabled";
                            ranges = <0x48302100 0x48302100 0x80 0x48302180 0x48302180 0x80 0x48302200 0x48302200 0x80>;
    
                            ecap@48302100 {
                                    compatible = "ti,am3352-ecap", "ti,am33xx-ecap";
                                    #pwm-cells = <0x3>;
                                    reg = <0x48302100 0x80>;
                                    clocks = <0x24>;
                                    clock-names = "fck";
                                    interrupts = <0x2f>;
                                    interrupt-names = "ecap1";
                                    status = "disabled";
                            };
    
                            pwm@48302200 {
                                    compatible = "ti,am3352-ehrpwm", "ti,am33xx-ehrpwm";
                                    #pwm-cells = <0x3>;
                                    reg = <0x48302200 0x80>;
                                    clocks = <0x46 0x24>;
                                    clock-names = "tbclk", "fck";
                                    status = "disabled";
                            };
                    };
    
                    epwmss@48304000 {
                            compatible = "ti,am33xx-pwmss";
                            reg = <0x48304000 0x10>;
                            ti,hwmods = "epwmss2";
                            #address-cells = <0x1>;
                            #size-cells = <0x1>;
                            status = "disabled";
                            ranges = <0x48304100 0x48304100 0x80 0x48304180 0x48304180 0x80 0x48304200 0x48304200 0x80>;
    
                            ecap@48304100 {
                                    compatible = "ti,am3352-ecap", "ti,am33xx-ecap";
                                    #pwm-cells = <0x3>;
                                    reg = <0x48304100 0x80>;
                                    clocks = <0x24>;
                                    clock-names = "fck";
                                    interrupts = <0x3d>;
                                    interrupt-names = "ecap2";
                                    status = "disabled";
                            };
    
                            pwm@48304200 {
                                    compatible = "ti,am3352-ehrpwm", "ti,am33xx-ehrpwm";
                                    #pwm-cells = <0x3>;
                                    reg = <0x48304200 0x80>;
                                    clocks = <0x47 0x24>;
                                    clock-names = "tbclk", "fck";
                                    status = "disabled";
                            };
                    };
    
                    ethernet@4a100000 {
                            compatible = "ti,am335x-cpsw", "ti,cpsw";
                            ti,hwmods = "cpgmac0";
                            clocks = <0x48 0x49>;
                            clock-names = "fck", "cpts";
                            cpdma_channels = <0x8>;
                            ale_entries = <0x400>;
                            bd_ram_size = <0x2000>;
                            mac_control = <0x20>;
                            slaves = <0x1>;
                            active_slave = <0x0>;
                            cpts_clock_mult = <0x80000000>;
                            cpts_clock_shift = <0x1d>;
                            reg = <0x4a100000 0x800 0x4a101200 0x100>;
                            #address-cells = <0x1>;
                            #size-cells = <0x1>;
                            interrupts = <0x28 0x29 0x2a 0x2b>;
                            ranges;
                            syscon = <0x6>;
                            status = "disabled";
                            pinctrl-names = "default", "sleep";
                            pinctrl-0 = <0x4a>;
                            pinctrl-1 = <0x4b>;
    
                            mdio@4a101000 {
                                    compatible = "ti,cpsw-mdio", "ti,davinci_mdio";
                                    #address-cells = <0x1>;
                                    #size-cells = <0x0>;
                                    ti,hwmods = "davinci_mdio";
                                    bus_freq = <0xf4240>;
                                    reg = <0x4a101000 0x100>;
                                    status = "okay";
                                    pinctrl-names = "default", "sleep";
                                    pinctrl-0 = <0x4c>;
                                    pinctrl-1 = <0x4d>;
                                    phandle = <0x4e>;
                            };
    
                            slave@4a100200 {
                                    mac-address = [00 00 00 00 00 00];
                                    phy_id = <0x4e 0x0>;
                                    phy-mode = "mii";
                            };
    
                            slave@4a100300 {
                                    mac-address = [00 00 00 00 00 00];
                            };
    
                            cpsw-phy-sel@44e10650 {
                                    compatible = "ti,am3352-cpsw-phy-sel";
                                    reg = <0x44e10650 0x4>;
                                    reg-names = "gmii-sel";
                            };
                    };
    
                    ocmcram@40300000 {
                            compatible = "mmio-sram";
                            reg = <0x40300000 0x10000>;
                            ranges = <0x0 0x40300000 0x10000>;
                            #address-cells = <0x1>;
                            #size-cells = <0x1>;
    
                            pm-sram-code@0 {
                                    compatible = "ti,sram";
                                    reg = <0x0 0x1000>;
                                    protect-exec;
                                    phandle = <0x7>;
                            };
    
                            pm-sram-data@1000 {
                                    compatible = "ti,sram";
                                    reg = <0x1000 0x1000>;
                                    pool;
                                    phandle = <0x8>;
                            };
                    };
    
                    pruss-soc-bus@4a326004 {
                            compatible = "ti,am3356-pruss-soc-bus";
                            reg = <0x4a326004 0x4>;
                            ti,hwmods = "pruss";
                            #address-cells = <0x1>;
                            #size-cells = <0x1>;
                            ranges;
                            status = "okay";
    
                            pruss@4a300000 {
                                    compatible = "ti,am3356-pruss";
                                    reg = <0x4a300000 0x80000>;
                                    interrupts = <0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b>;
                                    interrupt-names = "host2", "host3", "host4", "host5", "host6", "host7", "host8", "host9";
                                    #address-cells = <0x1>;
                                    #size-cells = <0x1>;
                                    ranges;
                                    status = "okay";
    
                                    memories@4a300000 {
                                            reg = <0x4a300000 0x2000 0x4a302000 0x2000 0x4a310000 0x3000>;
                                            reg-names = "dram0", "dram1", "shrdram2";
                                    };
    
                                    cfg@4a326000 {
                                            compatible = "syscon";
                                            reg = <0x4a326000 0x2000>;
                                    };
    
                                    iep@4a32e000 {
                                            compatible = "syscon";
                                            reg = <0x4a32e000 0x31c>;
                                    };
    
                                    mii-rt@4a332000 {
                                            compatible = "syscon";
                                            reg = <0x4a332000 0x58>;
                                    };
    
                                    interrupt-controller@4a320000 {
                                            compatible = "ti,am3356-pruss-intc";
                                            reg = <0x4a320000 0x2000>;
                                            interrupt-controller;
                                            #interrupt-cells = <0x1>;
                                            phandle = <0x4f>;
                                    };
    
                                    pru@4a334000 {
                                            compatible = "ti,am3356-pru";
                                            reg = <0x4a334000 0x2000 0x4a322000 0x400 0x4a322400 0x100>;
                                            reg-names = "iram", "control", "debug";
                                            firmware-name = "am335x-pru0-fw";
                                            interrupt-parent = <0x4f>;
                                            interrupts = <0x10 0x11>;
                                            interrupt-names = "vring", "kick";
                                    };
    
                                    pru@4a338000 {
                                            compatible = "ti,am3356-pru";
                                            reg = <0x4a338000 0x2000 0x4a324000 0x400 0x4a324400 0x100>;
                                            reg-names = "iram", "control", "debug";
                                            firmware-name = "am335x-pru1-fw";
                                            interrupt-parent = <0x4f>;
                                            interrupts = <0x12 0x13>;
                                            interrupt-names = "vring", "kick";
                                    };
    
                                    mdio@4a332400 {
                                            compatible = "ti,davinci_mdio";
                                            reg = <0x4a332400 0x90>;
                                            clocks = <0x12>;
                                            clock-names = "fck";
                                            bus_freq = <0xf4240>;
                                            #address-cells = <0x1>;
                                            #size-cells = <0x0>;
                                            status = "disabled";
                                    };
                            };
                    };
    
                    elm@48080000 {
                            compatible = "ti,am3352-elm";
                            reg = <0x48080000 0x2000>;
                            interrupts = <0x4>;
                            ti,hwmods = "elm";
                            status = "disabled";
                    };
    
                    lcdc@4830e000 {
                            compatible = "ti,am33xx-tilcdc";
                            reg = <0x4830e000 0x1000>;
                            interrupts = <0x24>;
                            ti,hwmods = "lcdc";
                            status = "okay";
                            blue-and-red-wiring = "straight";
    
                            port {
    
                                    endpoint@0 {
                                            remote-endpoint = <0x50>;
                                            phandle = <0x33>;
                                    };
                            };
                    };
    
                    tscadc@44e0d000 {
                            compatible = "ti,am3359-tscadc";
                            reg = <0x44e0d000 0x1000>;
                            interrupts = <0x10>;
                            ti,hwmods = "adc_tsc";
                            status = "disabled";
                            dmas = <0x28 0x35 0x0 0x28 0x39 0x0>;
                            dma-names = "fifo0", "fifo1";
    
                            tsc {
                                    compatible = "ti,am3359-tsc";
                            };
    
                            adc {
                                    #io-channel-cells = <0x1>;
                                    compatible = "ti,am3359-adc";
                            };
                    };
    
                    emif@4c000000 {
                            compatible = "ti,emif-am3352";
                            reg = <0x4c000000 0x1000000>;
                            ti,hwmods = "emif";
                            interrupts = <0x65>;
                            sram = <0x7 0x8>;
                            ti,no-idle;
                    };
    
                    gpmc@50000000 {
                            compatible = "ti,am3352-gpmc";
                            ti,hwmods = "gpmc";
                            ti,no-idle-on-init;
                            reg = <0x50000000 0x2000>;
                            interrupts = <0x64>;
                            dmas = <0x28 0x34 0x0>;
                            dma-names = "rxtx";
                            gpmc,num-cs = <0x7>;
                            gpmc,num-waitpins = <0x2>;
                            #address-cells = <0x2>;
                            #size-cells = <0x1>;
                            interrupt-controller;
                            #interrupt-cells = <0x2>;
                            gpio-controller;
                            #gpio-cells = <0x2>;
                            status = "disabled";
                    };
    
                    sham@53100000 {
                            compatible = "ti,omap4-sham";
                            ti,hwmods = "sham";
                            reg = <0x53100000 0x200>;
                            interrupts = <0x6d>;
                            dmas = <0x28 0x24 0x0>;
                            dma-names = "rx";
                            status = "okay";
                    };
    
                    aes@53500000 {
                            compatible = "ti,omap4-aes";
                            ti,hwmods = "aes";
                            reg = <0x53500000 0xa0>;
                            interrupts = <0x67>;
                            dmas = <0x28 0x6 0x0 0x28 0x5 0x0>;
                            dma-names = "tx", "rx";
                            status = "okay";
                    };
    
                    mcasp@48038000 {
                            compatible = "ti,am33xx-mcasp-audio";
                            ti,hwmods = "mcasp0";
                            reg = <0x48038000 0x2000 0x46000000 0x400000>;
                            reg-names = "mpu", "dat";
                            interrupts = <0x50 0x51>;
                            interrupt-names = "tx", "rx";
                            status = "okay";
                            dmas = <0x28 0x8 0x2 0x28 0x9 0x2>;
                            dma-names = "tx", "rx";
                            #sound-dai-cells = <0x0>;
                            pinctrl-names = "default";
                            pinctrl-0 = <0x51>;
                            op-mode = <0x0>;
                            tdm-slots = <0x2>;
                            serial-dir = <0x0 0x0 0x1 0x0>;
                            tx-num-evt = <0x20>;
                            rx-num-evt = <0x20>;
                            phandle = <0x57>;
                    };
    
                    mcasp@4803c000 {
                            compatible = "ti,am33xx-mcasp-audio";
                            ti,hwmods = "mcasp1";
                            reg = <0x4803c000 0x2000 0x46400000 0x400000>;
                            reg-names = "mpu", "dat";
                            interrupts = <0x52 0x53>;
                            interrupt-names = "tx", "rx";
                            status = "disabled";
                            dmas = <0x28 0xa 0x2 0x28 0xb 0x2>;
                            dma-names = "tx", "rx";
                    };
    
                    rng@48310000 {
                            compatible = "ti,omap4-rng";
                            ti,hwmods = "rng";
                            reg = <0x48310000 0x2000>;
                            interrupts = <0x6f>;
                    };
    
                    sgx@56000000 {
                            compatible = "ti,am3352-sgx530", "img,sgx530";
                            ti,hwmods = "gfx";
                            reg = <0x56000000 0x10000>;
                            interrupts = <0x25>;
                            clocks = <0x52>;
                            clock-names = "fclk";
                            status = "disabled";
                    };
            };
    
            memory@80000000 {
                    device_type = "memory";
                    reg = <0x80000000 0x10000000>;
            };
    
            leds {
                    pinctrl-names = "default";
                    pinctrl-0 = <0x53>;
                    compatible = "gpio-leds";
    
                    led2 {
                            label = "beaglebone:green:heartbeat";
                            gpios = <0x54 0x15 0x0>;
                            linux,default-trigger = "heartbeat";
                            default-state = "off";
                    };
    
                    led3 {
                            label = "beaglebone:green:mmc0";
                            gpios = <0x54 0x16 0x0>;
                            linux,default-trigger = "mmc0";
                            default-state = "off";
                    };
    
                    led4 {
                            label = "beaglebone:green:usr2";
                            gpios = <0x54 0x17 0x0>;
                            linux,default-trigger = "cpu0";
                            default-state = "off";
                    };
    
                    led5 {
                            label = "beaglebone:green:usr3";
                            gpios = <0x54 0x18 0x0>;
                            linux,default-trigger = "mmc1";
                            default-state = "off";
                    };
            };
    
            fixedregulator0 {
                    compatible = "regulator-fixed";
                    regulator-name = "vmmcsd_fixed";
                    regulator-min-microvolt = <0x325aa0>;
                    regulator-max-microvolt = <0x325aa0>;
                    phandle = <0x37>;
            };
    
            clk_mcasp0_fixed {
                    #clock-cells = <0x0>;
                    compatible = "fixed-clock";
                    clock-frequency = <0x1770000>;
                    phandle = <0x55>;
            };
    
            clk_mcasp0 {
                    #clock-cells = <0x0>;
                    compatible = "gpio-gate-clock";
                    clocks = <0x55>;
                    enable-gpios = <0x54 0x1b 0x0>;
                    phandle = <0x58>;
            };
    
            sound {
                    compatible = "simple-audio-card";
                    simple-audio-card,name = "TI BeagleBone Black";
                    simple-audio-card,format = "i2s";
                    simple-audio-card,bitclock-master = <0x56>;
                    simple-audio-card,frame-master = <0x56>;
    
                    simple-audio-card,cpu {
                            sound-dai = <0x57>;
                            clocks = <0x58>;
                            phandle = <0x56>;
                    };
    
                    simple-audio-card,codec {
                            sound-dai = <0x59>;
                    };
            };
    
            fixedregulator@2 {
                    compatible = "regulator-fixed";
                    regulator-name = "wlan-en-regulator";
                    regulator-min-microvolt = <0x1b7740>;
                    regulator-max-microvolt = <0x1b7740>;
                    startup-delay-us = <0x11170>;
                    gpio = <0x5a 0x9 0x0>;
                    enable-active-high;
                    phandle = <0x39>;
            };
    };
    

    Hitoshi Sugawara said:
    2.MMC register look up
       The look up function was developed and checked the address.
        The addresses for UART and RTC registers were able to be read correctly.
        However, the address for MMC was not able to be read and it is Segmentation fault.

    Looks like it could be that the clocks may not be turned on for that MMC module  (or it is held in reset). Make sure the device is enabled via device tree. One thing for this to work is the node needs to have a status = "okay" entry, as shown in the above example from BBB wireless. Then, double-check the addresses you are trying to read from that those are valid MMC module addresses.

    Hitoshi Sugawara said:
    3. Please let us know the version of the SDK and the protocol stack when TI evaluated the WiFi/BT operation with AM3352 and WL1837MOD?

    I don't think we actively test this combination with the official SDK hence I was pointing to the community project to serve as a known-good starting point.

    If the issues persist also feel free to share a full(!) boot log for inspection.

    Regards, Andreas

  • Hi Andreas,

    Finally, wlan0 creation was confirmed and it works on MMC2 after “calibrator” command was issued from UART in Karnel.
    Thank you so much for your kind support on this issue.

    Will keep you informed if any further issue occurs with creating another new thread.

    Best regards,
    Hitoshi

  • Sugawara-san,

    thanks for closing the loop here and reporting back on how the issue was fixed.

    Regards, Andreas