| MSM HSIC XHCI controller |
| |
| Required properties : |
| - compatible : should be "qcom,xhci-msm-hsic" |
| - reg : offset and length of the register set in the memory map |
| - interrupts: IRQ lines used by this controller. |
| - interrupt-names : Required interrupt resource entries are: |
| "core_irq" : Interrupt for HSIC core |
| "pwr_event_irq" : Interrupt generated by HSIC controller due to |
| change in power state. |
| - <supply-name>-supply: handle to the regulator device tree node |
| Required "supply-name" are "hsic-vdd-dig" and "hsic-gdsc-supply". |
| - pinctrl-names : This should be defined if a target uses pinctrl framework. |
| See "pinctrl" in Documentation/devicetree/bindings/pinctrl/msm-pinctrl.txt. |
| It should specify the names of the configs that pinctrl can install in driver |
| Following are the pinctrl configs that can be installed |
| "hsic_xhci_active" : Active configuration of pins, this should specify active |
| config defined in pin groups of used gpio's from strobe, data and |
| host-ready. |
| "hsic_xhci_sleep" : Disabled configuration of pins, this should specify sleep |
| config defined in pin groups of used gpio's from strobe, data and |
| host-ready. |
| - hsic,<gpio-name>-gpio : handle to the GPIO node, see "gpios property" |
| in Documentation/devicetree/bindings/gpio/gpio.txt. |
| If pinctrl is being used we need to only define gpio's which drives signals |
| using gpiolib api's like host-ready in dt, the node name in such cases should |
| be msm_gpio as defined in pinctrl-dtsi. For gpio's only installing active and |
| sleep configs it is not required to specify the gpio in dt file. |
| Required "gpio-name" are "strobe" and "data". |
| - qcom,vdd-voltage-level: This property must be a list of three integer |
| values (no, min, max) where each value represents either a voltage in |
| microvolts or a value corresponding to voltage corner. |
| |
| Optional properties : |
| - interrupt-names : Optional interrupt resource entry is: |
| "wakeup_irq" : Interrupt generated by out of band remote wakeup gpio. |
| - qcom,host-ready-gpio: This gpio will be used to indicate hsic host |
| readiness to attached peripheral |
| - 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,num_paths |
| - qcom,msm_bus,vectors |
| - qcom,disable-hw-clk-gating: If present then hw clock gating in controller |
| is disabled. Internal clock gating is enabled by default in hw. |
| |
| Example MSM HSIC XHCI controller device node : |
| xhci_hsic_host: qcom,xhci-msm-hsic@0xf9c00000 { |
| compatible = "qcom,xhci-msm-hsic"; |
| reg = <0xf9c00000 0xfc000>; |
| interrupt-parent = <&xhci_hsic_host>; |
| interrupts = <0 1 2>; |
| #interrupt-cells = <1>; |
| interrupt-map-mask = <0xffffffff>; |
| interrupt-map = <0 &intc 0 32 0 |
| 1 &intc 0 29 0 |
| 2 &msm_gpio 107 0x8>; |
| interrupt-names = "core_irq", "pwr_event_irq", "wakeup_irq"; |
| hsic-vdd-dig-supply = <&pma8084_s2_corner>; |
| hsic-gdsc-supply = <&gdsc_usb_hsic>; |
| /* If pinctrl is used */ |
| pinctrl-names = "hsic_xhci_active","hsic_xhci_sleep"; |
| pinctrl-0 = <&hsic_act>; |
| pinctrl-1 = <&hsic_sus>; |
| qcom,host-ready-gpio = <&msm_gpio 106 0x00>; |
| /* else (pinctrl is not used) */ |
| hsic,strobe-gpio = <&msmgpio 134 0x00>; |
| hsic,data-gpio = <&msmgpio 135 0x00>; |
| qcom,host-ready-gpio = <&msmgpio 106 0x00>; |
| /* End */ |
| qcom,vdd-voltage-level = <1 5 7>; |
| |
| qcom,msm-bus,name = "hsic"; |
| qcom,msm-bus,num-cases = <2>; |
| qcom,msm-bus,num-paths = <1>; |
| qcom,msm-bus,vectors-KBps = |
| <85 512 0 0>, |
| <85 512 40000 160000>; |
| }; |