From nobody Sun Feb 8 10:26:52 2026 Received: from mail-pg1-f179.google.com (mail-pg1-f179.google.com [209.85.215.179]) (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 58118211A05; Fri, 2 May 2025 22:04:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746223491; cv=none; b=oty4XFpMQPHPDNOBKqbSeubUDn29Zy5005SL0xAjR09xPrhpb6GK3AtYfBz9bu5DKrV7II+I18ypkLOnZC6LpsHCycB80HotIZvgE+xsc8hV3C9yb3zfs9YINPwVk5HQ6b2rb5PkYFxfvjFijs1NXqXkBcZOoilyOyY4hit4bSU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746223491; c=relaxed/simple; bh=g8O89/tgxr9vz1Mo4beSgs2+D45p8f8lUVQIzp/SfqA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nLs+cOIHVHsFkD0trD0g2Y1V7kJVXvjceAYkD6OaT3pDmQwEUMVEHl6yj27KZjI4LInmAEl/T5wPH7dokHiaQ8MDIueBijgKGgNEPVi7mqZSA8dRNPAm5RbTrhl4RalG75j8m9R8xyq9lXOEhwYa6pk3APXN54VGUxQQUkZ8qzw= 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=X/lofpdD; arc=none smtp.client-ip=209.85.215.179 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="X/lofpdD" Received: by mail-pg1-f179.google.com with SMTP id 41be03b00d2f7-af59c920d32so1768090a12.0; Fri, 02 May 2025 15:04:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746223489; x=1746828289; 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=Uq+OXw6OLnK7x004RVfSVNUbbrimNuG8oSdUlWB6tLA=; b=X/lofpdDMt6b0j6m3FQ5/itcdXzmnIEc2w5Jt7ueeWmqGArNx9xsYfale2hjBQ9hhU V/epCA7nNNlXHujnop/8bAJJpIIMAqIFXT3OfYDaylT8SN/gWHCDLQopPuKk4qAg8k8h 4lYxOC/EEf8CwG5epo10UNxmunl5leyPPmC9ukxV63pkmyjxgjgKNeGtYp/AHoJkePxc Qn9Uv13Bt6TyGgKN4GdBFVVNNfj9Eatw0clc5/R4UhIlEDNRtttOn7foxFb8N2QaIfe3 BQqRrK9zAo7iuuPRWGf48qx4qkcNvTwlojVywvF6Y69lzYn3omE1OfKlY77hj3M1qzrl /9kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746223489; x=1746828289; 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=Uq+OXw6OLnK7x004RVfSVNUbbrimNuG8oSdUlWB6tLA=; b=FA4elIs0g+/vISzkqt6XTB9xGkUimXsH2ATzxpSSD1ZYuJaN0IrXxbMn50T0l6P6rX E3zr8PR8kIHmAgmnw+VhlSjMZ3upBZ20PgU9i3/ZJJgcgH4Fo4S5mOnOXbzE5HRw5xMz Ej+RCTJ34165sYBuZSri93Np9YSyG2I8UOPCIE6HFqPhq0bOpC9F3ohzG5s1I7PpT3pr TGJgovbxf17ggszbURvwdYPO96m1B0NQR0au5Mp/HGYIA8EgFMOdkeKfdGUx/Zf4jgH4 eRtMW5Rsp1G6OWN3dUpRJGrWgVYadtDO8prIeeXMmtVQFR/17bMn6iDw4FnD869SoO57 VzPg== X-Forwarded-Encrypted: i=1; AJvYcCUz6CupWJyhJzlOubv1YPmi6AtJ31wJrxYFrMtICfZPTFl+ZKLbEs6qf+0E17Dko+hDzyEj0aQqBzRoqpE=@vger.kernel.org X-Gm-Message-State: AOJu0YxPo113b9wenuJW3vx2xUGGL/0AxrAbiJZcWrSClMmc50Eb0KW8 CiMqMDNa5QH6EdaN0MO6LZoLCgbLIgHr++uzkel2tKjN1MtFC3bZ X-Gm-Gg: ASbGncsxWRoXbPyXsPJD2z6+VRQG0SByLr7tREwjHXLTGyyN9/zAQ99APca9fHj1z4r tfB0zfQwrQ42p5PWi9o2+eSRicaae1NKR6f1V4EI47wIXhquoCA+pkSKCl+KIq1SqPzjluJL1SI +nJnUpT2Mnmdg4D+Etgp7aQ8xWvMDfqmOOKjRhiQNkILmDw7n5qqi+vbrXxRg6o4tYjbZKtjU/7 Oo0zRxgH1q47oDgz6sW4CUjPy4lV+Cj/tpY3NhH0sWD+m1zz3mCNY04dSFjoxoJCr6wuFfMg82z SnM++I36N7XVsT8KbCEH3Eyy8e+CG6A8PorUakfoDT4rWjmw8TZNAB7HYsWKZ+s= X-Google-Smtp-Source: AGHT+IGIUqAabkLqubDX4Jwh5s3qIBaj31PlOqtXecuhGusREvC+uNRvRC9U1mpHrmUFZCkKtK1DPg== X-Received: by 2002:a17:90b:5707:b0:2ee:f550:3848 with SMTP id 98e67ed59e1d1-30a4e55b5a2mr6295145a91.5.1746223489449; Fri, 02 May 2025 15:04:49 -0700 (PDT) Received: from NB-GIGA003.letovo.school ([5.194.95.139]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b1fb3c48ac4sm1301153a12.55.2025.05.02.15.04.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 May 2025 15:04:49 -0700 (PDT) From: Alexey Charkov Date: Sat, 03 May 2025 02:04:23 +0400 Subject: [PATCH v2 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: <20250503-wmt-soc-driver-v2-1-8c774ad84d47@gmail.com> References: <20250503-wmt-soc-driver-v2-0-8c774ad84d47@gmail.com> In-Reply-To: <20250503-wmt-soc-driver-v2-0-8c774ad84d47@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=1746223484; l=1713; i=alchark@gmail.com; s=20250416; h=from:subject:message-id; bh=g8O89/tgxr9vz1Mo4beSgs2+D45p8f8lUVQIzp/SfqA=; b=EAIdOSwrW7w3KBGa/ocx/LaApsk6+8FLtGjQCektH9Dvh4aT21hW/4ADeFZoclicEljnO5tE9 RUQ+2rIXptGDYQhtoNVw16zgJfo+5uSYHW+gvrBdUcTFbmKLw3NYP5Q 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 --- .../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..87bdb947dedb47b508528d70543= aba067aa03e95 --- /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/soc/vt8500/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 10:26:52 2026 Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.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 218C921D3D0; Fri, 2 May 2025 22:04:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746223498; cv=none; b=f1pcLbr3nGvs72xvFf7UByaoEXEYWhZ9jHdB8M0zqOzrSCZlmLVhcn2x4m8ZktOUJovrL6fDV06GhF/NaGgbzAr1MMk5V8ICGDrnAX062QgkCnhssZfvOcPn83YwmxCcsf0sdvtzKGg/doUF15of/I2nhIFb9o7JnOYayhd9deA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746223498; c=relaxed/simple; bh=2eWns/mvd2DOjO4WQsDwacWvY07f8ZzkBblZGzu9jjc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=i7sYETv9KCtVIJJGzZxeYuyNIXwoX6jXZfOp86fW6Ch03v5G/XNaeR3oU3+YCm6O3sLM0xioHM3DBm3IkNgGqOfn2ulb7mhL+iuFlGRO5fNuq3SNJzKnYG250OD8vrkh8Ylg+xdT7W+iHob9dMz5qEbNwygJ0hlHyTCKZt66ZcU= 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=O6abRlPm; arc=none smtp.client-ip=209.85.210.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="O6abRlPm" Received: by mail-pf1-f170.google.com with SMTP id d2e1a72fcca58-73712952e1cso2769780b3a.1; Fri, 02 May 2025 15:04:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746223496; x=1746828296; 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=O6abRlPmkwyQTMcPxDdIx2gt3NuIw+ws/gF5B86DGOfQj8W6ul3VMCQCLUA2vN+VQj RLBARQCq4K75MwsZ3/N/NvySaSe0sb51j/EbkkjCXLXhwqfUqjymPYpMsqHLJP69viwe ThlMk2NTKZLorUBP/iwpBrJQ27ePhD8hNhgvbGVsu+jdiI3IYy8GooYtB2kNMXTO4mh8 njC+Q+tBBDoYP+F/sNtMdEqdIq32h8eCOMYUqLLVrLIeO796GICB1RPjCjphdRjUK+ld rwTZzboB7HOXUzcB9mLSahi3OhW306lOuVdtWmzY9GfpPHPa5fABIO28skYjclcyUHDB zd6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746223496; x=1746828296; 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=U4q7MwSVOwqlo6Cc/xTl/pcFynyWEh79nHfAK26hiH+Fh2weqSrRxfTBf7nwXLq8Ir q9ZC/G/eofPDTJYrKUdKdwJk1q8AlMS+rUhRGaLa76LHvd73ucA4mxc2QAb39V/3Krcw zYCFf4+Y5TxfdS8X21Mhx6353Z/N1PGwPMc29+NCQ9Od1xgBOJ23hR7lDEzQYCInHlQl PlBtMLBjtTKXX386551320wIysJdhfhWoLaZIep9SVNUhZMbh56c5yhmDs8IikozuwS7 ylj+LuXhqPewujx4tgIGGzMx1eFJNka58gfXZB2coFN9ACdlD9WukRxA0/xRVJ+abR5D 1qeg== X-Forwarded-Encrypted: i=1; AJvYcCX89u9WmgGVweZgLdme+DpZLusuiOpdggnD5PF87cTcXRyew6Enx8+hrfszUCVcoPkY524D+zozK+4Fo1w=@vger.kernel.org X-Gm-Message-State: AOJu0Ywqotm5zWo+iuD211nDgtZsPI2G07qu8+Q/SHYwoOITEDRqno2y 61QmUnbvroJ9l97t23Tjfwu7jvPZXgKV9fz9SuVkxafGcx/IPkeX X-Gm-Gg: ASbGnctA2kE9rboSfx0WZrR+svXIHHw0f1izp9051Iok4zv/mlk7BO6KOg3htRo+3lb uQ5fRu6UY0mGHacL3GD7QFbZQpHplt60m/a7dpN0iIcL0s1fXoiePWb9sEf2TM66lxCpG7k8i8Y gw0zsdOXl6V4tbHwR8F3lAdnEFu0cEALTG/xmtXYO+hWbKMjklw8y0YRu8ztoGEZeXkRcHTYPu5 LogL3NssT9bzt4zJd4+SHd6y7Sngi7iUV33EV3My5ZADN9/mfoIV5KawPaWL5v7k72jdujPyE5c VQSrN8vbjBRMQGbcslzVYsTDj+/tep8nZhhxot0d3zr0stYCwJUW X-Google-Smtp-Source: AGHT+IFrsZgXwTb+o3P5NX+EcspzU3ZXTnhUP6GZ8J8b0ioO7HZutoa08ad7NnCqnvC4OrqAm97JVw== X-Received: by 2002:a05:6a20:ce44:b0:1f5:8179:4f47 with SMTP id adf61e73a8af0-20cdef3aa2cmr6376196637.20.1746223496252; Fri, 02 May 2025 15:04:56 -0700 (PDT) Received: from NB-GIGA003.letovo.school ([5.194.95.139]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b1fb3c48ac4sm1301153a12.55.2025.05.02.15.04.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 May 2025 15:04:55 -0700 (PDT) From: Alexey Charkov Date: Sat, 03 May 2025 02:04:24 +0400 Subject: [PATCH v2 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-v2-2-8c774ad84d47@gmail.com> References: <20250503-wmt-soc-driver-v2-0-8c774ad84d47@gmail.com> In-Reply-To: <20250503-wmt-soc-driver-v2-0-8c774ad84d47@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=1746223484; l=6618; i=alchark@gmail.com; s=20250416; h=from:subject:message-id; bh=2eWns/mvd2DOjO4WQsDwacWvY07f8ZzkBblZGzu9jjc=; b=Bnp6OOMBfrpLigSGh22fhgwfwPkaSR7MmvfXDPmHB6JuD+mXwQurmZO4vWH3p0k1JpTRP5FEf NjSqzmg4TSHD6W/oXQjy49ZTh5uz6uHwtHRPNtDuUdGkTEVVG/Ay4RT 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 10:26:52 2026 Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) (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 7DFCC21D3D0; Fri, 2 May 2025 22:05:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746223505; cv=none; b=sZl/MlPJpXKnH9xA+Tcxj7nVYScq+QvB2zfc18ED/ZXvT7q0gj2eqa0VsY1+EvcHLyPHpzJLduG/9rVfPZSCwUxptAcLVGy2RbE7b5+Uqdd2tqS5BbZHAftdfEZ49Oz+RLf1QSB1cZH3DXOYyHjPY7l8o+PQMAQLt04Q2GkvJKM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746223505; c=relaxed/simple; bh=dWBUq8bBWa8P3YO4Zzb1jAw2fF/9zbTcQ/3MFoyjWSY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LO76wY2ZpYIrPbw1yFf8CpcQtnGo7oQvc8TqkZK76whZTH8LmQICBT+fWgzsrgRuN/dJwiZoNnEzLDsIik+02zZ8quu29JbZ1d5S4nPo5NIK3LCGor/F6JozQ8W/T5z+9yqajwZh6SWOj2lPNcmdEvmCqo+5en5zgdfslrYiN3E= 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=aTSguQZi; arc=none smtp.client-ip=209.85.210.173 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="aTSguQZi" Received: by mail-pf1-f173.google.com with SMTP id d2e1a72fcca58-72d3b48d2ffso2967838b3a.2; Fri, 02 May 2025 15:05:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746223503; x=1746828303; 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=aTSguQZiPMslL3pAB5cVB8Gnq+uJEffRkL66NTozIhB4loDRtgF8FiFWj3LBesygS7 L7Feyhu6LJXf7L5lMnSd/yLYdT/0xWfGQ5nZekmQAPZ38t031y2LOzK3+wIB33UUSjnO Hq7RJQPuWrp4FQtgxB0cmJPiEnYW2Kvg9JSwiOnfplRKTTyJNj+48I/NrXjjfkQClC+l rx80OnHyzdRl6XeczYpZjX5JDOU0HQGMFpGoasTM/C2nT0HpoUXYjEkE/Q4lU2uSZOYR N78e4u+dos1VrvjzFVHitqlZ3501n1zJcx85icQOAFmzl82rDflBm3lGmyoCfHpHjLki G0iA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746223503; x=1746828303; 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=TIshOi2xqE9XJIWU8UkfssaRtTZWWRu5onWbJ5EZwyOZyLHSxr2JPD27iqGl8MGu9Y IIjC8GHxlG1LXaO1mZPDq508eBLdkxvqXgKMZOX6Ll2Z8SvkoZtLBQNNAIzMHAwXNfcC TW3iETRZ7u2IpZUFHimQOTTg9pwp57EYibxpUGUYqf48lXTrUP9kzzjhJ0xcU8OhafAR uveSjbVpxSlhEe0332KJxYqN87m8tUpbUsg74UBJ4bB/ULVoyAssiUx4YIAuGayAXoDp 6bjJHDee1d9wdaWPest10bKrskrIr6Ha9IAKXv8ep37D1DC5QzzDMnKRkyuwvytG0M+9 kagw== X-Forwarded-Encrypted: i=1; AJvYcCUOTFHYpqlHCnJZwfBBr7mcJUedflvaxe4zm0SyxHvEdrf7QLD6w11h2P1G4XcBWVSAeV0l7z6S6Uh7jDo=@vger.kernel.org X-Gm-Message-State: AOJu0Yyhdqy/9ywNrZTeGSWxmQhesbrY0RguJhY/9p0KZHvSjC0ZbLTA LU95F9b9yf1ptyIiVPa2eIZdmLbo5xC0Nequa0z6QIopg6NBEQqY X-Gm-Gg: ASbGncvMBxIi6v3i99gUwSnLuoz21nTKNH5l6g9AMzRcWmDW8B2fKt0NqnLq/AavWJn GaYvKxqSdE7fkdmwCZJMWVSF5yFeYmvivdAa1Y4pIDmYAibXaHshN03Bn7OEjpUP68EWfRyKTM3 wlcsDRgO5UXdWp7Y0UX2zI5KfUSM4n15wyoTIqzJnr0J2xPKD653y15Gt1YjCy1/2kge0j2EtOl jWSnp99yhucCKb1R8vbnTf6EL88fYgERnygQX5MTTHDa2Z0pvCFLzPuLa7LaJdhtBvbP8+4RUk8 YDTvYGodFtwdHpugFG7FYpP75BHHbLK02SVYzKBpLDUEjbNx2DxzeOzFDSx4OQ4= X-Google-Smtp-Source: AGHT+IEIHdpKHHp0Jwn7v/qswP5sSpR+7kBroeMagApShsPV6L42FJ5hXjpTpVflWJhXlFGCaYxMhw== X-Received: by 2002:a05:6a21:6b86:b0:1f5:8153:93fb with SMTP id adf61e73a8af0-20cde8575f6mr5246810637.10.1746223502909; Fri, 02 May 2025 15:05:02 -0700 (PDT) Received: from NB-GIGA003.letovo.school ([5.194.95.139]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b1fb3c48ac4sm1301153a12.55.2025.05.02.15.04.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 May 2025 15:05:02 -0700 (PDT) From: Alexey Charkov Date: Sat, 03 May 2025 02:04:25 +0400 Subject: [PATCH v2 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-v2-3-8c774ad84d47@gmail.com> References: <20250503-wmt-soc-driver-v2-0-8c774ad84d47@gmail.com> In-Reply-To: <20250503-wmt-soc-driver-v2-0-8c774ad84d47@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=1746223484; l=3308; i=alchark@gmail.com; s=20250416; h=from:subject:message-id; bh=dWBUq8bBWa8P3YO4Zzb1jAw2fF/9zbTcQ/3MFoyjWSY=; b=CdXpquQvvaMvwd0gcmXPZLNq+z5O4wX4uzNPsvinL/S+zR46NynHev1DlfM1FVWwry826+djS lMlJuAeRroJBBILdR0gJkSvp7YJvYjQC6WVmUABZJYFkPQiz08/gdvd 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