From nobody Sun Feb 8 07:52:32 2026 Received: from mail-pg1-f182.google.com (mail-pg1-f182.google.com [209.85.215.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 2D72417D2; Sat, 3 May 2025 11:52:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746273168; cv=none; b=k9ZZ/FO5KxOdl/G23PEl1I2DjEstG953vq4NBTHPkw9c72RGWmDERtP9/VS1FJvlX+f1gtmuOuTx6kCpfi2mM8lBsQ0ky2xOOvEp2jkB2XcXPDmrj9KLcK4B6OAZFfY3h3F/+G0h7m4Mt/dQ78KerhDGFuS10PE0pEH1yk0v6bs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746273168; c=relaxed/simple; bh=tyWqtL/rut5YPhdVN3q+GvWjCSJidX/06j4iYfBzgBw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XbVEuoNvwC1dD9emW+AcmN0XW5+g5MYZD946oRNDMLF+v84FwlrNrq4e4g/jSIl4jlAinyn/fwGW6JNmD6XmdQDeeyw8eKQ5uDurF9ULuzC5jUk62WRWpneBXqbSwKhatgRq9CmpU3uN+JctTUoij+nk+ci/FtDUQZCPoQgDZi0= 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=XhKNDZW4; arc=none smtp.client-ip=209.85.215.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="XhKNDZW4" Received: by mail-pg1-f182.google.com with SMTP id 41be03b00d2f7-b170c99aa49so1956211a12.1; Sat, 03 May 2025 04:52:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746273166; x=1746877966; 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=fYFsZT9R2VetUjXXmQTVLyqYCEKJfHUeK1FBA0cF88Y=; b=XhKNDZW4nzuqMbIRKVlHvla6E/g3R6LdFtD/u7aexs6YXcKw9o+QJP5hmF1jgHv0+i 49EZl199eOA2BjseDv3hyKK3GNtU01LSldQ6ehRa8vkkZ/fLkAg5C5XlZR9lVOPO/FFZ mJgl71JlWljkVUHg4aWSE4balt5nWIxem937la0RR5OXdXL+xISTf/FLFzREG2yvCpTR COX8Dq4/Ko2o1Gh2eZvOSpAfRUZpDUEprB6sR+9qhbiVQBeQjR84CrWIxtAqSvaKvDpb j9F8qFi0Oq3f+Enh1Ng27pHtYLMN/YTIBze1QqvdNHuRYewt6ipJZ+sAhzJcb+WFU7o9 Ewtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746273166; x=1746877966; 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=fYFsZT9R2VetUjXXmQTVLyqYCEKJfHUeK1FBA0cF88Y=; b=hAp6H6HQv7SfocT5+6PbpfRnG72DY5g2bw7QGOs9+4uxw5wAS592YjfvWnuiwMVA5l 81/nDF9O+5onjHbNT1BZe0Ebd1DQklJPDZvD3cz7DOh55Axk8XWZX6S+hQHjjLE7YhE+ 4uTeV/AbpHa6G9iK/gxfy/1gMHR+SkHl5l1UNBGtrvg4b827GZyP6UhZ1oZyFDT9BTw9 efNwE5uqA/zr9Oo5XbxeqBA0kYyj8LTyxKP+DZOW9QjnkkPkBBq7WQyeJTBSc4ebNfz5 LlEJEiBfp4iFKmFhmhDGWp48uCTbj6Z0rSXAaDRF2dLlE4L6CdmERKUIOskjikSBunc/ jG/A== X-Forwarded-Encrypted: i=1; AJvYcCXaAW+cpvEiSv90yO4l8uqG+AtYelTxi7f4WvY2USYoSm24vk6B9v+yskgvZIXOm+u1xfnr7GsifYJG3+s=@vger.kernel.org X-Gm-Message-State: AOJu0YzKfPBIp1kTyl3WMyr/7OLuEpUNn4FdXLwJ6bsiWIHtIW3JwtnQ +ChWLbFxZ1QhYrNWMzw/Nt5rM/z5s7WMhwjpuM21+uVkYfDrLQTf X-Gm-Gg: ASbGnctKAXWbhDfVBdMqcgTjjnDshrJJJdnLg1jssn9AyLo/kWx/NojUQuMMcQ5txpn zKjePPedwj37K6I7Hwx865orS3zfs0N8f26JFzZjQYMZ/4br3TnF0JT7Kkk/VwlKWCtSSlNDVMP 6RaWrKOe7OAXuc1TO5Bh/lCfY2AJ8s+3zWEQB7FlbWxADB3a8fytXSQ1I+jCsZ3bJeX243gTjSE KddS/fHltkRgG2qZZlQ0QnmrB46n/E8w53TP2zkIpC1ijaII1cI81QfPbksVevbWrucCwQQeo53 NmrzhQ0/yi0KYHJD4xGyS2zuc5PpbDO5NgPBdhyR0rtPJUYJpOES X-Google-Smtp-Source: AGHT+IHzLqx/Mq4tjxRSZGRUqqxUAcZk4Rr55wtw7HQwhDfPrVgPnRa9BXlPqHPX1lZMyz81Ef7Dqg== X-Received: by 2002:a17:90b:51c2:b0:2fe:994d:613b with SMTP id 98e67ed59e1d1-30a5aedd058mr4089145a91.35.1746273166217; Sat, 03 May 2025 04:52:46 -0700 (PDT) Received: from NB-GIGA003.letovo.school ([5.194.95.139]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-30a4745f9a0sm4879878a91.5.2025.05.03.04.52.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 03 May 2025 04:52:45 -0700 (PDT) From: Alexey Charkov Date: Sat, 03 May 2025 15:52:31 +0400 Subject: [PATCH v3 1/3] dt-bindings: hwinfo: 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: <20250503-wmt-soc-driver-v3-1-2daa9056fa10@gmail.com> References: <20250503-wmt-soc-driver-v3-0-2daa9056fa10@gmail.com> In-Reply-To: <20250503-wmt-soc-driver-v3-0-2daa9056fa10@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=1746273161; l=1709; i=alchark@gmail.com; s=20250416; h=from:subject:message-id; bh=tyWqtL/rut5YPhdVN3q+GvWjCSJidX/06j4iYfBzgBw=; b=aBVAj3FRh3C/HeLG1KrEZgKHxNVznXy3dLXZzSekK/QXHKCFcyGSzx6Vc+6KcMmBIQVus65V8 ASkpJiy/j07AVcBP9xhmuag+j68tcuVX/SD+BkOLAtnHPf0kKNjFANI 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 Reviewed-by: Krzysztof Kozlowski --- .../bindings/hwinfo/via,vt8500-scc-id.yaml | 37 ++++++++++++++++++= ++++ 1 file changed, 37 insertions(+) diff --git a/Documentation/devicetree/bindings/hwinfo/via,vt8500-scc-id.yam= l b/Documentation/devicetree/bindings/hwinfo/via,vt8500-scc-id.yaml new file mode 100644 index 0000000000000000000000000000000000000000..b0f425a4a882be8537f9873fdaa= 4ddf49d3c825c --- /dev/null +++ b/Documentation/devicetree/bindings/hwinfo/via,vt8500-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/hwinfo/via,vt8500-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,vt8500-scc-id + + reg: + maxItems: 1 + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + chipid@d8120000 { + compatible =3D "via,vt8500-scc-id"; + reg =3D <0xd8120000 0x4>; + }; --=20 2.49.0 From nobody Sun Feb 8 07:52:32 2026 Received: from mail-pj1-f53.google.com (mail-pj1-f53.google.com [209.85.216.53]) (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 EB0691EFFB9; Sat, 3 May 2025 11:52:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746273175; cv=none; b=tuCpTh0Bg6BvxJol9PHRyLy7JwQlX/w3mf8x/FGdt4GRvxRq7mrg3lsUUihADPfTMOyW1EwtwcIHNmzsNs4hrviv5W0z4t7kg5M8ttyCmu//knbExRtFWgFXlUmfYbHD9NXz3wnIFKyvz3fC1x0cbvQOO+RmzIFFTIVA/sxQTfo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746273175; c=relaxed/simple; bh=2eWns/mvd2DOjO4WQsDwacWvY07f8ZzkBblZGzu9jjc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=aegWuXP6f9p4ogF91uMIVEYuzV4bXMPIlPogpUv6SAi0YuTyBd9y1Q63sy6xkF/GV4qTP1vBGJThT/+K+f22wWwhN5YozkvHczhG9f+okv0k89zvcapIK7JKDeU7e2YTgoI6mIRxVmfO0DOO6YHmG+WTVLRct/ANXilyfWXGI3s= 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=afGJAXI2; arc=none smtp.client-ip=209.85.216.53 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="afGJAXI2" Received: by mail-pj1-f53.google.com with SMTP id 98e67ed59e1d1-306b6ae4fb3so3268817a91.1; Sat, 03 May 2025 04:52:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746273173; x=1746877973; 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=LqT9icyH5L3HVEZ++wzzfeTDQafQM9FU6JdKrhZWgZg=; b=afGJAXI2UvDE/vZPy2SWQ1JswBf8nrRyYE2BZDR4QfzAUWvA8iV6xPMQV56oHDdLqj a7dcCKor+043aAZyi7weRucbSuQ+vDSt2Mw81CAQ63CN6/Yx9rGSNdQ+ZC9WCY25ctLA bRgI6gULfKt2zrSSaYNPedgCclLmlj6adyai1mYSg8Wg0gtXILN+5z4VnD3KxW8Be3TN 8dJAg1bR1Epa+qec2HcDg6wSg6YRfJXpiAtDqVfE59TDpKDGwFGueQcJ8xaw5zv3MupF DcOuY2ARyTfP+caxyneV0O0CaCOT8cyMX2qX18t6LERhkl01uIfPfpSJVUEuNfoiOVOn CgGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746273173; x=1746877973; 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=LqT9icyH5L3HVEZ++wzzfeTDQafQM9FU6JdKrhZWgZg=; b=pPkGwMueEuwZlUyMXoTpxfs/3QAV4Aq/JiWvz8kVp5Hh2vbGn6nqbzEIaoJYGskSIK deG1kBcku1tsR4wCkEaEmEq6EpXLNrSXGlxeoctKJEtAZBBNdnM4uiuQoIM3JnHLHX7e UbGQZrg4/tol/7L8S7B0Ru9hXIwc52wvvUnzGDP7At94uf+kDnw5xopXQEmMNM6BH26R iSZOoH5BBXKDy3AmIdhFIsZAYQYblRbMFElmu/IpAQDS/tIyhnwSky4pryO9XYasHXLS JH/VOkSIwy8rUD+ihulfKodqziPuXA5tyaClHbgWdqVuUM/YQOt8Shh2/Gf9WX5NKEIm c+rA== X-Forwarded-Encrypted: i=1; AJvYcCV9VaHHrWREayz9zg5j/3P0oQJUcwNetsrmqNzUnZNJISHyF0fcuiJ+FH/mzyDwsH/Jm/K7Q1gDS/hi4lA=@vger.kernel.org X-Gm-Message-State: AOJu0YypvtDWG3pqC03Olq1pdJdtmWBPbpb+VEvLjhpFjp6XsbP1nAbb 79W/Vd2XI2mvISxb7WMkMFDOICZ4Tx/AhV5RBjQt4+oqIuU2Ss9pJFawZ7K5Ml4= X-Gm-Gg: ASbGnctt91Q0Sbfdrdl8O+NOefMLPQDLZ0PnsejgEHQDAMuFlNa4MkpXf2n2docUiBO q7HtN6AN62Z6DrCQVxILikXTlGYakx1pQWwSDLvrOFCFvCpvHfaapYx8kUCM1zm1hRNU5dnHhu5 TdAdrkhkw1DklTn+nyO4CdYNvnd0SgUsQmWO49atJtuknVOybY6fNsjyxMzxYPE8dinc9pTZsxp Z7F5p4eBHACUosY9x+AJ7L+6qtCfgHAUv92pJgqIG1uH+MgmyKxK/szwoQBYJ/V5X0Sh1nzeoMW 3Cw6v5cMOMmMmfxZPNfUAUcTmw5eyCYosItl19aLLaFjY4oq0bHW X-Google-Smtp-Source: AGHT+IHQhvoRErDN2QCfzbLkAlmsUP77fmt4s0T6uEiLCc40SI8a0i7UcGlUXSUwhazGx7urCpWHGA== X-Received: by 2002:a17:90b:2550:b0:2f5:88bb:12f with SMTP id 98e67ed59e1d1-30a619a1991mr1084307a91.21.1746273173005; Sat, 03 May 2025 04:52:53 -0700 (PDT) Received: from NB-GIGA003.letovo.school ([5.194.95.139]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-30a4745f9a0sm4879878a91.5.2025.05.03.04.52.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 03 May 2025 04:52:52 -0700 (PDT) From: Alexey Charkov Date: Sat, 03 May 2025 15:52:32 +0400 Subject: [PATCH v3 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: <20250503-wmt-soc-driver-v3-2-2daa9056fa10@gmail.com> References: <20250503-wmt-soc-driver-v3-0-2daa9056fa10@gmail.com> In-Reply-To: <20250503-wmt-soc-driver-v3-0-2daa9056fa10@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=1746273161; l=6618; i=alchark@gmail.com; s=20250416; h=from:subject:message-id; bh=2eWns/mvd2DOjO4WQsDwacWvY07f8ZzkBblZGzu9jjc=; b=je2W2HPA4ou65jbIZvmq1kg8oZAW69kfNCMzwVGRXD7ac4c2cPuIJOyp+RC7+uaGoBK+llxSZ KfinPCF0hlnBh2j9ig/N/l5fzhHZaJD3vbjo4vUdxpyCnfYqYjWaDr+ 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 | 125 +++++++++++++++++++++++++++++++++++= ++++ 5 files changed, 149 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..461f8c1ae56ee367dc2c84a58ff= 8fada0dfdaed0 --- /dev/null +++ b/drivers/soc/vt8500/wmt-socinfo.c @@ -0,0 +1,125 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright 2025 Alexey Charkov + * Based on aspeed-socinfo.c + */ + +#include +#include +#include +#include +#include +#include + +static const struct { + const char *name; + const u32 id; +} 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(u32 sccid) +{ + u32 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 int wmt_socinfo_probe(struct platform_device *pdev) +{ + struct device_node *np =3D pdev->dev.of_node; + struct soc_device_attribute *attrs; + struct soc_device *soc_dev; + char letter, digit; + void __iomem *reg; + u32 sccid; + + reg =3D devm_of_iomap(&pdev->dev, np, 0, NULL); + if (IS_ERR(reg)) + return PTR_ERR(reg); + + sccid =3D readl(reg); + + attrs =3D devm_kzalloc(&pdev->dev, sizeof(*attrs), GFP_KERNEL); + if (!attrs) + return -ENOMEM; + + /* + * Machine: VIA APC Rock + * Family: WM8850 + * Revision: A2 + * SoC ID: raw silicon revision id (34810103 in hexadecimal) + */ + + attrs->family =3D sccid_to_name(sccid); + + letter =3D (sccid >> 8) & 0xf; + letter =3D (letter - 1) + 'A'; + digit =3D sccid & 0xff; + digit =3D (digit - 1) + '0'; + attrs->revision =3D devm_kasprintf(&pdev->dev, GFP_KERNEL, + "%c%c", letter, digit); + + attrs->soc_id =3D devm_kasprintf(&pdev->dev, GFP_KERNEL, "%08x", sccid); + + if (!attrs->revision || !attrs->soc_id) + return -ENOMEM; + + soc_dev =3D soc_device_register(attrs); + if (IS_ERR(soc_dev)) + return PTR_ERR(soc_dev); + + dev_info(&pdev->dev, + "VIA/WonderMedia %s rev %s (%s)\n", + attrs->family, + attrs->revision, + attrs->soc_id); + + platform_set_drvdata(pdev, soc_dev); + return 0; +} + +static void wmt_socinfo_remove(struct platform_device *pdev) +{ + struct soc_device *soc_dev =3D platform_get_drvdata(pdev); + + soc_device_unregister(soc_dev); +} + +static const struct of_device_id wmt_socinfo_ids[] =3D { + { .compatible =3D "via,vt8500-scc-id" }, + { /* Sentinel */ }, +}; + +static struct platform_driver wmt_socinfo =3D { + .probe =3D wmt_socinfo_probe, + .remove =3D wmt_socinfo_remove, + .driver =3D { + .name =3D "wmt-socinfo", + .of_match_table =3D wmt_socinfo_ids, + }, +}; +module_platform_driver(wmt_socinfo); + +MODULE_AUTHOR("Alexey Charkov "); +MODULE_DESCRIPTION("VIA/WonderMedia socinfo driver"); +MODULE_LICENSE("GPL"); --=20 2.49.0 From nobody Sun Feb 8 07:52:32 2026 Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) (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 9BDD31F30DD; Sat, 3 May 2025 11:53:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746273182; cv=none; b=J9jkXz09H9aUI2UJZ+0PdNDjTij03WFgQM8Dmq5Gw6aoyjeVxthWHzmdR0LY8LGgVCd4gzj4a5dTSf8sBnm0tXKPeXCBSxIVDtHNJdikFjZKyVa1vvdhFCWz0CfGuL1rts2gbEKDKA8MUMapcu/8ETlAYktbAscJ0+40Mk/DyAg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746273182; c=relaxed/simple; bh=dWBUq8bBWa8P3YO4Zzb1jAw2fF/9zbTcQ/3MFoyjWSY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=R8cwB5MwBkk5i+k5NMh2Mql4dxQ5t+SkZl4rWMRqEwrWd7zCJ6qTr5gP+SzqQhfFrNv4OcEZv9GpNcEpUL84KBtkhFl/gQy81YfBb6woxnvwXGtsZFZrLgcKFU7T8B+iyJS96Bd7cUXY5bMn1WxN9uTtY3UXKxT87JVIvQyh904= 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=NuEpQAyr; arc=none smtp.client-ip=209.85.216.51 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="NuEpQAyr" Received: by mail-pj1-f51.google.com with SMTP id 98e67ed59e1d1-3015001f862so2281011a91.3; Sat, 03 May 2025 04:53:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746273180; x=1746877980; 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=gsfY0lV9E4GQej2w/iz2H9P9kYpTOHKDKPixk3yXVII=; b=NuEpQAyrslqav7n5QslTF6uzlr/JSJt8tBn9kUlVlQpRtjALJ56WNlTeOBGFRnRaxZ IdQ4A53Ip9+7bXw/UQvcwJ/ayMjq8YJj4qxGACzmd0FH7PKNRLBODw3lTLKk8sjvNcxM 12ZGuJjYlVXwwBohfX+YD/08zCzChuYqhQSUFU6oJ2Of4D2c4z64LzjfpppyvHWK0Cqa RZXABBgL03ezUByJzlF+5jN1QGxDoqDiBOnyCgVT9H6SU2keJMAIgPUg7UdVgP9L/LDS KrXC/njvK3YXOQNTgGbJee9Zy5/Tu+acrL4R6AuyBl7pzBSkVe/GqsmW3auQub5hnMZS 2K+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746273180; x=1746877980; 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=gsfY0lV9E4GQej2w/iz2H9P9kYpTOHKDKPixk3yXVII=; b=Jo791U2Tmx2aIJKuBhFghOHT0mNZEwzA93wl8VyaLf02YUHkJdiQeIr3qqDUnjGOgy rKOE/pa6N/1E1nBfohGH2CPe0z8aLKyLvkuHSGMhCRPhRhSHA1A3VN30SI2xP7BpESyr 97/NrhvIQFZslbtglWUoUT2cCr85CSaxIR1AAaHpryV05P2IBwbXb7DNrUVJhDqwfKbO JQP7z4O8K8xSCwR1BAoBQj/ZHdh8YfusLgtOKpxHzp7oO9+hyUOwohC/uf6Rg/LMm6dv WUNmJFQTsWjmEJuLJigCQIZyO1x2MZh9FNxrd1juEX27o/4JbDkN0HZtH+FWbLWkDsEa mZxg== X-Forwarded-Encrypted: i=1; AJvYcCWRX/ipWgoeKLtMBj6RbNKqda4ke2ZgApft1dUqbkyP6qNm05McZycBMrkGxUo5RApqhMVnVgVhrtVsxgQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yyzqf4S1lG7Vcyz1N9IDO5lqVkHFWegEMELquont4FbetsE9uxR jwot1hFy2hW4LHlloTn0YmHUbQTp3nl1UGztwElhru1CDVIRM2jO X-Gm-Gg: ASbGncu6AgyJhQTV0AJg9GrzTQsQPxSuRR7InZ7aNZPPID0vBPJjFveBxcqFH+RMuMY CN+x5hOnI2THMvKZPJN5CZmA6LImiXI1JmDKjj1b/yYCXl/JuKLM8kxuqGPwelVIUgZzaU+tsye 7lQxW0kY3yTXmWkCPjQYswepRYJ2qI+V7qQEL2/hyhkg9KWRFNb+9Oi2jnfgnELCB/RdtwMf6W7 oEcm/ImbhDxMVNEpXREVUpINuXVn9VfDD2o+UVpW0fvKhw1xwpZJgBbLJj9OG7YZV9J/0soto11 s4hyzmSPJh2KbOjWiQu4U6nYiecWBRbWSN06H6r5iPXIQ6Yk1xcd X-Google-Smtp-Source: AGHT+IHo07xACMd0WHyn+ptRHsMdpYfr3dNlaXuZOyQHE5V6GOegT0d8TzAAcTKr8eLDIZ9r9I1D+g== X-Received: by 2002:a17:90b:3506:b0:2f5:88bb:118 with SMTP id 98e67ed59e1d1-30a5aebf90emr3409932a91.22.1746273179808; Sat, 03 May 2025 04:52:59 -0700 (PDT) Received: from NB-GIGA003.letovo.school ([5.194.95.139]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-30a4745f9a0sm4879878a91.5.2025.05.03.04.52.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 03 May 2025 04:52:59 -0700 (PDT) From: Alexey Charkov Date: Sat, 03 May 2025 15:52:33 +0400 Subject: [PATCH v3 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: <20250503-wmt-soc-driver-v3-3-2daa9056fa10@gmail.com> References: <20250503-wmt-soc-driver-v3-0-2daa9056fa10@gmail.com> In-Reply-To: <20250503-wmt-soc-driver-v3-0-2daa9056fa10@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=1746273161; l=3308; i=alchark@gmail.com; s=20250416; h=from:subject:message-id; bh=dWBUq8bBWa8P3YO4Zzb1jAw2fF/9zbTcQ/3MFoyjWSY=; b=Q5zeXE1GVBmZ0NC9FYxAgrg1Xao74WTqZNc9cnSUgJsM2fbNVpTIj5Bl8X5WS2TKnACPtewKa GEXHPSCaL/gD4E/PzebzzVpV1d9mt6BAJ4itvI8evLLzqPRs8goRKj5 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 09f5ed3e6821b72fc440f9de3df0ad484d2c4e17..2ba021585d4889f29777a124739= 64c29f999f3a0 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 + chipid@d8120000 { + compatible =3D "via,vt8500-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 c81810b967bb349419a5ac7db4e788faec3695fb..99c064c916b2279797f71261ca9= 306e9dcd4bbd8 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 + chipid@d8120000 { + compatible =3D "via,vt8500-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 555008120a3e315591d2ca49a39d354925d570fd..0d6c7bd87f7dcce0eef056d04c3= 8ab1de5d52639 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 + chipid@d8120000 { + compatible =3D "via,vt8500-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 309f6e5129fb817d343cd58a8d90340afd8d6eb9..0158c0ba5dd110957eac38775d3= bf3ebd2ab4154 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 + chipid@d8120000 { + compatible =3D "via,vt8500-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 3f4a514d65e2ac7658b73cc9c4f3cae1407265bc..c4bfb4d30aad0358b39cbf30edf= 0c63e32167bbd 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 + chipid@d8120000 { + compatible =3D "via,vt8500-scc-id"; + reg =3D <0xd8120000 0x4>; + }; + pmc@d8130000 { compatible =3D "via,vt8500-pmc"; reg =3D <0xd8130000 0x1000>; --=20 2.49.0