高通 -- 串口配置

1.更改串口配置涉及文件 

arch/arm/mach-msm/board-8610-gpiomux.c -- 功能选择; 

arch/arm/boot/dts/msm8610.dtsi -- pdata注册; 

arch/arm/mach-msm/clock-8610.c -- uart clk初始化; 

驱动文件: 

低速版本:compatible = "qcom,msm-lsuart-v14";@msm_serial_hs_lite.c 

高速版本:compatible = "qcom,msm-hsuart-v14";msm_serial_hs.c 

生成节点: 

低速:/dev/ttyHSLx 

高速:/dev/ttyHSx 

 

2. 高通很多管脚支持复用,比如msm8610的gpio4,6,7,8脚 

GPIO_6/BLSP2_SPI_CS_N /BLSP2_UART_CTS_N /BLSP2_I2C_SDA_A AV14 不是唤醒中断 
GPIO_7/WVGA_MODE_EN/ BLSP2_SPI_CLK/ BLSP2_UART_RFR_N /BLSP2_I2C_SCL_A AW13 
GPIO_5/BLSP2_SPI_MISO/ BLSP2_UART_RX/BLSP1_I2C_SCL_B AU13 不是唤醒中断 
GPIO_4/BLSP2_SPI_MOSI/ BLSP2_UART_TX/BLSP1_I2C_SDA_B 
支持GPIO,SPI,UART,I2C;  

 

3.配置成UART 

3.1. 管脚功能定义为uart@arch/arm/mach-msm/board-8610-gpiomux.c: 

static struct msm_gpiomux_config msm_focaltech_configs[] __initdata = { 
{ 
    { 
        .gpio   = 4,   /* BLSP1 QUP4 SPI_DATA_MOSI */
        .settings = { 
            [GPIOMUX_ACTIVE] = &gpio_uart_config, 
            [GPIOMUX_SUSPENDED] = &gpio_uart_config, 
        }, 
    }, 
    { 
        .gpio   = 5,   /* BLSP1 QUP4 SPI_DATA_MISO */ 
        .settings = { 
            [GPIOMUX_ACTIVE] = &gpio_uart_config, 
            [GPIOMUX_SUSPENDED] = &gpio_uart_config, 
        }, 
    }, 
}; 

3.2.在dts中加入uart的platform_data配置@arch/arm/boot/dts/msm8610.dtsi,同时注释原有的spi_2定义: 

</pre><pre name="code" class="cpp">serial@f991e000 { 
	compatible = "qcom,msm-lsuart-v14"; // 低速版本@msm_serial_hs_lite.c 
	reg = <0xf991e000 0x1000>; // address 
	interrupts = <0 108 0>; 
	status = "ok"; 
	qcom,msm-bus,name = "blsp1_uart2"; // UART 
	qcom,msm-bus,num-cases = <2>; 
	qcom,msm-bus,num-paths = <1>; 
	qcom,msm-bus,vectors-KBps = 
		<86 512 0 0>, 
		<86 512 500 800>; 
}; 

3.3. 添加uart时钟定义,不然驱动注册是会因找不到clk失败@arch/arm/mach-msm/clock-8610.c: 

+       CLK_LOOKUP("iface_clk",  gcc_blsp1_ahb_clk.c, "f991e000.serial"), 
+       CLK_LOOKUP("core_clk",  gcc_blsp1_uart2_apps_clk.c, "f991e000.serial"), 

4.配置成SPI 

4.1. 管脚功能定义为uart@arch/arm/mach-msm/board-8610-gpiomux.c: 

{ 
	.gpio      = 4,                            /* BLSP1 QUP4 SPI_DATA_MOSI */ 
	.settings = { 
       [GPIOMUX_ACTIVE] = &gpio_spi_config, 
       [GPIOMUX_SUSPENDED] = &gpio_spi_susp_config, 
	}, 
}, 
{ 
	.gpio      = 5,                            /* BLSP1 QUP4 SPI_DATA_MISO */ 
   .settings = { 
       [GPIOMUX_ACTIVE] = &gpio_out_act_cfg, 
       [GPIOMUX_SUSPENDED] = &gpio_out_sus_cfg, 
   }, 
}, 

4.2. 在dts中加入spi2的platform_data配置@arch/arm/boot/dts/msm8610.dtsi: 

aliases { 
     sdhc1 = &sdhc_1; /* SDC1 eMMC slot */ 
     sdhc2 = &sdhc_2; /* SDC2 SD card slot */ 
     spi4  = &spi_4; 
     spi2  = &spi_2; 
}; 
 
spi_2: spi@f9924000 { // spi_2作为别名,这样就可以有多个“spi“这个节点名 
     compatible = "qcom,spi-qup-v2"; 
     #address-cells = <1>; 
     #size-cells = <0>; 
     reg-names = "spi_physical", "spi_bam_physical"; 
     reg = <0xf9924000 0x1000>, 
           <0xf9904000 0x15000>; 
     interrupt-names = "spi_irq", "spi_bam_irq"; 
     interrupts = <0 96 0>, <0 238 0>; 
     spi-max-frequency = <50000000>; 

     qcom,gpio-mosi = <&msmgpio 4 0>; 
     qcom,gpio-miso = <&msmgpio 5 0>; 
     qcom,gpio-clk  = <&msmgpio 7 0>; 
     qcom,gpio-cs0  = <&msmgpio 6 0>; 

     qcom,infinite-mode = <0>; 
     qcom,use-bam; 
     qcom,ver-reg-exists; 
     qcom,bam-consumer-pipe-index = <14>; 
     qcom,bam-producer-pipe-index = <15>; 
     qcom,master-id = <86>; 
}; 


 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值