From nobody Sun Feb 8 04:52:27 2026 Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A560752F88; Wed, 23 Apr 2025 19:18:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745435918; cv=none; b=jYf8WeaSX7uPV3WO2QlEEV2scbtTkn1zPkMRoYVEJ4Acle2N/GuUNWCjViQT6ZYLLEj3qbw0LRAIWjENLwhdv0zmt7uc9mjNHr5p7VSiiomDaStkqmV1wcC11GVGJNaa7/949nyP8CRdSYiHy94aVSgi7TCHVoxEcLS8k0+Cgvg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745435918; c=relaxed/simple; bh=P4t9q9q6HNFRvbE1rkBp9UJp/QgyD0QTFlp6sfgadw0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bvHIEZUhD5bscPRkHJzPrr/SWFBBKekZpoCJ8ljf1ncNHYMisQm77W6BGWC/m+Hqow0hGtE2FRx2pmZ13CNLi7gUwnzL8KimWg6ZdqWHR2gqWQJfxZSgH3gKaOm3dldVkpemmd8qx3T8gjYbzqt3+RSL8iOfiHDEhqdv2vxd/lw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=GCIH+JvB; arc=none smtp.client-ip=209.85.214.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GCIH+JvB" Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-224019ad9edso2560945ad.1; Wed, 23 Apr 2025 12:18:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745435916; x=1746040716; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=qTG8DAFdHnp2dP0ywoyFdyZYrfquR0mqHFgjbLDe2VA=; b=GCIH+JvB/CIZjtwDlWmN66Ab785q8RaQ3LRmdMqaZAP6GODhmzCzB/hmEq7UwhxlLm vPf0DLQMc0vVRVgPi7Ix6QTDM0ayudWb7+GAViiNzr5vKOh84BIUoLslLMtF82qkX3Ws 4xubl3z8DWoDpDvY3j0BlMbiQqJNEp51mgBMG1n0JKD703W4V++rw2v8aUN5vVijL89b GfMK4r/Fl1F459Rl0gPKkuWifw9ayuUQwB3iUmJ6+dfYiqGQudXDtv1JKrt10QFBisdT 2UdhOe34Qc8RxaDYp1abv9IVEbLMRUviyENVYmF7xtbcRZ6y/VR3i1bqGTTPR0NI+6aG mebw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745435916; x=1746040716; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qTG8DAFdHnp2dP0ywoyFdyZYrfquR0mqHFgjbLDe2VA=; b=FneRHNSwf5JjyQT09ScMOe7OY8PHCRwNqlAVS04rMIgFUb/Z0mxYRQDAdnRuBtOx/j 0xEUQQvM75A+QMkTllVnqlGViw89N0jNRQ9IhM4dR5P4WHnj5IsNSjVJK6JJSC6yP2BV zeKLNPm3GEr+HtvXouiaACzuBk91pTwV4PURD7CLMH+waSdvOucQwnZWrZzLm1oeYuvA ZyW5eyHFC7z1qnvMmUoysZY0OoLV8la6PzGyegLLeh4lhK/GkFFD1907RGF45MUtsDgE poq7OZ0xgJJcssEHg6sTidM9HHaiwQZLs2mzKLTYdI5dQvYniPkGNLRpi4mXxaagmAu0 3kxQ== X-Forwarded-Encrypted: i=1; AJvYcCXrLIOG4VODoDG3XdImVxvrzr6Ijl9i3LQkw7TGFssF1hHXVqrSK8EmxHyLPxgsPYKAUtYj3o4rWNeZXFc=@vger.kernel.org X-Gm-Message-State: AOJu0YwsaO0E8beCYKzTa7saDf2lQaeFs54LdeI2tsuB59TS+r/qqWgQ pjTRqaCoMUa9+AUhEz8PXvgLdVqLWs0uHt9uhGVgy5mhOv+2g0JE X-Gm-Gg: ASbGncsQmV9rBC9JSxE4IBLL6p7+CDpjJZXFN9jTxFBu99nL6WJeI1oTlGtxEiLIE2O LdAQ3hI+UA7hO4lLXKKeUtaPHOGhU38YAi0ttmqD8qbLwQsnv0+SCkZxFZkczn3fyb58vAgf8SE OibomcnObB1tWZ2RDplwueNdmLyUEQ9i//FhiHGevSaEOnpClv1e1QPRpv9u1wjAX/MuqcienV1 Aj1Yn4wEoZGath5e3uxRuLkgSmA3lLOlGns3SnJTAfmG4QpWxODZbJevDRPrsjrN5Y/rRId2Dr/ cEX3qErNbn1C0KnMtVeGVXoiVBzRG/puguys3KZNATwFI3fWl2OT X-Google-Smtp-Source: AGHT+IGVUpukk6IH6oBCSYckzehJVWDoFyKFCFz+R+5pqwO+XdOKln8KhlOaepxc13szHyqhG89q2g== X-Received: by 2002:a17:902:f549:b0:223:635d:3e38 with SMTP id d9443c01a7336-22db1a8d6b1mr8150975ad.15.1745435915841; Wed, 23 Apr 2025 12:18:35 -0700 (PDT) Received: from NB-GIGA003.letovo.school ([5.194.95.139]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22c50eb4897sm108204025ad.143.2025.04.23.12.18.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Apr 2025 12:18:35 -0700 (PDT) From: Alexey Charkov Date: Wed, 23 Apr 2025 23:18:31 +0400 Subject: [PATCH 1/3] dt-bindings: soc: Add VIA/WonderMedia SoC identification Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250423-wmt-soc-driver-v1-1-bd8bf32521c2@gmail.com> References: <20250423-wmt-soc-driver-v1-0-bd8bf32521c2@gmail.com> In-Reply-To: <20250423-wmt-soc-driver-v1-0-bd8bf32521c2@gmail.com> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Krzysztof Kozlowski Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Alexey Charkov X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1745435922; l=1697; i=alchark@gmail.com; s=20250416; h=from:subject:message-id; bh=P4t9q9q6HNFRvbE1rkBp9UJp/QgyD0QTFlp6sfgadw0=; b=1+FGgFYBJHV6/0XVa9XKgAQpOA3+7YGbHCSVG44rcyhweBnrNGsV6t1fFSPmZwqEi3gpKQ+l5 5/ZxGQqAHWbA20ME5pMssU9tVhASX90L+ZOFiK0yIPPt0jBjpLVuRQ9 X-Developer-Key: i=alchark@gmail.com; a=ed25519; pk=ltKbQzKLTJPiDgPtcHxdo+dzFthCCMtC3V9qf7+0rkc= VIA/WonderMedia SoC's have a chip ID register inside their system configuration controller space, which can be used to identify appropriate hardware quirks at runtime. Add binding for it. Signed-off-by: Alexey Charkov --- .../devicetree/bindings/soc/vt8500/via,scc-id.yaml | 37 ++++++++++++++++++= ++++ 1 file changed, 37 insertions(+) diff --git a/Documentation/devicetree/bindings/soc/vt8500/via,scc-id.yaml b= /Documentation/devicetree/bindings/soc/vt8500/via,scc-id.yaml new file mode 100644 index 0000000000000000000000000000000000000000..eac72bd66fd6331c8d9316288bc= 1acc3e337efaa --- /dev/null +++ b/Documentation/devicetree/bindings/soc/vt8500/via,scc-id.yaml @@ -0,0 +1,37 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/soc/vt8500/via,scc-id.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: VIA/WonderMedia SoC system configuration information + +maintainers: + - Alexey Charkov + +description: + The system configuration controller on VIA/WonderMedia SoC's contains a = chip + identifier and revision used to differentiate between different hardware + versions of on-chip IP blocks having their own peculiarities which may or + may not be captured by their respective DT compatible strings + +properties: + compatible: + items: + - const: via,scc-id + + reg: + maxItems: 1 + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + system-configuration@d8120000 { + compatible =3D "via,scc-id"; + reg =3D <0xd8120000 0x4>; + }; --=20 2.49.0 From nobody Sun Feb 8 04:52:27 2026 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 88D7A291170; Wed, 23 Apr 2025 19:18:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745435924; cv=none; b=Rtx+nj6Dj0Q9SDfB7+plw17RzMG+QeZT9rp/Pajs7Le/ZpO2xRXHQ0r0vQPpXelayJZZRLrQK3ZzVa76v9gXnkqx+uXjp5PlgWW5F+QIEwG99IpXzKKSKEXtI2vVrcmt/h0DfFBpHNyZuMyAPIXgpXmw5OEJ82cFlOg2s+G+xEw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745435924; c=relaxed/simple; bh=DsaNBg7kkCyMfyjSK+lMewVbgSsJc/88OwBkVoIMDfM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ORNC9Dg4x1tL/TRz72EKFelogXd5LLjNNDZzETeTxrm1jh+HwT2PIMVcxNJoMX5Iqr8qzFPJio6D2hilLF+yrf6CatPEjM3jimHUo328SDToXOgM6FY4jsa22gmcxc6wXvmGleTl/G8TdbI2CFc25idyz+Ewp0urhVCyMB5NLzo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=kv2XEnpF; arc=none smtp.client-ip=209.85.214.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="kv2XEnpF" Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-2243803b776so3264645ad.0; Wed, 23 Apr 2025 12:18:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745435922; x=1746040722; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=nGPo16mSphfxbc3aNmKamBwbL4h4Z65tWk3KvEu3074=; b=kv2XEnpF1zDmrdtyZYlqcE8vDTIcn3xWE/V1IY1w8HI57cuiqRkg9AoqyZNmq/kjJg a13X3zi32tNs88YH/j0HFo+o9RoH1YliPUfIR36xf61qZf98JgnKcpZzMgcKRrvOAI5/ 591nC63/uNUtbJ1/mqDYSrznCILQZuwQNGgjV9lrGMfFZ6Vl63f8606894NYhgim3y0T qUUVXNSfYg5bc+o6qY3R5NuKQba7fvpkVIwN2sxY39ikIXOckt+nIE+49a018PgndwTt gYIayYojzILKMTFgGDQwAEOiiGOsHIqkg0dscPhCQD6UJJWwGztdbv/aozqGrpjoDK3h Sqog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745435922; x=1746040722; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nGPo16mSphfxbc3aNmKamBwbL4h4Z65tWk3KvEu3074=; b=ngVc/xPPJqS2mpjibA7bD2zFceJhaistYZwY3+amL3wadGadIBxrHFZev4qC9gJYpn /cSehLYV67flcR0z24gNwsIyGHvJMiY9W5uvtiALtcIefdWCPIAtrO5oUnZ8zjfWazFm FFHxcBSajK+czsUdIwFaoixZOckNGTLdS9SWtOaueVXv/QT5l0aSmqPRVlBxdEM5npEu fgmTtnroHNdkCh0Osa94YXLQSm97e7DOblqFuUl2EcXEx15cIHV5tijOn5z6IkW/597g MCBndZC3T/OAEtGqRiyti8a4mUWseHhhhQuRh1ytYVFSDXxb8gegZ9M94muNlQU5vWEH 3Zyg== X-Forwarded-Encrypted: i=1; AJvYcCUaFkdP+a7J9oedlkijj/tx9vj0RiC/YGd3d6YHxDDkFriSDv0GsNClomBkHlH22AvYdk3w5o057KpOA1E=@vger.kernel.org X-Gm-Message-State: AOJu0YyOFWuU6/1jGGMNtWMzojKK+u6ZdXOfwd+D4UCenYNUCq094r/d b5GFLZUzLHplbSI9jmEN0FE+QOW5XZN2FOYuTgP3sPWZvDi8WMT2 X-Gm-Gg: ASbGncvoKIuT/wS3pltTFCh1JUFl1EI3ty5Yj0g0vsBdfwdWGaaoMVa5PuK+6Zg+Lfr 1LvrSTtflwGstJ9Ljmrzx0rVwuUCfVHSza9AlRmQn10EUL97tJ6rdb1FXk55DXcKsnSsDONv7EN hzgo8/6rMP9FBXvT6YTqn+TEDjSwoyFQ/CvZOkOCB7rqSawVISwvbASHhRiUjIdXRZLJU2AwHPq wuHPFapV68siHOqJ2gay9MiaXdcUyK482D3GMwmXmyQicmeTF5ZLWlwO3oKBdom+/M4dcIvhHzd JtMfqJdf9c0Il/Q7ozvuucJOy0hFluvW40Euz0G5qHUARIJ9qGte X-Google-Smtp-Source: AGHT+IFEvoxvIVnkqXQwSw6RMLr+CI8H7rnlskB3ZOddu5ASGlBOyFVAWwonlx4hYUUL7O+wc3NSrA== X-Received: by 2002:a17:903:904:b0:227:e74a:a057 with SMTP id d9443c01a7336-22db1b3fe85mr9138715ad.44.1745435921710; Wed, 23 Apr 2025 12:18:41 -0700 (PDT) Received: from NB-GIGA003.letovo.school ([5.194.95.139]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22c50eb4897sm108204025ad.143.2025.04.23.12.18.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Apr 2025 12:18:41 -0700 (PDT) From: Alexey Charkov Date: Wed, 23 Apr 2025 23:18:32 +0400 Subject: [PATCH 2/3] soc: Add VIA/WonderMedia SoC identification driver Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250423-wmt-soc-driver-v1-2-bd8bf32521c2@gmail.com> References: <20250423-wmt-soc-driver-v1-0-bd8bf32521c2@gmail.com> In-Reply-To: <20250423-wmt-soc-driver-v1-0-bd8bf32521c2@gmail.com> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Krzysztof Kozlowski Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Alexey Charkov X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1745435922; l=6371; i=alchark@gmail.com; s=20250416; h=from:subject:message-id; bh=DsaNBg7kkCyMfyjSK+lMewVbgSsJc/88OwBkVoIMDfM=; b=DE0AJQzoN3d0lr5J/TlpMJOJnWCf/lankDlc7MJI71gwaU5NW4o0GUBO3lv74bEUeN0M1dmR2 hfmZhBD39pkC2noUGj7WdwEuOuYaF9FVPF5MqEpEICR1YrVcZpTDg2N X-Developer-Key: i=alchark@gmail.com; a=ed25519; pk=ltKbQzKLTJPiDgPtcHxdo+dzFthCCMtC3V9qf7+0rkc= Add a small SOC bus driver to parse the chip ID and revision made available on VIA/WonderMedia SoCs via their system configuration controller's SCC_ID register. This is intended to select appropriate sets of on-chip device quirks at runtime, as it has been found that even within the same SoC version there can be register-incompatible differences, such as with the SDMMC controller on WM8505 rev. A0-A1 vs. rev. A2. The list of SoC versions is compiled from various vendor source dumps and not all of them have corresponding mainline driver support. Some of them also have been seen with varying on-chip markings while sharing the same hardware chip ID's (as is the case with e.g. WM8850 vs. WM8950). In such cases the selection of names to use here among those seen in various source dumps and chip markings was arbitrary. Suggested by Krzysztof at [1] - thanks a lot! [1] https://lore.kernel.org/all/14de236b-e2a7-4bde-986d-1e5ffddd01b4@kernel= .org/ Signed-off-by: Alexey Charkov --- drivers/soc/Kconfig | 1 + drivers/soc/Makefile | 1 + drivers/soc/vt8500/Kconfig | 20 +++++++ drivers/soc/vt8500/Makefile | 2 + drivers/soc/vt8500/wmt-socinfo.c | 121 +++++++++++++++++++++++++++++++++++= ++++ 5 files changed, 145 insertions(+) diff --git a/drivers/soc/Kconfig b/drivers/soc/Kconfig index 6a8daeb8c4b96cd29d56343b338a423140b89896..37ca3f094f8994c7e9c7c99c3ba= 47d168d41ce30 100644 --- a/drivers/soc/Kconfig +++ b/drivers/soc/Kconfig @@ -28,6 +28,7 @@ source "drivers/soc/tegra/Kconfig" source "drivers/soc/ti/Kconfig" source "drivers/soc/ux500/Kconfig" source "drivers/soc/versatile/Kconfig" +source "drivers/soc/vt8500/Kconfig" source "drivers/soc/xilinx/Kconfig" =20 endmenu diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile index 2037a8695cb2898659a434803dcdfa2d95b1dbd6..777255401252eab554f56bded7f= f8ea5611704bf 100644 --- a/drivers/soc/Makefile +++ b/drivers/soc/Makefile @@ -34,4 +34,5 @@ obj-$(CONFIG_ARCH_TEGRA) +=3D tegra/ obj-y +=3D ti/ obj-$(CONFIG_ARCH_U8500) +=3D ux500/ obj-y +=3D versatile/ +obj-y +=3D vt8500/ obj-y +=3D xilinx/ diff --git a/drivers/soc/vt8500/Kconfig b/drivers/soc/vt8500/Kconfig new file mode 100644 index 0000000000000000000000000000000000000000..2b2350678c3f70297c51f94eb77= 674c01be773d8 --- /dev/null +++ b/drivers/soc/vt8500/Kconfig @@ -0,0 +1,20 @@ +# SPDX-License-Identifier: GPL-2.0-only + +if ARCH_VT8500 || COMPILE_TEST + +menu "VIA/WonderMedia SoC drivers" + +config WMT_SOCINFO + bool "VIA/WonderMedia SoC Information driver" + default ARCH_VT8500 + select SOC_BUS + default ARCH_VT8500 + help + Say yes to support decoding of VIA/WonderMedia system configuration + register information. This currently includes just the chip ID register + which helps identify the exact hardware revision of the SoC the kernel + is running on (to know if any revision-specific quirks are required) + +endmenu + +endif diff --git a/drivers/soc/vt8500/Makefile b/drivers/soc/vt8500/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..05964c5f2890989c1d794af4f5a= f10f849a497bc --- /dev/null +++ b/drivers/soc/vt8500/Makefile @@ -0,0 +1,2 @@ +# SPDX-License-Identifier: GPL-2.0-only +obj-$(CONFIG_WMT_SOCINFO) +=3D wmt-socinfo.o diff --git a/drivers/soc/vt8500/wmt-socinfo.c b/drivers/soc/vt8500/wmt-soci= nfo.c new file mode 100644 index 0000000000000000000000000000000000000000..81dd6f722ede35150289a0d87cf= 09b95d9446948 --- /dev/null +++ b/drivers/soc/vt8500/wmt-socinfo.c @@ -0,0 +1,121 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright 2025 Alexey Charkov + * Based on aspeed-socinfo.c + */ + +#include +#include +#include +#include +#include +#include +#include + +static struct { + const char *name; + const unsigned long id; +} const chip_id_table[] =3D { + /* VIA */ + { "VT8420", 0x3300 }, + { "VT8430", 0x3357 }, + { "VT8500", 0x3400 }, + + /* WonderMedia */ + { "WM8425", 0x3429 }, + { "WM8435", 0x3437 }, + { "WM8440", 0x3451 }, + { "WM8505", 0x3426 }, + { "WM8650", 0x3465 }, + { "WM8750", 0x3445 }, + { "WM8850", 0x3481 }, + { "WM8880", 0x3498 }, +}; + +static const char *sccid_to_name(unsigned long sccid) +{ + unsigned long id =3D sccid >> 16; + unsigned int i; + + for (i =3D 0 ; i < ARRAY_SIZE(chip_id_table) ; ++i) { + if (chip_id_table[i].id =3D=3D id) + return chip_id_table[i].name; + } + + return "Unknown"; +} + +static const char *sccid_to_rev(unsigned long sccid) +{ + char letter, digit; + + letter =3D (sccid >> 8) & 0xf; + letter =3D (letter - 1) + 'A'; + + digit =3D sccid & 0xff; + digit =3D (digit - 1) + '0'; + + return kasprintf(GFP_KERNEL, "%c%c", letter, digit); +} + +static int __init wmt_socinfo_init(void) +{ + struct soc_device_attribute *attrs; + struct soc_device *soc_dev; + struct device_node *np; + void __iomem *reg; + unsigned long sccid; + const char *machine =3D NULL; + + np =3D of_find_compatible_node(NULL, NULL, "via,scc-id"); + if (!of_device_is_available(np)) { + of_node_put(np); + return -ENODEV; + } + + reg =3D of_iomap(np, 0); + if (!reg) { + of_node_put(np); + return -ENODEV; + } + sccid =3D readl(reg); + iounmap(reg); + + attrs =3D kzalloc(sizeof(*attrs), GFP_KERNEL); + if (!attrs) + return -ENODEV; + + /* + * Machine: VIA APC Rock + * Family: WM8850 + * Revision: A2 + * SoC ID: raw silicon revision id (0x34810103) + */ + + np =3D of_find_node_by_path("/"); + of_property_read_string(np, "model", &machine); + if (machine) + attrs->machine =3D kstrdup(machine, GFP_KERNEL); + of_node_put(np); + + attrs->family =3D sccid_to_name(sccid); + attrs->revision =3D sccid_to_rev(sccid); + attrs->soc_id =3D kasprintf(GFP_KERNEL, "%08lx", sccid); + + soc_dev =3D soc_device_register(attrs); + if (IS_ERR(soc_dev)) { + kfree(attrs->machine); + kfree(attrs->soc_id); + kfree(attrs->revision); + kfree(attrs); + return PTR_ERR(soc_dev); + } + + pr_info("VIA/WonderMedia %s rev %s (%s)\n", + attrs->family, + attrs->revision, + attrs->soc_id); + + return 0; +} +early_initcall(wmt_socinfo_init); --=20 2.49.0 From nobody Sun Feb 8 04:52:27 2026 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 57C4D291170; Wed, 23 Apr 2025 19:18:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745435929; cv=none; b=L1kXxkznAz4Wol6/S5u1uyx+bzUTQ/G5DZ7q4TQhS47iiMqymLNnCWh2tre9L4kHCSovTwSrygnmrc8tjZYxCxvwbeh4OtCS+nhy7F3glmhAoLCerdBNFoZZSnEslBjLZZ4QflGfB8Z0IfcxW6n333YvUYSEyUzOFQjntaRx/Lc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745435929; c=relaxed/simple; bh=6W57QYzLUsii+2lgI/rDLUsSuP1BumMw2PCPR8oLvN4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=avluERc5DJLD8xQJVGYz6RfnWsVbVoOW2SEjndi2pvGGxIe6F0bsaRhcXkFM7c6HhgoXli3WOgEtIw8VWYqx9ckIM9GS3ZHP56cqj6Zd3yH+6Uug2myqj19p+KTuVHaLt6hJdGtX688JI2euCN3jp2o/VxK1cDsWGTct62/XuoU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=cgQfYRhx; arc=none smtp.client-ip=209.85.214.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="cgQfYRhx" Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-22401f4d35aso2582265ad.2; Wed, 23 Apr 2025 12:18:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745435928; x=1746040728; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=aIYSdEWdYjNWg1JOdzl1CekCVHSxAkDwX11n6K87S48=; b=cgQfYRhxsEYHzBACXR81N1+aQMSmsSJ5n2G5DNQFui3g8cG/ayd+O6JFWu3Bj7GZL8 rbfk6xOrnrTGsFaQAgTrpYFfyOCE7iKxneQ4f2xqfUG834jOWU+N5wldistFrayfFYBy j5ahObYryYTZHz/Z6hdiDtNA+Kc3CBLvSOLWUf3NkB3wNA5MZ+Cm+ypnbXaAnTLBB60n JtD6X/ZOGiK/TQ+0/JQQyxN4uc85pxC8op+d5U/w7/2m98KKE4aKVNMW9GXMlg/oLlGM N+3SGL3J7ZzreHNU7kxbI9K5/IK2k1tnuU36Yl6mmT1vm3N5HfOHZ64a5fUQoeq1axvn vQqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745435928; x=1746040728; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aIYSdEWdYjNWg1JOdzl1CekCVHSxAkDwX11n6K87S48=; b=gFFsCz1Ii4V5w2DxZVMPmSmPCSMH4lCwCzdWKX0Xw1tG9Hu70+MsgXvI2PvFJYshzd 6I0Hwnw9zX390ACJNSsI4+CmKqRLQxylBcHVfGDESDQvsCsXh4t7IkJuzrWx5yWnllvm kJqwPClry5zpsXyLr5d33QaqbPJxa9GI8D3PHPPaxqrPLjGFaeLjsTr8qoFRxjhiIh0a S8xxbQth3uN29EqpLDMGizVfPfdjhb/FfhXhepRTGdxgUc39/sm0lvBG8uVSpxzLFJvL B/ClHrOlHwD3BusfvtuVxV6+CMqBpOQ0sX2TnDPKPE6EhiR5f5xvyXYapn3oVBQrEpqm 3Rpw== X-Forwarded-Encrypted: i=1; AJvYcCWfB8oRFzCHcabAFJhxgBl84Ui+bgIHBgtby58wxDSuU+EDCXQaAkdwEWn76z8J6QAIhWyjvORdco91Rw4=@vger.kernel.org X-Gm-Message-State: AOJu0YwSMtDnSXMAU0sqgDKUZrdgRlYswkaFwWELrLqiSpOcmfT6jcdn qt5vBDjUbXBbzdFn636uc8W7FxOE1xvKWV5TYXI4Q6DSa7OWpeqV X-Gm-Gg: ASbGnctUt0bEAQNxHhEoMxwBRLqS7uLRyw+iOXuVXMR9xYBEkzYzsu+FDNcNFDfXZ5g xGlJta18MxxT1g+5KEmf8aTOmZn1cmf1cP2TmGU5atsbtkpdGKSKb+8XFUdtnbIu3/CbBunfe1A RLdwmoyDkcH9RWIDEl4uTDmlLP1j9pDyQDJazrGHdQGxu8AQCj8NZ2MORaanAtQZ+f7mv6/q/zd KW28+dhXoE3WleoZPbLJ1gcDgeGb6ywy49rWDMdRjjLaj860bL5wD/+qHEIg+8floUIDkYiQfs9 wM7EYPaQuP8fLelnhoRk3H92/KUrNCeP/0P4/3PEDGCpIHE4Sscb X-Google-Smtp-Source: AGHT+IHISSI6sxpKSal72ZsfL0ROGtb7EMezHqIHuGuTTYCadSEw2oEO51PUIm+sClTFJHFj5M10pA== X-Received: by 2002:a17:903:3c4e:b0:224:584:6f07 with SMTP id d9443c01a7336-22db1b31039mr6838215ad.37.1745435927558; Wed, 23 Apr 2025 12:18:47 -0700 (PDT) Received: from NB-GIGA003.letovo.school ([5.194.95.139]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22c50eb4897sm108204025ad.143.2025.04.23.12.18.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Apr 2025 12:18:47 -0700 (PDT) From: Alexey Charkov Date: Wed, 23 Apr 2025 23:18:33 +0400 Subject: [PATCH 3/3] ARM: dts: vt8500: add DT nodes for the system config ID register Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250423-wmt-soc-driver-v1-3-bd8bf32521c2@gmail.com> References: <20250423-wmt-soc-driver-v1-0-bd8bf32521c2@gmail.com> In-Reply-To: <20250423-wmt-soc-driver-v1-0-bd8bf32521c2@gmail.com> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Krzysztof Kozlowski Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Alexey Charkov X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1745435922; l=3343; i=alchark@gmail.com; s=20250416; h=from:subject:message-id; bh=6W57QYzLUsii+2lgI/rDLUsSuP1BumMw2PCPR8oLvN4=; b=Ll1xSdAGEInXI8OF1yoMnE81rYGd2G/d3jEJXoTAF3+ka/+yccvvibfADDjw5UNi74/48YtIO KkJT2+QYWfgATNn+ZaZmwM/vHU7J55mRU0bnOw4ATQz8mugEZmxwvTL X-Developer-Key: i=alchark@gmail.com; a=ed25519; pk=ltKbQzKLTJPiDgPtcHxdo+dzFthCCMtC3V9qf7+0rkc= Every VIA/WonderMedia SoC has a 32-bit chip ID register at the MMIO address 0xd8120000. Add respective device tree nodes to let the system code access it at runtime for the selection of appropriate hardware quirks where needed. Signed-off-by: Alexey Charkov --- arch/arm/boot/dts/vt8500/vt8500.dtsi | 5 +++++ arch/arm/boot/dts/vt8500/wm8505.dtsi | 5 +++++ arch/arm/boot/dts/vt8500/wm8650.dtsi | 5 +++++ arch/arm/boot/dts/vt8500/wm8750.dtsi | 5 +++++ arch/arm/boot/dts/vt8500/wm8850.dtsi | 5 +++++ 5 files changed, 25 insertions(+) diff --git a/arch/arm/boot/dts/vt8500/vt8500.dtsi b/arch/arm/boot/dts/vt850= 0/vt8500.dtsi index f23cb5ee11ae63222276c8ac178c52a6a3872c0c..1f81f0cbdb7e2c2378b62e40afd= 3675303bf8cc1 100644 --- a/arch/arm/boot/dts/vt8500/vt8500.dtsi +++ b/arch/arm/boot/dts/vt8500/vt8500.dtsi @@ -55,6 +55,11 @@ pinctrl: pinctrl@d8110000 { #gpio-cells =3D <2>; }; =20 + system-configuration@d8120000 { + compatible =3D "via,scc-id"; + reg =3D <0xd8120000 0x4>; + }; + pmc@d8130000 { compatible =3D "via,vt8500-pmc"; reg =3D <0xd8130000 0x1000>; diff --git a/arch/arm/boot/dts/vt8500/wm8505.dtsi b/arch/arm/boot/dts/vt850= 0/wm8505.dtsi index d9e1280372c55c5080d242014c2392eaf4335d11..adc239a9999995c077dda0e2ef3= a76066264bb8c 100644 --- a/arch/arm/boot/dts/vt8500/wm8505.dtsi +++ b/arch/arm/boot/dts/vt8500/wm8505.dtsi @@ -66,6 +66,11 @@ pinctrl: pinctrl@d8110000 { #gpio-cells =3D <2>; }; =20 + system-configuration@d8120000 { + compatible =3D "via,scc-id"; + reg =3D <0xd8120000 0x4>; + }; + pmc@d8130000 { compatible =3D "via,vt8500-pmc"; reg =3D <0xd8130000 0x1000>; diff --git a/arch/arm/boot/dts/vt8500/wm8650.dtsi b/arch/arm/boot/dts/vt850= 0/wm8650.dtsi index 35d12d77efc0f91e3735b98b8ec1f25a62c9c22e..2139d183a92b18583884f9329ad= 286e9da98c066 100644 --- a/arch/arm/boot/dts/vt8500/wm8650.dtsi +++ b/arch/arm/boot/dts/vt8500/wm8650.dtsi @@ -62,6 +62,11 @@ pinctrl: pinctrl@d8110000 { #gpio-cells =3D <2>; }; =20 + system-configuration@d8120000 { + compatible =3D "via,scc-id"; + reg =3D <0xd8120000 0x4>; + }; + pmc@d8130000 { compatible =3D "via,vt8500-pmc"; reg =3D <0xd8130000 0x1000>; diff --git a/arch/arm/boot/dts/vt8500/wm8750.dtsi b/arch/arm/boot/dts/vt850= 0/wm8750.dtsi index b292f85d4e69b43d6eeb4525113265722a7b90af..5b2d3697418dbe668fa3b8586b0= c98f2efa6bfb7 100644 --- a/arch/arm/boot/dts/vt8500/wm8750.dtsi +++ b/arch/arm/boot/dts/vt8500/wm8750.dtsi @@ -68,6 +68,11 @@ pinctrl: pinctrl@d8110000 { #gpio-cells =3D <2>; }; =20 + system-configuration@d8120000 { + compatible =3D "via,scc-id"; + reg =3D <0xd8120000 0x4>; + }; + pmc@d8130000 { compatible =3D "via,vt8500-pmc"; reg =3D <0xd8130000 0x1000>; diff --git a/arch/arm/boot/dts/vt8500/wm8850.dtsi b/arch/arm/boot/dts/vt850= 0/wm8850.dtsi index c61717ebb4f1f3523733241c4df11f741ad4ae14..2c4922933875c9c31ea7c979aa8= cbcc3d9a934a5 100644 --- a/arch/arm/boot/dts/vt8500/wm8850.dtsi +++ b/arch/arm/boot/dts/vt8500/wm8850.dtsi @@ -65,6 +65,11 @@ pinctrl: pinctrl@d8110000 { #gpio-cells =3D <2>; }; =20 + system-configuration@d8120000 { + compatible =3D "via,scc-id"; + reg =3D <0xd8120000 0x4>; + }; + pmc@d8130000 { compatible =3D "via,vt8500-pmc"; reg =3D <0xd8130000 0x1000>; --=20 2.49.0