123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- * Qualcomm MSM HSUART
- Required properties:
- - compatible :
- - "qcom,msm-hsuart-v14" to be used for UARTDM Core v1.4
- - reg : offset and length of the register set for both the device,
- uart core and bam core
- - reg-names :
- - "core_mem" to be used as name of the uart core
- - "bam_mem" to be used as name of the bam core
- - interrupts : interrupts for both the device,uart core and bam core
- - interrupt-names :
- - "core_irq" to be used as uart irq
- - "bam irq" to be used as bam irq
- - #interrupt-cells: Specifies the number of cells needed to encode an interrupt
- source. The type shall be a <u32> and the value shall be 1
- - #address-cells: Specifies the number of cells needed to encode an address.
- The type shall be <u32> and the value shall be 0
- - interrupt-parent = It is needed for interrupt mapping
- - bam-tx-ep-pipe-index : BAM TX Endpoint Pipe Index for HSUART
- - bam-rx-ep-pipe-index : BAM RX Endpoint Pipe Index for HSUART
- BLSP has a static pipe allocation and assumes a pair-pipe for each uart core.
- Pipes [2*i : 2*i+1] are allocated for UART cores where i = [0 : 5].
- Hence, Minimum and Maximum permitted value of endpoint pipe index to be used
- with uart core is 0 and 11 respectively.
- There is one HSUART block used in MSM devices,
- "qcom,msm-hsuart-v14". The msm-serial-hs driver is
- able to handle this, and matches against the "qcom,msm-hsuart-v14"
- as the compatibility.
- The registers for the "qcom,msm-hsuart-v14" device need to specify both
- register blocks - uart core and bam core.
- Example:
- uart7: uart@f995d000 {
- compatible = "qcom,msm-hsuart-v14";
- reg = <0xf995d000 0x1000>,
- <0xf9944000 0x5000>;
- reg-names = "core_mem", "bam_mem";
- interrupt-names = "core_irq", "bam_irq";
- #address-cells = <0>;
- interrupt-parent = <&uart7>;
- interrupts = <0 1>;
- #interrupt-cells = <1>;
- interrupt-map = <0 &intc 0 113 0
- 1 &intc 0 239 0>
- qcom,bam-tx-ep-pipe-index = <0>;
- qcom,bam-rx-ep-pipe-index = <1>;
- };
- Optional properties:
- - qcom,<gpio-name>-gpio : handle to the GPIO node, see "gpios property" in
- Documentation/devicetree/bindings/gpio/gpio.txt.
- "gpio-name" can be "tx", "rx", "cts" and "rfr" based on number of UART GPIOs
- need to configured.
- Gpio's are optional if it is required to be not configured by UART driver or
- case where there is nothing connected and we want to use internal loopback mode
- for uart.
- - qcom, wakeup_irq : UART RX GPIO IRQ line to be configured as wakeup source.
- - qcom,inject-rx-on-wakeup : inject_rx_on_wakeup enables feature where on
- receiving interrupt with UART RX GPIO IRQ line (i.e. above wakeup_irq property),
- HSUART driver injects provided character with property rx_to_inject.
- - qcom, rx-char-to-inject : The character to be inserted on wakeup.
- - qcom, no-suspend-delay : This decides system to go to suspend immediately
- or not
- - Refer to "Documentation/devicetree/bindings/arm/msm/msm_bus.txt" for
- below optional properties:
- - qcom,msm_bus,name
- - qcom,msm_bus,num_cases
- - qcom,msm_bus,active_only
- - qcom,msm_bus,num_paths
- - qcom,msm_bus,vectors
- Aliases :
- An alias may be optionally used to bind the UART device to a TTY device
- (ttyHS<alias_num>) with a given alias number. Aliases are of the form
- uart<n> where <n> is an integer representing the alias number to use.
- On systems with multiple UART devices present, an alias may optionally be
- defined for such devices. The alias value should be from 0 to 255.
- Example:
- aliases {
- uart4 = &uart7; // This device will be enumerated as ttyHS4
- };
- uart7: uart@f995d000 {
- compatible = "qcom,msm-hsuart-v14"
- reg = <0x19c40000 0x1000">,
- <0xf9944000 0x5000>;
- reg-names = "core_mem", "bam_mem";
- interrupt-names = "core_irq", "bam_irq", "wakeup_irq";
- #address-cells = <0>;
- interrupt-parent = <&uart7>;
- interrupts = <0 1 2>;
- #interrupt-cells = <1>;
- interrupt-map-mask = <0xffffffff>;
- interrupt-map = <0 &intc 0 113 0
- 1 &intc 0 239 0
- 2 &msmgpio 42 0>;
- qcom,tx-gpio = <&msmgpio 41 0x00>;
- qcom,rx-gpio = <&msmgpio 42 0x00>;
- qcom,cts-gpio = <&msmgpio 43 0x00>;
- qcom,rfr-gpio = <&msmgpio 44 0x00>;
- qcom,inject-rx-on-wakeup = <1>;
- qcom,rx-char-to-inject = <0xFD>;
- qcom,bam-tx-ep-pipe-index = <0>;
- qcom,bam-rx-ep-pipe-index = <1>;
- qcom,msm-bus,name = "uart7";
- qcom,msm-bus,num-cases = <2>;
- qcom,msm-bus,num-paths = <1>;
- qcom,msm-bus,vectors-KBps =
- <84 512 0 0>,
- <84 512 500 800>;
- };
|