这篇教程C++ to_exynos_pcie函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中to_exynos_pcie函数的典型用法代码示例。如果您正苦于以下问题:C++ to_exynos_pcie函数的具体用法?C++ to_exynos_pcie怎么用?C++ to_exynos_pcie使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了to_exynos_pcie函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: exynos_pcie_establish_linkstatic int exynos_pcie_establish_link(struct pcie_port *pp){ struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); void __iomem *elbi_base = exynos_pcie->elbi_base; void __iomem *pmu_base = exynos_pcie->pmu_base; if (dw_pcie_link_up(pp)) { dev_err(pp->dev, "Link already up/n"); return 0; } writel(1, pmu_base + PCIE_PHY_CONTROL); exynos_pcie_assert_phy_reset(pp); exynos_pcie_sideband_dbi_r_mode(pp, true); exynos_pcie_sideband_dbi_w_mode(pp, true); /* setup root complex */ dw_pcie_setup_rc(pp); exynos_pcie_sideband_dbi_r_mode(pp, false); exynos_pcie_sideband_dbi_w_mode(pp, false); /* assert LTSSM enable */ writel(PCIE_ELBI_LTSSM_ENABLE, elbi_base + PCIE_APP_LTSSM_ENABLE); dev_info(pp->dev, "Link up/n"); return 0;}
开发者ID:qkdang,项目名称:m462,代码行数:28,
示例2: exynos_pcie_power_off_phystatic void exynos_pcie_power_off_phy(struct pcie_port *pp){ u32 val; struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); val = exynos_phy_readl(exynos_pcie, PCIE_PHY_COMMON_POWER); val |= PCIE_PHY_COMMON_PD_CMN; exynos_phy_writel(exynos_pcie, val, PCIE_PHY_COMMON_POWER); val = exynos_phy_readl(exynos_pcie, PCIE_PHY_TRSV0_POWER); val |= PCIE_PHY_TRSV0_PD_TSV; exynos_phy_writel(exynos_pcie, val, PCIE_PHY_TRSV0_POWER); val = exynos_phy_readl(exynos_pcie, PCIE_PHY_TRSV1_POWER); val |= PCIE_PHY_TRSV1_PD_TSV; exynos_phy_writel(exynos_pcie, val, PCIE_PHY_TRSV1_POWER); val = exynos_phy_readl(exynos_pcie, PCIE_PHY_TRSV2_POWER); val |= PCIE_PHY_TRSV2_PD_TSV; exynos_phy_writel(exynos_pcie, val, PCIE_PHY_TRSV2_POWER); val = exynos_phy_readl(exynos_pcie, PCIE_PHY_TRSV3_POWER); val |= PCIE_PHY_TRSV3_PD_TSV; exynos_phy_writel(exynos_pcie, val, PCIE_PHY_TRSV3_POWER);}
开发者ID:borkmann,项目名称:kasan,代码行数:25,
示例3: exynos_pcie_assert_phy_resetstatic void exynos_pcie_assert_phy_reset(struct pcie_port *pp){ struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); exynos_blk_writel(exynos_pcie, 0, PCIE_PHY_MAC_RESET); exynos_blk_writel(exynos_pcie, 1, PCIE_PHY_GLOBAL_RESET);}
开发者ID:borkmann,项目名称:kasan,代码行数:7,
示例4: exynos_pcie_host_initstatic void exynos_pcie_host_init(struct pcie_port *pp){ struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); exynos_pcie_establish_link(exynos_pcie); exynos_pcie_enable_interrupts(exynos_pcie);}
开发者ID:acton393,项目名称:linux,代码行数:7,
示例5: exynos_pcie_establish_linkstatic int exynos_pcie_establish_link(struct pcie_port *pp){ u32 val; int count = 0; struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); if (dw_pcie_link_up(pp)) { dev_err(pp->dev, "Link already up/n"); return 0; } /* assert reset signals */ exynos_pcie_assert_core_reset(pp); exynos_pcie_assert_phy_reset(pp); /* de-assert phy reset */ exynos_pcie_deassert_phy_reset(pp); /* initialize phy */ exynos_pcie_init_phy(pp); /* pulse for common reset */ exynos_blk_writel(exynos_pcie, 1, PCIE_PHY_COMMON_RESET); udelay(500); exynos_blk_writel(exynos_pcie, 0, PCIE_PHY_COMMON_RESET); /* de-assert core reset */ exynos_pcie_deassert_core_reset(pp); /* setup root complex */ dw_pcie_setup_rc(pp); /* assert reset signal */ exynos_pcie_assert_reset(pp); /* assert LTSSM enable */ exynos_elb_writel(exynos_pcie, PCIE_ELBI_LTSSM_ENABLE, PCIE_APP_LTSSM_ENABLE); /* check if the link is up or not */ while (!dw_pcie_link_up(pp)) { mdelay(100); count++; if (count == 10) { while (exynos_phy_readl(exynos_pcie, PCIE_PHY_PLL_LOCKED) == 0) { val = exynos_blk_readl(exynos_pcie, PCIE_PHY_PLL_LOCKED); dev_info(pp->dev, "PLL Locked: 0x%x/n", val); } dev_err(pp->dev, "PCIe Link Fail/n"); return -EINVAL; } } dev_info(pp->dev, "Link up/n"); return 0;}
开发者ID:03199618,项目名称:linux,代码行数:59,
示例6: exynos_pcie_writel_rcstatic void exynos_pcie_writel_rc(struct pcie_port *pp, u32 reg, u32 val){ struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); exynos_pcie_sideband_dbi_w_mode(exynos_pcie, true); writel(val, pp->dbi_base + reg); exynos_pcie_sideband_dbi_w_mode(exynos_pcie, false);}
开发者ID:acton393,项目名称:linux,代码行数:8,
示例7: exynos_pcie_clear_irq_pulsestatic void exynos_pcie_clear_irq_pulse(struct pcie_port *pp){ u32 val; struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); val = exynos_elb_readl(exynos_pcie, PCIE_IRQ_PULSE); exynos_elb_writel(exynos_pcie, val, PCIE_IRQ_PULSE);}
开发者ID:DenisLug,项目名称:mptcp,代码行数:8,
示例8: exynos_pcie_assert_resetstatic void exynos_pcie_assert_reset(struct pcie_port *pp){ struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); if (exynos_pcie->reset_gpio >= 0) devm_gpio_request_one(pp->dev, exynos_pcie->reset_gpio, GPIOF_OUT_INIT_HIGH, "RESET");}
开发者ID:DenisLug,项目名称:mptcp,代码行数:8,
示例9: exynos_pcie_write_dbistatic void exynos_pcie_write_dbi(struct dw_pcie *pci, void __iomem *base, u32 reg, size_t size, u32 val){ struct exynos_pcie *ep = to_exynos_pcie(pci); exynos_pcie_sideband_dbi_w_mode(ep, true); dw_pcie_write(base + reg, size, val); exynos_pcie_sideband_dbi_w_mode(ep, false);}
开发者ID:ReneNyffenegger,项目名称:linux,代码行数:9,
示例10: exynos_pcie_link_upstatic int exynos_pcie_link_up(struct pcie_port *pp){ struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); u32 val = readl(exynos_pcie->elbi_base + PCIE_ELBI_RDLH_LINKUP); if (val == PCIE_ELBI_LTSSM_ENABLE) return 1; return 0;}
开发者ID:qkdang,项目名称:m462,代码行数:10,
示例11: exynos_pcie_clear_irq_levelstatic void exynos_pcie_clear_irq_level(struct pcie_port *pp){ u32 val; struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); void __iomem *elbi_base = exynos_pcie->elbi_base; val = readl(elbi_base + PCIE_IRQ_LEVEL); writel(val, elbi_base + PCIE_IRQ_LEVEL); return;}
开发者ID:qkdang,项目名称:m462,代码行数:10,
示例12: exynos_pcie_readl_rcstatic u32 exynos_pcie_readl_rc(struct pcie_port *pp, u32 reg){ struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); u32 val; exynos_pcie_sideband_dbi_r_mode(exynos_pcie, true); val = readl(pp->dbi_base + reg); exynos_pcie_sideband_dbi_r_mode(exynos_pcie, false); return val;}
开发者ID:acton393,项目名称:linux,代码行数:10,
示例13: exynos_pcie_enable_irq_pulsestatic void exynos_pcie_enable_irq_pulse(struct pcie_port *pp){ u32 val; struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); /* enable INTX interrupt */ val = IRQ_INTA_ASSERT | IRQ_INTB_ASSERT | IRQ_INTC_ASSERT | IRQ_INTD_ASSERT; exynos_elb_writel(exynos_pcie, val, PCIE_IRQ_EN_PULSE);}
开发者ID:DenisLug,项目名称:mptcp,代码行数:10,
示例14: exynos_pcie_host_initstatic int exynos_pcie_host_init(struct pcie_port *pp){ struct dw_pcie *pci = to_dw_pcie_from_pp(pp); struct exynos_pcie *ep = to_exynos_pcie(pci); exynos_pcie_establish_link(ep); exynos_pcie_enable_interrupts(ep); return 0;}
开发者ID:ReneNyffenegger,项目名称:linux,代码行数:10,
示例15: exynos_pcie_wr_own_confstatic int exynos_pcie_wr_own_conf(struct pcie_port *pp, int where, int size, u32 val){ struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); int ret; exynos_pcie_sideband_dbi_w_mode(exynos_pcie, true); ret = dw_pcie_cfg_write(pp->dbi_base + where, size, val); exynos_pcie_sideband_dbi_w_mode(exynos_pcie, false); return ret;}
开发者ID:acton393,项目名称:linux,代码行数:11,
示例16: exynos_pcie_link_upstatic int exynos_pcie_link_up(struct dw_pcie *pci){ struct exynos_pcie *ep = to_exynos_pcie(pci); u32 val; val = exynos_pcie_readl(ep->mem_res->elbi_base, PCIE_ELBI_RDLH_LINKUP); if (val == PCIE_ELBI_LTSSM_ENABLE) return 1; return 0;}
开发者ID:ReneNyffenegger,项目名称:linux,代码行数:11,
示例17: exynos_pcie_read_dbistatic u32 exynos_pcie_read_dbi(struct dw_pcie *pci, void __iomem *base, u32 reg, size_t size){ struct exynos_pcie *ep = to_exynos_pcie(pci); u32 val; exynos_pcie_sideband_dbi_r_mode(ep, true); dw_pcie_read(base + reg, size, &val); exynos_pcie_sideband_dbi_r_mode(ep, false); return val;}
开发者ID:ReneNyffenegger,项目名称:linux,代码行数:11,
示例18: exynos_pcie_deassert_phy_resetstatic void exynos_pcie_deassert_phy_reset(struct pcie_port *pp){ struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); exynos_blk_writel(exynos_pcie, 0, PCIE_PHY_GLOBAL_RESET); exynos_elb_writel(exynos_pcie, 1, PCIE_PWR_RESET); exynos_blk_writel(exynos_pcie, 0, PCIE_PHY_COMMON_RESET); exynos_blk_writel(exynos_pcie, 0, PCIE_PHY_CMN_REG); exynos_blk_writel(exynos_pcie, 0, PCIE_PHY_TRSVREG_RESET); exynos_blk_writel(exynos_pcie, 0, PCIE_PHY_TRSV_RESET);}
开发者ID:borkmann,项目名称:kasan,代码行数:11,
示例19: exynos_pcie_enable_irq_pulsestatic void exynos_pcie_enable_irq_pulse(struct pcie_port *pp){ u32 val; struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); void __iomem *elbi_base = exynos_pcie->elbi_base; /* enable INTX interrupt */ val = IRQ_INTA_ASSERT | IRQ_INTB_ASSERT | IRQ_INTC_ASSERT | IRQ_INTD_ASSERT, writel(val, elbi_base + PCIE_IRQ_EN_PULSE); return;}
开发者ID:qkdang,项目名称:m462,代码行数:12,
示例20: exynos_pcie_wr_own_confstatic int exynos_pcie_wr_own_conf(struct pcie_port *pp, int where, int size, u32 val){ struct dw_pcie *pci = to_dw_pcie_from_pp(pp); struct exynos_pcie *ep = to_exynos_pcie(pci); int ret; exynos_pcie_sideband_dbi_w_mode(ep, true); ret = dw_pcie_write(pci->dbi_base + where, size, val); exynos_pcie_sideband_dbi_w_mode(ep, false); return ret;}
开发者ID:ReneNyffenegger,项目名称:linux,代码行数:12,
示例21: exynos_pcie_msi_initstatic void exynos_pcie_msi_init(struct pcie_port *pp){ u32 val; struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); dw_pcie_msi_init(pp); /* enable MSI interrupt */ val = exynos_elb_readl(exynos_pcie, PCIE_IRQ_EN_LEVEL); val |= IRQ_MSI_ENABLE; exynos_elb_writel(exynos_pcie, val, PCIE_IRQ_EN_LEVEL);}
开发者ID:DenisLug,项目名称:mptcp,代码行数:12,
示例22: exynos_pcie_assert_core_resetstatic void exynos_pcie_assert_core_reset(struct pcie_port *pp){ u32 val; struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); val = exynos_elb_readl(exynos_pcie, PCIE_CORE_RESET); val &= ~PCIE_CORE_RESET_ENABLE; exynos_elb_writel(exynos_pcie, val, PCIE_CORE_RESET); exynos_elb_writel(exynos_pcie, 0, PCIE_PWR_RESET); exynos_elb_writel(exynos_pcie, 0, PCIE_STICKY_RESET); exynos_elb_writel(exynos_pcie, 0, PCIE_NONSTICKY_RESET);}
开发者ID:borkmann,项目名称:kasan,代码行数:12,
示例23: exynos_pcie_msi_initstatic void exynos_pcie_msi_init(struct pcie_port *pp){ u32 val; struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); void __iomem *elbi_base = exynos_pcie->elbi_base; dw_pcie_msi_init(pp); /* enable MSI interrupt */ val = readl(elbi_base + PCIE_IRQ_EN_LEVEL); val |= IRQ_MSI_ENABLE; writel(val, elbi_base + PCIE_IRQ_EN_LEVEL); return;}
开发者ID:qkdang,项目名称:m462,代码行数:14,
示例24: exynos_pcie_phy_clock_enablestatic int exynos_pcie_phy_clock_enable(struct pcie_port *pp, int enable){ struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); struct exynos_pcie_clks *clks = &exynos_pcie->clks; int i; if (enable) { for (i = 0; i < exynos_pcie->phy_clk_num; i++) clk_prepare_enable(clks->phy_clks[i]); } else { for (i = 0; i < exynos_pcie->phy_clk_num; i++) clk_disable_unprepare(clks->phy_clks[i]); } return 0;}
开发者ID:MikeForeskin,项目名称:Vindicator-S6-MM,代码行数:15,
示例25: exynos_pcie_deassert_core_resetstatic void exynos_pcie_deassert_core_reset(struct pcie_port *pp){ u32 val; struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); val = exynos_elb_readl(exynos_pcie, PCIE_CORE_RESET); val |= PCIE_CORE_RESET_ENABLE; exynos_elb_writel(exynos_pcie, val, PCIE_CORE_RESET); exynos_elb_writel(exynos_pcie, 1, PCIE_STICKY_RESET); exynos_elb_writel(exynos_pcie, 1, PCIE_NONSTICKY_RESET); exynos_elb_writel(exynos_pcie, 1, PCIE_APP_INIT_RESET); exynos_elb_writel(exynos_pcie, 0, PCIE_APP_INIT_RESET); exynos_blk_writel(exynos_pcie, 1, PCIE_PHY_MAC_RESET);}
开发者ID:borkmann,项目名称:kasan,代码行数:15,
示例26: exynos_pcie_sideband_dbi_r_modestatic void exynos_pcie_sideband_dbi_r_mode(struct pcie_port *pp, bool on){ u32 val; struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); if (on) { val = exynos_elb_readl(exynos_pcie, PCIE_ELBI_SLV_ARMISC); val |= PCIE_ELBI_SLV_DBI_ENABLE; exynos_elb_writel(exynos_pcie, val, PCIE_ELBI_SLV_ARMISC); } else { val = exynos_elb_readl(exynos_pcie, PCIE_ELBI_SLV_ARMISC); val &= ~PCIE_ELBI_SLV_DBI_ENABLE; exynos_elb_writel(exynos_pcie, val, PCIE_ELBI_SLV_ARMISC); }}
开发者ID:borkmann,项目名称:kasan,代码行数:15,
示例27: exynos_pcie_sideband_dbi_w_modestatic void exynos_pcie_sideband_dbi_w_mode(struct pcie_port *pp, bool on){ u32 val; struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); if (on) { val = readl(exynos_pcie->elbi_base + PCIE_ELBI_SLV_AWMISC); val |= PCIE_ELBI_SLV_DBI_ENABLE; writel(val, exynos_pcie->elbi_base + PCIE_ELBI_SLV_AWMISC); } else { val = readl(exynos_pcie->elbi_base + PCIE_ELBI_SLV_AWMISC); val &= ~PCIE_ELBI_SLV_DBI_ENABLE; writel(val, exynos_pcie->elbi_base + PCIE_ELBI_SLV_AWMISC); }}
开发者ID:qkdang,项目名称:m462,代码行数:15,
示例28: exynos_pcie_clock_getstatic int exynos_pcie_clock_get(struct pcie_port *pp){ struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); struct exynos_pcie_clks *clks = &exynos_pcie->clks; int i; if (exynos_pcie->ch_num == 0) { clks->pcie_clks[0] = devm_clk_get(pp->dev, "aclk_xiu_modemx"); clks->pcie_clks[1] = devm_clk_get(pp->dev, "aclk_combo_phy_modem_pcs_pclk"); clks->pcie_clks[2] = devm_clk_get(pp->dev, "sclk_combo_phy_modem_26m"); clks->pcie_clks[3] = devm_clk_get(pp->dev, "pclk_async_combo_phy_modem"); clks->pcie_clks[4] = devm_clk_get(pp->dev, "aclk_pcie_modem_mstr_aclk"); clks->pcie_clks[5] = devm_clk_get(pp->dev, "aclk_pcie_modem_slv_aclk"); clks->pcie_clks[6] = devm_clk_get(pp->dev, "aclk_pcie_modem_dbi_aclk"); clks->pcie_clks[7] = devm_clk_get(pp->dev, "sclk_pcie_modem_gated"); clks->pcie_clks[8] = devm_clk_get(pp->dev, "sclk_phy_fsys0"); clks->phy_clks[0] = devm_clk_get(pp->dev, "phyclk_pcie_tx0_gated"); clks->phy_clks[1] = devm_clk_get(pp->dev, "phyclk_pcie_rx0_gated"); } else if (exynos_pcie->ch_num == 1) { clks->pcie_clks[0] = devm_clk_get(pp->dev, "aclk_xiu_wifi1x"); clks->pcie_clks[1] = devm_clk_get(pp->dev, "aclk_ahb2axi_pcie_wifi1"); clks->pcie_clks[2] = devm_clk_get(pp->dev, "aclk_pcie_wifi1_mstr_aclk"); clks->pcie_clks[3] = devm_clk_get(pp->dev, "aclk_pcie_wifi1_slv_aclk"); clks->pcie_clks[4] = devm_clk_get(pp->dev, "aclk_pcie_wifi1_dbi_aclk"); clks->pcie_clks[5] = devm_clk_get(pp->dev, "aclk_combo_phy_pcs_pclk_wifi1"); clks->pcie_clks[6] = devm_clk_get(pp->dev, "pclk_async_combo_phy_wifi1"); clks->pcie_clks[7] = devm_clk_get(pp->dev, "sclk_pcie_link_wifi1_gated"); clks->pcie_clks[8] = devm_clk_get(pp->dev, "sclk_combo_phy_wifi1_26m_gated"); clks->pcie_clks[9] = devm_clk_get(pp->dev, "sclk_phy_fsys1_gated"); clks->phy_clks[0] = devm_clk_get(pp->dev, "phyclk_pcie_wifi1_tx0_gated"); clks->phy_clks[1] = devm_clk_get(pp->dev, "phyclk_pcie_wifi1_rx0_gated"); } for (i = 0; i < exynos_pcie->pcie_clk_num; i++) { if (IS_ERR(clks->pcie_clks[i])) { dev_err(pp->dev, "Failed to get pcie clock/n"); return -ENODEV; } } for (i = 0; i < exynos_pcie->phy_clk_num; i++) { if (IS_ERR(clks->phy_clks[i])) { dev_err(pp->dev, "Failed to get pcie clock/n"); return -ENODEV; } } return 0;}
开发者ID:MikeForeskin,项目名称:Vindicator-S6-MM,代码行数:47,
示例29: exynos_pcie_ref_clock_enablestatic int exynos_pcie_ref_clock_enable(struct pcie_port *pp, int enable){ struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); struct exynos_pcie_clks *clks = &exynos_pcie->clks; int i = exynos_pcie->pcie_clk_num - 1; void __iomem *block_base = exynos_pcie->block_base; if (enable) { clk_prepare_enable(clks->pcie_clks[i]); if (exynos_pcie->ch_num == 0) writel(readl(block_base) & ~(0x1 << 1), block_base); } else { if (exynos_pcie->ch_num == 0) writel(readl(block_base) | (0x1 << 1), block_base); clk_disable_unprepare(clks->pcie_clks[i]); } return 0;}
开发者ID:MikeForeskin,项目名称:Vindicator-S6-MM,代码行数:18,
示例30: exynos_pcie_assert_phy_resetstatic void exynos_pcie_assert_phy_reset(struct pcie_port *pp){ struct exynos_pcie *exynos_pcie = to_exynos_pcie(pp); void __iomem *block_base = exynos_pcie->block_base; u32 val; /* PHY Global Reset */ val = readl(block_base + PCIE_PHY_GLOBAL_RESET); val &= ~(0x1); writel(val, block_base + PCIE_PHY_GLOBAL_RESET); /* PHY Common Reset */ val = readl(block_base + PCIE_PHY_COMMON_RESET); val &= ~(0x1); writel(val, block_base + PCIE_PHY_COMMON_RESET); /* PHY Mac Reset */ val = readl(block_base + PCIE_PHY_MAC_RESET); val |= 0x1 << 4; writel(val, block_base + PCIE_PHY_MAC_RESET);}
开发者ID:qkdang,项目名称:m462,代码行数:21,
注:本文中的to_exynos_pcie函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ to_fixedpoint_ref函数代码示例 C++ to_exynos_crtc函数代码示例 |