imxpriv 227 drivers/ata/ahci_imx.c struct imx_ahci_priv *imxpriv = hpriv->plat_data; imxpriv 233 drivers/ata/ahci_imx.c if (imxpriv->type == AHCI_IMX6QP) { imxpriv 235 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, IOMUXC_GPR5, imxpriv 238 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, IOMUXC_GPR5, imxpriv 241 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, IOMUXC_GPR5, imxpriv 449 drivers/ata/ahci_imx.c struct imx_ahci_priv *imxpriv = hpriv->plat_data; imxpriv 450 drivers/ata/ahci_imx.c struct device *dev = &imxpriv->ahci_pdev->dev; imxpriv 453 drivers/ata/ahci_imx.c ret = clk_prepare_enable(imxpriv->phy_pclk0); imxpriv 458 drivers/ata/ahci_imx.c ret = clk_prepare_enable(imxpriv->phy_pclk1); imxpriv 463 drivers/ata/ahci_imx.c ret = clk_prepare_enable(imxpriv->epcs_tx_clk); imxpriv 468 drivers/ata/ahci_imx.c ret = clk_prepare_enable(imxpriv->epcs_rx_clk); imxpriv 473 drivers/ata/ahci_imx.c ret = clk_prepare_enable(imxpriv->phy_apbclk); imxpriv 479 drivers/ata/ahci_imx.c regmap_read(imxpriv->gpr, IMX8QM_CSR_PCIEA_OFFSET + imxpriv 483 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, imxpriv 490 drivers/ata/ahci_imx.c regmap_read(imxpriv->gpr, IMX8QM_CSR_PCIEB_OFFSET + imxpriv 494 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, imxpriv 503 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, imxpriv 512 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, imxpriv 516 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, imxpriv 522 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, imxpriv 531 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, imxpriv 535 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, imxpriv 539 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, imxpriv 552 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, imxpriv 564 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, imxpriv 569 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, imxpriv 575 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, imxpriv 580 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, imxpriv 584 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, imxpriv 590 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, imxpriv 598 drivers/ata/ahci_imx.c regmap_read(imxpriv->gpr, reg, &val); imxpriv 609 drivers/ata/ahci_imx.c writeb(imxpriv->imped_ratio, imxpriv->phy_base + imxpriv 611 drivers/ata/ahci_imx.c writeb(imxpriv->imped_ratio, imxpriv->phy_base + imxpriv 613 drivers/ata/ahci_imx.c reg = readb(imxpriv->phy_base + imxpriv 615 drivers/ata/ahci_imx.c if (unlikely(reg != imxpriv->imped_ratio)) imxpriv 617 drivers/ata/ahci_imx.c reg = readb(imxpriv->phy_base + imxpriv 619 drivers/ata/ahci_imx.c if (unlikely(reg != imxpriv->imped_ratio)) imxpriv 627 drivers/ata/ahci_imx.c clk_disable_unprepare(imxpriv->phy_apbclk); imxpriv 628 drivers/ata/ahci_imx.c clk_disable_unprepare(imxpriv->phy_pclk1); imxpriv 629 drivers/ata/ahci_imx.c clk_disable_unprepare(imxpriv->phy_pclk0); imxpriv 633 drivers/ata/ahci_imx.c clk_disable_unprepare(imxpriv->phy_apbclk); imxpriv 635 drivers/ata/ahci_imx.c clk_disable_unprepare(imxpriv->epcs_rx_clk); imxpriv 637 drivers/ata/ahci_imx.c clk_disable_unprepare(imxpriv->epcs_tx_clk); imxpriv 639 drivers/ata/ahci_imx.c clk_disable_unprepare(imxpriv->phy_pclk1); imxpriv 641 drivers/ata/ahci_imx.c clk_disable_unprepare(imxpriv->phy_pclk0); imxpriv 648 drivers/ata/ahci_imx.c struct imx_ahci_priv *imxpriv = hpriv->plat_data; imxpriv 649 drivers/ata/ahci_imx.c struct device *dev = &imxpriv->ahci_pdev->dev; imxpriv 652 drivers/ata/ahci_imx.c if (imxpriv->no_device) imxpriv 659 drivers/ata/ahci_imx.c ret = clk_prepare_enable(imxpriv->sata_ref_clk); imxpriv 663 drivers/ata/ahci_imx.c if (imxpriv->type == AHCI_IMX6Q || imxpriv->type == AHCI_IMX6QP) { imxpriv 670 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, IOMUXC_GPR13, imxpriv 681 drivers/ata/ahci_imx.c imxpriv->phy_params); imxpriv 682 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, IOMUXC_GPR13, imxpriv 693 drivers/ata/ahci_imx.c } else if (imxpriv->type == AHCI_IMX8QM) { imxpriv 702 drivers/ata/ahci_imx.c clk_disable_unprepare(imxpriv->sata_ref_clk); imxpriv 711 drivers/ata/ahci_imx.c struct imx_ahci_priv *imxpriv = hpriv->plat_data; imxpriv 713 drivers/ata/ahci_imx.c if (imxpriv->no_device) imxpriv 716 drivers/ata/ahci_imx.c switch (imxpriv->type) { imxpriv 718 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, IOMUXC_GPR5, imxpriv 721 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, IOMUXC_GPR13, imxpriv 727 drivers/ata/ahci_imx.c regmap_update_bits(imxpriv->gpr, IOMUXC_GPR13, imxpriv 733 drivers/ata/ahci_imx.c clk_disable_unprepare(imxpriv->epcs_rx_clk); imxpriv 734 drivers/ata/ahci_imx.c clk_disable_unprepare(imxpriv->epcs_tx_clk); imxpriv 741 drivers/ata/ahci_imx.c clk_disable_unprepare(imxpriv->sata_ref_clk); imxpriv 753 drivers/ata/ahci_imx.c struct imx_ahci_priv *imxpriv = hpriv->plat_data; imxpriv 757 drivers/ata/ahci_imx.c if (!(imxpriv->first_time) || ahci_imx_hotplug) imxpriv 760 drivers/ata/ahci_imx.c imxpriv->first_time = false; imxpriv 772 drivers/ata/ahci_imx.c imxpriv->no_device = true; imxpriv 784 drivers/ata/ahci_imx.c struct imx_ahci_priv *imxpriv = hpriv->plat_data; imxpriv 787 drivers/ata/ahci_imx.c if (imxpriv->type == AHCI_IMX53) imxpriv 981 drivers/ata/ahci_imx.c static int imx8_sata_probe(struct device *dev, struct imx_ahci_priv *imxpriv) imxpriv 985 drivers/ata/ahci_imx.c struct platform_device *pdev = imxpriv->ahci_pdev; imxpriv 988 drivers/ata/ahci_imx.c if (of_property_read_u32(np, "fsl,phy-imp", &imxpriv->imped_ratio)) imxpriv 989 drivers/ata/ahci_imx.c imxpriv->imped_ratio = IMX8QM_SATA_PHY_IMPED_RATIO_85OHM; imxpriv 992 drivers/ata/ahci_imx.c imxpriv->phy_base = devm_ioremap(dev, phy_res->start, imxpriv 994 drivers/ata/ahci_imx.c if (!imxpriv->phy_base) { imxpriv 1002 drivers/ata/ahci_imx.c imxpriv->gpr = imxpriv 1004 drivers/ata/ahci_imx.c if (IS_ERR(imxpriv->gpr)) { imxpriv 1006 drivers/ata/ahci_imx.c return PTR_ERR(imxpriv->gpr); imxpriv 1009 drivers/ata/ahci_imx.c imxpriv->epcs_tx_clk = devm_clk_get(dev, "epcs_tx"); imxpriv 1010 drivers/ata/ahci_imx.c if (IS_ERR(imxpriv->epcs_tx_clk)) { imxpriv 1012 drivers/ata/ahci_imx.c return PTR_ERR(imxpriv->epcs_tx_clk); imxpriv 1014 drivers/ata/ahci_imx.c imxpriv->epcs_rx_clk = devm_clk_get(dev, "epcs_rx"); imxpriv 1015 drivers/ata/ahci_imx.c if (IS_ERR(imxpriv->epcs_rx_clk)) { imxpriv 1017 drivers/ata/ahci_imx.c return PTR_ERR(imxpriv->epcs_rx_clk); imxpriv 1019 drivers/ata/ahci_imx.c imxpriv->phy_pclk0 = devm_clk_get(dev, "phy_pclk0"); imxpriv 1020 drivers/ata/ahci_imx.c if (IS_ERR(imxpriv->phy_pclk0)) { imxpriv 1022 drivers/ata/ahci_imx.c return PTR_ERR(imxpriv->phy_pclk0); imxpriv 1024 drivers/ata/ahci_imx.c imxpriv->phy_pclk1 = devm_clk_get(dev, "phy_pclk1"); imxpriv 1025 drivers/ata/ahci_imx.c if (IS_ERR(imxpriv->phy_pclk1)) { imxpriv 1027 drivers/ata/ahci_imx.c return PTR_ERR(imxpriv->phy_pclk1); imxpriv 1029 drivers/ata/ahci_imx.c imxpriv->phy_apbclk = devm_clk_get(dev, "phy_apbclk"); imxpriv 1030 drivers/ata/ahci_imx.c if (IS_ERR(imxpriv->phy_apbclk)) { imxpriv 1032 drivers/ata/ahci_imx.c return PTR_ERR(imxpriv->phy_apbclk); imxpriv 1036 drivers/ata/ahci_imx.c imxpriv->clkreq_gpio = of_get_named_gpio(np, "clkreq-gpio", 0); imxpriv 1037 drivers/ata/ahci_imx.c if (gpio_is_valid(imxpriv->clkreq_gpio)) { imxpriv 1038 drivers/ata/ahci_imx.c ret = devm_gpio_request_one(dev, imxpriv->clkreq_gpio, imxpriv 1047 drivers/ata/ahci_imx.c } else if (imxpriv->clkreq_gpio == -EPROBE_DEFER) { imxpriv 1048 drivers/ata/ahci_imx.c return imxpriv->clkreq_gpio; imxpriv 1059 drivers/ata/ahci_imx.c struct imx_ahci_priv *imxpriv; imxpriv 1067 drivers/ata/ahci_imx.c imxpriv = devm_kzalloc(dev, sizeof(*imxpriv), GFP_KERNEL); imxpriv 1068 drivers/ata/ahci_imx.c if (!imxpriv) imxpriv 1071 drivers/ata/ahci_imx.c imxpriv->ahci_pdev = pdev; imxpriv 1072 drivers/ata/ahci_imx.c imxpriv->no_device = false; imxpriv 1073 drivers/ata/ahci_imx.c imxpriv->first_time = true; imxpriv 1074 drivers/ata/ahci_imx.c imxpriv->type = (enum ahci_imx_type)of_id->data; imxpriv 1076 drivers/ata/ahci_imx.c imxpriv->sata_clk = devm_clk_get(dev, "sata"); imxpriv 1077 drivers/ata/ahci_imx.c if (IS_ERR(imxpriv->sata_clk)) { imxpriv 1079 drivers/ata/ahci_imx.c return PTR_ERR(imxpriv->sata_clk); imxpriv 1082 drivers/ata/ahci_imx.c imxpriv->sata_ref_clk = devm_clk_get(dev, "sata_ref"); imxpriv 1083 drivers/ata/ahci_imx.c if (IS_ERR(imxpriv->sata_ref_clk)) { imxpriv 1085 drivers/ata/ahci_imx.c return PTR_ERR(imxpriv->sata_ref_clk); imxpriv 1088 drivers/ata/ahci_imx.c imxpriv->ahb_clk = devm_clk_get(dev, "ahb"); imxpriv 1089 drivers/ata/ahci_imx.c if (IS_ERR(imxpriv->ahb_clk)) { imxpriv 1091 drivers/ata/ahci_imx.c return PTR_ERR(imxpriv->ahb_clk); imxpriv 1094 drivers/ata/ahci_imx.c if (imxpriv->type == AHCI_IMX6Q || imxpriv->type == AHCI_IMX6QP) { imxpriv 1097 drivers/ata/ahci_imx.c imxpriv->gpr = syscon_regmap_lookup_by_compatible( imxpriv 1099 drivers/ata/ahci_imx.c if (IS_ERR(imxpriv->gpr)) { imxpriv 1102 drivers/ata/ahci_imx.c return PTR_ERR(imxpriv->gpr); imxpriv 1108 drivers/ata/ahci_imx.c imxpriv->phy_params = imxpriv 1113 drivers/ata/ahci_imx.c } else if (imxpriv->type == AHCI_IMX8QM) { imxpriv 1114 drivers/ata/ahci_imx.c ret = imx8_sata_probe(dev, imxpriv); imxpriv 1123 drivers/ata/ahci_imx.c hpriv->plat_data = imxpriv; imxpriv 1125 drivers/ata/ahci_imx.c ret = clk_prepare_enable(imxpriv->sata_clk); imxpriv 1129 drivers/ata/ahci_imx.c if (imxpriv->type == AHCI_IMX53 && imxpriv 1170 drivers/ata/ahci_imx.c reg_val = clk_get_rate(imxpriv->ahb_clk) / 1000; imxpriv 1183 drivers/ata/ahci_imx.c clk_disable_unprepare(imxpriv->sata_clk); imxpriv 1190 drivers/ata/ahci_imx.c struct imx_ahci_priv *imxpriv = hpriv->plat_data; imxpriv 1193 drivers/ata/ahci_imx.c clk_disable_unprepare(imxpriv->sata_clk);