From nobody Fri Dec 19 19:16:36 2025 Received: from TYDPR03CU002.outbound.protection.outlook.com (mail-japaneastazon11023143.outbound.protection.outlook.com [52.101.127.143]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0BBFF13D891; Fri, 7 Nov 2025 03:38:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.127.143 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762486708; cv=fail; b=IZMEJadqvt8Gp7TDAFNTh7jy6CFcj11/rwcVBlDpNuTatQu+QOArSSIXsbwRwkPFlSAYYglfnPi9YeAdgPeu4njzNG6aG4ET5O3kkWlSMOaD5ZnXyWfWpWv09vHOgTrT9rIKNikDc+CA1UtNnUv9MsPzqOwIagT2dWMpN9khHaU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762486708; c=relaxed/simple; bh=kI6jlw162Vve7kR3l3YbzoEEaPe37Wis7XfVxxMFRtc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Zy5CBJtr58QUJwTPMHJhXwmwq4Hj2q5ZS57Z+5vjSHmMKHPacmEU6yeZ6coFVBWyp55v7PqQK3vrOggT+kh5s0bJyqvh678VzvJ250CjB02HqeWqGeJTnB2nZF4qMtRWNAcmrM2F79g92/dss8i7UWIke2sS2A2IlQsR8GtUez4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=cixtech.com; spf=pass smtp.mailfrom=cixtech.com; arc=fail smtp.client-ip=52.101.127.143 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=cixtech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=cixtech.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CzGPmxHlHAgJ6Nt9dUiQM1H1huGqv4Q3i9qq+aOjKHawD2Vc5JsqG5+p3GA4WumjDobDeM0RFU9tstAdbWGC4M0dp2PI+FpcTuOq8ygvs4ktFK3AK+6RhWOtKQsmOSQW9sVdnupVmc3YavfeYxIwQLijlN3xjjZ/7QnQPXdvZS0buWUTvOQBlm6JbmSdUpq7yHP+3MWxD8m9yVRbnCSbVmGxIBmZNRScV4K3DxczXtWL7agsZ9qtEukU/RDwb3oHFY1AWLnpq8ZcNni0hErCXgj74Owhcms+ARP+cKtz30MhcVRtVZC8cugX4bQCLdHr1RmQP43KLU3eJQYaDMCvuQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=uvP1HxbboZzoHg2lvuovkfKMXJOVDsP+NlJ3F4umdjw=; b=OjXYXygjHUBQtTPANrg0lzEmIQk0DxoGfqWDVC8bkAJPRhlZ47GRgBSQPTIYXeCfDOy9L3lfgggfk8hzAYD2HvhUSSj14YgM6wRAf8UbfSoV6lWBrTyOumg7zvZ5AolT++NlG0vOrzyYTce6zkWqUYlEO687g7pVcvJfrgxodUTlBVSXFt55C2ToV+fTFYkzV+XdZpwRKWzSrNl7KG7TdqT033KZLL4jLWUDcESjAUpGEUOp+YW8JrCG5RYFpiJkpK77Q3pZl1UumzOmIQhd9UcDYAhKnhCmwPE381EDF+BCB/dNrSGJF//iFUb4Wzo6XSqfCO7MWJ5X9Msn0J/kgg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 222.71.101.198) smtp.rcpttodomain=cixtech.com smtp.mailfrom=cixtech.com; dmarc=bestguesspass action=none header.from=cixtech.com; dkim=none (message not signed); arc=none (0) Received: from PS2PR02CA0047.apcprd02.prod.outlook.com (2603:1096:300:59::35) by SE2PPFD0F78DFE1.apcprd06.prod.outlook.com (2603:1096:108:1::7eb) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Fri, 7 Nov 2025 03:38:21 +0000 Received: from OSA0EPF000000CD.apcprd02.prod.outlook.com (2603:1096:300:59:cafe::28) by PS2PR02CA0047.outlook.office365.com (2603:1096:300:59::35) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9298.12 via Frontend Transport; Fri, 7 Nov 2025 03:38:22 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 222.71.101.198) smtp.mailfrom=cixtech.com; dkim=none (message not signed) header.d=none;dmarc=bestguesspass action=none header.from=cixtech.com; Received-SPF: Pass (protection.outlook.com: domain of cixtech.com designates 222.71.101.198 as permitted sender) receiver=protection.outlook.com; client-ip=222.71.101.198; helo=smtprelay.cixcomputing.com; pr=C Received: from smtprelay.cixcomputing.com (222.71.101.198) by OSA0EPF000000CD.mail.protection.outlook.com (10.167.240.59) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.6 via Frontend Transport; Fri, 7 Nov 2025 03:38:20 +0000 Received: from localhost.localdomain (unknown [172.16.64.196]) by smtprelay.cixcomputing.com (Postfix) with ESMTPSA id CCD8541604E2; Fri, 7 Nov 2025 11:38:19 +0800 (CST) From: Gary Yang To: p.zabel@pengutronix.de, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, cix-kernel-upstream@cixtech.com, Gary Yang Subject: [PATCH 1/3] dt-bindings: reset: add sky1 reset controller Date: Fri, 7 Nov 2025 11:38:17 +0800 Message-ID: <20251107033819.587712-2-gary.yang@cixtech.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20251107033819.587712-1-gary.yang@cixtech.com> References: <20251107033819.587712-1-gary.yang@cixtech.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OSA0EPF000000CD:EE_|SE2PPFD0F78DFE1:EE_ X-MS-Office365-Filtering-Correlation-Id: 0feff1fe-f6b8-47e4-8333-08de1daf1917 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?gF6CHt8cn8bJJ0RexFPYeJiMps3qLoY3rOQn2XguRuOzql1hvtKlw45BQIO6?= =?us-ascii?Q?WSzjyOxEKcPfVqWVwh9HkWpjpP1UqIGXXCB4mC75L6W5UB2B6nwwwki+hxxy?= =?us-ascii?Q?/gV5ifTMNhuBuXg4yuMlJy83e4/N79NU6HItfg4gDWWmuwy3nk1SAup4NyFo?= =?us-ascii?Q?F7gsXZYs+nzk6Bh7yx9uW33TH8CYnp4J3oPAbhQwqkCKeFzQwOfMBpnQWFhT?= =?us-ascii?Q?7CHuJk6RCg7ujwBaLUZhAB9ntQB2iKHRQ2mriCV2EQA4SakQ/PDP0ozBtKpZ?= =?us-ascii?Q?A9FD5hh57J+GK7Rds2VI92cl5TJ6HEm78nDwSZbnCeMYAaQYjdAfvvoV+04i?= =?us-ascii?Q?JIPDJ2o9LbzSZLK32QJZ0Sqq9CJmFagrRCCgvTH5AgbAUC+7bbYTR1K4bXgY?= =?us-ascii?Q?UgFhbMoDj3xDxM/xBUv8nEUQC4at02hwx7zlS6rfkwUn9G0GNvRxfN0OlQuB?= =?us-ascii?Q?mbJNdViBcNUg8jjQyPLKljPm8qXIXOj/bbcq5w1xagw+AzlPDohjLRM0Ik1F?= =?us-ascii?Q?9qImQOfkZ+lUDiqA2MxM+NOIeixwzKb+PvuNP5U8DvGcTdR/sgRbtNTo9lQs?= =?us-ascii?Q?bvNPkoZel3Ya20z487fYOa1bp+7/N0Z6q2W4blnPVKXsj94HqJLq8aMOlM3E?= =?us-ascii?Q?p3BT7Rq2Lpd0Xz9zKXh0BaOnX3YHhRSTdPtFa9hvfKdCQZZe1aGrT6eZ3Zww?= =?us-ascii?Q?OKCEWzaw1MztBEe256yudPhL3lZClm1XRDPI0FeU9zkW5qOA92Ad+vOx3igA?= =?us-ascii?Q?PpK2eguIfvRgqgKlyvMVdDunvmV7jLUG+Ba6z+tSvCeGif7eoS5puCVu+ubl?= =?us-ascii?Q?bq9ks1VV9LnzS+O04T65jE92fzEa71VJ9/kD3PDJPkgIeswaG3CjolDQQbkX?= =?us-ascii?Q?jzDR89KzLOaWTx01JERqmT1L7bi7d6uCaMd8m33b3eTcsbaf4JFcJeLAjH6g?= =?us-ascii?Q?539MOU7EuBI2bSwVVmUCyPjdq2O6yA37iN6QWiZGp3tsqyxvQaH6kU5uv2pC?= =?us-ascii?Q?nEa/Oxw54l5WCpI5YFP1nk0ijQghFAGI8mCxaYef4ON3rWbezEkFZucrDTFz?= =?us-ascii?Q?kx1kZVzZZFvm/ZeqQOVNgeKY/8tfxK//u4EfvPWoly2s0MYitiH+wBQcNtKt?= =?us-ascii?Q?tqqyDoLBAmc4Zx3UK7UZmcnF5ddZN7S4/WeY8JjU9G4d8bKVu76ttHK8HTzL?= =?us-ascii?Q?z48tWUqW6bDwaQTymGxtmOC7PXHKE2jjXIzX5lXwxKlQENvK96g/K5Q0I44U?= =?us-ascii?Q?CXBpAuCxZpaD4KF80nLD0T4UHeSpDWDF0ykOLNV5eq3sgVlyCP+BTHZzxj33?= =?us-ascii?Q?3+ks64fBSzKVPaJ1nxLqw80J8VAbTxS03ef7rC3yGMgR/2Ml/bXWlY/A/lCr?= =?us-ascii?Q?taaHKhc5sK7DXZU7t62IwTM/+ViSNjPoH1v1nGV9/jOrN1VV6LskxSoVBz8X?= =?us-ascii?Q?B8SbvoWmtwbnXiRJ97vpQ1osOX6HKgEqAGXZmlsta5YD+8JHGS/c11FbbhLM?= =?us-ascii?Q?gAMjfBlaV79JJp+zeQuqoE8iY0y9fM53CLV/?= X-Forefront-Antispam-Report: CIP:222.71.101.198;CTRY:CN;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:smtprelay.cixcomputing.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700013);DIR:OUT;SFP:1102; X-OriginatorOrg: cixtech.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2025 03:38:20.8455 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0feff1fe-f6b8-47e4-8333-08de1daf1917 X-MS-Exchange-CrossTenant-Id: 0409f77a-e53d-4d23-943e-ccade7cb4811 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=0409f77a-e53d-4d23-943e-ccade7cb4811;Ip=[222.71.101.198];Helo=[smtprelay.cixcomputing.com] X-MS-Exchange-CrossTenant-AuthSource: OSA0EPF000000CD.apcprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SE2PPFD0F78DFE1 Content-Type: text/plain; charset="utf-8" There are two reset controllers on Cix sky1 Soc. One is located in S0 domain, and the other is located in S5 domain. Signed-off-by: Gary Yang --- .../bindings/reset/cix,sky1-rst.yaml | 48 +++++ include/dt-bindings/reset/cix,sky1-rst-fch.h | 45 +++++ include/dt-bindings/reset/cix,sky1-rst.h | 167 ++++++++++++++++++ 3 files changed, 260 insertions(+) create mode 100644 Documentation/devicetree/bindings/reset/cix,sky1-rst.ya= ml create mode 100644 include/dt-bindings/reset/cix,sky1-rst-fch.h create mode 100644 include/dt-bindings/reset/cix,sky1-rst.h diff --git a/Documentation/devicetree/bindings/reset/cix,sky1-rst.yaml b/Do= cumentation/devicetree/bindings/reset/cix,sky1-rst.yaml new file mode 100644 index 000000000000..72de480b064c --- /dev/null +++ b/Documentation/devicetree/bindings/reset/cix,sky1-rst.yaml @@ -0,0 +1,48 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/reset/cix,sky1-rst.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: CIX Sky1 Reset Controller + +maintainers: + - Gary Yang + +description: | + CIX Sky1 reset controller can be used to reset various set of peripheral= s. + There are two reset controllers, one is located in S0 domain, the other + is located in S5 domain. + + See also: + - dt-bindings/reset/cix,sky1-rst.h + +properties: + compatible: + items: + - enum: + - cix,sky1-rst + - cix,sky1-rst-fch + - const: syscon + + reg: + maxItems: 2 + + '#reset-cells': + const: 1 + +required: + - compatible + - reg + - '#reset-cells' + +additionalProperties: false + +examples: + - | + #include + reset-controller@16000000 { + compatible =3D "cix,sky1-rst", "syscon"; + reg =3D <0x0 0x16000000 0x0 0x1000>; + #reset-cells =3D <1>; + }; diff --git a/include/dt-bindings/reset/cix,sky1-rst-fch.h b/include/dt-bind= ings/reset/cix,sky1-rst-fch.h new file mode 100644 index 000000000000..08c43bd64cf1 --- /dev/null +++ b/include/dt-bindings/reset/cix,sky1-rst-fch.h @@ -0,0 +1,45 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ +/* Author: Jerry Zhu */ +#ifndef DT_BINDING_RESET_FCH_SKY1_H +#define DT_BINDING_RESET_FCH_SKY1_H + +/* func reset for sky1 fch */ + +#define SW_I3C0_RST_FUNC_G_N 0 +#define SW_I3C0_RST_FUNC_I_N 1 +#define SW_I3C1_RST_FUNC_G_N 2 +#define SW_I3C1_RST_FUNC_I_N 3 +#define SW_UART0_RST_FUNC_N 4 +#define SW_UART1_RST_FUNC_N 5 +#define SW_UART2_RST_FUNC_N 6 +#define SW_UART3_RST_FUNC_N 7 +#define SW_TIMER_RST_FUNC_N 8 + +/* apb reset for sky1 fch */ +#define SW_I3C0_RST_APB_N 9 +#define SW_I3C1_RST_APB_N 10 +#define SW_DMA_RST_AXI_N 11 +#define SW_UART0_RST_APB_N 12 +#define SW_UART1_RST_APB_N 13 +#define SW_UART2_RST_APB_N 14 +#define SW_UART3_RST_APB_N 15 +#define SW_SPI0_RST_APB_N 16 +#define SW_SPI1_RST_APB_N 17 +#define SW_I2C0_RST_APB_N 18 +#define SW_I2C1_RST_APB_N 19 +#define SW_I2C2_RST_APB_N 20 +#define SW_I2C3_RST_APB_N 21 +#define SW_I2C4_RST_APB_N 22 +#define SW_I2C5_RST_APB_N 23 +#define SW_I2C6_RST_APB_N 24 +#define SW_I2C7_RST_APB_N 25 +#define SW_GPIO_RST_APB_N 26 + +/* fch rst for xspi */ +#define SW_XSPI_REG_RST_N 27 +#define SW_XSPI_SYS_RST_N 28 + +#define SKY1_FCH_RESET_NUM 29 + +#endif + diff --git a/include/dt-bindings/reset/cix,sky1-rst.h b/include/dt-bindings= /reset/cix,sky1-rst.h new file mode 100644 index 000000000000..232d59f0fb25 --- /dev/null +++ b/include/dt-bindings/reset/cix,sky1-rst.h @@ -0,0 +1,167 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ +/* Author: Jerry Zhu */ +#ifndef DT_BINDING_RESET_SKY1_H +#define DT_BINDING_RESET_SKY1_H + +/* reset for csu_pm */ + +#define SKY1_CSU_PM_RESET_N 0 +#define SKY1_SENSORHUB_RESET_N 1 +#define SKY1_SENSORHUB_NOC_RESET_N 2 + +/* reset group0 for s0 domain modules */ +#define SKY1_DDRC_RESET_N 3 +#define SKY1_GIC_RESET_N 4 +#define SKY1_CI700_RESET_N 5 +#define SKY1_SYS_NI700_RESET_N 6 +#define SKY1_MM_NI700_RESET_N 7 +#define SKY1_PCIE_NI700_RESET_N 8 +#define SKY1_GPU_RESET_N 9 +#define SKY1_NPUTOP_RESET_N 10 +#define SKY1_NPUCORE0_RESET_N 11 +#define SKY1_NPUCORE1_RESET_N 12 +#define SKY1_NPUCORE2_RESET_N 13 +#define SKY1_VPU_RESET_N 14 +#define SKY1_ISP_SRESET_N 15 +#define SKY1_ISP_ARESET_N 16 +#define SKY1_ISP_HRESET_N 17 +#define SKY1_ISP_GDCRESET_N 18 +#define SKY1_DPU_RESET0_N 19 +#define SKY1_DPU_RESET1_N 20 +#define SKY1_DPU_RESET2_N 21 +#define SKY1_DPU_RESET3_N 22 +#define SKY1_DPU_RESET4_N 23 +#define SKY1_DP_RESET0_N 24 +#define SKY1_DP_RESET1_N 25 +#define SKY1_DP_RESET2_N 26 +#define SKY1_DP_RESET3_N 27 +#define SKY1_DP_RESET4_N 28 +#define SKY1_DP_PHY_RST_N 29 + +/* reset group1 for s0 domain modules */ +#define SKY1_AUDIO_HIFI5_RESET_N 30 +#define SKY1_AUDIO_HIFI5_NOC_RESET_N 31 +#define SKY1_CSIDPHY_PRST0_N 32 +#define SKY1_CSIDPHY_CMNRST0_N 33 +#define SKY1_CSI0_RST_N 34 +#define SKY1_CSIDPHY_PRST1_N 35 +#define SKY1_CSIDPHY_CMNRST1_N 36 +#define SKY1_CSI1_RST_N 37 +#define SKY1_CSI2_RST_N 38 +#define SKY1_CSI3_RST_N 39 +#define SKY1_CSIBRDGE0_RST_N 40 +#define SKY1_CSIBRDGE1_RST_N 41 +#define SKY1_CSIBRDGE2_RST_N 42 +#define SKY1_CSIBRDGE3_RST_N 43 +#define SKY1_GMAC0_RST_N 44 +#define SKY1_GMAC1_RST_N 45 +#define SKY1_PCIE0_RESET_N 46 +#define SKY1_PCIE1_RESET_N 47 +#define SKY1_PCIE2_RESET_N 48 +#define SKY1_PCIE3_RESET_N 49 +#define SKY1_PCIE4_RESET_N 50 + +/* reset group1 for usb phys */ +#define SKY1_USB_DP_PHY0_PRST_N 51 +#define SKY1_USB_DP_PHY1_PRST_N 52 +#define SKY1_USB_DP_PHY2_PRST_N 53 +#define SKY1_USB_DP_PHY3_PRST_N 54 +#define SKY1_USB_DP_PHY0_RST_N 55 +#define SKY1_USB_DP_PHY1_RST_N 56 +#define SKY1_USB_DP_PHY2_RST_N 57 +#define SKY1_USB_DP_PHY3_RST_N 58 +#define SKY1_USBPHY_SS_PST_N 59 +#define SKY1_USBPHY_SS_RST_N 60 +#define SKY1_USBPHY_HS0_PRST_N 61 +#define SKY1_USBPHY_HS1_PRST_N 62 +#define SKY1_USBPHY_HS2_PRST_N 63 +#define SKY1_USBPHY_HS3_PRST_N 64 +#define SKY1_USBPHY_HS4_PRST_N 65 +#define SKY1_USBPHY_HS5_PRST_N 66 +#define SKY1_USBPHY_HS6_PRST_N 67 +#define SKY1_USBPHY_HS7_PRST_N 68 +#define SKY1_USBPHY_HS8_PRST_N 69 +#define SKY1_USBPHY_HS9_PRST_N 70 + +/* reset group1 for usb controllers */ +#define SKY1_USBC_SS0_PRST_N 71 +#define SKY1_USBC_SS1_PRST_N 72 +#define SKY1_USBC_SS2_PRST_N 73 +#define SKY1_USBC_SS3_PRST_N 74 +#define SKY1_USBC_SS4_PRST_N 75 +#define SKY1_USBC_SS5_PRST_N 76 +#define SKY1_USBC_SS0_RST_N 77 +#define SKY1_USBC_SS1_RST_N 78 +#define SKY1_USBC_SS2_RST_N 79 +#define SKY1_USBC_SS3_RST_N 80 +#define SKY1_USBC_SS4_RST_N 81 +#define SKY1_USBC_SS5_RST_N 82 +#define SKY1_USBC_HS0_PRST_N 83 +#define SKY1_USBC_HS1_PRST_N 84 +#define SKY1_USBC_HS2_PRST_N 85 +#define SKY1_USBC_HS3_PRST_N 86 +#define SKY1_USBC_HS0_RST_N 87 +#define SKY1_USBC_HS1_RST_N 88 +#define SKY1_USBC_HS2_RST_N 89 +#define SKY1_USBC_HS3_RST_N 90 + +/* reset group0 for rcsu */ +#define SKY1_AUDIO_RCSU_RESET_N 91 +#define SKY1_CI700_RCSU_RESET_N 92 +#define SKY1_CSI_RCSU0_RESET_N 93 +#define SKY1_CSI_RCSU1_RESET_N 94 +#define SKY1_CSU_PM_RCSU_RESET_N 95 +#define SKY1_DDR_BROADCAST_RCSU_RESET_N 96 +#define SKY1_DDR_CTRL_RCSU_0_RESET_N 97 +#define SKY1_DDR_CTRL_RCSU_1_RESET_N 98 +#define SKY1_DDR_CTRL_RCSU_2_RESET_N 99 +#define SKY1_DDR_CTRL_RCSU_3_RESET_N 100 +#define SKY1_DDR_TZC400_RCSU_0_RESET_N 101 +#define SKY1_DDR_TZC400_RCSU_1_RESET_N 102 +#define SKY1_DDR_TZC400_RCSU_2_RESET_N 103 +#define SKY1_DDR_TZC400_RCSU_3_RESET_N 104 +#define SKY1_DP0_RCSU_RESET_N 105 +#define SKY1_DP1_RCSU_RESET_N 106 +#define SKY1_DP2_RCSU_RESET_N 107 +#define SKY1_DP3_RCSU_RESET_N 108 +#define SKY1_DP4_RCSU_RESET_N 109 +#define SKY1_DPU0_RCSU_RESET_N 110 +#define SKY1_DPU1_RCSU_RESET_N 111 +#define SKY1_DPU2_RCSU_RESET_N 112 +#define SKY1_DPU3_RCSU_RESET_N 113 +#define SKY1_DPU4_RCSU_RESET_N 114 +#define SKY1_DSU_RCSU_RESET_N 115 +#define SKY1_FCH_RCSU_RESET_N 116 +#define SKY1_GICD_RCSU_RESET_N 117 +#define SKY1_GMAC_RCSU_RESET_N 118 +#define SKY1_GPU_RCSU_RESET_N 119 +#define SKY1_ISP_RCSU0_RESET_N 120 +#define SKY1_ISP_RCSU1_RESET_N 121 +#define SKY1_NI700_MMHUB_RCSU_RESET_N 122 + +/* reset group1 for rcsu */ +#define SKY1_NPU_RCSU_RESET_N 123 +#define SKY1_NI700_PCIE_RCSU_RESET_N 124 +#define SKY1_PCIE_X421_RCSU_RESET_N 125 +#define SKY1_PCIE_X8_RCSU_RESET_N 126 +#define SKY1_SF_RCSU_RESET_N 127 +#define SKY1_RCSU_SMMU_MMHUB_RESET_N 128 +#define SKY1_RCSU_SMMU_PCIEHUB_RESET_N 129 +#define SKY1_RCSU_SYSHUB_RESET_N 130 +#define SKY1_NI700_SMN_RCSU_RESET_N 131 +#define SKY1_NI700_SYSHUB_RCSU_RESET_N 132 +#define SKY1_RCSU_USB2_HOST0_RESET_N 133 +#define SKY1_RCSU_USB2_HOST1_RESET_N 134 +#define SKY1_RCSU_USB2_HOST2_RESET_N 135 +#define SKY1_RCSU_USB2_HOST3_RESET_N 136 +#define SKY1_RCSU_USB3_TYPEA_DRD_RESET_N 137 +#define SKY1_RCSU_USB3_TYPEC_DRD_RESET_N 138 +#define SKY1_RCSU_USB3_TYPEC_HOST0_RESET_N 139 +#define SKY1_RCSU_USB3_TYPEC_HOST1_RESET_N 140 +#define SKY1_RCSU_USB3_TYPEC_HOST2_RESET_N 141 +#define SKY1_VPU_RCSU_RESET_N 142 + +#define SKY1_RESET_NUM 143 + +#endif + --=20 2.49.0 From nobody Fri Dec 19 19:16:36 2025 Received: from TYPPR03CU001.outbound.protection.outlook.com (mail-japaneastazon11022126.outbound.protection.outlook.com [52.101.126.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6580C16132F; Fri, 7 Nov 2025 03:38:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.126.126 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762486710; cv=fail; b=UpVYtHBQnxrIMU8m7wNqaqLtUBr2nqYxR5s+VLE/oDE+jxxlbItZQLvDeKrqRUe9/09gSPnD3UW7RSZGSNgBNDDAnJZ8S58rwJol1XXjn+PgxdrXU+AkDvweIoJF6gixAqp/mfNcM82dzBrZ9paYYiZVTnNU5yxuLWtX1sAeUXQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762486710; c=relaxed/simple; bh=MYpebQ2dKenAtQk+MifG5nYnRuOcPrJTBIkIM0WjSJ0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=QiG8SACoLaN5l+dZtL4WGqjv25O5Lk5hrFqgAAHHaSCYMZUHBxLhKa4J+Nm/HjNCJomUuraaPKFjgQ+8e9Fc5xI+UlXapVvCdcMBws9z1n26TqZPp2lvuOr4R0iYHwdGy3sKYYTpW6k5+QrhSLlkpZ4gyTh65y//70UKYr3JAKo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=cixtech.com; spf=pass smtp.mailfrom=cixtech.com; arc=fail smtp.client-ip=52.101.126.126 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=cixtech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=cixtech.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HP48DjckwhOaUUBMaJwy/9vNT3d0gs+it6U1IIY0oEVdyup5XD3HnAUfBRph7f8+eD6xmCdO8VT38sQWUQmgh8PWMzMApk2zg4htIGTX71SndqmWW7XKn5l5E0J85IM81lrT9maovQT8+O9Vce/a40poCnScPRn+kjsP2571XX76CyfvkBD2aXRF79nV0Ix7mMFTK1iq1i83LH+TyPKquDVk6DXvbBCyQLoT6cOL38PyizapPEsO+9ZVo2nNht2p+V8hBrCgQRgel09v+CCdS8wdrB8HrmU0qtxUPgVhWA1nwJpHfBDlx9k/jD0nzkx5eJCvMWTQ1xlNCRWs80Y47g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+04j2gyEQbU6hWqZssQuI1xjbt8mPTvP7jkhKEC8Y4E=; b=kgiWN9yPEeZHeK4vAxDeKbV1+UAxFsAkZSwUk8aB8LVsnjpH1XFdFUKjX7HsvaW6LDFrNZ0ixf1DNGFSCKz4LzwSqJl5+edlqV8aLJ5WQrFbcG8It9+KJpGBKsbvQHEeZFIwIJ0cN0nSPwCUekwE0wGIyDTZTCjbmBtVcvuP9jGs5tXRtmfXz2V//+ifqZwbAUz9fbZW+QAeUYM94A090UiMNMvW/bhBOFRQbHor2iCiXR2KZGgcVQWTUiXdI+iOO39ys4F4G53Q9tNB18ONZL7nJHJUsckKYh9v+LQAZ5XRK5tDJCa87KGdBju3CRgwL4gQ4ouF6uvTo3qmJuq5EQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 222.71.101.198) smtp.rcpttodomain=cixtech.com smtp.mailfrom=cixtech.com; dmarc=bestguesspass action=none header.from=cixtech.com; dkim=none (message not signed); arc=none (0) Received: from SG2PR06CA0211.apcprd06.prod.outlook.com (2603:1096:4:68::19) by JH0PR06MB6798.apcprd06.prod.outlook.com (2603:1096:990:3c::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Fri, 7 Nov 2025 03:38:23 +0000 Received: from SG2PEPF000B66CF.apcprd03.prod.outlook.com (2603:1096:4:68:cafe::72) by SG2PR06CA0211.outlook.office365.com (2603:1096:4:68::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9298.12 via Frontend Transport; Fri, 7 Nov 2025 03:38:24 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 222.71.101.198) smtp.mailfrom=cixtech.com; dkim=none (message not signed) header.d=none;dmarc=bestguesspass action=none header.from=cixtech.com; Received-SPF: Pass (protection.outlook.com: domain of cixtech.com designates 222.71.101.198 as permitted sender) receiver=protection.outlook.com; client-ip=222.71.101.198; helo=smtprelay.cixcomputing.com; pr=C Received: from smtprelay.cixcomputing.com (222.71.101.198) by SG2PEPF000B66CF.mail.protection.outlook.com (10.167.240.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.6 via Frontend Transport; Fri, 7 Nov 2025 03:38:20 +0000 Received: from localhost.localdomain (unknown [172.16.64.196]) by smtprelay.cixcomputing.com (Postfix) with ESMTPSA id DBAF141604E6; Fri, 7 Nov 2025 11:38:19 +0800 (CST) From: Gary Yang To: p.zabel@pengutronix.de, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, cix-kernel-upstream@cixtech.com, Gary Yang Subject: [PATCH 2/3] Reset: cix: add support for cix sky1 resets Date: Fri, 7 Nov 2025 11:38:18 +0800 Message-ID: <20251107033819.587712-3-gary.yang@cixtech.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20251107033819.587712-1-gary.yang@cixtech.com> References: <20251107033819.587712-1-gary.yang@cixtech.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SG2PEPF000B66CF:EE_|JH0PR06MB6798:EE_ X-MS-Office365-Filtering-Correlation-Id: 8d2e5519-5eeb-40de-3da8-08de1daf18fc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?NLgCIfzmlw2dIE7ehQLZd8I61uP3jkk5lNpRup+SisWKxLRoTmAKR5LRNOYu?= =?us-ascii?Q?5eBKvIqpHye8V9hmmhSG203D9v5Q6Ng4E5AG808jM8rYmMww7Inm4L/+Ia/m?= =?us-ascii?Q?lHhHaUDQ7Cpt9z7gtHkszlJ792RutxHIPMCdRJyuSn9/zKAXWBlOvu3pWMYU?= =?us-ascii?Q?1aVCp9+IQLzTMt1Rec1rKZ7Y1QE+TsrxdCdJjwJosiQaS3K5ZwBfdIaNAAHR?= =?us-ascii?Q?P79D2Zp38sS/+YjxVDMosDDtMJnfA1ym6WdZkXXhehVPokInOScDpX5/CpZy?= =?us-ascii?Q?MqGsRR+LkH/EwB135i/wZB9/QTeRsvEe/iu3/D6//lKIj7a+zWe+iWKYrYKu?= =?us-ascii?Q?USbSURK/uERIwBvRcYla95+2QAyN68UgWQc6GEM12YPFqeZIBWMRZMfMukd5?= =?us-ascii?Q?1wfLr+8QCeM/x+9VHdEMbi77/J58UfjDLO+6ML8oF8DsWnIYtaSO536nVsnv?= =?us-ascii?Q?UxDDeDO9Wdf41Nxc0nVLcn37xROtqVXNhhlqc8dIwBoIF/ShQOdv3JU6a4CU?= =?us-ascii?Q?yDe/2qPMLMNpuCoZ3Ow/GoHyKGbtFnSHDB9Fdsfnoy2v9og5UVuVkYTE7lnF?= =?us-ascii?Q?7OUOiT2ypA3XQZO+UOuE0VVt/5P26phQ/Qht0CotHT4ysIwSplD0J0JRi0h0?= =?us-ascii?Q?kItE5QVJKLELU+2E7ouqH/tONoXxhu5katsTbWXgnfjFOfYCXMNTZfGuk0C4?= =?us-ascii?Q?LiJxWEsHnuB3zst/g7qiFi+uWYit5w7mj+btmB9vBQs92YL3+nnp2gCzvLZY?= =?us-ascii?Q?rpvBYJzUas6AjXD8mn1wxO+/3SGCiilQUU4diu8PRIGDa4HqWSXtuDWhRi7i?= =?us-ascii?Q?dilHiDzb7cAtbb25QuNInbyXO2RrYoM4NIl38HVJmNX8ECB9l92sNiTy7rxk?= =?us-ascii?Q?jNb/XfSmX6QDfcv+6qw4JnTgETnY5Ep9b4LYila5QaBFrQx8B9Z5w/YRwJqt?= =?us-ascii?Q?MfuNfbdWjO0SoNLeg/0dBDUb1oZgLHZBxiLEoyQwrI1i0hJB9qyZw+Y6PxT6?= =?us-ascii?Q?rimJAmuhV9o1lmw2kWMWaHIUB18sNi+v2IrHNh3mFK2d6FnYN+aG58gMffpS?= =?us-ascii?Q?cYAzVxHoqfLC9/5Wzvkfv0FCxx73RIN36UfU5crVr2tgmdksW9KjzdrOfztr?= =?us-ascii?Q?nHW5K0YfC1mnbHHfym1Lwf8tgIkqhOTczK5QYQ4wo3d+xWZS8AuLuekqC5LZ?= =?us-ascii?Q?TfzXkzAnVzpV9nSkjgR3yD5qmKSRq8HzhRaLF+puWdJ5hh7wmS2zegXMMjiz?= =?us-ascii?Q?5frz5SgiUeOcIs0pKWsNQqcrUxSqfbKbYunyIw5w40WLjmzQdHLuh5M0BlSU?= =?us-ascii?Q?OJuw31U11B/2oY6Ki5Dg3p9/14q8VPokB3zd9egQ/GQPN4cic951lUWlzwAn?= =?us-ascii?Q?JDOZHhFwUiPV8VBM2qyeqvdE8R3qjga48ZrBAwAr/l+I/6Sxyp0y7OSWNRRA?= =?us-ascii?Q?ltJLIMaRBT6vXvIA3n4dQlQfn2lN3rDhonHN9oQvpyvgwLCCsDHIgYyEpNkq?= =?us-ascii?Q?7ydZmWVO2BvWXjYfyHrQRKGcDzSnK+GXLaZbQifR0MjEHxlKIfIiJPsbkim/?= =?us-ascii?Q?L10tTm0qQ//M+9v+T8I=3D?= X-Forefront-Antispam-Report: CIP:222.71.101.198;CTRY:CN;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:smtprelay.cixcomputing.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024);DIR:OUT;SFP:1102; X-OriginatorOrg: cixtech.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2025 03:38:20.6926 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8d2e5519-5eeb-40de-3da8-08de1daf18fc X-MS-Exchange-CrossTenant-Id: 0409f77a-e53d-4d23-943e-ccade7cb4811 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=0409f77a-e53d-4d23-943e-ccade7cb4811;Ip=[222.71.101.198];Helo=[smtprelay.cixcomputing.com] X-MS-Exchange-CrossTenant-AuthSource: SG2PEPF000B66CF.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: JH0PR06MB6798 Content-Type: text/plain; charset="utf-8" There are two reset controllers on Cix Sky1 Soc. One is located in S0 domain, and the other is located in S5 domain. Signed-off-by: Gary Yang --- drivers/reset/Kconfig | 7 + drivers/reset/Makefile | 1 + drivers/reset/reset-sky1.c | 403 +++++++++++++++++++++++++++++++++++++ 3 files changed, 411 insertions(+) create mode 100644 drivers/reset/reset-sky1.c diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig index 78b7078478d4..45768cd3b135 100644 --- a/drivers/reset/Kconfig +++ b/drivers/reset/Kconfig @@ -278,6 +278,13 @@ config RESET_SIMPLE - SiFive FU740 SoCs - Sophgo SoCs =20 +config RESET_SKY1 + bool "Cix Sky1 reset controller" + depends on HAS_IOMEM + depends on ARCH_CIX || COMPILE_TEST + help + This enables the reset controller for Cix Sky1. + config RESET_SOCFPGA bool "SoCFPGA Reset Driver" if COMPILE_TEST && (!ARM || !ARCH_INTEL_SOCFP= GA) default ARM && ARCH_INTEL_SOCFPGA diff --git a/drivers/reset/Makefile b/drivers/reset/Makefile index f7934f9fb90b..a878ac4a6e4b 100644 --- a/drivers/reset/Makefile +++ b/drivers/reset/Makefile @@ -36,6 +36,7 @@ obj-$(CONFIG_RESET_RZG2L_USBPHY_CTRL) +=3D reset-rzg2l-us= bphy-ctrl.o obj-$(CONFIG_RESET_RZV2H_USB2PHY) +=3D reset-rzv2h-usb2phy.o obj-$(CONFIG_RESET_SCMI) +=3D reset-scmi.o obj-$(CONFIG_RESET_SIMPLE) +=3D reset-simple.o +obj-$(CONFIG_RESET_SKY1) +=3D reset-sky1.o obj-$(CONFIG_RESET_SOCFPGA) +=3D reset-socfpga.o obj-$(CONFIG_RESET_SPACEMIT) +=3D reset-spacemit.o obj-$(CONFIG_RESET_SUNPLUS) +=3D reset-sunplus.o diff --git a/drivers/reset/reset-sky1.c b/drivers/reset/reset-sky1.c new file mode 100644 index 000000000000..14aa7292c0d5 --- /dev/null +++ b/drivers/reset/reset-sky1.c @@ -0,0 +1,403 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * + * CIX System Reset Controller (SRC) driver + * + * Author: Jerry Zhu + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#define SKY1_RESET_SLEEP_MIN_US 10000 +#define SKY1_RESET_SLEEP_MAX_US 20000 + +struct sky1_src_signal { + unsigned int offset, mask; +}; + +struct sky1_src_variant { + const struct sky1_src_signal *signals; + unsigned int signals_num; +}; + +struct sky1_src { + struct reset_controller_dev rcdev; + struct regmap *regmap; + const struct sky1_src_signal *signals; +}; + +enum { + CSU_PM_RESET =3D 0x304, + SENSORHUB_RESET =3D 0x308, + SENSORHUB_NOC_RESET =3D 0x30c, + + RESET_GROUP0_S0_DOMAIN_0 =3D 0x400, + RESET_GROUP0_S0_DOMAIN_1 =3D 0x404, + RESET_GROUP1_USB_PHYS =3D 0x408, + RESET_GROUP1_USB_CONTROLLERS =3D 0x40c, + + RESET_GROUP0_RCSU =3D 0x800, + RESET_GROUP1_RCSU =3D 0x804, + +}; + +static const struct sky1_src_signal sky1_src_signals[SKY1_RESET_NUM] =3D { + /* reset group1 for s0 domain modules */ + [SKY1_CSU_PM_RESET_N] =3D { CSU_PM_RESET, BIT(0) }, + [SKY1_SENSORHUB_RESET_N] =3D { SENSORHUB_RESET, BIT(0) }, + [SKY1_SENSORHUB_NOC_RESET_N] =3D { SENSORHUB_NOC_RESET, BIT(0) }, + [SKY1_DDRC_RESET_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(0) }, + [SKY1_GIC_RESET_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(1) }, + [SKY1_CI700_RESET_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(2) }, + [SKY1_SYS_NI700_RESET_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(3) }, + [SKY1_MM_NI700_RESET_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(4) }, + [SKY1_PCIE_NI700_RESET_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(5) }, + [SKY1_GPU_RESET_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(6) }, + [SKY1_NPUTOP_RESET_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(7) }, + [SKY1_NPUCORE0_RESET_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(8) }, + [SKY1_NPUCORE1_RESET_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(9) }, + [SKY1_NPUCORE2_RESET_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(10) }, + [SKY1_VPU_RESET_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(11) }, + [SKY1_ISP_SRESET_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(12) }, + [SKY1_ISP_ARESET_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(13) }, + [SKY1_ISP_HRESET_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(14) }, + [SKY1_ISP_GDCRESET_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(15) }, + [SKY1_DPU_RESET0_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(16) }, + [SKY1_DPU_RESET1_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(17) }, + [SKY1_DPU_RESET2_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(18) }, + [SKY1_DPU_RESET3_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(19) }, + [SKY1_DPU_RESET4_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(20) }, + [SKY1_DP_RESET0_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(21) }, + [SKY1_DP_RESET1_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(22) }, + [SKY1_DP_RESET2_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(23) }, + [SKY1_DP_RESET3_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(24) }, + [SKY1_DP_RESET4_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(25) }, + [SKY1_DP_PHY_RST_N] =3D { RESET_GROUP0_S0_DOMAIN_0, BIT(26) }, + + /* reset group1 for s0 domain modules */ + [SKY1_AUDIO_HIFI5_RESET_N] =3D { RESET_GROUP0_S0_DOMAIN_1, BIT(0) }, + [SKY1_AUDIO_HIFI5_NOC_RESET_N] =3D { RESET_GROUP0_S0_DOMAIN_1, BIT(1) }, + [SKY1_CSIDPHY_PRST0_N] =3D { RESET_GROUP0_S0_DOMAIN_1, BIT(2) }, + [SKY1_CSIDPHY_CMNRST0_N] =3D { RESET_GROUP0_S0_DOMAIN_1, BIT(3) }, + [SKY1_CSI0_RST_N] =3D { RESET_GROUP0_S0_DOMAIN_1, BIT(4) }, + [SKY1_CSIDPHY_PRST1_N] =3D { RESET_GROUP0_S0_DOMAIN_1, BIT(5) }, + [SKY1_CSIDPHY_CMNRST1_N] =3D { RESET_GROUP0_S0_DOMAIN_1, BIT(6) }, + [SKY1_CSI1_RST_N] =3D { RESET_GROUP0_S0_DOMAIN_1, BIT(7) }, + [SKY1_CSI2_RST_N] =3D { RESET_GROUP0_S0_DOMAIN_1, BIT(8) }, + [SKY1_CSI3_RST_N] =3D { RESET_GROUP0_S0_DOMAIN_1, BIT(9) }, + [SKY1_CSIBRDGE0_RST_N] =3D { RESET_GROUP0_S0_DOMAIN_1, BIT(10) }, + [SKY1_CSIBRDGE1_RST_N] =3D { RESET_GROUP0_S0_DOMAIN_1, BIT(11) }, + [SKY1_CSIBRDGE2_RST_N] =3D { RESET_GROUP0_S0_DOMAIN_1, BIT(12) }, + [SKY1_CSIBRDGE3_RST_N] =3D { RESET_GROUP0_S0_DOMAIN_1, BIT(13) }, + [SKY1_GMAC0_RST_N] =3D { RESET_GROUP0_S0_DOMAIN_1, BIT(14) }, + [SKY1_GMAC1_RST_N] =3D { RESET_GROUP0_S0_DOMAIN_1, BIT(15) }, + [SKY1_PCIE0_RESET_N] =3D { RESET_GROUP0_S0_DOMAIN_1, BIT(16) }, + [SKY1_PCIE1_RESET_N] =3D { RESET_GROUP0_S0_DOMAIN_1, BIT(17) }, + [SKY1_PCIE2_RESET_N] =3D { RESET_GROUP0_S0_DOMAIN_1, BIT(18) }, + [SKY1_PCIE3_RESET_N] =3D { RESET_GROUP0_S0_DOMAIN_1, BIT(19) }, + [SKY1_PCIE4_RESET_N] =3D { RESET_GROUP0_S0_DOMAIN_1, BIT(20) }, + + /* reset group1 for usb phys */ + [SKY1_USB_DP_PHY0_PRST_N] =3D { RESET_GROUP1_USB_PHYS, BIT(0) }, + [SKY1_USB_DP_PHY1_PRST_N] =3D { RESET_GROUP1_USB_PHYS, BIT(1) }, + [SKY1_USB_DP_PHY2_PRST_N] =3D { RESET_GROUP1_USB_PHYS, BIT(2) }, + [SKY1_USB_DP_PHY3_PRST_N] =3D { RESET_GROUP1_USB_PHYS, BIT(3) }, + [SKY1_USB_DP_PHY0_RST_N] =3D { RESET_GROUP1_USB_PHYS, BIT(4) }, + [SKY1_USB_DP_PHY1_RST_N] =3D { RESET_GROUP1_USB_PHYS, BIT(5) }, + [SKY1_USB_DP_PHY2_RST_N] =3D { RESET_GROUP1_USB_PHYS, BIT(6) }, + [SKY1_USB_DP_PHY3_RST_N] =3D { RESET_GROUP1_USB_PHYS, BIT(7) }, + [SKY1_USBPHY_SS_PST_N] =3D { RESET_GROUP1_USB_PHYS, BIT(8) }, + [SKY1_USBPHY_SS_RST_N] =3D { RESET_GROUP1_USB_PHYS, BIT(9) }, + [SKY1_USBPHY_HS0_PRST_N] =3D { RESET_GROUP1_USB_PHYS, BIT(10) }, + [SKY1_USBPHY_HS1_PRST_N] =3D { RESET_GROUP1_USB_PHYS, BIT(11) }, + [SKY1_USBPHY_HS2_PRST_N] =3D { RESET_GROUP1_USB_PHYS, BIT(12) }, + [SKY1_USBPHY_HS3_PRST_N] =3D { RESET_GROUP1_USB_PHYS, BIT(13) }, + [SKY1_USBPHY_HS4_PRST_N] =3D { RESET_GROUP1_USB_PHYS, BIT(14) }, + [SKY1_USBPHY_HS5_PRST_N] =3D { RESET_GROUP1_USB_PHYS, BIT(15) }, + [SKY1_USBPHY_HS6_PRST_N] =3D { RESET_GROUP1_USB_PHYS, BIT(16) }, + [SKY1_USBPHY_HS7_PRST_N] =3D { RESET_GROUP1_USB_PHYS, BIT(17) }, + [SKY1_USBPHY_HS8_PRST_N] =3D { RESET_GROUP1_USB_PHYS, BIT(18) }, + [SKY1_USBPHY_HS9_PRST_N] =3D { RESET_GROUP1_USB_PHYS, BIT(19) }, + + /* reset group1 for usb controllers */ + [SKY1_USBC_SS0_PRST_N] =3D { RESET_GROUP1_USB_CONTROLLERS, BIT(0) }, + [SKY1_USBC_SS1_PRST_N] =3D { RESET_GROUP1_USB_CONTROLLERS, BIT(1) }, + [SKY1_USBC_SS2_PRST_N] =3D { RESET_GROUP1_USB_CONTROLLERS, BIT(2) }, + [SKY1_USBC_SS3_PRST_N] =3D { RESET_GROUP1_USB_CONTROLLERS, BIT(3) }, + [SKY1_USBC_SS4_PRST_N] =3D { RESET_GROUP1_USB_CONTROLLERS, BIT(4) }, + [SKY1_USBC_SS5_PRST_N] =3D { RESET_GROUP1_USB_CONTROLLERS, BIT(5) }, + [SKY1_USBC_SS0_RST_N] =3D { RESET_GROUP1_USB_CONTROLLERS, BIT(6) }, + [SKY1_USBC_SS1_RST_N] =3D { RESET_GROUP1_USB_CONTROLLERS, BIT(7) }, + [SKY1_USBC_SS2_RST_N] =3D { RESET_GROUP1_USB_CONTROLLERS, BIT(8) }, + [SKY1_USBC_SS3_RST_N] =3D { RESET_GROUP1_USB_CONTROLLERS, BIT(9) }, + [SKY1_USBC_SS4_RST_N] =3D { RESET_GROUP1_USB_CONTROLLERS, BIT(10) }, + [SKY1_USBC_SS5_RST_N] =3D { RESET_GROUP1_USB_CONTROLLERS, BIT(11) }, + [SKY1_USBC_HS0_PRST_N] =3D { RESET_GROUP1_USB_CONTROLLERS, BIT(12) }, + [SKY1_USBC_HS1_PRST_N] =3D { RESET_GROUP1_USB_CONTROLLERS, BIT(13) }, + [SKY1_USBC_HS2_PRST_N] =3D { RESET_GROUP1_USB_CONTROLLERS, BIT(14) }, + [SKY1_USBC_HS3_PRST_N] =3D { RESET_GROUP1_USB_CONTROLLERS, BIT(15) }, + [SKY1_USBC_HS0_RST_N] =3D { RESET_GROUP1_USB_CONTROLLERS, BIT(16) }, + [SKY1_USBC_HS1_RST_N] =3D { RESET_GROUP1_USB_CONTROLLERS, BIT(17) }, + [SKY1_USBC_HS2_RST_N] =3D { RESET_GROUP1_USB_CONTROLLERS, BIT(18) }, + [SKY1_USBC_HS3_RST_N] =3D { RESET_GROUP1_USB_CONTROLLERS, BIT(19) }, + + /* reset group0 for rcsu */ + [SKY1_AUDIO_RCSU_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(0) }, + [SKY1_CI700_RCSU_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(1) }, + [SKY1_CSI_RCSU0_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(2) }, + [SKY1_CSI_RCSU1_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(3) }, + [SKY1_CSU_PM_RCSU_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(4) }, + [SKY1_DDR_BROADCAST_RCSU_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(5) }, + [SKY1_DDR_CTRL_RCSU_0_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(6) }, + [SKY1_DDR_CTRL_RCSU_1_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(7) }, + [SKY1_DDR_CTRL_RCSU_2_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(8) }, + [SKY1_DDR_CTRL_RCSU_3_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(9) }, + [SKY1_DDR_TZC400_RCSU_0_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(10) }, + [SKY1_DDR_TZC400_RCSU_1_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(11) }, + [SKY1_DDR_TZC400_RCSU_2_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(12) }, + [SKY1_DDR_TZC400_RCSU_3_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(13) }, + [SKY1_DP0_RCSU_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(14) }, + [SKY1_DP1_RCSU_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(15) }, + [SKY1_DP2_RCSU_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(16) }, + [SKY1_DP3_RCSU_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(17) }, + [SKY1_DP4_RCSU_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(18) }, + [SKY1_DPU0_RCSU_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(19) }, + [SKY1_DPU1_RCSU_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(20) }, + [SKY1_DPU2_RCSU_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(21) }, + [SKY1_DPU3_RCSU_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(22) }, + [SKY1_DPU4_RCSU_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(23) }, + [SKY1_DSU_RCSU_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(24) }, + [SKY1_FCH_RCSU_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(25) }, + [SKY1_GICD_RCSU_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(26) }, + [SKY1_GMAC_RCSU_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(27) }, + [SKY1_GPU_RCSU_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(28) }, + [SKY1_ISP_RCSU0_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(29) }, + [SKY1_ISP_RCSU1_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(30) }, + [SKY1_NI700_MMHUB_RCSU_RESET_N] =3D { RESET_GROUP0_RCSU, BIT(31) }, + + /* reset group1 for rcsu */ + [SKY1_NPU_RCSU_RESET_N] =3D { RESET_GROUP1_RCSU, BIT(0) }, + [SKY1_NI700_PCIE_RCSU_RESET_N] =3D { RESET_GROUP1_RCSU, BIT(1) }, + [SKY1_PCIE_X421_RCSU_RESET_N] =3D { RESET_GROUP1_RCSU, BIT(2) }, + [SKY1_PCIE_X8_RCSU_RESET_N] =3D { RESET_GROUP1_RCSU, BIT(3) }, + [SKY1_SF_RCSU_RESET_N] =3D { RESET_GROUP1_RCSU, BIT(4) }, + [SKY1_RCSU_SMMU_MMHUB_RESET_N] =3D { RESET_GROUP1_RCSU, BIT(5) }, + [SKY1_RCSU_SMMU_PCIEHUB_RESET_N] =3D { RESET_GROUP1_RCSU, BIT(6) }, + [SKY1_RCSU_SYSHUB_RESET_N] =3D { RESET_GROUP1_RCSU, BIT(7) }, + [SKY1_NI700_SMN_RCSU_RESET_N] =3D { RESET_GROUP1_RCSU, BIT(8) }, + [SKY1_NI700_SYSHUB_RCSU_RESET_N] =3D { RESET_GROUP1_RCSU, BIT(9) }, + [SKY1_RCSU_USB2_HOST0_RESET_N] =3D { RESET_GROUP1_RCSU, BIT(10) }, + [SKY1_RCSU_USB2_HOST1_RESET_N] =3D { RESET_GROUP1_RCSU, BIT(11) }, + [SKY1_RCSU_USB2_HOST2_RESET_N] =3D { RESET_GROUP1_RCSU, BIT(12) }, + [SKY1_RCSU_USB2_HOST3_RESET_N] =3D { RESET_GROUP1_RCSU, BIT(13) }, + [SKY1_RCSU_USB3_TYPEA_DRD_RESET_N] =3D { RESET_GROUP1_RCSU, BIT(14) }, + [SKY1_RCSU_USB3_TYPEC_DRD_RESET_N] =3D { RESET_GROUP1_RCSU, BIT(15) }, + [SKY1_RCSU_USB3_TYPEC_HOST0_RESET_N] =3D { RESET_GROUP1_RCSU, BIT(16) }, + [SKY1_RCSU_USB3_TYPEC_HOST1_RESET_N] =3D { RESET_GROUP1_RCSU, BIT(17) }, + [SKY1_RCSU_USB3_TYPEC_HOST2_RESET_N] =3D { RESET_GROUP1_RCSU, BIT(18) }, + [SKY1_VPU_RCSU_RESET_N] =3D { RESET_GROUP1_RCSU, BIT(19) }, + +}; + +enum { + FCH_SW_RST_FUNC =3D 0x008, + FCH_SW_RST_BUS =3D 0x00c, + FCH_SW_XSPI =3D 0x010, +}; + +static const struct sky1_src_signal sky1_src_fch_signals[SKY1_FCH_RESET_NU= M] =3D { + /* resets for fch_sw_rst_func */ + [SW_I3C0_RST_FUNC_G_N] =3D { FCH_SW_RST_FUNC, BIT(0) }, + [SW_I3C0_RST_FUNC_I_N] =3D { FCH_SW_RST_FUNC, BIT(1) }, + [SW_I3C1_RST_FUNC_G_N] =3D { FCH_SW_RST_FUNC, BIT(2) }, + [SW_I3C1_RST_FUNC_I_N] =3D { FCH_SW_RST_FUNC, BIT(3) }, + [SW_UART0_RST_FUNC_N] =3D { FCH_SW_RST_FUNC, BIT(4) }, + [SW_UART1_RST_FUNC_N] =3D { FCH_SW_RST_FUNC, BIT(5) }, + [SW_UART2_RST_FUNC_N] =3D { FCH_SW_RST_FUNC, BIT(6) }, + [SW_UART3_RST_FUNC_N] =3D { FCH_SW_RST_FUNC, BIT(7) }, + [SW_TIMER_RST_FUNC_N] =3D { FCH_SW_RST_FUNC, BIT(20) }, + + /* resets for fch_sw_rst_bus */ + [SW_I3C0_RST_APB_N] =3D { FCH_SW_RST_BUS, BIT(0) }, + [SW_I3C1_RST_APB_N] =3D { FCH_SW_RST_BUS, BIT(1) }, + [SW_DMA_RST_AXI_N] =3D { FCH_SW_RST_BUS, BIT(2) }, + [SW_UART0_RST_APB_N] =3D { FCH_SW_RST_BUS, BIT(4) }, + [SW_UART1_RST_APB_N] =3D { FCH_SW_RST_BUS, BIT(5) }, + [SW_UART2_RST_APB_N] =3D { FCH_SW_RST_BUS, BIT(6) }, + [SW_UART3_RST_APB_N] =3D { FCH_SW_RST_BUS, BIT(7) }, + [SW_SPI0_RST_APB_N] =3D { FCH_SW_RST_BUS, BIT(8) }, + [SW_SPI1_RST_APB_N] =3D { FCH_SW_RST_BUS, BIT(9) }, + [SW_I2C0_RST_APB_N] =3D { FCH_SW_RST_BUS, BIT(12) }, + [SW_I2C1_RST_APB_N] =3D { FCH_SW_RST_BUS, BIT(13) }, + [SW_I2C2_RST_APB_N] =3D { FCH_SW_RST_BUS, BIT(14) }, + [SW_I2C3_RST_APB_N] =3D { FCH_SW_RST_BUS, BIT(15) }, + [SW_I2C4_RST_APB_N] =3D { FCH_SW_RST_BUS, BIT(16) }, + [SW_I2C5_RST_APB_N] =3D { FCH_SW_RST_BUS, BIT(17) }, + [SW_I2C6_RST_APB_N] =3D { FCH_SW_RST_BUS, BIT(18) }, + [SW_I2C7_RST_APB_N] =3D { FCH_SW_RST_BUS, BIT(19) }, + [SW_GPIO_RST_APB_N] =3D { FCH_SW_RST_BUS, BIT(21) }, + + /* resets for fch_sw_xspi */ + [SW_XSPI_REG_RST_N] =3D { FCH_SW_XSPI, BIT(0) }, + [SW_XSPI_SYS_RST_N] =3D { FCH_SW_XSPI, BIT(1) }, +}; + +static struct sky1_src *to_sky1_src(struct reset_controller_dev *rcdev) +{ + return container_of(rcdev, struct sky1_src, rcdev); +} + +static int sky1_reset_update(struct sky1_src *sky1src, + unsigned long id, unsigned int value) +{ + const struct sky1_src_signal *signal =3D &sky1src->signals[id]; + + return regmap_update_bits(sky1src->regmap, + signal->offset, signal->mask, value); +} + +static int sky1_reset_set(struct reset_controller_dev *rcdev, + unsigned long id, bool assert) +{ + struct sky1_src *sky1src =3D to_sky1_src(rcdev); + unsigned int value =3D assert ? 0 : sky1src->signals[id].mask; + + return sky1_reset_update(sky1src, id, value); +} + +static int sky1_reset(struct reset_controller_dev *rcdev, + unsigned long id) +{ + sky1_reset_set(rcdev, id, true); + usleep_range(SKY1_RESET_SLEEP_MIN_US, + SKY1_RESET_SLEEP_MAX_US); + + sky1_reset_set(rcdev, id, false); + + /* + * Ensure component is taken out reset state by sleeping also after + * deasserting the reset, Otherwise, the component may not be ready + * for operation. + */ + usleep_range(SKY1_RESET_SLEEP_MIN_US, + SKY1_RESET_SLEEP_MAX_US); + return 0; +} + +static int sky1_reset_assert(struct reset_controller_dev *rcdev, + unsigned long id) +{ + return sky1_reset_set(rcdev, id, true); +} + +static int sky1_reset_deassert(struct reset_controller_dev *rcdev, + unsigned long id) +{ + return sky1_reset_set(rcdev, id, false); +} + +static int sky1_reset_status(struct reset_controller_dev *rcdev, + unsigned long id) +{ + unsigned int value =3D 0; + struct sky1_src *sky1_src =3D to_sky1_src(rcdev); + const struct sky1_src_signal *signal =3D &sky1_src->signals[id]; + + regmap_read(sky1_src->regmap, signal->offset, &value); + return !(value & signal->mask); +} + +static const struct reset_control_ops sky1_src_ops =3D { + .reset =3D sky1_reset, + .assert =3D sky1_reset_assert, + .deassert =3D sky1_reset_deassert, + .status =3D sky1_reset_status +}; + +static const struct sky1_src_variant variant_sky1 =3D { + .signals =3D sky1_src_signals, + .signals_num =3D ARRAY_SIZE(sky1_src_signals), +}; + +static const struct sky1_src_variant variant_sky1_fch =3D { + .signals =3D sky1_src_fch_signals, + .signals_num =3D ARRAY_SIZE(sky1_src_fch_signals), +}; + +static const struct regmap_config sky1_src_config =3D { + .reg_bits =3D 32, + .val_bits =3D 32, + .reg_stride =3D 4, + .name =3D "src", +}; + +static int sky1_reset_probe(struct platform_device *pdev) +{ + struct sky1_src *sky1src; + struct device *dev =3D &pdev->dev; + void __iomem *base; + const struct sky1_src_variant *variant =3D device_get_match_data(dev); + + sky1src =3D devm_kzalloc(dev, sizeof(*sky1src), GFP_KERNEL); + if (!sky1src) + return -ENOMEM; + + base =3D devm_platform_ioremap_resource(pdev, 0); + if (IS_ERR(base)) + return PTR_ERR(base); + + sky1src->regmap =3D devm_regmap_init_mmio(dev, base, &sky1_src_config); + if (IS_ERR(sky1src->regmap)) { + dev_err(dev, "Unable to get sky1-src regmap"); + return PTR_ERR(sky1src->regmap); + } + + sky1src->signals =3D variant->signals; + sky1src->rcdev.owner =3D THIS_MODULE; + sky1src->rcdev.nr_resets =3D variant->signals_num; + sky1src->rcdev.ops =3D &sky1_src_ops; + sky1src->rcdev.of_node =3D dev->of_node; + sky1src->rcdev.dev =3D dev; + + return devm_reset_controller_register(dev, &sky1src->rcdev); +} + +static const struct of_device_id sky1_reset_dt_ids[] =3D { + { .compatible =3D "cix,sky1-rst", .data =3D &variant_sky1 }, + { .compatible =3D "cix,sky1-rst-fch", .data =3D &variant_sky1_fch }, + { /* sentinel */ }, +}; +MODULE_DEVICE_TABLE(of, sky1_reset_dt_ids); + +static struct platform_driver sky1_reset_driver =3D { + .probe =3D sky1_reset_probe, + .driver =3D { + .name =3D KBUILD_MODNAME, + .of_match_table =3D sky1_reset_dt_ids, + }, +}; +static int __init reset_sky1_init(void) +{ + return platform_driver_register(&sky1_reset_driver); +} +subsys_initcall(reset_sky1_init); + +static void __exit reset_sky1_exit(void) +{ + platform_driver_unregister(&sky1_reset_driver); +} +module_exit(reset_sky1_exit); + +MODULE_AUTHOR("Jerry Zhu "); +MODULE_DESCRIPTION("Cix Sky1 reset driver"); +MODULE_LICENSE("GPL"); --=20 2.49.0 From nobody Fri Dec 19 19:16:36 2025 Received: from SEYPR02CU001.outbound.protection.outlook.com (mail-koreacentralazon11023099.outbound.protection.outlook.com [40.107.44.99]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0678E2F25F0; Fri, 7 Nov 2025 03:38:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.44.99 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762486711; cv=fail; b=m7oBMlLLBC1tOLUx7/Whnzp21WpX6IjRyPH0Z2Oi64SsYnuFzhyYz+4FBTqpkSAmf3EaIbBAqdpthGKeglial6WUecNpmy8HG++XjvhozfmBtc3Ythcc/GpggJkrzr0x7mLCM+esx6qGr5G7491jqHHr3f18y3OitoERPIX34YQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762486711; c=relaxed/simple; bh=9YKDoeJGESUB1LAwyPctCcLJjasMeGyJu8omLQPvHgo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=S+nIcqpAU3g/WAEsxBjVe4L3rwNKOzU7rZBqdPSk9SQm7CybFqAoOSJcpxr//4kMLZ2Moe8+kW29DDNZz47spsgJrKtJhq5pUSTpXdCQWEZ42Ivg8ijKxxgQbymVcLTjzAHE95qNElZ78PZ9gejdvBtDMzOnhvM5zQmTVSs/nK4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=cixtech.com; spf=pass smtp.mailfrom=cixtech.com; arc=fail smtp.client-ip=40.107.44.99 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=cixtech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=cixtech.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aYXpUea0WodVjph1hK/kS6G2BpdRt1LNFO6WWwwxpO4mtDc6mN7MR33tVYrWb9KgsexiZ0cLPjZ9UniKZUwhMzp6vC0iNHexzajOXHJHf2ac7dUC+36F90ej6YmRCEZSvv+/nKtxWcrvXo9LCL6Nru1oWVLNVc/HKdfthSYLGrzOXrzoqvuzkR7u9Hk8SfxTLH25sflC4+iXvPnMvdYbvCyZI4glS11MyzwkT+H5IXkydhpbLqJRIpkOnlcsUOCQA2/0afByUbwFX3VM6Vfl9Pc7YHFhjrdMVocBS+9GgkqNnuScBFAkDpDzMDD6yrlnhK9bmGCuh7zS8yctTh1xjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=H6W1zY0s7iCzvFP6imKpgX+wFH1Q/bhxWnRHtIu9eKY=; b=toCOKwS2xy0w9cUR2Kq1KujufpikTgi2H9SlhlGJPifFUu/2JY4vjAMXNChaRyJZpfmOH/FG0jT/kGO2sE77p6A2mzc9S0Go8wQD9YzkgTX1FjaPNwer+OmbcdOnvsrRGyDzRdXhxzCSLSCOrVJnuUutC86a039Yr2XP7saiaF8mhlKaT4f/6F6UZ+ZCH9nOkvqk6vwc1JjEq8OSJHYdvZ0WvvIsEerFY0Px4nf9lXchcE39UwgVy+QnVZ3Qtrzg/TOlayLIJijiBXw9lJYBKx4d20bpI/Ep4nD53aKutC3KhSoxD6t3RZfPK9Dh2V1dlLx7h5bW+Ken67livhLj4g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 222.71.101.198) smtp.rcpttodomain=cixtech.com smtp.mailfrom=cixtech.com; dmarc=bestguesspass action=none header.from=cixtech.com; dkim=none (message not signed); arc=none (0) Received: from TYCPR01CA0209.jpnprd01.prod.outlook.com (2603:1096:405:7a::14) by SEZPR06MB6157.apcprd06.prod.outlook.com (2603:1096:101:eb::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.7; Fri, 7 Nov 2025 03:38:21 +0000 Received: from TY2PEPF0000AB83.apcprd03.prod.outlook.com (2603:1096:405:7a:cafe::e) by TYCPR01CA0209.outlook.office365.com (2603:1096:405:7a::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9298.12 via Frontend Transport; Fri, 7 Nov 2025 03:38:17 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 222.71.101.198) smtp.mailfrom=cixtech.com; dkim=none (message not signed) header.d=none;dmarc=bestguesspass action=none header.from=cixtech.com; Received-SPF: Pass (protection.outlook.com: domain of cixtech.com designates 222.71.101.198 as permitted sender) receiver=protection.outlook.com; client-ip=222.71.101.198; helo=smtprelay.cixcomputing.com; pr=C Received: from smtprelay.cixcomputing.com (222.71.101.198) by TY2PEPF0000AB83.mail.protection.outlook.com (10.167.253.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.6 via Frontend Transport; Fri, 7 Nov 2025 03:38:21 +0000 Received: from localhost.localdomain (unknown [172.16.64.196]) by smtprelay.cixcomputing.com (Postfix) with ESMTPSA id EC09741604E7; Fri, 7 Nov 2025 11:38:19 +0800 (CST) From: Gary Yang To: p.zabel@pengutronix.de, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, cix-kernel-upstream@cixtech.com, Gary Yang Subject: [PATCH 3/3] dts: reset: add support for cix sky1 resets Date: Fri, 7 Nov 2025 11:38:19 +0800 Message-ID: <20251107033819.587712-4-gary.yang@cixtech.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20251107033819.587712-1-gary.yang@cixtech.com> References: <20251107033819.587712-1-gary.yang@cixtech.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TY2PEPF0000AB83:EE_|SEZPR06MB6157:EE_ X-MS-Office365-Filtering-Correlation-Id: 6b075572-e815-424d-01f8-08de1daf1958 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?GD/QXZ3dIWIljtpsx1F0OdT6qeDJrewayuX6t4xucF2NVooz6ocZ6fBkLQGN?= =?us-ascii?Q?RYnvQEPsTtOGuk1Ory3G7Y8EdjVod5kH6rNYO4kddoX18da9P0GPMIIOIzoA?= =?us-ascii?Q?ki5J6496NWfNQyc/yw6UcCIgNDJ6IVJwxQiTzvZTU3UnY8R5Uwh8MQQtXrpz?= =?us-ascii?Q?bQI+eKf8URB6i+0gNACts7ncFC4BkbQ8YSDBfSkuWeBhaZokDwPtEzecb09D?= =?us-ascii?Q?A2R/MRYb9YjSOIAtKfu6E3bUyLXNfN32qNTiUcdheLZyXSju9jLoFF6pnAv9?= =?us-ascii?Q?Gy+QHz7vQXEUcYZheq3/eYuehAladngjzBOF7UbQu5RCI7JB3q/EF4LGQ/rr?= =?us-ascii?Q?oW8fQkxd2vU9eGxfU/CIlMml94NxO+FZgXQNj8xqg0PqLHbcu8eWG6JgMYwF?= =?us-ascii?Q?+B8Vvvi3pZLiCFDl75JZY3jYqqWAFwpdUer0t5rk5Ms0bK+eXZ6JITjIAPW4?= =?us-ascii?Q?BdRT8s05BZv00TBblAoy4jBgh3/odUmUoiIEePurF9GLX7wRjyF4JOmJpIgg?= =?us-ascii?Q?9CYZ1QkSf3ZVQqdguISMpfjxmWOEX1CJeU0301IKGvxf2gBF4aa/tP9UF6Ra?= =?us-ascii?Q?LdLZR1XyqZXRg3Q4Ocnk7m0aT7m4oy8qA10TBNya+ufYJFjERsUE/cFol3aa?= =?us-ascii?Q?P+PWrUykrEOGIP66YZbtbPtEzk8KVf7mFXgjDIcN0P8ECJJtXG/hVMWo9nGd?= =?us-ascii?Q?0WRYo6qDjITwooFS1pQIMNjO+V9o7MkH2fnErHLKItAGaUHFSdZcqQADH5mZ?= =?us-ascii?Q?1N4D/3myId5dYGO0bnFQvZM/3F1Wnjm9LT3iane6zy7BYLMaF/runIPlFM0v?= =?us-ascii?Q?FSZSDfl43rOQIsbtEpfsmmM8O0497EQkV0wqQX1C+gDtmqIoLUUH4nVRpIyg?= =?us-ascii?Q?wKvjw5yFsQBidol//8rpDjOHJHNwrXKI9k5GxygbB/cmavqnwmfeTqkSzUN1?= =?us-ascii?Q?j9vKfiFpl18FckMNmCNOrNbf0564r4oMMhT5m4Ss7puAj2S25houZu4+tDpP?= =?us-ascii?Q?c6OC7TehFjgD4ZnYSrnqHcjbGOnyQ+AiFG3lmxgCYoo5CqEkyDspgj3WoGBx?= =?us-ascii?Q?jlgVcy40iSE1OEr7jcfNzcBge50KuPkqVv6XnFfR6FzpHxe+L3at8Muv25yf?= =?us-ascii?Q?iehZzrNqo1gKszC4ncC7Nr5kSzStkgTSQiwZe3703bFiwJ/ljBfSanFAM10i?= =?us-ascii?Q?a7GAgNALLovVB74wJrzDMnUwMBwuqufMr7KktIIr6JApfYjk8xB9bL1SLfNV?= =?us-ascii?Q?9eLDz3bL9uwQcj66PfU/UezHC6mKpejgIta6UNzCJDtJoOVzDRgJQ7PjUC4z?= =?us-ascii?Q?r1J/bBXNro/A0cOpgpogMeHtHpla+4lMgZzAGZXPE6oD5gXC+wtusxexf3TG?= =?us-ascii?Q?IZ3LuiiOIuPuhDDsM1bHDo1gBlFm9pIv1o2rVtTNmAbpJE7p/4H3W1ZASFj7?= =?us-ascii?Q?pOcAh0J/SOdTgPTk9osQalGR8+JVhxQdUBV9WLol8hjqcn5JFb8eaehhtP6N?= =?us-ascii?Q?tnCBBCfpxWw2lw6gc87YHHmhMDkcCJ1ohfr89ykqVokXX6HDOGMk6ZDsgdgn?= =?us-ascii?Q?4W0GMfD2bf1iVeGcrzM=3D?= X-Forefront-Antispam-Report: CIP:222.71.101.198;CTRY:CN;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:smtprelay.cixcomputing.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1102; X-OriginatorOrg: cixtech.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2025 03:38:21.2328 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6b075572-e815-424d-01f8-08de1daf1958 X-MS-Exchange-CrossTenant-Id: 0409f77a-e53d-4d23-943e-ccade7cb4811 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=0409f77a-e53d-4d23-943e-ccade7cb4811;Ip=[222.71.101.198];Helo=[smtprelay.cixcomputing.com] X-MS-Exchange-CrossTenant-AuthSource: TY2PEPF0000AB83.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB6157 Content-Type: text/plain; charset="utf-8" There are two reset conctrollers on Cix Sky1 Soc. One is located in S0 domain, and the other is located in S5 domain. Signed-off-by: Gary Yang --- arch/arm64/boot/dts/cix/sky1.dtsi | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/arch/arm64/boot/dts/cix/sky1.dtsi b/arch/arm64/boot/dts/cix/sk= y1.dtsi index d21387224e79..fc68734f37c2 100644 --- a/arch/arm64/boot/dts/cix/sky1.dtsi +++ b/arch/arm64/boot/dts/cix/sky1.dtsi @@ -348,6 +348,13 @@ i3c1: i3c@4100000 { status =3D "disabled"; }; =20 + src_fch: reset-controller@4160000 { + compatible =3D "cix,sky1-rst-fch", "syscon"; + reg =3D <0x0 0x04160000 0x0 0x90>; + #reset-cells =3D <1>; + status =3D "okay"; + }; + iomuxc: pinctrl@4170000 { compatible =3D "cix,sky1-iomuxc"; reg =3D <0x0 0x04170000 0x0 0x1000>; @@ -568,6 +575,13 @@ ppi_partition1: interrupt-partition-1 { }; }; =20 + src: reset-controller@16000000 { + compatible =3D "cix,sky1-rst", "syscon"; + reg =3D <0x0 0x16000000 0x0 0x1000>; + #reset-cells =3D <1>; + status =3D "okay"; + }; + iomuxc_s5: pinctrl@16007000 { compatible =3D "cix,sky1-iomuxc-s5"; reg =3D <0x0 0x16007000 0x0 0x1000>; --=20 2.49.0