From patchwork Thu Jun 13 11:09:19 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1947371 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=MWgwPau4; 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 4W0MY623swz1ydW for ; Thu, 13 Jun 2024 22:44:10 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 14073888FC; Thu, 13 Jun 2024 14:43:55 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=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="MWgwPau4"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id A927B888FC; Thu, 13 Jun 2024 13:10:16 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) (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 21961888F2 for ; Thu, 13 Jun 2024 13:10:14 +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-ed1-x52d.google.com with SMTP id 4fb4d7f45d1cf-57a30dbdb7fso1060556a12.3 for ; Thu, 13 Jun 2024 04:10:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718277013; x=1718881813; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=oJ0+CuhEyFd/RiaRyTVjA4SgSyF7IXaxBtDPRgYd6fk=; b=MWgwPau4PsfLkv9ykbW0cWyAPHrCglfLObFN1ZnS+I1dtoQ0MY+vgaUGpoaFpHi4I2 ego7sf5JZFRBFtf9G8wCWF8CWu4ENGALuPE8ndAbI9H8XwkeJcleaRl9L9ByT7K/Tr9w oH77cXoscn+IqURzzPlcgSPuVsjsnfvD7tgti9rU/v/s7ZC2zdTOwN5cTXnv8GI5280W cg11zpwNmcswpdjdEihKsCrG6xdYsw6Ps3wISxlG5OQoNOzrbHJoOmzWgObKk1IL/nvS Li1Y6KXazrdoheJbK0tHni7VIebeLQecs4T6C6x1O/buzsrvm3KrtaN568Vh/7X2Uvgw jXhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718277013; x=1718881813; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oJ0+CuhEyFd/RiaRyTVjA4SgSyF7IXaxBtDPRgYd6fk=; b=rL51w8rerwI2Di5qz64AqymDSQdHW+P1ILJijkLa+rpXyQRJoUKTU9vgHLOdiJ3eM+ FTN4mhcCp5eYobW4PJ5xjaHe7det1gx0uuJS3UsQ8OI1U2XpTI3MP4bg8zQm6d03GTJN mJR7RFApyn4efe+07L2OArjUvoKzIlBrSmDFlHuZvZGvOXeTeJR2/sh1w0vGz92h68Dd exeUry8W5YRY4JESPaIzjuOTyIBtWqAshNg8K6GC78OKVat78dBS3DI3SgjLiCk+jEci 9+1H2mVOoKtLCdhneaOzH9Iz0rJGL5bS/rzIWtsPYn588eUpAPFYt4yvVdJxjfAUbYqT PC6w== X-Forwarded-Encrypted: i=1; AJvYcCU9bFKfPJIj58KCKlDtStCUezOnpS75WZsjRwNuMyEv826YEstE8Y75FAuM/M43/KgBK8W2V9IUJ+tzYivqsjO/+cEVSg== X-Gm-Message-State: AOJu0YzqkCR/rZMnzjYch2MCMVDeQi0FcwNDy3dtCpoLZQI+XmyPv8sP MSNm9U3irc/khrWt8Y0V+ZRpUM9TcS2hyxxjmekau/ZGlBBPjcY2 X-Google-Smtp-Source: AGHT+IFhL48Uie/CeAPJu5WCJuCFDPBhfql+bzwlO1zTJHJsgv4molqxmVV5wHxSRq9wvOAXmcZCKA== X-Received: by 2002:a17:906:e24b:b0:a6f:308d:48c8 with SMTP id a640c23a62f3a-a6f48025c42mr266352666b.69.1718277012995; Thu, 13 Jun 2024 04:10:12 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id a640c23a62f3a-a6f56f416dfsm60580366b.164.2024.06.13.04.10.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jun 2024 04:10:12 -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 , Bin Meng , Sergei Antonov , Leo Yu-Chi Liang , Simon Glass , Christian Marangi , Mayuresh Chitale , Mason Huo , Mark Kettenis , Sumit Garg , John Crispin , Heinrich Schuchardt , Minda Chen , Marek Vasut , This contributor prefers not to receive mails , Stefan Roese , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v2 01/14] phy: phy-mtk-tphy: add support for phy type switch Date: Thu, 13 Jun 2024 13:09:19 +0200 Message-ID: <20240613110949.11076-2-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240613110949.11076-1-ansuelsmth@gmail.com> References: <20240613110949.11076-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Thu, 13 Jun 2024 14:43:53 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Add support for PHY type switch via the mediatek topmisc syscon. This is needed on mt7981 to make the PCIe correctly work and display LinkUp. Follow the same implementation done on Linux kernel with the usage of the mediatek,syscon-type property. Example: u3port0: usb-phy@11e10700 { reg = <0x11e10700 0x900>; clocks = <&topckgen CK_TOP_USB3_PHY_SEL>; clock-names = "ref"; #phy-cells = <1>; mediatek,syscon-type = <&topmisc 0x218 0>; status = "okay"; }; Signed-off-by: Christian Marangi --- drivers/phy/phy-mtk-tphy.c | 80 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/drivers/phy/phy-mtk-tphy.c b/drivers/phy/phy-mtk-tphy.c index ea9edf212c6..24938c8d2e3 100644 --- a/drivers/phy/phy-mtk-tphy.c +++ b/drivers/phy/phy-mtk-tphy.c @@ -11,6 +11,8 @@ #include #include #include +#include +#include #include #include #include @@ -216,6 +218,14 @@ #define ANA_EQ_EYE_CTRL_SIGNAL5 0xdc #define RG_CDR_BIRLTD0_GEN3_MSK GENMASK(4, 0) +/* PHY switch between pcie/usb3/sgmii/sata */ +#define USB_PHY_SWITCH_CTRL 0x0 +#define RG_PHY_SW_TYPE GENMASK(3, 0) +#define RG_PHY_SW_PCIE 0x0 +#define RG_PHY_SW_USB3 0x1 +#define RG_PHY_SW_SGMII 0x2 +#define RG_PHY_SW_SATA 0x3 + enum mtk_phy_version { MTK_TPHY_V1 = 1, MTK_TPHY_V2, @@ -258,6 +268,10 @@ struct mtk_phy_instance { u32 index; u32 type; + struct regmap *type_sw; + u32 type_sw_reg; + u32 type_sw_index; + u32 eye_vrt; u32 eye_term; u32 discth; @@ -617,6 +631,67 @@ static void u2_phy_props_set(struct mtk_tphy *tphy, FIELD_PREP(PA6_RG_U2_PRE_EMP, instance->pre_emphasis)); } +/* type switch for usb3/pcie/sgmii/sata */ +static int phy_type_syscon_get(struct udevice *dev, struct mtk_phy_instance *instance, + ofnode dn) +{ + struct ofnode_phandle_args args; + int err; + + if (!ofnode_read_bool(dn, "mediatek,syscon-type")) + return 0; + + err = ofnode_parse_phandle_with_args(dn, "mediatek,syscon-type", + NULL, 2, 0, &args); + if (err) + return err; + + instance->type_sw_reg = args.args[0]; + instance->type_sw_index = args.args[1] & 0x3; /* <=3 */ + instance->type_sw = syscon_node_to_regmap(args.node); + if (IS_ERR(instance->type_sw)) + return PTR_ERR(instance->type_sw); + + debug("phy-%s.%d: type_sw - reg %#x, index %d\n", + dev->name, instance->index, instance->type_sw_reg, + instance->type_sw_index); + + return 0; +} + +static int phy_type_set(struct mtk_phy_instance *instance) +{ + int type; + u32 offset; + + if (!instance->type_sw) + return 0; + + switch (instance->type) { + case PHY_TYPE_USB3: + type = RG_PHY_SW_USB3; + break; + case PHY_TYPE_PCIE: + type = RG_PHY_SW_PCIE; + break; + case PHY_TYPE_SGMII: + type = RG_PHY_SW_SGMII; + break; + case PHY_TYPE_SATA: + type = RG_PHY_SW_SATA; + break; + case PHY_TYPE_USB2: + default: + return 0; + } + + offset = instance->type_sw_index * BITS_PER_BYTE; + regmap_update_bits(instance->type_sw, instance->type_sw_reg, + RG_PHY_SW_TYPE << offset, type << offset); + + return 0; +} + static int mtk_phy_init(struct phy *phy) { struct mtk_tphy *tphy = dev_get_priv(phy->dev); @@ -747,6 +822,7 @@ static int mtk_phy_xlate(struct phy *phy, } phy_parse_property(tphy, instance); + phy_type_set(instance); return 0; } @@ -808,6 +884,10 @@ static int mtk_tphy_probe(struct udevice *dev) &instance->da_ref_clk); if (err) return err; + + err = phy_type_syscon_get(dev, instance, subnode); + if (err) + return err; } return 0; From patchwork Thu Jun 13 11:09:20 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1947372 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=bUM2RPDe; 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 4W0MYJ30vTz1ydW for ; Thu, 13 Jun 2024 22:44:20 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 7178388902; Thu, 13 Jun 2024 14:43:55 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=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="bUM2RPDe"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 8EB77888FC; Thu, 13 Jun 2024 13:10:19 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com [IPv6:2a00:1450:4864:20::62b]) (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 314F5888D1 for ; Thu, 13 Jun 2024 13:10:16 +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-ej1-x62b.google.com with SMTP id a640c23a62f3a-a6f3efa1cc7so340213366b.0 for ; Thu, 13 Jun 2024 04:10:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718277015; x=1718881815; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=kAchuuqYasjbhcIK8f5QyboGfJdVtxSSRcXm0nlSPoQ=; b=bUM2RPDeqRPaKnrwb7yM9TyF9RpglZb5WW8sHa+VQ+i5deKRrYrmUJHzjllbFALOMY i1y0M6P0EKxJ3Sx1P3gOI7rPu/2BxumY1drbkwyBXbfJmc8fg++BDnZAvJMa4lzSO1il +8TOlbWEu8qg81JDul1WVehLCH9EHbEnIMX0XFsatVnd7FBViBv5RXxBlPStviEbq+43 hN/wLU7eoegPUbh31gKE3yuHoo5x/VDMKa9ty8LmS/cAW9u2tWDyqFiRSPhR3l1bd+jl 7WGqls7VxQYvtA1VyfzVWAL04/TweeC/bF15xxwARptuiUNBAImtr94SbC+HnwO4VIgj QWhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718277015; x=1718881815; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kAchuuqYasjbhcIK8f5QyboGfJdVtxSSRcXm0nlSPoQ=; b=FVYwzyiOaqRUzQqIv9oFN8N/X8mg+ObJ3NTcbIIRkEUbpdKd21gU/OdVQunlSrDyHj oWqTgHgQzIEwLCOfTG8vlBhUeVPmTVCOVsUJ2TZNx/vjZ4lrMgA46lbFuwiDoQiNGkF6 Op10Jm3VU2fq610+2NALO29WCqOm1aSq5ii7d7ImFqubWqHd6k1Jatrm8K2bKdufby7i YUIXqUiJ70lBpu/Fok3SbCYoKnUHdaFqTMAJxgFGqavG4lxcXADWxMF+Pf8rXahbZlkf AwEtgbJ4tQcxgQ9QDLIuC+Go3X+i3RFEsHrxDgSGzNPrmDOrlXKPiglT6JJ8IcJYAFly pHng== X-Forwarded-Encrypted: i=1; AJvYcCXeFpBTY7b30TMsI4eeHyLyGrVpevG5sPAH4766MObMmylIcEc6P2+cYidmgBZmC74VTdRCXOPXH+ey9skRxwf0y67TqA== X-Gm-Message-State: AOJu0YwQDrIIQdjW15A6aiZmRZIHHin0xO+V3/gUQWpqalXKxebmvhxM B6D+zrBzbF4qR3ih7uqXJqXJiKY3iF+sr/rZpqORARPF4hwkcu5l X-Google-Smtp-Source: AGHT+IFtK+9uZvpKeKQNtjPPkdJw8Lx+vlPHdLlRdzBFvGJslbKBsaITszttoSA1ynUFxQaU79LCkg== X-Received: by 2002:a17:906:f255:b0:a6e:feb8:eb15 with SMTP id a640c23a62f3a-a6f52453538mr145271966b.38.1718277014978; Thu, 13 Jun 2024 04:10:14 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id a640c23a62f3a-a6f56f416dfsm60580366b.164.2024.06.13.04.10.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jun 2024 04:10:14 -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 , Bin Meng , Sergei Antonov , Leo Yu-Chi Liang , Simon Glass , Christian Marangi , Mayuresh Chitale , Mason Huo , Mark Kettenis , Sumit Garg , John Crispin , Heinrich Schuchardt , Minda Chen , Marek Vasut , This contributor prefers not to receive mails , Stefan Roese , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v2 02/14] pci: mediatek: add PCIe controller support for filogic silicon Date: Thu, 13 Jun 2024 13:09:20 +0200 Message-ID: <20240613110949.11076-3-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240613110949.11076-1-ansuelsmth@gmail.com> References: <20240613110949.11076-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Thu, 13 Jun 2024 14:43:53 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean From: John Crispin Add MediaTek GEN3 PCIe controller support for filogic silicon. This is adapted from the Linux version of the driver. Signed-off-by: John Crispin [ fix minor problems, fix checkpatch errors ] Signed-off-by: Christian Marangi --- drivers/pci/Kconfig | 7 + drivers/pci/Makefile | 1 + drivers/pci/pcie_mediatek_gen3.c | 382 +++++++++++++++++++++++++++++++ 3 files changed, 390 insertions(+) create mode 100644 drivers/pci/pcie_mediatek_gen3.c diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig index 8d02ab82ad9..22a56f4ca38 100644 --- a/drivers/pci/Kconfig +++ b/drivers/pci/Kconfig @@ -350,6 +350,13 @@ config PCIE_MEDIATEK Say Y here if you want to enable Gen2 PCIe controller, which could be found on MT7623 SoC family. +config PCIE_MEDIATEK_GEN3 + bool "MediaTek PCIe Gen3 controller" + depends on ARCH_MEDIATEK + help + Say Y here if you want to enable Gen3 PCIe controller, + which could be found on the Mediatek Filogic SoC family. + config PCIE_DW_MESON bool "Amlogic Meson DesignWare based PCIe controller" depends on ARCH_MESON diff --git a/drivers/pci/Makefile b/drivers/pci/Makefile index 2927c519129..5b2d2969802 100644 --- a/drivers/pci/Makefile +++ b/drivers/pci/Makefile @@ -42,6 +42,7 @@ obj-$(CONFIG_PCIE_INTEL_FPGA) += pcie_intel_fpga.o obj-$(CONFIG_PCIE_DW_COMMON) += pcie_dw_common.o obj-$(CONFIG_PCI_KEYSTONE) += pcie_dw_ti.o obj-$(CONFIG_PCIE_MEDIATEK) += pcie_mediatek.o +obj-$(CONFIG_PCIE_MEDIATEK_GEN3) += pcie_mediatek_gen3.o obj-$(CONFIG_PCIE_ROCKCHIP) += pcie_rockchip.o obj-$(CONFIG_PCIE_DW_ROCKCHIP) += pcie_dw_rockchip.o obj-$(CONFIG_PCIE_DW_MESON) += pcie_dw_meson.o diff --git a/drivers/pci/pcie_mediatek_gen3.c b/drivers/pci/pcie_mediatek_gen3.c new file mode 100644 index 00000000000..673813b8b75 --- /dev/null +++ b/drivers/pci/pcie_mediatek_gen3.c @@ -0,0 +1,382 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * MediaTek PCIe host controller driver. + * + * Copyright (c) 2023 John Crispin + * Driver is based on u-boot gen1/2 and upstream linux gen3 code + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "pci_internal.h" + +/* PCIe shared registers */ +#define PCIE_CFG_ADDR 0x20 +#define PCIE_CFG_DATA 0x24 + +#define PCIE_SETTING_REG 0x80 + +#define PCIE_PCI_IDS_1 0x9c +#define PCIE_RC_MODE BIT(0) +#define PCI_CLASS(class) ((class) << 8) + +#define PCIE_CFGNUM_REG 0x140 +#define PCIE_CFG_DEVFN(devfn) ((devfn) & GENMASK(7, 0)) +#define PCIE_CFG_BUS(bus) (((bus) << 8) & GENMASK(15, 8)) +#define PCIE_CFG_BYTE_EN(bytes) (((bytes) << 16) & GENMASK(19, 16)) +#define PCIE_CFG_FORCE_BYTE_EN BIT(20) +#define PCIE_CFG_OFFSET_ADDR 0x1000 +#define PCIE_CFG_HEADER(bus, devfn) (PCIE_CFG_BUS(bus) | PCIE_CFG_DEVFN(devfn)) + +#define PCIE_RST_CTRL_REG 0x148 +#define PCIE_MAC_RSTB BIT(0) +#define PCIE_PHY_RSTB BIT(1) +#define PCIE_BRG_RSTB BIT(2) +#define PCIE_PE_RSTB BIT(3) + +#define PCIE_LINK_STATUS_REG 0x154 +#define PCIE_PORT_LINKUP BIT(8) + +#define PCIE_INT_ENABLE_REG 0x180 + +#define PCIE_MISC_CTRL_REG 0x348 +#define PCIE_DISABLE_DVFSRC_VLT_REQ BIT(1) + +#define PCIE_TRANS_TABLE_BASE_REG 0x800 +#define PCIE_ATR_SRC_ADDR_MSB_OFFSET 0x4 +#define PCIE_ATR_TRSL_ADDR_LSB_OFFSET 0x8 +#define PCIE_ATR_TRSL_ADDR_MSB_OFFSET 0xc +#define PCIE_ATR_TRSL_PARAM_OFFSET 0x10 +#define PCIE_ATR_TLB_SET_OFFSET 0x20 + +#define PCIE_MAX_TRANS_TABLES 8 +#define PCIE_ATR_EN BIT(0) +#define PCIE_ATR_SIZE(size) \ + (((((size) - 1) << 1) & GENMASK(6, 1)) | PCIE_ATR_EN) +#define PCIE_ATR_ID(id) ((id) & GENMASK(3, 0)) +#define PCIE_ATR_TYPE_MEM PCIE_ATR_ID(0) +#define PCIE_ATR_TYPE_IO PCIE_ATR_ID(1) +#define PCIE_ATR_TLP_TYPE(type) (((type) << 16) & GENMASK(18, 16)) +#define PCIE_ATR_TLP_TYPE_MEM PCIE_ATR_TLP_TYPE(0) +#define PCIE_ATR_TLP_TYPE_IO PCIE_ATR_TLP_TYPE(2) + +struct mtk_pcie { + void __iomem *base; + void *priv; + struct clk pl_250m_ck; + struct clk tl_26m_ck; + struct clk peri_26m_ck; + struct clk top_133m_ck; + struct reset_ctl reset_phy; + struct reset_ctl reset_mac; + struct phy phy; +}; + +static void mtk_pcie_config_tlp_header(const struct udevice *bus, + pci_dev_t devfn, + int where, int size) +{ + struct mtk_pcie *pcie = dev_get_priv(bus); + int bytes; + u32 val; + + size = 1 << size; + bytes = (GENMASK(size - 1, 0) & 0xf) << (where & 0x3); + + val = PCIE_CFG_FORCE_BYTE_EN | PCIE_CFG_BYTE_EN(bytes) | + PCIE_CFG_HEADER(PCI_BUS(devfn), (devfn >> 8)); + + writel(val, pcie->base + PCIE_CFGNUM_REG); +} + +static int mtk_pcie_config_address(const struct udevice *udev, pci_dev_t bdf, + uint offset, void **paddress) +{ + struct mtk_pcie *pcie = dev_get_priv(udev); + + *paddress = pcie->base + PCIE_CFG_OFFSET_ADDR + offset; + + return 0; +} + +static int mtk_pcie_read_config(const struct udevice *bus, pci_dev_t bdf, + uint offset, ulong *valuep, + enum pci_size_t size) +{ + int ret; + + mtk_pcie_config_tlp_header(bus, bdf, offset, size); + ret = pci_generic_mmap_read_config(bus, mtk_pcie_config_address, + bdf, offset, valuep, size); + return ret; +} + +static int mtk_pcie_write_config(struct udevice *bus, pci_dev_t bdf, + uint offset, ulong value, + enum pci_size_t size) +{ + mtk_pcie_config_tlp_header(bus, bdf, offset, size); + + switch (size) { + case PCI_SIZE_8: + case PCI_SIZE_16: + value <<= (offset & 0x3) * 8; + case PCI_SIZE_32: + break; + default: + return -EINVAL; + } + + return pci_generic_mmap_write_config(bus, mtk_pcie_config_address, + bdf, (offset & ~0x3), value, PCI_SIZE_32); +} + +static const struct dm_pci_ops mtk_pcie_ops = { + .read_config = mtk_pcie_read_config, + .write_config = mtk_pcie_write_config, +}; + +static int mtk_pcie_set_trans_table(struct udevice *dev, struct mtk_pcie *pcie, + u64 cpu_addr, u64 pci_addr, u64 size, + unsigned long type, int num) +{ + void __iomem *table; + u32 val; + + if (num >= PCIE_MAX_TRANS_TABLES) { + dev_err(dev, "not enough translate table for addr: %#llx, limited to [%d]\n", + (unsigned long long)cpu_addr, PCIE_MAX_TRANS_TABLES); + return -ENODEV; + } + + dev_dbg(dev, "set trans table %d: %#llx %#llx, %#llx\n", num, cpu_addr, + pci_addr, size); + table = pcie->base + PCIE_TRANS_TABLE_BASE_REG + + num * PCIE_ATR_TLB_SET_OFFSET; + + writel(lower_32_bits(cpu_addr) | PCIE_ATR_SIZE(fls(size) - 1), table); + writel(upper_32_bits(cpu_addr), table + PCIE_ATR_SRC_ADDR_MSB_OFFSET); + writel(lower_32_bits(pci_addr), table + PCIE_ATR_TRSL_ADDR_LSB_OFFSET); + writel(upper_32_bits(pci_addr), table + PCIE_ATR_TRSL_ADDR_MSB_OFFSET); + + if (type == PCI_REGION_IO) + val = PCIE_ATR_TYPE_IO | PCIE_ATR_TLP_TYPE_IO; + else + val = PCIE_ATR_TYPE_MEM | PCIE_ATR_TLP_TYPE_MEM; + writel(val, table + PCIE_ATR_TRSL_PARAM_OFFSET); + + return 0; +} + +static int mtk_pcie_startup_port(struct udevice *dev) +{ + struct mtk_pcie *pcie = dev_get_priv(dev); + struct udevice *ctlr = pci_get_controller(dev); + struct pci_controller *hose = dev_get_uclass_priv(ctlr); + u32 val; + int i, err; + + /* Set as RC mode */ + val = readl(pcie->base + PCIE_SETTING_REG); + val |= PCIE_RC_MODE; + writel(val, pcie->base + PCIE_SETTING_REG); + + /* setup RC BARs */ + writel(PCI_BASE_ADDRESS_MEM_TYPE_64, + pcie->base + PCI_BASE_ADDRESS_0); + writel(0x0, pcie->base + PCI_BASE_ADDRESS_1); + + /* setup interrupt pins */ + clrsetbits_le32(pcie->base + PCI_INTERRUPT_LINE, + 0xff00, 0x100); + + /* setup bus numbers */ + clrsetbits_le32(pcie->base + PCI_PRIMARY_BUS, + 0xffffff, 0x00ff0100); + + /* setup command register */ + clrsetbits_le32(pcie->base + PCI_PRIMARY_BUS, + 0xffff, + PCI_COMMAND_IO | PCI_COMMAND_MEMORY | + PCI_COMMAND_MASTER | PCI_COMMAND_SERR); + + /* Set class code */ + val = readl(pcie->base + PCIE_PCI_IDS_1); + val &= ~GENMASK(31, 8); + val |= PCI_CLASS(PCI_CLASS_BRIDGE_PCI << 8); + writel(val, pcie->base + PCIE_PCI_IDS_1); + + /* Mask all INTx interrupts */ + val = readl(pcie->base + PCIE_INT_ENABLE_REG); + val &= ~0xFF000000; + writel(val, pcie->base + PCIE_INT_ENABLE_REG); + + /* Disable DVFSRC voltage request */ + val = readl(pcie->base + PCIE_MISC_CTRL_REG); + val |= PCIE_DISABLE_DVFSRC_VLT_REQ; + writel(val, pcie->base + PCIE_MISC_CTRL_REG); + + /* Assert all reset signals */ + val = readl(pcie->base + PCIE_RST_CTRL_REG); + val |= PCIE_MAC_RSTB | PCIE_PHY_RSTB | PCIE_BRG_RSTB | PCIE_PE_RSTB; + writel(val, pcie->base + PCIE_RST_CTRL_REG); + + /* + * Described in PCIe CEM specification sections 2.2 (PERST# Signal) + * and 2.2.1 (Initial Power-Up (G3 to S0)). + * The deassertion of PERST# should be delayed 100ms (TPVPERL) + * for the power and clock to become stable. + */ + mdelay(100); + + /* De-assert reset signals */ + val &= ~(PCIE_MAC_RSTB | PCIE_PHY_RSTB | PCIE_BRG_RSTB); + writel(val, pcie->base + PCIE_RST_CTRL_REG); + + mdelay(100); + + /* De-assert PERST# signals */ + val &= ~(PCIE_PE_RSTB); + writel(val, pcie->base + PCIE_RST_CTRL_REG); + + /* 100ms timeout value should be enough for Gen1/2 training */ + err = readl_poll_timeout(pcie->base + PCIE_LINK_STATUS_REG, val, + !!(val & PCIE_PORT_LINKUP), + 100 * 1000); + if (err) { + dev_dbg(dev, "no card detected\n"); + return -ETIMEDOUT; + } + dev_dbg(dev, "detected a card\n"); + + for (i = 0; i < hose->region_count; i++) { + struct pci_region *reg = &hose->regions[i]; + + if (reg->flags != PCI_REGION_MEM) + continue; + + mtk_pcie_set_trans_table(dev, pcie, reg->bus_start, reg->phys_start, + reg->size, reg->flags, 0); + } + + return 0; +} + +static int mtk_pcie_power_on(struct udevice *dev) +{ + struct mtk_pcie *pcie = dev_get_priv(dev); + int err; + + pcie->base = dev_remap_addr_name(dev, "pcie-mac"); + if (!pcie->base) + return -ENOENT; + + pcie->priv = dev; + + err = generic_phy_get_by_name(dev, "pcie-phy", &pcie->phy); + if (err) + return err; + + /* + * Upstream linux kernel devine these clock without clock-names + * and use clk bulk API to enable them all. + */ + err = clk_get_by_index(dev, 0, &pcie->pl_250m_ck); + if (err) + return err; + + err = clk_get_by_index(dev, 1, &pcie->tl_26m_ck); + if (err) + return err; + + err = clk_get_by_index(dev, 2, &pcie->peri_26m_ck); + if (err) + return err; + + err = clk_get_by_index(dev, 3, &pcie->top_133m_ck); + if (err) + return err; + + err = generic_phy_init(&pcie->phy); + if (err) + return err; + + err = generic_phy_power_on(&pcie->phy); + if (err) + goto err_phy_on; + + err = clk_enable(&pcie->pl_250m_ck); + if (err) + goto err_clk_pl_250m; + + err = clk_enable(&pcie->tl_26m_ck); + if (err) + goto err_clk_tl_26m; + + err = clk_enable(&pcie->peri_26m_ck); + if (err) + goto err_clk_peri_26m; + + err = clk_enable(&pcie->top_133m_ck); + if (err) + goto err_clk_top_133m; + + err = mtk_pcie_startup_port(dev); + if (err) + goto err_startup; + + return 0; + +err_startup: +err_clk_top_133m: + clk_disable(&pcie->top_133m_ck); +err_clk_peri_26m: + clk_disable(&pcie->peri_26m_ck); +err_clk_tl_26m: + clk_disable(&pcie->tl_26m_ck); +err_clk_pl_250m: + clk_disable(&pcie->pl_250m_ck); +err_phy_on: + generic_phy_exit(&pcie->phy); + + return err; +} + +static int mtk_pcie_probe(struct udevice *dev) +{ + struct mtk_pcie *pcie = dev_get_priv(dev); + int err; + + pcie->priv = dev; + + err = mtk_pcie_power_on(dev); + if (err) + return err; + + return 0; +} + +static const struct udevice_id mtk_pcie_ids[] = { + { .compatible = "mediatek,mt8192-pcie" }, + { } +}; + +U_BOOT_DRIVER(pcie_mediatek_gen3) = { + .name = "pcie_mediatek_gen3", + .id = UCLASS_PCI, + .of_match = mtk_pcie_ids, + .ops = &mtk_pcie_ops, + .probe = mtk_pcie_probe, + .priv_auto = sizeof(struct mtk_pcie), +}; From patchwork Thu Jun 13 11:09:21 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1947373 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=H4xh03AJ; 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 4W0MYg6VTlz1ydW for ; Thu, 13 Jun 2024 22:44:39 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id CDAF088908; Thu, 13 Jun 2024 14:43:55 +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="H4xh03AJ"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id D9814888F9; Thu, 13 Jun 2024 13:10:19 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com [IPv6:2a00:1450:4864:20::534]) (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 D4E4D888F6 for ; Thu, 13 Jun 2024 13:10:17 +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-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-57cb9efd8d1so609264a12.0 for ; Thu, 13 Jun 2024 04:10:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718277017; x=1718881817; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=f3P4MUFnz6jH8ZIpT84vFt6ekwmHdCr6I1GU5B/nij0=; b=H4xh03AJyjm261JpKxzFpE6WkO5AB6TEEJHRZd00JbOMX1ebXWAD1xCWfCJXNMY57o iJfZGsCFwWq5pF7oGRYJ77JFhYsFd7Y3CIs5zXyTL0vWrDUdPYfjUuGFVXhMt2Of2/gm tsjH1uV/C/25HNxb99o9h4dJFEiCufHjvGYvz136aJUnzUJiPqBDSCxeyMuOhPdTyMtz JU12J9qhFl90dkbYwJ0qhsVlcLDa/Kmedz6BeAY5WFMj4GdGNXXEvSI2cf/UXvw0N4W8 pwbIWOq3GHkNhLLpFR6iEunMSqbfAIz7CPueYFUaKsoGrBOQMztC0FQDZ69aidD8sHxx 5M1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718277017; x=1718881817; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=f3P4MUFnz6jH8ZIpT84vFt6ekwmHdCr6I1GU5B/nij0=; b=dZaZwRPxizB6FeuwtOI2KCVf9Xte0LbZmMDDmnc3I7x/7ByZvLknTDiD1e8i8+yT/7 Rq+S4TJyoYfOp1YtCLor/1J5Strao4i/EnrQ5x/xAxRJx8Bmovlp/AqMcbo9T1N6zUu5 aimtsrkSmuSffJA4fSAhJme8ppWYF4cbXmDZMYbohsyXc8hAr+XHMi1KML3lON094H5B /oLzobpJWsOACtMRc4k3spMd5c4Fwor8Imk3VXbfl0MSftf22kgY5PiomCjyKyu5G6CB AJG6BvN0GMP6+VHxeWjbwdkvQXRe0mIwtsfdXIHRqy/76L3qTTT2I8eGDcAnOC8O5r4G fDWQ== X-Forwarded-Encrypted: i=1; AJvYcCUWdFhvYPc15E7URQRp2YRoBKnnb5bA02QFYLIBQR9Psbe8PMP9arbYNgxygXOF9cG72GStQgaXifRH2OxdFzxXJ5PeRA== X-Gm-Message-State: AOJu0YwzYZNqLEeDdsqg8YzTSOGWiW8LI9Tl4EA9wJCQaF+k0vh8lPeU NyD8U2zIVPh/IHjDR9RfgM38WFpAuPRy+6RAjXPRmFamH0sgZK1N X-Google-Smtp-Source: AGHT+IH0EgvryHl87x83tzRJpuiBJ1rpfzdZr0Y7qNyiWnTr1QIDKSj4IifhHfhjOl5NHHvVyY8IDA== X-Received: by 2002:a17:906:dfe3:b0:a6f:4746:4ee7 with SMTP id a640c23a62f3a-a6f5240b7damr175675966b.11.1718277016897; Thu, 13 Jun 2024 04:10:16 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id a640c23a62f3a-a6f56f416dfsm60580366b.164.2024.06.13.04.10.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jun 2024 04:10:16 -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 , Bin Meng , Sergei Antonov , Leo Yu-Chi Liang , Simon Glass , Christian Marangi , Mayuresh Chitale , Mason Huo , Mark Kettenis , Sumit Garg , John Crispin , Heinrich Schuchardt , Minda Chen , Marek Vasut , This contributor prefers not to receive mails , Stefan Roese , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v2 03/14] spi: mtk_spim: add support for upstream mediatek, spi-ipm compatible Date: Thu, 13 Jun 2024 13:09:21 +0200 Message-ID: <20240613110949.11076-4-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240613110949.11076-1-ansuelsmth@gmail.com> References: <20240613110949.11076-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Thu, 13 Jun 2024 14:43:53 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Upstream kernel linux use a different compatible mediatek,spi-ipm. Add support for this compatible and add handling for the additional clock similar to how it's done by the upstream driver and handling for all the property enabled by default. Signed-off-by: Christian Marangi --- drivers/spi/mtk_spim.c | 45 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/drivers/spi/mtk_spim.c b/drivers/spi/mtk_spim.c index 90f4c3cecb9..b360eca2b91 100644 --- a/drivers/spi/mtk_spim.c +++ b/drivers/spi/mtk_spim.c @@ -137,6 +137,8 @@ struct mtk_spim_capability { * @state: Controller state * @sel_clk: Pad clock * @spi_clk: Core clock + * @parent_clk: Parent clock (needed for mediatek,spi-ipm, upstream DTSI) + * @hclk: HCLK clock (needed for mediatek,spi-ipm, upstream DTSI) * @pll_clk_rate: Controller's PLL source clock rate, which is different * from SPI bus clock rate * @xfer_len: Current length of data for transfer @@ -151,6 +153,7 @@ struct mtk_spim_priv { void __iomem *base; u32 state; struct clk sel_clk, spi_clk; + struct clk parent_clk, hclk; u32 pll_clk_rate; u32 xfer_len; struct mtk_spim_capability hw_cap; @@ -650,7 +653,21 @@ static int mtk_spim_probe(struct udevice *dev) if (!priv->base) return -EINVAL; - mtk_spim_get_attr(priv, dev); + /* + * Upstream linux driver for ipm design enable all the modes + * and setup the calibrarion values directly in the driver with + * standard values. + */ + if (device_is_compatible(dev, "mediatek,spi-ipm")) { + priv->hw_cap.enhance_timing = true; + priv->hw_cap.dma_ext = true; + priv->hw_cap.ipm_design = true; + priv->hw_cap.support_quad = true; + priv->sample_sel = 0; + priv->tick_dly = 2; + } else { + mtk_spim_get_attr(priv, dev); + } ret = clk_get_by_name(dev, "sel-clk", &priv->sel_clk); if (ret < 0) { @@ -664,8 +681,31 @@ static int mtk_spim_probe(struct udevice *dev) return ret; } - clk_enable(&priv->sel_clk); + /* + * Upstream DTSI use a different compatible that provide additional + * clock instead of the assigned-clock implementation. + */ + if (device_is_compatible(dev, "mediatek,spi-ipm")) { + ret = clk_get_by_name(dev, "parent-clk", &priv->parent_clk); + if (ret < 0) { + dev_err(dev, "failed to get parent-clk\n"); + return ret; + } + + ret = clk_get_by_name(dev, "hclk", &priv->hclk); + if (ret < 0) { + dev_err(dev, "failed to get hclk\n"); + return ret; + } + + clk_enable(&priv->parent_clk); + clk_set_parent(&priv->sel_clk, &priv->parent_clk); + + clk_enable(&priv->hclk); + } + clk_enable(&priv->spi_clk); + clk_enable(&priv->sel_clk); priv->pll_clk_rate = clk_get_rate(&priv->spi_clk); if (priv->pll_clk_rate == 0) @@ -698,6 +738,7 @@ static const struct dm_spi_ops mtk_spim_ops = { static const struct udevice_id mtk_spim_ids[] = { { .compatible = "mediatek,ipm-spi" }, + { .compatible = "mediatek,spi-ipm", }, {} }; From patchwork Thu Jun 13 11:09:22 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1947374 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=UB+nVSAU; 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 4W0MYj4K4yz1ydW for ; Thu, 13 Jun 2024 22:44:41 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 31FDD8890F; Thu, 13 Jun 2024 14:43:56 +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="UB+nVSAU"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 6AD06888F2; Thu, 13 Jun 2024 13:10:21 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com [IPv6:2a00:1450:4864:20::52a]) (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 799B3883D3 for ; Thu, 13 Jun 2024 13:10:19 +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-ed1-x52a.google.com with SMTP id 4fb4d7f45d1cf-57c6afa1839so423931a12.2 for ; Thu, 13 Jun 2024 04:10:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718277019; x=1718881819; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=kr80qGA8fTtmGld4Thh3XY/hn2vKZu79T8rEjD9KMoo=; b=UB+nVSAUMkgVN4Ye0gldVzLbJzKkNzocI9RJJO4LiuCn4RmXn5drH6UBbKaWcQmVbP yOwuVpYmBegbSwYbdXqbBHdzTXInEw+3Dmv6yLVZTuXQFMuCAbv/Tkg/Mp6rfB6YiFWF eNxBOhS1+3XSvOGM7gu9e+Zzmbr+05SvJOZZCTOKl/OkRGVsVTMFeLi96H06XKSBzFyq TKk46Y4t+F4vWYF5GU6JEwDoe+/PmSi8AdyNl1fnW9B8eMPQbAshAUSmzy6tEnHMs+IM hEx1+eGYb7QefX+Nbk/3ChRRCvQskc2/KM5COfYpiEpYk/ecSPGrESJOkGyzmHyXJoXU WGpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718277019; x=1718881819; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kr80qGA8fTtmGld4Thh3XY/hn2vKZu79T8rEjD9KMoo=; b=o26jmUBL7Sdo6CDJtN7jUlewPQJSjjOIw6y7lZXJI/apEJxo3PIjp5AXciN5/XtrMo lauMV3XKHVbF7hVGnsPoAfdy75xILGT+vOhfoU3rx80f+KaupnJUqPSq2lZ6xi1RUuhV azNOkbsyRTI1jou9MjBpS9RlYWKyAqz0l838yRFUxD5lv464ODJDJEDeOFP2+kHqnxZH dRL2GC4YMGczccGLpK2ThOLv4EG2PA+wqqsaZ4cM/a+wdTFKHy4TwpxQikoLVq10i/rx Py8S0WxTi8GMmPYUS/K16cs2pYG+0iixeJILYHT/JpPpvOHg67VHZEZXpSvrZ4RO7Uae dUhw== X-Forwarded-Encrypted: i=1; AJvYcCXqWcSprgMIzEulrtLXvuC0lWp3kXqeUtBkkn3aaZewdN1dffLiCPn3jml4K0+BdV7jSpemc3rXTdmQoFlYIDjMhC+nyA== X-Gm-Message-State: AOJu0Yx/qeZxKsLnSF9RhcKY9LX28vZAcvcH9n2HNSGyRhphDQZ60zKW giY+gbpg9IH90k5wl+RdAw+Wp2EpWBfUev4iztHdQEjttX4qyxyvn3UqCQ== X-Google-Smtp-Source: AGHT+IFLUlNtZIbf65wp7K+4UED37pe4u0W5JmVhFzBgf52celWvYIzkBu3i+9jcM2SkbMu/EoukWg== X-Received: by 2002:a50:d596:0:b0:57c:77a1:d1da with SMTP id 4fb4d7f45d1cf-57ca8e69171mr4009929a12.0.1718277018724; Thu, 13 Jun 2024 04:10:18 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id a640c23a62f3a-a6f56f416dfsm60580366b.164.2024.06.13.04.10.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jun 2024 04:10:18 -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 , Bin Meng , Sergei Antonov , Leo Yu-Chi Liang , Simon Glass , Christian Marangi , Mayuresh Chitale , Mason Huo , Mark Kettenis , Sumit Garg , John Crispin , Heinrich Schuchardt , Minda Chen , Marek Vasut , This contributor prefers not to receive mails , Stefan Roese , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v2 04/14] net: mediatek: handle alternative name for pn_swap property Date: Thu, 13 Jun 2024 13:09:22 +0200 Message-ID: <20240613110949.11076-5-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240613110949.11076-1-ansuelsmth@gmail.com> References: <20240613110949.11076-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Thu, 13 Jun 2024 14:43:53 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Handle alternative name for pn_swap property as upstream linux use mediatek,pnswap. Signed-off-by: Christian Marangi --- drivers/net/mtk_eth.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/mtk_eth.c b/drivers/net/mtk_eth.c index 75e7bcf83b7..87e2e1d9cda 100644 --- a/drivers/net/mtk_eth.c +++ b/drivers/net/mtk_eth.c @@ -1965,7 +1965,9 @@ static int mtk_eth_of_to_plat(struct udevice *dev) return -ENODEV; } - priv->pn_swap = ofnode_read_bool(args.node, "pn_swap"); + /* Upstream linux use mediatek,pnswap instead of pn_swap */ + priv->pn_swap = ofnode_read_bool(args.node, "pn_swap") || + ofnode_read_bool(args.node, "mediatek,pnswap"); } else if (priv->phy_interface == PHY_INTERFACE_MODE_USXGMII) { /* get corresponding usxgmii phandle */ ret = dev_read_phandle_with_args(dev, "mediatek,usxgmiisys", From patchwork Thu Jun 13 11:09:23 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1947375 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=dnrQtP5x; 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 4W0MYw1HChz1ydW for ; Thu, 13 Jun 2024 22:44:52 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8B1F188915; Thu, 13 Jun 2024 14:43:56 +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="dnrQtP5x"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 0F01D888FA; Thu, 13 Jun 2024 13:10:24 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com [IPv6:2a00:1450:4864:20::629]) (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 75BC2888D1 for ; Thu, 13 Jun 2024 13:10:21 +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-ej1-x629.google.com with SMTP id a640c23a62f3a-a6f04afcce1so119341466b.2 for ; Thu, 13 Jun 2024 04:10:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718277021; x=1718881821; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=lbqhTC/Ts3tNK5F1WJyeiJc9XsdkXxjI9Vn5rbodR/U=; b=dnrQtP5xtx5IpNq7fNkuO09UimtMRc6vxBtDDnesB+Obbgb5Z323sm0ZmuaTGzG59U 7aNLOEgZf527vd2XJVugkZ30ZDpTSEjOlX47KBzYmPZ0QBtkTCkqXUzRaIHFVPTICeNo ZMY3BJw+ChgwEVsnXKTTm9BpNkD952biA8RelwOxkkw85+dUlNPQZWqL4pQ3jD/5F7Ko ln46NwTMr/kmYt3R0Rvxn4jrPk1ePFQ4FQpm8oJs5VTLCLt5HlcbqCEwNMHC9CNhAUeE bTHp173TfOfdt5JJevvIhv8w6Bim0MlTS+HAYkkMYCsW7pfklJuGCOqezIOEBSPB5I34 MQng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718277021; x=1718881821; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lbqhTC/Ts3tNK5F1WJyeiJc9XsdkXxjI9Vn5rbodR/U=; b=jGuwmo2BOEI88P2B+0SLfkDWw8BQpbbReYBZ0DV4YYpM+6an/jxB6SoVEiwK6yx3Zb a3DhplbHAHi6gqlEDcaAwmXUG7rmnieeQjF9aVXqEYeEuEhunYvXXWcJFFulMmC5AnD/ BOllPf/NAGV3jTcfzQwn6Gjkq84wcl8/1KqAWayNKGy6NaRIlTs3J3TocRkvhl0YI7ad y3KWROaYIduXu/iSk8YXl6IRytKOJPi0ElD6yGKrDJnBRIKjCHNfo0z0+Ax9GyYTyGrJ c59QDlZ1hpm8hOipunJq2dhqE7yXQANVhOblIJrlu+gsHOpA+LRhlJGxOARaSyV6Ap4j DGYw== X-Forwarded-Encrypted: i=1; AJvYcCWERE40AIKqq1t/dZWsFaKRF06R0hlrJBz6qrcbG5oVBN+Ec9YjwffManxEkw6b9qte1x1BUuSO4Tqh6FGd7W68MFUn9A== X-Gm-Message-State: AOJu0YzZIFJNgIP80rC49ip4jQfkytJEXwSW6uioaFmr1SOhyiw8LR3J mUo7E0CuH2lG/CasVuhvHxlLJT5PWEdMTfC4ZG4YFp61MV5qZk26 X-Google-Smtp-Source: AGHT+IHJHB+jIddf77Imz5NORsp9TLPRYGU9lI8BbC+r4wH5eJLqOXGdWGHVBuy0sMUuRENzUo7HKw== X-Received: by 2002:a17:907:94c1:b0:a6f:4804:d41a with SMTP id a640c23a62f3a-a6f4804d4c0mr453242966b.55.1718277020627; Thu, 13 Jun 2024 04:10:20 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id a640c23a62f3a-a6f56f416dfsm60580366b.164.2024.06.13.04.10.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jun 2024 04:10:20 -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 , Bin Meng , Sergei Antonov , Leo Yu-Chi Liang , Simon Glass , Christian Marangi , Mayuresh Chitale , Mason Huo , Mark Kettenis , Sumit Garg , John Crispin , Heinrich Schuchardt , Minda Chen , Marek Vasut , This contributor prefers not to receive mails , Stefan Roese , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v2 05/14] i2c: mediatek: add support for optional arb and pmic clock Date: Thu, 13 Jun 2024 13:09:23 +0200 Message-ID: <20240613110949.11076-6-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240613110949.11076-1-ansuelsmth@gmail.com> References: <20240613110949.11076-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Thu, 13 Jun 2024 14:43:53 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Add support for optional arb and pmic clock for i2c provided in upstream linux DTSI. Signed-off-by: Christian Marangi --- 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 Thu Jun 13 11:09:24 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1947376 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=LIxXZGT3; 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 4W0MZ70Bzsz1ydW for ; Thu, 13 Jun 2024 22:45:03 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id E3DDE8891A; Thu, 13 Jun 2024 14:43:56 +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="LIxXZGT3"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id B734288901; Thu, 13 Jun 2024 13:10:25 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com [IPv6:2a00:1450:4864:20::629]) (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 D1410888E8 for ; Thu, 13 Jun 2024 13:10:23 +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-ej1-x629.google.com with SMTP id a640c23a62f3a-a6efacd25ecso52247366b.1 for ; Thu, 13 Jun 2024 04:10:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718277023; x=1718881823; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=1VygQ6hcB1JVrIF1U7chwaZod2xshZcNbfPBaIln5h4=; b=LIxXZGT3K8OJsBsCPq/wWT7OjufpTWH+qb+piwRJ06iRhw0InwIP7TYJhuFUl86EXK nwU/p3Q/pQlCAlip25QjvAN4yB/L1RwTTXBvRE3yq5jAc0lSS9Pf6H9DGYLRbg730NBK gE2vX5lxcdE420YWw/GDd8T4vX69cZfdLQ9JZEdfWX61qw7QO8cO5WP4qbaRHEsk9132 PZaeSt9kaxSdGskOBdfh78H3FzhgMzLSijUPEKk7kY8sp7RrDb4gJAdOBVKaJlo3kGRK J3uln6jD4QNmZg2xPBT+s4Qo21EIVFg6wGvBtEfKhO0IfN50XXTlzInSK2SYnWi7EA62 9Mrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718277023; x=1718881823; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1VygQ6hcB1JVrIF1U7chwaZod2xshZcNbfPBaIln5h4=; b=vEV1fS2SfrlCJ5Vem+TpzYLDGW3wryT2LQU1gWW4uSE51ik6tKM1oR3igtgNDs/bqR 4r1qmNDwarBD2Oxk9NxW8W+5HwaVvx+QG+9Y8mg8R9lpsUwHVAlF27ec4I2ZE8p0P4NY LnitS35xvIwoERhmB/LumsMcj/KJEpuWXmjYJn2Q9w405JiTuVqcvS05loOwRLXi8M9l jnZKTHEcLkdgegQ48oBdsVUwIJfZ6Ambc2PDD+hTBdmCT3o9WnVxxzb3Rex0WSajBVIn X+ggmKWi9Nx1sA2kJeIKxGS41YMTjU/vozLo7op/lSIgfsyScCAa9Yr77rsC6YUryxEl msKg== X-Forwarded-Encrypted: i=1; AJvYcCUOS989MF+JejFRPDqk3ruSTpE70npzbVZE9QjvijyEeAzMVI86xNczKHAP5S1EQcGxhH7vx6BnLujpP0NQ51xhIsLIoQ== X-Gm-Message-State: AOJu0YxBnHnZK+ZkahCr6grDmEYQFSkCUxznNp8Dpy6n1L7T0nD5C5mp 9xcA9keYcHPnprHQ4gnaZ9SpEZGjPpC29d44hFGK//3HtI0g6Sh/ X-Google-Smtp-Source: AGHT+IFe8NOejUhrZcLnbEfkIyWAtFe+pIeMHKSY1UUa52P6iZIyAUlWdSm69VeFZIAKT+ahZoUQrw== X-Received: by 2002:a50:96d1:0:b0:578:6c08:88fb with SMTP id 4fb4d7f45d1cf-57caaabd170mr4138722a12.12.1718277022726; Thu, 13 Jun 2024 04:10:22 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id a640c23a62f3a-a6f56f416dfsm60580366b.164.2024.06.13.04.10.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jun 2024 04:10:22 -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 , Bin Meng , Sergei Antonov , Leo Yu-Chi Liang , Simon Glass , Christian Marangi , Mayuresh Chitale , Mason Huo , Mark Kettenis , Sumit Garg , John Crispin , Heinrich Schuchardt , Minda Chen , Marek Vasut , This contributor prefers not to receive mails , Stefan Roese , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v2 06/14] serial: mediatek: add support for bus clock and enable it Date: Thu, 13 Jun 2024 13:09:24 +0200 Message-ID: <20240613110949.11076-7-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240613110949.11076-1-ansuelsmth@gmail.com> References: <20240613110949.11076-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Thu, 13 Jun 2024 14:43:53 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Upstream linux also provide the additional optional bus clock. Add support for it and also enable the baud and bus clock on probe. Signed-off-by: Christian Marangi --- drivers/serial/serial_mtk.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/serial/serial_mtk.c b/drivers/serial/serial_mtk.c index f146f2b006e..d34a31c9cf0 100644 --- a/drivers/serial/serial_mtk.c +++ b/drivers/serial/serial_mtk.c @@ -76,6 +76,7 @@ struct mtk_serial_regs { * driver * @regs: Register base of the serial port * @clk: The baud clock device + * @clk_bus: The bus clock device * @fixed_clk_rate: Fallback fixed baud clock rate if baud clock * device is not specified * @force_highspeed: Force using high-speed mode @@ -83,6 +84,7 @@ struct mtk_serial_regs { struct mtk_serial_priv { struct mtk_serial_regs __iomem *regs; struct clk clk; + struct clk clk_bus; u32 fixed_clk_rate; bool force_highspeed; }; @@ -220,6 +222,10 @@ static int mtk_serial_probe(struct udevice *dev) writel(UART_MCRVAL, &priv->regs->mcr); writel(UART_FCRVAL, &priv->regs->fcr); + clk_enable(&priv->clk); + if (priv->clk_bus.dev) + clk_enable(&priv->clk_bus); + return 0; } @@ -250,6 +256,8 @@ static int mtk_serial_of_to_plat(struct udevice *dev) } } + clk_get_by_name(dev, "bus", &priv->clk_bus); + priv->force_highspeed = dev_read_bool(dev, "mediatek,force-highspeed"); return 0; From patchwork Thu Jun 13 11:09:25 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1947377 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=dzVJbk33; 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 4W0MZK4wmQz20Xd for ; Thu, 13 Jun 2024 22:45:13 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 447498891F; Thu, 13 Jun 2024 14:43:57 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=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="dzVJbk33"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id A26A9888E8; Thu, 13 Jun 2024 13:10:27 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) (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 5FDF1888FF for ; Thu, 13 Jun 2024 13:10:25 +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-ed1-x52d.google.com with SMTP id 4fb4d7f45d1cf-57a31d63b6bso1067677a12.0 for ; Thu, 13 Jun 2024 04:10:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718277025; x=1718881825; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=dkLSO2oqFmlNq+CTGLdRXojERXtEUdcRUTUSIaM8Y+w=; b=dzVJbk33qQZNjtyt5Za5hdfBNGHcivaLnYiYAiV4XZEHCQW9swaTFgNR55IsKGyI1M wMrJabCHt/7GlxTWdBvOSJxyNd7/Q4OAj6Ah76pdeM7Dvp3je/GuRcJukUnduV9NYXvj PUYFxOwbvjH0UoFr63yWSFQqOM8soX+KEI8RXoKc4dGFqXbPHX+mlcbo1Tf5dqEsUNmO 2Pc1DPZ1qDA7evoKzYKcOjRsAFuECwGH58DPtg5zxVbBlSIqiHAc4zpaf5qTr24Dn0Dq zaBA61TJLzbpUN174vwREP6QI2ItjX2XsKCWiteYwnEZ94xiCA7w4wZymShgw5PXA41I jVtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718277025; x=1718881825; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dkLSO2oqFmlNq+CTGLdRXojERXtEUdcRUTUSIaM8Y+w=; b=ZH0r3fVNmGSnOjZBcXUGIebV/pHCytQaZQVCmXA/QjNdhh7gNKFtHgjr2GdVUjUFya bhW/Ku8fKhv+gM3EecZQGdxMF93xj9Ir4mgPT2F+da07cHgTckesLJdsnoFIepAsFlz4 xUktcojVFdx89Q7SPS4glx4eQDJesOZjpY5Y93NbizEhq6SxDDndoMrBSYWA1trFGHzT 46czWi8muYlbNeO2jTrzl+J3FLPbG0OVrKbAWYoEmtMdR3SjBNGrQuX5/MG7NVCKGh81 0Be9jcjbZMbr43fueA+Y5jEB/Eh7lUDnLQg49pbNDWR08AdKJc4C6gilpHw/9Ze2h8ao HK9g== X-Forwarded-Encrypted: i=1; AJvYcCWx2sKqDF8wHPcj7QB47NaZB3W+ke+URuvmPUu4KGaMU4MHPegZzNLpidsY0rQIfINRFdbQAZs9z1zR39cl5mFhtVY7BQ== X-Gm-Message-State: AOJu0YwzOcXAS2/ic5YN6ALtkM1+bKMD5JSfpgCO+hx0fQoaaZDAJPPq GfBrVg2L/YE5sWAsxdo/hzbeXtRn1xDQF5IzpXlhohiQM60WX4To X-Google-Smtp-Source: AGHT+IFrfFz/55fLJoy1oIjuN8ZsBEv3s3iY64ZQ4SEdZCJd78G+wsuvsXj5Fhcc/33251Reloy1iQ== X-Received: by 2002:a17:907:724a:b0:a6f:1036:98cf with SMTP id a640c23a62f3a-a6f4801305amr407446566b.54.1718277024659; Thu, 13 Jun 2024 04:10:24 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id a640c23a62f3a-a6f56f416dfsm60580366b.164.2024.06.13.04.10.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jun 2024 04:10:24 -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 , Bin Meng , Sergei Antonov , Leo Yu-Chi Liang , Simon Glass , Christian Marangi , Mayuresh Chitale , Mason Huo , Mark Kettenis , Sumit Garg , John Crispin , Heinrich Schuchardt , Minda Chen , Marek Vasut , This contributor prefers not to receive mails , Stefan Roese , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v2 07/14] serial: mediatek: add special handling for highspeed and linux compat Date: Thu, 13 Jun 2024 13:09:25 +0200 Message-ID: <20240613110949.11076-8-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240613110949.11076-1-ansuelsmth@gmail.com> References: <20240613110949.11076-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Thu, 13 Jun 2024 14:43:53 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Upstream linux serial driver use a different logic to setup serial regs. They have 2 interval: - < 115200 we use lowspeed regs and 16 * baud - >= 115200 we use highspeed We currently use force_highspeed property to force usage of highspeed regs even with low baud rate. Add special handling if the upstream compatible is used where we just apply the same interval with anything >= 115200 in highspeed simulating force_highspeed. Signed-off-by: Christian Marangi --- drivers/serial/serial_mtk.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/drivers/serial/serial_mtk.c b/drivers/serial/serial_mtk.c index d34a31c9cf0..14be095653a 100644 --- a/drivers/serial/serial_mtk.c +++ b/drivers/serial/serial_mtk.c @@ -89,8 +89,8 @@ struct mtk_serial_priv { bool force_highspeed; }; -static void _mtk_serial_setbrg(struct mtk_serial_priv *priv, int baud, - uint clk_rate) +static void _mtk_serial_setbrg(struct udevice *dev, struct mtk_serial_priv *priv, + int baud, uint clk_rate) { u32 quot, realbaud, samplecount = 1; @@ -113,7 +113,12 @@ static void _mtk_serial_setbrg(struct mtk_serial_priv *priv, int baud, goto set_baud; } - if (priv->force_highspeed) + /* + * Upstream linux use highspeed for anything >= 115200 and lowspeed + * for < 115200. Simulate this if we are using the upstream compatible. + */ + if (priv->force_highspeed || + (device_is_compatible(dev, "mediatek,mt6577-uart") && baud >= 115200)) goto use_hs3; if (baud <= 115200) { @@ -186,7 +191,7 @@ static int mtk_serial_setbrg(struct udevice *dev, int baudrate) if (IS_ERR_VALUE(clk_rate) || clk_rate == 0) clk_rate = priv->fixed_clk_rate; - _mtk_serial_setbrg(priv, baudrate, clk_rate); + _mtk_serial_setbrg(dev, priv, baudrate, clk_rate); return 0; } @@ -302,13 +307,13 @@ DECLARE_GLOBAL_DATA_PTR; writel(0, &mtk_hsuart##port.regs->ier); \ writel(UART_MCRVAL, &mtk_hsuart##port.regs->mcr); \ writel(UART_FCRVAL, &mtk_hsuart##port.regs->fcr); \ - _mtk_serial_setbrg(&mtk_hsuart##port, gd->baudrate, \ + _mtk_serial_setbrg(NULL, &mtk_hsuart##port, gd->baudrate, \ mtk_hsuart##port.fixed_clk_rate); \ return 0 ; \ } \ static void mtk_serial##port##_setbrg(void) \ { \ - _mtk_serial_setbrg(&mtk_hsuart##port, gd->baudrate, \ + _mtk_serial_setbrg(NULL, &mtk_hsuart##port, gd->baudrate, \ mtk_hsuart##port.fixed_clk_rate); \ } \ static int mtk_serial##port##_getc(void) \ @@ -456,7 +461,7 @@ static inline void _debug_uart_init(void) writel(UART_MCRVAL, &priv.regs->mcr); writel(UART_FCRVAL, &priv.regs->fcr); - _mtk_serial_setbrg(&priv, CONFIG_BAUDRATE, priv.fixed_clk_rate); + _mtk_serial_setbrg(NULL, &priv, CONFIG_BAUDRATE, priv.fixed_clk_rate); } static inline void _debug_uart_putc(int ch) From patchwork Thu Jun 13 11:09:26 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1947378 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=KWqwGRic; 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 4W0MZW3nTjz20Xd for ; Thu, 13 Jun 2024 22:45:23 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 9E38D88927; Thu, 13 Jun 2024 14:43:57 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=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="KWqwGRic"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 5A693888D1; Thu, 13 Jun 2024 13:10:29 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com [IPv6:2a00:1450:4864:20::629]) (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 639A4888F8 for ; Thu, 13 Jun 2024 13:10:27 +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-ej1-x629.google.com with SMTP id a640c23a62f3a-a6f1f33486eso50373266b.3 for ; Thu, 13 Jun 2024 04:10:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718277027; x=1718881827; 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=LV+Jt19oXYiKLeTjJLpt7yR2GDuRd0rePLdFN8b780U=; b=KWqwGRice96euTvGyzvu7t4SgPkYT1dj+w5z1WPV6tYWrJo9au+Qje1luIvmstQ3lN G9ZmOoWXvehPUKLDmZCxtd89qnfBDC6qI5q8hUrjBi4YC+KC06hBCtYf1+YJ/FIy8Fs+ lEp0Tr/cCXtjZswCP5aawUTM3OVLAyPWi/eLNrDQELatf4xn6KBJsd3P5K0uYblleHvs 40H6vNQLfsfOhLL93ADMbrYMqsyN28fHOcQhkqvbFiaW95Z9knRyz0wVa64zlQqqjYAU ODXEZY19smQ8iaFjGq+MxEzrt6GykDHm3V0ThAc7lbEcPX+Oz2V5hwLGx6kzgm1DdIYI lE2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718277027; x=1718881827; 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=LV+Jt19oXYiKLeTjJLpt7yR2GDuRd0rePLdFN8b780U=; b=GNFGEprFk2QZyWFNm6M5kR+l95667QC7JEE18411pNF4nG9kqZhsE+z1gLWeCdUi+l vYb03UoKaFLByd3P3Jfx83/Yj1NG3L+G9M0Z+zpVKrGP2+ZqCHfv4pcX7LeMQbIjeFRs BwO8Fnv4lwb8WHZoQS+P0yxBpF/TgNBfyt2eU9trT8Zgus4zJHA1R/306lzJd5kdDEad LB6Sf6HxlAgHDH2QsVQ6qwz0gKn2jNgOxBiCyoQ/Gpuo25r5fK4g/7Tm5ydnhJSPcPPx 2DfwYnW3kP7pKTyx0Ra40nm9qT/lqnLkEnGGP+NXDb1kR9/2DdStl9zSwgvchVCeRbUb yRTQ== X-Forwarded-Encrypted: i=1; AJvYcCWt2HN3+L+Q4T/mY2yRdJL9CFdbpPTI7p0aL9pPmkdtMcGJ0NY6r7OoRD7Z5jURf3KBqXI/Z3BZTcLrzYl8sZsDY/oapA== X-Gm-Message-State: AOJu0Yxl23CGTNESpgoiu+hTyW3yyq/3uTYIbCGVbit4au5G+aRciwTf HW7zS9i5pQZWebrqjiSylfIOlnv316OHcqbtq4AQBW3bhKEKCh0Q X-Google-Smtp-Source: AGHT+IHDDdFL5rRg3QPEKqEplmdCho8CtRf8hyOjMbU/oU0cD5z38IfVUFrze+TvxVGju2h6rm8eTg== X-Received: by 2002:a50:cd55:0:b0:57c:8e57:c3f0 with SMTP id 4fb4d7f45d1cf-57caaabd37amr3757634a12.16.1718277026486; Thu, 13 Jun 2024 04:10:26 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id a640c23a62f3a-a6f56f416dfsm60580366b.164.2024.06.13.04.10.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jun 2024 04:10:26 -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 , Bin Meng , Sergei Antonov , Leo Yu-Chi Liang , Simon Glass , Christian Marangi , Mayuresh Chitale , Mason Huo , Mark Kettenis , Sumit Garg , John Crispin , Heinrich Schuchardt , Minda Chen , Marek Vasut , This contributor prefers not to receive mails , Stefan Roese , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v2 08/14] mmc: mediatek: add support for upstream linux clock and property Date: Thu, 13 Jun 2024 13:09:26 +0200 Message-ID: <20240613110949.11076-9-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240613110949.11076-1-ansuelsmth@gmail.com> References: <20240613110949.11076-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Thu, 13 Jun 2024 14:43:53 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Add support for upstream linux clock and map U-Boot property to the one use in upstream linux where supported. Also add handling for the use_internal_cd that on upstream is hardcoded enabled on mt7620. Signed-off-by: Christian Marangi --- drivers/mmc/mtk-sd.c | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/drivers/mmc/mtk-sd.c b/drivers/mmc/mtk-sd.c index 296aaee7331..65b6b02e759 100644 --- a/drivers/mmc/mtk-sd.c +++ b/drivers/mmc/mtk-sd.c @@ -336,6 +336,7 @@ struct msdc_compatible { bool enhance_rx; bool builtin_pad_ctrl; bool default_pad_dly; + bool use_internal_cd; }; struct msdc_delay_phase { @@ -366,6 +367,10 @@ struct msdc_host { struct clk src_clk_cg; /* optional, MSDC source clock control gate */ struct clk h_clk; /* MSDC core clock */ + /* upstream linux clock */ + struct clk axi_cg_clk; /* optional, AXI clock */ + struct clk ahb_cg_clk; /* optional, AHB clock */ + u32 src_clk_freq; /* source clock */ u32 mclk; /* mmc framework required bus clock */ u32 sclk; /* actual calculated bus clock */ @@ -1638,6 +1643,11 @@ static void msdc_ungate_clock(struct msdc_host *host) clk_enable(&host->h_clk); if (host->src_clk_cg.dev) clk_enable(&host->src_clk_cg); + + if (host->axi_cg_clk.dev) + clk_enable(&host->axi_cg_clk); + if (host->ahb_cg_clk.dev) + clk_enable(&host->ahb_cg_clk); } static int msdc_drv_probe(struct udevice *dev) @@ -1651,6 +1661,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) @@ -1716,18 +1729,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"); @@ -1776,6 +1802,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 = { @@ -1806,7 +1833,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 Thu Jun 13 11:09: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: 1947379 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=V54Bqc5U; 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 4W0MZj50Zdz20Xd for ; Thu, 13 Jun 2024 22:45:33 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 2BC5F8891E; Thu, 13 Jun 2024 14:44:03 +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="V54Bqc5U"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id F1B0D888D1; Thu, 13 Jun 2024 13:10:30 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com [IPv6:2a00:1450:4864:20::631]) (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 17A5F888EB for ; Thu, 13 Jun 2024 13:10:29 +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-ej1-x631.google.com with SMTP id a640c23a62f3a-a6f1c4800easo108903466b.3 for ; Thu, 13 Jun 2024 04:10:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718277028; x=1718881828; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=+mEXw7F2lJQQgW+4oCLpZWuN1JwwLw7u8qEl078/N1E=; b=V54Bqc5UD7jILXRTpcJu3OpCnkTezDkQvStZmSFy3syH4m0vYNDOPu3btoABxCPBf9 wVtYSZoMeks1y/hE6VQavkiugBgvRT65SulQZCUMvKhUyZDD7Tbet1RrGSOTPNjlekIM JNAu5dcHoCo9LL1RHd4FA1AwDdkMYeI7Vv/JxET9xNXh5ckuX+uUwHCpMXf7goJ4ZqF4 kUdECQiOGY4QP8p5NWi+xsAKL+G3aQ3OhYswP5WAB7BShRYvLHpQSPlN6cR8gnvHjGkS aN156V5J6plOcR9Tj9E/Ya0549WxEic3J2n2HSwqHpECv+DovP8o/QaoogY9VoVvp2u0 Eusg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718277028; x=1718881828; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+mEXw7F2lJQQgW+4oCLpZWuN1JwwLw7u8qEl078/N1E=; b=L2Lq1RuMvMmHSa4AD6lwg3hUofvlew+zJp+Bs9MkdON1ZsM33O14ZtXEGWvfVcTYgv AuYO3ybhO5wf75mWKLFvt0pB/gervaiaRMgfElhxcp/VLAfsPYHV/A92X7Lhc/KFjvAg bYd2LjTc0ED33hMaRrVga0NUDxcjHPu8lNhBh0jqkbRb8OjnNrolpBffLFROJ5mgTJNK JRr5r+MMJNf3CWcRxM4CsetLk8BrNwsGpXfRktzLgRHEQYF2s+wvkd/vDJDwRp7fkdiK yP0HIESK3cYwk21MOj27uSONXHIffSwvETrZndBS25p2qkpmuPbGX84BgY4i2g+OJ2l3 qdHw== X-Forwarded-Encrypted: i=1; AJvYcCXWN8VFNvod5YqV4CUbF9R/P2luVAiP4Tw7EHalAiBPbfUAO6VncN0nbzM1e/B/dbry2iRnUIfewRKBsrzGZxbz8ZayNA== X-Gm-Message-State: AOJu0YzgAF3D7dVHQQFL3F9r9J87gwNulXY4IXWfOBSkQ6V7BolLGxfk IG+sToImJ3W0Ayk7gp0sDwSpt3pEIghOpoBzmAq2ZYii84Rr20EW X-Google-Smtp-Source: AGHT+IF9DFB3OsBM0QccNoafPzKxukCene5Kzvg/2ePEeyBzESJbsfLWyXR6eCB1TyWmUGzE4Gx29g== X-Received: by 2002:a17:906:a199:b0:a68:ece7:8db5 with SMTP id a640c23a62f3a-a6f47d36429mr262342866b.31.1718277028348; Thu, 13 Jun 2024 04:10:28 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id a640c23a62f3a-a6f56f416dfsm60580366b.164.2024.06.13.04.10.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jun 2024 04:10: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 , Bin Meng , Sergei Antonov , Leo Yu-Chi Liang , Simon Glass , Christian Marangi , Mayuresh Chitale , Mason Huo , Mark Kettenis , Sumit Garg , John Crispin , Heinrich Schuchardt , Minda Chen , Marek Vasut , This contributor prefers not to receive mails , Stefan Roese , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v2 09/14] clk: mediatek: mt7981: support alternative compatible for fixed-plls Date: Thu, 13 Jun 2024 13:09:27 +0200 Message-ID: <20240613110949.11076-10-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240613110949.11076-1-ansuelsmth@gmail.com> References: <20240613110949.11076-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Thu, 13 Jun 2024 14:43:53 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Support alternative compatible for fixed-plls clocks used upstream with the compatible mediatek,mt7981-apmixedsys. Signed-off-by: Christian Marangi --- drivers/clk/mediatek/clk-mt7981.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/clk/mediatek/clk-mt7981.c b/drivers/clk/mediatek/clk-mt7981.c index 7fcb81419cd..13dc3df0e9e 100644 --- a/drivers/clk/mediatek/clk-mt7981.c +++ b/drivers/clk/mediatek/clk-mt7981.c @@ -543,6 +543,7 @@ static const struct mtk_clk_tree mt7981_infracfg_clk_tree = { static const struct udevice_id mt7981_fixed_pll_compat[] = { { .compatible = "mediatek,mt7981-fixed-plls" }, + { .compatible = "mediatek,mt7981-apmixedsys" }, {} }; From patchwork Thu Jun 13 11:09: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: 1947380 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=fNwLlnnZ; 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 4W0MZw0Z8jz20Xd for ; Thu, 13 Jun 2024 22:45:44 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 87DBE88931; Thu, 13 Jun 2024 14:44:03 +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="fNwLlnnZ"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id E7EF7888FC; Thu, 13 Jun 2024 13:10:32 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com [IPv6:2a00:1450:4864:20::633]) (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 05B78888EB for ; Thu, 13 Jun 2024 13:10: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-ej1-x633.google.com with SMTP id a640c23a62f3a-a6267778b3aso78580966b.3 for ; Thu, 13 Jun 2024 04:10:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718277030; x=1718881830; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=F97OdxFh7m7etkRsVtKsfGsLMsJwZFYqELX6uCo4BS8=; b=fNwLlnnZ2Hq53YUDfvwXE/+ud8nk0gzgkZl0gtzhZQOMXN39bEj5kiUNu4TBQ37MwB 2LCk0XjM91BwBk3z1/5C/BMlJUK/8SF3opm3ZYLyftZCTZnwfRqkIreWhrILPG1fBqSY O1xXKeq5jO29v/ELSeLerg7H+jNcSxFhOglR0Zn2KVpNqhXd5CjIQmTJdL27et1600MX sg+GhrHHdlyz/LDIlQzO6YIr44MG3kkJqmoLr4vITeQRCNtoI9PlLn/WsPCDyCyU3cDv UTdZSgkTAKRWPyIAIo8f8UtgTQF/d30mBZPCqi+eapUQnTFtxz2hnaqnYMpeQVIquVa9 17/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718277030; x=1718881830; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=F97OdxFh7m7etkRsVtKsfGsLMsJwZFYqELX6uCo4BS8=; b=jPn8UQsnrmRyyoRBIj6xYJT6eqyTaiT1CYNiv+VsUluRM/i7chngcgC9DMs/1KPcB0 N1XMk8eO8b1uVmzSqNrmeB7LtoLN2JrrajS+6CUSvJuinYs1NpVUf77Ukb5CGSrZu7LT kcfFCMCGb2MzbAqtQ3DCLDpGQoD1NkiEPTL99ltTnzE6FNzFspahizQEf85HcpApZmYV H/QTRbCma1Lg5rSl9zvjwfZmMT+/ifXmNDZP9lrl9AjHYeSPqJ8EGIodrNYDMk2/HSgC eV4SZvkBioUHytX3IfM7Tz8MeqGvQK0boAC9CzSJ8k/KOZPCl4bJR9L8OCreVGBLE47i D9+w== X-Forwarded-Encrypted: i=1; AJvYcCVXs3HvA7DkIyFWrvlWZ0qh1t1zp7TVgGFWwIFh3oO79iVGQ9c5xZTEezNqVN2gJEhUOcGbMH1J2tlq9dscJzVYj19jIA== X-Gm-Message-State: AOJu0Ywy+A16Pb+3/rYxAXjPC2ONrHz5vxQZ7G1wbHaS6g9m+7HO53+L HxlfOhbcGNPJCVooepsy/vDwslJ0LRLru1BuRd1eI+J2PoAxfIzz X-Google-Smtp-Source: AGHT+IGrIp0gWNGksNjuIInMvUkCr1YDYlUnholzFrgC/WA4E9IgW/Z4BjMjEDqMY4lqPyw29daH3g== X-Received: by 2002:a17:906:aada:b0:a6e:fb3a:b661 with SMTP id a640c23a62f3a-a6f4801bf90mr273831166b.68.1718277030230; Thu, 13 Jun 2024 04:10: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 a640c23a62f3a-a6f56f416dfsm60580366b.164.2024.06.13.04.10.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jun 2024 04:10:29 -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 , Bin Meng , Sergei Antonov , Leo Yu-Chi Liang , Simon Glass , Christian Marangi , Mayuresh Chitale , Mason Huo , Mark Kettenis , Sumit Garg , John Crispin , Heinrich Schuchardt , Minda Chen , Marek Vasut , This contributor prefers not to receive mails , Stefan Roese , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v2 10/14] pinctrl: mediatek: add support for gpio-controller property in root node Date: Thu, 13 Jun 2024 13:09:28 +0200 Message-ID: <20240613110949.11076-11-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240613110949.11076-1-ansuelsmth@gmail.com> References: <20240613110949.11076-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Thu, 13 Jun 2024 14:43:53 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Add support for gpio-controller property in root pinctrl node. This is to follow upstream linux DTSI that doesn't define the gpio-controller and cells in dedicated nodes. Signed-off-by: Christian Marangi --- drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c index 0baef57c1c2..7465e236bc8 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c +++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c @@ -762,6 +762,15 @@ static int mtk_gpiochip_register(struct udevice *parent) if (!drv) return -ENOENT; + /* + * Support upstream linux DTSI that define gpio-controller + * in the root node (instead of a dedicated subnode) + */ + if (dev_read_bool(dev, "gpio-controller")) { + node = dev_ofnode(parent); + goto bind; + } + ret = -ENOENT; dev_for_each_subnode(node, parent) if (ofnode_read_bool(node, "gpio-controller")) { @@ -772,6 +781,7 @@ static int mtk_gpiochip_register(struct udevice *parent) if (ret) return ret; +bind: ret = device_bind_with_driver_data(parent, &mtk_gpio_driver, "mediatek_gpio", 0, node, &dev); From patchwork Thu Jun 13 11:09: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: 1947381 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=OjQy1RZ2; 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 4W0Mb66FqLz20Xd for ; Thu, 13 Jun 2024 22:45:54 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id EA94F88907; Thu, 13 Jun 2024 14:44:03 +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="OjQy1RZ2"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id CC773888F2; Thu, 13 Jun 2024 13:10: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,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com [IPv6:2a00:1450:4864:20::631]) (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 CFCD3888F6 for ; Thu, 13 Jun 2024 13:10: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-ej1-x631.google.com with SMTP id a640c23a62f3a-a6ef8bf500dso102236766b.0 for ; Thu, 13 Jun 2024 04:10:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718277032; x=1718881832; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=xFqKPNJ72o9/wknPsjhm4e1xJFjgwdxeCZsRwZeeCQA=; b=OjQy1RZ29xjC2dAIp4x8h3IajD+ErHZXS3qWc3hCJeQ7ZTkMhXIYfFbbjODzrbwSse lAO9uBC/VQ9LWWmwliA68wzLFW4X2dJjvDwjZjfrDyL3rw2vA2gPIzMwPA/MMS0SwVji sRLbjcTLjUzKRdTJuoQCn/8UNL3vkhcDenzwFNtTEfcSggIscaL2lYjB9icBh0VVveOA umJzSG+415wguVQ0c4kMBr19scWi/xFh/kChwdW4dHqz28W9U5d0+zHN+wP56KBl8YUo z0rvOagIOH1LeDwEjQWRfKKa5iJBm+vCJZnH9g8UtcbdIxWcmErEc5RTJHsN6xJYhR9b HUrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718277032; x=1718881832; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xFqKPNJ72o9/wknPsjhm4e1xJFjgwdxeCZsRwZeeCQA=; b=Q/oPI68d+dIf60W3HVjm6qWcL5h0FeWy4tYvLReZziSyVhM4Vm+44RseQ2o6CnQSHA WZXp3K+G0N8W9+uNUhXytzL1nDVjrI+nuwMrVSeM0hB1W+P3ycV0svSskS4UvX+aqy7+ by0nPQGwor3SQygoojBEQSXXvQ2yZ/uQryvSlZm4E8Ek0xIXR6QOBalnDu2MvzlG3FtR 9ZqX4pDI44OAdBTU8BJB2ZiSIp0bg/GY53uEofMy2tiBRaW8CsLxQgtlv5L8R/c4i0T2 7+0OIE0bfFHwg3EUNSmfOJ1zfcLNDYl+EsxdYDrPaIKOojJHkIDcGdpQEK57CLlru71t 4ntA== X-Forwarded-Encrypted: i=1; AJvYcCX01GeA9dqaixl53BoxhVaz9YlOQCsQ+EuRd59yl+k+O7dm2Kqh/Km3sHVS9wUt3vJ5cunljEZYTRl3j+1dRWncwIKEVw== X-Gm-Message-State: AOJu0Ywd0ATAfxsv5TR20bMiJnJADWtAFZ4Dw/rVqIBN9EswuQo5+4DB pIyih7vDjVBqm3HYEDjv++yDxbYBHvOHdsXJ/gxC67IR9sGCWzFp X-Google-Smtp-Source: AGHT+IFErzAgeuaHpt3Hh+LQN/qLXxRbTiRmrhbKs7741ahIDyvhTulxygRyVl+a0P3en3vO+TWhSg== X-Received: by 2002:a17:906:f109:b0:a6e:f3d7:4107 with SMTP id a640c23a62f3a-a6f47f80572mr299945866b.72.1718277032124; Thu, 13 Jun 2024 04:10: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 a640c23a62f3a-a6f56f416dfsm60580366b.164.2024.06.13.04.10.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jun 2024 04:10: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 , Bin Meng , Sergei Antonov , Leo Yu-Chi Liang , Simon Glass , Christian Marangi , Mayuresh Chitale , Mason Huo , Mark Kettenis , Sumit Garg , John Crispin , Heinrich Schuchardt , Minda Chen , Marek Vasut , This contributor prefers not to receive mails , Stefan Roese , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v2 11/14] pinctrl: mediatek: mt7981: init device before relocation Date: Thu, 13 Jun 2024 13:09:29 +0200 Message-ID: <20240613110949.11076-12-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240613110949.11076-1-ansuelsmth@gmail.com> References: <20240613110949.11076-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Thu, 13 Jun 2024 14:43:53 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Upstream kernel linux define pinctrl for uart0, hence this pin group and pinctrl driver is needed before relocation. Add DM_FLAG_PRE_RELOC flag to init and mute mtk_serial error on early serial init. Signed-off-by: Christian Marangi --- drivers/pinctrl/mediatek/pinctrl-mt7981.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/pinctrl/mediatek/pinctrl-mt7981.c b/drivers/pinctrl/mediatek/pinctrl-mt7981.c index 3fa198ed79c..4bc4abe6518 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt7981.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt7981.c @@ -1050,4 +1050,5 @@ U_BOOT_DRIVER(mt7981_pinctrl) = { .ops = &mtk_pinctrl_ops, .probe = mtk_pinctrl_mt7981_probe, .priv_auto = sizeof(struct mtk_pinctrl_priv), + .flags = DM_FLAG_PRE_RELOC, }; From patchwork Thu Jun 13 11:09: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: 1947382 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=YIbwGa7Q; 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 4W0MbK6GGHz20Xd for ; Thu, 13 Jun 2024 22:46:05 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 56E8F88935; Thu, 13 Jun 2024 14:44:04 +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="YIbwGa7Q"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id A3867888F2; Thu, 13 Jun 2024 13:10: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,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com [IPv6:2a00:1450:4864:20::533]) (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 B3741883D3 for ; Thu, 13 Jun 2024 13:10: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-ed1-x533.google.com with SMTP id 4fb4d7f45d1cf-57a1fe6392eso1048269a12.0 for ; Thu, 13 Jun 2024 04:10:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718277034; x=1718881834; 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=iRxf/+F7nsIuagKDotcjsgjmEVW42+7OqG/ceBsX7sA=; b=YIbwGa7QdM2TttoZ9rNFDkqnPl9GQxafKq19WXp1au/0dmmHf6TY7+QhDQJPNscqpf HjLAvYPHmTfDy4xEzFXPDivFqFOkwaiww0+Xu6h9By3Su9EHc3uXUdxU4/5Tw4mncfPI rH3xYV5mSx/wLCQU3qu7ugIVjatbM8S4wmpZLewtzTt4Ss5lOieD4FcqSPG1aOn2vYnr Z2anuVXqZcEvntfBnbELkD66TTwrXmjdCSG+TjC/gVAkrYJ/+CzyQ7NsevbE2sE3dmu8 1lI10pwPfZLNpJ3MpcgI7AUBcWcK3SW8f7+3Qfl3o8JwdLlartgOswJm4KXTWHuPIaWh Ld6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718277034; x=1718881834; 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=iRxf/+F7nsIuagKDotcjsgjmEVW42+7OqG/ceBsX7sA=; b=s9K6zAc398pK47zZi3vHDiK/6z2QftaAHQa+AI4wQAJqCJKS+vucS23VmcPsF2oYz+ fyv8Qhld6yjp6UuBwzm+tCjbMKgaTvBKGl40OWnzkaOGT0nVoha2G/kzwoLJhniR+Tov qcObJTX2PJokJiLh9z1i9oihg2rAI4XRiZRyWG4mebarPOf8MQYD5Sox6PIVhM0EQt2s vdZ7CT6wDAXxRnp9Kf297Od+oJRsk/m9DX49PRRH6sCdC0vL8s6kq9b1NgX/ak47VGCw 0jSbueiBr86Nac+F1EIjVyUdBW3ZgbhQcIhyqNa9hKPJHYrw24naAXelBbgoFE8oVVGG l8Pw== X-Forwarded-Encrypted: i=1; AJvYcCW+Xn3ye4NsN2WKhjSvGKVVRuEAXY1odKeulId3CXu2FjnYVH9qHFh0bUklaWPiX+jQvQx6gZ1i76UaQDc0M3J+ksyKXQ== X-Gm-Message-State: AOJu0Yybwx9M4N+9KIEMNk1MrHlVFOXkUvtzBoXMYEJ2HWt6m2Rm2ll/ 4m01zA6fuB5mLawWTsI1uWFybOOnRTB2PtZ+Tl2AhsITviriiE4r X-Google-Smtp-Source: AGHT+IHRc1F58ABT84MbWFmqyVIDK4RsVcegrDKAD0ZcpixjkgU/eaVcMfyYNfHQqPNcl+PAyNJplw== X-Received: by 2002:a17:906:3710:b0:a6f:10d0:fb85 with SMTP id a640c23a62f3a-a6f47f7d121mr272323566b.19.1718277034018; Thu, 13 Jun 2024 04:10:34 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id a640c23a62f3a-a6f56f416dfsm60580366b.164.2024.06.13.04.10.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jun 2024 04:10: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 , Bin Meng , Sergei Antonov , Leo Yu-Chi Liang , Simon Glass , Christian Marangi , Mayuresh Chitale , Mason Huo , Mark Kettenis , Sumit Garg , John Crispin , Heinrich Schuchardt , Minda Chen , Marek Vasut , This contributor prefers not to receive mails , Stefan Roese , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v2 12/14] pci: mediatek: make pcie-phy optional for gen3 Date: Thu, 13 Jun 2024 13:09:30 +0200 Message-ID: <20240613110949.11076-13-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240613110949.11076-1-ansuelsmth@gmail.com> References: <20240613110949.11076-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Thu, 13 Jun 2024 14:43:53 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean 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 Thu Jun 13 11:09: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: 1947383 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=JZtjYD84; 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 4W0MbX60MPz20Xd for ; Thu, 13 Jun 2024 22:46:16 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id AE7C28893A; Thu, 13 Jun 2024 14:44:04 +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="JZtjYD84"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id BCE35888F2; Thu, 13 Jun 2024 13:10: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,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com [IPv6:2a00:1450:4864:20::632]) (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 D43F6888EB for ; Thu, 13 Jun 2024 13:10: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=ansuelsmth@gmail.com Received: by mail-ej1-x632.google.com with SMTP id a640c23a62f3a-a63359aaacaso132998566b.1 for ; Thu, 13 Jun 2024 04:10:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718277036; x=1718881836; 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=+82QDQJ9Z9VT3O7jHHnU+sHkthFfaQKa9JIG/vJ+Tug=; b=JZtjYD84lN4And6v5ALMVWnaUjJ5VHdK9xZpPWjAkXfjm//5wbnwnUUjsAMKLCTJyN LQD3bIgheMo3nAEdMpEmhYFvmkqyi/SaojXsn6dfAXmDA3kY5InFU1FOFhaPfxomh4eT kPqRlpmp4bhmfssyxd+oSZhYn2vnuX3th+5RLpQN7ywNP7WPiwRqQV5dkMOLwHPyWFCt UltZzFwp80I87fNCQTLJMdYXtG8l+eOkrsT1yjdMmjw6V9oYgJMQDIq/ZQ3tcyaqU02S dacHfoyYH3AIqTVjYbcLX0mSEOW8iN4Xi7Q+rqqkaEYFZn5ZdQ+RBCoZqHR5IUO/5qEO v1sA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718277036; x=1718881836; 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=+82QDQJ9Z9VT3O7jHHnU+sHkthFfaQKa9JIG/vJ+Tug=; b=CSb6I1D+ukSMFvGyHWixmYq4sNbZTAUe5cTl1e/ezY6vq8Gzo+wsXt/+raQkWoSTdn dnalVVQaWCKoQBDYF39plkbAJd9LJN0oDFTn4JDvuVbrfxYsp/sclDG9WSgFqvFdwI9x lrXmKba6se/QNAGtx0gvdru2EOsYCDagnp7E+tut6RNhk2FyVIEEs6WhErPW+BHxlkT6 SmcoKiVwt2OE/zxKKhyHeD3sVWXvE0FCs4GAvhDXwgyXp5fTiuOw+zVOdaZ7Finn4Pwp MjW6CNsUa+JJaKIlDW3krXG04CjWJPXzCp/ad6ch+HmLk9DmanpEEtd0JcR0yQkDH1tx djgw== X-Forwarded-Encrypted: i=1; AJvYcCV3cj6pEaKR8h+eEHR0Ko7B78rNAugRE+pk5eOnm/kRU5U08KFSJ/fHmM0RVtA/VjQXLBwaSBEh81RfCA/+8UwTKRyN5g== X-Gm-Message-State: AOJu0Yw1WKNzNWbSRR6vmcKGl1O7rGizmfT0wqQuzqZ9+B/T9mFI4Xgb uEfTazb+UIwSjmbkugv5SCBujFAlamHYqZKDmMpI5C0xbQxR6clq X-Google-Smtp-Source: AGHT+IF8uX+ileWF0CF5Sr1iAdGPyX/QjF9QSo/BtlF9vCBPd3tHezWYW95iWen/rOuOQynllfT1pA== X-Received: by 2002:a17:907:86a0:b0:a6f:4bc1:276a with SMTP id a640c23a62f3a-a6f4bc127c3mr337457766b.12.1718277035886; Thu, 13 Jun 2024 04:10: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 a640c23a62f3a-a6f56f416dfsm60580366b.164.2024.06.13.04.10.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jun 2024 04:10:35 -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 , Bin Meng , Sergei Antonov , Leo Yu-Chi Liang , Simon Glass , Christian Marangi , Mayuresh Chitale , Mason Huo , Mark Kettenis , Sumit Garg , John Crispin , Heinrich Schuchardt , Minda Chen , Marek Vasut , This contributor prefers not to receive mails , Stefan Roese , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v2 13/14] clk: mediatek: mt7988: support alternative compatible for fixed-plls Date: Thu, 13 Jun 2024 13:09:31 +0200 Message-ID: <20240613110949.11076-14-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240613110949.11076-1-ansuelsmth@gmail.com> References: <20240613110949.11076-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Thu, 13 Jun 2024 14:43:53 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Support alternative compatible for fixed-plls clocks used upstream with the compatible mediatek,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 Thu Jun 13 11:09: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: 1947384 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=LkI58/5T; 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 4W0Mbl65Ljz20Xd for ; Thu, 13 Jun 2024 22:46:27 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 1356288949; Thu, 13 Jun 2024 14:44:05 +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="LkI58/5T"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id DF1EE883D3; Thu, 13 Jun 2024 13:10: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,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com [IPv6:2a00:1450:4864:20::62c]) (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 AF898888E8 for ; Thu, 13 Jun 2024 13:10: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=ansuelsmth@gmail.com Received: by mail-ej1-x62c.google.com with SMTP id a640c23a62f3a-a6f1dc06298so109815066b.1 for ; Thu, 13 Jun 2024 04:10:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718277038; x=1718881838; 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=0KdW5MS679ufZElXZvy3BWTS2swPQb6aR7NpsA9F4BY=; b=LkI58/5Tkv+IOLQNs+UPAvJ09zG8lRHnSjq87P9Imrk0FighdOE6N6oI8OGBPzSbxC 3KPEFUa55AxsRFeHFHhYqeAYPQcSwTpZ07rNQOA77wAYoiJhzPcDsuHpdVKKFbd1PnrK x75J8y2FCcXYnBnZMIZqDuA206oEk+ezruA54DoQ6OvOuX30KAlYv71DkqaNw8tQmqYS CvHS/b5o404zGZIgG57Leu+5iloXMgmsi4d7wzuYl7sOI+qe0uWWxt7HgTijapLPwJEf ZRpTXPn28g1e8xLGas0/tUvxCNy+kmzK6GMtALK9qmwENLenE1pzRwGNndTG2n1M+Tzr emhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718277038; x=1718881838; 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=0KdW5MS679ufZElXZvy3BWTS2swPQb6aR7NpsA9F4BY=; b=VEN2e9c+W+XBConEbJ7guivsUMFDpqf7DoFfVdhIRI6C3MBxZzkTeBurNn7C/p2Ia1 9K21aN/WOGLrskhElyJCXrIk+QlaysBMniyTZuqgx5uYIyUNzlRKcME+MRyRpldm6fZc Um43SSPlVzfVttUn2py0JD6M9gKk6Mm25QGCG07JBA/ohqFIL338JmjUL1smDRzIChmF nYWIp4WqDVm5WaPRnlaOWeHivdkEWLKdX565r70iGdCPZ4qiz1wQ7A8bvzfLPL1d1HUX b1fJo5kWV+UO+MfWCPiEabiRIsQPaGuee/eLWPFRYzV4aw57t+Tk/hApt5v57uNCzitV T9VA== X-Forwarded-Encrypted: i=1; AJvYcCVQxltNkor1p9EyjRiQZUfFo+Juy7qkPQc6dyARzSp7/lsVsX/4+Bb5rfX+OIOcKEvOgfN1LOFnRJOmlIHnqloMfxrdVg== X-Gm-Message-State: AOJu0YyVWDvGeBF1XRF1SkrkcSALyf6bNbska6t5bnChGsSe0g+OIx6+ h5lYRIawICGPSFKgFk8lbssNyeMU+4Xw9eHOvqoiIGlhzR4dVQ39 X-Google-Smtp-Source: AGHT+IHnHJb0+eIzQuS0Es+uYNAg3zRLGkPLDm0wYxdz44H1MWkn9iMksjm2ZJEEsO+cnb8JF/MvXg== X-Received: by 2002:a17:906:ad84:b0:a6f:1445:9de5 with SMTP id a640c23a62f3a-a6f47d5cef8mr256443366b.68.1718277037956; Thu, 13 Jun 2024 04:10:37 -0700 (PDT) Received: from localhost.localdomain (93-34-90-105.ip49.fastwebnet.it. [93.34.90.105]) by smtp.googlemail.com with ESMTPSA id a640c23a62f3a-a6f56f416dfsm60580366b.164.2024.06.13.04.10.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jun 2024 04:10:37 -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 , Bin Meng , Sergei Antonov , Leo Yu-Chi Liang , Simon Glass , Christian Marangi , Mayuresh Chitale , Mason Huo , Mark Kettenis , Sumit Garg , John Crispin , Heinrich Schuchardt , Minda Chen , Marek Vasut , This contributor prefers not to receive mails , Stefan Roese , Peter Robinson , Sam Shih , u-boot@lists.denx.de Subject: [PATCH v2 14/14] clk: mediatek: mt7986: support alternative compatible for fixed-plls Date: Thu, 13 Jun 2024 13:09:32 +0200 Message-ID: <20240613110949.11076-15-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240613110949.11076-1-ansuelsmth@gmail.com> References: <20240613110949.11076-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Thu, 13 Jun 2024 14:43:53 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Support alternative compatible for fixed-plls clocks used upstream with the compatible mediatek,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" }, {} };