From patchwork Wed Jun 5 19:02:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1944121 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=RkeFYJ3i; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Vvd6W1wxCz20Q5 for ; Thu, 6 Jun 2024 05:38:11 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id D87D1883AA; Wed, 5 Jun 2024 21:37:36 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="RkeFYJ3i"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 0DF21881E5; Wed, 5 Jun 2024 21:03:43 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com [IPv6:2a00:1450:4864:20::329]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id E2536882E2 for ; Wed, 5 Jun 2024 21:03:39 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=ansuelsmth@gmail.com Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-42122ac2f38so611505e9.1 for ; Wed, 05 Jun 2024 12:03:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717614219; x=1718219019; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=oJ0+CuhEyFd/RiaRyTVjA4SgSyF7IXaxBtDPRgYd6fk=; b=RkeFYJ3iJ9CmhO3E8AT9teUrj249x0dtPPMIOdn8n046LVkLhx9TNEVpG2GA7trkvZ zQ2PJ8BT5hg+sz30NwHB49D2PlPZwjFMhCNrTRqI1V3L3zhMM674aE01RjcIFyRyALl2 H4qCv1aWMLs+U9miP1nkl94xLQFL4PMrRWID0FtsQUZp2VEr824QDQV0iGaPV4RUZ+BU KYfQKLuUQAK8eHvmhM+/OFAuEB2hxiyLhm+ZKE/LeIRlf6wrgykQ1/umZI+9i3twUdSY T77nIAyHImSKIVWhGGHARbi7pY5h4d9QDDurePnnHWAxxUN9Q8i0nZfUslRFiYmeSgUv ceMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717614219; x=1718219019; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oJ0+CuhEyFd/RiaRyTVjA4SgSyF7IXaxBtDPRgYd6fk=; b=LpDXEqXQzA7WXPaOhquBIuxGeCIsINKKP7Hi4Q3KfHxrch/JxzriDot39Y/tJzN0YO CyN6o2jw93L6cE/0CkGfl0TQp2ycG7KYK+P+V/i/ZSXMTE/B1dJ2HAHzrSyoMS4zwckP hwyQU2LCiUzgPvnS2wx8AYC7LShGskXrzW9fEYEkkFDJ2enfcvPGodKrgKN+d6xvi3pS bB742fKAK4eDSADB4ANh4j0xtPd8mccjFewxrXeQ6CJIrNVYBZE0V8iKb6M10127Olvt tq/+khOwq4X5nNz48RgjtD3vjIxuIH8sgfQJWnN+8Leu4jr/x7o88DeJhopkkORBSS+x mtuQ== X-Forwarded-Encrypted: i=1; AJvYcCWQ4Nd6XS+hZXt0D41Kd/IWnO8LkJQlqIWwmeZ1A5NW1Hjhd2BrDUmzfJ7ukur8nGBvzX2r86qzZUXFCSoYEKYEn6L7kw== X-Gm-Message-State: AOJu0YwXGwYIPonO3vXyuvojjsFAIIgty9eCE19BMnwTA+K5+AZz3whp AdvvxTD3URKpipbFAIXxpoojsTuXBNNUHhPRc44A5TwpzFrMYygW X-Google-Smtp-Source: AGHT+IFrK1ZLIrHTVsiF8tBjckKs9TM+u5fVkbAXyAguJSyt2dxJJ6axbdTh5hYDOoJHLiPQLUYt5g== X-Received: by 2002:a05:600c:138e:b0:41f:dc27:a7c1 with SMTP id 5b1f17b1804b1-4215ace036bmr4621265e9.5.1717614219340; Wed, 05 Jun 2024 12:03:39 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-4214a4abdd5sm44772195e9.0.2024.06.05.12.03.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Jun 2024 12:03:39 -0700 (PDT) From: Christian Marangi To: Tom Rini , Lukasz Majewski , Sean Anderson , Ryder Lee , Weijie Gao , Chunfeng Yun , GSS_MTK_Uboot_upstream , Heiko Schocher , Peng Fan , Jaehoon Chung , Joe Hershberger , Ramon Fried , Jagan Teki , Christian Marangi , Sam Shih , Francois Berder , Simon Glass , Julien Masson , Peter Robinson , Marek Vasut , Bo-Cun Chen , This contributor prefers not to receive mails , Michal Simek , John Crispin , Heinrich Schuchardt , Mason Huo , Stefan Roese , Sumit Garg , Mark Kettenis , Sergei Antonov , Mayuresh Chitale , "SkyLake.Huang" , =?utf-8?q?Nicol=C3=B2_Verones?= =?utf-8?q?e?= , u-boot@lists.denx.de Subject: [PATCH 01/11] phy: phy-mtk-tphy: add support for phy type switch Date: Wed, 5 Jun 2024 21:02:08 +0200 Message-ID: <20240605190220.17616-2-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240605190220.17616-1-ansuelsmth@gmail.com> References: <20240605190220.17616-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Wed, 05 Jun 2024 21:37:35 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Add support for PHY type switch via the mediatek topmisc syscon. This is needed on mt7981 to make the PCIe correctly work and display LinkUp. Follow the same implementation done on Linux kernel with the usage of the mediatek,syscon-type property. Example: u3port0: usb-phy@11e10700 { reg = <0x11e10700 0x900>; clocks = <&topckgen CK_TOP_USB3_PHY_SEL>; clock-names = "ref"; #phy-cells = <1>; mediatek,syscon-type = <&topmisc 0x218 0>; status = "okay"; }; Signed-off-by: Christian Marangi --- drivers/phy/phy-mtk-tphy.c | 80 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/drivers/phy/phy-mtk-tphy.c b/drivers/phy/phy-mtk-tphy.c index ea9edf212c6..24938c8d2e3 100644 --- a/drivers/phy/phy-mtk-tphy.c +++ b/drivers/phy/phy-mtk-tphy.c @@ -11,6 +11,8 @@ #include #include #include +#include +#include #include #include #include @@ -216,6 +218,14 @@ #define ANA_EQ_EYE_CTRL_SIGNAL5 0xdc #define RG_CDR_BIRLTD0_GEN3_MSK GENMASK(4, 0) +/* PHY switch between pcie/usb3/sgmii/sata */ +#define USB_PHY_SWITCH_CTRL 0x0 +#define RG_PHY_SW_TYPE GENMASK(3, 0) +#define RG_PHY_SW_PCIE 0x0 +#define RG_PHY_SW_USB3 0x1 +#define RG_PHY_SW_SGMII 0x2 +#define RG_PHY_SW_SATA 0x3 + enum mtk_phy_version { MTK_TPHY_V1 = 1, MTK_TPHY_V2, @@ -258,6 +268,10 @@ struct mtk_phy_instance { u32 index; u32 type; + struct regmap *type_sw; + u32 type_sw_reg; + u32 type_sw_index; + u32 eye_vrt; u32 eye_term; u32 discth; @@ -617,6 +631,67 @@ static void u2_phy_props_set(struct mtk_tphy *tphy, FIELD_PREP(PA6_RG_U2_PRE_EMP, instance->pre_emphasis)); } +/* type switch for usb3/pcie/sgmii/sata */ +static int phy_type_syscon_get(struct udevice *dev, struct mtk_phy_instance *instance, + ofnode dn) +{ + struct ofnode_phandle_args args; + int err; + + if (!ofnode_read_bool(dn, "mediatek,syscon-type")) + return 0; + + err = ofnode_parse_phandle_with_args(dn, "mediatek,syscon-type", + NULL, 2, 0, &args); + if (err) + return err; + + instance->type_sw_reg = args.args[0]; + instance->type_sw_index = args.args[1] & 0x3; /* <=3 */ + instance->type_sw = syscon_node_to_regmap(args.node); + if (IS_ERR(instance->type_sw)) + return PTR_ERR(instance->type_sw); + + debug("phy-%s.%d: type_sw - reg %#x, index %d\n", + dev->name, instance->index, instance->type_sw_reg, + instance->type_sw_index); + + return 0; +} + +static int phy_type_set(struct mtk_phy_instance *instance) +{ + int type; + u32 offset; + + if (!instance->type_sw) + return 0; + + switch (instance->type) { + case PHY_TYPE_USB3: + type = RG_PHY_SW_USB3; + break; + case PHY_TYPE_PCIE: + type = RG_PHY_SW_PCIE; + break; + case PHY_TYPE_SGMII: + type = RG_PHY_SW_SGMII; + break; + case PHY_TYPE_SATA: + type = RG_PHY_SW_SATA; + break; + case PHY_TYPE_USB2: + default: + return 0; + } + + offset = instance->type_sw_index * BITS_PER_BYTE; + regmap_update_bits(instance->type_sw, instance->type_sw_reg, + RG_PHY_SW_TYPE << offset, type << offset); + + return 0; +} + static int mtk_phy_init(struct phy *phy) { struct mtk_tphy *tphy = dev_get_priv(phy->dev); @@ -747,6 +822,7 @@ static int mtk_phy_xlate(struct phy *phy, } phy_parse_property(tphy, instance); + phy_type_set(instance); return 0; } @@ -808,6 +884,10 @@ static int mtk_tphy_probe(struct udevice *dev) &instance->da_ref_clk); if (err) return err; + + err = phy_type_syscon_get(dev, instance, subnode); + if (err) + return err; } return 0; From patchwork Wed Jun 5 19:02:09 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1944122 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=hQOqBNt7; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Vvd6j346Mz20Q5 for ; Thu, 6 Jun 2024 05:38:21 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 42777883DC; Wed, 5 Jun 2024 21:37:37 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="hQOqBNt7"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 01A2188096; Wed, 5 Jun 2024 21:03:44 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com [IPv6:2a00:1450:4864:20::32b]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id AEF228825E for ; Wed, 5 Jun 2024 21:03:41 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=ansuelsmth@gmail.com Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-421392b8156so2201425e9.3 for ; Wed, 05 Jun 2024 12:03:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717614221; x=1718219021; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=kAchuuqYasjbhcIK8f5QyboGfJdVtxSSRcXm0nlSPoQ=; b=hQOqBNt7rtcg8jenVPCpzZZ0ECILp+FuJ1WsmWNEThE7FazIh/lsZUZONxbBX8RYA7 7BuCfkRJAimEnr8qs/2xbo8MLjTL1tZLHOTgxq+VMD+zELHa8Bgp//LCCB2o+Sn3F/US HHVx35nzqK01QVT0IH9U3NW3/lpwnJdIXAc9gIZqDVUwP7z/fkyFLx+4GU7i4wE9d5F/ FqczpiXooP6p+MqV5ICHHeIt3BIU0K8Q5hq8YwlbD90JEkrDXXv20PmBu+ZpIdv0LUWa 7vCGWlXpXlfktawtsnDEmB23UEij1HwisSVDL3kFiSetFBKEctc9Majj3ivmnYmGjlbK E8Jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717614221; x=1718219021; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kAchuuqYasjbhcIK8f5QyboGfJdVtxSSRcXm0nlSPoQ=; b=NJWOZB85jJdqO8LqFiMhAUVJJEM77Nff9jxTXBqcWYk39aYO2+IrdBXlu0enHjxAbs AMRJ7DDyCwGeFGtJMLr2b/5/OLRXmVxXyPQpCzKT4guMzht7qnhCXy4t5PXkjq6tGg3M TWE+iU7EJBjMuvQde3Zu+NPXHGIIS1LdfwndoWcsqj2+KHoWLWW5IZlWDTiDQcdErYIN xtMnNhW6NHkNaQK8h+FR4tW/DinDxnkyumojoAgTA27zrc49zLbGfi96LQCHL4ukweuh /1yf/cxoYGMf4QmcC9EEZBy8tmupwV5gr53xlu9vcn5QiHHmt21q4Gc+oxVLhFjh6zf8 upbA== X-Forwarded-Encrypted: i=1; AJvYcCWLwXZqBEAmMu5dz9dRMLlxqMtw2+tJKVKKwLv2QEIJ0EqshNCsZ1xyCDBDXeyryDiFaMUJFONLnPA8Ol/DGD4ZBuOjqA== X-Gm-Message-State: AOJu0YzhftVQq4/fsHnM7gXzCk6bObklAPjXcQhpkI4NHSXRcqUIdAYQ 6CAcddKz/iWYKGGGLN6YCTMB+I1gedtqvs/mGMv1X4HY+KJi7ZkJ X-Google-Smtp-Source: AGHT+IEKomzD62O7CtHH8RliVjEHPeVEYPpz3sc0pIIhifeZ/7DU9Wt037Yb010O0U89p9v8n9mhnA== X-Received: by 2002:a05:600c:4fd3:b0:41b:855b:5d26 with SMTP id 5b1f17b1804b1-421562c2773mr28879355e9.2.1717614221052; Wed, 05 Jun 2024 12:03:41 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-4214a4abdd5sm44772195e9.0.2024.06.05.12.03.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Jun 2024 12:03:40 -0700 (PDT) From: Christian Marangi To: Tom Rini , Lukasz Majewski , Sean Anderson , Ryder Lee , Weijie Gao , Chunfeng Yun , GSS_MTK_Uboot_upstream , Heiko Schocher , Peng Fan , Jaehoon Chung , Joe Hershberger , Ramon Fried , Jagan Teki , Christian Marangi , Sam Shih , Francois Berder , Simon Glass , Julien Masson , Peter Robinson , Marek Vasut , Bo-Cun Chen , This contributor prefers not to receive mails , Michal Simek , John Crispin , Heinrich Schuchardt , Mason Huo , Stefan Roese , Sumit Garg , Mark Kettenis , Sergei Antonov , Mayuresh Chitale , "SkyLake.Huang" , =?utf-8?q?Nicol=C3=B2_Verones?= =?utf-8?q?e?= , u-boot@lists.denx.de Subject: [PATCH 02/11] pci: mediatek: add PCIe controller support for filogic silicon Date: Wed, 5 Jun 2024 21:02:09 +0200 Message-ID: <20240605190220.17616-3-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240605190220.17616-1-ansuelsmth@gmail.com> References: <20240605190220.17616-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Wed, 05 Jun 2024 21:37:35 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean From: John Crispin Add MediaTek GEN3 PCIe controller support for filogic silicon. This is adapted from the Linux version of the driver. Signed-off-by: John Crispin [ fix minor problems, fix checkpatch errors ] Signed-off-by: Christian Marangi --- drivers/pci/Kconfig | 7 + drivers/pci/Makefile | 1 + drivers/pci/pcie_mediatek_gen3.c | 382 +++++++++++++++++++++++++++++++ 3 files changed, 390 insertions(+) create mode 100644 drivers/pci/pcie_mediatek_gen3.c diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig index 8d02ab82ad9..22a56f4ca38 100644 --- a/drivers/pci/Kconfig +++ b/drivers/pci/Kconfig @@ -350,6 +350,13 @@ config PCIE_MEDIATEK Say Y here if you want to enable Gen2 PCIe controller, which could be found on MT7623 SoC family. +config PCIE_MEDIATEK_GEN3 + bool "MediaTek PCIe Gen3 controller" + depends on ARCH_MEDIATEK + help + Say Y here if you want to enable Gen3 PCIe controller, + which could be found on the Mediatek Filogic SoC family. + config PCIE_DW_MESON bool "Amlogic Meson DesignWare based PCIe controller" depends on ARCH_MESON diff --git a/drivers/pci/Makefile b/drivers/pci/Makefile index 2927c519129..5b2d2969802 100644 --- a/drivers/pci/Makefile +++ b/drivers/pci/Makefile @@ -42,6 +42,7 @@ obj-$(CONFIG_PCIE_INTEL_FPGA) += pcie_intel_fpga.o obj-$(CONFIG_PCIE_DW_COMMON) += pcie_dw_common.o obj-$(CONFIG_PCI_KEYSTONE) += pcie_dw_ti.o obj-$(CONFIG_PCIE_MEDIATEK) += pcie_mediatek.o +obj-$(CONFIG_PCIE_MEDIATEK_GEN3) += pcie_mediatek_gen3.o obj-$(CONFIG_PCIE_ROCKCHIP) += pcie_rockchip.o obj-$(CONFIG_PCIE_DW_ROCKCHIP) += pcie_dw_rockchip.o obj-$(CONFIG_PCIE_DW_MESON) += pcie_dw_meson.o diff --git a/drivers/pci/pcie_mediatek_gen3.c b/drivers/pci/pcie_mediatek_gen3.c new file mode 100644 index 00000000000..673813b8b75 --- /dev/null +++ b/drivers/pci/pcie_mediatek_gen3.c @@ -0,0 +1,382 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * MediaTek PCIe host controller driver. + * + * Copyright (c) 2023 John Crispin + * Driver is based on u-boot gen1/2 and upstream linux gen3 code + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "pci_internal.h" + +/* PCIe shared registers */ +#define PCIE_CFG_ADDR 0x20 +#define PCIE_CFG_DATA 0x24 + +#define PCIE_SETTING_REG 0x80 + +#define PCIE_PCI_IDS_1 0x9c +#define PCIE_RC_MODE BIT(0) +#define PCI_CLASS(class) ((class) << 8) + +#define PCIE_CFGNUM_REG 0x140 +#define PCIE_CFG_DEVFN(devfn) ((devfn) & GENMASK(7, 0)) +#define PCIE_CFG_BUS(bus) (((bus) << 8) & GENMASK(15, 8)) +#define PCIE_CFG_BYTE_EN(bytes) (((bytes) << 16) & GENMASK(19, 16)) +#define PCIE_CFG_FORCE_BYTE_EN BIT(20) +#define PCIE_CFG_OFFSET_ADDR 0x1000 +#define PCIE_CFG_HEADER(bus, devfn) (PCIE_CFG_BUS(bus) | PCIE_CFG_DEVFN(devfn)) + +#define PCIE_RST_CTRL_REG 0x148 +#define PCIE_MAC_RSTB BIT(0) +#define PCIE_PHY_RSTB BIT(1) +#define PCIE_BRG_RSTB BIT(2) +#define PCIE_PE_RSTB BIT(3) + +#define PCIE_LINK_STATUS_REG 0x154 +#define PCIE_PORT_LINKUP BIT(8) + +#define PCIE_INT_ENABLE_REG 0x180 + +#define PCIE_MISC_CTRL_REG 0x348 +#define PCIE_DISABLE_DVFSRC_VLT_REQ BIT(1) + +#define PCIE_TRANS_TABLE_BASE_REG 0x800 +#define PCIE_ATR_SRC_ADDR_MSB_OFFSET 0x4 +#define PCIE_ATR_TRSL_ADDR_LSB_OFFSET 0x8 +#define PCIE_ATR_TRSL_ADDR_MSB_OFFSET 0xc +#define PCIE_ATR_TRSL_PARAM_OFFSET 0x10 +#define PCIE_ATR_TLB_SET_OFFSET 0x20 + +#define PCIE_MAX_TRANS_TABLES 8 +#define PCIE_ATR_EN BIT(0) +#define PCIE_ATR_SIZE(size) \ + (((((size) - 1) << 1) & GENMASK(6, 1)) | PCIE_ATR_EN) +#define PCIE_ATR_ID(id) ((id) & GENMASK(3, 0)) +#define PCIE_ATR_TYPE_MEM PCIE_ATR_ID(0) +#define PCIE_ATR_TYPE_IO PCIE_ATR_ID(1) +#define PCIE_ATR_TLP_TYPE(type) (((type) << 16) & GENMASK(18, 16)) +#define PCIE_ATR_TLP_TYPE_MEM PCIE_ATR_TLP_TYPE(0) +#define PCIE_ATR_TLP_TYPE_IO PCIE_ATR_TLP_TYPE(2) + +struct mtk_pcie { + void __iomem *base; + void *priv; + struct clk pl_250m_ck; + struct clk tl_26m_ck; + struct clk peri_26m_ck; + struct clk top_133m_ck; + struct reset_ctl reset_phy; + struct reset_ctl reset_mac; + struct phy phy; +}; + +static void mtk_pcie_config_tlp_header(const struct udevice *bus, + pci_dev_t devfn, + int where, int size) +{ + struct mtk_pcie *pcie = dev_get_priv(bus); + int bytes; + u32 val; + + size = 1 << size; + bytes = (GENMASK(size - 1, 0) & 0xf) << (where & 0x3); + + val = PCIE_CFG_FORCE_BYTE_EN | PCIE_CFG_BYTE_EN(bytes) | + PCIE_CFG_HEADER(PCI_BUS(devfn), (devfn >> 8)); + + writel(val, pcie->base + PCIE_CFGNUM_REG); +} + +static int mtk_pcie_config_address(const struct udevice *udev, pci_dev_t bdf, + uint offset, void **paddress) +{ + struct mtk_pcie *pcie = dev_get_priv(udev); + + *paddress = pcie->base + PCIE_CFG_OFFSET_ADDR + offset; + + return 0; +} + +static int mtk_pcie_read_config(const struct udevice *bus, pci_dev_t bdf, + uint offset, ulong *valuep, + enum pci_size_t size) +{ + int ret; + + mtk_pcie_config_tlp_header(bus, bdf, offset, size); + ret = pci_generic_mmap_read_config(bus, mtk_pcie_config_address, + bdf, offset, valuep, size); + return ret; +} + +static int mtk_pcie_write_config(struct udevice *bus, pci_dev_t bdf, + uint offset, ulong value, + enum pci_size_t size) +{ + mtk_pcie_config_tlp_header(bus, bdf, offset, size); + + switch (size) { + case PCI_SIZE_8: + case PCI_SIZE_16: + value <<= (offset & 0x3) * 8; + case PCI_SIZE_32: + break; + default: + return -EINVAL; + } + + return pci_generic_mmap_write_config(bus, mtk_pcie_config_address, + bdf, (offset & ~0x3), value, PCI_SIZE_32); +} + +static const struct dm_pci_ops mtk_pcie_ops = { + .read_config = mtk_pcie_read_config, + .write_config = mtk_pcie_write_config, +}; + +static int mtk_pcie_set_trans_table(struct udevice *dev, struct mtk_pcie *pcie, + u64 cpu_addr, u64 pci_addr, u64 size, + unsigned long type, int num) +{ + void __iomem *table; + u32 val; + + if (num >= PCIE_MAX_TRANS_TABLES) { + dev_err(dev, "not enough translate table for addr: %#llx, limited to [%d]\n", + (unsigned long long)cpu_addr, PCIE_MAX_TRANS_TABLES); + return -ENODEV; + } + + dev_dbg(dev, "set trans table %d: %#llx %#llx, %#llx\n", num, cpu_addr, + pci_addr, size); + table = pcie->base + PCIE_TRANS_TABLE_BASE_REG + + num * PCIE_ATR_TLB_SET_OFFSET; + + writel(lower_32_bits(cpu_addr) | PCIE_ATR_SIZE(fls(size) - 1), table); + writel(upper_32_bits(cpu_addr), table + PCIE_ATR_SRC_ADDR_MSB_OFFSET); + writel(lower_32_bits(pci_addr), table + PCIE_ATR_TRSL_ADDR_LSB_OFFSET); + writel(upper_32_bits(pci_addr), table + PCIE_ATR_TRSL_ADDR_MSB_OFFSET); + + if (type == PCI_REGION_IO) + val = PCIE_ATR_TYPE_IO | PCIE_ATR_TLP_TYPE_IO; + else + val = PCIE_ATR_TYPE_MEM | PCIE_ATR_TLP_TYPE_MEM; + writel(val, table + PCIE_ATR_TRSL_PARAM_OFFSET); + + return 0; +} + +static int mtk_pcie_startup_port(struct udevice *dev) +{ + struct mtk_pcie *pcie = dev_get_priv(dev); + struct udevice *ctlr = pci_get_controller(dev); + struct pci_controller *hose = dev_get_uclass_priv(ctlr); + u32 val; + int i, err; + + /* Set as RC mode */ + val = readl(pcie->base + PCIE_SETTING_REG); + val |= PCIE_RC_MODE; + writel(val, pcie->base + PCIE_SETTING_REG); + + /* setup RC BARs */ + writel(PCI_BASE_ADDRESS_MEM_TYPE_64, + pcie->base + PCI_BASE_ADDRESS_0); + writel(0x0, pcie->base + PCI_BASE_ADDRESS_1); + + /* setup interrupt pins */ + clrsetbits_le32(pcie->base + PCI_INTERRUPT_LINE, + 0xff00, 0x100); + + /* setup bus numbers */ + clrsetbits_le32(pcie->base + PCI_PRIMARY_BUS, + 0xffffff, 0x00ff0100); + + /* setup command register */ + clrsetbits_le32(pcie->base + PCI_PRIMARY_BUS, + 0xffff, + PCI_COMMAND_IO | PCI_COMMAND_MEMORY | + PCI_COMMAND_MASTER | PCI_COMMAND_SERR); + + /* Set class code */ + val = readl(pcie->base + PCIE_PCI_IDS_1); + val &= ~GENMASK(31, 8); + val |= PCI_CLASS(PCI_CLASS_BRIDGE_PCI << 8); + writel(val, pcie->base + PCIE_PCI_IDS_1); + + /* Mask all INTx interrupts */ + val = readl(pcie->base + PCIE_INT_ENABLE_REG); + val &= ~0xFF000000; + writel(val, pcie->base + PCIE_INT_ENABLE_REG); + + /* Disable DVFSRC voltage request */ + val = readl(pcie->base + PCIE_MISC_CTRL_REG); + val |= PCIE_DISABLE_DVFSRC_VLT_REQ; + writel(val, pcie->base + PCIE_MISC_CTRL_REG); + + /* Assert all reset signals */ + val = readl(pcie->base + PCIE_RST_CTRL_REG); + val |= PCIE_MAC_RSTB | PCIE_PHY_RSTB | PCIE_BRG_RSTB | PCIE_PE_RSTB; + writel(val, pcie->base + PCIE_RST_CTRL_REG); + + /* + * Described in PCIe CEM specification sections 2.2 (PERST# Signal) + * and 2.2.1 (Initial Power-Up (G3 to S0)). + * The deassertion of PERST# should be delayed 100ms (TPVPERL) + * for the power and clock to become stable. + */ + mdelay(100); + + /* De-assert reset signals */ + val &= ~(PCIE_MAC_RSTB | PCIE_PHY_RSTB | PCIE_BRG_RSTB); + writel(val, pcie->base + PCIE_RST_CTRL_REG); + + mdelay(100); + + /* De-assert PERST# signals */ + val &= ~(PCIE_PE_RSTB); + writel(val, pcie->base + PCIE_RST_CTRL_REG); + + /* 100ms timeout value should be enough for Gen1/2 training */ + err = readl_poll_timeout(pcie->base + PCIE_LINK_STATUS_REG, val, + !!(val & PCIE_PORT_LINKUP), + 100 * 1000); + if (err) { + dev_dbg(dev, "no card detected\n"); + return -ETIMEDOUT; + } + dev_dbg(dev, "detected a card\n"); + + for (i = 0; i < hose->region_count; i++) { + struct pci_region *reg = &hose->regions[i]; + + if (reg->flags != PCI_REGION_MEM) + continue; + + mtk_pcie_set_trans_table(dev, pcie, reg->bus_start, reg->phys_start, + reg->size, reg->flags, 0); + } + + return 0; +} + +static int mtk_pcie_power_on(struct udevice *dev) +{ + struct mtk_pcie *pcie = dev_get_priv(dev); + int err; + + pcie->base = dev_remap_addr_name(dev, "pcie-mac"); + if (!pcie->base) + return -ENOENT; + + pcie->priv = dev; + + err = generic_phy_get_by_name(dev, "pcie-phy", &pcie->phy); + if (err) + return err; + + /* + * Upstream linux kernel devine these clock without clock-names + * and use clk bulk API to enable them all. + */ + err = clk_get_by_index(dev, 0, &pcie->pl_250m_ck); + if (err) + return err; + + err = clk_get_by_index(dev, 1, &pcie->tl_26m_ck); + if (err) + return err; + + err = clk_get_by_index(dev, 2, &pcie->peri_26m_ck); + if (err) + return err; + + err = clk_get_by_index(dev, 3, &pcie->top_133m_ck); + if (err) + return err; + + err = generic_phy_init(&pcie->phy); + if (err) + return err; + + err = generic_phy_power_on(&pcie->phy); + if (err) + goto err_phy_on; + + err = clk_enable(&pcie->pl_250m_ck); + if (err) + goto err_clk_pl_250m; + + err = clk_enable(&pcie->tl_26m_ck); + if (err) + goto err_clk_tl_26m; + + err = clk_enable(&pcie->peri_26m_ck); + if (err) + goto err_clk_peri_26m; + + err = clk_enable(&pcie->top_133m_ck); + if (err) + goto err_clk_top_133m; + + err = mtk_pcie_startup_port(dev); + if (err) + goto err_startup; + + return 0; + +err_startup: +err_clk_top_133m: + clk_disable(&pcie->top_133m_ck); +err_clk_peri_26m: + clk_disable(&pcie->peri_26m_ck); +err_clk_tl_26m: + clk_disable(&pcie->tl_26m_ck); +err_clk_pl_250m: + clk_disable(&pcie->pl_250m_ck); +err_phy_on: + generic_phy_exit(&pcie->phy); + + return err; +} + +static int mtk_pcie_probe(struct udevice *dev) +{ + struct mtk_pcie *pcie = dev_get_priv(dev); + int err; + + pcie->priv = dev; + + err = mtk_pcie_power_on(dev); + if (err) + return err; + + return 0; +} + +static const struct udevice_id mtk_pcie_ids[] = { + { .compatible = "mediatek,mt8192-pcie" }, + { } +}; + +U_BOOT_DRIVER(pcie_mediatek_gen3) = { + .name = "pcie_mediatek_gen3", + .id = UCLASS_PCI, + .of_match = mtk_pcie_ids, + .ops = &mtk_pcie_ops, + .probe = mtk_pcie_probe, + .priv_auto = sizeof(struct mtk_pcie), +}; From patchwork Wed Jun 5 19:02:10 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1944123 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=gLaIw/7g; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Vvd6z5czBz20Q5 for ; Thu, 6 Jun 2024 05:38:35 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 9666488400; Wed, 5 Jun 2024 21:37:37 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="gLaIw/7g"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 9563087F39; Wed, 5 Jun 2024 21:03:45 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id A690E88280 for ; Wed, 5 Jun 2024 21:03:43 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=ansuelsmth@gmail.com Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-421392b8156so2201735e9.3 for ; Wed, 05 Jun 2024 12:03:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717614223; x=1718219023; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=f3P4MUFnz6jH8ZIpT84vFt6ekwmHdCr6I1GU5B/nij0=; b=gLaIw/7g2HZJny1E3umLXO1oup9BGX9m4x3+N57+/xiVo5K9RjEgsc+wrF9cOa2BIT HaIqqDkPtjqvvKAnezwOuf43tLxaxjXXOQQY7m1MdhOFRxoCvubc5Aw1NgfcfoKRyywZ kdOwCE9l7yS0fM8NTumog8Miqq82yXuMz/6eNzu3Xj37kwEDXeVlbTKMJhVGvJJRwlK+ C9EOBCffo3uqr0kM5RxEX31v47swn+6Q7s/vt1Na5+RT7sF0QGvnyIjVvH5/BOOL5SWQ C+AlsqZ7CVgsb1qvUZ7WXtldryi/N5RXFSBJRfRCcWCp/tR6jhymWJnpIPvxSs+gq3JN qCDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717614223; x=1718219023; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=f3P4MUFnz6jH8ZIpT84vFt6ekwmHdCr6I1GU5B/nij0=; b=UvTqhT0RXvgyxeedC+V+CngfnWdhHcgTqPL87Bi4aTjilitn+9/qQF55zB7FcEXy3k pSdGCZyeGHCaiOeXvewjxocltDQmNIcSIOXI4H7lpb4NIGVGXSMbV7FCQyouSBm298tn w9CTOVLkepTyk7sxYpLL1RFFZyMuj/NnJUxuxMhZIBr+3AicP8al5W2udV1oqv2AjRmF cgExI3Zb0v6cQRF269pAiQyWLQwnRl0liioG9NinT77pWH4fS2eIgrFnRD9IAfKBUUQm zKdgg+aqDkj02EuYtDMQavdSLuumhyFTm4GaF6yexyyJqyTMbXb3287crAC3iYry/4h/ cnNw== X-Forwarded-Encrypted: i=1; AJvYcCUrCPhwT6uX9Oh6vEmuQ0MQ6N5N9tc6/giURe/B68nVhNyXH7yqkTHRFbqIFixHjJ2mbW2Awkjf73jssTr2e7GME4BO+Q== X-Gm-Message-State: AOJu0YxYHoP5DPkHXiSp4zRRy03yAXjDWkInyMEfJgD9PNvILzlBtgyd jGXpD+YgBdOoEWL9ME22PIFdhp4UUYXO+3v78FV+n+vfXMz9oqwF X-Google-Smtp-Source: AGHT+IG1d8cXpNOHPdlfLkJ5jAyHahgDYbFRlcSMpaCur3l+wZ9eE+v9eCQmcX0z3S0OdxVv2c3pJA== X-Received: by 2002:a05:600c:458e:b0:41f:d4e1:5abc with SMTP id 5b1f17b1804b1-421562c298fmr29125905e9.8.1717614222747; Wed, 05 Jun 2024 12:03:42 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-4214a4abdd5sm44772195e9.0.2024.06.05.12.03.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Jun 2024 12:03:42 -0700 (PDT) From: Christian Marangi To: Tom Rini , Lukasz Majewski , Sean Anderson , Ryder Lee , Weijie Gao , Chunfeng Yun , GSS_MTK_Uboot_upstream , Heiko Schocher , Peng Fan , Jaehoon Chung , Joe Hershberger , Ramon Fried , Jagan Teki , Christian Marangi , Sam Shih , Francois Berder , Simon Glass , Julien Masson , Peter Robinson , Marek Vasut , Bo-Cun Chen , This contributor prefers not to receive mails , Michal Simek , John Crispin , Heinrich Schuchardt , Mason Huo , Stefan Roese , Sumit Garg , Mark Kettenis , Sergei Antonov , Mayuresh Chitale , "SkyLake.Huang" , =?utf-8?q?Nicol=C3=B2_Verones?= =?utf-8?q?e?= , u-boot@lists.denx.de Subject: [PATCH 03/11] spi: mtk_spim: add support for upstream mediatek, spi-ipm compatible Date: Wed, 5 Jun 2024 21:02:10 +0200 Message-ID: <20240605190220.17616-4-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240605190220.17616-1-ansuelsmth@gmail.com> References: <20240605190220.17616-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Wed, 05 Jun 2024 21:37:35 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Upstream kernel linux use a different compatible mediatek,spi-ipm. Add support for this compatible and add handling for the additional clock similar to how it's done by the upstream driver and handling for all the property enabled by default. Signed-off-by: Christian Marangi --- drivers/spi/mtk_spim.c | 45 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/drivers/spi/mtk_spim.c b/drivers/spi/mtk_spim.c index 90f4c3cecb9..b360eca2b91 100644 --- a/drivers/spi/mtk_spim.c +++ b/drivers/spi/mtk_spim.c @@ -137,6 +137,8 @@ struct mtk_spim_capability { * @state: Controller state * @sel_clk: Pad clock * @spi_clk: Core clock + * @parent_clk: Parent clock (needed for mediatek,spi-ipm, upstream DTSI) + * @hclk: HCLK clock (needed for mediatek,spi-ipm, upstream DTSI) * @pll_clk_rate: Controller's PLL source clock rate, which is different * from SPI bus clock rate * @xfer_len: Current length of data for transfer @@ -151,6 +153,7 @@ struct mtk_spim_priv { void __iomem *base; u32 state; struct clk sel_clk, spi_clk; + struct clk parent_clk, hclk; u32 pll_clk_rate; u32 xfer_len; struct mtk_spim_capability hw_cap; @@ -650,7 +653,21 @@ static int mtk_spim_probe(struct udevice *dev) if (!priv->base) return -EINVAL; - mtk_spim_get_attr(priv, dev); + /* + * Upstream linux driver for ipm design enable all the modes + * and setup the calibrarion values directly in the driver with + * standard values. + */ + if (device_is_compatible(dev, "mediatek,spi-ipm")) { + priv->hw_cap.enhance_timing = true; + priv->hw_cap.dma_ext = true; + priv->hw_cap.ipm_design = true; + priv->hw_cap.support_quad = true; + priv->sample_sel = 0; + priv->tick_dly = 2; + } else { + mtk_spim_get_attr(priv, dev); + } ret = clk_get_by_name(dev, "sel-clk", &priv->sel_clk); if (ret < 0) { @@ -664,8 +681,31 @@ static int mtk_spim_probe(struct udevice *dev) return ret; } - clk_enable(&priv->sel_clk); + /* + * Upstream DTSI use a different compatible that provide additional + * clock instead of the assigned-clock implementation. + */ + if (device_is_compatible(dev, "mediatek,spi-ipm")) { + ret = clk_get_by_name(dev, "parent-clk", &priv->parent_clk); + if (ret < 0) { + dev_err(dev, "failed to get parent-clk\n"); + return ret; + } + + ret = clk_get_by_name(dev, "hclk", &priv->hclk); + if (ret < 0) { + dev_err(dev, "failed to get hclk\n"); + return ret; + } + + clk_enable(&priv->parent_clk); + clk_set_parent(&priv->sel_clk, &priv->parent_clk); + + clk_enable(&priv->hclk); + } + clk_enable(&priv->spi_clk); + clk_enable(&priv->sel_clk); priv->pll_clk_rate = clk_get_rate(&priv->spi_clk); if (priv->pll_clk_rate == 0) @@ -698,6 +738,7 @@ static const struct dm_spi_ops mtk_spim_ops = { static const struct udevice_id mtk_spim_ids[] = { { .compatible = "mediatek,ipm-spi" }, + { .compatible = "mediatek,spi-ipm", }, {} }; From patchwork Wed Jun 5 19:02:11 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1944124 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=T0RGS0sM; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Vvd743pZfz20Q5 for ; Thu, 6 Jun 2024 05:38:40 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id EEA8688414; Wed, 5 Jun 2024 21:37:37 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="T0RGS0sM"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 141EF882E6; Wed, 5 Jun 2024 21:03:47 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com [IPv6:2a00:1450:4864:20::335]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 2F87F88261 for ; Wed, 5 Jun 2024 21:03:45 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=ansuelsmth@gmail.com Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-4213485697fso2140475e9.1 for ; Wed, 05 Jun 2024 12:03:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717614224; x=1718219024; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=kr80qGA8fTtmGld4Thh3XY/hn2vKZu79T8rEjD9KMoo=; b=T0RGS0sMs+YRhZ1IgYnNP5LWQ0LOQcFBD4vwDP8qRZL/M6i6Gp8WEpj821SzPXiXtX RjwN2m1Zf8mYX5i0N4+z0PbimPrUZbce/5rW7oFpy4pkF+vNHrBaAGt48zWAIB+m/HTO j8P2v2pKvnfvd1TUpThNcbijckCYXmBp1YU+LP77dZq5SMHVBVaHePJiyqqdnvzgGZBv ubDKMAnnqQwlasDP0xcWsRh7qQ6BHvPsmMMDcJ40JF+8/Sv38J67RtWcU0nPS9hs1TWt hJCYuK7efvo6yFvCc0/9dou5EsuqC7hFnQdoqRNXpNTJHdPAM7Xjkaeemch/WyyzqFhz RbkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717614224; x=1718219024; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kr80qGA8fTtmGld4Thh3XY/hn2vKZu79T8rEjD9KMoo=; b=WdDywWq7fTDbtcQ1FsGyR++rxpyNf9qd+JGT0owRqNIRDV9Bhmk484W6xaqNstyPUT 08kvZSWMMM2cuUO3GRfc7OvRUmjLopckT446DvlTdd8UM4xA7eCsBQHue41/0biPtSUB aTuY+elLQQFmKBQFSFUHQH6B+W4tOe+pxRgfuJ42agzJGDCAFZcWMhpDiJwK+D+BWFyx DKz4uDnfzsQvR8Nam8LrJ7ABHnwmGma/R+YSb9IJhkj4OaljZJE88fEjSJCpFzQfAvkS 2oEzglR6W2aaF99eEylu9aa3ilwQDoCn7Fg1vx7g1xntptjqFB8ERKG4IPIyD/vD+muo DHVA== X-Forwarded-Encrypted: i=1; AJvYcCV2NKphb2f+3NSeOyeiRPquAl1qcm79lRj8e/+1kI6aPJOTVYw7xdO42qRlF7qyp2LPJaaAyNvWYvvDCnNY5ZTCg3yYPA== X-Gm-Message-State: AOJu0YyRzxeCnSN9D6N9SRvqtBS9VRkmX4CnW6YMuDrg82YjaxTLyAot do7v752u+OlUaxe1VzJJQRnJRqosO00Qtz8/hJ/yNyolEWAK62WF X-Google-Smtp-Source: AGHT+IFzLMHIiQTWILsOVgyiPA4WF0QOn97BSkqFIeETD+Dvc6dKmP8GcZM47yUzhSoCvCuBo4jg/A== X-Received: by 2002:a05:600c:138e:b0:41f:e56c:ef81 with SMTP id 5b1f17b1804b1-421562cf5f9mr25400085e9.1.1717614224529; Wed, 05 Jun 2024 12:03:44 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-4214a4abdd5sm44772195e9.0.2024.06.05.12.03.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Jun 2024 12:03:44 -0700 (PDT) From: Christian Marangi To: Tom Rini , Lukasz Majewski , Sean Anderson , Ryder Lee , Weijie Gao , Chunfeng Yun , GSS_MTK_Uboot_upstream , Heiko Schocher , Peng Fan , Jaehoon Chung , Joe Hershberger , Ramon Fried , Jagan Teki , Christian Marangi , Sam Shih , Francois Berder , Simon Glass , Julien Masson , Peter Robinson , Marek Vasut , Bo-Cun Chen , This contributor prefers not to receive mails , Michal Simek , John Crispin , Heinrich Schuchardt , Mason Huo , Stefan Roese , Sumit Garg , Mark Kettenis , Sergei Antonov , Mayuresh Chitale , "SkyLake.Huang" , =?utf-8?q?Nicol=C3=B2_Verones?= =?utf-8?q?e?= , u-boot@lists.denx.de Subject: [PATCH 04/11] net: mediatek: handle alternative name for pn_swap property Date: Wed, 5 Jun 2024 21:02:11 +0200 Message-ID: <20240605190220.17616-5-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240605190220.17616-1-ansuelsmth@gmail.com> References: <20240605190220.17616-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Wed, 05 Jun 2024 21:37:35 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Handle alternative name for pn_swap property as upstream linux use mediatek,pnswap. Signed-off-by: Christian Marangi --- drivers/net/mtk_eth.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/mtk_eth.c b/drivers/net/mtk_eth.c index 75e7bcf83b7..87e2e1d9cda 100644 --- a/drivers/net/mtk_eth.c +++ b/drivers/net/mtk_eth.c @@ -1965,7 +1965,9 @@ static int mtk_eth_of_to_plat(struct udevice *dev) return -ENODEV; } - priv->pn_swap = ofnode_read_bool(args.node, "pn_swap"); + /* Upstream linux use mediatek,pnswap instead of pn_swap */ + priv->pn_swap = ofnode_read_bool(args.node, "pn_swap") || + ofnode_read_bool(args.node, "mediatek,pnswap"); } else if (priv->phy_interface == PHY_INTERFACE_MODE_USXGMII) { /* get corresponding usxgmii phandle */ ret = dev_read_phandle_with_args(dev, "mediatek,usxgmiisys", From patchwork Wed Jun 5 19:02:12 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1944125 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=Trxk+Ici; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Vvd7G5VNYz20Q5 for ; Thu, 6 Jun 2024 05:38:50 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 51DBB8842F; Wed, 5 Jun 2024 21:37:38 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Trxk+Ici"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id EBAA48825E; Wed, 5 Jun 2024 21:03:48 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com [IPv6:2a00:1450:4864:20::332]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 0678C8836C for ; Wed, 5 Jun 2024 21:03:47 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=ansuelsmth@gmail.com Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-4212b4eea2eso1894745e9.2 for ; Wed, 05 Jun 2024 12:03:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717614226; x=1718219026; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=lbqhTC/Ts3tNK5F1WJyeiJc9XsdkXxjI9Vn5rbodR/U=; b=Trxk+IciZtvCoKlpcg78aMpJr13kujs1Q785fLPdXBF6SYu1CdG1zvV/kcG47LGlx0 T4Gn8nOA4quEIrTbCwb8W6CFs3+//3Aj+YmnwvpCIWL2Gqyj+8CmKkPuoxKpVe8Q4u4Q Ncb8iRB6Am9rSUMKoHQ2a6AEkDHU9QrWT8tMufPMkBELEUiiSbsvphiryHT21fPrLI1c kpy6S5hy7gFimSTh57JK7WbD6ilctXvCWRqWQCojBJVuNTBnqMYpju8epsVThshDFH60 y6xGU397AYnszqxg+jz53EyUnnGbYEPKXy3FO0F9J8pIFak7LFlRtmJMyUtsxx3sdK+J m/LA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717614226; x=1718219026; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lbqhTC/Ts3tNK5F1WJyeiJc9XsdkXxjI9Vn5rbodR/U=; b=WR5vm7wK7Fpe0mJJvbOhFp7S0VFQ3wMBS1KZAChBTPGDTdZRVPTfEP91ECJXHms55A hec14FRnSbMr/YfJzlWR4E1dulik0+R2QXDB2W2Uq8/MzqZ1dW5CVsG59eRVFTTZ4+QJ MornRCIjSt/+2xJ/o5ZBZWB2PQvPKEeNY5ihQjQ+2o4U+T9H0ozHRBEWXgVtdx4y/W1V yeRTxfPVJbew5dSG3pyQ0d6W1OVJO+xSlJdKhJwAorHqKZSr9+5SiGAK12R+iA6UV7ux mioG10kPJLLYTsQtqli9I4AT1Ce3wrAZsgWgvKde0r09qXngDZTdRJDG0ztJtPGqr4Ry Rm9w== X-Forwarded-Encrypted: i=1; AJvYcCX+6Al4Mk6V8TsuJ7lhOQD5835M0NBmJYJIzPE5L8dVdudg8G4dAoZ0z/OsPI9MB9qHFjhCCTit6MfG0p6JMmqxpqxorw== X-Gm-Message-State: AOJu0YwLiASR9mmlICxRf4u/7EEUVkj+fO46yJHTS5EwXHYjGCFONaEF Hhk1nUr13EAtgrat3zNua/Xt3SwPCuc9BZijs/Vb06VYswHr0PzQ X-Google-Smtp-Source: AGHT+IHbPdxlLtwD/DEGv1wn7YBfmnATbFUKNnRdfbK1zN0TH2wZsHCWxLDwQPE85XiRhxfZgPnGWA== X-Received: by 2002:a05:600c:4754:b0:416:9ba0:8f17 with SMTP id 5b1f17b1804b1-421562f21b8mr30115985e9.22.1717614226435; Wed, 05 Jun 2024 12:03:46 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-4214a4abdd5sm44772195e9.0.2024.06.05.12.03.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Jun 2024 12:03:45 -0700 (PDT) From: Christian Marangi To: Tom Rini , Lukasz Majewski , Sean Anderson , Ryder Lee , Weijie Gao , Chunfeng Yun , GSS_MTK_Uboot_upstream , Heiko Schocher , Peng Fan , Jaehoon Chung , Joe Hershberger , Ramon Fried , Jagan Teki , Christian Marangi , Sam Shih , Francois Berder , Simon Glass , Julien Masson , Peter Robinson , Marek Vasut , Bo-Cun Chen , This contributor prefers not to receive mails , Michal Simek , John Crispin , Heinrich Schuchardt , Mason Huo , Stefan Roese , Sumit Garg , Mark Kettenis , Sergei Antonov , Mayuresh Chitale , "SkyLake.Huang" , =?utf-8?q?Nicol=C3=B2_Verones?= =?utf-8?q?e?= , u-boot@lists.denx.de Subject: [PATCH 05/11] i2c: mediatek: add support for optional arb and pmic clock Date: Wed, 5 Jun 2024 21:02:12 +0200 Message-ID: <20240605190220.17616-6-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240605190220.17616-1-ansuelsmth@gmail.com> References: <20240605190220.17616-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Wed, 05 Jun 2024 21:37:35 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Add support for optional arb and pmic clock for i2c provided in upstream linux DTSI. Signed-off-by: Christian Marangi Reviewed-by: Heiko Schocher --- drivers/i2c/mtk_i2c.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/drivers/i2c/mtk_i2c.c b/drivers/i2c/mtk_i2c.c index 5592fe91817..3450177741a 100644 --- a/drivers/i2c/mtk_i2c.c +++ b/drivers/i2c/mtk_i2c.c @@ -221,6 +221,8 @@ struct mtk_i2c_priv { void __iomem *pdmabase; /* dma base address*/ struct clk clk_main; /* main clock for i2c bus */ struct clk clk_dma; /* DMA clock for i2c via DMA */ + struct clk clk_arb; /* DMA clock for i2c ARB */ + struct clk clk_pmic; /* DMA clock for i2c PMIC */ const struct mtk_i2c_soc_data *soc_data; /* Compatible data for different IC */ int op; /* operation mode */ bool zero_len; /* Only transfer slave address, no data */ @@ -255,6 +257,18 @@ static int mtk_i2c_clk_enable(struct mtk_i2c_priv *priv) if (ret) return log_msg_ret("enable clk_dma", ret); + if (priv->clk_arb.dev) { + ret = clk_enable(&priv->clk_arb); + if (ret) + return log_msg_ret("enable clk_arb", ret); + } + + if (priv->clk_pmic.dev) { + ret = clk_enable(&priv->clk_pmic); + if (ret) + return log_msg_ret("enable clk_pmic", ret); + } + return 0; } @@ -262,6 +276,18 @@ static int mtk_i2c_clk_disable(struct mtk_i2c_priv *priv) { int ret; + if (priv->clk_pmic.dev) { + ret = clk_disable(&priv->clk_pmic); + if (ret) + return log_msg_ret("disable clk_pmic", ret); + } + + if (priv->clk_arb.dev) { + ret = clk_disable(&priv->clk_arb); + if (ret) + return log_msg_ret("disable clk_arb", ret); + } + ret = clk_disable(&priv->clk_dma); if (ret) return log_msg_ret("disable clk_dma", ret); @@ -748,6 +774,10 @@ static int mtk_i2c_of_to_plat(struct udevice *dev) ret = clk_get_by_index(dev, 1, &priv->clk_dma); + /* optional i2c clock */ + clk_get_by_name(dev, "arb", &priv->clk_arb); + clk_get_by_name(dev, "pmic", &priv->clk_pmic); + return ret; } From patchwork Wed Jun 5 19:02:13 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1944126 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=MOt9xva5; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Vvd7S5H6Cz20Q5 for ; Thu, 6 Jun 2024 05:39:00 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id CEE6788452; Wed, 5 Jun 2024 21:37:38 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="MOt9xva5"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 03F4988370; Wed, 5 Jun 2024 21:03:52 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id C26F888096 for ; Wed, 5 Jun 2024 21:03:48 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=ansuelsmth@gmail.com Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-354dfe54738so88559f8f.3 for ; Wed, 05 Jun 2024 12:03:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717614228; x=1718219028; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=1VygQ6hcB1JVrIF1U7chwaZod2xshZcNbfPBaIln5h4=; b=MOt9xva5jyTGH8VeaWFad4VAeyhJBbqww0QwRJqU6VzGiPx4PtD0Tmpu2l3CnSTfEW q16FHhSQTgy10wmMBUt5oTnChXWe2JZQZKDw0JpqS2tg0Y/knSIqGDKBBTMzvP64kbfx dlYhTkJB6KiGJYpXElXsLPxgPXbGGE/KAB2BRGDyuxVVtpoJEJagEUzDufQgf9kaeEA7 Nj2FzSGtv2pZAtX7Zma+1ZAWF1VhTNjxsFeXz6xVTahQ+278nMT/73drWEOhzt+vOZb2 lP6LrHGN5E75+edx0DA7Y0waHZpnP3UlV1HY3OO0jV7/Lk1u79CMWRA4vFEDMFh2RPfH 34hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717614228; x=1718219028; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1VygQ6hcB1JVrIF1U7chwaZod2xshZcNbfPBaIln5h4=; b=QiGy73L2EbB978FKsyN/s3NKYzzgT/aEDP31fVMBbX6zA/52Nz2uk7t0WW4pD4b0r5 GF/AWGupAoedU5ESIsrL8t7xEBYp23A2ecuPeFZ2dhwvUVgrhK5RzPA48nojHicLHWmj lxECEUeqVa1RYYVUQzNAZIrJU3yvzaMeQmnR0NpHU+CyRYJ1fRww53pCCuVf8K2tZrQC /0dhkO3moYeAAUY/YYooAzSkijCGIxvIjIFpFaOaNf6+vRHrqjHvvYLrsZn39yWzcCwo VqhgPcBlJ04u90B5/luTLB/GAf6qrpQEiZAN9kdTJR6sxjlHcQjFPvvv6ozNoabymXDQ h+ww== X-Forwarded-Encrypted: i=1; AJvYcCUxHwfgQqLVcQFPel/4EfYB+jhN8IpL/VsiqWKqgRAhSWDrhKAbnevhraIHh5tCx0kb0dvZ4KIFSiHBGWfzb0PTvndr2g== X-Gm-Message-State: AOJu0Yz7cZ5LY8WXVSMFHAtsHeT9EbQD5kk5MnhiizawpY1oWboxPeIj JDBeqEOCFC2G9FwUQ93jVTZirfSXCzXF8z4hghwcXtJ7+a/yvpGO X-Google-Smtp-Source: AGHT+IHza5c0MHYTGQ9lnPasY8bF/6ean9KXn97yG+e9+NQbVDO9qJnoRbxflspxj5BJANEWxJXEIw== X-Received: by 2002:a05:6000:118e:b0:354:e0cb:8dcc with SMTP id ffacd0b85a97d-35e8ef65b39mr2712956f8f.54.1717614228168; Wed, 05 Jun 2024 12:03:48 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-4214a4abdd5sm44772195e9.0.2024.06.05.12.03.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Jun 2024 12:03:47 -0700 (PDT) From: Christian Marangi To: Tom Rini , Lukasz Majewski , Sean Anderson , Ryder Lee , Weijie Gao , Chunfeng Yun , GSS_MTK_Uboot_upstream , Heiko Schocher , Peng Fan , Jaehoon Chung , Joe Hershberger , Ramon Fried , Jagan Teki , Christian Marangi , Sam Shih , Francois Berder , Simon Glass , Julien Masson , Peter Robinson , Marek Vasut , Bo-Cun Chen , This contributor prefers not to receive mails , Michal Simek , John Crispin , Heinrich Schuchardt , Mason Huo , Stefan Roese , Sumit Garg , Mark Kettenis , Sergei Antonov , Mayuresh Chitale , "SkyLake.Huang" , =?utf-8?q?Nicol=C3=B2_Verones?= =?utf-8?q?e?= , u-boot@lists.denx.de Subject: [PATCH 06/11] serial: mediatek: add support for bus clock and enable it Date: Wed, 5 Jun 2024 21:02:13 +0200 Message-ID: <20240605190220.17616-7-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240605190220.17616-1-ansuelsmth@gmail.com> References: <20240605190220.17616-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Wed, 05 Jun 2024 21:37:35 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Upstream linux also provide the additional optional bus clock. Add support for it and also enable the baud and bus clock on probe. Signed-off-by: Christian Marangi --- drivers/serial/serial_mtk.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/serial/serial_mtk.c b/drivers/serial/serial_mtk.c index f146f2b006e..d34a31c9cf0 100644 --- a/drivers/serial/serial_mtk.c +++ b/drivers/serial/serial_mtk.c @@ -76,6 +76,7 @@ struct mtk_serial_regs { * driver * @regs: Register base of the serial port * @clk: The baud clock device + * @clk_bus: The bus clock device * @fixed_clk_rate: Fallback fixed baud clock rate if baud clock * device is not specified * @force_highspeed: Force using high-speed mode @@ -83,6 +84,7 @@ struct mtk_serial_regs { struct mtk_serial_priv { struct mtk_serial_regs __iomem *regs; struct clk clk; + struct clk clk_bus; u32 fixed_clk_rate; bool force_highspeed; }; @@ -220,6 +222,10 @@ static int mtk_serial_probe(struct udevice *dev) writel(UART_MCRVAL, &priv->regs->mcr); writel(UART_FCRVAL, &priv->regs->fcr); + clk_enable(&priv->clk); + if (priv->clk_bus.dev) + clk_enable(&priv->clk_bus); + return 0; } @@ -250,6 +256,8 @@ static int mtk_serial_of_to_plat(struct udevice *dev) } } + clk_get_by_name(dev, "bus", &priv->clk_bus); + priv->force_highspeed = dev_read_bool(dev, "mediatek,force-highspeed"); return 0; From patchwork Wed Jun 5 19:02:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1944127 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=hDGJU3j0; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Vvd7f5zvNz20Q5 for ; Thu, 6 Jun 2024 05:39:10 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 73D7A8837B; Wed, 5 Jun 2024 21:37:39 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="hDGJU3j0"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 6800988377; Wed, 5 Jun 2024 21:03:52 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 6A26688300 for ; Wed, 5 Jun 2024 21:03:50 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=ansuelsmth@gmail.com Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-42155143bb6so2185655e9.1 for ; Wed, 05 Jun 2024 12:03:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717614230; x=1718219030; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=dkLSO2oqFmlNq+CTGLdRXojERXtEUdcRUTUSIaM8Y+w=; b=hDGJU3j0PPhOaSjKRmKWrDT8BKEm0TkYEc8a78yLzU660igbRguXzGorhdHXQyhPc9 AEzxlheBtlnoFNBAxquye4Bc6SO/DqNJPhWPUeY+1vQbePJpwTgVB0NEWNHn6gMVUd7U w+ZyND+ShREI30iCrND+C3qyc4u5ynsaxCNbzXxisJzN2fl+U+W7lK/ELvVFcVMxDGHq WUkg2wUyNDfDv9SccjCjJYF5+IA1zb3xY/Vc6ueMYg3fcjXE6A+mmqRjfDHKWmarPnpU Y+eoApGtX+/Q9xj0McHQuL4oX5GLq0ELGtQpGvL31yShFoUs03b30hmuyTaN8xll7N9L s9CQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717614230; x=1718219030; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dkLSO2oqFmlNq+CTGLdRXojERXtEUdcRUTUSIaM8Y+w=; b=ksSGI2ioLDJhc0b6MCZtfqEusbkDgAekflRXtytQul564bkcC4HCrnRu1uUavAX2go tAUJn1bmowSSDiCdQ2ML49XfjDDvu4TbQER4M5fY9app7OqnBfjZ7g2j9pwvAjbHBxcY v/GTFddyVuiY0ZAlT1yS4Tl77IOp4d/TwtBQwpR+I8D7S0TheUruUoX2GHjcNywpHgRN Sp5xUWuJWLQywtC7ZsvbZCF5xyT6BDPwwrIih4D36Xa5OcZnAUFOW4b2TA6JOWC6vd7j FYMnKQpTGR0g+12T12uiIZd8gxTnU4i0AmO/QzZda9djFhopjD9jAoBz/h0MrA4T6t97 LbTA== X-Forwarded-Encrypted: i=1; AJvYcCWeWbbeDyBb5eRK4Cb0HwipTvjXHNcg36X7y5zt25aljHVxGePVVDVdLuypKZmxHdjCOa1bVozAzs3auIyHYjpy7W7pVQ== X-Gm-Message-State: AOJu0Yxl6TsaxVfO9vPfg1hDscMauNscfgHVleETChkYMOYz/FaxmFWR BLWhwh/WhtdzwJ2M9yfr0n8n+6SJpQUvJOF1gzXnMtv753OR2ZEN X-Google-Smtp-Source: AGHT+IH8zaxo9wFwsrm0LmxADoSHugTCa0t+W5kfxi/x/L1FdFxTgwiPyLkDNbsQWCq92RDquZxo9w== X-Received: by 2002:a7b:cbd9:0:b0:421:2049:5d66 with SMTP id 5b1f17b1804b1-421562eeaa0mr27783395e9.21.1717614229841; Wed, 05 Jun 2024 12:03:49 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-4214a4abdd5sm44772195e9.0.2024.06.05.12.03.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Jun 2024 12:03:49 -0700 (PDT) From: Christian Marangi To: Tom Rini , Lukasz Majewski , Sean Anderson , Ryder Lee , Weijie Gao , Chunfeng Yun , GSS_MTK_Uboot_upstream , Heiko Schocher , Peng Fan , Jaehoon Chung , Joe Hershberger , Ramon Fried , Jagan Teki , Christian Marangi , Sam Shih , Francois Berder , Simon Glass , Julien Masson , Peter Robinson , Marek Vasut , Bo-Cun Chen , This contributor prefers not to receive mails , Michal Simek , John Crispin , Heinrich Schuchardt , Mason Huo , Stefan Roese , Sumit Garg , Mark Kettenis , Sergei Antonov , Mayuresh Chitale , "SkyLake.Huang" , =?utf-8?q?Nicol=C3=B2_Verones?= =?utf-8?q?e?= , u-boot@lists.denx.de Subject: [PATCH 07/11] serial: mediatek: add special handling for highspeed and linux compat Date: Wed, 5 Jun 2024 21:02:14 +0200 Message-ID: <20240605190220.17616-8-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240605190220.17616-1-ansuelsmth@gmail.com> References: <20240605190220.17616-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Wed, 05 Jun 2024 21:37:35 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Upstream linux serial driver use a different logic to setup serial regs. They have 2 interval: - < 115200 we use lowspeed regs and 16 * baud - >= 115200 we use highspeed We currently use force_highspeed property to force usage of highspeed regs even with low baud rate. Add special handling if the upstream compatible is used where we just apply the same interval with anything >= 115200 in highspeed simulating force_highspeed. Signed-off-by: Christian Marangi --- drivers/serial/serial_mtk.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/drivers/serial/serial_mtk.c b/drivers/serial/serial_mtk.c index d34a31c9cf0..14be095653a 100644 --- a/drivers/serial/serial_mtk.c +++ b/drivers/serial/serial_mtk.c @@ -89,8 +89,8 @@ struct mtk_serial_priv { bool force_highspeed; }; -static void _mtk_serial_setbrg(struct mtk_serial_priv *priv, int baud, - uint clk_rate) +static void _mtk_serial_setbrg(struct udevice *dev, struct mtk_serial_priv *priv, + int baud, uint clk_rate) { u32 quot, realbaud, samplecount = 1; @@ -113,7 +113,12 @@ static void _mtk_serial_setbrg(struct mtk_serial_priv *priv, int baud, goto set_baud; } - if (priv->force_highspeed) + /* + * Upstream linux use highspeed for anything >= 115200 and lowspeed + * for < 115200. Simulate this if we are using the upstream compatible. + */ + if (priv->force_highspeed || + (device_is_compatible(dev, "mediatek,mt6577-uart") && baud >= 115200)) goto use_hs3; if (baud <= 115200) { @@ -186,7 +191,7 @@ static int mtk_serial_setbrg(struct udevice *dev, int baudrate) if (IS_ERR_VALUE(clk_rate) || clk_rate == 0) clk_rate = priv->fixed_clk_rate; - _mtk_serial_setbrg(priv, baudrate, clk_rate); + _mtk_serial_setbrg(dev, priv, baudrate, clk_rate); return 0; } @@ -302,13 +307,13 @@ DECLARE_GLOBAL_DATA_PTR; writel(0, &mtk_hsuart##port.regs->ier); \ writel(UART_MCRVAL, &mtk_hsuart##port.regs->mcr); \ writel(UART_FCRVAL, &mtk_hsuart##port.regs->fcr); \ - _mtk_serial_setbrg(&mtk_hsuart##port, gd->baudrate, \ + _mtk_serial_setbrg(NULL, &mtk_hsuart##port, gd->baudrate, \ mtk_hsuart##port.fixed_clk_rate); \ return 0 ; \ } \ static void mtk_serial##port##_setbrg(void) \ { \ - _mtk_serial_setbrg(&mtk_hsuart##port, gd->baudrate, \ + _mtk_serial_setbrg(NULL, &mtk_hsuart##port, gd->baudrate, \ mtk_hsuart##port.fixed_clk_rate); \ } \ static int mtk_serial##port##_getc(void) \ @@ -456,7 +461,7 @@ static inline void _debug_uart_init(void) writel(UART_MCRVAL, &priv.regs->mcr); writel(UART_FCRVAL, &priv.regs->fcr); - _mtk_serial_setbrg(&priv, CONFIG_BAUDRATE, priv.fixed_clk_rate); + _mtk_serial_setbrg(NULL, &priv, CONFIG_BAUDRATE, priv.fixed_clk_rate); } static inline void _debug_uart_putc(int ch) From patchwork Wed Jun 5 19:02:15 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1944128 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=Nod7a0Fz; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Vvd7r6hRwz20Q5 for ; Thu, 6 Jun 2024 05:39:20 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id CDD7E88464; Wed, 5 Jun 2024 21:37:39 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Nod7a0Fz"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 7C6EA87F39; Wed, 5 Jun 2024 21:03:54 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 5C69E88096 for ; Wed, 5 Jun 2024 21:03:52 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=ansuelsmth@gmail.com Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-421578c546eso2123805e9.0 for ; Wed, 05 Jun 2024 12:03:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717614232; x=1718219032; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=ZenwWrDeFzRe8cHFaTxY5C2wi9H9AcMzagN3f1ue2mY=; b=Nod7a0Fz2p3VaPFZt97qUl+ZHqKQizhKBgH0Kmx6tGSPt5kBz/0Hc3RC2uj6CpFUti lCd51TgTxSaEi0aWZQJQGL5eUFNQhin2e9M8znQK1SK3t7tmT1JdadkBogyN4HONok7x 0H4stMGGcQlyXXKpTDntkJFGza4e0d69B8eh9u/NDAZ6DKUD+SY0+YiDNDfT207VHpWS zOM3F/eZowMODTJYThHC/fA6OysKNCZymtuPZm97kqL1Np12RfNAcqvYf2WDf7XXhx1I Fo5pZ2hsYaVhYM7QLTXaAbK0qkTeTVOyDsKBDa7Sfi4YhjUhK74GFnmaaKvEe82bsivb TfxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717614232; x=1718219032; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZenwWrDeFzRe8cHFaTxY5C2wi9H9AcMzagN3f1ue2mY=; b=PfAL7d3EN2IT1dXLTVFynAfnYueYe+rgDTmyRsr6Mi623a1y6qzUvjEn/7qqvyRZ3f rFgjCeBmQg4sfFjgTY+sywGSyvYfZ+juz0CUhbnrfhv+LitYwjZzUB+TGIFSLGT1ZEhb lqR3omLDOVevNZPtuY1Y2WX9+3xT3Le9JTlV7hTgLQ+Ns8wHdQJVNboANsS1yEW8YxAb zFoMxlcnTtwbsfk4pKFTlmERPLwVXm+l5mCh68Rj2JRlqEiCctfj+ZavNoW47aWtPNwf PWSqtgSzR9NIY8vovg3oeoOA5fTk1eLg0VoJQqa81P/HofDK+vlSGMciAxvpeuT529LN g/gQ== X-Forwarded-Encrypted: i=1; AJvYcCXZeZdCOSXdxb5kJdySqbmQ4ne61iqsBJjAu4icz9Eio3FYdBbS4ngeF6oHW8rssZEmAdxK+gGPqU2JCQjJ38otAohkLQ== X-Gm-Message-State: AOJu0YxjlhjGrtmy4PSUcoVnwqunjwb8J+njA5f9fDIldqc0A3Al8k3U L9ZHd6N65ciSaJD91pIdDHmuU4Flciys2NWo7XMuRjPfXv027q+9 X-Google-Smtp-Source: AGHT+IH1QRNyf6gH5QsiayNFU7OGqHb1tL9uttUD/JJZsQnOIzo40PGkz7TGOwETIex1FbAhaUFIyw== X-Received: by 2002:a05:600c:3795:b0:41b:e416:43d3 with SMTP id 5b1f17b1804b1-421563595a6mr28602425e9.35.1717614231549; Wed, 05 Jun 2024 12:03:51 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-4214a4abdd5sm44772195e9.0.2024.06.05.12.03.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Jun 2024 12:03:51 -0700 (PDT) From: Christian Marangi To: Tom Rini , Lukasz Majewski , Sean Anderson , Ryder Lee , Weijie Gao , Chunfeng Yun , GSS_MTK_Uboot_upstream , Heiko Schocher , Peng Fan , Jaehoon Chung , Joe Hershberger , Ramon Fried , Jagan Teki , Christian Marangi , Sam Shih , Francois Berder , Simon Glass , Julien Masson , Peter Robinson , Marek Vasut , Bo-Cun Chen , This contributor prefers not to receive mails , Michal Simek , John Crispin , Heinrich Schuchardt , Mason Huo , Stefan Roese , Sumit Garg , Mark Kettenis , Sergei Antonov , Mayuresh Chitale , "SkyLake.Huang" , =?utf-8?q?Nicol=C3=B2_Verones?= =?utf-8?q?e?= , u-boot@lists.denx.de Subject: [PATCH 08/11] mmc: mediatek: add support for upstream linux clock and property Date: Wed, 5 Jun 2024 21:02:15 +0200 Message-ID: <20240605190220.17616-9-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240605190220.17616-1-ansuelsmth@gmail.com> References: <20240605190220.17616-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Wed, 05 Jun 2024 21:37:35 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Add support for upstream linux clock and map U-Boot property to the one use in upstream linux where supported. Also add handling for the use_internal_cd that on upstream is hardcoded enabled on mt7620. Signed-off-by: Christian Marangi --- drivers/mmc/mtk-sd.c | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/drivers/mmc/mtk-sd.c b/drivers/mmc/mtk-sd.c index 296aaee7331..93878900dec 100644 --- a/drivers/mmc/mtk-sd.c +++ b/drivers/mmc/mtk-sd.c @@ -336,6 +336,7 @@ struct msdc_compatible { bool enhance_rx; bool builtin_pad_ctrl; bool default_pad_dly; + bool use_internal_cd; }; struct msdc_delay_phase { @@ -366,6 +367,10 @@ struct msdc_host { struct clk src_clk_cg; /* optional, MSDC source clock control gate */ struct clk h_clk; /* MSDC core clock */ + /* upstream linux clock */ + struct clk axi_cg_clk; /* optional, AXI clock */ + struct clk ahb_cg_clk; /* optional, AHB clock */ + u32 src_clk_freq; /* source clock */ u32 mclk; /* mmc framework required bus clock */ u32 sclk; /* actual calculated bus clock */ @@ -1638,6 +1643,11 @@ static void msdc_ungate_clock(struct msdc_host *host) clk_enable(&host->h_clk); if (host->src_clk_cg.dev) clk_enable(&host->src_clk_cg); + + if (host->axi_cg_clk.dev) + clk_enable(&host->axi_cg_clk); + if (host->ahb_cg_clk.dev) + clk_enable(&host->ahb_cg_clk); } static int msdc_drv_probe(struct udevice *dev) @@ -1716,19 +1726,33 @@ static int msdc_of_to_plat(struct udevice *dev) clk_get_by_name(dev, "source_cg", &host->src_clk_cg); /* optional */ + /* upstream linux clock */ + clk_get_by_name(dev, "axi_cg", &host->axi_cg_clk); /* optional */ + clk_get_by_name(dev, "ahb_cg", &host->ahb_cg_clk); /* optional */ + #if CONFIG_IS_ENABLED(DM_GPIO) gpio_request_by_name(dev, "wp-gpios", 0, &host->gpio_wp, GPIOD_IS_IN); gpio_request_by_name(dev, "cd-gpios", 0, &host->gpio_cd, GPIOD_IS_IN); #endif host->hs400_ds_delay = dev_read_u32_default(dev, "hs400-ds-delay", 0); - host->hs200_cmd_int_delay = - dev_read_u32_default(dev, "cmd_int_delay", 0); + if (dev_read_u32(dev, "mediatek,hs200-cmd-int-delay", + &host->hs200_cmd_int_delay)) + host->hs200_cmd_int_delay = + dev_read_u32_default(dev, "cmd_int_delay", 0); + host->hs200_write_int_delay = dev_read_u32_default(dev, "write_int_delay", 0); - host->latch_ck = dev_read_u32_default(dev, "latch-ck", 0); + + if (dev_read_u32(dev, "mediatek,latch-ck", &host->latch_ck)) + host->latch_ck = dev_read_u32_default(dev, "latch-ck", 0); + host->r_smpl = dev_read_u32_default(dev, "r_smpl", 0); - host->builtin_cd = dev_read_u32_default(dev, "builtin-cd", 0); + if (dev_read_bool(dev, "mediatek,hs400-cmd-resp-sel-rising")) + host->r_smpl = 1; + + host->builtin_cd = dev_read_u32_default(dev, "builtin-cd", 0) || + host->dev_comp->use_internal_cd; host->cd_active_high = dev_read_bool(dev, "cd-active-high"); return 0; @@ -1776,6 +1800,7 @@ static const struct msdc_compatible mt7620_compat = { .enhance_rx = false, .builtin_pad_ctrl = true, .default_pad_dly = true, + .use_internal_cd = true, }; static const struct msdc_compatible mt7621_compat = { From patchwork Wed Jun 5 19:02:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1944129 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=SOEl5ThH; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Vvd820rvsz20Q5 for ; Thu, 6 Jun 2024 05:39:30 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 3553488476; Wed, 5 Jun 2024 21:37:40 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="SOEl5ThH"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id CD9B288280; Wed, 5 Jun 2024 21:03:55 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com [IPv6:2a00:1450:4864:20::332]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id CECC78831D for ; Wed, 5 Jun 2024 21:03:53 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=ansuelsmth@gmail.com Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-42108856c33so7709335e9.1 for ; Wed, 05 Jun 2024 12:03:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717614233; x=1718219033; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=+mEXw7F2lJQQgW+4oCLpZWuN1JwwLw7u8qEl078/N1E=; b=SOEl5ThHlJ91ZLGQsrATVw/Dw0DCqoQ8ZoeetLFobCKLv4yMP2sfQXTdxAA0dY1PrM gamS4qz4pEzTuiQ8fuHpH2HQzI08dSC8f4qkTlttbBfa97mw72PZgSiOV50pnCyJXTmQ 6aNBLTHr4wXB6JOq85tNTRhOHobtOYbXBls/qzkqrCeXjwYM0wk0VzksIhb0zP8dXOpH 9jbYlebjQVc7toTxP8N87a76Bjvwhv9q4oJWuhpplV08mO8f6R58uK7h9C7TuX/DCCtW PSQRaHgfn4LRVIvanoZ765cwwLWdWJs+ZjqcwpUX8yGu5Q7BvM0RppyeU2ajwAjUuZHM fjhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717614233; x=1718219033; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+mEXw7F2lJQQgW+4oCLpZWuN1JwwLw7u8qEl078/N1E=; b=pDt7GuluI0p0JLPvfx3yApvwr9ne9iHJsn0ESr+Ur9NUz/PHGirf9MN24tkJl0TOSx WDkPr+84tggfF6wGDIu6xbn2ZYdFRWEQGqe6Jy5LCOiBPs3ft5bdowxzhvzXxnmMR/6u FZQKfHnP6/N2bjv38MbqiAKT23mn+Yxxu2A8/0km7tocH3rrBqGaQztrYKEcaCmGAK8T cikQ7r0XTzpc+o+hsgm9BdKObJ/n7K0SCwS/QunNiUPs0TjKkiOfUlvOO7eBOhrE4DF9 YeVLF20Lf1WabCdjOqTeL6X6v73lIv9geCuqtw3qA8q1yyWvObdN/WBimX38PrN9Llay pyVw== X-Forwarded-Encrypted: i=1; AJvYcCXCo2IK2iMew5CToCU2Qs+FugbZVPxtqq5hkFuikckXNedexDX4IR1mbZE18D0571+buEaqKZvPvcX2x6XjBHzi8m+Fiw== X-Gm-Message-State: AOJu0Yx6XHxIJsgsaWf+xKtU20iimkxv+eRDT8m9XTpV902vFaxxUhug 4VfsS7sJ6zjh8DF9K7gBWwBvo946UTrXjN1A4YqZ8PsVhWe+341f X-Google-Smtp-Source: AGHT+IEU8FmgZ1EHipp0TMtL5/sOkdd0dU2OBeWlE4AKF8zco2f06WqMv3FTZzFBqlmP+JKYuBQTCw== X-Received: by 2002:a05:600c:4f51:b0:421:556f:5fb8 with SMTP id 5b1f17b1804b1-4215ac83330mr4881685e9.0.1717614233276; Wed, 05 Jun 2024 12:03:53 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-4214a4abdd5sm44772195e9.0.2024.06.05.12.03.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Jun 2024 12:03:53 -0700 (PDT) From: Christian Marangi To: Tom Rini , Lukasz Majewski , Sean Anderson , Ryder Lee , Weijie Gao , Chunfeng Yun , GSS_MTK_Uboot_upstream , Heiko Schocher , Peng Fan , Jaehoon Chung , Joe Hershberger , Ramon Fried , Jagan Teki , Christian Marangi , Sam Shih , Francois Berder , Simon Glass , Julien Masson , Peter Robinson , Marek Vasut , Bo-Cun Chen , This contributor prefers not to receive mails , Michal Simek , John Crispin , Heinrich Schuchardt , Mason Huo , Stefan Roese , Sumit Garg , Mark Kettenis , Sergei Antonov , Mayuresh Chitale , "SkyLake.Huang" , =?utf-8?q?Nicol=C3=B2_Verones?= =?utf-8?q?e?= , u-boot@lists.denx.de Subject: [PATCH 09/11] clk: mediatek: mt7981: support alternative compatible for fixed-plls Date: Wed, 5 Jun 2024 21:02:16 +0200 Message-ID: <20240605190220.17616-10-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240605190220.17616-1-ansuelsmth@gmail.com> References: <20240605190220.17616-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Wed, 05 Jun 2024 21:37:35 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Support alternative compatible for fixed-plls clocks used upstream with the compatible mediatek,mt7981-apmixedsys. Signed-off-by: Christian Marangi --- drivers/clk/mediatek/clk-mt7981.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/clk/mediatek/clk-mt7981.c b/drivers/clk/mediatek/clk-mt7981.c index 7fcb81419cd..13dc3df0e9e 100644 --- a/drivers/clk/mediatek/clk-mt7981.c +++ b/drivers/clk/mediatek/clk-mt7981.c @@ -543,6 +543,7 @@ static const struct mtk_clk_tree mt7981_infracfg_clk_tree = { static const struct udevice_id mt7981_fixed_pll_compat[] = { { .compatible = "mediatek,mt7981-fixed-plls" }, + { .compatible = "mediatek,mt7981-apmixedsys" }, {} }; From patchwork Wed Jun 5 19:02:17 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1944130 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=bTQfjFfm; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Vvd8D3JPbz20Q5 for ; Thu, 6 Jun 2024 05:39:40 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8B81E88444; Wed, 5 Jun 2024 21:37:40 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="bTQfjFfm"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id BBAC187F39; Wed, 5 Jun 2024 21:03:57 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com [IPv6:2a00:1450:4864:20::333]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 9BC7D88261 for ; Wed, 5 Jun 2024 21:03:55 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=ansuelsmth@gmail.com Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-4214fe0067fso2169665e9.1 for ; Wed, 05 Jun 2024 12:03:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717614235; x=1718219035; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=F97OdxFh7m7etkRsVtKsfGsLMsJwZFYqELX6uCo4BS8=; b=bTQfjFfmlQ3VBJT5s7wqWW8rajgUQCVfhdDIGM08d6sNBaYNeB6uRjRGm4ExVUozAS VPWzLbDtKLSPZy7lF0z+7PwGnggt5ro7dJXDTbmKzZc2KWtjgLpiGmySCxt+gP4jwqh2 /b+9aW9GrI90Ow4m7J42z/TVyUw2Vovc+Fr4PLb4o9DGwfL1i5BJGuxxItNHNkoPRmva 9x/1uwh78PvI1DNtXCKybSv24BuQijvEeLjzrX3TrgLem60OkH2DJg5h/EMA6PYFFh2+ e3nyh+B2b6C68GSKZJHlFEjdEjWYXSTPrKCWP5/q+zVlg6U36KjY1vveVOUdvfxS3aVS Zt9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717614235; x=1718219035; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=F97OdxFh7m7etkRsVtKsfGsLMsJwZFYqELX6uCo4BS8=; b=X3jRMBY4cqoX/ZqJgoaT8968lR7wpsTCqrCuJYAddFb3h0RPmhvgFX/8jkuvNi4amW OTEDEDs7Gwm/wSzqeRVJwxAHwHVvlMWSUFrYzurNZ2KMvk+04bmM6X9Bonx9xbPCYHzn IiNJnID8655t8lndy+VplKhOME+skvpb/1ytoIkknQvDHIUHSzqmGdxCwy3oHqe/pW/n YbMRt5gWRTCglAtiTk4kwvoGWkl5lh4tdu50OiROU4QmvY4hEaOBpudOU1/pF0TaKRNM oQxXncDviPlvZUZRyqGrkUnSem97StK7NvnXbskkFkvXxs+9Nx77IdxAu7ynuOVYlgvG AwBA== X-Forwarded-Encrypted: i=1; AJvYcCWnLYM/OWCyS6yJY+BTrWaNZTlfsd5w0Gz5viZjwA0lF9RWpyjeqnO+EHVS347rsUQNF58ZZXM6yOFgo+0Oc80bTbggeA== X-Gm-Message-State: AOJu0YxQc+OXHiU4WD/j1emMhbBqsk7/manY+0HvPWkvV34zlOb6fJUv 5W+bg099Gff2stibSjenK2TTnuj0oPO8RdiGupfqoZHBR0mAJ9HS X-Google-Smtp-Source: AGHT+IH7elCSkrK7K5AzBlYfE0Q/FitrF2CuJO+1sf2f6VBB34P2xKV8/5h0vSiu0qpaLwwy33tQSw== X-Received: by 2002:a05:600c:5492:b0:418:fe93:22d0 with SMTP id 5b1f17b1804b1-421562cf4dcmr29678985e9.11.1717614234983; Wed, 05 Jun 2024 12:03:54 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-4214a4abdd5sm44772195e9.0.2024.06.05.12.03.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Jun 2024 12:03:54 -0700 (PDT) From: Christian Marangi To: Tom Rini , Lukasz Majewski , Sean Anderson , Ryder Lee , Weijie Gao , Chunfeng Yun , GSS_MTK_Uboot_upstream , Heiko Schocher , Peng Fan , Jaehoon Chung , Joe Hershberger , Ramon Fried , Jagan Teki , Christian Marangi , Sam Shih , Francois Berder , Simon Glass , Julien Masson , Peter Robinson , Marek Vasut , Bo-Cun Chen , This contributor prefers not to receive mails , Michal Simek , John Crispin , Heinrich Schuchardt , Mason Huo , Stefan Roese , Sumit Garg , Mark Kettenis , Sergei Antonov , Mayuresh Chitale , "SkyLake.Huang" , =?utf-8?q?Nicol=C3=B2_Verones?= =?utf-8?q?e?= , u-boot@lists.denx.de Subject: [PATCH 10/11] pinctrl: mediatek: add support for gpio-controller property in root node Date: Wed, 5 Jun 2024 21:02:17 +0200 Message-ID: <20240605190220.17616-11-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240605190220.17616-1-ansuelsmth@gmail.com> References: <20240605190220.17616-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Wed, 05 Jun 2024 21:37:35 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Add support for gpio-controller property in root pinctrl node. This is to follow upstream linux DTSI that doesn't define the gpio-controller and cells in dedicated nodes. Signed-off-by: Christian Marangi --- drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c index 0baef57c1c2..7465e236bc8 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c +++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c @@ -762,6 +762,15 @@ static int mtk_gpiochip_register(struct udevice *parent) if (!drv) return -ENOENT; + /* + * Support upstream linux DTSI that define gpio-controller + * in the root node (instead of a dedicated subnode) + */ + if (dev_read_bool(dev, "gpio-controller")) { + node = dev_ofnode(parent); + goto bind; + } + ret = -ENOENT; dev_for_each_subnode(node, parent) if (ofnode_read_bool(node, "gpio-controller")) { @@ -772,6 +781,7 @@ static int mtk_gpiochip_register(struct udevice *parent) if (ret) return ret; +bind: ret = device_bind_with_driver_data(parent, &mtk_gpio_driver, "mediatek_gpio", 0, node, &dev); From patchwork Wed Jun 5 19:02:18 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1944131 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=PODP7UGt; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Vvd8R12pgz20Q5 for ; Thu, 6 Jun 2024 05:39:51 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id E7FD3884A7; Wed, 5 Jun 2024 21:37:40 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="PODP7UGt"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id D1BF98825E; Wed, 5 Jun 2024 21:03:59 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com [IPv6:2a00:1450:4864:20::229]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id C3FBB88263 for ; Wed, 5 Jun 2024 21:03:57 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=ansuelsmth@gmail.com Received: by mail-lj1-x229.google.com with SMTP id 38308e7fff4ca-2e78fe9fc2bso2263431fa.3 for ; Wed, 05 Jun 2024 12:03:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717614237; x=1718219037; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=xFqKPNJ72o9/wknPsjhm4e1xJFjgwdxeCZsRwZeeCQA=; b=PODP7UGthzUbX0KzS+P0lP3byTsUNMsno9xf/N5k8BQCaX+PKHUDjCSI3peTAE07qZ r05hejpds8MjNVgNFxB26NDu3M/3bVN3OkF7MJy4QeT9Xph2hTMRqtw1VQNrrkglGJvZ KG9LrtVa8VuInoxkh6E+2wzyL+97ZIX4Z7luuyRgV4sI9NCtQxumjW2sLe1KIXn+nnRg 8TMH61nSN0JTc8q4RtHjY0as+pz5w3YAC4BiRGrFWmX15IxQOR9Me/65eBsAWiTFSsiE ncyKMHqttXCfxvqtOGjBUZOpD/sdy30VGjiBbbk/VBFC/An2smrwOEgZkk1lv9XqQZ0x VpYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717614237; x=1718219037; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xFqKPNJ72o9/wknPsjhm4e1xJFjgwdxeCZsRwZeeCQA=; b=b5NtnDw0cOKEc85+nLMqs7jHUnJOFHWEO0o302GHiI3yraPL2uxzboql0mPQt/WE1g RyAWwsqjyMa5PEN78XbPfXgk1Y7J6ZwxOq1/ETZsSaA9z51ngmY5q2mxnPQsXNORpv8h n436sQtmeEPdi6l4QywToa84D31dDMP7e+YJ9wDylB/6S4wjowMhmg5JFtEXqqxGjTIC WLE2KurKxcssDJS5bGipHcuexpoaMnWe0nRTgILUD0l8tq2YFy1I2Ge7J4i9nlueD28v RzG3vWAhKIT40UrYcRis9hsn4vFElG+AvzhaFP3yxq85+yMwbhvyW2JIrEav/EJtPE9A 1vZg== X-Forwarded-Encrypted: i=1; AJvYcCXWHCNY19kOmx7p2SHiti+peCjX5rWFi9hJk0er11e1DIxeBdVRIiFPBYXG7k8acaB5BSgw+lt97hCtoQWsXQHW9Osy8Q== X-Gm-Message-State: AOJu0YwPnxWMlZJRw1dwpHS1Qr/4vD2r6GVeyCyqtEkKmSqYM6PT4mlb G2o5dOD1DG6dL8En98zGfl25rSIDPNgXPE0F71HY9TCBKfMbu7Cv X-Google-Smtp-Source: AGHT+IEy8n/tE0TG59QmyZAReCnKOf7JreZz9kwfLrqAHivriYXqvXtDnMyrQs7pDEe9O43411bxjw== X-Received: by 2002:a2e:8649:0:b0:2e9:8374:3820 with SMTP id 38308e7fff4ca-2eac7a6af02mr19239411fa.40.1717614236735; Wed, 05 Jun 2024 12:03:56 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-4214a4abdd5sm44772195e9.0.2024.06.05.12.03.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Jun 2024 12:03:56 -0700 (PDT) From: Christian Marangi To: Tom Rini , Lukasz Majewski , Sean Anderson , Ryder Lee , Weijie Gao , Chunfeng Yun , GSS_MTK_Uboot_upstream , Heiko Schocher , Peng Fan , Jaehoon Chung , Joe Hershberger , Ramon Fried , Jagan Teki , Christian Marangi , Sam Shih , Francois Berder , Simon Glass , Julien Masson , Peter Robinson , Marek Vasut , Bo-Cun Chen , This contributor prefers not to receive mails , Michal Simek , John Crispin , Heinrich Schuchardt , Mason Huo , Stefan Roese , Sumit Garg , Mark Kettenis , Sergei Antonov , Mayuresh Chitale , "SkyLake.Huang" , =?utf-8?q?Nicol=C3=B2_Verones?= =?utf-8?q?e?= , u-boot@lists.denx.de Subject: [PATCH 11/11] pinctrl: mediatek: mt7981: init device before relocation Date: Wed, 5 Jun 2024 21:02:18 +0200 Message-ID: <20240605190220.17616-12-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240605190220.17616-1-ansuelsmth@gmail.com> References: <20240605190220.17616-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Wed, 05 Jun 2024 21:37:35 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Upstream kernel linux define pinctrl for uart0, hence this pin group and pinctrl driver is needed before relocation. Add DM_FLAG_PRE_RELOC flag to init and mute mtk_serial error on early serial init. Signed-off-by: Christian Marangi --- drivers/pinctrl/mediatek/pinctrl-mt7981.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/pinctrl/mediatek/pinctrl-mt7981.c b/drivers/pinctrl/mediatek/pinctrl-mt7981.c index 3fa198ed79c..4bc4abe6518 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt7981.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt7981.c @@ -1050,4 +1050,5 @@ U_BOOT_DRIVER(mt7981_pinctrl) = { .ops = &mtk_pinctrl_ops, .probe = mtk_pinctrl_mt7981_probe, .priv_auto = sizeof(struct mtk_pinctrl_priv), + .flags = DM_FLAG_PRE_RELOC, };