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.

Linux/BEAGLEBK: Integration of GSM with SPI interface

Part Number: BEAGLEBK

Tool/software: Linux

Hi

I have to integate GSM module(which has SPI interface) to Beagle Bone Black board. I am using TI SDK.

Earlier used GSM module through USB and ACM nodes are created, that helped to access internet through PPP.

Now USB ports is needed for  two Cameras.

Kindly help to identify possible changes in linux.

Best Regards,

Vikas

  • Hi Vikas,

    You should start with SPI configuration in device tree as it is described at:
    elinux.org/BeagleBone_Black_Enable_SPIDEV
    Then you can use AT commands to manage your GSM module. You can find more details about AT commands at:
    en.wikibooks.org/.../Modems_and_AT_Commands
    www.toradex.com/.../how-to-use-gsm-3g-4g-in-embedded-linux-systems
    Also you can search for Linux driver for your specific GSM module.

    BR
    Tsvetolin Shulev
  • Hi Tsvetolin,

    I am using TI SDK instead of BBB debian package.

    Kindly assist for same.

    Best Regards,

    Vikas

  • OK, but what kind of GSM module, manufacture and model? This could help me for searching a complete solution.

    BR
    Tsvetolin Shulev
  • Hi Tsvetolin,

    I am using Telit UE-910 modem.

    Best Regards,
    Vikas
  • Hi Tsvetolin,

    I did changes in dts file and got /dev/spi1.0, /dev/spi2.0 nodes. Also with spidev_test utility able to generate clock and chip select signals.

    Changes are as below.

                                            pinmux_sp0_pins {
                                                    pinctrl-single,pins = <0x150 0x30 0x154 0x30 0x158 0x10 0x15c 0x10>;
                                                    linux,phandle = <0x90>;
                                                    phandle = <0x90>;
                                            };

                                           pinmux_sp1_pins {
                                                    pinctrl-single,pins = <0x190 0x33 0x194 0x33 0x198 0x13 0x19c 0x13>;
                                                    linux,phandle = <0x91>;
                                                    phandle = <0x91>;
                                            };

            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 = <0x2d 0x10 0x0 0x2d 0x11 0x0 0x2d 0x12 0x0 0x2d 0x13 0x0>;
                dma-names = "tx0", "rx0", "tx1", "rx1";
                pinctrl-names = "default";
                 pinctrl-0 = <0x90>;
                #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 = <0x2d 0x2a 0x0 0x2d 0x2b 0x0 0x2d 0x2c 0x0 0x2d 0x2d 0x0>;
                dma-names = "tx0", "rx0", "tx1", "rx1";
                #status = "disabled";
                status = "okay";

                pinctrl-names = "default";
                            pinctrl-0 = <0x90>;
                spidev@0 {
                    spi-max-frequency = <0x16e3600>;
                    reg = <0x0>;
                    compatible = "linux,spidev";
                };
            };

    Kindly verify the changes.

    Best Regards,

    Vikas

         

  • Hi Tsvetolin,

    I did changes in dts file and got /dev/spi1.0, /dev/spi2.0 nodes. Also with spidev_test utility able to generate clock and chip select signals.

    Changes are as below.

    pinmux_sp0_pins {
    pinctrl-single,pins = <0x150 0x30 0x154 0x30 0x158 0x10 0x15c 0x10>;
    linux,phandle = <0x90>;
    phandle = <0x90>;
    };

    pinmux_sp1_pins {
    pinctrl-single,pins = <0x190 0x33 0x194 0x33 0x198 0x13 0x19c 0x13>;
    linux,phandle = <0x91>;
    phandle = <0x91>;
    };


    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 = <0x2d 0x10 0x0 0x2d 0x11 0x0 0x2d 0x12 0x0 0x2d 0x13 0x0>;
    dma-names = "tx0", "rx0", "tx1", "rx1";
    pinctrl-names = "default";
    pinctrl-0 = <0x90>;
    #status = "disabled";
    status = "okay";
    spidev@0 {
    spi-max-frequency = <0x16e3600>;
    reg = <0x0>;
    compatible = "linux,spidev";
    };
    };



    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 = <0x2d 0x2a 0x0 0x2d 0x2b 0x0 0x2d 0x2c 0x0 0x2d 0x2d 0x0>;
    dma-names = "tx0", "rx0", "tx1", "rx1";
    #status = "disabled";
    status = "okay";

    pinctrl-names = "default";
    pinctrl-0 = <0x91>;


    spidev@1 {
    spi-max-frequency = <0x16e3600>;
    reg = <0x0>;
    compatible = "linux,spidev";
    };
    };

    Kindly verify the changes.

    Best Regards,

    Vikas