Message ID | 20240227-pci2_upstream-v1-2-b952f8333606@nxp.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | PCI: imx6: rename\clean up and add lut information for imx95 | expand |
On Tue, Feb 27, 2024 at 04:47:09PM -0500, Frank Li wrote: > pci-imx6.c and PCI_IMX6 actuall for all i.MX chips (i.MX6x, i.MX7x, i.MX8x, > i.MX9x). Remove '6' to avoid confuse. s/actuall for all/cover all/ s/confuse/confusion/ > drivers/pci/controller/dwc/{pci-imx6.c => pci-imx.c} | 0 If we're going to rename it, we should rename it to "pcie-imx.c". It was my mistake long ago to use "pci-" instead of "pcie-". > -config PCI_IMX6 > +config PCI_IMX What does this look like to users who carry an old .config file forward?
On Wed, Feb 28, 2024 at 05:05:20PM -0600, Bjorn Helgaas wrote: > On Tue, Feb 27, 2024 at 04:47:09PM -0500, Frank Li wrote: > > pci-imx6.c and PCI_IMX6 actuall for all i.MX chips (i.MX6x, i.MX7x, i.MX8x, > > i.MX9x). Remove '6' to avoid confuse. > > s/actuall for all/cover all/ > s/confuse/confusion/ > > > drivers/pci/controller/dwc/{pci-imx6.c => pci-imx.c} | 0 > > If we're going to rename it, we should rename it to "pcie-imx.c". Good. I will update it. > > It was my mistake long ago to use "pci-" instead of "pcie-". > > > -config PCI_IMX6 > > +config PCI_IMX > > What does this look like to users who carry an old .config file > forward? I don't think people will use old .config when update to new kernel. I can keep PCI_IMX6 for config if have to.
Hello Frank, On 29.02.24 00:36, Frank Li wrote: > On Wed, Feb 28, 2024 at 05:05:20PM -0600, Bjorn Helgaas wrote: >> On Tue, Feb 27, 2024 at 04:47:09PM -0500, Frank Li wrote: >>> -config PCI_IMX6 >>> +config PCI_IMX >> >> What does this look like to users who carry an old .config file >> forward? > > I don't think people will use old .config when update to new kernel. I can > keep PCI_IMX6 for config if have to. I'd argue it's the complete opposite. Most users don't use the in-tree defconfig, but use olddefconfig on their customized .config, either explicitly or implicitly via menuconfig and saving. This would result in non-functional PCI after an update. I don't mind renaming the file, but please leave the Kconfig symbol as-is. Thanks, Ahmad > > > >
Hi Frank,
kernel test robot noticed the following build warnings:
[auto build test WARNING on b73259dcd67094e883104a0390852695caf3f999]
url: https://github.com/intel-lab-lkp/linux/commits/Frank-Li/PCI-imx6-Rename-imx6_-with-imx_/20240228-055254
base: b73259dcd67094e883104a0390852695caf3f999
patch link: https://lore.kernel.org/r/20240227-pci2_upstream-v1-2-b952f8333606%40nxp.com
patch subject: [PATCH 2/6] PCI: imx6: Rename pci-imx6.c and PCI_IMX6 config
config: x86_64-allmodconfig (https://download.01.org/0day-ci/archive/20240301/202403011431.vIVOdwob-lkp@intel.com/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240301/202403011431.vIVOdwob-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202403011431.vIVOdwob-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/pci/controller/dwc/pci-imx.c:1333:2: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]
1333 | default:
| ^
drivers/pci/controller/dwc/pci-imx.c:1333:2: note: insert 'break;' to avoid fall-through
1333 | default:
| ^
| break;
1 warning generated.
vim +1333 drivers/pci/controller/dwc/pci-imx.c
0ee2c1f2429f74 drivers/pci/controller/dwc/pci-imx6.c Leonard Crestez 2018-08-27 1230
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1231 static int imx_pcie_probe(struct platform_device *pdev)
bb38919ec56e07 drivers/pci/host/pci-imx6.c Sean Cross 2013-09-26 1232 {
13957652f7242a drivers/pci/host/pci-imx6.c Bjorn Helgaas 2016-10-06 1233 struct device *dev = &pdev->dev;
442ec4c04d1235 drivers/pci/dwc/pci-imx6.c Kishon Vijay Abraham I 2017-02-15 1234 struct dw_pcie *pci;
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1235 struct imx_pcie *imx_pcie;
1df82ec4660099 drivers/pci/controller/dwc/pci-imx6.c Trent Piepho 2019-02-05 1236 struct device_node *np;
bb38919ec56e07 drivers/pci/host/pci-imx6.c Sean Cross 2013-09-26 1237 struct resource *dbi_base;
13957652f7242a drivers/pci/host/pci-imx6.c Bjorn Helgaas 2016-10-06 1238 struct device_node *node = dev->of_node;
bb38919ec56e07 drivers/pci/host/pci-imx6.c Sean Cross 2013-09-26 1239 int ret;
75cb8d20c112ab drivers/pci/controller/dwc/pci-imx6.c Richard Zhu 2018-12-21 1240 u16 val;
6a40185838759c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1241 int i;
bb38919ec56e07 drivers/pci/host/pci-imx6.c Sean Cross 2013-09-26 1242
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1243 imx_pcie = devm_kzalloc(dev, sizeof(*imx_pcie), GFP_KERNEL);
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1244 if (!imx_pcie)
bb38919ec56e07 drivers/pci/host/pci-imx6.c Sean Cross 2013-09-26 1245 return -ENOMEM;
bb38919ec56e07 drivers/pci/host/pci-imx6.c Sean Cross 2013-09-26 1246
442ec4c04d1235 drivers/pci/dwc/pci-imx6.c Kishon Vijay Abraham I 2017-02-15 1247 pci = devm_kzalloc(dev, sizeof(*pci), GFP_KERNEL);
442ec4c04d1235 drivers/pci/dwc/pci-imx6.c Kishon Vijay Abraham I 2017-02-15 1248 if (!pci)
442ec4c04d1235 drivers/pci/dwc/pci-imx6.c Kishon Vijay Abraham I 2017-02-15 1249 return -ENOMEM;
442ec4c04d1235 drivers/pci/dwc/pci-imx6.c Kishon Vijay Abraham I 2017-02-15 1250
442ec4c04d1235 drivers/pci/dwc/pci-imx6.c Kishon Vijay Abraham I 2017-02-15 1251 pci->dev = dev;
442ec4c04d1235 drivers/pci/dwc/pci-imx6.c Kishon Vijay Abraham I 2017-02-15 1252 pci->ops = &dw_pcie_ops;
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1253 pci->pp.ops = &imx_pcie_host_ops;
bb38919ec56e07 drivers/pci/host/pci-imx6.c Sean Cross 2013-09-26 1254
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1255 imx_pcie->pci = pci;
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1256 imx_pcie->drvdata = of_device_get_match_data(dev);
e3c06cd063d69d drivers/pci/host/pci-imx6.c Christoph Fritz 2016-04-05 1257
1df82ec4660099 drivers/pci/controller/dwc/pci-imx6.c Trent Piepho 2019-02-05 1258 /* Find the PHY if one is defined, only imx7d uses it */
1df82ec4660099 drivers/pci/controller/dwc/pci-imx6.c Trent Piepho 2019-02-05 1259 np = of_parse_phandle(node, "fsl,imx7d-pcie-phy", 0);
1df82ec4660099 drivers/pci/controller/dwc/pci-imx6.c Trent Piepho 2019-02-05 1260 if (np) {
1df82ec4660099 drivers/pci/controller/dwc/pci-imx6.c Trent Piepho 2019-02-05 1261 struct resource res;
1df82ec4660099 drivers/pci/controller/dwc/pci-imx6.c Trent Piepho 2019-02-05 1262
1df82ec4660099 drivers/pci/controller/dwc/pci-imx6.c Trent Piepho 2019-02-05 1263 ret = of_address_to_resource(np, 0, &res);
1df82ec4660099 drivers/pci/controller/dwc/pci-imx6.c Trent Piepho 2019-02-05 1264 if (ret) {
1df82ec4660099 drivers/pci/controller/dwc/pci-imx6.c Trent Piepho 2019-02-05 1265 dev_err(dev, "Unable to map PCIe PHY\n");
1df82ec4660099 drivers/pci/controller/dwc/pci-imx6.c Trent Piepho 2019-02-05 1266 return ret;
1df82ec4660099 drivers/pci/controller/dwc/pci-imx6.c Trent Piepho 2019-02-05 1267 }
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1268 imx_pcie->phy_base = devm_ioremap_resource(dev, &res);
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1269 if (IS_ERR(imx_pcie->phy_base))
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1270 return PTR_ERR(imx_pcie->phy_base);
1df82ec4660099 drivers/pci/controller/dwc/pci-imx6.c Trent Piepho 2019-02-05 1271 }
e3c06cd063d69d drivers/pci/host/pci-imx6.c Christoph Fritz 2016-04-05 1272
188f46cac267b9 drivers/pci/controller/dwc/pci-imx6.c Yang Li 2023-03-23 1273 pci->dbi_base = devm_platform_get_and_ioremap_resource(pdev, 0, &dbi_base);
442ec4c04d1235 drivers/pci/dwc/pci-imx6.c Kishon Vijay Abraham I 2017-02-15 1274 if (IS_ERR(pci->dbi_base))
442ec4c04d1235 drivers/pci/dwc/pci-imx6.c Kishon Vijay Abraham I 2017-02-15 1275 return PTR_ERR(pci->dbi_base);
bb38919ec56e07 drivers/pci/host/pci-imx6.c Sean Cross 2013-09-26 1276
bb38919ec56e07 drivers/pci/host/pci-imx6.c Sean Cross 2013-09-26 1277 /* Fetch GPIOs */
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1278 imx_pcie->reset_gpio = of_get_named_gpio(node, "reset-gpio", 0);
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1279 imx_pcie->gpio_active_high = of_property_read_bool(node,
3ea8529acc3046 drivers/pci/host/pci-imx6.c Petr Štetiar 2016-04-19 1280 "reset-gpio-active-high");
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1281 if (gpio_is_valid(imx_pcie->reset_gpio)) {
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1282 ret = devm_gpio_request_one(dev, imx_pcie->reset_gpio,
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1283 imx_pcie->gpio_active_high ?
3ea8529acc3046 drivers/pci/host/pci-imx6.c Petr Štetiar 2016-04-19 1284 GPIOF_OUT_INIT_HIGH :
3ea8529acc3046 drivers/pci/host/pci-imx6.c Petr Štetiar 2016-04-19 1285 GPIOF_OUT_INIT_LOW,
3ea8529acc3046 drivers/pci/host/pci-imx6.c Petr Štetiar 2016-04-19 1286 "PCIe reset");
b2d7a9cd3ff8ec drivers/pci/host/pci-imx6.c Fabio Estevam 2016-03-28 1287 if (ret) {
13957652f7242a drivers/pci/host/pci-imx6.c Bjorn Helgaas 2016-10-06 1288 dev_err(dev, "unable to get reset gpio\n");
b2d7a9cd3ff8ec drivers/pci/host/pci-imx6.c Fabio Estevam 2016-03-28 1289 return ret;
b2d7a9cd3ff8ec drivers/pci/host/pci-imx6.c Fabio Estevam 2016-03-28 1290 }
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1291 } else if (imx_pcie->reset_gpio == -EPROBE_DEFER) {
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1292 return imx_pcie->reset_gpio;
b2d7a9cd3ff8ec drivers/pci/host/pci-imx6.c Fabio Estevam 2016-03-28 1293 }
bb38919ec56e07 drivers/pci/host/pci-imx6.c Sean Cross 2013-09-26 1294
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1295 if (imx_pcie->drvdata->clks_cnt >= IMX_PCIE_MAX_CLKS)
6a40185838759c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1296 return dev_err_probe(dev, -ENOMEM, "clks_cnt is too big\n");
bb38919ec56e07 drivers/pci/host/pci-imx6.c Sean Cross 2013-09-26 1297
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1298 for (i = 0; i < imx_pcie->drvdata->clks_cnt; i++)
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1299 imx_pcie->clks[i].id = imx_pcie->drvdata->clk_names[i];
6a40185838759c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1300
6a40185838759c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1301 /* Fetch clocks */
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1302 ret = devm_clk_bulk_get(dev, imx_pcie->drvdata->clks_cnt, imx_pcie->clks);
6a40185838759c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1303 if (ret)
6a40185838759c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1304 return ret;
bb38919ec56e07 drivers/pci/host/pci-imx6.c Sean Cross 2013-09-26 1305
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1306 if (imx_check_flag(imx_pcie, IMX_PCIE_FLAG_HAS_PHYDRV)) {
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1307 imx_pcie->phy = devm_phy_get(dev, "pcie-phy");
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1308 if (IS_ERR(imx_pcie->phy))
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1309 return dev_err_probe(dev, PTR_ERR(imx_pcie->phy),
4e37c2f48712d5 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1310 "failed to get pcie phy\n");
4e37c2f48712d5 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1311 }
4e37c2f48712d5 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1312
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1313 if (imx_check_flag(imx_pcie, IMX_PCIE_FLAG_HAS_APP_RESET)) {
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1314 imx_pcie->apps_reset = devm_reset_control_get_exclusive(dev, "apps");
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1315 if (IS_ERR(imx_pcie->apps_reset))
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1316 return dev_err_probe(dev, PTR_ERR(imx_pcie->apps_reset),
666a7beb942cc6 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1317 "failed to get pcie apps reset control\n");
666a7beb942cc6 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1318 }
666a7beb942cc6 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1319
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1320 if (imx_check_flag(imx_pcie, IMX_PCIE_FLAG_HAS_PHY_RESET)) {
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1321 imx_pcie->pciephy_reset = devm_reset_control_get_exclusive(dev, "pciephy");
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1322 if (IS_ERR(imx_pcie->pciephy_reset))
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1323 return dev_err_probe(dev, PTR_ERR(imx_pcie->pciephy_reset),
666a7beb942cc6 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1324 "Failed to get PCIEPHY reset control\n");
666a7beb942cc6 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1325 }
666a7beb942cc6 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1326
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1327 switch (imx_pcie->drvdata->variant) {
2d8ed461dbc9bc drivers/pci/controller/dwc/pci-imx6.c Andrey Smirnov 2019-02-01 1328 case IMX8MQ:
530ba41250b69d drivers/pci/controller/dwc/pci-imx6.c Richard Zhu 2023-01-16 1329 case IMX8MQ_EP:
9b3fe6796d7c0e drivers/pci/dwc/pci-imx6.c Andrey Smirnov 2017-03-28 1330 case IMX7D:
2d8ed461dbc9bc drivers/pci/controller/dwc/pci-imx6.c Andrey Smirnov 2019-02-01 1331 if (dbi_base->start == IMX8MQ_PCIE2_BASE_ADDR)
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1332 imx_pcie->controller_id = 1;
9b3fe6796d7c0e drivers/pci/dwc/pci-imx6.c Andrey Smirnov 2017-03-28 @1333 default:
9b3fe6796d7c0e drivers/pci/dwc/pci-imx6.c Andrey Smirnov 2017-03-28 1334 break;
e3c06cd063d69d drivers/pci/host/pci-imx6.c Christoph Fritz 2016-04-05 1335 }
e3c06cd063d69d drivers/pci/host/pci-imx6.c Christoph Fritz 2016-04-05 1336
f4e833ba2a955b drivers/pci/controller/dwc/pci-imx6.c Leonard Crestez 2018-07-19 1337 /* Grab turnoff reset */
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1338 imx_pcie->turnoff_reset = devm_reset_control_get_optional_exclusive(dev, "turnoff");
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1339 if (IS_ERR(imx_pcie->turnoff_reset)) {
f4e833ba2a955b drivers/pci/controller/dwc/pci-imx6.c Leonard Crestez 2018-07-19 1340 dev_err(dev, "Failed to get TURNOFF reset control\n");
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1341 return PTR_ERR(imx_pcie->turnoff_reset);
f4e833ba2a955b drivers/pci/controller/dwc/pci-imx6.c Leonard Crestez 2018-07-19 1342 }
f4e833ba2a955b drivers/pci/controller/dwc/pci-imx6.c Leonard Crestez 2018-07-19 1343
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1344 if (imx_pcie->drvdata->gpr) {
bb38919ec56e07 drivers/pci/host/pci-imx6.c Sean Cross 2013-09-26 1345 /* Grab GPR config register range */
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1346 imx_pcie->iomuxc_gpr =
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1347 syscon_regmap_lookup_by_compatible(imx_pcie->drvdata->gpr);
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1348 if (IS_ERR(imx_pcie->iomuxc_gpr))
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1349 return dev_err_probe(dev, PTR_ERR(imx_pcie->iomuxc_gpr),
98e97fb574b112 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1350 "unable to find iomuxc registers\n");
98e97fb574b112 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1351 }
98e97fb574b112 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1352
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1353 if (imx_check_flag(imx_pcie, IMX_PCIE_FLAG_HAS_SERDES)) {
98e97fb574b112 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1354 void __iomem *off = devm_platform_ioremap_resource_byname(pdev, "app");
98e97fb574b112 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1355
98e97fb574b112 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1356 if (IS_ERR(off))
98e97fb574b112 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1357 return dev_err_probe(dev, PTR_ERR(off),
98e97fb574b112 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1358 "unable to find serdes registers\n");
98e97fb574b112 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1359
98e97fb574b112 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1360 static const struct regmap_config regmap_config = {
98e97fb574b112 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1361 .reg_bits = 32,
98e97fb574b112 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1362 .val_bits = 32,
98e97fb574b112 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1363 .reg_stride = 4,
98e97fb574b112 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1364 };
98e97fb574b112 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1365
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1366 imx_pcie->iomuxc_gpr = devm_regmap_init_mmio(dev, off, ®map_config);
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1367 if (IS_ERR(imx_pcie->iomuxc_gpr))
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1368 return dev_err_probe(dev, PTR_ERR(imx_pcie->iomuxc_gpr),
98e97fb574b112 drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-20 1369 "unable to find iomuxc registers\n");
bb38919ec56e07 drivers/pci/host/pci-imx6.c Sean Cross 2013-09-26 1370 }
28e3abe591e227 drivers/pci/host/pci-imx6.c Justin Waters 2016-01-15 1371
28e3abe591e227 drivers/pci/host/pci-imx6.c Justin Waters 2016-01-15 1372 /* Grab PCIe PHY Tx Settings */
28e3abe591e227 drivers/pci/host/pci-imx6.c Justin Waters 2016-01-15 1373 if (of_property_read_u32(node, "fsl,tx-deemph-gen1",
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1374 &imx_pcie->tx_deemph_gen1))
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1375 imx_pcie->tx_deemph_gen1 = 0;
28e3abe591e227 drivers/pci/host/pci-imx6.c Justin Waters 2016-01-15 1376
28e3abe591e227 drivers/pci/host/pci-imx6.c Justin Waters 2016-01-15 1377 if (of_property_read_u32(node, "fsl,tx-deemph-gen2-3p5db",
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1378 &imx_pcie->tx_deemph_gen2_3p5db))
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1379 imx_pcie->tx_deemph_gen2_3p5db = 0;
28e3abe591e227 drivers/pci/host/pci-imx6.c Justin Waters 2016-01-15 1380
28e3abe591e227 drivers/pci/host/pci-imx6.c Justin Waters 2016-01-15 1381 if (of_property_read_u32(node, "fsl,tx-deemph-gen2-6db",
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1382 &imx_pcie->tx_deemph_gen2_6db))
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1383 imx_pcie->tx_deemph_gen2_6db = 20;
28e3abe591e227 drivers/pci/host/pci-imx6.c Justin Waters 2016-01-15 1384
28e3abe591e227 drivers/pci/host/pci-imx6.c Justin Waters 2016-01-15 1385 if (of_property_read_u32(node, "fsl,tx-swing-full",
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1386 &imx_pcie->tx_swing_full))
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1387 imx_pcie->tx_swing_full = 127;
28e3abe591e227 drivers/pci/host/pci-imx6.c Justin Waters 2016-01-15 1388
28e3abe591e227 drivers/pci/host/pci-imx6.c Justin Waters 2016-01-15 1389 if (of_property_read_u32(node, "fsl,tx-swing-low",
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1390 &imx_pcie->tx_swing_low))
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1391 imx_pcie->tx_swing_low = 127;
bb38919ec56e07 drivers/pci/host/pci-imx6.c Sean Cross 2013-09-26 1392
a5fcec480f25eb drivers/pci/host/pci-imx6.c Tim Harvey 2016-04-19 1393 /* Limit link speed */
39bc5006501cc3 drivers/pci/controller/dwc/pci-imx6.c Rob Herring 2020-08-20 1394 pci->link_gen = 1;
65315ec52c9bd5 drivers/pci/controller/dwc/pci-imx6.c Krzysztof Wilczyński 2021-10-03 1395 of_property_read_u32(node, "fsl,max-link-speed", &pci->link_gen);
a5fcec480f25eb drivers/pci/host/pci-imx6.c Tim Harvey 2016-04-19 1396
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1397 imx_pcie->vpcie = devm_regulator_get_optional(&pdev->dev, "vpcie");
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1398 if (IS_ERR(imx_pcie->vpcie)) {
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1399 if (PTR_ERR(imx_pcie->vpcie) != -ENODEV)
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1400 return PTR_ERR(imx_pcie->vpcie);
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1401 imx_pcie->vpcie = NULL;
c26ebe98a10347 drivers/pci/dwc/pci-imx6.c Quentin Schulz 2017-06-08 1402 }
c26ebe98a10347 drivers/pci/dwc/pci-imx6.c Quentin Schulz 2017-06-08 1403
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1404 imx_pcie->vph = devm_regulator_get_optional(&pdev->dev, "vph");
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1405 if (IS_ERR(imx_pcie->vph)) {
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1406 if (PTR_ERR(imx_pcie->vph) != -ENODEV)
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1407 return PTR_ERR(imx_pcie->vph);
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1408 imx_pcie->vph = NULL;
d2ce69ca251690 drivers/pci/controller/dwc/pci-imx6.c Richard Zhu 2021-06-04 1409 }
d2ce69ca251690 drivers/pci/controller/dwc/pci-imx6.c Richard Zhu 2021-06-04 1410
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1411 platform_set_drvdata(pdev, imx_pcie);
9bcf0a6fdc5062 drivers/pci/dwc/pci-imx6.c Kishon Vijay Abraham I 2017-02-15 1412
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1413 ret = imx_pcie_attach_pd(dev);
3f7cceeab895fc drivers/pci/controller/dwc/pci-imx6.c Leonard Crestez 2018-10-08 1414 if (ret)
3f7cceeab895fc drivers/pci/controller/dwc/pci-imx6.c Leonard Crestez 2018-10-08 1415 return ret;
3f7cceeab895fc drivers/pci/controller/dwc/pci-imx6.c Leonard Crestez 2018-10-08 1416
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1417 if (imx_pcie->drvdata->mode == DW_PCIE_EP_TYPE) {
f988153d367a9c drivers/pci/controller/dwc/pci-imx6.c Frank Li 2024-02-27 1418 ret = imx_add_pcie_ep(imx_pcie, pdev);
75c2f26da03f93 drivers/pci/controller/dwc/pci-imx6.c Richard Zhu 2023-01-16 1419 if (ret < 0)
75c2f26da03f93 drivers/pci/controller/dwc/pci-imx6.c Richard Zhu 2023-01-16 1420 return ret;
75c2f26da03f93 drivers/pci/controller/dwc/pci-imx6.c Richard Zhu 2023-01-16 1421 } else {
60f5b73fa0f298 drivers/pci/controller/dwc/pci-imx6.c Rob Herring 2020-11-05 1422 ret = dw_pcie_host_init(&pci->pp);
bb38919ec56e07 drivers/pci/host/pci-imx6.c Sean Cross 2013-09-26 1423 if (ret < 0)
b391bf31584d87 drivers/pci/host/pci-imx6.c Fabio Estevam 2013-12-02 1424 return ret;
bb38919ec56e07 drivers/pci/host/pci-imx6.c Sean Cross 2013-09-26 1425
75cb8d20c112ab drivers/pci/controller/dwc/pci-imx6.c Richard Zhu 2018-12-21 1426 if (pci_msi_enabled()) {
201a8df899525b drivers/pci/controller/dwc/pci-imx6.c Rob Herring 2020-08-20 1427 u8 offset = dw_pcie_find_capability(pci, PCI_CAP_ID_MSI);
75c2f26da03f93 drivers/pci/controller/dwc/pci-imx6.c Richard Zhu 2023-01-16 1428
201a8df899525b drivers/pci/controller/dwc/pci-imx6.c Rob Herring 2020-08-20 1429 val = dw_pcie_readw_dbi(pci, offset + PCI_MSI_FLAGS);
75cb8d20c112ab drivers/pci/controller/dwc/pci-imx6.c Richard Zhu 2018-12-21 1430 val |= PCI_MSI_FLAGS_ENABLE;
201a8df899525b drivers/pci/controller/dwc/pci-imx6.c Rob Herring 2020-08-20 1431 dw_pcie_writew_dbi(pci, offset + PCI_MSI_FLAGS, val);
75cb8d20c112ab drivers/pci/controller/dwc/pci-imx6.c Richard Zhu 2018-12-21 1432 }
75c2f26da03f93 drivers/pci/controller/dwc/pci-imx6.c Richard Zhu 2023-01-16 1433 }
75cb8d20c112ab drivers/pci/controller/dwc/pci-imx6.c Richard Zhu 2018-12-21 1434
bb38919ec56e07 drivers/pci/host/pci-imx6.c Sean Cross 2013-09-26 1435 return 0;
bb38919ec56e07 drivers/pci/host/pci-imx6.c Sean Cross 2013-09-26 1436 }
bb38919ec56e07 drivers/pci/host/pci-imx6.c Sean Cross 2013-09-26 1437
diff --git a/drivers/pci/controller/dwc/Kconfig b/drivers/pci/controller/dwc/Kconfig index 8afacc90c63b8..647ce302e5ebb 100644 --- a/drivers/pci/controller/dwc/Kconfig +++ b/drivers/pci/controller/dwc/Kconfig @@ -70,27 +70,27 @@ config PCIE_BT1 Enables support for the PCIe controller in the Baikal-T1 SoC to work in host mode. It's based on the Synopsys DWC PCIe v4.60a IP-core. -config PCI_IMX6 +config PCI_IMX bool -config PCI_IMX6_HOST - bool "Freescale i.MX6/7/8 PCIe controller (host mode)" +config PCI_IMX_HOST + bool "Freescale i.MX PCIe controller (host mode)" depends on ARCH_MXC || COMPILE_TEST depends on PCI_MSI select PCIE_DW_HOST - select PCI_IMX6 + select PCI_IMX help Enables support for the PCIe controller in the i.MX SoCs to work in Root Complex mode. The PCI controller on i.MX is based on DesignWare hardware and therefore the driver re-uses the DesignWare core functions to implement the driver. -config PCI_IMX6_EP - bool "Freescale i.MX6/7/8 PCIe controller (endpoint mode)" +config PCI_IMX_EP + bool "Freescale i.MX PCIe controller (endpoint mode)" depends on ARCH_MXC || COMPILE_TEST depends on PCI_ENDPOINT select PCIE_DW_EP - select PCI_IMX6 + select PCI_IMX help Enables support for the PCIe controller in the i.MX SoCs to work in endpoint mode. The PCI controller on i.MX is based diff --git a/drivers/pci/controller/dwc/Makefile b/drivers/pci/controller/dwc/Makefile index bac103faa5237..7084e615b2774 100644 --- a/drivers/pci/controller/dwc/Makefile +++ b/drivers/pci/controller/dwc/Makefile @@ -7,7 +7,7 @@ obj-$(CONFIG_PCIE_BT1) += pcie-bt1.o obj-$(CONFIG_PCI_DRA7XX) += pci-dra7xx.o obj-$(CONFIG_PCI_EXYNOS) += pci-exynos.o obj-$(CONFIG_PCIE_FU740) += pcie-fu740.o -obj-$(CONFIG_PCI_IMX6) += pci-imx6.o +obj-$(CONFIG_PCI_IMX) += pci-imx.o obj-$(CONFIG_PCIE_SPEAR13XX) += pcie-spear13xx.o obj-$(CONFIG_PCI_KEYSTONE) += pci-keystone.o obj-$(CONFIG_PCI_LAYERSCAPE) += pci-layerscape.o diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx.c similarity index 100% rename from drivers/pci/controller/dwc/pci-imx6.c rename to drivers/pci/controller/dwc/pci-imx.c
pci-imx6.c and PCI_IMX6 actuall for all i.MX chips (i.MX6x, i.MX7x, i.MX8x, i.MX9x). Remove '6' to avoid confuse. Signed-off-by: Frank Li <Frank.Li@nxp.com> --- drivers/pci/controller/dwc/Kconfig | 14 +++++++------- drivers/pci/controller/dwc/Makefile | 2 +- drivers/pci/controller/dwc/{pci-imx6.c => pci-imx.c} | 0 3 files changed, 8 insertions(+), 8 deletions(-)