From 7ce9d921bd560d00a601bd751ced32f71f9bbd28 Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Thu, 24 Mar 2022 10:17:51 +0100 Subject: dt-bindings: phy: Sync phy.h with Linux kernel Make sure that both files are in sync to have the same values in DTs. The patch is fixing SPDX license as is used in the kernel and adding new values for PHY_TYPE_DPHY and PHY_TYPE_CPHY. SPDX license change was done by: Link: https://lkml.kernel.org/r/20190528170027.447718015@linutronix.de and new value added by: Link: https://lore.kernel.org/r/20210617144349.28448-3-jonathan@marek.ca Signed-off-by: Michal Simek Link: https://lore.kernel.org/r/06dbc03d4c9ac5d621341d8fb8cc16f489062b39.1648113469.git.michal.simek@xilinx.com --- include/dt-bindings/phy/phy.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/dt-bindings/phy/phy.h b/include/dt-bindings/phy/phy.h index d3714edd4bd..f48c9acf251 100644 --- a/include/dt-bindings/phy/phy.h +++ b/include/dt-bindings/phy/phy.h @@ -1,10 +1,10 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ /* * * This header provides constants for the phy framework * * Copyright (C) 2014 STMicroelectronics * Author: Gabriel Fernandez - * License terms: GNU General Public License (GPL), version 2 */ #ifndef _DT_BINDINGS_PHY @@ -20,5 +20,7 @@ #define PHY_TYPE_XPCS 7 #define PHY_TYPE_SGMII 8 #define PHY_TYPE_QSGMII 9 +#define PHY_TYPE_DPHY 10 +#define PHY_TYPE_CPHY 11 #endif /* _DT_BINDINGS_PHY */ -- cgit v1.2.3 From cf5ed341e44bdde29d380362f9d1b8fbd95b04fd Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Tue, 29 Mar 2022 12:54:41 +0200 Subject: xilinx: Increase max size of image from 60 to 100MB Recently big Linux kernels can have more then 60MB that's why increase this limit to also cover these large kernels. Signed-off-by: Michal Simek Link: https://lore.kernel.org/r/f52f7c8ea419d69b248ba1460a96d1635194e128.1648551279.git.michal.simek@xilinx.com --- include/configs/xilinx_versal.h | 2 +- include/configs/xilinx_zynqmp.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/configs/xilinx_versal.h b/include/configs/xilinx_versal.h index 19e09e3cafa..9088b318ec8 100644 --- a/include/configs/xilinx_versal.h +++ b/include/configs/xilinx_versal.h @@ -43,7 +43,7 @@ # define PHY_ANEG_TIMEOUT 20000 #endif -#define CONFIG_SYS_BOOTM_LEN (60 * 1024 * 1024) +#define CONFIG_SYS_BOOTM_LEN (100 * 1024 * 1024) #define CONFIG_CLOCKS diff --git a/include/configs/xilinx_zynqmp.h b/include/configs/xilinx_zynqmp.h index 494a7c4b001..d1abe44c455 100644 --- a/include/configs/xilinx_zynqmp.h +++ b/include/configs/xilinx_zynqmp.h @@ -58,7 +58,7 @@ # define PHY_ANEG_TIMEOUT 20000 #endif -#define CONFIG_SYS_BOOTM_LEN (60 * 1024 * 1024) +#define CONFIG_SYS_BOOTM_LEN (100 * 1024 * 1024) #define CONFIG_CLOCKS -- cgit v1.2.3 From 9b529a972d15af7dabfa2fffa69f0e2ed69b6220 Mon Sep 17 00:00:00 2001 From: T Karthik Reddy Date: Tue, 29 Mar 2022 16:05:57 +0200 Subject: net: phy: Fix rgmii-id phy reset timeout issue While creating a phy device using phy_device_create(), we need to provide a valid phyaddr instead of 0 causing phy address being registered as 0 with mdio bus and shows mdio phy list as below ZynqMP> mdio list eth0: 0 - TI DP83867 <--> ethernet@ff0b0000 eth1: 0 - TI DP83867 <--> ethernet@ff0c0000 Also PHY soft reset is being requested on 0 instead of valid address causing "PHY reset timed out" error. So add phyaddr argument to phy_connect_phy_id() and to its prototype to create phy device with valid phyaddress. Fixes: a744a284e354 ("net: phy: Add support for ethernet-phy-id with gpio reset") Signed-off-by: T Karthik Reddy Signed-off-by: Michal Simek Reviewed-by: Bin Meng Link: https://lore.kernel.org/r/fe35fddb9faa5af577ffdfabaec6879c935a30f8.1648562755.git.michal.simek@xilinx.com --- include/phy.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/phy.h b/include/phy.h index 9ea4bd42db4..5e3da4b01b6 100644 --- a/include/phy.h +++ b/include/phy.h @@ -479,7 +479,7 @@ struct phy_device *phy_device_create(struct mii_dev *bus, int addr, * or NULL otherwise */ struct phy_device *phy_connect_phy_id(struct mii_dev *bus, struct udevice *dev, - phy_interface_t interface); + int phyaddr, phy_interface_t interface); static inline ofnode phy_get_ofnode(struct phy_device *phydev) { -- cgit v1.2.3 From d2f059c3dc3e651e8ec16ccadefa26a5e1109e5a Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Wed, 30 Mar 2022 09:56:23 +0200 Subject: dt-bindings: xilinx: Add missing ids for PD There are some new power domain IDs which are used in Linux kernel that's why add them here too. Signed-off-by: Michal Simek Link: https://lore.kernel.org/r/e6092e1d3766c0ac11bf620820739c93ab677a85.1648626981.git.michal.simek@xilinx.com --- include/dt-bindings/power/xlnx-versal-power.h | 11 +++++++++++ include/dt-bindings/power/xlnx-zynqmp-power.h | 11 +++++++++++ 2 files changed, 22 insertions(+) (limited to 'include') diff --git a/include/dt-bindings/power/xlnx-versal-power.h b/include/dt-bindings/power/xlnx-versal-power.h index 4a727754ad0..51d1def6773 100644 --- a/include/dt-bindings/power/xlnx-versal-power.h +++ b/include/dt-bindings/power/xlnx-versal-power.h @@ -6,6 +6,16 @@ #ifndef _DT_BINDINGS_VERSAL_POWER_H #define _DT_BINDINGS_VERSAL_POWER_H +#define PM_DEV_RPU0_0 (0x18110005U) +#define PM_DEV_RPU0_1 (0x18110006U) +#define PM_DEV_OCM_0 (0x18314007U) +#define PM_DEV_OCM_1 (0x18314008U) +#define PM_DEV_OCM_2 (0x18314009U) +#define PM_DEV_OCM_3 (0x1831400aU) +#define PM_DEV_TCM_0_A (0x1831800bU) +#define PM_DEV_TCM_0_B (0x1831800cU) +#define PM_DEV_TCM_1_A (0x1831800dU) +#define PM_DEV_TCM_1_B (0x1831800eU) #define PM_DEV_USB_0 (0x18224018U) #define PM_DEV_GEM_0 (0x18224019U) #define PM_DEV_GEM_1 (0x1822401aU) @@ -38,6 +48,7 @@ #define PM_DEV_ADMA_5 (0x1822403aU) #define PM_DEV_ADMA_6 (0x1822403bU) #define PM_DEV_ADMA_7 (0x1822403cU) +#define PM_DEV_AMS_ROOT (0x18224055U) #define PM_DEV_AI (0x18224072U) #endif diff --git a/include/dt-bindings/power/xlnx-zynqmp-power.h b/include/dt-bindings/power/xlnx-zynqmp-power.h index 0d9a412fd5e..e7eb0960480 100644 --- a/include/dt-bindings/power/xlnx-zynqmp-power.h +++ b/include/dt-bindings/power/xlnx-zynqmp-power.h @@ -6,6 +6,16 @@ #ifndef _DT_BINDINGS_ZYNQMP_POWER_H #define _DT_BINDINGS_ZYNQMP_POWER_H +#define PD_RPU_0 6 +#define PD_RPU_1 7 +#define PD_OCM_BANK_0 11 +#define PD_OCM_BANK_1 12 +#define PD_OCM_BANK_2 13 +#define PD_OCM_BANK_3 14 +#define PD_TCM_BANK_0 15 +#define PD_TCM_BANK_1 16 +#define PD_TCM_BANK_2 17 +#define PD_TCM_BANK_3 18 #define PD_USB_0 22 #define PD_USB_1 23 #define PD_TTC_0 24 @@ -35,5 +45,6 @@ #define PD_CAN_1 48 #define PD_GPU 58 #define PD_PCIE 59 +#define PD_PL 69 #endif -- cgit v1.2.3 From 7011efce2390e2721819df8c4d35da99e43e86b7 Mon Sep 17 00:00:00 2001 From: T Karthik Reddy Date: Wed, 30 Mar 2022 11:07:57 +0200 Subject: firmware: firmware-zynqmp: Add zynqmp_pm_set_gem_config api Add zynqmp_pm_set_gem_config() api to configure GEM secure registers. Signed-off-by: T Karthik Reddy Signed-off-by: Michal Simek Link: https://lore.kernel.org/r/f69e32355c6a6be7d2780663353c52757530207d.1648631275.git.michal.simek@xilinx.com --- include/zynqmp_firmware.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'include') diff --git a/include/zynqmp_firmware.h b/include/zynqmp_firmware.h index f577008736d..76ec2141ff6 100644 --- a/include/zynqmp_firmware.h +++ b/include/zynqmp_firmware.h @@ -408,6 +408,11 @@ enum pm_sd_config_type { SD_CONFIG_FIXED = 4, /* To set fixed config registers */ }; +enum pm_gem_config_type { + GEM_CONFIG_SGMII_MODE = 1, /* To set GEM_SGMII_MODE in GEM_CLK_CTRL */ + GEM_CONFIG_FIXED = 2, /* To set fixed config registers */ +}; + #define PM_SIP_SVC 0xc2000000 #define ZYNQMP_PM_VERSION_MAJOR 1 @@ -439,6 +444,8 @@ void zynqmp_pmufw_load_config_object(const void *cfg_obj, size_t size); int xilinx_pm_request(u32 api_id, u32 arg0, u32 arg1, u32 arg2, u32 arg3, u32 *ret_payload); int zynqmp_pm_set_sd_config(u32 node, enum pm_sd_config_type config, u32 value); +int zynqmp_pm_set_gem_config(u32 node, enum pm_gem_config_type config, + u32 value); int zynqmp_pm_is_function_supported(const u32 api_id, const u32 id); /* Type of Config Object */ -- cgit v1.2.3