高通平台 8074 spi 的配置

来源:互联网 发布:期货程序化交易编程 编辑:程序博客网 时间:2024/05/12 19:57

首先:在msm8974.dtsi 文件中添加

aliases {
spi0 = &spi_0;
spi7 = &spi_7;
spi8 = &spi_8;//添加

sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
sdhc2 = &sdhc_2; /* SDC2 SD card slot */
sdhc3 = &sdhc_3; /* SDC3 SDIO slot */
sdhc4 = &sdhc_4; /* SDC4 SDIO slot */


/* smdtty devices */
smd1 = &smdtty_apps_fm;
smd2 = &smdtty_apps_riva_bt_acl;
smd3 = &smdtty_apps_riva_bt_cmd;
smd4 = &smdtty_mbalbridge;
smd5 = &smdtty_apps_riva_ant_cmd;
smd6 = &smdtty_apps_riva_ant_data;
smd7 = &smdtty_data1;
smd11 = &smdtty_data11;
smd21 = &smdtty_data21;
smd27 = &smdtty_gps_nmea;
smd36 = &smdtty_loopback;
};

实现spi_8:

  spi_8: spi@f9964000 {
                compatible = "qcom,spi-qup-v2";
                #address-cells = <1>;
                #size-cells = <0>;

                reg-names = "spi_physical", "spi_bam_physical";
                reg = <0xf9964000 0x1000>,
                      <0xf9944000 0x19000>;
                interrupt-names = "spi_irq", "spi_bam_irq";
                interrupts = <0 102 0>, <0 239 0>;
                spi-max-frequency = <19200000>;
                qcom,gpio-mosi = <&msmgpio 45 0>; /* J8[1], MOSI */
                qcom,gpio-miso = <&msmgpio 46 0>; /* J8[3], MISO */
                qcom,gpio-cs0  = <&msmgpio 47 0>;  /* J8[5], CS   */
                qcom,gpio-clk  = <&msmgpio 48 0>;  /* J8[7], CLK  */
                qcom,infinite-mode = <0>;
                qcom,use-bam;
                qcom,ver-reg-exists;
                qcom,bam-consumer-pipe-index = <14>;
                qcom,bam-producer-pipe-index = <15>;


spidev@0 { //Slave driver and CS ID
compatible = "qcom,spidev"; //Manufacture, and Mode
reg = <0>; //Same as CS ID
spi-max-frequency = <3200000>; //Max Frequency for Device
};
        };

在:/arch/arm/configs/msm8974_defconfig 文件中:

-CONFIG_SPI_SPIDEV=m 修改前
+CONFIG_SPI_SPIDEV=y  修改后

配置spi的gpio的属性:

static struct msm_gpiomux_config msm_blsp_configs[] __initdata = {
//。。。。。。。。。。。。。。
#if 1 //add by davy
{
.gpio      = 45,/* BLSP8 QUP1 SPI_DATA_MOSI */
.settings = {
[GPIOMUX_ACTIVE] = &gpio_spi_config,
[GPIOMUX_SUSPENDED] = &gpio_suspend_config[1],
},
},
{
.gpio      = 46,/* BLSP2 QUP1 SPI_DATA_MISO */
.settings = {
[GPIOMUX_ACTIVE] = &gpio_spi_config,
[GPIOMUX_SUSPENDED] = &gpio_suspend_config[1],
},
},
{
.gpio      = 48, /* BLSP2 QUP1 SPI_CLK */
.settings = {
[GPIOMUX_ACTIVE] = &gpio_spi_config,
[GPIOMUX_SUSPENDED] = &gpio_suspend_config[0],
},
},
{
.gpio      = 47, /* BLSP2 QUP1 SPI_CS0_N */
.settings = {
[GPIOMUX_ACTIVE] = &gpio_spi_config,
[GPIOMUX_SUSPENDED] = &gpio_suspend_config[0],
},
},
#endif//end add 
};

arch/arm/mach-msm/clock-8974.c  文件中

static struct clk_lookup msm_clocks_8974_common[] __initdata = {

#if 1
CLK_LOOKUP("iface_clk", gcc_blsp2_ahb_clk.c, "f9964000.spi"),
CLK_LOOKUP("core_clk", gcc_blsp2_qup2_spi_apps_clk.c, "f9964000.spi"),
#endif
    //end add

};

就可以看到在/dev/spi8.0的节点可以打开进行读写,测试;如果在过程中有电平转换的话,要注意使能电平的pwr


0 0
原创粉丝点击