The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/pci/qcom,pcie.txt

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 * Qualcomm PCI express root complex
    2 
    3 - compatible:
    4         Usage: required
    5         Value type: <stringlist>
    6         Definition: Value should contain
    7                         - "qcom,pcie-ipq8064" for ipq8064
    8                         - "qcom,pcie-ipq8064-v2" for ipq8064 rev 2 or ipq8065
    9                         - "qcom,pcie-apq8064" for apq8064
   10                         - "qcom,pcie-apq8084" for apq8084
   11                         - "qcom,pcie-msm8996" for msm8996 or apq8096
   12                         - "qcom,pcie-ipq4019" for ipq4019
   13                         - "qcom,pcie-ipq8074" for ipq8074
   14                         - "qcom,pcie-qcs404" for qcs404
   15                         - "qcom,pcie-sc8180x" for sc8180x
   16                         - "qcom,pcie-sdm845" for sdm845
   17                         - "qcom,pcie-sm8250" for sm8250
   18                         - "qcom,pcie-sm8450-pcie0" for PCIe0 on sm8450
   19                         - "qcom,pcie-sm8450-pcie1" for PCIe1 on sm8450
   20                         - "qcom,pcie-ipq6018" for ipq6018
   21 
   22 - reg:
   23         Usage: required
   24         Value type: <prop-encoded-array>
   25         Definition: Register ranges as listed in the reg-names property
   26 
   27 - reg-names:
   28         Usage: required
   29         Value type: <stringlist>
   30         Definition: Must include the following entries
   31                         - "parf"   Qualcomm specific registers
   32                         - "dbi"    DesignWare PCIe registers
   33                         - "elbi"   External local bus interface registers
   34                         - "config" PCIe configuration space
   35                         - "atu"    ATU address space (optional)
   36 
   37 - device_type:
   38         Usage: required
   39         Value type: <string>
   40         Definition: Should be "pci". As specified in snps,dw-pcie.yaml
   41 
   42 - #address-cells:
   43         Usage: required
   44         Value type: <u32>
   45         Definition: Should be 3. As specified in snps,dw-pcie.yaml
   46 
   47 - #size-cells:
   48         Usage: required
   49         Value type: <u32>
   50         Definition: Should be 2. As specified in snps,dw-pcie.yaml
   51 
   52 - ranges:
   53         Usage: required
   54         Value type: <prop-encoded-array>
   55         Definition: As specified in snps,dw-pcie.yaml
   56 
   57 - interrupts:
   58         Usage: required
   59         Value type: <prop-encoded-array>
   60         Definition: MSI interrupt
   61 
   62 - interrupt-names:
   63         Usage: required
   64         Value type: <stringlist>
   65         Definition: Should contain "msi"
   66 
   67 - #interrupt-cells:
   68         Usage: required
   69         Value type: <u32>
   70         Definition: Should be 1. As specified in snps,dw-pcie.yaml
   71 
   72 - interrupt-map-mask:
   73         Usage: required
   74         Value type: <prop-encoded-array>
   75         Definition: As specified in snps,dw-pcie.yaml
   76 
   77 - interrupt-map:
   78         Usage: required
   79         Value type: <prop-encoded-array>
   80         Definition: As specified in snps,dw-pcie.yaml
   81 
   82 - clocks:
   83         Usage: required
   84         Value type: <prop-encoded-array>
   85         Definition: List of phandle and clock specifier pairs as listed
   86                     in clock-names property
   87 
   88 - clock-names:
   89         Usage: required
   90         Value type: <stringlist>
   91         Definition: Should contain the following entries
   92                         - "iface"       Configuration AHB clock
   93 
   94 - clock-names:
   95         Usage: required for ipq/apq8064
   96         Value type: <stringlist>
   97         Definition: Should contain the following entries
   98                         - "core"        Clocks the pcie hw block
   99                         - "phy"         Clocks the pcie PHY block
  100                         - "aux"         Clocks the pcie AUX block
  101                         - "ref"         Clocks the pcie ref block
  102 - clock-names:
  103         Usage: required for apq8084/ipq4019
  104         Value type: <stringlist>
  105         Definition: Should contain the following entries
  106                         - "aux"         Auxiliary (AUX) clock
  107                         - "bus_master"  Master AXI clock
  108                         - "bus_slave"   Slave AXI clock
  109 
  110 - clock-names:
  111         Usage: required for msm8996/apq8096
  112         Value type: <stringlist>
  113         Definition: Should contain the following entries
  114                         - "pipe"        Pipe Clock driving internal logic
  115                         - "aux"         Auxiliary (AUX) clock
  116                         - "cfg"         Configuration clock
  117                         - "bus_master"  Master AXI clock
  118                         - "bus_slave"   Slave AXI clock
  119 
  120 - clock-names:
  121         Usage: required for ipq8074
  122         Value type: <stringlist>
  123         Definition: Should contain the following entries
  124                         - "iface"       PCIe to SysNOC BIU clock
  125                         - "axi_m"       AXI Master clock
  126                         - "axi_s"       AXI Slave clock
  127                         - "ahb"         AHB clock
  128                         - "aux"         Auxiliary clock
  129 
  130 - clock-names:
  131         Usage: required for ipq6018
  132         Value type: <stringlist>
  133         Definition: Should contain the following entries
  134                         - "iface"       PCIe to SysNOC BIU clock
  135                         - "axi_m"       AXI Master clock
  136                         - "axi_s"       AXI Slave clock
  137                         - "axi_bridge"  AXI bridge clock
  138                         - "rchng"
  139 
  140 - clock-names:
  141         Usage: required for qcs404
  142         Value type: <stringlist>
  143         Definition: Should contain the following entries
  144                         - "iface"       AHB clock
  145                         - "aux"         Auxiliary clock
  146                         - "master_bus"  AXI Master clock
  147                         - "slave_bus"   AXI Slave clock
  148 
  149 - clock-names:
  150         Usage: required for sdm845
  151         Value type: <stringlist>
  152         Definition: Should contain the following entries
  153                         - "aux"         Auxiliary clock
  154                         - "cfg"         Configuration clock
  155                         - "bus_master"  Master AXI clock
  156                         - "bus_slave"   Slave AXI clock
  157                         - "slave_q2a"   Slave Q2A clock
  158                         - "tbu"         PCIe TBU clock
  159                         - "pipe"        PIPE clock
  160 
  161 - clock-names:
  162         Usage: required for sc8180x and sm8250
  163         Value type: <stringlist>
  164         Definition: Should contain the following entries
  165                         - "aux"         Auxiliary clock
  166                         - "cfg"         Configuration clock
  167                         - "bus_master"  Master AXI clock
  168                         - "bus_slave"   Slave AXI clock
  169                         - "slave_q2a"   Slave Q2A clock
  170                         - "tbu"         PCIe TBU clock
  171                         - "ddrss_sf_tbu" PCIe SF TBU clock
  172                         - "pipe"        PIPE clock
  173 
  174 - clock-names:
  175         Usage: required for sm8450-pcie0 and sm8450-pcie1
  176         Value type: <stringlist>
  177         Definition: Should contain the following entries
  178                         - "aux"         Auxiliary clock
  179                         - "cfg"         Configuration clock
  180                         - "bus_master"  Master AXI clock
  181                         - "bus_slave"   Slave AXI clock
  182                         - "slave_q2a"   Slave Q2A clock
  183                         - "tbu"         PCIe TBU clock
  184                         - "ddrss_sf_tbu" PCIe SF TBU clock
  185                         - "pipe"        PIPE clock
  186                         - "pipe_mux"    PIPE MUX
  187                         - "phy_pipe"    PIPE output clock
  188                         - "ref"         REFERENCE clock
  189                         - "aggre0"      Aggre NoC PCIe0 AXI clock, only for sm8450-pcie0
  190                         - "aggre1"      Aggre NoC PCIe1 AXI clock
  191 
  192 - resets:
  193         Usage: required
  194         Value type: <prop-encoded-array>
  195         Definition: List of phandle and reset specifier pairs as listed
  196                     in reset-names property
  197 
  198 - reset-names:
  199         Usage: required for ipq/apq8064
  200         Value type: <stringlist>
  201         Definition: Should contain the following entries
  202                         - "axi"  AXI reset
  203                         - "ahb"  AHB reset
  204                         - "por"  POR reset
  205                         - "pci"  PCI reset
  206                         - "phy"  PHY reset
  207 
  208 - reset-names:
  209         Usage: required for apq8084
  210         Value type: <stringlist>
  211         Definition: Should contain the following entries
  212                         - "core" Core reset
  213 
  214 - reset-names:
  215         Usage: required for ipq/apq8064
  216         Value type: <stringlist>
  217         Definition: Should contain the following entries
  218                         - "axi_m"               AXI master reset
  219                         - "axi_s"               AXI slave reset
  220                         - "pipe"                PIPE reset
  221                         - "axi_m_vmid"          VMID reset
  222                         - "axi_s_xpu"           XPU reset
  223                         - "parf"                PARF reset
  224                         - "phy"                 PHY reset
  225                         - "axi_m_sticky"        AXI sticky reset
  226                         - "pipe_sticky"         PIPE sticky reset
  227                         - "pwr"                 PWR reset
  228                         - "ahb"                 AHB reset
  229                         - "phy_ahb"             PHY AHB reset
  230                         - "ext"                 EXT reset
  231 
  232 - reset-names:
  233         Usage: required for ipq8074
  234         Value type: <stringlist>
  235         Definition: Should contain the following entries
  236                         - "pipe"                PIPE reset
  237                         - "sleep"               Sleep reset
  238                         - "sticky"              Core Sticky reset
  239                         - "axi_m"               AXI Master reset
  240                         - "axi_s"               AXI Slave reset
  241                         - "ahb"                 AHB Reset
  242                         - "axi_m_sticky"        AXI Master Sticky reset
  243 
  244 - reset-names:
  245         Usage: required for ipq6018
  246         Value type: <stringlist>
  247         Definition: Should contain the following entries
  248                         - "pipe"                PIPE reset
  249                         - "sleep"               Sleep reset
  250                         - "sticky"              Core Sticky reset
  251                         - "axi_m"               AXI Master reset
  252                         - "axi_s"               AXI Slave reset
  253                         - "ahb"                 AHB Reset
  254                         - "axi_m_sticky"        AXI Master Sticky reset
  255                         - "axi_s_sticky"        AXI Slave Sticky reset
  256 
  257 - reset-names:
  258         Usage: required for qcs404
  259         Value type: <stringlist>
  260         Definition: Should contain the following entries
  261                         - "axi_m"               AXI Master reset
  262                         - "axi_s"               AXI Slave reset
  263                         - "axi_m_sticky"        AXI Master Sticky reset
  264                         - "pipe_sticky"         PIPE sticky reset
  265                         - "pwr"                 PWR reset
  266                         - "ahb"                 AHB reset
  267 
  268 - reset-names:
  269         Usage: required for sc8180x, sdm845, sm8250 and sm8450
  270         Value type: <stringlist>
  271         Definition: Should contain the following entries
  272                         - "pci"                 PCIe core reset
  273 
  274 - power-domains:
  275         Usage: required for apq8084 and msm8996/apq8096
  276         Value type: <prop-encoded-array>
  277         Definition: A phandle and power domain specifier pair to the
  278                     power domain which is responsible for collapsing
  279                     and restoring power to the peripheral
  280 
  281 - vdda-supply:
  282         Usage: required
  283         Value type: <phandle>
  284         Definition: A phandle to the core analog power supply
  285 
  286 - vdda_phy-supply:
  287         Usage: required for ipq/apq8064
  288         Value type: <phandle>
  289         Definition: A phandle to the analog power supply for PHY
  290 
  291 - vdda_refclk-supply:
  292         Usage: required for ipq/apq8064
  293         Value type: <phandle>
  294         Definition: A phandle to the analog power supply for IC which generates
  295                     reference clock
  296 - vddpe-3v3-supply:
  297         Usage: optional
  298         Value type: <phandle>
  299         Definition: A phandle to the PCIe endpoint power supply
  300 
  301 - phys:
  302         Usage: required for apq8084 and qcs404
  303         Value type: <phandle>
  304         Definition: List of phandle(s) as listed in phy-names property
  305 
  306 - phy-names:
  307         Usage: required for apq8084 and qcs404
  308         Value type: <stringlist>
  309         Definition: Should contain "pciephy"
  310 
  311 - <name>-gpios:
  312         Usage: optional
  313         Value type: <prop-encoded-array>
  314         Definition: List of phandle and GPIO specifier pairs. Should contain
  315                         - "perst-gpios" PCIe endpoint reset signal line
  316                         - "wake-gpios"  PCIe endpoint wake signal line
  317 
  318 * Example for ipq/apq8064
  319         pcie@1b500000 {
  320                 compatible = "qcom,pcie-apq8064", "qcom,pcie-ipq8064", "snps,dw-pcie";
  321                 reg = <0x1b500000 0x1000
  322                        0x1b502000 0x80
  323                        0x1b600000 0x100
  324                        0x0ff00000 0x100000>;
  325                 reg-names = "dbi", "elbi", "parf", "config";
  326                 device_type = "pci";
  327                 linux,pci-domain = <0>;
  328                 bus-range = <0x00 0xff>;
  329                 num-lanes = <1>;
  330                 #address-cells = <3>;
  331                 #size-cells = <2>;
  332                 ranges = <0x81000000 0 0 0x0fe00000 0 0x00100000   /* I/O */
  333                           0x82000000 0 0 0x08000000 0 0x07e00000>; /* memory */
  334                 interrupts = <GIC_SPI 238 IRQ_TYPE_NONE>;
  335                 interrupt-names = "msi";
  336                 #interrupt-cells = <1>;
  337                 interrupt-map-mask = <0 0 0 0x7>;
  338                 interrupt-map = <0 0 0 1 &intc 0 36 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
  339                                 <0 0 0 2 &intc 0 37 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
  340                                 <0 0 0 3 &intc 0 38 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
  341                                 <0 0 0 4 &intc 0 39 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
  342                 clocks = <&gcc PCIE_A_CLK>,
  343                          <&gcc PCIE_H_CLK>,
  344                          <&gcc PCIE_PHY_CLK>,
  345                          <&gcc PCIE_AUX_CLK>,
  346                          <&gcc PCIE_ALT_REF_CLK>;
  347                 clock-names = "core", "iface", "phy", "aux", "ref";
  348                 resets = <&gcc PCIE_ACLK_RESET>,
  349                          <&gcc PCIE_HCLK_RESET>,
  350                          <&gcc PCIE_POR_RESET>,
  351                          <&gcc PCIE_PCI_RESET>,
  352                          <&gcc PCIE_PHY_RESET>,
  353                          <&gcc PCIE_EXT_RESET>;
  354                 reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
  355                 pinctrl-0 = <&pcie_pins_default>;
  356                 pinctrl-names = "default";
  357         };
  358 
  359 * Example for apq8084
  360         pcie0@fc520000 {
  361                 compatible = "qcom,pcie-apq8084", "snps,dw-pcie";
  362                 reg = <0xfc520000 0x2000>,
  363                       <0xff000000 0x1000>,
  364                       <0xff001000 0x1000>,
  365                       <0xff002000 0x2000>;
  366                 reg-names = "parf", "dbi", "elbi", "config";
  367                 device_type = "pci";
  368                 linux,pci-domain = <0>;
  369                 bus-range = <0x00 0xff>;
  370                 num-lanes = <1>;
  371                 #address-cells = <3>;
  372                 #size-cells = <2>;
  373                 ranges = <0x81000000 0 0          0xff200000 0 0x00100000   /* I/O */
  374                           0x82000000 0 0x00300000 0xff300000 0 0x00d00000>; /* memory */
  375                 interrupts = <GIC_SPI 243 IRQ_TYPE_NONE>;
  376                 interrupt-names = "msi";
  377                 #interrupt-cells = <1>;
  378                 interrupt-map-mask = <0 0 0 0x7>;
  379                 interrupt-map = <0 0 0 1 &intc 0 244 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
  380                                 <0 0 0 2 &intc 0 245 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
  381                                 <0 0 0 3 &intc 0 247 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
  382                                 <0 0 0 4 &intc 0 248 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
  383                 clocks = <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
  384                          <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
  385                          <&gcc GCC_PCIE_0_SLV_AXI_CLK>,
  386                          <&gcc GCC_PCIE_0_AUX_CLK>;
  387                 clock-names = "iface", "master_bus", "slave_bus", "aux";
  388                 resets = <&gcc GCC_PCIE_0_BCR>;
  389                 reset-names = "core";
  390                 power-domains = <&gcc PCIE0_GDSC>;
  391                 vdda-supply = <&pma8084_l3>;
  392                 phys = <&pciephy0>;
  393                 phy-names = "pciephy";
  394                 perst-gpio = <&tlmm 70 GPIO_ACTIVE_LOW>;
  395                 pinctrl-0 = <&pcie0_pins_default>;
  396                 pinctrl-names = "default";
  397         };

Cache object: ef56357a1bca8540019af393a796d2c2


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.