From patchwork Wed Nov 8 00:40:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jim Liu X-Patchwork-Id: 1861355 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=ioFJo5/Y; 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 4SQ5qf4M8mz1yQl for ; Wed, 8 Nov 2023 11:41:18 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id E9E4F876F3; Wed, 8 Nov 2023 01:40:49 +0100 (CET) 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="ioFJo5/Y"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 277E6876ED; Wed, 8 Nov 2023 01:40:49 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: * X-Spam-Status: No, score=1.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,RCVD_IN_SBL_CSS,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.2 Received: from mail-pj1-x1033.google.com (mail-pj1-x1033.google.com [IPv6:2607:f8b0:4864:20::1033]) (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 75C7C876DD for ; Wed, 8 Nov 2023 01:40:46 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jim.t90615@gmail.com Received: by mail-pj1-x1033.google.com with SMTP id 98e67ed59e1d1-28019b66ad5so5633958a91.3 for ; Tue, 07 Nov 2023 16:40:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1699404045; x=1700008845; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=VKIveplpuBkXuijXAQoTSeDExj69Kip/pLHYYIZOmws=; b=ioFJo5/Y2YTVDKLCLkVuBVNO3/g5T4g3Eo0nT5S4HYXaYsW1cLjB0k8KmKxzRvZqZv 5RLoF767NuAdjZWWDQTs+yDhfvwXaBm/864TDv2ZB31mZhbDB7BFTKEfIhJHooklHzPb de5IKyleytEbMOupYxpSTk322FF7L+SShsg5H1N1hDdef0SD/FwrmdrgKtUEC/lwWyM2 i5ngNs6wQyEBRJvLqc8MtMi/dc7BlPjJN46HVy3BqGVhnc9SCyGXxZ0eL5PBX529xbvj lXL5UDrY346NYhvHHLJ45VNlXpIWE+vJRt+IEJ8XE2Am4o8Vbbsxng8eHdnoLN3/VIUo BbKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699404045; x=1700008845; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VKIveplpuBkXuijXAQoTSeDExj69Kip/pLHYYIZOmws=; b=j0yBWHavX8RAOugBAPaJixBAX+5Nd5WGo2SSe0fjBAheajDtJXAMgWPMVn63UIlY2P Qwx+RAX5Xogj8Vtnm8CJBi/KR7Wz+IwSdYVWIxgtGuEuz42njOc75o7UJAeA3bTTND/M AAkRVqRRXZqsIncfL+LN7SiyLT0+X9JQ4/dLRhyBP4XXhHDcl1PnKN+Hycjo7qCfMSs2 D1YsfwdZpEhE1jFKtJgqzX2MwUbS/KzTwOVk6NZEGZDerTDgUqvYyKKyHPUE/Q4exGc2 le5sC4zfpJo04ywxpa4iWwL1WfgbL7aw76zlTUE0xe0CisKxbQvBKTyQsQx2KA0Kvhfv rvCg== X-Gm-Message-State: AOJu0YynLP3ZiZoESCE2wKO9KuCk9HkIAaibuPRGueXDK3g7nQScZ0hM x7v4uJfXH7PZodRroBqj7aE= X-Google-Smtp-Source: AGHT+IH5qxr5wkQhTJiKEVTaZcvV8h/x1MGXD9P8JRonibK8c6DAgAiBGVS57KO2umkPi7wA2GvYsQ== X-Received: by 2002:a17:90b:4aca:b0:27d:880d:8645 with SMTP id mh10-20020a17090b4aca00b0027d880d8645mr286666pjb.49.1699404044715; Tue, 07 Nov 2023 16:40:44 -0800 (PST) Received: from cs20-buildserver.lan ([180.217.132.54]) by smtp.gmail.com with ESMTPSA id mv21-20020a17090b199500b0028066f3c373sm384284pjb.17.2023.11.07.16.40.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Nov 2023 16:40:44 -0800 (PST) From: Jim Liu X-Google-Original-From: Jim Liu To: JJLIU0@nuvoton.com, YSCHU@nuvoton.com--compose, KWLIU@nuvoton.com, jim.t90615@gmail.com, trini@konsulko.com Cc: u-boot@lists.denx.de Subject: [PATCH v1 1/4] arm: dts: npcm845-evb: fix/add node and aliases name Date: Wed, 8 Nov 2023 08:40:24 +0800 Message-Id: <20231108004027.281383-2-JJLIU0@nuvoton.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231108004027.281383-1-JJLIU0@nuvoton.com> References: <20231108004027.281383-1-JJLIU0@nuvoton.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Modify spi and usb aliases name. Add dt-binding for usb phy define and fix usb phy reset error. Add tpm and otpee node. Signed-off-by: Jim Liu --- arch/arm/dts/nuvoton-common-npcm8xx.dtsi | 2 +- arch/arm/dts/nuvoton-npcm845-evb.dts | 29 ++++++++++++++----- arch/arm/dts/nuvoton-npcm8xx-u-boot.dtsi | 2 +- include/dt-bindings/phy/nuvoton,npcm-usbphy.h | 14 +++++++++ 4 files changed, 38 insertions(+), 9 deletions(-) create mode 100644 include/dt-bindings/phy/nuvoton,npcm-usbphy.h diff --git a/arch/arm/dts/nuvoton-common-npcm8xx.dtsi b/arch/arm/dts/nuvoton-common-npcm8xx.dtsi index fabe5925b7..8478367711 100644 --- a/arch/arm/dts/nuvoton-common-npcm8xx.dtsi +++ b/arch/arm/dts/nuvoton-common-npcm8xx.dtsi @@ -133,7 +133,7 @@ ranges = <0x0 0x0 0xf0000000 0x00300000>, <0xfff00000 0x0 0xfff00000 0x00016000>; - spi1: spi@201000 { + pspi: spi@201000 { compatible = "nuvoton,npcm845-pspi"; reg = <0x201000 0x1000>; pinctrl-names = "default"; diff --git a/arch/arm/dts/nuvoton-npcm845-evb.dts b/arch/arm/dts/nuvoton-npcm845-evb.dts index a93666cb41..0d3aaa0fff 100644 --- a/arch/arm/dts/nuvoton-npcm845-evb.dts +++ b/arch/arm/dts/nuvoton-npcm845-evb.dts @@ -2,6 +2,8 @@ // Copyright (c) 2021 Nuvoton Technology tomer.maimon@nuvoton.com /dts-v1/; + +#include #include "nuvoton-npcm845.dtsi" #include "nuvoton-npcm845-pincfg.dtsi" @@ -46,10 +48,10 @@ spi1 = &fiu1; spi3 = &fiu3; spi4 = &fiux; - spi5 = &spi1; + spi5 = &pspi; usb0 = &udc0; usb1 = &ehci1; - usb2 = &ehci2; + usb2 = &udc8; }; chosen { @@ -60,6 +62,17 @@ reg = <0x0 0x0 0x0 0x40000000>; }; + tpm@0 { + compatible = "microsoft,ftpm"; + }; + + firmware { + optee { + compatible = "linaro,optee-tz"; + method = "smc"; + }; + }; + vsbr2: vsbr2 { compatible = "regulator-npcm845"; regulator-name = "vr2"; @@ -149,6 +162,8 @@ snps,reset-active-low; snps,reset-delays-us = <0 10000 1000000>; snps,reset-gpio = <&gpio5 2 GPIO_ACTIVE_LOW>; /* gpio162 */ + phy-supply = <&vsbr2>; + phy-supply-microvolt = <1800000>; status = "okay"; }; @@ -179,7 +194,7 @@ status = "okay"; }; -&spi1 { +&pspi { status = "okay"; }; @@ -197,7 +212,7 @@ &udc0 { status = "okay"; - phys = <&usbphy1 0>; + phys = <&usbphy1 NPCM_UDC0_7>; }; &sdhci0 { @@ -207,12 +222,12 @@ &ehci1 { status = "okay"; - phys = <&usbphy2 3>; + phys = <&usbphy2 NPCM_USBH1>; }; -&ehci2 { +&udc8 { status = "okay"; - phys = <&usbphy3 4>; + phys = <&usbphy3 NPCM_UDC8>; }; &rng { diff --git a/arch/arm/dts/nuvoton-npcm8xx-u-boot.dtsi b/arch/arm/dts/nuvoton-npcm8xx-u-boot.dtsi index e49e564b79..4c6d5bed44 100644 --- a/arch/arm/dts/nuvoton-npcm8xx-u-boot.dtsi +++ b/arch/arm/dts/nuvoton-npcm8xx-u-boot.dtsi @@ -174,7 +174,7 @@ compatible = "nuvoton,npcm845-usb-phy"; #phy-cells = <1>; reg = <3>; - resets = <&rstc3 NPCM8XX_RESET_USBPHY3>; + resets = <&rstc4 NPCM8XX_RESET_USBPHY3>; status = "disabled"; }; }; diff --git a/include/dt-bindings/phy/nuvoton,npcm-usbphy.h b/include/dt-bindings/phy/nuvoton,npcm-usbphy.h new file mode 100644 index 0000000000..46946d377d --- /dev/null +++ b/include/dt-bindings/phy/nuvoton,npcm-usbphy.h @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +// Copyright (c) 2023 Nuvoton Technology corporation. + +#ifndef _DT_BINDINGS_NPCM_USBPHY_H +#define _DT_BINDINGS_NPCM_USBPHY_H + +#define NPCM_UDC0_7 0 +#define NPCM_UDC8 1 +#define NPCM_UDC9 2 +#define NPCM_USBH1 3 +#define NPCM_USBH2 4 +#define NPCM_MAX_USB_CTRL_ID 4 + +#endif From patchwork Wed Nov 8 00:40:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jim Liu X-Patchwork-Id: 1861356 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=H5AYvUx3; 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 4SQ5qs18Vqz1yQl for ; Wed, 8 Nov 2023 11:41:29 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id EF774876F9; Wed, 8 Nov 2023 01:40:55 +0100 (CET) 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="H5AYvUx3"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 47AA8876DD; Wed, 8 Nov 2023 01:40:54 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: * X-Spam-Status: No, score=1.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,RCVD_IN_SBL_CSS,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.2 Received: from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com [IPv6:2607:f8b0:4864:20::102a]) (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 485C4876F6 for ; Wed, 8 Nov 2023 01:40:50 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jim.t90615@gmail.com Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-27db9fdec0dso5923295a91.0 for ; Tue, 07 Nov 2023 16:40:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1699404048; x=1700008848; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=opjCm2+7u+cdZDEcJE69PX72nKIigJdJRX5lfThnolY=; b=H5AYvUx3jX6+2sfR8172Piaiw1A72EGhOnJDP3Zg6aLz+LM4qjfjylJinSeyvKGstj DCUbT/n44oBRppYP9lAETpn/aIRBtUYR8RZ//FN2Jqu01ITbKHV4Eo4jY4XHNT5khjoW mWEy3U76eeDI59Ka3NpAHhGQwkrv4y/3jzg6fWNFY6AjqDdAeOAY+PtuDhTyh1THJelQ 4iK0K70E8dg7fdGoYNGejDXFeo7TXrh1IKFm+zdAFDDE5EQ60K+9aFHaA/jc0HfMACxD rwt1y1B0g/rC2p6t6yjesVnvkSHW7dQF8KmQqmNlvSWlxGZGUFusUZw12M0gzMMR67g0 aABQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699404048; x=1700008848; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=opjCm2+7u+cdZDEcJE69PX72nKIigJdJRX5lfThnolY=; b=UCT3I7G1mj0eRLK2ZOFi9GFMg3n73EbImhX4AfAtCSqubc6RA164u526GruNTo/He2 QzSux3afFS9yY3TqQE5jIWgYDCC+pdDaC463MDOqBVChe7cc4s42JAsOgtx8seHs8V5a W2WBuC/TNS+j4vSG9coBC7Hp007Wyb/FrYkVnWBcW2KNRYVWm+OfNpIVg+D7PRDwKHdr 3vgyrDgHXMwlqqvX18wCDZp+pjnvTfIuvZTgYBvLJW2tyqOWHDS/Vzrp9vD9Zp4HxF3u ghiEhoFYAix2vv95g5JZc8PQHwPGRpjZg7RMkiyKqgbD9PliaaCWnxsioD8D7cQdwNU0 zqaQ== X-Gm-Message-State: AOJu0Yx4mPh4VgEEkbyY9iVXejbHKD0kd7zrxmdCzOgvx+KOfRAozpTv NqhymYQQF6GAzN1+xzkLc/uZ1d37Ic4= X-Google-Smtp-Source: AGHT+IG5wOVwKvcq+vM8c4sEMvimRNkO+AXDdILOVIpPh46DkEn5l7QNIUC7hnOzJKgHGNSd090EYg== X-Received: by 2002:a17:90b:4c8f:b0:27c:e062:c464 with SMTP id my15-20020a17090b4c8f00b0027ce062c464mr346760pjb.37.1699404048551; Tue, 07 Nov 2023 16:40:48 -0800 (PST) Received: from cs20-buildserver.lan ([180.217.132.54]) by smtp.gmail.com with ESMTPSA id mv21-20020a17090b199500b0028066f3c373sm384284pjb.17.2023.11.07.16.40.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Nov 2023 16:40:48 -0800 (PST) From: Jim Liu X-Google-Original-From: Jim Liu To: JJLIU0@nuvoton.com, YSCHU@nuvoton.com--compose, KWLIU@nuvoton.com, jim.t90615@gmail.com, trini@konsulko.com Cc: u-boot@lists.denx.de Subject: [PATCH v1 2/4] board: nuvoton: update console environment variable Date: Wed, 8 Nov 2023 08:40:25 +0800 Message-Id: <20231108004027.281383-3-JJLIU0@nuvoton.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231108004027.281383-1-JJLIU0@nuvoton.com> References: <20231108004027.281383-1-JJLIU0@nuvoton.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean If CONFIG_SYS_SKIP_UART_INIT is enabled, calculate the current baud rate and update the "console" environment variable. Signed-off-by: Jim Liu --- board/nuvoton/arbel_evb/Kconfig | 1 + board/nuvoton/common/Kconfig | 9 +++++ board/nuvoton/common/Makefile | 1 + board/nuvoton/common/common.c | 71 +++++++++++++++++++++++++++++++++ board/nuvoton/common/common.h | 11 +++++ board/nuvoton/poleg_evb/Kconfig | 1 + 6 files changed, 94 insertions(+) create mode 100644 board/nuvoton/common/Kconfig create mode 100644 board/nuvoton/common/Makefile create mode 100644 board/nuvoton/common/common.c create mode 100644 board/nuvoton/common/common.h diff --git a/board/nuvoton/arbel_evb/Kconfig b/board/nuvoton/arbel_evb/Kconfig index 33c589f1fb..ed1c1ad8ee 100644 --- a/board/nuvoton/arbel_evb/Kconfig +++ b/board/nuvoton/arbel_evb/Kconfig @@ -15,4 +15,5 @@ config SYS_MEM_TOP_HIDE help Reserve memory for ECC/GFX/OPTEE/TIP/CP. +source "board/nuvoton/common/Kconfig" endif diff --git a/board/nuvoton/common/Kconfig b/board/nuvoton/common/Kconfig new file mode 100644 index 0000000000..61de7bc5f8 --- /dev/null +++ b/board/nuvoton/common/Kconfig @@ -0,0 +1,9 @@ +if ARCH_NPCM + +config SYS_SKIP_UART_INIT + bool "Skip UART initialization" + depends on NPCM_SERIAL + help + Select this if the UART you want to use is already + initialized by the time U-Boot starts its execution. +endif diff --git a/board/nuvoton/common/Makefile b/board/nuvoton/common/Makefile new file mode 100644 index 0000000000..52e77185c4 --- /dev/null +++ b/board/nuvoton/common/Makefile @@ -0,0 +1 @@ +obj-y += common.o diff --git a/board/nuvoton/common/common.c b/board/nuvoton/common/common.c new file mode 100644 index 0000000000..6da9d93e80 --- /dev/null +++ b/board/nuvoton/common/common.c @@ -0,0 +1,71 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (c) 2023 Nuvoton Technology Corp. + */ + +#include +#include +#include +#include +#include +#include + +#define UART_DLL 0x0 +#define UART_DLM 0x4 +#define UART_LCR 0xc +#define LCR_DLAB BIT(7) + +int board_set_console(void) +{ + const unsigned long baudrate_table[] = CFG_SYS_BAUDRATE_TABLE; + struct udevice *dev = gd->cur_serial_dev; + unsigned int baudrate, max_delta; + void __iomem *uart_reg; + struct clk clk; + char string[32]; + u32 uart_clk; + u8 dll, dlm; + u16 divisor; + int ret, i; + + /* If uart init is skipped, update the actual baudrate in boot arguments */ + if (!IS_ENABLED(CONFIG_SYS_SKIP_UART_INIT)) + return 0; + if (!dev) + return 0; + uart_reg = dev_read_addr_ptr(dev); + ret = clk_get_by_index(dev, 0, &clk); + if (ret) + return 0; + uart_clk = clk_get_rate(&clk); + setbits_8(uart_reg + UART_LCR, LCR_DLAB); + dll = readb(uart_reg + UART_DLL); + dlm = readb(uart_reg + UART_DLM); + clrbits_8(uart_reg + UART_LCR, LCR_DLAB); + divisor = dll | (dlm << 8); + baudrate = uart_clk / ((16 * (divisor + 2))); + for (i = 0; i < ARRAY_SIZE(baudrate_table); ++i) { + max_delta = baudrate_table[i] / 20; + if (abs(baudrate - baudrate_table[i]) < max_delta) { + /* The baudrate is supported */ + gd->baudrate = baudrate_table[i]; + break; + } + } + if (i == ARRAY_SIZE(baudrate_table)) { + /* current baudrate is not suitable, set to default */ + divisor = DIV_ROUND_CLOSEST(uart_clk, 16 * gd->baudrate) - 2; + setbits_8(uart_reg + UART_LCR, LCR_DLAB); + writeb(divisor & 0xff, uart_reg + UART_DLL); + writeb(divisor >> 8, uart_reg + UART_DLM); + clrbits_8(uart_reg + UART_LCR, LCR_DLAB); + udelay(100); + printf("\r\nUART(source %u): change baudrate from %u to %u\n", + uart_clk, baudrate, uart_clk / ((16 * (divisor + 2)))); + } + debug("Set env baudrate=%u\n", gd->baudrate); + snprintf(string, sizeof(string), "ttyS0,%un8", gd->baudrate); + env_set("console", string); + + return 0; +} diff --git a/board/nuvoton/common/common.h b/board/nuvoton/common/common.h new file mode 100644 index 0000000000..64a09670cb --- /dev/null +++ b/board/nuvoton/common/common.h @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright (c) 2023 Nuvoton Technology Corp. + */ + +#ifndef _NUVOTON_COMMON_H +#define _NUVOTON_COMMON_H + +int board_set_console(void); + +#endif /* _NUVOTON_COMMON_H */ diff --git a/board/nuvoton/poleg_evb/Kconfig b/board/nuvoton/poleg_evb/Kconfig index d3f4c1dd81..6f7f1ef157 100644 --- a/board/nuvoton/poleg_evb/Kconfig +++ b/board/nuvoton/poleg_evb/Kconfig @@ -22,4 +22,5 @@ config TARGET_POLEG_EVB endchoice +source "board/nuvoton/common/Kconfig" endif From patchwork Wed Nov 8 00:40:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jim Liu X-Patchwork-Id: 1861357 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=hat4h3fw; 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 4SQ5qz0lqfz1yQl for ; Wed, 8 Nov 2023 11:41:35 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 71D7C87701; Wed, 8 Nov 2023 01:41:08 +0100 (CET) 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="hat4h3fw"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 60BBC87701; Wed, 8 Nov 2023 01:40:58 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: * X-Spam-Status: No, score=1.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,RCVD_IN_SBL_CSS,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,UPPERCASE_50_75 autolearn=no autolearn_force=no version=3.4.2 Received: from mail-pj1-x1035.google.com (mail-pj1-x1035.google.com [IPv6:2607:f8b0:4864:20::1035]) (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 47983876FE for ; Wed, 8 Nov 2023 01:40:54 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jim.t90615@gmail.com Received: by mail-pj1-x1035.google.com with SMTP id 98e67ed59e1d1-2802e5ae23bso5909834a91.2 for ; Tue, 07 Nov 2023 16:40:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1699404052; x=1700008852; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=MIqc+LtJR8XSFza8jLL4TdU2jq6br49gv+0zSST3qgw=; b=hat4h3fwhrD3tfaP/a+qyH/7Eeb2lh2rTV4oaiplVkOoETmac4Dxpuf0N3/YR/T/C/ QrMYFMweUxIRC0+7ToRJ0lYUqd7YDrGRe43S6xgyKgPKlI+a9eek4MCjXD4djMjvLRPW 4nPtrbYOWG9RLNB//TM1gNJT6qeztQjzfPVVtHvdCJPv09Lfs4sfwTZ4O62DZPBb26Cr uSvFMBkkDM8+p+46A2iUUHKi2cg4ZorDS9wi1ndkIQ81qW2sle6FRqDykmQmQwlv9YOj cWlXMWBLRGKmK+4IKN4qslSYtmVRDJl9C3XaDmQt8gFxA1aM+EoeF/lfBKSh4itzooYN EwjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699404052; x=1700008852; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MIqc+LtJR8XSFza8jLL4TdU2jq6br49gv+0zSST3qgw=; b=PnVTbfAZH6c0W9Bqv2uSbs05NZ5vmmpAwPY9qOmz8hhWPoh3q+W1ubOJGw0bYU65nu An5E5zkcVMeIqF8c92VIJjEIxSqbuRTAsEshvn13bRlBTrx/nB8e7nIQ50/fgKyKS4HZ 1zycP7wF0EAkpqRM0x4C6JjiJx84ZWX00wqv6jzGinqvm1Wfa/r3JTV65j44OGKlVT9D 7vYJLE+0329Izh0yPxa3TyWw36aaRKvpbtsL5wrrD7ML6e0iOVegcOq9INJW2x/XaTFX NL0q0/TRBCyM5zRlwuL277l1EIoM6SPNwXoHJWWpA98n3/flGcmmS/w24x6jYVfjznfX LrBw== X-Gm-Message-State: AOJu0YwSqleZYiszO3yaXjnzkq7Wxo1SMOOOvPBx4GSFlrHWGoK6JbX6 Q+TvUWgyyWFd9ekqeVnjGpo= X-Google-Smtp-Source: AGHT+IEBPQSSYr/35CBkeAUqTWIlFqgUHtlbj1DMHZdAERpAZjEDLin2I3IjcATnqRmp6WK7eD/8Sw== X-Received: by 2002:a17:90b:1bd0:b0:281:858:a086 with SMTP id oa16-20020a17090b1bd000b002810858a086mr384753pjb.6.1699404052076; Tue, 07 Nov 2023 16:40:52 -0800 (PST) Received: from cs20-buildserver.lan ([180.217.132.54]) by smtp.gmail.com with ESMTPSA id mv21-20020a17090b199500b0028066f3c373sm384284pjb.17.2023.11.07.16.40.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Nov 2023 16:40:51 -0800 (PST) From: Jim Liu X-Google-Original-From: Jim Liu To: JJLIU0@nuvoton.com, YSCHU@nuvoton.com--compose, KWLIU@nuvoton.com, jim.t90615@gmail.com, trini@konsulko.com Cc: u-boot@lists.denx.de Subject: [PATCH v1 3/4] configs: arbel: Enable full functions Date: Wed, 8 Nov 2023 08:40:26 +0800 Message-Id: <20231108004027.281383-4-JJLIU0@nuvoton.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231108004027.281383-1-JJLIU0@nuvoton.com> References: <20231108004027.281383-1-JJLIU0@nuvoton.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Enable more functions/commands for arbel evb. Signed-off-by: Jim Liu --- configs/arbel_evb_defconfig | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/configs/arbel_evb_defconfig b/configs/arbel_evb_defconfig index 6cfb5a7d32..dddfa298c9 100644 --- a/configs/arbel_evb_defconfig +++ b/configs/arbel_evb_defconfig @@ -4,6 +4,8 @@ CONFIG_TEXT_BASE=0x06208000 CONFIG_SYS_MALLOC_LEN=0x240000 CONFIG_SYS_MALLOC_F_LEN=0x1000 CONFIG_NR_DRAM_BANKS=2 +CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y +CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x06208000 CONFIG_ENV_SIZE=0x40000 CONFIG_ENV_OFFSET=0x3C0000 CONFIG_ENV_SECT_SIZE=0x1000 @@ -19,10 +21,12 @@ CONFIG_FIT=y CONFIG_FIT_VERBOSE=y CONFIG_USE_BOOTCOMMAND=y CONFIG_BOOTCOMMAND="run common_bootargs; run romboot" +CONFIG_LAST_STAGE_INIT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="U-Boot>" CONFIG_SYS_MAXARGS=32 CONFIG_SYS_BOOTM_LEN=0x1400000 +CONFIG_CMD_MEMTEST=y CONFIG_CMD_FUSE=y CONFIG_CMD_GPIO=y CONFIG_CMD_GPT=y @@ -31,14 +35,17 @@ CONFIG_CMD_MMC=y CONFIG_CMD_PART=y CONFIG_CMD_SPI=y CONFIG_CMD_USB=y +CONFIG_CMD_USB_MASS_STORAGE=y CONFIG_CMD_DHCP=y CONFIG_CMD_MII=y CONFIG_CMD_PING=y CONFIG_CMD_CACHE=y CONFIG_CMD_RNG=y CONFIG_CMD_UUID=y +CONFIG_CMD_AES=y CONFIG_CMD_HASH=y CONFIG_CMD_TPM=y +CONFIG_CMD_EXT4=y CONFIG_CMD_FAT=y CONFIG_CMD_FS_GENERIC=y CONFIG_ENV_IS_IN_SPI_FLASH=y @@ -49,6 +56,7 @@ CONFIG_NPCM_AES=y CONFIG_NPCM_SHA=y CONFIG_NPCM_GPIO=y CONFIG_DM_I2C=y +CONFIG_SYS_I2C_NPCM=y # CONFIG_INPUT is not set CONFIG_MISC=y CONFIG_NPCM_HOST=y @@ -56,9 +64,12 @@ CONFIG_SUPPORT_EMMC_RPMB=y CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_NPCM=y CONFIG_DM_SPI_FLASH=y +CONFIG_SPI_FLASH_GOOGLE=y CONFIG_SPI_FLASH_MACRONIX=y CONFIG_SPI_FLASH_WINBOND=y # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set +CONFIG_BITBANGMII=y +CONFIG_BITBANGMII_MULTI=y CONFIG_PHY_BROADCOM=y CONFIG_PHY_GIGE=y CONFIG_ETH_DESIGNWARE=y @@ -87,11 +98,15 @@ CONFIG_TPM2_FTPM_TEE=y CONFIG_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_NPCM=y -CONFIG_USB_EHCI_GENERIC=y CONFIG_USB_OHCI_HCD=y -CONFIG_USB_OHCI_GENERIC=y CONFIG_USB_OHCI_NPCM=y CONFIG_USB_STORAGE=y +CONFIG_USB_GADGET=y +CONFIG_USB_GADGET_MANUFACTURER="Nuvoton" +CONFIG_USB_GADGET_VENDOR_NUM=0x0416 +CONFIG_USB_GADGET_PRODUCT_NUM=0xffff +CONFIG_CI_UDC=y +CONFIG_USB_GADGET_DOWNLOAD=y CONFIG_LIB_HW_RAND=y CONFIG_TPM=y CONFIG_SHA_HW_ACCEL=y From patchwork Wed Nov 8 00:40:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jim Liu X-Patchwork-Id: 1861358 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=Q34OixEh; 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 4SQ5r45cdtz1yQl for ; Wed, 8 Nov 2023 11:41:40 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 22A38876DD; Wed, 8 Nov 2023 01:41:23 +0100 (CET) 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="Q34OixEh"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 86D41876FE; Wed, 8 Nov 2023 01:41:07 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: * X-Spam-Status: No, score=1.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,RCVD_IN_SBL_CSS,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.2 Received: from mail-pj1-x1029.google.com (mail-pj1-x1029.google.com [IPv6:2607:f8b0:4864:20::1029]) (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 A683087703 for ; Wed, 8 Nov 2023 01:40:57 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jim.t90615@gmail.com Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-280200949c3so4839155a91.0 for ; Tue, 07 Nov 2023 16:40:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1699404056; x=1700008856; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=3ij8JJNQcp1TM4xmjjriwb91MOvgnBe/46mDym69Hls=; b=Q34OixEh3A5CH/ukVLF4uQN7kCUUDViUL96MMnvAt06O5WG7IApzuWzFvuLGgaYvO3 DXUBZyvU7KqrrEWzBXrcg6LcdW8YVIRV2bk3zFADPEMZysa97wxIk/F1G8dopKSoHqbA VjhqmZREj78N1Kout/4iW6kPo/HWItdpuAaAMMtK2vXZ/dBRO/DxiwnH6Sx0tm+eDhoF HadqbwzeMEodUafOk8eylv+z6Pk+2tHFqE2E/AwdL+e51fFCmxYRz5+qJA+UfBouLUly jo+/qRKHx0zRZSN+CWXUz++Hg5/OkPFV4ZcDjwz0l2yJtOp0Vge2DlExn748Hxr1j7U9 H22Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699404056; x=1700008856; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3ij8JJNQcp1TM4xmjjriwb91MOvgnBe/46mDym69Hls=; b=dhfWuDjcddnru1TYyPrkNCjkhBkmgQ8wqCT3oJN+Dz4D1HNNcJjZXM31SIfY2e1gGh 5w21FO5S+lx3AWzuop6WIxfQhsOn0NhgF2Eltfgyi0P+nSkUPVTIS1E53qfqdiJzmbDB SnZitSVUhXTEhkdkPGUAvGB8EdtVvPV36Db63NND9C+IvVaVe3dJFsHx+O1IAoCaDd44 erXMHKwIR3twhB80aud69RvzJpwt+jOc4uyzLGCxVf0KNMfBdXV9Q0ns+INGZl2RWxlr 1MZ4wmqIzojR6uSTaiOTTj2a90nbRZKTLwFvCH09UQCXcrH0IT2SQZ6SNm/H4+z5/PME P2hA== X-Gm-Message-State: AOJu0Yywo/44iTO56GjYekDyb28bNiplaziMvszeazDmPEAuPdjh+sqF rGlnK/pqegjb1CFVu6VAYBU= X-Google-Smtp-Source: AGHT+IFOObyDZXerC+WtPBScOdyitXcQYKfIybExpMPUT575U648FamPWOxiVQCg4l2T4t/uSbU6Wg== X-Received: by 2002:a17:90b:1c81:b0:280:8c99:1801 with SMTP id oo1-20020a17090b1c8100b002808c991801mr368013pjb.16.1699404055893; Tue, 07 Nov 2023 16:40:55 -0800 (PST) Received: from cs20-buildserver.lan ([180.217.132.54]) by smtp.gmail.com with ESMTPSA id mv21-20020a17090b199500b0028066f3c373sm384284pjb.17.2023.11.07.16.40.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Nov 2023 16:40:55 -0800 (PST) From: Jim Liu X-Google-Original-From: Jim Liu To: JJLIU0@nuvoton.com, YSCHU@nuvoton.com--compose, KWLIU@nuvoton.com, jim.t90615@gmail.com, trini@konsulko.com Cc: u-boot@lists.denx.de Subject: [PATCH v1 4/4] serial: npcm: support skip uart clock setting Date: Wed, 8 Nov 2023 08:40:27 +0800 Message-Id: <20231108004027.281383-5-JJLIU0@nuvoton.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231108004027.281383-1-JJLIU0@nuvoton.com> References: <20231108004027.281383-1-JJLIU0@nuvoton.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Skip the uart clock setting if CONFIG_SYS_SKIP_UART_INIT is enabled. Fix divisor error. Signed-off-by: Jim Liu --- drivers/serial/serial_npcm.c | 39 ++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/drivers/serial/serial_npcm.c b/drivers/serial/serial_npcm.c index 76ac7cb80d..6bf3a943a2 100644 --- a/drivers/serial/serial_npcm.c +++ b/drivers/serial/serial_npcm.c @@ -83,8 +83,11 @@ static int npcm_serial_setbrg(struct udevice *dev, int baudrate) struct npcm_uart *uart = plat->reg; u16 divisor; + if (IS_ENABLED(CONFIG_SYS_SKIP_UART_INIT)) + return 0; + /* BaudOut = UART Clock / (16 * [Divisor + 2]) */ - divisor = DIV_ROUND_CLOSEST(plat->uart_clk, 16 * baudrate + 2) - 2; + divisor = DIV_ROUND_CLOSEST(plat->uart_clk, 16 * baudrate) - 2; setbits_8(&uart->lcr, LCR_DLAB); writeb(divisor & 0xff, &uart->dll); @@ -97,29 +100,35 @@ static int npcm_serial_setbrg(struct udevice *dev, int baudrate) static int npcm_serial_probe(struct udevice *dev) { struct npcm_serial_plat *plat = dev_get_plat(dev); - struct npcm_uart *uart = plat->reg; + struct npcm_uart *uart; struct clk clk, parent; u32 freq; int ret; plat->reg = dev_read_addr_ptr(dev); - freq = dev_read_u32_default(dev, "clock-frequency", 0); + uart = plat->reg; - ret = clk_get_by_index(dev, 0, &clk); - if (ret < 0) - return ret; + if (!IS_ENABLED(CONFIG_SYS_SKIP_UART_INIT)) { + freq = dev_read_u32_default(dev, "clock-frequency", 24000000); - ret = clk_get_by_index(dev, 1, &parent); - if (!ret) { - ret = clk_set_parent(&clk, &parent); - if (ret) + ret = clk_get_by_index(dev, 0, &clk); + if (ret < 0) return ret; - } - ret = clk_set_rate(&clk, freq); - if (ret < 0) - return ret; - plat->uart_clk = ret; + ret = clk_get_by_index(dev, 1, &parent); + if (!ret) { + ret = clk_set_parent(&clk, &parent); + if (ret) + return ret; + } + + if (freq) { + ret = clk_set_rate(&clk, freq); + if (ret < 0) + return ret; + } + plat->uart_clk = clk_get_rate(&clk); + } /* Disable all interrupt */ writeb(0, &uart->ier);