Symbol: kirin_pcie
drivers/pci/controller/dwc/pcie-kirin.c
283
static int hi3660_pcie_phy_power_on(struct kirin_pcie *pcie)
drivers/pci/controller/dwc/pcie-kirin.c
319
struct kirin_pcie *pcie)
drivers/pci/controller/dwc/pcie-kirin.c
339
static int hi3660_pcie_phy_power_off(struct kirin_pcie *pcie)
drivers/pci/controller/dwc/pcie-kirin.c
362
static int kirin_pcie_get_gpio_enable(struct kirin_pcie *pcie,
drivers/pci/controller/dwc/pcie-kirin.c
399
static int kirin_pcie_parse_port(struct kirin_pcie *pcie,
drivers/pci/controller/dwc/pcie-kirin.c
448
static long kirin_pcie_get_resource(struct kirin_pcie *kirin_pcie,
drivers/pci/controller/dwc/pcie-kirin.c
460
kirin_pcie->apb = devm_regmap_init_mmio(dev, apb_base,
drivers/pci/controller/dwc/pcie-kirin.c
462
if (IS_ERR(kirin_pcie->apb))
drivers/pci/controller/dwc/pcie-kirin.c
463
return PTR_ERR(kirin_pcie->apb);
drivers/pci/controller/dwc/pcie-kirin.c
466
kirin_pcie->id_dwc_perst_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW);
drivers/pci/controller/dwc/pcie-kirin.c
467
if (IS_ERR(kirin_pcie->id_dwc_perst_gpio))
drivers/pci/controller/dwc/pcie-kirin.c
468
return dev_err_probe(dev, PTR_ERR(kirin_pcie->id_dwc_perst_gpio),
drivers/pci/controller/dwc/pcie-kirin.c
470
gpiod_set_consumer_name(kirin_pcie->id_dwc_perst_gpio, "pcie_perst_bridge");
drivers/pci/controller/dwc/pcie-kirin.c
472
ret = kirin_pcie_get_gpio_enable(kirin_pcie, pdev);
drivers/pci/controller/dwc/pcie-kirin.c
478
ret = kirin_pcie_parse_port(kirin_pcie, pdev, child);
drivers/pci/controller/dwc/pcie-kirin.c
486
static void kirin_pcie_sideband_dbi_w_mode(struct kirin_pcie *kirin_pcie,
drivers/pci/controller/dwc/pcie-kirin.c
491
regmap_read(kirin_pcie->apb, SOC_PCIECTRL_CTRL0_ADDR, &val);
drivers/pci/controller/dwc/pcie-kirin.c
497
regmap_write(kirin_pcie->apb, SOC_PCIECTRL_CTRL0_ADDR, val);
drivers/pci/controller/dwc/pcie-kirin.c
500
static void kirin_pcie_sideband_dbi_r_mode(struct kirin_pcie *kirin_pcie,
drivers/pci/controller/dwc/pcie-kirin.c
505
regmap_read(kirin_pcie->apb, SOC_PCIECTRL_CTRL1_ADDR, &val);
drivers/pci/controller/dwc/pcie-kirin.c
511
regmap_write(kirin_pcie->apb, SOC_PCIECTRL_CTRL1_ADDR, val);
drivers/pci/controller/dwc/pcie-kirin.c
541
struct kirin_pcie *kirin_pcie = to_kirin_pcie(pci);
drivers/pci/controller/dwc/pcie-kirin.c
544
if (!kirin_pcie->num_slots)
drivers/pci/controller/dwc/pcie-kirin.c
548
for (i = 0; i < kirin_pcie->num_slots; i++) {
drivers/pci/controller/dwc/pcie-kirin.c
549
ret = gpiod_direction_output_raw(kirin_pcie->id_reset_gpio[i], 1);
drivers/pci/controller/dwc/pcie-kirin.c
552
kirin_pcie->reset_names[i], ret);
drivers/pci/controller/dwc/pcie-kirin.c
569
struct kirin_pcie *kirin_pcie = to_kirin_pcie(pci);
drivers/pci/controller/dwc/pcie-kirin.c
572
kirin_pcie_sideband_dbi_r_mode(kirin_pcie, true);
drivers/pci/controller/dwc/pcie-kirin.c
574
kirin_pcie_sideband_dbi_r_mode(kirin_pcie, false);
drivers/pci/controller/dwc/pcie-kirin.c
582
struct kirin_pcie *kirin_pcie = to_kirin_pcie(pci);
drivers/pci/controller/dwc/pcie-kirin.c
584
kirin_pcie_sideband_dbi_w_mode(kirin_pcie, true);
drivers/pci/controller/dwc/pcie-kirin.c
586
kirin_pcie_sideband_dbi_w_mode(kirin_pcie, false);
drivers/pci/controller/dwc/pcie-kirin.c
591
struct kirin_pcie *kirin_pcie = to_kirin_pcie(pci);
drivers/pci/controller/dwc/pcie-kirin.c
594
regmap_read(kirin_pcie->apb, PCIE_APB_PHY_STATUS0, &val);
drivers/pci/controller/dwc/pcie-kirin.c
600
struct kirin_pcie *kirin_pcie = to_kirin_pcie(pci);
drivers/pci/controller/dwc/pcie-kirin.c
603
regmap_write(kirin_pcie->apb, PCIE_APP_LTSSM_ENABLE,
drivers/pci/controller/dwc/pcie-kirin.c
627
static int kirin_pcie_power_off(struct kirin_pcie *kirin_pcie)
drivers/pci/controller/dwc/pcie-kirin.c
631
if (kirin_pcie->type == PCIE_KIRIN_INTERNAL_PHY)
drivers/pci/controller/dwc/pcie-kirin.c
632
return hi3660_pcie_phy_power_off(kirin_pcie);
drivers/pci/controller/dwc/pcie-kirin.c
634
for (i = 0; i < kirin_pcie->n_gpio_clkreq; i++)
drivers/pci/controller/dwc/pcie-kirin.c
635
gpiod_direction_output_raw(kirin_pcie->id_clkreq_gpio[i], 1);
drivers/pci/controller/dwc/pcie-kirin.c
637
phy_power_off(kirin_pcie->phy);
drivers/pci/controller/dwc/pcie-kirin.c
638
phy_exit(kirin_pcie->phy);
drivers/pci/controller/dwc/pcie-kirin.c
644
struct kirin_pcie *kirin_pcie)
drivers/pci/controller/dwc/pcie-kirin.c
649
if (kirin_pcie->type == PCIE_KIRIN_INTERNAL_PHY) {
drivers/pci/controller/dwc/pcie-kirin.c
650
ret = hi3660_pcie_phy_init(pdev, kirin_pcie);
drivers/pci/controller/dwc/pcie-kirin.c
654
ret = hi3660_pcie_phy_power_on(kirin_pcie);
drivers/pci/controller/dwc/pcie-kirin.c
658
kirin_pcie->phy = devm_of_phy_get(dev, dev->of_node, NULL);
drivers/pci/controller/dwc/pcie-kirin.c
659
if (IS_ERR(kirin_pcie->phy))
drivers/pci/controller/dwc/pcie-kirin.c
660
return PTR_ERR(kirin_pcie->phy);
drivers/pci/controller/dwc/pcie-kirin.c
662
ret = phy_init(kirin_pcie->phy);
drivers/pci/controller/dwc/pcie-kirin.c
666
ret = phy_power_on(kirin_pcie->phy);
drivers/pci/controller/dwc/pcie-kirin.c
674
ret = gpiod_direction_output_raw(kirin_pcie->id_dwc_perst_gpio, 1);
drivers/pci/controller/dwc/pcie-kirin.c
682
kirin_pcie_power_off(kirin_pcie);
drivers/pci/controller/dwc/pcie-kirin.c
689
struct kirin_pcie *kirin_pcie = platform_get_drvdata(pdev);
drivers/pci/controller/dwc/pcie-kirin.c
691
dw_pcie_host_deinit(&kirin_pcie->pci->pp);
drivers/pci/controller/dwc/pcie-kirin.c
693
kirin_pcie_power_off(kirin_pcie);
drivers/pci/controller/dwc/pcie-kirin.c
718
struct kirin_pcie *kirin_pcie;
drivers/pci/controller/dwc/pcie-kirin.c
726
kirin_pcie = devm_kzalloc(dev, sizeof(struct kirin_pcie), GFP_KERNEL);
drivers/pci/controller/dwc/pcie-kirin.c
727
if (!kirin_pcie)
drivers/pci/controller/dwc/pcie-kirin.c
737
kirin_pcie->pci = pci;
drivers/pci/controller/dwc/pcie-kirin.c
738
kirin_pcie->type = data->phy_type;
drivers/pci/controller/dwc/pcie-kirin.c
740
ret = kirin_pcie_get_resource(kirin_pcie, pdev);
drivers/pci/controller/dwc/pcie-kirin.c
744
platform_set_drvdata(pdev, kirin_pcie);
drivers/pci/controller/dwc/pcie-kirin.c
746
ret = kirin_pcie_power_on(pdev, kirin_pcie);