From patchwork Mon Jun 24 21:03:27 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1951747 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=HdqE5/OH; 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 4W7L7Z3pBPz20Z9 for ; Tue, 25 Jun 2024 07:04:42 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id EEE4088403; Mon, 24 Jun 2024 23:04:31 +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="HdqE5/OH"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 4568488387; Mon, 24 Jun 2024 23:04:31 +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 autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [IPv6:2a00:1450:4864:20::32e]) (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 27F07883D2 for ; Mon, 24 Jun 2024 23:04:28 +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-x32e.google.com with SMTP id 5b1f17b1804b1-421757d217aso52890225e9.3 for ; Mon, 24 Jun 2024 14:04:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719263067; x=1719867867; 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=eFXbWzKKLkmGQpE+YbS152r2t08PRpPi4kBpt6cBr94=; b=HdqE5/OHQYFju8ZjV3kOa41otwqZUlj0wnuqVXGd5W6X/4M58Mcd/NJSrIdc/vRNp6 6rfyFaoQm0EBj8etELq/OvbtFpQRXfrPAoFZ83HmRPOtL92e/fc+iYKdzKqfj+GWKlMK Bv9C99Jzy/IXfQhXh98qEsuDbxKFoS5+pPzwOZ6w7PVLY0gKvWCox/Q07nL/miM9lk2f uaZtAW4SB42iHx61jLLXTPVbIySEGi6OnHo1BmUyNY3wzfwHBFNSBjxhH4b/g5vMJl14 xXaYmddMHVhgInKExiycc9BaUObM1AqhsqiRvHoR+lDLOMNGGfgvjpMUFPFYoNPW97jJ qXBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719263067; x=1719867867; 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=eFXbWzKKLkmGQpE+YbS152r2t08PRpPi4kBpt6cBr94=; b=FSyZjvH7FYvYdaKBT1WnZ4LZyq5i/vrz9DCCO95kvFFNXnVhTdAixR5O8vT0z829lm 06zm0HRiQmZAZ39UpO8KltoPJe4UQHo52m9yrZbH8TumpQzIpug4l2c62S+nMi993G+x fd3HX1NuwE9A1gai1VebwC3RUF89YtP6OpwYxVZn2lIYnjvspfI3Qi7RMqKkiAxS0m7R vmgqMT3/TRN7cn2Tg1RI1Jn1wTCglUpq84kqQ/iCbT4dlcJhfsqPNgVtHsgswc/Wqkzz eQu1o6XyNb2XHJojbHlaMhY+FTs7EPWytV5I2EtJ1EQFcoyJDVJG5ZobOoMKxbl3oF8L 7hIQ== X-Forwarded-Encrypted: i=1; AJvYcCVwZ2nCiEg0V4iLyOHSwVJZSGklyrw+Z1jriQkEnin8fGoVyU3cvbn9aFKy94Zlaxc+DZDCC3eYs/YL5JXdfBLBvurzuA== X-Gm-Message-State: AOJu0Yzgh8DuLvmH7yJe7VfMmRSZs7BCKRHmOeERBcOuJ0GBOU3VM+9h fA5Nj/iJ/1oOoPhZmV/W2XLZK3tEs8H/hQQKM8NWxUcrw3cLvEbO X-Google-Smtp-Source: AGHT+IHvNenFk0lvoCoTnBmsN+KGQS1hYet9nTfFhwwtM78wb0hVarXv6AkeULLXQVAvha2fcbd0rQ== X-Received: by 2002:a5d:59a4:0:b0:366:f48e:c6b with SMTP id ffacd0b85a97d-366f48e0e2emr3589120f8f.45.1719263067418; Mon, 24 Jun 2024 14:04:27 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-3664178f5f7sm10968228f8f.19.2024.06.24.14.04.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Jun 2024 14:04:27 -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 , John Crispin , This contributor prefers not to receive mails , Mason Huo , Heinrich Schuchardt , Christian Marangi , Sergei Antonov , Sumit Garg , Simon Glass , Leo Yu-Chi Liang , Neil Armstrong , Mark Kettenis , Marek Vasut , Alexey Romanov , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v4 01/14] phy: phy-mtk-tphy: add support for phy type switch Date: Mon, 24 Jun 2024 23:03:27 +0200 Message-ID: <20240624210418.19324-2-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20240624210418.19324-1-ansuelsmth@gmail.com> References: <20240624210418.19324-1-ansuelsmth@gmail.com> MIME-Version: 1.0 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/Kconfig | 2 + drivers/phy/phy-mtk-tphy.c | 80 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+) diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig index 8f767877e73..e12347e8a03 100644 --- a/drivers/phy/Kconfig +++ b/drivers/phy/Kconfig @@ -263,6 +263,8 @@ config PHY_MTK_TPHY bool "MediaTek T-PHY Driver" depends on PHY depends on ARCH_MEDIATEK || SOC_MT7621 + select REGMAP + select SYSCON help MediaTek T-PHY driver supports usb2.0, usb3.0 ports, PCIe and SATA, and meanwhile supports two version T-PHY which have diff --git a/drivers/phy/phy-mtk-tphy.c b/drivers/phy/phy-mtk-tphy.c index 6f9ac1528e8..0a45dc58629 100644 --- a/drivers/phy/phy-mtk-tphy.c +++ b/drivers/phy/phy-mtk-tphy.c @@ -10,6 +10,8 @@ #include #include #include +#include +#include #include #include #include @@ -215,6 +217,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, @@ -257,6 +267,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; @@ -616,6 +630,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); @@ -746,6 +821,7 @@ static int mtk_phy_xlate(struct phy *phy, } phy_parse_property(tphy, instance); + phy_type_set(instance); return 0; } @@ -807,6 +883,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 Mon Jun 24 21:03:28 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1951748 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=J/LDtuDk; 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) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4W7L7m5lCKz20Z9 for ; Tue, 25 Jun 2024 07:04:52 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 5E153883E7; Mon, 24 Jun 2024 23:04:34 +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="J/LDtuDk"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 5FB9A88387; Mon, 24 Jun 2024 23:04:33 +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 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 3227A883C9 for ; Mon, 24 Jun 2024 23:04:30 +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-4217dbeb4caso41194545e9.1 for ; Mon, 24 Jun 2024 14:04:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719263069; x=1719867869; 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=KDWMK5M9ZXGk8iO6l3vofKPhNxDF4lRDTRFpqShUKi8=; b=J/LDtuDkhjSQch4BE1WiFAp9HCqYR3exR9hlvlbZ4i40PaekPVSRKNw/ZrTOO9mqnh lEe87vlhpAFBPPAxUV3gTFUymiEdrhQcOssZ9GF2hfYX1VseX5dPP/dssLLQ2YhjWup2 O2vgI0GZWXIumC28JtHrluHT2VkxI+DFFWHN6ytTtyJU2cTL4u+TpYtfl0OJ/6ZzCwiO gzCXjy6VNxu/p6dwONIN6WbuNJcdCLm5k4nf7QBz6V/FcU9z/YgcXoAxFQWCWJZ4pDwS SFTiv5vXw5obz5WDna/dWjJGcZBXb2aAe/MWU2oNxE3VuiubZEcev28t5zZQaAwSuCxf /4jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719263069; x=1719867869; 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=KDWMK5M9ZXGk8iO6l3vofKPhNxDF4lRDTRFpqShUKi8=; b=FfthZmjBiohjVms8JucQhmXCbeob+lg9nQ8LgmmJiBR7Um6dn0sIPkuMQu3Zto/RkQ xYoWI+4sbebcaDxMPO697LecL6ZmSP+TeXA06Enlamiy5A2R25iJ/UPdTXVe31eqoBNZ 1XnUPloToRQXfxkStlGFit+0Xh0KHJwvk8uHkawDpzaMudSu5ktYrXQ148x5De/GzfgW Cqp62Sg4CcGfNvFhmmf+FCJMYh3nNxzgndUFY8HZbmmd37sGrzSQn9kne8zxzlHcfVkZ 9ZxCxUig90McDFXOsZboWNp1gxqF47JCJV14l0q3j2B20IMYeMuEaklmDd36qMPpfcWP zIrQ== X-Forwarded-Encrypted: i=1; AJvYcCUFqSuR3Qyc0QbmI93fnOtLzO2kMiRSH4b6o3M+6IUUDaNnOs7QsBMxQqMjEtHJ+v9rgCeQdT/m6CoGVJlQJ7PAla1s/g== X-Gm-Message-State: AOJu0YwC5HKR1JWpHAJ6iB8hDeXBwKpFhvz/zVvTRWN6B+yfnCUiV2fG XdigDzTfcClgEf7XLUWF14HadT0+DnbhR+TM5IEvqf1cB9SK4fD4 X-Google-Smtp-Source: AGHT+IGU6vcL61tldO1cNqAauBJwEzWzOwk5O33G6uqZQLsyY//cBdbotI7vlDjG1qL7eSKHzxy+3w== X-Received: by 2002:a05:600c:1d23:b0:424:760d:75cb with SMTP id 5b1f17b1804b1-4248cc18217mr40617275e9.6.1719263069073; Mon, 24 Jun 2024 14:04:29 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-3664178f5f7sm10968228f8f.19.2024.06.24.14.04.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Jun 2024 14:04:28 -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 , John Crispin , This contributor prefers not to receive mails , Mason Huo , Heinrich Schuchardt , Christian Marangi , Sergei Antonov , Sumit Garg , Simon Glass , Leo Yu-Chi Liang , Neil Armstrong , Mark Kettenis , Marek Vasut , Alexey Romanov , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v4 02/14] pci: mediatek: add PCIe controller support for filogic silicon Date: Mon, 24 Jun 2024 23:03:28 +0200 Message-ID: <20240624210418.19324-3-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20240624210418.19324-1-ansuelsmth@gmail.com> References: <20240624210418.19324-1-ansuelsmth@gmail.com> MIME-Version: 1.0 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 Mon Jun 24 21:03:29 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1951749 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=QkWFM7Ls; 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 4W7L80003zz20Z9 for ; Tue, 25 Jun 2024 07:05:03 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id C536A8851C; Mon, 24 Jun 2024 23:04:34 +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="QkWFM7Ls"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id A08F088387; Mon, 24 Jun 2024 23:04:33 +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 autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com [IPv6:2a00:1450:4864:20::432]) (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 67B1588400 for ; Mon, 24 Jun 2024 23:04:31 +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-x432.google.com with SMTP id ffacd0b85a97d-363bbd51050so3804904f8f.0 for ; Mon, 24 Jun 2024 14:04:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719263071; x=1719867871; 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=H9F/sFt2dYW7KL9uQWBndq5AT8cP+85KY8XtN7IKt7U=; b=QkWFM7Lswi7ydgAdG6x3vNRj33fP2A3rRr3qF8nv1mVL4N3eFb6rIxhvWa2PgNDGdA o2O8M7Q9tYic92nKNc0VyGGkMTgE8o6hcQ5ZRiRuo2eRvGir9LsjVQETllW2V/cYAwuD 2n+T/YnaMF8o0qU4GLpCaJXsDuwiHTREJFLBf3jgFhzx184joTiBroeUXfZn7pM49r3Y SKnukIUPZBqUeeeM0bhnKgkJfFiEIcJfqoBfzRK1aQcct83C3o/Swo9ES1vg+nwm6IML N1SyZNrQVwQHfg43TEcFXN10t6bDON02b0wtTN3g8Q59cze6FyTQi2xPIGDFrd/mCUbi HAhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719263071; x=1719867871; 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=H9F/sFt2dYW7KL9uQWBndq5AT8cP+85KY8XtN7IKt7U=; b=F0JQxSl9Vqx8ALAHwvUXELdx6Cr0BOw+WWv4HODcFsq4bnR6KDwYr16JvYy0FUeyif s3bpwEpz89ZeSATlImsEOqh/c1MZyhgUnZLj1uBkP8oyONiJykcGSxtkyQhjYPDU2U7F 0P7OROknMLtXIu7dtORAnRdnKf80df7KDoAu1OwxFr51o4O7Ugk38gx4CzJ8WT1K2Q1S sIywRoTrC6BXnhMMAe+rH6TP5nlN1HXfHWi07//lhO+vOYfwYcF9460JnYjsoZ74Qj7G lRHQGsgF3we2wp2sFA4UhVFDJDhFr68p74EaOmAjB956eT4UpoOnuuSWyIOr+DxsCaO1 kFIA== X-Forwarded-Encrypted: i=1; AJvYcCVK52KcCkd5mzXpQBiWQxWdHnirUaQ5NXdWtlBYM1ORZB2OhxPrXLwoRPD2q+RyTfE3imEwquCGgkmCUpIr0lGsePwcfA== X-Gm-Message-State: AOJu0YyoGNgqM7sRTNez3CDLpIj1zPK7UrWRAVu7IF/rdho67K9LiGN4 t0uUKN3bB5hTh/H7ZJfY9VVdrj5FNByNcPIBmtRiWU2Rg5BFk8Ug X-Google-Smtp-Source: AGHT+IGVb5VKjCglzuz9PDhGayyfurj+gL6DwjpleFoXvA6GvMGbvjz6DosJYh29hyd71lpAafoYEQ== X-Received: by 2002:a05:6000:1448:b0:366:e586:9131 with SMTP id ffacd0b85a97d-366e58692bdmr5286808f8f.16.1719263070652; Mon, 24 Jun 2024 14:04:30 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-3664178f5f7sm10968228f8f.19.2024.06.24.14.04.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Jun 2024 14:04:30 -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 , John Crispin , This contributor prefers not to receive mails , Mason Huo , Heinrich Schuchardt , Christian Marangi , Sergei Antonov , Sumit Garg , Simon Glass , Leo Yu-Chi Liang , Neil Armstrong , Mark Kettenis , Marek Vasut , Alexey Romanov , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v4 03/14] spi: mtk_spim: add support for upstream mediatek, spi-ipm compatible Date: Mon, 24 Jun 2024 23:03:29 +0200 Message-ID: <20240624210418.19324-4-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20240624210418.19324-1-ansuelsmth@gmail.com> References: <20240624210418.19324-1-ansuelsmth@gmail.com> MIME-Version: 1.0 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 Mon Jun 24 21:03:30 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1951750 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=jM3ltU2+; 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 4W7L8B4pJnz1ydW for ; Tue, 25 Jun 2024 07:05:14 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 4249C883C9; Mon, 24 Jun 2024 23:04: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="jM3ltU2+"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 8A79788418; Mon, 24 Jun 2024 23:04:34 +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 autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [IPv6:2a00:1450:4864:20::32e]) (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 AF9E7883BA for ; Mon, 24 Jun 2024 23:04:32 +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-x32e.google.com with SMTP id 5b1f17b1804b1-421a1b834acso39654185e9.3 for ; Mon, 24 Jun 2024 14:04:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719263072; x=1719867872; 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=B61wlxiuDK9q7oVyyZYvJNYS2vY7JMd48k1n0qZYSCg=; b=jM3ltU2+FKYDS4BEfYWUeN2bxXBPfF20fh1hVjBLwdiw3uUaO8+lDRc20PwuEEvk3s NhaoyYmxYuvqZRLXzytXNa0Wy35dz/oXXTLRTLU+/USFUNwPt0Ct6veK9Xw5x+5mq4SR AC+rk8/pqdq+5xiqzcXmenqmfZSdal8NDRu9/IZ140jPOqqvgK9dKR4I4RU78WA1DQpr 5VkJGrCv+L3Bvw5e4QpxmhlT3s1+AVHRC7dfRAF1E2FB21+2OztS0GvLy4qzJUaJwg2x 2bAurNUDrboxBUFhBafRAV/VVts87Uu9mldlI5Le+QEoy6EGvON1VkU7K2gaAVj8biI9 xYPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719263072; x=1719867872; 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=B61wlxiuDK9q7oVyyZYvJNYS2vY7JMd48k1n0qZYSCg=; b=AbM0qDz82FUQg6cn3Eu6Sc8JXJRvf4xd0YlkZAdvtj98F4izsUYi20jSVR9KMN6FfX Hj22of4KEjxdvBMu9ih5/Mgh9ixUka3fnDVJjB0oIdbU6701iOhBJPRjWgmJklFzUAvv W0Ua6FHoXfwC0OVKVK+QdFiDXy/z9432xiW0lDPNOTky9kmHT5mjLMejB1YLDT7sgPR7 oNZqD38L2a5CRdRSLop9xL9Adakpo665JVkEu0YZROqYVL8J7gt5xol884VUqCeMvDIJ 8cogXnkVmk3nMEVdfbD76Utq+WjiDNO7eWQo2q3r1rAgw/i+LDG22gEVoTFJv7nLv5L1 ex4g== X-Forwarded-Encrypted: i=1; AJvYcCWrGcv4QgYbDWZ2FrWnOK1GIdJK0cWKwrZmIE7L475eG6NrPn6YbzNaGVCdpr51ZoLATBpxySyWNj7/XtqQj+NJw5HH6A== X-Gm-Message-State: AOJu0Yz+DQbTstO8eKud4PQomu4UvG1c+Pnuoqo6DBEewA8yhm+Oj0Oa FWyqldf3QXT0H7KecUW8N7d84oZz7QRjooubvAGdQmfBgtV2bWb5 X-Google-Smtp-Source: AGHT+IF8kGupJZX4t6BYza4kZwoPNWJepCYDED69rZtNETqa88PKskvHkTQSF7/Zz4hKESoVEKgE2A== X-Received: by 2002:a05:600c:3b14:b0:424:8dba:4a4e with SMTP id 5b1f17b1804b1-4248dba4d43mr36566875e9.6.1719263072140; Mon, 24 Jun 2024 14:04:32 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-3664178f5f7sm10968228f8f.19.2024.06.24.14.04.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Jun 2024 14:04:31 -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 , John Crispin , This contributor prefers not to receive mails , Mason Huo , Heinrich Schuchardt , Christian Marangi , Sergei Antonov , Sumit Garg , Simon Glass , Leo Yu-Chi Liang , Neil Armstrong , Mark Kettenis , Marek Vasut , Alexey Romanov , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v4 04/14] net: mediatek: handle alternative name for pn_swap property Date: Mon, 24 Jun 2024 23:03:30 +0200 Message-ID: <20240624210418.19324-5-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20240624210418.19324-1-ansuelsmth@gmail.com> References: <20240624210418.19324-1-ansuelsmth@gmail.com> MIME-Version: 1.0 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 94f17a97fe0..5098afef8a8 100644 --- a/drivers/net/mtk_eth.c +++ b/drivers/net/mtk_eth.c @@ -1964,7 +1964,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 Mon Jun 24 21:03:31 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1951751 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=fNBApdOT; 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) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4W7L8R3K1Dz1ydW for ; Tue, 25 Jun 2024 07:05:27 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id A178B8852D; Mon, 24 Jun 2024 23:04: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="fNBApdOT"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 3E6F088119; Mon, 24 Jun 2024 23:04:36 +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 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 55269883C9 for ; Mon, 24 Jun 2024 23:04:34 +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-4217136a74dso39664115e9.2 for ; Mon, 24 Jun 2024 14:04:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719263074; x=1719867874; 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=t9CfDVGOz6KTLC+evnRlVUFAOKx9+mHwstEfz5WLmCk=; b=fNBApdOTeUsrLELrYpnxVTSk3YfRzpejE/bEMzhVtGMW3O7gOE9xONmmTGxU7GJDbG jPHFYnKejj7MpbSq+wjkS7Sr9LB3fr/fxnlLffhAbDpHANCXUN31zQl7GeSUVPxOTLRj ARUpkIaIk7oWb3aHLEwLzWNPxwW3ptfOv63G0O0lR7h6KzjBKHIuWjntLi/ML5IhB09c BDn95QPbNDLdg1CrPeh0KKraz2akmhmTy5HFsAIKh23LoxSlO0DFguyQT0XH6ARonn2k kkpQBYL5ebuxmyX3saTzZJ+1JbwHbA8cCksYpBsJ6fCpwStO4JlQG8zfcrDq//YHStyJ wnkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719263074; x=1719867874; 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=t9CfDVGOz6KTLC+evnRlVUFAOKx9+mHwstEfz5WLmCk=; b=qsjC5jPV4pRUiQChlmffb6V7YCKuqZDIQ43sMf/syEtqgzdyTN2zvFD2Cz7t6FyEtD YngfiFEt7YCLfyJMpN+MJ7gOj6TFBE3rU4y+T3SlT9PFm89FOqfpYjZ3h9eRGHZA9ZHU Bz6Nk0XmTiSrD5TZBlvgCIgoIePW+dvERIxqIa+qcGiMoEyAJGykVb+mrw6+4whvUVmc a2MhieKO00br6tjeSW21+9YPLkELDE1AgyEHhz0Gzi5jVfaUkGWSZMF7rqaY65gkCj63 d7JbRgB12cNyZjSiNMBIsLZY+g/WlXaesqIHD38fk176m0bs4O/Wh2CoZhOlPXqnKl0n pUXA== X-Forwarded-Encrypted: i=1; AJvYcCXaRV5F0e+vyglMqGN6Jt8CyXUhqpd3pSLApCFG8U6/x6S/5TAlYVWoGGPvk2b0stRr4x4Nenl0TXBLaUiQMfi7rCBycQ== X-Gm-Message-State: AOJu0YyCcXtdJpF7bi8izO+/epthfBfBXK++JO/zyyWfAgvDnDskXUGc rQT+7zflWlwgqNUrz5B4oQ+mtD3Adtj/1RFUWtauBTRsQ9lN+VYa X-Google-Smtp-Source: AGHT+IErsodt/sExvpD1Q/TI57TmQZ99Uhm2HqCpQW3VUuPa/IgqKfzlbefIIbBsArvxXb/K8ZWFLA== X-Received: by 2002:a05:600c:2d05:b0:421:82ed:28d1 with SMTP id 5b1f17b1804b1-4248cc73e25mr38207885e9.41.1719263073694; Mon, 24 Jun 2024 14:04:33 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-3664178f5f7sm10968228f8f.19.2024.06.24.14.04.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Jun 2024 14:04:33 -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 , John Crispin , This contributor prefers not to receive mails , Mason Huo , Heinrich Schuchardt , Christian Marangi , Sergei Antonov , Sumit Garg , Simon Glass , Leo Yu-Chi Liang , Neil Armstrong , Mark Kettenis , Marek Vasut , Alexey Romanov , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v4 05/14] i2c: mediatek: add support for optional arb and pmic clock Date: Mon, 24 Jun 2024 23:03:31 +0200 Message-ID: <20240624210418.19324-6-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20240624210418.19324-1-ansuelsmth@gmail.com> References: <20240624210418.19324-1-ansuelsmth@gmail.com> MIME-Version: 1.0 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 --- 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 Mon Jun 24 21:03:32 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1951752 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=F5tBWN82; 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 4W7L8b4hYGz1ydW for ; Tue, 25 Jun 2024 07:05:35 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 1054C88548; Mon, 24 Jun 2024 23:04: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=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="F5tBWN82"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 23E818852D; Mon, 24 Jun 2024 23:04:38 +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 autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com [IPv6:2a00:1450:4864:20::32c]) (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 C26E188568 for ; Mon, 24 Jun 2024 23:04:35 +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-x32c.google.com with SMTP id 5b1f17b1804b1-424720e73e0so42678465e9.0 for ; Mon, 24 Jun 2024 14:04:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719263075; x=1719867875; 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=SgKyKJvRxrzHLDzZymGyPACBzjoYAUijZTCxAgiEaAs=; b=F5tBWN823vlbSIepcZcdKXUA6gwmVnXjKfc5ILHcjxeXBrYG5HemZt8aC03BAeDqir X4EhJ5T2RcaGW8VnPkxLi+ET/y+rEtfJ/O2Oo1UdfNVFbz/XbOvAp9pDFKGIS186/Np2 HgjedvW4JfQuUhTz3OamTPHVIoYVCO1eK+57w8oeFxKyhHSMEj9LQo5rgLeHxFPGXNxY JRZhIP9k+MocTv6bWYnDbUnUxGfV+KbihQPeVa5v7zRQ03u8Js0q1oN1TS7sSUgJkA0J QjNuc+HMKNUzVwVfRdVOxJDHkcDlplvaxXxH+LjLjkqlortpJSEtDvo9InyiSKpCiuXW XR6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719263075; x=1719867875; 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=SgKyKJvRxrzHLDzZymGyPACBzjoYAUijZTCxAgiEaAs=; b=kl8JbiERdfEoiBKlILdzrBVmTJPCLe65juJ6MVEyiLlmoSxI4d2TKWWFhzwkv4d6Kn sFX0OV9cZfffmYRx5aEqG+/UiM0cgk2lSMk57Elz1q/SCcQOzhtw5AklKgSQQ4mzXPNC mYPhxIGD8yHHo7qqb/gcqQhbB65SdYy5zQ3FdodS53VA9bJgL+w6rfRvTJHTu/2btqbt uO/8Af8BbEc0c9QoWf6eXYTg9jaeMHozCIT1a5G6XIKv9wEBEozqaActZkRM9vrfVEia C+RdvBrOtU3Py2glmdhimsafuXYbFanCs5dyPgxgVpaYCj8yiZm/JvE0cOxxUzoys6PG 6qTg== X-Forwarded-Encrypted: i=1; AJvYcCWhxGMQ1bKQ3q11ypVmpA5i6MlaMF++Y5pST+zk9de4s7uDOC1T7Ewma2siHtyCbXDfZGeS8D7rPeRGpmu/6uqzFjkffQ== X-Gm-Message-State: AOJu0YxbHoithhMPMlYAqGmSW4k/ATEm1GMOrB2yjQZ/KvZcsANFBdVI uTLQQxYJ6uzQGpdXZBXhyP4xGXUHeXuXbxkOgJ5tHt4YLI9eJxHY X-Google-Smtp-Source: AGHT+IFeCrlvSZy0jOJtK/w2tBHmubLkEUZOebIpB6Forzf7s7No+7ZXfFrl1Y5qglrE2EPhLeihGw== X-Received: by 2002:a5d:4712:0:b0:35f:1128:2514 with SMTP id ffacd0b85a97d-366e7a0fc96mr3631284f8f.32.1719263075268; Mon, 24 Jun 2024 14:04:35 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-3664178f5f7sm10968228f8f.19.2024.06.24.14.04.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Jun 2024 14:04:34 -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 , John Crispin , This contributor prefers not to receive mails , Mason Huo , Heinrich Schuchardt , Christian Marangi , Sergei Antonov , Sumit Garg , Simon Glass , Leo Yu-Chi Liang , Neil Armstrong , Mark Kettenis , Marek Vasut , Alexey Romanov , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v4 06/14] serial: mediatek: add support for bus clock and enable it Date: Mon, 24 Jun 2024 23:03:32 +0200 Message-ID: <20240624210418.19324-7-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20240624210418.19324-1-ansuelsmth@gmail.com> References: <20240624210418.19324-1-ansuelsmth@gmail.com> MIME-Version: 1.0 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 3f569c68f22..78e8d9dc735 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 Mon Jun 24 21:03:33 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1951753 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=lvd8yCPr; 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 4W7L8n233vz1ydW for ; Tue, 25 Jun 2024 07:05:45 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 6EBD488572; Mon, 24 Jun 2024 23:04: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=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="lvd8yCPr"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 096D2883BA; Mon, 24 Jun 2024 23:04:40 +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 autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) (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 8EFDE883CD for ; Mon, 24 Jun 2024 23:04: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=ansuelsmth@gmail.com Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-366dcd21604so1871437f8f.1 for ; Mon, 24 Jun 2024 14:04:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719263077; x=1719867877; 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=miNq8XFDRuPODlqFaOzenAWCqypZu8MeoDwiE2f6svo=; b=lvd8yCPrrBVKMnwc7yiKllo+11m4dl2w5i7uZUNW692nxdniF2GC8qyL1JekmxDrqp 8xS8qYfIRnTLOWouXr+b89WSJX6HjZqoqKAQuEjzbdGBDLdwUQJDrPtfcja9L7RjW75S AvQg5Sw5LeIjnwUyowtEFhk80788ADklNPNtUl/zw1hXwIJQIUuPt2+93bq63/OM+3gx 4zmlx/r3X3oAxz4fcEH9b5CvxTuRhgBPGIugizXcRSHkkHyX/g/hlhDnUgAP4K8yqP8A vBmmEGSU8EGftkq9DDL7lKAb6A+GbSsmSxsUWy4+RSPSCFMdp0iMP4Hsmuc2haA68EiE Q7/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719263077; x=1719867877; 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=miNq8XFDRuPODlqFaOzenAWCqypZu8MeoDwiE2f6svo=; b=AhQj4m4uztdhxtFGihR6fmwSNYceDKS8LkkozgyX4TuKx6DUIwQzm/OOAAJkW5bRRL 4MIu1vKPhNCeriKTb7XfoZswXUdGwEOq9yY483fKR3PvaPo9KD50tjX4RV9cxvk9Uhm0 DspAFZpFCV8z9KYHxb3hMaVs3UKYUJhzB2pH00HgqGFeyxnuP3oaH2n4r/rgaonKgDnT waC00hH6cjwoofz+NilxcInNhV0M1+HX6yjY4IRzO2OKle3hsbiZZmAeG6IYSni7DfAH 46c+0VoMt7rCQAtRT+9NC2W6Gb6EDpnZqtFu/2OBohTYCSaebMKdhCmntcAJqlFbQS4E CYbw== X-Forwarded-Encrypted: i=1; AJvYcCVm7qQWT6KL4YzLnPA7fc9qh7cpmYP4vhI3iFEzItlCf7q1jSIjSPkabwVAtNubMRWPhjYCTuEJSWyNF+t5bYiVyLagpg== X-Gm-Message-State: AOJu0YwJpkjB4C71JiZuXK1eeNNaVH9HG6Fj5wjcg7t8PLJSRzTNkWgs jSuTkxmvbVUBM62cKiZ3WKZ9KNaDaqflwgcGWGhE+KV+swJ7Kpms X-Google-Smtp-Source: AGHT+IGCn8lo1/xLXn/5jWfaQQ89p8FV6xQy7x0LfXBVZkkuY8CfRJ3XK4lhkWzx+00BUkVI9OHuYw== X-Received: by 2002:a05:6000:2ab:b0:366:ec2f:dbd3 with SMTP id ffacd0b85a97d-366ec2fdc08mr4622925f8f.47.1719263076940; Mon, 24 Jun 2024 14:04:36 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-3664178f5f7sm10968228f8f.19.2024.06.24.14.04.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Jun 2024 14:04:36 -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 , John Crispin , This contributor prefers not to receive mails , Mason Huo , Heinrich Schuchardt , Christian Marangi , Sergei Antonov , Sumit Garg , Simon Glass , Leo Yu-Chi Liang , Neil Armstrong , Mark Kettenis , Marek Vasut , Alexey Romanov , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v4 07/14] serial: mediatek: add special handling for highspeed and linux compat Date: Mon, 24 Jun 2024 23:03:33 +0200 Message-ID: <20240624210418.19324-8-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20240624210418.19324-1-ansuelsmth@gmail.com> References: <20240624210418.19324-1-ansuelsmth@gmail.com> MIME-Version: 1.0 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 | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/serial/serial_mtk.c b/drivers/serial/serial_mtk.c index 78e8d9dc735..becf9317076 100644 --- a/drivers/serial/serial_mtk.c +++ b/drivers/serial/serial_mtk.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -80,6 +81,7 @@ struct mtk_serial_regs { * @fixed_clk_rate: Fallback fixed baud clock rate if baud clock * device is not specified * @force_highspeed: Force using high-speed mode + * @upstream_highspeed_logic: Apply upstream high-speed logic */ struct mtk_serial_priv { struct mtk_serial_regs __iomem *regs; @@ -87,6 +89,7 @@ struct mtk_serial_priv { struct clk clk_bus; u32 fixed_clk_rate; bool force_highspeed; + bool upstream_highspeed_logic; }; static void _mtk_serial_setbrg(struct mtk_serial_priv *priv, int baud, @@ -113,7 +116,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 || + (priv->upstream_highspeed_logic && baud >= 115200)) goto use_hs3; if (baud <= 115200) { @@ -259,6 +267,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"); + priv->upstream_highspeed_logic = + device_is_compatible(dev, "mediatek,mt6577-uart"); return 0; } From patchwork Mon Jun 24 21:03:34 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1951754 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=joi3AnLM; 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 4W7L8y4RDdz1ydW for ; Tue, 25 Jun 2024 07:05:54 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id DEE9288571; Mon, 24 Jun 2024 23:04:44 +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="joi3AnLM"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 714968856F; Mon, 24 Jun 2024 23:04:41 +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 autolearn=ham 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 1DA8188569 for ; Mon, 24 Jun 2024 23:04: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-x32f.google.com with SMTP id 5b1f17b1804b1-421cd1e5f93so36771135e9.0 for ; Mon, 24 Jun 2024 14:04:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719263078; x=1719867878; 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=yQ9ptLzwgAWUjSdARsAxXvjz5j8RCBFJlrszRabnvWs=; b=joi3AnLM9OVr7yRf+lVdvKqa5vAj6Rl86z6xwj+KYXvsaW43pn8iBFdQlXhzAR/l5w m1EmjnJdH2GrDQGQYpY9MWnQQL4L1rwkw+f8k9eFp7CljAekEYXqvffT2nT2fMZqCrbK gTRcZKqYvW/T/sEp1w6tmZr5RqW4iSfEy4kiFh/2/pxwkc1w9xz+MWy39o5Q9ZJd8+Pl kU5bsCAMFrvFQWjANN4SElrrilX9fvU7EjkhvsQx3xW0NZLCEodnkl4Wg8idh0QojG5x PBycTwfLHEMCE1jAd8Ul8zFzIQI7s5NSiAYzV+rHzgUVoc8X0y5I4C+Q+dUo+eaBTKqd wMrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719263078; x=1719867878; 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=yQ9ptLzwgAWUjSdARsAxXvjz5j8RCBFJlrszRabnvWs=; b=haCrYyUyhOyAYEfGMjh10fhNbkpq9fAVZBig4Y/soCB9maKzohFKTG9Oh13TGueMYb p9vmV3+ud3zlo9TaP1diWYnBTK/sSbdYBuMwkdQbZzranbl/BvvKcrZHr6d2thrzc8ZW 4aGImeQY0onA7FhZ0mlxQt2beVj71zzXSms4mc4YKoU3RXmrOs+VUrOqXHZfaTKwQPUL 1Dx+kk5uVOrh+8kB44fAIB90LuOCpg965bJEmn+1j7Ws/A8iJv6UACyhqyaB7+vWQA2V oj5L90GkexH1uUb81fA0d5wfn7yCwmWgz99mbX/cEms37Fipce9XtsAyIHVeNuRwf/av zjrw== X-Forwarded-Encrypted: i=1; AJvYcCWlzBiMpROeoh9AKBROk1hjC/PihC5LFjH/eokysJ0eTo1ehUv+2AWJGUGJsk43U0rOMxaiE5OYtnIalXIQotX7JJJjnA== X-Gm-Message-State: AOJu0Yw6N5paCrAX5Cn2ldAr16emHL2aounu1IzYic/VWAQZ/KvILA+2 QkDA4I8JsZuhTArBLGz6wDbH3xxw0lqaBH6LKJyGkmfGVoUWllQY X-Google-Smtp-Source: AGHT+IEWcA08/sNmRERDTnuRH8Cm3jwYrNBJ7OGCDRT3gdyXQlZF3kbiq4pcwqNeY2kwzt7aQqoAZw== X-Received: by 2002:a05:6000:371:b0:362:f9c2:f76f with SMTP id ffacd0b85a97d-366e962957emr4307487f8f.60.1719263078478; Mon, 24 Jun 2024 14:04:38 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-3664178f5f7sm10968228f8f.19.2024.06.24.14.04.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Jun 2024 14:04:38 -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 , John Crispin , This contributor prefers not to receive mails , Mason Huo , Heinrich Schuchardt , Christian Marangi , Sergei Antonov , Sumit Garg , Simon Glass , Leo Yu-Chi Liang , Neil Armstrong , Mark Kettenis , Marek Vasut , Alexey Romanov , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v4 08/14] mmc: mediatek: add support for upstream linux clock and property Date: Mon, 24 Jun 2024 23:03:34 +0200 Message-ID: <20240624210418.19324-9-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20240624210418.19324-1-ansuelsmth@gmail.com> References: <20240624210418.19324-1-ansuelsmth@gmail.com> MIME-Version: 1.0 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 | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/drivers/mmc/mtk-sd.c b/drivers/mmc/mtk-sd.c index 3a9258255a7..ebd72178b59 100644 --- a/drivers/mmc/mtk-sd.c +++ b/drivers/mmc/mtk-sd.c @@ -335,6 +335,7 @@ struct msdc_compatible { bool enhance_rx; bool builtin_pad_ctrl; bool default_pad_dly; + bool use_internal_cd; }; struct msdc_delay_phase { @@ -365,6 +366,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 */ @@ -1637,6 +1642,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) @@ -1650,6 +1660,9 @@ static int msdc_drv_probe(struct udevice *dev) host->dev_comp = (struct msdc_compatible *)dev_get_driver_data(dev); + if (host->dev_comp->use_internal_cd) + host->builtin_cd = 1; + host->src_clk_freq = clk_get_rate(&host->src_clk); if (host->dev_comp->clk_div_bits == 8) @@ -1715,18 +1728,31 @@ 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); + 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->cd_active_high = dev_read_bool(dev, "cd-active-high"); @@ -1775,6 +1801,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 = { @@ -1805,7 +1832,7 @@ static const struct msdc_compatible mt7623_compat = { .data_tune = true, .busy_check = false, .stop_clk_fix = false, - .enhance_rx = false + .enhance_rx = false, }; static const struct msdc_compatible mt7986_compat = { From patchwork Mon Jun 24 21:03:35 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1951755 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=EZfiHzTO; 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 4W7L9840rpz1ydW for ; Tue, 25 Jun 2024 07:06:04 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 531608858B; Mon, 24 Jun 2024 23:04: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=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="EZfiHzTO"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id CAE03883CD; Mon, 24 Jun 2024 23:04:42 +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 autolearn=unavailable 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 A369188405 for ; Mon, 24 Jun 2024 23:04: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=ansuelsmth@gmail.com Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-4249196a361so11247475e9.0 for ; Mon, 24 Jun 2024 14:04:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719263080; x=1719867880; 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=0HtW2upwI2Gp/9gEF71H/9ktujLXrI6rcMk4+DF/9WM=; b=EZfiHzTO7sH0Ajlo5LILeJy9rnENpG6jGdR9ivTB8pjIdA74O9hlO1goONtyJM/sEt AlVw1PBJFpaJhX7pB7bGH5xnLF73I3WvrlPFSa0vqQ2/DmKupLXuj0xRQSmn6k3t0be4 A/9AiWpJ3YpoakCvrlubYSpYM2lMk4V/QE5hS6VKhF5TLPuF/gneHypJHVrY7QE2BTPn hyLINSfA/OPBj0vWskSF+FWA9kolDEYeFjIIkCgoRhQwfwKl/vRzNCZFJuG6+Am5oFye nKRHhMsnjz1nPjYO/zG/5fqm+e19JN/IEBDLkZeN+wOsF4cR2ffnc8xk0V+SXrVUk9qz VWBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719263080; x=1719867880; 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=0HtW2upwI2Gp/9gEF71H/9ktujLXrI6rcMk4+DF/9WM=; b=LrO8VugMEKYniaLT/lq9tJTqZzioj5vEv7x9U+NMWNRTKEkDrNaHN/3eHT/EHML7yz cxVvRK9EGl/ecfdUv/14RDdpwITlK/VRqz+zy3ejRPIp+WAQhrrEyW2dtx/2W5HknVaV 4WaLXDfZA9pfQ6uWDKGsVzGm48Eu1a4fGXMN4kfp349BMIo5aj7uMLSUFLVHfBiPjSHR DWFdwvUG/h0K/V4iOB+J0jiVsfQYuNmyjAIALnOD+19Rmz7bww3wovaW93PKYHgqrcrH voPGhu1Ce9EtJ/mkKVTQMR9O9j+ukC7Cs8mn/2epNRz30LT7MYFjdNXcD3RPrRI9hz+m UFGQ== X-Forwarded-Encrypted: i=1; AJvYcCXcWC4EFpnQ5NhHsN6mYSF6+P5y4DuRb5X1YEtvdgQlweiaDsE+v8zOS/kjfQYvalxaGko+cPZ/G/iPqSs5lddTzu6ubw== X-Gm-Message-State: AOJu0Yzt9I87loX1QxQg4oTTTZvwb3QLVmbv89aqyWqSqP6OzIijbbCi bu15Hp+9XmSxr7553rzmLBmCtkwOCmk8keHXv2gWY/JdZz6N4qpR X-Google-Smtp-Source: AGHT+IGZFoWkUtbhEZKAhYs9ThmG3KgwzIf0BlPecmeT2IVx6SJKWIW7YTjfNzzHjyRTDh84GUGp2A== X-Received: by 2002:a5d:6daa:0:b0:363:b8fc:449b with SMTP id ffacd0b85a97d-366e9529da3mr4480059f8f.28.1719263080035; Mon, 24 Jun 2024 14:04:40 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-3664178f5f7sm10968228f8f.19.2024.06.24.14.04.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Jun 2024 14:04: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 , John Crispin , This contributor prefers not to receive mails , Mason Huo , Heinrich Schuchardt , Christian Marangi , Sergei Antonov , Sumit Garg , Simon Glass , Leo Yu-Chi Liang , Neil Armstrong , Mark Kettenis , Marek Vasut , Alexey Romanov , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v4 09/14] clk: mediatek: mt7981: support alternative compatible for fixed-plls Date: Mon, 24 Jun 2024 23:03:35 +0200 Message-ID: <20240624210418.19324-10-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20240624210418.19324-1-ansuelsmth@gmail.com> References: <20240624210418.19324-1-ansuelsmth@gmail.com> MIME-Version: 1.0 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 Mon Jun 24 21:03:36 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1951756 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=Gm6IIyBA; 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 4W7L9L2b8Mz1ydW for ; Tue, 25 Jun 2024 07:06:14 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id B2822884E5; Mon, 24 Jun 2024 23:04: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=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="Gm6IIyBA"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 72FCF88571; Mon, 24 Jun 2024 23:04: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 autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com [IPv6:2a00:1450:4864:20::42a]) (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 4809D8856F for ; Mon, 24 Jun 2024 23:04:42 +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-x42a.google.com with SMTP id ffacd0b85a97d-3636c572257so4165026f8f.0 for ; Mon, 24 Jun 2024 14:04:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719263081; x=1719867881; 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=w4Z6k25VmjJ/5gBe1HIH9Q6FQ1XcQCG/0govOuSh6MI=; b=Gm6IIyBAXXWW6tnOxXiyzqUmdSWv29+zVLDeTeuBFN1GboQq9V1QM5Y7ZvCsjtCnSF m7J4pkyUD8o7qwjJPy5IGX89oDnRpj5b/z+YmmEcikREtcnX+4R/T3FDNjNLnroi6nwQ TnvW461tA12r96kYcQTn6iM3qmUKMHw8l8UqBA/fRQyrtGscqeKPPwrn4ox5DJMzXe3Z 4Jq/3buL512zOkOx/rLNH+bFBcrnGpRrwuDErKDADlz0YsDPYE+rfRR23aHLA5Br42Vi hGCIoeJk44r3mN00VGoFZTlhMFXGSbbdnXJm3LeWcu41vIzaGmFfUHj53vjeGkUizQC+ 4VCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719263081; x=1719867881; 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=w4Z6k25VmjJ/5gBe1HIH9Q6FQ1XcQCG/0govOuSh6MI=; b=Oz6r1+aovxL6OVmbPjoa9gssjOK5mOgQHiTXMki+Q4i4EbKh4RiHpPM9Z4FeUZF889 As4AD5ZkzV0iV5CtTI+phdU3y5NJMnr+w3ftIEyatVFY6aKMMGO/SsWUJnqU30Qms0F9 NSzfUzw63aSef1Z/dX9JVqid86627eHpDI2pKZfYRIS6qLXoTaJFj6X6GW2B2dtRwcBn xHV1jtSKZ6IIuCEFMAnRpn7SPCwaFbGanUhgdlF94sxt8lj9OQplqjvWUwXmpKKRea+P SrN3f+Yesqz4PATDxnwPcZXr0IWR8QGKtG078XqJjQ4pxMHHntljSS98fbZtdhrdnr+B MjKQ== X-Forwarded-Encrypted: i=1; AJvYcCXsDlbMbesSP65JpRPh0qAliyO0y0CCKMLikaQclXVfzoZ3JnPKquaMD3y7sfYdXqWc4Bc3bJV5KxpjjZKNXJFYNFlT9w== X-Gm-Message-State: AOJu0YzZU+AKIC8uyeuPC8OrYR+pPVB8iXJ1SBRbON39X01M085vp5af klxbvBsWG9mmlLrkH2cii593CDeaPI5SmcQ7YsQwiAsxCL6w1gzG X-Google-Smtp-Source: AGHT+IG8a1ZxmiU3g5rTDZdX3RBZCGaPe3ghStjgzV+kBFHJd04JK0bKDtxEvvC3fSz5BGj1mLmepg== X-Received: by 2002:a5d:6c6e:0:b0:365:e76b:e914 with SMTP id ffacd0b85a97d-366e95eaf03mr5831070f8f.43.1719263081523; Mon, 24 Jun 2024 14:04: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 ffacd0b85a97d-3664178f5f7sm10968228f8f.19.2024.06.24.14.04.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Jun 2024 14:04:41 -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 , John Crispin , This contributor prefers not to receive mails , Mason Huo , Heinrich Schuchardt , Christian Marangi , Sergei Antonov , Sumit Garg , Simon Glass , Leo Yu-Chi Liang , Neil Armstrong , Mark Kettenis , Marek Vasut , Alexey Romanov , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v4 10/14] pinctrl: mediatek: add support for gpio-controller property in root node Date: Mon, 24 Jun 2024 23:03:36 +0200 Message-ID: <20240624210418.19324-11-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20240624210418.19324-1-ansuelsmth@gmail.com> References: <20240624210418.19324-1-ansuelsmth@gmail.com> MIME-Version: 1.0 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 37fc28bb779..ede3959c94f 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c +++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c @@ -761,6 +761,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(parent, "gpio-controller")) { + node = dev_ofnode(parent); + goto bind; + } + ret = -ENOENT; dev_for_each_subnode(node, parent) if (ofnode_read_bool(node, "gpio-controller")) { @@ -771,6 +780,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 Mon Jun 24 21:03:37 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1951757 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=DLfU5cI8; 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 4W7L9X0RCDz1ydW for ; Tue, 25 Jun 2024 07:06:24 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 2072588580; Mon, 24 Jun 2024 23:04: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=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="DLfU5cI8"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id B7E888859F; Mon, 24 Jun 2024 23:04: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 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 C943D88405 for ; Mon, 24 Jun 2024 23:04: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-x332.google.com with SMTP id 5b1f17b1804b1-421cd1e5f93so36771595e9.0 for ; Mon, 24 Jun 2024 14:04:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719263083; x=1719867883; 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=p9v9DjB0A3JjR41lueuEJ6VMkIeEOYx0CJAcYGaKU9c=; b=DLfU5cI8eMTie4P+KFwH6U5MgLpE3PHdRNzttlbCdTBq8WBukWSSf2fiIIJmoco1RU o0bjWBKOhSpv/Zq2sKz9hUoKgmiNs+Q5K92r3eCgyBGV8VhSEgw+bdqOrAn65HXAIFcn 9oUcSA1e09OFlmVO7viG6laYCZHq/9bmjrqbTnO1u4sRsbchBbPJZphrj8FcVQoiqP9n DafnR9+j3LM/OovKlTyQy2CyIZjWs+KItd6zUGq9y03ttErLeoF9UbuY1dQPoUtgPBHA uDV28I4hOU9Fw6Da8qABNvrC5jbTPsRK+Rwox2nMxJ4PoIb0OgexvBytsFr+tdZHQbPb 1oVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719263083; x=1719867883; 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=p9v9DjB0A3JjR41lueuEJ6VMkIeEOYx0CJAcYGaKU9c=; b=ft4AP3q0HBAGMCVdfCjq+lscyGFjNLMY13DVKGAE2CI8oZNxY/6TaAeuoFEuXZLaZK spUBi5IMt1iOqa4Vq3joHYBfathyPj5D4e43juJjGgW7WnDdaxt9IXuRd5HhE4o/Y90h J586mcC+JDx4eb+kRSh7gCeUz8fm17GvcKuO1jS5WIxF+mMs/9G3OoAzLFBivkJUVR+S h+JdHZh1lKMZ9szp4c2q01HxNuaG0qLUarci2NocLXBzv0NKK4zZseERmaxbnJu6Ws1X gpUBO0ccjyZ6DySXQJa3h8isHhxFeqfIF6t0AaNi2z6KG0vUoU9QsgVhp7IHSscrcd8I aKAA== X-Forwarded-Encrypted: i=1; AJvYcCWArdMazOHIPK+9Zk74daSW0voVjuoLY/G7/b7wTEmxgGvRs93Vh44QSMJBl1Dje7sK+zs4SmpxsvN/2ijt9fzSijw1Yw== X-Gm-Message-State: AOJu0Yx1PhgsmZ8wuomgduQe/fivSZwG8+sa04hK5Jbq5IbZx/fLNxV3 PPPnE49wLpFl6sPJqt0zI7RL/LrQZRIDjBIytN657PMjDu5+iul/ X-Google-Smtp-Source: AGHT+IEdll3ZIQ4UlK4nyoJqHel8df4FI0sY9fsgaskL4AV57MvlzxnQpreDjmV0eHHt3ApD0mrIFQ== X-Received: by 2002:a05:600c:6b19:b0:424:918c:3f5b with SMTP id 5b1f17b1804b1-424918c6d91mr28685895e9.29.1719263083214; Mon, 24 Jun 2024 14:04:43 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-3664178f5f7sm10968228f8f.19.2024.06.24.14.04.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Jun 2024 14:04: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 , John Crispin , This contributor prefers not to receive mails , Mason Huo , Heinrich Schuchardt , Christian Marangi , Sergei Antonov , Sumit Garg , Simon Glass , Leo Yu-Chi Liang , Neil Armstrong , Mark Kettenis , Marek Vasut , Alexey Romanov , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v4 11/14] pinctrl: mediatek: mt7981: init device before relocation Date: Mon, 24 Jun 2024 23:03:37 +0200 Message-ID: <20240624210418.19324-12-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20240624210418.19324-1-ansuelsmth@gmail.com> References: <20240624210418.19324-1-ansuelsmth@gmail.com> MIME-Version: 1.0 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, }; From patchwork Mon Jun 24 21:03:38 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1951758 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=kEGVKmqH; 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 4W7L9k5NwWz1ydW for ; Tue, 25 Jun 2024 07:06:34 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 943A888405; Mon, 24 Jun 2024 23:04:49 +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="kEGVKmqH"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id C18C6885A4; Mon, 24 Jun 2024 23:04: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 autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) (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 5976888590 for ; Mon, 24 Jun 2024 23:04: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-wr1-x431.google.com with SMTP id ffacd0b85a97d-36279cf6414so3854007f8f.3 for ; Mon, 24 Jun 2024 14:04:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719263085; x=1719867885; 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=XNqKnoO1M7Vvxa76ER/5BqBkhfciKUzVHEdydKoIgrI=; b=kEGVKmqH04Of3jw0W1dxQmIok4duNiTv1WVUT4SObGr0NwLHw7OQdPAhKMRC8/+7CO UirpAS39Wz1dCn9GORBqJu7n7Vm7vnJTwSnxEYlCaXdr2hv1IQtq1C7AOLjWnh0F152k bFHUf3m92VpXU/FsT1NnRgYKwV0I8JsQb9ue0ruWMakdQdk7L3Nov/GI7cBm1d6Vbra3 XjkubNpc6pvBBFyrzuAwsYvIuTAxfribBWZbHw9nEolOno8eP/CZrq2rMQM1880mmo7E 4ro1vYiVaGc7/25AADdKEfjDtG5FoH4IFQ0hcwpVaRGfPJH3AqcQZEeHwEnmSRwYHlmO q81Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719263085; x=1719867885; 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=XNqKnoO1M7Vvxa76ER/5BqBkhfciKUzVHEdydKoIgrI=; b=J8jYuNzubIsAKc3xMPMAYiexUwyN/QsYURErzy08hTeEN6ZbYXDAKJ2QzfClkFeukN R653BZclCnvCy5J0JNLVzVTFIKVje646IdQlPGs3uawLOIft+S9FBXVS9HFyN9j3aYVF e/JfACuSwvi/kdSBCjBbBq25yPWZv6EGYk2/S1IWWHkPQVLs6p3txIhCG8BGuLJkc/Dl CXPRAuASb3uWdg35M1Adu3ZGI1o6qusgqvsYOKOf5h4bp7bQANKub95eCRhMwyTK0WlZ ZBfNLdpQNQgNCG6LLI+Es6CWxid6wEZ206rdFKqlgJlubvG7efjFCYbBBJCddKFTaWqb fH4Q== X-Forwarded-Encrypted: i=1; AJvYcCUVNtLy3xpahbqdQPvN9xgPnMYjs7kSh9AaYledPnRM44NT1tHlEsi4XF3YQgYMx4+dD8w3vtUcRBCMiX4RLE4if3DtBg== X-Gm-Message-State: AOJu0YxVTIwNeaOKg63tfcna+wzgFZPebJCEycfpzALDe2boGxb5eLCy /35i5lLMLIuRFvanfY6VzS97+EzBhY7cQ3KNbV8wgkV03wLqIK9t X-Google-Smtp-Source: AGHT+IFjQs6WtX2SWx45UU3FOmc7+43R9g3mb4/0jLcKmpHOI+9d6m2dYPmL4WcSZxmeoSyZIZL2iw== X-Received: by 2002:adf:f7d2:0:b0:366:ddc2:a14a with SMTP id ffacd0b85a97d-366e94d6a97mr2914196f8f.40.1719263084735; Mon, 24 Jun 2024 14:04: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 ffacd0b85a97d-3664178f5f7sm10968228f8f.19.2024.06.24.14.04.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Jun 2024 14:04: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 , John Crispin , This contributor prefers not to receive mails , Mason Huo , Heinrich Schuchardt , Christian Marangi , Sergei Antonov , Sumit Garg , Simon Glass , Leo Yu-Chi Liang , Neil Armstrong , Mark Kettenis , Marek Vasut , Alexey Romanov , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v4 12/14] pci: mediatek: make pcie-phy optional for gen3 Date: Mon, 24 Jun 2024 23:03:38 +0200 Message-ID: <20240624210418.19324-13-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20240624210418.19324-1-ansuelsmth@gmail.com> References: <20240624210418.19324-1-ansuelsmth@gmail.com> MIME-Version: 1.0 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 Set pcie-phy optional for PCIe gen3. MT7988 doesn't require it and making it mandatory prevent the driver to correctly probe. Signed-off-by: Christian Marangi --- drivers/pci/pcie_mediatek_gen3.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/drivers/pci/pcie_mediatek_gen3.c b/drivers/pci/pcie_mediatek_gen3.c index 673813b8b75..0149edae0bf 100644 --- a/drivers/pci/pcie_mediatek_gen3.c +++ b/drivers/pci/pcie_mediatek_gen3.c @@ -284,9 +284,8 @@ static int mtk_pcie_power_on(struct udevice *dev) pcie->priv = dev; - err = generic_phy_get_by_name(dev, "pcie-phy", &pcie->phy); - if (err) - return err; + /* pcie-phy is optional (mt7988 doesn't need it) */ + generic_phy_get_by_name(dev, "pcie-phy", &pcie->phy); /* * Upstream linux kernel devine these clock without clock-names @@ -308,13 +307,15 @@ static int mtk_pcie_power_on(struct udevice *dev) if (err) return err; - err = generic_phy_init(&pcie->phy); - if (err) - return err; + if (pcie->phy.dev) { + err = generic_phy_init(&pcie->phy); + if (err) + return err; - err = generic_phy_power_on(&pcie->phy); - if (err) - goto err_phy_on; + err = generic_phy_power_on(&pcie->phy); + if (err) + goto err_phy_on; + } err = clk_enable(&pcie->pl_250m_ck); if (err) @@ -348,7 +349,8 @@ err_clk_tl_26m: err_clk_pl_250m: clk_disable(&pcie->pl_250m_ck); err_phy_on: - generic_phy_exit(&pcie->phy); + if (pcie->phy.dev) + generic_phy_exit(&pcie->phy); return err; } From patchwork Mon Jun 24 21:03:39 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1951759 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=awmd8F82; 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 4W7L9x2T9sz1ydW for ; Tue, 25 Jun 2024 07:06:45 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 01416883CD; Mon, 24 Jun 2024 23:04: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=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="awmd8F82"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 67BE88859A; Mon, 24 Jun 2024 23:04:49 +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 autolearn=ham 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 DD9AE884B2 for ; Mon, 24 Jun 2024 23:04:46 +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-362b32fbb3bso3238454f8f.2 for ; Mon, 24 Jun 2024 14:04:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719263086; x=1719867886; 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=ouaA9glpsw4lLaDiPHKMwtMgf9xQnvqTg2ZrILZg59k=; b=awmd8F82kYvu+1iCJVC31m49rrcv6kxxASz7oULlijkNREjQE3wwM1VuJYNFuvta75 ZGgqnPfKBpVPYkvPHU3x7EH48MbE0W+7crd1zzXN8wZ8Je0pHzRsCIIG3QzlQfqy4ppK vqibaHsSTfR0Qaxu2Nm4nseL9h+8USfu42FvJMzXOREs6XlUUQRkdf3qj6Uurqps+koZ rvQC4VGs/kOLr8mq3njFii2TKooF9NJWlqS82nRjCv+TDxYcfKjNr4zVYnkB34zX/942 J+iLiOXcvevI7sVOTSpdSFoTT1hzqKiokZbToIoDod32Du3dLA2N+sOmIOVfjRPWW3Mn lLMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719263086; x=1719867886; 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=ouaA9glpsw4lLaDiPHKMwtMgf9xQnvqTg2ZrILZg59k=; b=J5BuGkhPRcq31tBrsh47oiawy3+3GwTtFCsE1dXAlrFvV7tIyFPsUxK32smAvUtIEb 1SbJ4I6Ock/PJf/qta6gTp/sY8mvsh2vnwsZC4XF7STRypHTozEPtG4uGncGi4V9F4xc mav7RYsMci/U9b/4HvFaFQnqBSTQlDXwPjBSu+xKVdoPA/9ItuuApJWDjCEGhvptoJRQ hueTnPjYYawnIyvCkRgyQLuPi2PVG659jO5dgxS0UwQQQKd0Z1Uc6pXFuGuDeENBMQfu UeGzQZ264wvtakuJ/AOlXHGDoK/Vg/WjNB55nj/srO8HmG0RVU5MNak+KDSZ9PLqL9l2 TzdQ== X-Forwarded-Encrypted: i=1; AJvYcCWwtbEQBvSYFHY7J9aK5q/6rphcAjpuRnvUVPG5qHEWwKWMJEJG4mH6vKbFxcl5UF3pZ0B1QLIdIhOkTCOr150yE1ZmAg== X-Gm-Message-State: AOJu0YxFUfOZo3ghjXSoMkoggBpUCbok8Nw1B5duRW1w7AN0WPfMISdg 8QYPLAWQeuD9b64zeCU1wUc/8XYeP+CBtnYYtrb2yW4Xg8xswOLx X-Google-Smtp-Source: AGHT+IF3b+SXU/1zS9OhMwz6qaG8BpAoP4TChH+UBuHyb0/okE05aaXUfJq+14GlIHEu6Fy3fkeiJg== X-Received: by 2002:adf:f48d:0:b0:35f:2547:6be6 with SMTP id ffacd0b85a97d-366e7a1a128mr4410777f8f.21.1719263086248; Mon, 24 Jun 2024 14:04: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 ffacd0b85a97d-3664178f5f7sm10968228f8f.19.2024.06.24.14.04.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Jun 2024 14:04: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 , John Crispin , This contributor prefers not to receive mails , Mason Huo , Heinrich Schuchardt , Christian Marangi , Sergei Antonov , Sumit Garg , Simon Glass , Leo Yu-Chi Liang , Neil Armstrong , Mark Kettenis , Marek Vasut , Alexey Romanov , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v4 13/14] clk: mediatek: mt7988: support alternative compatible for fixed-plls Date: Mon, 24 Jun 2024 23:03:39 +0200 Message-ID: <20240624210418.19324-14-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20240624210418.19324-1-ansuelsmth@gmail.com> References: <20240624210418.19324-1-ansuelsmth@gmail.com> MIME-Version: 1.0 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,mt7988-apmixedsys. Signed-off-by: Christian Marangi --- drivers/clk/mediatek/clk-mt7988.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/clk/mediatek/clk-mt7988.c b/drivers/clk/mediatek/clk-mt7988.c index 34e7b2d734c..32b04511781 100644 --- a/drivers/clk/mediatek/clk-mt7988.c +++ b/drivers/clk/mediatek/clk-mt7988.c @@ -833,6 +833,7 @@ static const struct mtk_clk_tree mt7988_infracfg_clk_tree = { static const struct udevice_id mt7988_fixed_pll_compat[] = { { .compatible = "mediatek,mt7988-fixed-plls" }, + { .compatible = "mediatek,mt7988-apmixedsys" }, {} }; From patchwork Mon Jun 24 21:03:40 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1951760 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=eTRNGXUr; 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 4W7LB80w9Pz1ydW for ; Tue, 25 Jun 2024 07:06:56 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 5E7248857E; Mon, 24 Jun 2024 23:04: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=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="eTRNGXUr"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 6EE3A883CD; Mon, 24 Jun 2024 23:04:51 +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 autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com [IPv6:2a00:1450:4864:20::32c]) (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 505AD8859C for ; Mon, 24 Jun 2024 23:04: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-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-421757d217aso52893355e9.3 for ; Mon, 24 Jun 2024 14:04:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719263088; x=1719867888; 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=WZO1OdEDiGS/fPncwft2fUYjhIWbeKbsnL/B91ZUqXw=; b=eTRNGXUrcnhgU7G0uhFd/oJRSLwY/T2IMSg1qNQZUlJF7oi9JidMFob5J18QCQmErV Fa+E8WVHlxnopmLjv6keR+SM9xEsW88D5JoJpADa+kRdDxP+IUPWsp+CNO5BFeHx4WY4 L0KOSX5m8DijrzRLiqbxDgAM1pRQpeMv8MryWqXUr/PP+qfzs6i8yoCGZTm9IODzk6Ra Luw4ELSEFv+P/MzHp98HPX8F3Q0TfMDDrkW5TVr7/Ri7R/x1SkV0v+2t5Z/LDjx8zOpX pWxjQAF8z+wKg3PLUt0xU0sXPZACyErAq1UFaz/UFvE/Ivuorq6YyldiaNgnDjOOqeio 9NkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719263088; x=1719867888; 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=WZO1OdEDiGS/fPncwft2fUYjhIWbeKbsnL/B91ZUqXw=; b=rF+1JFSWFb9JkF8Fvd1uGOHxXsg0J63Tw9SXB4jm4A9hOBD0vqIRgE33/cU+Fo1gQt PbYLM2F64GFmRVC3t6F/8+l1HSE+cvwzpjiTnw1c5iXuT2COQfQg0E4rG+CElRsBYM4B 1WTxd1DNV9zdVTMgDF3xG86imsp6au0ASCnAqU0ZlbGRAtve5paXDb6X8G2u+ublK3b6 ySmFz6Ka2wVDNQVs65+wqyn8LWBkTa5v4cPTH7tuUUgV+faUCaidsiEKlOLRDXVwtU/h hrGd/kS0J9iFKHqwxdNud5P6xA66sd1pn+NEReA9w6KiJPtPfcLPqKcIXmZn1ycDQU9V EzKg== X-Forwarded-Encrypted: i=1; AJvYcCWgdhNkO9eQiV8OHrkZVY4c3hdGdFuKdzrsChHW9EcAlWtXTA6ecZB3xbcY1SKNA4jbLNvrsQup+CpYQGwWL2hs19Eq8Q== X-Gm-Message-State: AOJu0Yz7bMZcRe1vvOXNemM4+OeaOcTIAu6lP/qq8Jdx5fCkWOcox+pe hQ2qhoNo7+Nev8f5eSO/pH1kPjdeYqPmiIrcYCVe6NXS53Ak4g5O X-Google-Smtp-Source: AGHT+IFJ92YpLn27QkJ7H2p+0ZghUO0hL0HwBMXf6QSrBHUSTlVXA73u2Y/3Sm91RZ34ooBTFnPI0g== X-Received: by 2002:a05:6000:174a:b0:364:29ce:b14e with SMTP id ffacd0b85a97d-366e96777a8mr4096138f8f.69.1719263087792; Mon, 24 Jun 2024 14:04:47 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-3664178f5f7sm10968228f8f.19.2024.06.24.14.04.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Jun 2024 14:04: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 , John Crispin , This contributor prefers not to receive mails , Mason Huo , Heinrich Schuchardt , Christian Marangi , Sergei Antonov , Sumit Garg , Simon Glass , Leo Yu-Chi Liang , Neil Armstrong , Mark Kettenis , Marek Vasut , Alexey Romanov , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v4 14/14] clk: mediatek: mt7986: support alternative compatible for fixed-plls Date: Mon, 24 Jun 2024 23:03:40 +0200 Message-ID: <20240624210418.19324-15-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20240624210418.19324-1-ansuelsmth@gmail.com> References: <20240624210418.19324-1-ansuelsmth@gmail.com> MIME-Version: 1.0 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,mt7986-apmixedsys. Signed-off-by: Christian Marangi --- drivers/clk/mediatek/clk-mt7986.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/clk/mediatek/clk-mt7986.c b/drivers/clk/mediatek/clk-mt7986.c index b3fa63fc0ab..efc3d4120b7 100644 --- a/drivers/clk/mediatek/clk-mt7986.c +++ b/drivers/clk/mediatek/clk-mt7986.c @@ -533,6 +533,7 @@ static const struct mtk_clk_tree mt7986_infracfg_clk_tree = { static const struct udevice_id mt7986_fixed_pll_compat[] = { { .compatible = "mediatek,mt7986-fixed-plls" }, + { .compatible = "mediatek,mt7986-apmixedsys" }, {} };