1. 程式人生 > >高通linux-uart筆記

高通linux-uart筆記

  1. 概述

驅動:

drivers/tty/serial/

msm_serial_hs_lite.c: 低速版本, 裝置樹內容配置為compatible = "qcom,msm-lsuart-v14";

msm_serial_hs.c: 高速版本,  裝置樹內容配置為compatible = "qcom,msm-hsuart-v14";

2. 分析

  1. 裝置樹內容

  uart_console_active2: uart_console_active2 {

   mux {

    pins = "gpio20", "gpio21";

    function = "blsp_uart2";

   };

   config {

    pins = "gpio20", "gpio21";

    drive-strength = <2>;

    bias-disable;

   };

  };

  uart_console_sleep2: uart_console_sleep2 {

   mux {

    pins = "gpio20", "gpio21";

    function = "blsp_uart2";

   };

   config {

    pins = "gpio20", "gpio21";

    drive-strength = <2>;

    bias-pull-down;

   };

  };

&blsp1_uart2 {

 status = "ok";

 pinctrl-names = "default";

 pinctrl-0 = <&uart_console_sleep2>;

};

 blsp1_uart2_hs: [email protected] {

  compatible = "qcom,msm-hsuart-v14";

  reg = <0x78b0000 0x200>,

   <0x7884000 0x1f000>;

  reg-names = "core_mem", "bam_mem";

  interrupt-names = "core_irq", "bam_irq", "wakeup_irq";

  #address-cells = <0>;

  interrupt-parent = <&blsp1_uart2_hs>;

  interrupts = <0 1 2>;

  #interrupt-cells = <1>;

  interrupt-map-mask = <0xffffffff>;

  interrupt-map = <0 &intc 0 108 0

    1 &intc 0 238 0

    2 &msm_gpio 21 0>;

  qcom,inject-rx-on-wakeup;

  qcom,rx-char-to-inject = <0xfd>;

  qcom,master-id = <86>;

  clock-names = "core_clk", "iface_clk";

  clocks = <&clock_gcc 0xf8a61c96>,

    <&clock_gcc 0x8caa5b4f>;

  pinctrl-names = "sleep", "default";

  pinctrl-0 = <&blsp1_uart2_tx_sleep>, <&blsp1_uart2_rxcts_sleep>,

     <&blsp1_uart2_rfr_sleep>;

  pinctrl-1 = <&blsp1_uart2_tx_active>,

   <&blsp1_uart2_rxcts_active>, <&blsp1_uart2_rfr_active>;

  qcom,bam-tx-ep-pipe-index = <2>;

  qcom,bam-rx-ep-pipe-index = <3>;

  qcom,msm-bus,name = "blsp1_uart2_hs";

  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>;

  status = "disabled";

 };