{"id":2224454,"url":"http://patchwork.ozlabs.org/api/patches/2224454/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/patch/20260417122213.147529-4-uros.stajic@htecgroup.com/","project":{"id":18,"url":"http://patchwork.ozlabs.org/api/projects/18/?format=json","name":"U-Boot","link_name":"uboot","list_id":"u-boot.lists.denx.de","list_email":"u-boot@lists.denx.de","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260417122213.147529-4-uros.stajic@htecgroup.com>","list_archive_url":null,"date":"2026-04-17T12:25:18","name":"[v7,3/7] gpio: Add GPIO driver for Intel EG20T","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"afdcb9074a0d1b580fcbee97a01d00d36e3b264b","submitter":{"id":90991,"url":"http://patchwork.ozlabs.org/api/people/90991/?format=json","name":"Uros Stajic","email":"uros.stajic@htecgroup.com"},"delegate":{"id":20174,"url":"http://patchwork.ozlabs.org/api/users/20174/?format=json","username":"Andes","first_name":"Andes","last_name":"","email":"uboot@andestech.com"},"mbox":"http://patchwork.ozlabs.org/project/uboot/patch/20260417122213.147529-4-uros.stajic@htecgroup.com/mbox/","series":[{"id":500329,"url":"http://patchwork.ozlabs.org/api/series/500329/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/list/?series=500329","date":"2026-04-17T12:23:32","name":"riscv: Add support for P8700 platform on Boston board","version":7,"mbox":"http://patchwork.ozlabs.org/series/500329/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2224454/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2224454/checks/","tags":{},"related":[],"headers":{"Return-Path":"<u-boot-bounces@lists.denx.de>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=htecgroup.com header.i=@htecgroup.com\n header.a=rsa-sha256 header.s=selector1 header.b=f9d9EgAo;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)","phobos.denx.de;\n dmarc=pass (p=reject dis=none) header.from=htecgroup.com","phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de","phobos.denx.de;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=htecgroup.com header.i=@htecgroup.com\n header.b=\"f9d9EgAo\";\n\tdkim-atps=neutral","phobos.denx.de; dmarc=pass (p=reject dis=none)\n header.from=htecgroup.com","phobos.denx.de;\n spf=pass smtp.mailfrom=uros.stajic@htecgroup.com","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=htecgroup.com;"],"Received":["from phobos.denx.de (phobos.denx.de\n [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fxvnq0llYz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 22:48:47 +1000 (AEST)","from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id DCC71843F9;\n\tFri, 17 Apr 2026 14:44:08 +0200 (CEST)","by phobos.denx.de (Postfix, from userid 109)\n id 1B364841C2; Fri, 17 Apr 2026 14:25:24 +0200 (CEST)","from AS8PR04CU009.outbound.protection.outlook.com\n (mail-westeuropeazlp170110003.outbound.protection.outlook.com\n [IPv6:2a01:111:f403:c201::3])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 10C1B83EEF\n for <u-boot@lists.denx.de>; Fri, 17 Apr 2026 14:25:22 +0200 (CEST)","from PA3PR09MB8140.eurprd09.prod.outlook.com (2603:10a6:102:4d4::20)\n by DB9PR09MB6861.eurprd09.prod.outlook.com (2603:10a6:10:4c9::18)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.25; Fri, 17 Apr\n 2026 12:25:19 +0000","from PA3PR09MB8140.eurprd09.prod.outlook.com\n ([fe80::ca17:d4db:b6cd:fb81]) by PA3PR09MB8140.eurprd09.prod.outlook.com\n ([fe80::ca17:d4db:b6cd:fb81%2]) with mapi id 15.20.9818.023; Fri, 17 Apr 2026\n 12:25:19 +0000"],"X-Spam-Checker-Version":"SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de","X-Spam-Level":"","X-Spam-Status":"No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,\n DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED,\n SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2","ARC-Seal":"i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=i0H/+LrYiHYC39JRGnvBSY25+iMlwNSs+Zi5QweNKQH/gmDbn6cmcw01v2J3YF5ErDQZw8UlItPXpeQB980FnKC3SVvVQRbqXDY9rchkrMIRxgsl1OXhoWGJMchC80RBjMN2GKbheJ5lst1X2QOs5Hvxdnv9pkKd206Lf8gjNMlAEq2HYdTf8wh0IdoI5dFECDWyijRe0yql3PlMzl5JaAEUaVzS9bEpIjc4OftB1jGk4bLFXrYQecIkc6ZXJiwY8uc++i718AIKpdB17xg5v9YnD7bqCM1VUsWw4UoApKB1WK04jvY9NLe/D40QUYgdhlWKofNpJ1T4rl3aQGxYAQ==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=SnGcDATHOxzOzavt8wlv42hwS+gDK+R5BVb9Ds+6lXI=;\n b=KLX2ukAsihtKkfeV7n+BfIxmlLH7geh7M4rUSjlHjJtO/esb3RV/Mzv4iY1ERaMYNsUWHbEb4g/8NAlNsHDPp/g408zT35oew5WaSMgSMh05zdq2mOn6rMs98PtxI3UCJ11vxnqtfPelXzIgu6Ox8lSMJ4/fmxT4VoQ3G/oO9r3kVMWZfmvLPZm/WbqXzSk5LCHPTbxayrwvYPP3PjsH0pl+x0SnxTS84In/7KjFCm9bWG56GsCtlry3zggi2Jdvu9XKJbYfwJXYS4fHpsFV5NGDonSMbjpfE6hVWURhprJhrtHULYtp/F3cCzcJBIsxp/l+1W4FTe1qrF2d3BRP9A==","ARC-Authentication-Results":"i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=htecgroup.com; dmarc=pass action=none\n header.from=htecgroup.com; dkim=pass header.d=htecgroup.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=htecgroup.com;\n s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=SnGcDATHOxzOzavt8wlv42hwS+gDK+R5BVb9Ds+6lXI=;\n b=f9d9EgAoGwCxwZzUgPFeWC6oLFRMf89EK1Ta8AaF6eH4AaPMydz5NkMGyVwJZddBP33ImtEQOW4WqYdu5ZtnrQKAjaLKol5pwTYNyYEe9yRN6K+5tDXNEvP4lFYbZGxK2VXLtfOBw6RAOiV//bn70ZhXL9Zh1A9Oru6zx+t37y+jRlYsdrA47GQhfE1OEnaf7m8H8t0y6on6T0LImO7eZDJvMKCd2qnKZTesWweaYrCGMyz6K0dpXBXKRAzKPijSJw1UlBEE+Zi1f7PWkMFmg/OMBz3aoKjvSs5qEalGuTaE8tbr7rDw65c2ep770U5NTOk9Wmgb5Oba7CHLUVStWg==","From":"Uros Stajic <uros.stajic@htecgroup.com>","To":"\"u-boot@lists.denx.de\" <u-boot@lists.denx.de>","CC":"Djordje Todorovic <Djordje.Todorovic@htecgroup.com>, Leo Yu-Chi Liang\n <ycliang@andestech.com>, Rick Chen <rick@andestech.com>, Chao-ying Fu\n <cfu@mips.com>, Uros Stajic <uros.stajic@htecgroup.com>","Subject":"[PATCH v7 3/7] gpio: Add GPIO driver for Intel EG20T","Thread-Topic":"[PATCH v7 3/7] gpio: Add GPIO driver for Intel EG20T","Thread-Index":"AQHczmVAv4L9D4vFgE28/J4wnIJ6ng==","Date":"Fri, 17 Apr 2026 12:25:18 +0000","Message-ID":"<20260417122213.147529-4-uros.stajic@htecgroup.com>","References":"<20260417122213.147529-1-uros.stajic@htecgroup.com>","In-Reply-To":"<20260417122213.147529-1-uros.stajic@htecgroup.com>","Accept-Language":"en-US","Content-Language":"en-US","X-MS-Has-Attach":"","X-MS-TNEF-Correlator":"","authentication-results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=htecgroup.com header.i=@htecgroup.com\n header.a=rsa-sha256 header.s=selector1 header.b=f9d9EgAo;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)","phobos.denx.de;\n dmarc=pass (p=reject dis=none) header.from=htecgroup.com","phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de","phobos.denx.de;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=htecgroup.com header.i=@htecgroup.com\n header.b=\"f9d9EgAo\";\n\tdkim-atps=neutral","phobos.denx.de; dmarc=pass (p=reject dis=none)\n header.from=htecgroup.com","phobos.denx.de;\n spf=pass smtp.mailfrom=uros.stajic@htecgroup.com","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=htecgroup.com;"],"x-ms-publictraffictype":"Email","x-ms-traffictypediagnostic":"PA3PR09MB8140:EE_|DB9PR09MB6861:EE_","x-ms-office365-filtering-correlation-id":"89bb30cd-c9f5-416b-9c36-08de9c7c6376","x-ms-exchange-senderadcheck":"1","x-ms-exchange-antispam-relay":"0","x-microsoft-antispam":"BCL:0;\n ARA:13230040|1800799024|376014|366016|38070700021|18002099003|22082099003|56012099003;","x-microsoft-antispam-message-info":"\n K/1FQLV44tLkUmbLfs5HKS+B5tQNCleB9tvoSWSSioNLZFPKWDCTbwxVMmczc25D3huD4PG9yqnLIzeKrkBHKBXSnZRvr4D7ls8RLUE0p1/dyejjRTqY+RQ1qFyM+noeuzSwqjqZGVTEGPP2hpr676vKtw/Dt1r6g3p6Q8MTUu4n3FDXVMtUybCZrbXOFXViPCdFR0SP5qDM9Py7CIc4Ms6R1POkZ8g7E9qs8c2eOzhmCQLjLADub1pfhNr/6VbY4bP+MHMHWSCj7KzK+D2IL/n43n5IkosbZ7C6yWXLCU9QdSERxEkluM/LFneC37W8h1+KV4FRgRua5sHoxbWDj8ob5kQuKquVz0G9GNVdKs8IYl3JZ0LIQC4W/CSnNY6zvDG29FvQXgBEqHmuEE496qQT3/SJSvu5XkznVGyWt3uvdOHs5gJdDuyJL6ERcJPGFU27jkbRS8EgMTevZZrg9hhPPheZ55WtJWb0quqjFXyKyLgLEfAFv+SmZiLvsGo8AGlZ4yBuY43Dlo53jGnKooPehGsMlfiMBeE6S+eyFUOkDjCUrOM28rK6RT+OEPYy56h/zZobx2WIbpPbc9pxoiHx79tbTIv66mA/PZLO7QGg4uWF92e+EqCHV15eEuQ8MoAfYtnQNegiUQivtfFnge2MdhfyCMcfEEaC/ied/QgiJBb6a+U7Sq5Je9LO5YBXzGdG6HWgM/58V2TMIux+htj4WelwbaUBSdW2iZya3KLgkbr24p+BOcU4oh4ejC5ERcRngAENQSd1KMiSTy0dEbX6MRHUs86Qb4vq3hHMvDQ=","x-forefront-antispam-report":"CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:PA3PR09MB8140.eurprd09.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230040)(1800799024)(376014)(366016)(38070700021)(18002099003)(22082099003)(56012099003);\n DIR:OUT; SFP:1102;","x-ms-exchange-antispam-messagedata-chunkcount":"1","x-ms-exchange-antispam-messagedata-0":"=?iso-8859-1?q?7AwWFIOMO3J86K+zaOTQPRY?=\n\t=?iso-8859-1?q?Lr1tZFzKm2lFNnhPaYG14ma4Vv2wwkbjuwGVA/FkvB61vaiiWUXICDJg48Dr?=\n\t=?iso-8859-1?q?IRMWuqg42QSQQGurAYLNDKHFkH8MSzpqbSxqu6JzAkqizc64ZQQYIWfuq3S+?=\n\t=?iso-8859-1?q?HkweRh4m8STlR9xjQAaZ102QIDWtJBUePoNDyFxrEblzpdAOMPxwH+gIEZLd?=\n\t=?iso-8859-1?q?ToBhoHPfP4F3tn3XDjRkdMmja5BJlSpm4OQMKKSRbiNtFojijiYs+LXu77t+?=\n\t=?iso-8859-1?q?QcSpV9N1qCjlcD4DxtK7PZqblzTh0u31vywVW9DFcP8eXkEnf/qbV9FulXLK?=\n\t=?iso-8859-1?q?v6uyiVvxmAQwuw1yiapnGWnoZNPMuvHX9+zCBWahyGa8QAude6ej4/hX6mq7?=\n\t=?iso-8859-1?q?u4yTkZD8wPe1F8yStjs0noBS/UWtRKEXJ7VmfmFuS+VHlAA6Jf0HBAEQ6qn2?=\n\t=?iso-8859-1?q?mrFCETFxUSrELYNjcytGuNriPsipkt8ueul9oDca/EaIdd2VP/1YA5U468MB?=\n\t=?iso-8859-1?q?uLo3d9Lie35bkmrsM31acw2vSMERjciAVR237IXeMhYOT3ucBM487T4xl/Od?=\n\t=?iso-8859-1?q?akQe2GMapbn7L4RnLIqw69xc73X6GxuBdJXehMT0WGi61J4o3hDVLLdUx3Aq?=\n\t=?iso-8859-1?q?2Hy26/5fhDy3Upj5kMpglAU9AGEgy348VhYpNHQr/UKoCNIlds3aTNyimDjh?=\n\t=?iso-8859-1?q?VzrCLnKDnX8pUw8a5mSXlzZE8+vXND6CcQpnvuFp3vrli9WWhA4lNIXR1xHK?=\n\t=?iso-8859-1?q?aXHabyJpVUeh17IG2JFk12as1iGS5lPAWXOXWETA593iejeY64pOTxoL1SvM?=\n\t=?iso-8859-1?q?+iPKBfJOxkFTYCFDkUYbohA7AOvfla1/T72eIm6AfB0EeFcQ+6wOC1Y0TeSl?=\n\t=?iso-8859-1?q?kW3CIdDCs9sdKrbqBQp+/dkQyscdwbz9Y+7VchiJlq3oE8QmvJa86fF2HhpL?=\n\t=?iso-8859-1?q?oCHATUbnoXfe91IkCPGt5hAk97DvwDUwQ5OqhuwB84q+F0P3YW7n66SqHUtH?=\n\t=?iso-8859-1?q?pnuwpr+jMvOKl04btkT7zJK/DM9pA7gI/Q9O3aQ5issKmBrHxBiWrB1p2nkq?=\n\t=?iso-8859-1?q?3gN5hoprtDRQVhFciSIOmStkOWNGpCN4gyaQeOXjufFEbAGIbwEoxnrxBu60?=\n\t=?iso-8859-1?q?nAaHHW14ipcroHefAfDR02zmK47woKYSQtLlTCZptWfl6jEoszhiPFJjHsCJ?=\n\t=?iso-8859-1?q?jgeV9xiGZqBkI/38/hb/oyAgatqF94AGR8NDRGJqNTbCX6Wkc8K9yRFsmtNZ?=\n\t=?iso-8859-1?q?lgW5xY79C7Ni97+I3JHbnZ4X1IAqeXgTYn4yf1+4xZ3n2soBOv2onfBGz4Jp?=\n\t=?iso-8859-1?q?bGMs1N5XrR8wTA1uRHNuHUOA6UHrbLZ5BsurDfY0g3WejFDMN3LppHJkyTCr?=\n\t=?iso-8859-1?q?IRr5u4nvjWKudJR4sZon8X9wr69uIJTD/gpNxUqvmaZKqpXfVi7qefm4jkxv?=\n\t=?iso-8859-1?q?QODo6iftyBQR65AP0Pr6IE32yZHkMb6wl15BDVPMcA9p5lgouVeKEVCwIpm9?=\n\t=?iso-8859-1?q?NZut3nnLparnNngh/lLGjAuonYaAp6KJVpCJI81WuGdoJxmxXbWQKq7nd8Tu?=\n\t=?iso-8859-1?q?61vGHVsKHlInthIKz2tYoUAq2nWsuFvlF4ZsHn+qwxkjNoYPzooCn7yy10ub?=\n\t=?iso-8859-1?q?bfKj1biGtWTVenBTP1qNDs9QotAlVi2IEopQLSU0vXyqFLNhU4HTvWyCAA/b?=\n\t=?iso-8859-1?q?Hl3M2e4b1myxyaz6ooB9vFDC8NbG1nEgwfqeXE17HAWyvIbptzl0C7Xg8ni+?=\n\t=?iso-8859-1?q?5G6FCj6Dg6LsDNhbh6w2wViIqFj/Ua20oUegNqddSTdcYX8oLbDLoQBpK631?=\n\t=?iso-8859-1?q?3qzEA16A=3D?=","Content-Type":"text/plain; charset=\"iso-8859-1\"","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0","X-OriginatorOrg":"htecgroup.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-AuthSource":"PA3PR09MB8140.eurprd09.prod.outlook.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 89bb30cd-c9f5-416b-9c36-08de9c7c6376","X-MS-Exchange-CrossTenant-originalarrivaltime":"17 Apr 2026 12:25:18.9333 (UTC)","X-MS-Exchange-CrossTenant-fromentityheader":"Hosted","X-MS-Exchange-CrossTenant-id":"9f85665b-7efd-4776-9dfe-b6bfda2565ee","X-MS-Exchange-CrossTenant-mailboxtype":"HOSTED","X-MS-Exchange-CrossTenant-userprincipalname":"\n Oy/HvTM0V+cnIuVGg44czQX5LotBi13fKZVb3kRBT43sES1L/9EV9Fw0A3K8L3xQwt1WCZhRzCnUYhmdNzzdtE9TV8MNtnT+W6sF/MESYNM=","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"DB9PR09MB6861","X-Mailman-Approved-At":"Fri, 17 Apr 2026 14:43:59 +0200","X-BeenThere":"u-boot@lists.denx.de","X-Mailman-Version":"2.1.39","Precedence":"list","List-Id":"U-Boot discussion <u-boot.lists.denx.de>","List-Unsubscribe":"<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>","List-Archive":"<https://lists.denx.de/pipermail/u-boot/>","List-Post":"<mailto:u-boot@lists.denx.de>","List-Help":"<mailto:u-boot-request@lists.denx.de?subject=help>","List-Subscribe":"<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>","Errors-To":"u-boot-bounces@lists.denx.de","Sender":"\"U-Boot\" <u-boot-bounces@lists.denx.de>","X-Virus-Scanned":"clamav-milter 0.103.8 at phobos.denx.de","X-Virus-Status":"Clean"},"content":"From: Chao-ying Fu <cfu@mips.com>\n\nAdd a GPIO driver for the Intel EG20T Platform Controller Hub, which\nexposes a set of 12 GPIOs via PCI MMIO.\n\nThe driver implements basic GPIO operations (input/output direction,\nvalue read/write, and function query) using the U-Boot driver model\ninfrastructure. It maps the required BAR1 region via `dm_pci_map_bar`\nand uses internal registers to control pin state and direction.\n\nThis driver is required for platforms using EG20T, such as P8700-based\nsystems, to access GPIOs through the standard U-Boot DM GPIO framework.\n\nSigned-off-by: Chao-ying Fu <cfu@mips.com>\nSigned-off-by: Uros Stajic <uros.stajic@htecgroup.com>\n---\n board/mips/boston-riscv/MAINTAINERS |   1 +\n drivers/gpio/Kconfig                |   7 ++\n drivers/gpio/Makefile               |   1 +\n drivers/gpio/eg20t-gpio.c           | 141 ++++++++++++++++++++++++++++\n 4 files changed, 150 insertions(+)\n create mode 100644 drivers/gpio/eg20t-gpio.c","diff":"diff --git a/board/mips/boston-riscv/MAINTAINERS b/board/mips/boston-riscv/MAINTAINERS\nindex d03491d0f0c..8b95f53ab32 100644\n--- a/board/mips/boston-riscv/MAINTAINERS\n+++ b/board/mips/boston-riscv/MAINTAINERS\n@@ -7,3 +7,4 @@ F:\tarch/riscv/cpu/p8700/\n F:\tarch/riscv/include/asm/arch-p8700/\n F:\tconfigs/boston-p8700_defconfig\n F:\tarch/riscv/dts/boston-p8700.dts\n+F:\tdrivers/gpio/eg20t-gpio.c\ndiff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig\nindex 0b5466b39b8..94d77c0e6a6 100644\n--- a/drivers/gpio/Kconfig\n+++ b/drivers/gpio/Kconfig\n@@ -762,4 +762,11 @@ config MPFS_GPIO\n \thelp\n \t\tEnable to support the GPIO driver on Polarfire SoC\n \n+config EG20T_GPIO\n+        bool \"Intel EG20T GPIO driver\"\n+        depends on DM_GPIO && PCI\n+        help\n+          Enable this to support the GPIO controller found in the Intel EG20T\n+          Platform Controller Hub.\n+\n endif\ndiff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile\nindex 863557e45ce..729723bfe48 100644\n--- a/drivers/gpio/Makefile\n+++ b/drivers/gpio/Makefile\n@@ -82,3 +82,4 @@ obj-$(CONFIG_GPIO_SCMI)\t\t+= gpio_scmi.o\n obj-$(CONFIG_$(PHASE_)ADP5585_GPIO)\t+= adp5585_gpio.o\n obj-$(CONFIG_RZG2L_GPIO)\t+= rzg2l-gpio.o\n obj-$(CONFIG_MPFS_GPIO)\t+= mpfs_gpio.o\n+obj-$(CONFIG_EG20T_GPIO)\t+= eg20t-gpio.o\ndiff --git a/drivers/gpio/eg20t-gpio.c b/drivers/gpio/eg20t-gpio.c\nnew file mode 100644\nindex 00000000000..18dc5214c43\n--- /dev/null\n+++ b/drivers/gpio/eg20t-gpio.c\n@@ -0,0 +1,141 @@\n+// SPDX-License-Identifier: GPL-2.0+\n+/*\n+ * Copyright (C) 2016 Imagination Technologies\n+ */\n+\n+#include <dm.h>\n+#include <errno.h>\n+#include <log.h>\n+#include <pci.h>\n+#include <asm/io.h>\n+#include <asm/gpio.h>\n+\n+enum {\n+\tREG_IEN\t\t= 0x00,\n+\tREG_ISTATUS\t= 0x04,\n+\tREG_IDISP\t= 0x08,\n+\tREG_ICLR\t= 0x0c,\n+\tREG_IMASK\t= 0x10,\n+\tREG_IMASKCLR\t= 0x14,\n+\tREG_PO\t\t= 0x18,\n+\tREG_PI\t\t= 0x1c,\n+\tREG_PM\t\t= 0x20,\n+};\n+\n+struct eg20t_gpio_priv {\n+\tvoid *base;\n+};\n+\n+static int eg20t_gpio_get_value(struct udevice *dev, unsigned int offset)\n+{\n+\tstruct eg20t_gpio_priv *priv = dev_get_priv(dev);\n+\tu32 pm, pval;\n+\n+\tpm = readl(priv->base + REG_PM);\n+\tif ((pm >> offset) & 0x1)\n+\t\tpval = readl(priv->base + REG_PO);\n+\telse\n+\t\tpval = readl(priv->base + REG_PI);\n+\n+\treturn (pval >> offset) & 0x1;\n+}\n+\n+static int eg20t_gpio_set_value(struct udevice *dev, unsigned int offset,\n+\t\t\t\tint value)\n+{\n+\tstruct eg20t_gpio_priv *priv = dev_get_priv(dev);\n+\tu32 po;\n+\n+\tpo = readl(priv->base + REG_PO);\n+\tif (value)\n+\t\tpo |= 1 << offset;\n+\telse\n+\t\tpo &= ~(1 << offset);\n+\twritel(po, priv->base + REG_PO);\n+\n+\treturn 0;\n+}\n+\n+static int eg20t_gpio_direction_input(struct udevice *dev, unsigned int offset)\n+{\n+\tstruct eg20t_gpio_priv *priv = dev_get_priv(dev);\n+\tu32 pm;\n+\n+\tpm = readl(priv->base + REG_PM);\n+\tpm &= ~(1 << offset);\n+\twritel(pm, priv->base + REG_PM);\n+\n+\treturn 0;\n+}\n+\n+static int eg20t_gpio_direction_output(struct udevice *dev, unsigned int offset,\n+\t\t\t\t       int value)\n+{\n+\tstruct eg20t_gpio_priv *priv = dev_get_priv(dev);\n+\tu32 pm;\n+\n+\tpm = readl(priv->base + REG_PM);\n+\tpm |= 1 << offset;\n+\twritel(pm, priv->base + REG_PM);\n+\n+\treturn eg20t_gpio_set_value(dev, offset, value);\n+}\n+\n+static int eg20t_gpio_get_function(struct udevice *dev, unsigned int offset)\n+{\n+\tstruct eg20t_gpio_priv *priv = dev_get_priv(dev);\n+\tu32 pm;\n+\n+\tpm = readl(priv->base + REG_PM);\n+\tif ((pm >> offset) & 0x1)\n+\t\treturn GPIOF_OUTPUT;\n+\n+\treturn GPIOF_INPUT;\n+}\n+\n+static const struct dm_gpio_ops eg20t_gpio_ops = {\n+\t.direction_input\t= eg20t_gpio_direction_input,\n+\t.direction_output\t= eg20t_gpio_direction_output,\n+\t.get_value\t\t= eg20t_gpio_get_value,\n+\t.set_value\t\t= eg20t_gpio_set_value,\n+\t.get_function\t\t= eg20t_gpio_get_function,\n+};\n+\n+static int eg20t_gpio_probe(struct udevice *dev)\n+{\n+\tstruct eg20t_gpio_priv *priv = dev_get_priv(dev);\n+\tstruct gpio_dev_priv *uc_priv = dev->uclass_priv_;\n+\n+\tpriv->base = dm_pci_map_bar(dev, PCI_BASE_ADDRESS_1, 0, 0,\n+\t\t\t\t    PCI_REGION_TYPE, PCI_REGION_MEM);\n+\tif (!priv->base) {\n+\t\tdebug(\"failed to map GPIO registers\\n\");\n+\t\treturn -EINVAL;\n+\t}\n+\n+\tuc_priv->gpio_count = 12;\n+\tuc_priv->bank_name = \"eg20t\";\n+\n+\treturn 0;\n+}\n+\n+static const struct udevice_id eg20t_gpio_ids[] = {\n+\t{ .compatible = \"intel,eg20t-gpio\" },\n+\t{ }\n+};\n+\n+U_BOOT_DRIVER(eg20t_gpio) = {\n+\t.name\t= \"eg20t-gpio\",\n+\t.id\t= UCLASS_GPIO,\n+\t.of_match = eg20t_gpio_ids,\n+\t.probe\t= eg20t_gpio_probe,\n+\t.priv_auto = sizeof(struct eg20t_gpio_priv),\n+\t.ops\t= &eg20t_gpio_ops,\n+};\n+\n+static struct pci_device_id eg20t_gpio_supported[] = {\n+\t{ PCI_VENDOR_ID_INTEL, 0x8803 },\n+\t{ },\n+};\n+\n+U_BOOT_PCI_DEVICE(eg20t_gpio, eg20t_gpio_supported);\n","prefixes":["v7","3/7"]}