From patchwork Mon Feb 3 11:38:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nick Chan X-Patchwork-Id: 13957295 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9176CC02192 for ; Mon, 3 Feb 2025 11:44:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=4gduqE5+XkKRgfOuTSHYpyohOphdvP2oewiQ8WxF2r4=; b=QWdphkg4ZCLPyjCNVVLfUsFH4N 8ZSUf8dBLr1946TkYdCV4KyqctKutepvNrV4UIwerBa0c4E0mGEdTy5S6eI6DOfVWwxXQGHTDYWh6 ORznTsFvog3QJea51UBGsVc0r+QjCf6GTaHMHzomfSiERHUmQwbcteoeVv+tCg+zvnZLMFuDgAOxx +TUfkwoEbkNKoe3YESQ1xtDcg/7ZWOcTw+HEdYupPf40I/Ql6UmHUezev5vmowhh7V22Mk8NhiSHE FRCVfJEJHeH4pgMoahYUkPpe6ZoITUwgnmouX1R6mFIT8THVWt4sbRBdwLfDbcFCAT952jEkkYXSn sKSaHFtQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1teurp-0000000FGN8-3oNL; Mon, 03 Feb 2025 11:43:53 +0000 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1teuoK-0000000FFw8-2Gcc for linux-arm-kernel@lists.infradead.org; Mon, 03 Feb 2025 11:40:17 +0000 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-21ddab8800bso57260435ad.3 for ; Mon, 03 Feb 2025 03:40:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738582815; x=1739187615; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=4gduqE5+XkKRgfOuTSHYpyohOphdvP2oewiQ8WxF2r4=; b=Cae3eHoRh8peP69PKRCDr1+oNZKKWVCbQUZCMDR7fn7slor4fLGeNsusuKqzG1txgj kl/lJ5g4Jy/xUEZ75Ij6rT7rapSgdBUcbQ4v6PQVVEXkk6kaffuEy4QC7G4IwNYz1a/+ 6wrt4PnVD4MxwZauoUlmYn+iDBTbOTYDAWZieHARoeUm2dKf7IU4Y5uhgJR+merRtCEz gLPeVqLcpqN/0jbSk7fcVbvaO0E/zCZ1GUwaGICPLM8zvBX/XtYNfz7Sb5wTDm09Nc5f RUvn00MUXEp+QGpzkvaTQuuKOI2czsNTK7bZN114pTdRbqeD4U8qG6z7wFg2dkJC7VkI ndkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738582815; x=1739187615; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=4gduqE5+XkKRgfOuTSHYpyohOphdvP2oewiQ8WxF2r4=; b=O+hhOWcYx8OLeO33mXnFKkgXXCJ/T31DSOKxSS4femhCU/vcw8OWkmVZgmz69dvNML KwQV5c3DC7HqHYheK+QXrNBwlibNcfYTYMoZng65UA3FnfMrBSUX86jHnogeAEY0Y+ux DmWX608t0aBIUqpiRKjKTL5tEbVa8jJJO0m0JThPEDohqB2snuGW02nsEHsVO2g+Ais7 1ZgPqQreD3wSRYvo+v75B4lpsxMYy6ORHAXNBmjxYjD8uRiraF4pQCT0MkNTPXomlUmS cbGkc9EnYxY91XdJrSXW7o6XVm+W0x6bknKy+XB5neJgYUsFaZPaTj+KDsmXpNDZhRrh 5bMA== X-Forwarded-Encrypted: i=1; AJvYcCVEda2RroSZ1n4eCMsKv4RGfoM1MD1I/7WCl8XzptXeILBmlAt543fciPZLWiK/ogBEro4Z5XiDe9Gm/MONp5tP@lists.infradead.org X-Gm-Message-State: AOJu0YwOxfUin/RVdyC+PhZYv86UFbdc4F67SLDcgemDYclrzSYJssEH Fd7e57nJcTHHVenbtjR+X4M42BW7e2xQiWNxc/U8zAWRTpsp3aFG X-Gm-Gg: ASbGncs3AsHU1vybtl7w5/CByfqdBciJ/WHcOtfzbe6kg2zN20q4BJonQmW2d4KHY/S f7CzBEE3f2hj966cyR1t2CH6HfeOcPJayfYxyI84AL/VB3d0jQUhx7ggjYhdQVCG3oh9wjQ1BRH 3Jvj+XHnj7rIJf2jLYYZHb4aJYZvtZpdvVkmT+Umidcc72+k4kjRlxX4xwa/pdRw92MGTIxkezj +FAt7YpqtF1YXeJ69iJduOul9e0m6bv2dUBeTYbq/BEbOnF/ogSYam81ulJRp9KQUSIBMRKKqqC ToVGJzeK/1XyWVYc X-Google-Smtp-Source: AGHT+IG/voCx4BoOF7MZR1nPTGgCOf7e1n+k46BNNiWJ1p0YoUYHkwqU6ASyPIUVLd/56kA/7gIkAA== X-Received: by 2002:a05:6a20:d809:b0:1e0:df27:10b5 with SMTP id adf61e73a8af0-1ed7a6e0e6bmr38809210637.29.1738582814998; Mon, 03 Feb 2025 03:40:14 -0800 (PST) Received: from nick-mbp.. ([59.188.211.160]) by smtp.googlemail.com with ESMTPSA id 41be03b00d2f7-acec04796d6sm7721614a12.55.2025.02.03.03.40.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Feb 2025 03:40:14 -0800 (PST) From: Nick Chan To: Hector Martin , Sven Peter , Alyssa Rosenzweig , Rob Herring , Krzysztof Kozlowski , Conor Dooley , asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Nick Chan Subject: [PATCH v2 RESEND] arm64: dts: apple: Split s8000/s8003 SoC DTS files Date: Mon, 3 Feb 2025 19:38:31 +0800 Message-ID: <20250203113949.14760-1-towinchenmi@gmail.com> X-Mailer: git-send-email 2.48.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250203_034016_581465_735A0A23 X-CRM114-Status: GOOD ( 22.51 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Despite what the code comments said, the DTS files were not split properly. Since these two SoCs are now known to have minor differences like in latencies for cpufreq state transistions, split the DTS files now. Signed-off-by: Nick Chan --- Changes since v1: - Drop PMGR nodes file rename. This is now the first patch and other series that modifies Apple A9 DTS files now depend on this series. This avoids less than ideal situations like adding a file only for it to be renamed immediately. Link to v1: https://lore.kernel.org/asahi/20241206135051.56049-1-towinchenmi@gmail.com/T Nick Chan arch/arm64/boot/dts/apple/s800-0-3.dtsi | 140 ++++++++++++++++++++++++ arch/arm64/boot/dts/apple/s8000.dtsi | 133 +--------------------- arch/arm64/boot/dts/apple/s8003.dtsi | 10 +- 3 files changed, 146 insertions(+), 137 deletions(-) create mode 100644 arch/arm64/boot/dts/apple/s800-0-3.dtsi base-commit: 2014c95afecee3e76ca4a56956a936e23283f05b diff --git a/arch/arm64/boot/dts/apple/s800-0-3.dtsi b/arch/arm64/boot/dts/apple/s800-0-3.dtsi new file mode 100644 index 000000000000..082e5b1733d0 --- /dev/null +++ b/arch/arm64/boot/dts/apple/s800-0-3.dtsi @@ -0,0 +1,140 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* + * Apple S8000/S8003 "A9" SoC + * + * This file contains parts common to both variants of A9 + * + * Copyright (c) 2022, Konrad Dybcio + */ + +#include +#include +#include +#include + +/ { + interrupt-parent = <&aic>; + #address-cells = <2>; + #size-cells = <2>; + + clkref: clock-ref { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <24000000>; + clock-output-names = "clkref"; + }; + + cpus { + #address-cells = <2>; + #size-cells = <0>; + + cpu0: cpu@0 { + compatible = "apple,twister"; + reg = <0x0 0x0>; + cpu-release-addr = <0 0>; /* To be filled in by loader */ + enable-method = "spin-table"; + device_type = "cpu"; + }; + + cpu1: cpu@1 { + compatible = "apple,twister"; + reg = <0x0 0x1>; + cpu-release-addr = <0 0>; /* To be filled in by loader */ + enable-method = "spin-table"; + device_type = "cpu"; + }; + }; + + soc { + compatible = "simple-bus"; + #address-cells = <2>; + #size-cells = <2>; + nonposted-mmio; + ranges; + + serial0: serial@20a0c0000 { + compatible = "apple,s5l-uart"; + reg = <0x2 0x0a0c0000 0x0 0x4000>; + reg-io-width = <4>; + interrupt-parent = <&aic>; + interrupts = ; + /* Use the bootloader-enabled clocks for now. */ + clocks = <&clkref>, <&clkref>; + clock-names = "uart", "clk_uart_baud0"; + status = "disabled"; + }; + + aic: interrupt-controller@20e100000 { + compatible = "apple,s8000-aic", "apple,aic"; + reg = <0x2 0x0e100000 0x0 0x100000>; + #interrupt-cells = <3>; + interrupt-controller; + }; + + pinctrl_ap: pinctrl@20f100000 { + compatible = "apple,s8000-pinctrl", "apple,pinctrl"; + reg = <0x2 0x0f100000 0x0 0x100000>; + + gpio-controller; + #gpio-cells = <2>; + gpio-ranges = <&pinctrl_ap 0 0 208>; + apple,npins = <208>; + + interrupt-controller; + #interrupt-cells = <2>; + interrupt-parent = <&aic>; + interrupts = , + , + , + , + , + , + ; + }; + + pinctrl_aop: pinctrl@2100f0000 { + compatible = "apple,s8000-pinctrl", "apple,pinctrl"; + reg = <0x2 0x100f0000 0x0 0x100000>; + + gpio-controller; + #gpio-cells = <2>; + gpio-ranges = <&pinctrl_aop 0 0 42>; + apple,npins = <42>; + + interrupt-controller; + #interrupt-cells = <2>; + interrupt-parent = <&aic>; + interrupts = , + , + , + , + , + , + ; + }; + + wdt: watchdog@2102b0000 { + compatible = "apple,s8000-wdt", "apple,wdt"; + reg = <0x2 0x102b0000 0x0 0x4000>; + clocks = <&clkref>; + interrupt-parent = <&aic>; + interrupts = ; + }; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupt-parent = <&aic>; + interrupt-names = "phys", "virt"; + /* Note that A9 doesn't actually have a hypervisor (EL2 is not implemented). */ + interrupts = , + ; + }; +}; + +/* + * The A9 was made by two separate fabs on two different process + * nodes: Samsung made the S8000 (APL0898) on 14nm and TSMC made + * the S8003 (APL1022) on 16nm. There are some minor differences + * such as timing in cpufreq state transistions. + */ diff --git a/arch/arm64/boot/dts/apple/s8000.dtsi b/arch/arm64/boot/dts/apple/s8000.dtsi index 6e9046ea106c..c7e39abda7e1 100644 --- a/arch/arm64/boot/dts/apple/s8000.dtsi +++ b/arch/arm64/boot/dts/apple/s8000.dtsi @@ -7,138 +7,11 @@ * Copyright (c) 2022, Konrad Dybcio */ -#include -#include -#include -#include - -/ { - interrupt-parent = <&aic>; - #address-cells = <2>; - #size-cells = <2>; - - clkref: clock-ref { - compatible = "fixed-clock"; - #clock-cells = <0>; - clock-frequency = <24000000>; - clock-output-names = "clkref"; - }; - - cpus { - #address-cells = <2>; - #size-cells = <0>; - - cpu0: cpu@0 { - compatible = "apple,twister"; - reg = <0x0 0x0>; - cpu-release-addr = <0 0>; /* To be filled in by loader */ - enable-method = "spin-table"; - device_type = "cpu"; - }; - - cpu1: cpu@1 { - compatible = "apple,twister"; - reg = <0x0 0x1>; - cpu-release-addr = <0 0>; /* To be filled in by loader */ - enable-method = "spin-table"; - device_type = "cpu"; - }; - }; - - soc { - compatible = "simple-bus"; - #address-cells = <2>; - #size-cells = <2>; - nonposted-mmio; - ranges; - - serial0: serial@20a0c0000 { - compatible = "apple,s5l-uart"; - reg = <0x2 0x0a0c0000 0x0 0x4000>; - reg-io-width = <4>; - interrupt-parent = <&aic>; - interrupts = ; - /* Use the bootloader-enabled clocks for now. */ - clocks = <&clkref>, <&clkref>; - clock-names = "uart", "clk_uart_baud0"; - status = "disabled"; - }; - - aic: interrupt-controller@20e100000 { - compatible = "apple,s8000-aic", "apple,aic"; - reg = <0x2 0x0e100000 0x0 0x100000>; - #interrupt-cells = <3>; - interrupt-controller; - }; - - pinctrl_ap: pinctrl@20f100000 { - compatible = "apple,s8000-pinctrl", "apple,pinctrl"; - reg = <0x2 0x0f100000 0x0 0x100000>; - - gpio-controller; - #gpio-cells = <2>; - gpio-ranges = <&pinctrl_ap 0 0 208>; - apple,npins = <208>; - - interrupt-controller; - #interrupt-cells = <2>; - interrupt-parent = <&aic>; - interrupts = , - , - , - , - , - , - ; - }; - - pinctrl_aop: pinctrl@2100f0000 { - compatible = "apple,s8000-pinctrl", "apple,pinctrl"; - reg = <0x2 0x100f0000 0x0 0x100000>; - - gpio-controller; - #gpio-cells = <2>; - gpio-ranges = <&pinctrl_aop 0 0 42>; - apple,npins = <42>; - - interrupt-controller; - #interrupt-cells = <2>; - interrupt-parent = <&aic>; - interrupts = , - , - , - , - , - , - ; - }; - - wdt: watchdog@2102b0000 { - compatible = "apple,s8000-wdt", "apple,wdt"; - reg = <0x2 0x102b0000 0x0 0x4000>; - clocks = <&clkref>; - interrupt-parent = <&aic>; - interrupts = ; - }; - }; - - timer { - compatible = "arm,armv8-timer"; - interrupt-parent = <&aic>; - interrupt-names = "phys", "virt"; - /* Note that A9 doesn't actually have a hypervisor (EL2 is not implemented). */ - interrupts = , - ; - }; -}; +#include "s800-0-3.dtsi" /* * The A9 was made by two separate fabs on two different process * nodes: Samsung made the S8000 (APL0898) on 14nm and TSMC made - * the S8003 (APL1022) on 16nm. While they are seemingly the same, - * they do have distinct part numbers and devices using them have - * distinct model names. There are currently no known differences - * between these as far as Linux is concerned, but let's keep things - * structured properly to make it easier to alter the behaviour of - * one of the chips if need be. + * the S8003 (APL1022) on 16nm. There are some minor differences + * such as timing in cpufreq state transistions. */ diff --git a/arch/arm64/boot/dts/apple/s8003.dtsi b/arch/arm64/boot/dts/apple/s8003.dtsi index 7e4ad4f7e499..807e3452f8a7 100644 --- a/arch/arm64/boot/dts/apple/s8003.dtsi +++ b/arch/arm64/boot/dts/apple/s8003.dtsi @@ -7,15 +7,11 @@ * Copyright (c) 2022, Konrad Dybcio */ -#include "s8000.dtsi" +#include "s800-0-3.dtsi" /* * The A9 was made by two separate fabs on two different process * nodes: Samsung made the S8000 (APL0898) on 14nm and TSMC made - * the S8003 (APL1022) on 16nm. While they are seemingly the same, - * they do have distinct part numbers and devices using them have - * distinct model names. There are currently no known differences - * between these as far as Linux is concerned, but let's keep things - * structured properly to make it easier to alter the behaviour of - * one of the chips if need be. + * the S8003 (APL1022) on 16nm. There are some minor differences + * such as timing in cpufreq state transistions. */