diff options
| author | Tom Rini <[email protected]> | 2024-05-20 10:16:33 -0600 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2024-05-20 10:16:33 -0600 |
| commit | d4781422d1268aa6deca3e49d2fb227e79c160b4 (patch) | |
| tree | 420073c8a29a401a3908803000df6f54673e1731 /drivers/phy | |
| parent | 85854bc3324edd0c81047780ee60033d056fd490 (diff) | |
| parent | a7f0154c412859323396111dd0c09dbafbc153cb (diff) | |
Merge tag 'v2024.07-rc3' into next
Prepare v2024.07-rc3
Diffstat (limited to 'drivers/phy')
51 files changed, 102 insertions, 78 deletions
diff --git a/drivers/phy/allwinner/phy-sun4i-usb.c b/drivers/phy/allwinner/phy-sun4i-usb.c index b9306c9a827..6624e9134f4 100644 --- a/drivers/phy/allwinner/phy-sun4i-usb.c +++ b/drivers/phy/allwinner/phy-sun4i-usb.c @@ -10,6 +10,7 @@ * SPDX-License-Identifier: GPL-2.0+ */ +#include <common.h> #include <clk.h> #include <dm.h> #include <log.h> diff --git a/drivers/phy/bcm6318-usbh-phy.c b/drivers/phy/bcm6318-usbh-phy.c index d715541bd4c..a2fa446cb1c 100644 --- a/drivers/phy/bcm6318-usbh-phy.c +++ b/drivers/phy/bcm6318-usbh-phy.c @@ -7,6 +7,7 @@ * Copyright 2013 Florian Fainelli <[email protected]> */ +#include <common.h> #include <clk.h> #include <dm.h> #include <generic-phy.h> diff --git a/drivers/phy/bcm6348-usbh-phy.c b/drivers/phy/bcm6348-usbh-phy.c index ffb37b634a3..857fb575ef1 100644 --- a/drivers/phy/bcm6348-usbh-phy.c +++ b/drivers/phy/bcm6348-usbh-phy.c @@ -7,6 +7,7 @@ * Copyright 2013 Florian Fainelli <[email protected]> */ +#include <common.h> #include <clk.h> #include <dm.h> #include <generic-phy.h> diff --git a/drivers/phy/bcm6358-usbh-phy.c b/drivers/phy/bcm6358-usbh-phy.c index a8d24609bfc..bfdcfb0d245 100644 --- a/drivers/phy/bcm6358-usbh-phy.c +++ b/drivers/phy/bcm6358-usbh-phy.c @@ -7,6 +7,7 @@ * Copyright 2013 Florian Fainelli <[email protected]> */ +#include <common.h> #include <dm.h> #include <generic-phy.h> #include <log.h> diff --git a/drivers/phy/bcm6368-usbh-phy.c b/drivers/phy/bcm6368-usbh-phy.c index 5bee130425d..1a2870d5149 100644 --- a/drivers/phy/bcm6368-usbh-phy.c +++ b/drivers/phy/bcm6368-usbh-phy.c @@ -7,6 +7,7 @@ * Copyright 2013 Florian Fainelli <[email protected]> */ +#include <common.h> #include <clk.h> #include <dm.h> #include <generic-phy.h> diff --git a/drivers/phy/cadence/phy-cadence-sierra.c b/drivers/phy/cadence/phy-cadence-sierra.c index f5e23f36c56..4bb8a0ca7f3 100644 --- a/drivers/phy/cadence/phy-cadence-sierra.c +++ b/drivers/phy/cadence/phy-cadence-sierra.c @@ -11,6 +11,7 @@ * Jean-Jacques Hiblot <[email protected]> * */ +#include <common.h> #include <clk.h> #include <linux/delay.h> #include <linux/clk-provider.h> diff --git a/drivers/phy/cadence/phy-cadence-torrent.c b/drivers/phy/cadence/phy-cadence-torrent.c index d4e8ece4935..ef924e7af50 100644 --- a/drivers/phy/cadence/phy-cadence-torrent.c +++ b/drivers/phy/cadence/phy-cadence-torrent.c @@ -10,6 +10,7 @@ * */ +#include <common.h> #include <clk.h> #include <generic-phy.h> #include <reset.h> diff --git a/drivers/phy/keystone-usb-phy.c b/drivers/phy/keystone-usb-phy.c index cfc15203d63..3bb9c0814c1 100644 --- a/drivers/phy/keystone-usb-phy.c +++ b/drivers/phy/keystone-usb-phy.c @@ -4,6 +4,7 @@ * Written by Jean-Jacques Hiblot <[email protected]> */ +#include <common.h> #include <dm.h> #include <log.h> #include <dm/device.h> diff --git a/drivers/phy/marvell/comphy_a3700.c b/drivers/phy/marvell/comphy_a3700.c index bca325d1996..c490dc69c69 100644 --- a/drivers/phy/marvell/comphy_a3700.c +++ b/drivers/phy/marvell/comphy_a3700.c @@ -3,6 +3,7 @@ * Copyright (C) 2015-2016 Marvell International Ltd. */ +#include <common.h> #include <fdt_support.h> #include <log.h> #include <asm/global_data.h> diff --git a/drivers/phy/marvell/comphy_core.c b/drivers/phy/marvell/comphy_core.c index a666a4e794e..7272dfb9fe8 100644 --- a/drivers/phy/marvell/comphy_core.c +++ b/drivers/phy/marvell/comphy_core.c @@ -5,6 +5,7 @@ * Copyright (C) 2016 Stefan Roese <[email protected]> */ +#include <common.h> #include <dm.h> #include <fdtdec.h> #include <asm/global_data.h> diff --git a/drivers/phy/marvell/comphy_cp110.c b/drivers/phy/marvell/comphy_cp110.c index b8cdedf6edf..bb15fbaf347 100644 --- a/drivers/phy/marvell/comphy_cp110.c +++ b/drivers/phy/marvell/comphy_cp110.c @@ -3,6 +3,7 @@ * Copyright (C) 2015-2016 Marvell International Ltd. */ +#include <common.h> #include <fdtdec.h> #include <log.h> #include <asm/global_data.h> @@ -11,7 +12,6 @@ #include <asm/arch/cpu.h> #include <asm/arch/soc.h> #include <linux/delay.h> -#include <linux/errno.h> #include <linux/printk.h> #include "comphy_core.h" diff --git a/drivers/phy/marvell/comphy_mux.c b/drivers/phy/marvell/comphy_mux.c index a8aa37fc46f..10981d25ec9 100644 --- a/drivers/phy/marvell/comphy_mux.c +++ b/drivers/phy/marvell/comphy_mux.c @@ -3,6 +3,7 @@ * Copyright (C) 2015-2016 Marvell International Ltd. */ +#include <common.h> #include <log.h> #include <asm/io.h> diff --git a/drivers/phy/meson-axg-mipi-dphy.c b/drivers/phy/meson-axg-mipi-dphy.c index 3f89de19970..faa1d9d6d37 100644 --- a/drivers/phy/meson-axg-mipi-dphy.c +++ b/drivers/phy/meson-axg-mipi-dphy.c @@ -7,6 +7,7 @@ * Author: Neil Armstrong <[email protected]> */ +#include <common.h> #include <log.h> #include <malloc.h> #include <asm/io.h> diff --git a/drivers/phy/meson-axg-mipi-pcie-analog.c b/drivers/phy/meson-axg-mipi-pcie-analog.c index 731917cef43..236ea1ce5ca 100644 --- a/drivers/phy/meson-axg-mipi-pcie-analog.c +++ b/drivers/phy/meson-axg-mipi-pcie-analog.c @@ -7,6 +7,7 @@ * Author: Neil Armstrong <[email protected]> */ +#include <common.h> #include <log.h> #include <malloc.h> #include <asm/io.h> diff --git a/drivers/phy/meson-g12a-usb2.c b/drivers/phy/meson-g12a-usb2.c index 8cded12438b..3958d2404b8 100644 --- a/drivers/phy/meson-g12a-usb2.c +++ b/drivers/phy/meson-g12a-usb2.c @@ -7,6 +7,7 @@ * Author: Neil Armstrong <[email protected]> */ +#include <common.h> #include <log.h> #include <malloc.h> #include <asm/io.h> diff --git a/drivers/phy/meson-g12a-usb3-pcie.c b/drivers/phy/meson-g12a-usb3-pcie.c index 4d183867c3a..1eaff410efa 100644 --- a/drivers/phy/meson-g12a-usb3-pcie.c +++ b/drivers/phy/meson-g12a-usb3-pcie.c @@ -7,6 +7,7 @@ * Author: Neil Armstrong <[email protected]> */ +#include <common.h> #include <clk.h> #include <dm.h> #include <malloc.h> diff --git a/drivers/phy/meson-gxbb-usb2.c b/drivers/phy/meson-gxbb-usb2.c index 4c88ccf3927..725b056a71a 100644 --- a/drivers/phy/meson-gxbb-usb2.c +++ b/drivers/phy/meson-gxbb-usb2.c @@ -8,6 +8,7 @@ * Author: Beniamino Galvani <[email protected]> */ +#include <common.h> #include <clk.h> #include <dm.h> #include <generic-phy.h> diff --git a/drivers/phy/meson-gxl-usb2.c b/drivers/phy/meson-gxl-usb2.c index 92c285103c4..d633effa404 100644 --- a/drivers/phy/meson-gxl-usb2.c +++ b/drivers/phy/meson-gxl-usb2.c @@ -7,6 +7,7 @@ * Author: Neil Armstrong <[email protected]> */ +#include <common.h> #include <malloc.h> #include <asm/io.h> #include <bitfield.h> diff --git a/drivers/phy/mt76x8-usb-phy.c b/drivers/phy/mt76x8-usb-phy.c index 99f8a221f5a..4069208b679 100644 --- a/drivers/phy/mt76x8-usb-phy.c +++ b/drivers/phy/mt76x8-usb-phy.c @@ -7,6 +7,7 @@ */ #include <clk.h> +#include <common.h> #include <dm.h> #include <generic-phy.h> #include <log.h> diff --git a/drivers/phy/nop-phy.c b/drivers/phy/nop-phy.c index 286171cba76..c53e3216d0f 100644 --- a/drivers/phy/nop-phy.c +++ b/drivers/phy/nop-phy.c @@ -5,6 +5,7 @@ */ #include <clk.h> +#include <common.h> #include <dm.h> #include <dm/device.h> #include <dm/device_compat.h> diff --git a/drivers/phy/omap-usb2-phy.c b/drivers/phy/omap-usb2-phy.c index 2be0178882a..d3d38062ecf 100644 --- a/drivers/phy/omap-usb2-phy.c +++ b/drivers/phy/omap-usb2-phy.c @@ -6,6 +6,7 @@ * Written by Jean-Jacques Hiblot <[email protected]> */ +#include <common.h> #include <asm/global_data.h> #include <asm/io.h> #include <dm.h> diff --git a/drivers/phy/phy-ab8500-usb.c b/drivers/phy/phy-ab8500-usb.c index 5de7b6f86cc..3d3d48c9733 100644 --- a/drivers/phy/phy-ab8500-usb.c +++ b/drivers/phy/phy-ab8500-usb.c @@ -1,6 +1,7 @@ // SPDX-License-Identifier: GPL-2.0+ /* Copyright (C) 2019 Stephan Gerhold */ +#include <common.h> #include <dm.h> #include <generic-phy.h> #include <linux/bitops.h> diff --git a/drivers/phy/phy-apple-atc.c b/drivers/phy/phy-apple-atc.c index 78eedf676b0..15c5b8a1c2d 100644 --- a/drivers/phy/phy-apple-atc.c +++ b/drivers/phy/phy-apple-atc.c @@ -3,6 +3,7 @@ * Copyright (C) 2022 Mark Kettenis <[email protected]> */ +#include <common.h> #include <dm.h> #include <dm/device-internal.h> #include <generic-phy.h> diff --git a/drivers/phy/phy-bcm-sr-pcie.c b/drivers/phy/phy-bcm-sr-pcie.c index 97859a0cb87..cf33bab3707 100644 --- a/drivers/phy/phy-bcm-sr-pcie.c +++ b/drivers/phy/phy-bcm-sr-pcie.c @@ -3,6 +3,7 @@ * Copyright (C) 2019 Broadcom */ +#include <common.h> #include <dm.h> #include <generic-phy.h> #include <asm/io.h> diff --git a/drivers/phy/phy-core-mipi-dphy.c b/drivers/phy/phy-core-mipi-dphy.c index 8fb985a1e68..bb61816add2 100644 --- a/drivers/phy/phy-core-mipi-dphy.c +++ b/drivers/phy/phy-core-mipi-dphy.c @@ -4,8 +4,8 @@ * Copyright (C) 2018 Cadence Design Systems Inc. */ +#include <common.h> #include <div64.h> -#include <linux/kernel.h> #include <linux/time.h> #include <phy-mipi-dphy.h> diff --git a/drivers/phy/phy-da8xx-usb.c b/drivers/phy/phy-da8xx-usb.c index cf26aaaa3d8..d025188eae9 100644 --- a/drivers/phy/phy-da8xx-usb.c +++ b/drivers/phy/phy-da8xx-usb.c @@ -6,9 +6,9 @@ * DT support added by: Adam Ford <[email protected]> */ +#include <common.h> #include <dm.h> #include <log.h> -#include <time.h> #include <dm/device-internal.h> #include <dm/lists.h> #include <asm/arch/hardware.h> diff --git a/drivers/phy/phy-imx8mq-usb.c b/drivers/phy/phy-imx8mq-usb.c index 75763046adc..e5e96e77a68 100644 --- a/drivers/phy/phy-imx8mq-usb.c +++ b/drivers/phy/phy-imx8mq-usb.c @@ -4,6 +4,7 @@ * */ +#include <common.h> #include <asm/io.h> #include <dm.h> #include <errno.h> diff --git a/drivers/phy/phy-mtk-tphy.c b/drivers/phy/phy-mtk-tphy.c index 6f9ac1528e8..ea9edf212c6 100644 --- a/drivers/phy/phy-mtk-tphy.c +++ b/drivers/phy/phy-mtk-tphy.c @@ -5,6 +5,7 @@ * Ryder Lee <[email protected]> */ +#include <common.h> #include <clk.h> #include <dm.h> #include <generic-phy.h> diff --git a/drivers/phy/phy-npcm-usb.c b/drivers/phy/phy-npcm-usb.c index 2cca0f4a054..09fb14e26f0 100644 --- a/drivers/phy/phy-npcm-usb.c +++ b/drivers/phy/phy-npcm-usb.c @@ -3,6 +3,7 @@ * Copyright (c) 2021 Nuvoton Technology Corp. */ +#include <common.h> #include <dm.h> #include <generic-phy.h> #include <regmap.h> diff --git a/drivers/phy/phy-rcar-gen2.c b/drivers/phy/phy-rcar-gen2.c index f9428c7ad12..e528c4ec579 100644 --- a/drivers/phy/phy-rcar-gen2.c +++ b/drivers/phy/phy-rcar-gen2.c @@ -5,6 +5,7 @@ * Copyright (C) 2018 Marek Vasut <[email protected]> */ +#include <common.h> #include <clk.h> #include <div64.h> #include <dm.h> diff --git a/drivers/phy/phy-rcar-gen3.c b/drivers/phy/phy-rcar-gen3.c index 7c292cae0e2..03c747b373b 100644 --- a/drivers/phy/phy-rcar-gen3.c +++ b/drivers/phy/phy-rcar-gen3.c @@ -5,6 +5,7 @@ * Copyright (C) 2018 Marek Vasut <[email protected]> */ +#include <common.h> #include <clk.h> #include <div64.h> #include <dm.h> diff --git a/drivers/phy/phy-stm32-usbphyc.c b/drivers/phy/phy-stm32-usbphyc.c index 8d643b762f9..000e495dbd4 100644 --- a/drivers/phy/phy-stm32-usbphyc.c +++ b/drivers/phy/phy-stm32-usbphyc.c @@ -5,6 +5,7 @@ #define LOG_CATEGORY UCLASS_PHY +#include <common.h> #include <clk.h> #include <clk-uclass.h> #include <div64.h> diff --git a/drivers/phy/phy-ti-am654.c b/drivers/phy/phy-ti-am654.c index c3d9972397a..70a746d2c92 100644 --- a/drivers/phy/phy-ti-am654.c +++ b/drivers/phy/phy-ti-am654.c @@ -6,6 +6,7 @@ * Author: Kishon Vijay Abraham I <[email protected]> */ +#include <common.h> #include <clk-uclass.h> #include <dm.h> #include <log.h> diff --git a/drivers/phy/phy-uclass.c b/drivers/phy/phy-uclass.c index acdcda15b5b..0dcfe258bc4 100644 --- a/drivers/phy/phy-uclass.c +++ b/drivers/phy/phy-uclass.c @@ -6,6 +6,7 @@ #define LOG_CATEGORY UCLASS_PHY +#include <common.h> #include <dm.h> #include <dm/device_compat.h> #include <dm/devres.h> diff --git a/drivers/phy/phy-zynqmp.c b/drivers/phy/phy-zynqmp.c index 7049e740d56..d1288bb17f3 100644 --- a/drivers/phy/phy-zynqmp.c +++ b/drivers/phy/phy-zynqmp.c @@ -9,6 +9,7 @@ * Author: Laurent Pinchart <[email protected]> */ +#include <common.h> #include <clk-uclass.h> #include <dm.h> #include <generic-phy.h> diff --git a/drivers/phy/qcom/msm8916-usbh-phy.c b/drivers/phy/qcom/msm8916-usbh-phy.c index 4b435aa2a6e..f52046f7cb0 100644 --- a/drivers/phy/qcom/msm8916-usbh-phy.c +++ b/drivers/phy/qcom/msm8916-usbh-phy.c @@ -3,6 +3,7 @@ * Copyright (C) 2018 Ramon Fried <[email protected]> */ +#include <common.h> #include <dm.h> #include <generic-phy.h> #include <linux/bitops.h> diff --git a/drivers/phy/qcom/phy-qcom-ipq4019-usb.c b/drivers/phy/qcom/phy-qcom-ipq4019-usb.c index 3b647324e02..5808489249f 100644 --- a/drivers/phy/qcom/phy-qcom-ipq4019-usb.c +++ b/drivers/phy/qcom/phy-qcom-ipq4019-usb.c @@ -8,6 +8,7 @@ */ #include <clk.h> +#include <common.h> #include <dm.h> #include <generic-phy.h> #include <log.h> diff --git a/drivers/phy/qcom/phy-qcom-usb-hs-28nm.c b/drivers/phy/qcom/phy-qcom-usb-hs-28nm.c index c344809a608..05a9a2cf1d7 100644 --- a/drivers/phy/qcom/phy-qcom-usb-hs-28nm.c +++ b/drivers/phy/qcom/phy-qcom-usb-hs-28nm.c @@ -5,6 +5,7 @@ * Based on Linux driver */ +#include <common.h> #include <dm.h> #include <generic-phy.h> #include <reset.h> diff --git a/drivers/phy/qcom/phy-qcom-usb-ss.c b/drivers/phy/qcom/phy-qcom-usb-ss.c index 270d09d883c..1b03a3c43dc 100644 --- a/drivers/phy/qcom/phy-qcom-usb-ss.c +++ b/drivers/phy/qcom/phy-qcom-usb-ss.c @@ -5,6 +5,7 @@ * Based on Linux driver */ +#include <common.h> #include <dm.h> #include <generic-phy.h> #include <linux/bitops.h> diff --git a/drivers/phy/renesas/r8a779f0-ether-serdes.c b/drivers/phy/renesas/r8a779f0-ether-serdes.c index 40284ef2fd3..bd1fdd3a667 100644 --- a/drivers/phy/renesas/r8a779f0-ether-serdes.c +++ b/drivers/phy/renesas/r8a779f0-ether-serdes.c @@ -7,6 +7,7 @@ #include <asm/io.h> #include <clk-uclass.h> #include <clk.h> +#include <common.h> #include <div64.h> #include <dm.h> #include <dm/device_compat.h> diff --git a/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c b/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c index 3ad339bccc1..9ca66bf8db9 100644 --- a/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c +++ b/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c @@ -5,6 +5,7 @@ * Copyright (C) 2021 Rockchip Electronics Co., Ltd. */ +#include <common.h> #include <clk.h> #include <dm.h> #include <dm/lists.h> diff --git a/drivers/phy/rockchip/phy-rockchip-pcie.c b/drivers/phy/rockchip/phy-rockchip-pcie.c index 660037034ec..44ca4bc7919 100644 --- a/drivers/phy/rockchip/phy-rockchip-pcie.c +++ b/drivers/phy/rockchip/phy-rockchip-pcie.c @@ -7,6 +7,7 @@ * Copyright (C) 2016 ROCKCHIP, Inc. */ +#include <common.h> #include <clk.h> #include <dm.h> #include <asm/global_data.h> diff --git a/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c b/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c index 2737bd81dd9..a4392daf4c9 100644 --- a/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c +++ b/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c @@ -5,6 +5,7 @@ * Copyright (C) 2021 Rockchip Electronics Co., Ltd. */ +#include <common.h> #include <clk.h> #include <dm.h> #include <generic-phy.h> diff --git a/drivers/phy/rockchip/phy-rockchip-typec.c b/drivers/phy/rockchip/phy-rockchip-typec.c index c7459dbc5fc..47c69dd6c45 100644 --- a/drivers/phy/rockchip/phy-rockchip-typec.c +++ b/drivers/phy/rockchip/phy-rockchip-typec.c @@ -8,6 +8,7 @@ * Kever Yang <[email protected]> */ +#include <common.h> #include <clk.h> #include <dm.h> #include <asm/global_data.h> diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockchip/phy-rockchip-usbdp.c index 5bcc76613d1..18e76402799 100644 --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c @@ -5,6 +5,7 @@ * Copyright (C) 2021 Rockchip Electronics Co., Ltd */ +#include <common.h> #include <clk.h> #include <dm.h> #include <dm/device_compat.h> @@ -20,7 +21,7 @@ #include <reset.h> #include <syscon.h> #include <asm/arch-rockchip/clock.h> - +#include <dt-bindings/phy/phy.h> #include <linux/usb/phy-rockchip-usbdp.h> #define BIT_WRITEABLE_SHIFT 16 @@ -73,6 +74,8 @@ struct udphy_grf_cfg { struct rockchip_udphy; struct rockchip_udphy_cfg { + unsigned int num_phys; + unsigned int phy_ids[2]; /* resets to be requested */ const char * const *rst_list; int num_rsts; @@ -582,10 +585,21 @@ static int udphy_power_off(struct rockchip_udphy *udphy, u8 mode) return 0; } +static int rockchip_u3phy_of_xlate(struct phy *phy, + struct ofnode_phandle_args *args) +{ + if (args->args_count == 0) + return -EINVAL; + + if (args->args[0] != PHY_TYPE_USB3) + return -EINVAL; + + return 0; +} + static int rockchip_u3phy_init(struct phy *phy) { - struct udevice *parent = phy->dev->parent; - struct rockchip_udphy *udphy = dev_get_priv(parent); + struct rockchip_udphy *udphy = dev_get_priv(phy->dev); /* DP only or high-speed, disable U3 port */ if (!(udphy->mode & UDPHY_MODE_USB) || udphy->hs) { @@ -598,8 +612,7 @@ static int rockchip_u3phy_init(struct phy *phy) static int rockchip_u3phy_exit(struct phy *phy) { - struct udevice *parent = phy->dev->parent; - struct rockchip_udphy *udphy = dev_get_priv(parent); + struct rockchip_udphy *udphy = dev_get_priv(phy->dev); /* DP only or high-speed */ if (!(udphy->mode & UDPHY_MODE_USB) || udphy->hs) @@ -609,47 +622,32 @@ static int rockchip_u3phy_exit(struct phy *phy) } static const struct phy_ops rockchip_u3phy_ops = { + .of_xlate = rockchip_u3phy_of_xlate, .init = rockchip_u3phy_init, .exit = rockchip_u3phy_exit, }; -int rockchip_u3phy_uboot_init(void) -{ - struct udevice *udev; - struct rockchip_udphy *udphy; - int ret; - - ret = uclass_get_device_by_driver(UCLASS_PHY, - DM_DRIVER_GET(rockchip_udphy_u3_port), - &udev); - if (ret) { - pr_err("%s: get u3-port failed: %d\n", __func__, ret); - return ret; - } - - /* DP only or high-speed, disable U3 port */ - udphy = dev_get_priv(udev->parent); - if (!(udphy->mode & UDPHY_MODE_USB) || udphy->hs) { - udphy_u3_port_disable(udphy, true); - return 0; - } - - return udphy_power_on(udphy, UDPHY_MODE_USB); -} - static int rockchip_udphy_probe(struct udevice *dev) { - const struct device_node *np = ofnode_to_np(dev_ofnode(dev)); struct rockchip_udphy *udphy = dev_get_priv(dev); const struct rockchip_udphy_cfg *phy_cfgs; + unsigned int reg; int id, ret; udphy->dev = dev; - id = of_alias_get_id(np, "usbdp"); - if (id < 0) - id = 0; - udphy->id = id; + ret = ofnode_read_u32_index(dev_ofnode(dev), "reg", 0, ®); + if (ret) { + dev_err(dev, "failed to read reg[0] property\n"); + return ret; + } + if (reg == 0 && dev_read_addr_cells(dev) == 2) { + ret = ofnode_read_u32_index(dev_ofnode(dev), "reg", 1, ®); + if (ret) { + dev_err(dev, "failed to read reg[1] property\n"); + return ret; + } + } phy_cfgs = (const struct rockchip_udphy_cfg *)dev_get_driver_data(dev); if (!phy_cfgs) { @@ -658,6 +656,20 @@ static int rockchip_udphy_probe(struct udevice *dev) } udphy->cfgs = phy_cfgs; + /* find the phy-id from the io address */ + udphy->id = -ENODEV; + for (id = 0; id < udphy->cfgs->num_phys; id++) { + if (reg == udphy->cfgs->phy_ids[id]) { + udphy->id = id; + break; + } + } + + if (udphy->id < 0) { + dev_err(dev, "no matching device found\n"); + return -ENODEV; + } + ret = regmap_init_mem(dev_ofnode(dev), &udphy->pma_regmap); if (ret) return ret; @@ -670,40 +682,6 @@ static int rockchip_udphy_probe(struct udevice *dev) return 0; } -static int rockchip_udphy_bind(struct udevice *parent) -{ - struct udevice *child; - ofnode subnode; - const char *node_name; - int ret; - - dev_for_each_subnode(subnode, parent) { - if (!ofnode_valid(subnode)) { - printf("%s: no subnode for %s", __func__, parent->name); - return -ENXIO; - } - - node_name = ofnode_get_name(subnode); - debug("%s: subnode %s\n", __func__, node_name); - - /* if there is no match, continue */ - if (strcasecmp(node_name, "usb3-port")) - continue; - - /* node name is usb3-port */ - ret = device_bind_driver_to_node(parent, - "rockchip_udphy_u3_port", - node_name, subnode, &child); - if (ret) { - printf("%s: '%s' cannot bind its driver\n", - __func__, node_name); - return ret; - } - } - - return 0; -} - static int rk3588_udphy_refclk_set(struct rockchip_udphy *udphy) { /* configure phy reference clock */ @@ -837,6 +815,11 @@ static const char * const rk3588_udphy_rst_l[] = { }; static const struct rockchip_udphy_cfg rk3588_udphy_cfgs = { + .num_phys = 2, + .phy_ids = { + 0xfed80000, + 0xfed90000, + }, .num_rsts = ARRAY_SIZE(rk3588_udphy_rst_l), .rst_list = rk3588_udphy_rst_l, .grfcfg = { @@ -863,17 +846,11 @@ static const struct udevice_id rockchip_udphy_dt_match[] = { { /* sentinel */ } }; -U_BOOT_DRIVER(rockchip_udphy_u3_port) = { - .name = "rockchip_udphy_u3_port", - .id = UCLASS_PHY, - .ops = &rockchip_u3phy_ops, -}; - U_BOOT_DRIVER(rockchip_udphy) = { .name = "rockchip_udphy", .id = UCLASS_PHY, .of_match = rockchip_udphy_dt_match, .probe = rockchip_udphy_probe, - .bind = rockchip_udphy_bind, + .ops = &rockchip_u3phy_ops, .priv_auto = sizeof(struct rockchip_udphy), }; diff --git a/drivers/phy/sandbox-phy.c b/drivers/phy/sandbox-phy.c index b159147a765..7e123da25fb 100644 --- a/drivers/phy/sandbox-phy.c +++ b/drivers/phy/sandbox-phy.c @@ -4,6 +4,7 @@ * Written by Jean-Jacques Hiblot <[email protected]> */ +#include <common.h> #include <dm.h> #include <generic-phy.h> diff --git a/drivers/phy/socionext/phy-uniphier-pcie.c b/drivers/phy/socionext/phy-uniphier-pcie.c index 91208dfe120..d352c4ca3a9 100644 --- a/drivers/phy/socionext/phy-uniphier-pcie.c +++ b/drivers/phy/socionext/phy-uniphier-pcie.c @@ -4,6 +4,7 @@ * Copyright 2019-2021 Socionext, Inc. */ +#include <common.h> #include <dm.h> #include <generic-phy.h> #include <linux/bitops.h> diff --git a/drivers/phy/socionext/phy-uniphier-usb3.c b/drivers/phy/socionext/phy-uniphier-usb3.c index 1d65c1f7da5..1d65b0b08f7 100644 --- a/drivers/phy/socionext/phy-uniphier-usb3.c +++ b/drivers/phy/socionext/phy-uniphier-usb3.c @@ -4,6 +4,7 @@ * Copyright 2019-2023 Socionext, Inc. */ +#include <common.h> #include <dm.h> #include <generic-phy.h> diff --git a/drivers/phy/sti_usb_phy.c b/drivers/phy/sti_usb_phy.c index 2447e89f50d..9e5ac9bfde6 100644 --- a/drivers/phy/sti_usb_phy.c +++ b/drivers/phy/sti_usb_phy.c @@ -4,6 +4,7 @@ * Author(s): Patrice Chotard, <[email protected]> for STMicroelectronics. */ +#include <common.h> #include <log.h> #include <asm/global_data.h> #include <asm/io.h> diff --git a/drivers/phy/ti-pipe3-phy.c b/drivers/phy/ti-pipe3-phy.c index 62f6cc2bfbf..29a35ae5ffb 100644 --- a/drivers/phy/ti-pipe3-phy.c +++ b/drivers/phy/ti-pipe3-phy.c @@ -4,6 +4,7 @@ * Written by Jean-Jacques Hiblot <[email protected]> */ +#include <common.h> #include <dm.h> #include <dm/device.h> #include <generic-phy.h> diff --git a/drivers/phy/ti/phy-j721e-wiz.c b/drivers/phy/ti/phy-j721e-wiz.c index c69a342e2b4..daf62f5deda 100644 --- a/drivers/phy/ti/phy-j721e-wiz.c +++ b/drivers/phy/ti/phy-j721e-wiz.c @@ -4,6 +4,7 @@ * Jean-Jacques Hiblot <[email protected]> */ +#include <common.h> #include <clk-uclass.h> #include <dm.h> #include <dm/device_compat.h> |
