From nobody Thu Dec 18 03:41:01 2025 Received: from mx0a-0024c301.pphosted.com (mx0a-0024c301.pphosted.com [148.163.149.154]) (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 F400E23D2A3 for ; Fri, 12 Dec 2025 16:27:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.149.154 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765556833; cv=fail; b=he0ypus9iB/+AdSarbxsK0NIt7gNh4Lrr1zm/OkcSFdKBvSnw4D7BLAhmWd7Gf74sEEZ5AcYdjRQhCQu597RowaFGpBOQnb1XkBuFsfv2Hg+Uvqadl+x9RQ7TiYmN4srqxQIeL/SS3DBHR7U9gb0wKF76rX17YoN74N/KfzwFkE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765556833; c=relaxed/simple; bh=1W/GHbA1xIbgT4oAmrn+szkxCxlfgpkFn4EOqpZ8IEs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=eLtJCefjyC+ZSFG+bGboh5BO+fkL8oMTU0GHN06+CkcgHHVfW6hiHczqOSTgTxxwZSUATZ8KofdWV6Z/u9pF/sGoR/Hrw4gF3PbfWJ3Mo4gGKPow8/f6QuLDkNQ8dOoMtC3LYKHstzy5SVvOkDvdWN3z2dxXRGvJmv5DX1coKV0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=silabs.com; spf=pass smtp.mailfrom=silabs.com; dkim=pass (2048-bit key) header.d=silabs.com header.i=@silabs.com header.b=wObyBWCi; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b=bEnF5HiR; arc=fail smtp.client-ip=148.163.149.154 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=silabs.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=silabs.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=silabs.com header.i=@silabs.com header.b="wObyBWCi"; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b="bEnF5HiR" Received: from pps.filterd (m0101743.ppops.net [127.0.0.1]) by mx0a-0024c301.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BC8WO7P3748684; Fri, 12 Dec 2025 10:13:25 -0600 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps12202023; bh=SL0HP6Mo0asnTZAcWqNUCzfE5V3mOAZkfIJdXjg3bLU=; b=wObyBWCi/jMp YdQpAzOj3Df5l6ic47PHkJdENVt7GGzEEW6YYmxxP5cAc2ipIM8bypJNOPCr2Esq Wm3xNivduteziXVmce+kV+hz6AKjtaGyw/cktp/KjfqYncjgEtK/Gr2aaNrA49RS 2LoOYE2CU8gEdNXbFYMKZcg8kHPo2aJNJsaALFtKOi9CP1wtJkfZ6ydK65REQ7Pj Qq7YVqW8UVJL47nwy0cSCSZvGy5NgZoOGXF7tM2xCTT9YvPqlwoEzSXvc1HLNB/U mjxT39UV7jGrJ0kh8hGJaV5cupJp42IWAJhDq2/hwnMjETVjJ3PlR8uawYTaWI67 7deEniPRAQ== Received: from bl2pr02cu003.outbound.protection.outlook.com (mail-eastusazon11021114.outbound.protection.outlook.com [52.101.52.114]) by mx0a-0024c301.pphosted.com (PPS) with ESMTPS id 4ayht2mdee-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Fri, 12 Dec 2025 10:13:25 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vqtWynHPg/VaBm8dmTo1smB4ANfTqxUHCw8kvP4Le7g38I6IY65KmCVjRuvUszFL2i7lw5euWRJlLehzq/gpkRIIkOaQZ9+KzafXu0gPEGitOKvbePG6WWWQL57SuuaXvZvRZ6gaJYYQqeOnLtMtO0NKPHXj7dP9Qz23XlE3vGWNZfBU1YHsUVoA1944/4kPSfyVPR6Qjf1ASM0pKy9LaEXdXfuZTr0WiOlfzOdy2p3LvxuCK02MQprS9qzRTLmsguBpwRC56gej+rSDNSlbdIaQXx2FfN3Gm+DyIBr90HhVPsGYHW3p7DUVxSSvRm7cN8JrCljbFrH9oCRGe1keLw== 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=SL0HP6Mo0asnTZAcWqNUCzfE5V3mOAZkfIJdXjg3bLU=; b=FNqWMA35hGjUjQdxhWOdrQyRz3HuRk7LKlt1tznsVEH9De9D4Z7PyR0wP/06YjqoJhq/8mEdxaIQx2wuG/KyzARy8LxdTgLz0qTb064vvlyOwA/vdwTXJMfEc0qdiS/YTV273+gAYsNiqDNs6XIISkyizuK9/QEG+bXFQEw2WEc2Ha19/nF0fA0/DcAjS0jiNSWCGarKYgGp/xmzRG1ApFkIgdcuDRI2YtLoHDu7hQ9p/B9L4dVSdQ5/V9kvwm/j0fjz7E8yFW78aqvO8EyUK57DCnNUabY0LLDCmQWVq8P+JnUow2896gickiFI3iCC3lm2Oly6qlQ5bAeXkWkqiw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SL0HP6Mo0asnTZAcWqNUCzfE5V3mOAZkfIJdXjg3bLU=; b=bEnF5HiRnfO8+HeBiZUUYaYwL++4NDIBgznCj5LQVhvLAKilyQf84A1hOwGCIpiL84vjPH9ui4SaeLYAAgHaBNGwO3+pyG5TGcDVuUBgpyLh2eqYX2S+wLYPhUeVRNxs9HHlhWpWQnPmsCdzSQpyUzBstK00NSJmyEV+I53hZK8= Received: from DS0PR11MB8205.namprd11.prod.outlook.com (2603:10b6:8:162::17) by MN0PR11MB6111.namprd11.prod.outlook.com (2603:10b6:208:3cd::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.9; Fri, 12 Dec 2025 16:13:22 +0000 Received: from DS0PR11MB8205.namprd11.prod.outlook.com ([fe80::2de6:bc88:2af7:3583]) by DS0PR11MB8205.namprd11.prod.outlook.com ([fe80::2de6:bc88:2af7:3583%3]) with mapi id 15.20.9412.005; Fri, 12 Dec 2025 16:13:22 +0000 From: =?UTF-8?q?Damien=20Ri=C3=A9gel?= To: greybus-dev@lists.linaro.org Cc: linux-kernel@vger.kernel.org, Johan Hovold , Alex Elder , Greg Kroah-Hartman , Silicon Labs Kernel Team , =?UTF-8?q?Damien=20Ri=C3=A9gel?= Subject: [PATCH 01/14] greybus: cpc: add minimal CPC Host Device infrastructure Date: Fri, 12 Dec 2025 11:12:55 -0500 Message-ID: <20251212161308.25678-2-damien.riegel@silabs.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20251212161308.25678-1-damien.riegel@silabs.com> References: <20251212161308.25678-1-damien.riegel@silabs.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YQZPR01CA0176.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:8b::25) To DS0PR11MB8205.namprd11.prod.outlook.com (2603:10b6:8:162::17) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR11MB8205:EE_|MN0PR11MB6111:EE_ X-MS-Office365-Filtering-Correlation-Id: 93b23c64-170b-4b6d-ee02-08de39995ee5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|52116014|366016|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?cVBmcWlCY2M4ajdMRklGbFBqQ0F5TC9QSmF2L3Vzd2VSUmd4UkFBODZNRitm?= =?utf-8?B?a3VEY3VEUlNHOHk5RlNwazlxc0VNNVlxWnQzUzVRdDU4ckJCSmRWL3gvUmNY?= =?utf-8?B?YTVIUEZDYU1XT2w4TjhzMWY1KzFTUVJlMUsramxvY2N2WEh3aVYxTkUza0hN?= =?utf-8?B?UGxhZFZod1daN3l1MlZ6RFNIWVpxNzl5SVhJWXBZb0ZaTWJzTEt0ekk0eGhM?= =?utf-8?B?T0xHZkI2b3dZQzNjRWd6ZHZMdVZkd05ka1FXcmZZUWdUZDhSa3VXNjBiVTU5?= =?utf-8?B?b1FhTlR5R1Y0RWJ4VjlDRVU0ejJQS3ROcll5K1k4MEtBU1BTeUxMWTlMZzY1?= =?utf-8?B?cmtxTERuVWMxOVg1ZFVxQ1ZDTS90U0lBTUYzTnZEdHAydjFDdWo3dUdUMW91?= =?utf-8?B?VkhEZ3Y5TDFUK2ZBa011YStoYWJRdDlQV2VNUEFsWXZxazcwN3lqSHFTcmpJ?= =?utf-8?B?WmtubzJzVnFVT3dqRE9uQzVzeGVxV3JvWFpSWmY3R25ROW5CUy9YVnUxTTg3?= =?utf-8?B?ejNQV1pTWU9yTU93QTFlenFBMWVyc3d1UHZNQ0poeWpwRUVjQXRUeFZhb3Av?= =?utf-8?B?bVpHakFRdlRsa3BEaS9GcEJscUtsdnVPNEpmdWhRTnU1RjQ3NmRCejdHNThR?= =?utf-8?B?VFBaZ0h5UEIxdkVrVFZrZGwxbXhLVmVYZHNHbGxwZFFxNzljZTFRMlpGUU9J?= =?utf-8?B?WUoxTWkyZ1AxY3hFVEJMR25CYUVzUDZHKy9xay95bm1hRnBDcDFobzg4TFRR?= =?utf-8?B?UnBVcVp3dnhQaEptcnVHa3IzNkpXQkV6Nk1QdklxSEtMNjBPRXhTWHpiZkd4?= =?utf-8?B?SnFyd1kxLy9iQlRUY2Uxc3FvbWtkYjQrN2JQZkY3V2VrVVRBZ2pjK0pvMm1F?= =?utf-8?B?dFNzd0h4SS9WN3k0YUZ0UWdqWityQ3dKWmkzMXJYbTVPM2xjbUJXOG9GeTdv?= =?utf-8?B?d0NaOE94bXF5L0RON0J5SGFYbGNrbVg3bmlYMnkva2xoeVpWVFFoWGxIUlp2?= =?utf-8?B?MVZvZE1COUFUeXRsdDcwTVp0WHVCL0xpUjN5N3M1eFM4Z3dzQWVpQm16NXly?= =?utf-8?B?MVZrYTVlV1ZoNWJ6cTZNcW1SZ1RBYW1HYVNtS1pYTWsxREV3Tjd5R3hZdDlB?= =?utf-8?B?K3lzUVpVc1dLeER5b1YzNmxQWGJJR3JCM2gzdGRWMTdxbVVPWlZSczFtSVd5?= =?utf-8?B?cm0ram9qMHlFRjViN3RVakhsU3pRM1YrTVhNODl1WjliaDhtVEpKZlI1a3BR?= =?utf-8?B?TDZrVlU3MVRLZVE2QWV0QytjMmt0S1J3OWQ0ZHY0dHRsV2x1VzN1V1lOcmZ1?= =?utf-8?B?MUtOd2JHQnJ6c2Y2TExycTZ2aFhodUFQZEgyelBQdFBTUU1tZm5zTEVYeTZ3?= =?utf-8?B?aEkrekJsL08xNG9vMmRiU1VZdjZVRVkxeDFIWkhDWUpLSTM3ZlFuN3M1ZVdr?= =?utf-8?B?Q0kxUDd0V2wvdFpaOXJQdm4rTzFzVkg4SjZETTRHS2paaHpVWG5JUnd2RS9u?= =?utf-8?B?c0Z3d1FTY3AyUHVxZG85Q05nejdNZ0Z0dC8yTVIwYk02WnQrYm9LbU1GU25y?= =?utf-8?B?TVhsbWZoQjJWOUxMQTcrMlE2OWI0MWlDS1BZYUlCdTJURGNzamhzS2JrNXZo?= =?utf-8?B?dWUzZU5HK21VT3JVb2FYN2JFOVlKbThqKy91VnJlcndNaGFNLzRxWFdFZGg5?= =?utf-8?B?cFlSWER6N3NvZzloWWlGN3dFbmpZaDRabWM2UWJEZElrRE9zRndyOUFHeW1n?= =?utf-8?B?TWtLcTFCcGxCWmE3Sko0R1B6akduN2M3NlJDT2x0em9MYUNZSzNhaWZqNXU0?= =?utf-8?B?WnhnTktNRWdUa1lRVU84dm1HNmtjL05sSlZsRTdCaEVLS3llSGx5T1FTeWlQ?= =?utf-8?B?YTBjRGl6STZLbWhqY3ZZY2ljUVgwMnl3QWVncUg2OFVpaEEwTHN5T2tvbzRL?= =?utf-8?B?bzVxaE9peHRyTzRrZi81aFJ3bGhxSHpwNFZiYm03OFpCZVdQR0w5eGIydzFM?= =?utf-8?B?QVNHTE55Q1duVExZTUJ1Z2lwNnVsRUVBWWFPekZkVFQwYmR1L2I3MXQ5YkZ6?= =?utf-8?Q?Gp7f63?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR11MB8205.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(52116014)(366016)(376014)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TFBrTDlVYTVSNlRDWkdEcnBRMmtlbUVYMUhkTVI4WWI3cmo1RmVDMHBpdDMz?= =?utf-8?B?Z1EzRkZLYm1QSlI4QVBVTng2WmVsMGZVbXlQQW1oVlE5aXdlTWo2emZFV256?= =?utf-8?B?NlJFaWhsb1NmVGVKaGdhUWNlSFJWdDdFclV3RGU1U0xsZ1VkNFhBYTdSSGts?= =?utf-8?B?YVQ3d0tsWXBFZWM4bEJVdnQxMitsaDJOV3krTFVLdGUwRm1xSHkvWlhnWkpT?= =?utf-8?B?c1hteCtNWmR2ME83K1A5NisxVU5RVHR5WENPcTFoRlVZQlM2MjBHV2h2Uld4?= =?utf-8?B?aE1MTGVmZzBma1dYcG5zc1JTOWRDRk5SSlN1eXErdllFc1FMZHdXYjRZanAw?= =?utf-8?B?ZWM4K3ZHUmU1c09iNUNBc1dJdE9abndoMXlBMVlFYnk4QnZzRURhbUdaRytu?= =?utf-8?B?blBhYk9MWk5DRUVWTjlKNk5aZDNNMUl4ZEdGbk5hNXU0TzZDUzJ5ZDJYczAx?= =?utf-8?B?dWd1K1Q5dUtKR09uOVoybE13MG9ENmZUcHArSm1tWnVhSEpMVkYwaSttYkI1?= =?utf-8?B?TXVHTlNCYWRSN2Z3YWtRVmU1TmkvaWM0MUw1MEJua1M2Q1A1QXIrM2IzcC9K?= =?utf-8?B?OURHRmpxWDg0YkNYSURmM0djYkVJa29xajNiOTFmQUlIVmZzQjNlSWVhRFVP?= =?utf-8?B?UldFZmVQOTlyb3VqSEg0c1lqdHRXTExKeU9DM0R4MlB3R3p4QTdjMmdvZXhr?= =?utf-8?B?TElCZ2crQ08rdVF6eEIwWkw1d2NGZzU3VGt0UVoyRXZFMzViRkJjVHljTUw0?= =?utf-8?B?dFIxODJSNGtDcHQ3VGJHRGluZS9JUkRCeVdoclVhL2JrYTVSWlFkUGI1NmVi?= =?utf-8?B?N2J4RnEyeURZZjFhaGJULzlrVE1TYS9xQXVZL2pIanQ0bHc1ejJla3lmQWxQ?= =?utf-8?B?K2hjN2VpOGFITVFDNnNsK3Z3THlOQlo3VG45cXMyeW1FS0VjWnZwTy9LRG5v?= =?utf-8?B?OGpXdDdYVjFhaWFFa2tGQm4zOERKU1NhbDcrNnNVQVcxdndTdG5wbk5ybFp3?= =?utf-8?B?LytGZXc1VExVemt2dnY2ajNuK0YrR1VMWGlvNEpEd1JpWXVxbkhuVXdSaUx0?= =?utf-8?B?NGlyK0hFSDRUMUlDWFRURnlHRStOVFVyeFpmMU80b1hiNE5VU3M0VUV6aEEz?= =?utf-8?B?RmoyMUlpZVIxUUwwM2JYZU9nVmlHKzhUVkdXWEdCeDV4ZlN6NnZIZ1JTMHBT?= =?utf-8?B?MENDazRLc20yTzJOczR5aXh3TUZ0c3RBOHBIWEdMKy80RU4zZW9pSE9nNU5H?= =?utf-8?B?MmV4NGhVbXpYS3pNQS95R2FXaHlBWE5rMWRHU3NGZFVnZzcxbEt4Q243YmlE?= =?utf-8?B?UmRJUGZ5VnVQVFdCRitFZ1NoRGk4ZkV2RUlQTXVxbjB1U0V0MkJWb2NrT1lJ?= =?utf-8?B?dE91NU8vS0JiSUltcTJtRFJvSjRZUEJaeGRKU1FSZ0NnS2trdnZyN1hvaGln?= =?utf-8?B?eUNZcVB3TGJQNGxkazBkaDR2eVNHL3hXekx3MzRwUmZoRDg5RlBnMXpCYy9p?= =?utf-8?B?VGcyMzQ1UklCMmdZRmZzK09RTjQ1dlQyaG1IbE45VTBnSkNIUE9vaFAvS1Jz?= =?utf-8?B?aGNRWGVVNGxvZ1dvS2RON0QycEZCWkM3eTYvVG50Q1hEMGp4ZldRc25wamsy?= =?utf-8?B?UEpLaTN3MjI5eXFleW9sVXVFc0JtZi9BbWZ5MjcxNVBZU2ZReUtCOHNEZ3Vo?= =?utf-8?B?d2I1SmFRcnZhaXF1SmZJSDdQL1daMEhaSSs5bHE1ZDI0SXdpNDN0MnFtc1ZP?= =?utf-8?B?V1VpODdzTndmSGxNNVFlb29QcktaRnR6U2VENzRudTF4SW1WQkFwRVJGenhB?= =?utf-8?B?UXIwTHFsOUVleUR1NHhGTXptSnQzRk4rcDRlN200OGJFYmthYWFjTE5mRkdX?= =?utf-8?B?Tjc0N3N2b1BaTElxMFUzaUcvVHpSTnJXREgyVXZ3b2daRW9uV3hVbVZUYld2?= =?utf-8?B?bHdubzgyNEpsVmNwZHBQeU5PM1puWmpsd04yWjFxeUs4dVRoSUpVYWhucVFG?= =?utf-8?B?aENJNWNpUm1DK2pjMnhqVmk1Rnp6RFYrWkp5d3Q1bXhQUzByY0ZSZ3grei9j?= =?utf-8?B?UGVtTHU4NWI0R1h4aENici9jSUFsK0Q3bnRZUXljcWRaL2ZGNFB3MU5Ycnc2?= =?utf-8?Q?hVp/B7FP8xLOGUzbAAjlqQTc5?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 93b23c64-170b-4b6d-ee02-08de39995ee5 X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB8205.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 16:13:22.2304 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: sXpHp2xFJ/bQGdZF36FSCawtcYFd0nUIwhN70wS3YKVJCU5h7EDlxjrW4OBtLVb+/mQmHnKg4+uPSL3pxOcUkg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR11MB6111 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjEyMDEyOCBTYWx0ZWRfX2VJjUgEDz7Ev P4gLG2Ds0lKh4ho4xS5SQ6zZfcWvcKB5lN6bJJ3zTIki+WZJobWYWwVIMWl1tc3XXpDRGLGmkhu B8Dv0v8kn7XknAG/jaub+wsOVVBXUGDleirJUHf+NuzEsVYK2BGi3VN+uwI07ihXI/VjJmX0rub zdlwl+IYxF77kwA+UgspxJj4vMl9XMHgDzi/wJ4vZ1OQdKllS156HlVnFnI7pJhkoa+TdPjdwII utUdb5sFXDZ+6t+14T0pxnqc6ltYic8rs/DGbOhuAtrd1N9jhco/fkh7KflGYzq2zUFEdozBDpH ZzWRFK9WINUf+y6J4AYGTQUA17T8c2sw925zg3eaeoANBSF/dKky5M2qGTmXAW1+M3VEB709oKC V1K3YiLA+7OHsjJ6nXZ6YlC+5vzRxA== X-Authority-Analysis: v=2.4 cv=BKy+bVQG c=1 sm=1 tr=0 ts=693c3f25 cx=c_pps a=iJ0/73tnBOJCmN8OdmQeBQ==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=M51BFTxLslgA:10 a=i1IsUcr2s-wA:10 a=VkNPw1HP01LnGYTKEx00:22 a=2AEO0YjSAAAA:8 a=VwQbUJbxAAAA:8 a=NifzlKhAlxbwiDc_K4AA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-ORIG-GUID: 3LUKxFw4kXlmlD1SQYocjgt2OSh4yWvY X-Proofpoint-GUID: 3LUKxFw4kXlmlD1SQYocjgt2OSh4yWvY X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-12_04,2025-12-11_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0 lowpriorityscore=0 adultscore=0 impostorscore=0 suspectscore=0 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512120128 As the first step for adding CPC support with Greybus, add a very minimal module for CPC Host Devices. For now, this module only proxies calls to the Greybus Host Device API and does nothing useful, but further commits will use this base to add features. Signed-off-by: Damien Ri=C3=A9gel --- MAINTAINERS | 6 +++ drivers/greybus/Kconfig | 2 + drivers/greybus/Makefile | 2 + drivers/greybus/cpc/Kconfig | 10 +++++ drivers/greybus/cpc/Makefile | 6 +++ drivers/greybus/cpc/host.c | 84 ++++++++++++++++++++++++++++++++++++ drivers/greybus/cpc/host.h | 40 +++++++++++++++++ 7 files changed, 150 insertions(+) create mode 100644 drivers/greybus/cpc/Kconfig create mode 100644 drivers/greybus/cpc/Makefile create mode 100644 drivers/greybus/cpc/host.c create mode 100644 drivers/greybus/cpc/host.h diff --git a/MAINTAINERS b/MAINTAINERS index 6d1de82e6dc..56daf9ec310 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -10774,6 +10774,12 @@ S: Maintained F: Documentation/devicetree/bindings/net/ti,cc1352p7.yaml F: drivers/greybus/gb-beagleplay.c =20 +GREYBUS CPC DRIVERS +M: Damien Ri=C3=A9gel +R: Silicon Labs Kernel Team +S: Supported +F: drivers/greybus/cpc/* + GREYBUS SUBSYSTEM M: Johan Hovold M: Alex Elder diff --git a/drivers/greybus/Kconfig b/drivers/greybus/Kconfig index c3f056d28b0..565a0fdcb2c 100644 --- a/drivers/greybus/Kconfig +++ b/drivers/greybus/Kconfig @@ -30,6 +30,8 @@ config GREYBUS_BEAGLEPLAY To compile this code as a module, chose M here: the module will be called gb-beagleplay.ko =20 +source "drivers/greybus/cpc/Kconfig" + config GREYBUS_ES2 tristate "Greybus ES3 USB host controller" depends on USB diff --git a/drivers/greybus/Makefile b/drivers/greybus/Makefile index d986e94f889..92fe1d62691 100644 --- a/drivers/greybus/Makefile +++ b/drivers/greybus/Makefile @@ -21,6 +21,8 @@ ccflags-y +=3D -I$(src) obj-$(CONFIG_GREYBUS_BEAGLEPLAY) +=3D gb-beagleplay.o =20 # Greybus Host controller drivers +obj-$(CONFIG_GREYBUS_CPC) +=3D cpc/ + gb-es2-y :=3D es2.o =20 obj-$(CONFIG_GREYBUS_ES2) +=3D gb-es2.o diff --git a/drivers/greybus/cpc/Kconfig b/drivers/greybus/cpc/Kconfig new file mode 100644 index 00000000000..ab96fedd0de --- /dev/null +++ b/drivers/greybus/cpc/Kconfig @@ -0,0 +1,10 @@ +# SPDX-License-Identifier: GPL-2.0 + +config GREYBUS_CPC + tristate "Greybus CPC driver" + help + Select this option if you have a Silicon Labs device that acts as a + Greybus SVC. + + To compile this code as a module, chose M here: the module will be + called gb-cpc.ko diff --git a/drivers/greybus/cpc/Makefile b/drivers/greybus/cpc/Makefile new file mode 100644 index 00000000000..490982a0ff5 --- /dev/null +++ b/drivers/greybus/cpc/Makefile @@ -0,0 +1,6 @@ +# SPDX-License-Identifier: GPL-2.0 + +gb-cpc-y :=3D host.o + +# CPC core +obj-$(CONFIG_GREYBUS_CPC) +=3D gb-cpc.o diff --git a/drivers/greybus/cpc/host.c b/drivers/greybus/cpc/host.c new file mode 100644 index 00000000000..80516517ff6 --- /dev/null +++ b/drivers/greybus/cpc/host.c @@ -0,0 +1,84 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2025, Silicon Laboratories, Inc. + */ + +#include +#include +#include + +#include "host.h" + +static struct cpc_host_device *gb_hd_to_cpc_hd(struct gb_host_device *hd) +{ + return (struct cpc_host_device *)&hd->hd_priv; +} + +static int cpc_gb_message_send(struct gb_host_device *gb_hd, u16 cport_id, + struct gb_message *message, gfp_t gfp_mask) +{ + struct cpc_host_device *cpc_hd =3D gb_hd_to_cpc_hd(gb_hd); + + return cpc_hd->driver->message_send(cpc_hd, cport_id, message, gfp_mask); +} + +static void cpc_gb_message_cancel(struct gb_message *message) +{ + /* Not implemented */ +} + +static struct gb_hd_driver cpc_gb_driver =3D { + .hd_priv_size =3D sizeof(struct cpc_host_device), + .message_send =3D cpc_gb_message_send, + .message_cancel =3D cpc_gb_message_cancel, +}; + +struct cpc_host_device *cpc_hd_create(struct cpc_hd_driver *driver, struct= device *parent) +{ + struct cpc_host_device *cpc_hd; + struct gb_host_device *hd; + + if ((!driver->message_send) || (!driver->message_cancel)) { + dev_err(parent, "missing mandatory callbacks\n"); + return ERR_PTR(-EINVAL); + } + + hd =3D gb_hd_create(&cpc_gb_driver, parent, GB_CPC_MSG_SIZE_MAX, GB_CPC_N= UM_CPORTS); + if (IS_ERR(hd)) + return (struct cpc_host_device *)hd; + + cpc_hd =3D gb_hd_to_cpc_hd(hd); + cpc_hd->gb_hd =3D hd; + cpc_hd->driver =3D driver; + + return cpc_hd; +} +EXPORT_SYMBOL_GPL(cpc_hd_create); + +int cpc_hd_add(struct cpc_host_device *cpc_hd) +{ + return gb_hd_add(cpc_hd->gb_hd); +} +EXPORT_SYMBOL_GPL(cpc_hd_add); + +void cpc_hd_put(struct cpc_host_device *cpc_hd) +{ + return gb_hd_put(cpc_hd->gb_hd); +} +EXPORT_SYMBOL_GPL(cpc_hd_put); + +void cpc_hd_del(struct cpc_host_device *cpc_hd) +{ + return gb_hd_del(cpc_hd->gb_hd); +} +EXPORT_SYMBOL_GPL(cpc_hd_del); + +void cpc_hd_rcvd(struct cpc_host_device *cpc_hd, u16 cport_id, u8 *data, s= ize_t length) +{ + greybus_data_rcvd(cpc_hd->gb_hd, cport_id, data, length); +} +EXPORT_SYMBOL_GPL(cpc_hd_rcvd); + +MODULE_DESCRIPTION("Greybus over CPC"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Silicon Laboratories, Inc."); diff --git a/drivers/greybus/cpc/host.h b/drivers/greybus/cpc/host.h new file mode 100644 index 00000000000..f55feb303f4 --- /dev/null +++ b/drivers/greybus/cpc/host.h @@ -0,0 +1,40 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (c) 2025, Silicon Laboratories, Inc. + */ + +#ifndef __CPC_HOST_H +#define __CPC_HOST_H + +#include +#include +#include + +#define GB_CPC_MSG_SIZE_MAX 4096 +#define GB_CPC_NUM_CPORTS 8 + +struct cpc_host_device; + +struct cpc_hd_driver { + int (*message_send)(struct cpc_host_device *hd, u16 dest_cport_id, + struct gb_message *message, gfp_t gfp_mask); + void (*message_cancel)(struct gb_message *message); +}; + +/** + * struct cpc_host_device - CPC host device. + * @gb_hd: pointer to Greybus Host Device this device belongs to. + * @driver: driver operations. + */ +struct cpc_host_device { + struct gb_host_device *gb_hd; + const struct cpc_hd_driver *driver; +}; + +struct cpc_host_device *cpc_hd_create(struct cpc_hd_driver *driver, struct= device *parent); +int cpc_hd_add(struct cpc_host_device *cpc_hd); +void cpc_hd_put(struct cpc_host_device *cpc_hd); +void cpc_hd_del(struct cpc_host_device *cpc_hd); +void cpc_hd_rcvd(struct cpc_host_device *cpc_hd, u16 cport_id, u8 *data, s= ize_t length); + +#endif --=20 2.49.0