From nobody Fri Feb 13 08:19:25 2026 Received: from APC01-SG2-obe.outbound.protection.outlook.com (mail-sgaapc01on2137.outbound.protection.outlook.com [40.107.215.137]) (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 D3B6B15C9; Fri, 19 Apr 2024 01:49:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.215.137 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713491353; cv=fail; b=CS7W32z7+ju1xKqnDy/3oebONgZcCn2FAImECgUpd7k9eo/T1F91nDXac7ea/qQj8vTzbgxoD4IMl5r2dAiJtUwF7H0nQeqP7DpYMVzzegemf82Z4JIk95AvqorakYuOUXQJSQYK7jT3xKEv4n001gitWNiGehLRmdctl75vmP8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713491353; c=relaxed/simple; bh=/zFAx+j1tZXLj6A2uXFctHkThOvsmOlVr1Xqg1o++Qc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=BskJNkmZtel0622pv+z2+SpC8voj5yrm9sEDvUUU+IEr+NU+Mjkd6M2GTlwtTcH+bIMqnP0FRBIn+PuWVCIQ5Z3zYd2p26q1CNkhMg2rE6IGu3jb2epYquI7FlDELIA6CkbJUg9NnWe/tAv2Uyx19H+W880HVoCy7Jzj2DjtTvA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=wesion.com; spf=pass smtp.mailfrom=wesion.com; arc=fail smtp.client-ip=40.107.215.137 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=wesion.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=wesion.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aUpQZoa7gnz8xXW4KZeQy0iYHRX3pfoajjvcTj0BNVaPIArYaUvsG9zT+9lyOKqqvVo6hl4pvNlQFIpKzHwZjNwksHO5UZEf+I+HsL/ePufgoziL7gOZIK3gyXl8H8qNx8u6W3LMbX08kTtUREbQnBrNs7mD4keyTUaU9+DVkKCyDARHcoUg6sS1lkZy5JLmc8JUh8nAvIXt9xtO00T4pvVE5WEE0PfxmWdqYT95kQv4byUzVUjudPn76mahiZbtOzsRI7zR16gbJXeUPOsUSSRpZnWb4LJXkcqCHRKa2fZ8NuvvXJ0nbso0sYL2Hx4PEQeefef/6KSYwiLVal6m4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=2UPLpZ2B5wuN227/9zgf981mYYxcW8FuzSLrstOeTqQ=; b=bxFkTlntcN7olnVXnqnTsSqNyfgjfqVFLPOd15beiSLMFi63SX/r853/uBJ+zglQiNxq3IH6hfsWODZKEzSWUa8LKo1sDo8N40genfGS4aq4G7F6bpG6B9yVZ0uBepYwFS1bz6U1VenTAaXrpIhfI+vMSYm7bdtkVN26QvZmMJlU1ErPgY1ynwJa2tPGBuMC4Y46sLwl4rvSHKSZtcveBtA2L2M/UFrbhZX4/NTZkbWW8fFg8p8pGcv+iQvcIv0lwpbDLPAPNpJ8YG2WMdI4J/7uBUMFpilGGllAnRsUhDQngZPn29MXW0feJ1QwWDUnFxDu/6HwMjinbx4h7vsd9w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wesion.com; dmarc=pass action=none header.from=wesion.com; dkim=pass header.d=wesion.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=wesion.com; Received: from TYZPR03MB7001.apcprd03.prod.outlook.com (2603:1096:400:26a::14) by SEZPR03MB6810.apcprd03.prod.outlook.com (2603:1096:101:65::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.43; Fri, 19 Apr 2024 01:49:07 +0000 Received: from TYZPR03MB7001.apcprd03.prod.outlook.com ([fe80::c4f9:d4f1:c115:f1ca]) by TYZPR03MB7001.apcprd03.prod.outlook.com ([fe80::c4f9:d4f1:c115:f1ca%6]) with mapi id 15.20.7472.042; Fri, 19 Apr 2024 01:49:07 +0000 From: Jacobe Zang To: neil.armstrong@linaro.org, airlied@gmail.com, daniel@ffwll.ch, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, robh@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org Cc: nick@khadas.com, linux-amlogic@lists.infradead.org, quic_jesszhan@quicinc.com, sam@ravnborg.org, thierry.reding@gmail.com, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Jacobe Zang , Krzysztof Kozlowski Subject: [PATCH v3 1/2] dt-bindings: panel-simple-dsi: add Khadas TS050 V2 panel Date: Fri, 19 Apr 2024 09:48:51 +0800 Message-Id: <20240419014852.715125-2-jacobe.zang@wesion.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240419014852.715125-1-jacobe.zang@wesion.com> References: <20240419014852.715125-1-jacobe.zang@wesion.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCPR01CA0118.jpnprd01.prod.outlook.com (2603:1096:405:4::34) To TYZPR03MB7001.apcprd03.prod.outlook.com (2603:1096:400:26a::14) 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: TYZPR03MB7001:EE_|SEZPR03MB6810:EE_ X-MS-Office365-Filtering-Correlation-Id: 881b2e5c-2b92-4226-00b1-08dc6012e63e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: =?utf-8?B?bktvbGMreUcvQ0wzUnM4bUNZeEVnWGRhQjJmWlByMURPaEg2Mk9kaFFrcUFV?= =?utf-8?B?ZXNKQnkxeVJac2JLNlpJTDFTaVM2blNJOW9MYytrVnplUThBQ0F0Z2d6WHJS?= =?utf-8?B?U2pKaFhjdXg2V0RMbjNLdHE0YnpEY2MyVkRSK3lTSk14WWkyczhMcVQvZXdB?= =?utf-8?B?dEViNyt2eDhla2oyR2t3aEd3am13emZaUEhSZTRnM3ZSaTJaYVkxS080bzJj?= =?utf-8?B?eE5ZdWdwUk1VVk1xV2VPdURtaGY0KzFnbkIxcTZvYVdKYmhZekVRYjhENzBO?= =?utf-8?B?ZGlNWFE2RUFwdmx6amxHYWs1Rzh2MjgrMUQ5S3VReFcwTnVaMTZZSkxHM1VK?= =?utf-8?B?WkErbkoyaS9sRkE5Qm1PSkV5VjJ4RHdkYzJ3Y0h2TVJXK0hKRXFYbWEyZDlW?= =?utf-8?B?RUNjWmN0VzdxdWxWMGdwNGJUcCtpS0tHZFdianp0eWxVR0twLzFacUh6dzVQ?= =?utf-8?B?V1RLQ09BbUpOTmdIQUdoWm5jbCsvWnIrWkIzQVhWeUxJZmFOSFFzaTkrbVNZ?= =?utf-8?B?QUtyZGNKTi9hV2MrR0QwOTltK1UyY0l2eUpENVRZRHdHTUdzdjV0YTJVOUhx?= =?utf-8?B?UGQrYW9QNjBhUjlzdUpKeC9pVWZtZXBUeUFlekFtcjdYSmttWlFHZVhHVUZu?= =?utf-8?B?U0dFRTJWaUE1dm9OcTZNR2VENS9wQmsxSmNtSUtXVTliTmp1TC9tZkdUV0VO?= =?utf-8?B?bDdqekd6US8raUVTemx4bWlQTlhkeUtSeHZXRmFPOXF5MSs4Rm9MbVV3TCtW?= =?utf-8?B?dDJYVDk0VXgrbWNkS0J4YjFaZDJzRmtJU2k2MTk2UEFGd1BSM3VUNGNMenA1?= =?utf-8?B?ZXRKNEhUYkhGQU5IcEZXU0NOR3lwbzJON3YrdkNicmdVOG9ScHFFS2F4Q2d6?= =?utf-8?B?Tks1cHdOMW5ZVXNqMWljRmVTNjQ2MHpXU2Q1TjNqaEJsanhpN1lISUpObTJ0?= =?utf-8?B?ZnVPQ0hoenpBWnM3Q0p5aHBZZmZUbVFMMmNmRUJEZzBsTlZCaWtrT1ZmdDND?= =?utf-8?B?U0k3TmJ6U3RDdW1TN0lQKzZkcDUvOTl6WHBxMURjTm9mTFZZSk54NVBaVXFT?= =?utf-8?B?SEdDczFUVjNPbW95dFBsUnB3RmZUNG9LU3pRSU01RE5sM1pPZjN1SmxHY1FC?= =?utf-8?B?WHF3VlBxU09xL2M5ZkNycEQzaEJVVExPVlVaa3puMENrcHBnTnd6Y0xkeFZM?= =?utf-8?B?ZnYyekQvN25VaTdJNWRmOVhaakdueW1kTkEyUjdudEtzVjNqZkVKczMrbjBS?= =?utf-8?B?Smp4OW1Td2hVM3U3OG0zNUQ5c2dlRU91MTR3b25JRkZ0MUV4d05rTmNqS3l0?= =?utf-8?B?dEdEYlE2cXdSU3lHR1NYZGJ4RjZwZ1pScXJEdW1aQUVBbEE1TUNJR0VqTmNH?= =?utf-8?B?L1UrMnhxWVBadE9OR2ttQ0UvYlZncGdOUWtRbmhqRDh2V2FXMTFuTDdKZ0Ey?= =?utf-8?B?WnNGMXZVUGVKaUxTb2NWQkphcHlITFBRcngrVnFVTmNyN2drd0hLUFRWU3pE?= =?utf-8?B?akFkUnBTOHRWL0h0SjJrOHFHUFRsMjBRbmdWd2pjRGNNL1k3TEVZVjFYNllu?= =?utf-8?B?K0JxZkRWY2l4cDBKb3hJMEtHcjRmWUVGSGpWdUFoQk9lemxmb0JMT09vcjRO?= =?utf-8?B?VWpVMmJ1MXRoejZ0V0xqa3BSaU9Na2F1enhVWC9LakR5aUo1a0FZeFNkQkpi?= =?utf-8?B?OEM4cTBpbG0rQitldnVENjI4QTQxbit1Wlc1amRNVUdJUkRjQUpMWXpOblJq?= =?utf-8?B?OGdoY3dkL2VyQTZ5aDhXTWZDdGZPRGNJV2tSQ3BwVGhyOVU5TkxOd3NjLzZz?= =?utf-8?B?V0ZabjRMdGVwZGE1SkFDUT09?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYZPR03MB7001.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(7416005)(52116005)(1800799015)(366007)(38350700005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dU5RN2s3VDRsNXZQSWczWUFGZHVYTEd6VlhrZll3Z3MrOWlNM2hwTVBodnJy?= =?utf-8?B?Q0xjN0NhM2pBVW8xdUkxUGtMa1N4SlRBWWU5bzg1RXdSTVF2L3NHRHhBTHA2?= =?utf-8?B?ZmZDRnVyWWVoanVRcHNTV05hTDhpak1IcWQ2MVJQUEdZSHJRYzFMUWxZbWp0?= =?utf-8?B?VWtDb29zbDBUZmJMY0tkWFBlU25ialFXSnIyMUNFcHFVV3ZqWWl3RmpSRnlt?= =?utf-8?B?VERIUFF2S1ZBK2hXZ0o0bUMwSUVCZ1JGYzFKU2pGUThyREtXMVlwMVJ6MmNh?= =?utf-8?B?aSt0Q1UwMm11TGNpRmM5S0M5Q3hHNE9CSDhmNmdNVnNlR3RSYkJwRHlWdGNx?= =?utf-8?B?b0VUUldJd0Q0OEw4MndPQlR0OWVpQkRJV2ZjSkJya0Ria296OTRWUTlSSnZa?= =?utf-8?B?OFZHNjJKdTBtZlA0bXVZelJrZG5ObzE2WFJKVk9vWWVscUc5MGE0YlJ4cXFM?= =?utf-8?B?S0dlSHB2STBhRWNTOXEycU9OS3E1V3RLaXJJYlJXQU9Nc2k1bXBJOEVlTVVH?= =?utf-8?B?cENzUmtlbFJ4UzJmbXFRZlorNWZ5dEtsbk41enRWd1pVWWxPVnRQeXQvVWNm?= =?utf-8?B?MWJVb1pqcTEyMythZ29QRjNaTGUyeVBiYjlCNjhaWXg3Z2t0by9NMndvWDJN?= =?utf-8?B?QklxMDBuazY5Z0JWUFJrenFyVHUwNUZIREJUSUlPekFBcENmNWxmKzNLdzNE?= =?utf-8?B?MFNQMUhMM2MyUFpaS1hOSmx1aExiaC83UE40YVE1VS83RVlMdlREbXROUlRn?= =?utf-8?B?TG9iVE8ram03bVhKT1JnanJjeFpCd2wxK2NFQy9nbU81V3ZBVnR6Z2JLK0s1?= =?utf-8?B?OEpCREpSMHRRRGt4by94ZkNTWVJxN2p3Ukd0NFlFMlZYUnErQ0c4MzdyYjlL?= =?utf-8?B?VDRqWVppQnY4cGo5MGhpUjFRalVNU3F6dXRwNkZ4K2VhZkdzQmhaazg4R2xZ?= =?utf-8?B?b3V0eUkycEVEMDhYVzlDNGF2dU1CVktLY0twZnJWd25UTUhNRzFKVjQxQWls?= =?utf-8?B?K2FjZ1ZkT1ZmcUV4MitTbWs2Z1d1a0w2bGR5Q0hvakFtaWhNUy9oQ1NJcFRB?= =?utf-8?B?QUIySEZPY2RvQ09KT3J4RFdsU3JaQ21rb29ndDRzSCtObjFHNUFWcWdPT2FU?= =?utf-8?B?dnVjaERPZDBUb0RSRzFsYndTVVRUbGZKUFgvUFM1b0IrWDYzZ3Q2b0dSVmpW?= =?utf-8?B?STBYUXpFTFpUb2llRDA3a0tUMVNnbk1wNTR1d1QyOWJzVGFKQStwYlgzaGZk?= =?utf-8?B?cHFmYkRTdmwwUEwxN1dzaEZZdzByOC9uSUV5TEVuUGcrMU5vQm5kK2VNTmdu?= =?utf-8?B?aEFHTWcybmF3WE81Y2d6c0doZVNnZnBCdDNMcnNzMzBEU25RNjFwVHdvMFhk?= =?utf-8?B?cmo3VFVMS2daSjVkZm56R01WNTlJNHVMMkpDTXRHL1NhZ0dzUzBka3BaSkU5?= =?utf-8?B?RU55MThlUWozOFF2TUlaYXVINERvdm5od1lEdzZCNHo0enVuQkdwOTNHb3Fh?= =?utf-8?B?Rk9XNGJ0STFEaUFWRGptUXBobDBFSUh2NE9DMkIwTVhoa3Q2RUVVMzlHNEF3?= =?utf-8?B?R2paeFdIY0VPZHN4Z0hTejBGeUlaVkdDcGcxQmY3d1I0UnM3dmhKQnE0TXVa?= =?utf-8?B?M25TSzJ1SVJzUTcySVdyUS80ZkxLalE2MjJPVDNVek14K05IWXAwcHpObFJK?= =?utf-8?B?RVl2WWhobkhEU21LaUV1SzlFVlA1bjUxQ2VQUWhka3FvSWU4NlV4TTN4aURk?= =?utf-8?B?c0gxNFNtc0xEQlpneVJRcUFFTnVOWGpmVWJtbVpaL3JNN1luOWhzcE1KTzd0?= =?utf-8?B?VEtvS1FVbGlJTnBmNEhWWWY1Q1YxZnBMZ2wrM0l2TWpURTV6WHpzY1RqZlph?= =?utf-8?B?YzdDNWVmSmFmZUk4cHNxOU1nUlZRZzYyVzZCQTZJT1BSQ3VZNTZHZllsTlE3?= =?utf-8?B?QlpndWhTRlA2b1V0djQwQVpZZUVIbXdvWW9UVWloQzlFL2V1UHlXRFNxT0RT?= =?utf-8?B?SjNDZkRVazlmSWVxek1wZWxzcFZZNFpmS3FuMmFHQnpnOXdwY3F6YTJxM0M5?= =?utf-8?B?M3AxMEI5ZG82b0FzQkU3cUw5elFHU0gxN0xYc1psTEtMRHBEZlp0YTZKdW5l?= =?utf-8?B?bks0MCtLRS8rdlRZM2R5a1hhcS82SDNFQVRnTVpCZXowaTNBNk00REwwRWk3?= =?utf-8?B?akE9PQ==?= X-OriginatorOrg: wesion.com X-MS-Exchange-CrossTenant-Network-Message-Id: 881b2e5c-2b92-4226-00b1-08dc6012e63e X-MS-Exchange-CrossTenant-AuthSource: TYZPR03MB7001.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Apr 2024 01:49:07.0065 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 2dc3bd76-7ac2-4780-a5b7-6c6cc6b5af9b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: BeZJG9hIPHGPbBDccF6wxv/FsF/uJdPKoRDzBsKsHIb907/OamoT8rKmPNq304PLf52F+xAgKHBhaXJi4h+diw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR03MB6810 This add the bindings for the Khadas TS050 V2 1080x1920 5" LCD DSI panel designed to work with the Khadas VIM3 and VIM3L Single Board Computers. Signed-off-by: Jacobe Zang Acked-by: Krzysztof Kozlowski --- .../devicetree/bindings/display/panel/panel-simple-dsi.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple-d= si.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.= yaml index f9160d7bac3ca..ad0a733ee1331 100644 --- a/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml +++ b/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml @@ -36,6 +36,8 @@ properties: - jdi,fhd-r63452 # Khadas TS050 5" 1080x1920 LCD panel - khadas,ts050 + # Khadas TS050 V2 5" 1080x1920 LCD panel + - khadas,ts050v2 # Kingdisplay KD097D04 9.7" 1536x2048 TFT LCD panel - kingdisplay,kd097d04 # LG ACX467AKM-7 4.95" 1080=C3=971920 LCD Panel --=20 2.34.1 From nobody Fri Feb 13 08:19:25 2026 Received: from APC01-SG2-obe.outbound.protection.outlook.com (mail-sgaapc01on2116.outbound.protection.outlook.com [40.107.215.116]) (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 822588F6C; Fri, 19 Apr 2024 01:49:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.215.116 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713491358; cv=fail; b=HZZZzj/eH1kLgUPF7mD1og497GtRY3ukJtlP7ihGSdYV7tQl89uvuzEfBMhox5YLjwHeq8naHMumZ2b55UOiU8U98jooo5ATUmsZn0OSr2JrWb6sIfgBGy5P5FAWnFLCqgZGG2u9YMDHuHhQDOYT7uwROrrQRtf96l7fEEbHMDw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713491358; c=relaxed/simple; bh=M6luRJecKWXZzVeaq8IonNEAilZzCVb+snUrf7eQ3UE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=p00ckqhc9+n0xe0O5ohOVh3rRka+fVq/BIldoCIhJKVFMhcncymqRWrFXp62noSNqc/xSFtafyLadWe+S6vLPeXzU0TxKdhrrFKDNDOyhz5TcVBJDm4mNFClSiUpU1FlN7Y7Q8YHOUiw7EvLNr8L/feL7F2Cdx4LumwusCKoLH4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=wesion.com; spf=pass smtp.mailfrom=wesion.com; arc=fail smtp.client-ip=40.107.215.116 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=wesion.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=wesion.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e/v9R+L0cI2KSyLwCl/ZYGoUPQX/HFYNIk7eQ8GeNfw0OuaK0uPEVGM6TN5R0FqRyzdQ2Qyp78hnxum/oxOL8d8V7hvyuLU+xmqQIyiu5P4LRCRiNlhRlvFzeHN6Vpu9xAYO+cn7wf9zpbtWbs5ICK1+van9l6paMxucioY6Ns+HKf0qWiJrOSjsJ9B85L8RlvABoq31uXbwywTu1+T8FFKtUdRJHbZgmtPkskT6yywUKxJJxfC3QLyguCeVKbroa9myPHh/OseiZgAEk0mH8MNNMRp8J56ta+UB1wkiOHx+DAbn9TvEaR1s1rDhy1iGa4yLE8sEXPi+nhEoTiMGNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=q703vmX4MHTVNSS1ZQgJDnt0gSrlEex7okiMC19R0I4=; b=V4nSSpVXS/+t/3IwnDDFu9Sl8oq1Cy/nQaL939n6akPJdC/n8eOQL1F7LkWZP9g8wPO9prjoPhLxNAGxgMfshinv2iYSrN5WrM/4BFQ9NLrpVQxjruGyb8LqoOWdFE8nARP77s6sUduaZfzA8iJhm/AE3gUSLCsTTceXlZ5f/IUESp6bv/M7RZw/+FMLVHn6K30m/ladYiP1lv23W4hpi15Awis2xlo2FQ8kp1UZU3ostzu7RFndtoQLv3Im/YBjCUeySACPLsr2YU/QFeB5Uitd4WhJjhHarPFfO0F1OWtlppG9lwD+OWMJa/usxX6zvL5tuXJozp7EkCc42lxrVA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wesion.com; dmarc=pass action=none header.from=wesion.com; dkim=pass header.d=wesion.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=wesion.com; Received: from TYZPR03MB7001.apcprd03.prod.outlook.com (2603:1096:400:26a::14) by SEYPR03MB8008.apcprd03.prod.outlook.com (2603:1096:101:175::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.43; Fri, 19 Apr 2024 01:49:10 +0000 Received: from TYZPR03MB7001.apcprd03.prod.outlook.com ([fe80::c4f9:d4f1:c115:f1ca]) by TYZPR03MB7001.apcprd03.prod.outlook.com ([fe80::c4f9:d4f1:c115:f1ca%6]) with mapi id 15.20.7472.042; Fri, 19 Apr 2024 01:49:10 +0000 From: Jacobe Zang To: neil.armstrong@linaro.org, airlied@gmail.com, daniel@ffwll.ch, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, robh@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org Cc: nick@khadas.com, linux-amlogic@lists.infradead.org, quic_jesszhan@quicinc.com, sam@ravnborg.org, thierry.reding@gmail.com, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Jacobe Zang Subject: [PATCH v3 2/2] drm/panel: add Khadas TS050 V2 panel support Date: Fri, 19 Apr 2024 09:48:52 +0800 Message-Id: <20240419014852.715125-3-jacobe.zang@wesion.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240419014852.715125-1-jacobe.zang@wesion.com> References: <20240419014852.715125-1-jacobe.zang@wesion.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCPR01CA0118.jpnprd01.prod.outlook.com (2603:1096:405:4::34) To TYZPR03MB7001.apcprd03.prod.outlook.com (2603:1096:400:26a::14) 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: TYZPR03MB7001:EE_|SEYPR03MB8008:EE_ X-MS-Office365-Filtering-Correlation-Id: 15ede6ac-19af-48e2-f9c9-08dc6012e810 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?EqvsqnRHxA8p722AJpxQr4Bf9Jighm2zwypQUHUradF/gweBzJg4ilu2JJzi?= =?us-ascii?Q?l7SKkIkwlSvPbh1sZfnojwOaVJ/UUDPmLZG0sVrbjnDkBFpYyZI22Tfjhy0M?= =?us-ascii?Q?wrHuaYj0muM+D49cIfxsk7gINsbEsszzRQ1gtjlbffc6YlJ9Uz57/9WO014O?= =?us-ascii?Q?3hDbE0tJHaSojkpsb0f/MmX7NW3IWn+DYOAxL4dG5KAvsTsY3nuVZ9yZXt+9?= =?us-ascii?Q?nPr2dd0pA8EPQmFtxB/e92NSA3VoUQO2eh9KMsLxgUG3GPwcIgpczYb3nrmL?= =?us-ascii?Q?TSK6qruaNfdE5OKkqLubKwc0zg3dXf9BE6YjVay3jcCf0LYhXwKBy3+Vf0Gn?= =?us-ascii?Q?pC9cg3V+Zba4OCZnoGl0k1gz5eX//Thek1PRXwAaBIQqzVxsxFlU39ODX+R/?= =?us-ascii?Q?/F991J1ldwv7RRfIyDwEarwgA9fVRIkYy01eQdVsmV3Jc9G72k2oN5btI+du?= =?us-ascii?Q?GSUEx8UYlyhUpvAHClc1IdseixMB7O4ItYBrpDHSiob5qFX7n5XKdAUJ8IVo?= =?us-ascii?Q?z88oPgtVex2iVt68FGQ2HLT8ztlEjlahP0FOqbhl1jeTfVlUCDa/TZKqPEfZ?= =?us-ascii?Q?ZVvCDEOZfsxXrz9Ji4CfVg7UFM2ziy3t0kHOSS12GDP9gxdt9HByb0G21pw9?= =?us-ascii?Q?u9GB2LAMyPV4kwReOuOMcfMMmo8JDxvyUmAkTODiRNL0yhBL9730VfiuxidG?= =?us-ascii?Q?JLe56v3jIguJgU6Lt5F2qgFkVFCmPHy8LpwxdjkBWJ3OuYpM7WPFFJOjWvcC?= =?us-ascii?Q?afn/BZ65lq7e0YAY65Yk30nYLc8KZ0RpTlENTPb35AjVzoFY//XXypuYYMjv?= =?us-ascii?Q?hFanR9GN1tRPOqOI51TFFaZ7d0lJzv00ixiEEV6s/0Y0lcGdx9oM2v9c++m7?= =?us-ascii?Q?rI+CuASTa8ch/lV3L9z2N7hMPxd+Qyu60vKoASjICWvfCPmhf/xmwJsH2Sv+?= =?us-ascii?Q?vsDsHSpjlS+Bn+Au3k6dQgfnQA4UNUa9xMqocym5yvN8PdExMpsigiatrtTy?= =?us-ascii?Q?WRFJlh0N4eezzZgXAIB5CG8/Gmwab8RMLpgU6F26l4uzG+NlHM28B0rEIFjR?= =?us-ascii?Q?mmEBBMROHvwDR/IJJHW8tmxJ7HSDUa38wuOUflgMsIEZB8QfkxZDHGDJTjW4?= =?us-ascii?Q?RCO6tLaHdMU8cHhK0RrimuJ0EqqpBHTlcgH4fmKn24VMSeIkxywVl/daod6D?= =?us-ascii?Q?hOIyY1SmBdWNJEfF3eypP6eh0t4ddYzvu3oS43A5VEd/fWlsoynA785+G4LJ?= =?us-ascii?Q?FEZWEkBCftQ9PgmNm5W1DG3ZHyG6c+c2gbufxtASgvhBUVz6u/15AXUypJbw?= =?us-ascii?Q?/HqcfNsTBK6LLHqTuhcJepMd2j/eazOTRm2JDtZCkRRyjA=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYZPR03MB7001.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(1800799015)(52116005)(7416005)(366007)(38350700005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?gZMxUV0qxmAcffLhTT0vRqNgF0g6GDhEOeGEqJ5NeIsEfh6cEU3FcO5KKYCv?= =?us-ascii?Q?JrqrtrLTpQye0+SnQ5uGlMlte1j/wfvVyflFqvMqSgDEniwhtFOnIkiq/Mix?= =?us-ascii?Q?+aC57d61MplI9vvoamtctRVzn1AoEh3VNQrJzFby3N7Gvp4LX7b1J0i4eP85?= =?us-ascii?Q?4cnK9/yA878xjyooniEHFbSJtNrTmYWguufa1fS8BwnNpnUcsA/BPe64JVrt?= =?us-ascii?Q?SmJhpLJji2OC1xoWG3LS0+QUMVgGZcSzYiAkofkAw6PT43MDQqmkoLSyZAyb?= =?us-ascii?Q?guAPnzKOVkB5oLhg+2jcpIy81w5C9+JYv9SniRKwsDWCnmgJI6nEhiC5TfhN?= =?us-ascii?Q?OHleoacyNbqynVFt7vOT3Li2PvidQwfgra7fvfFAM6T9Dbe+tLSCkBFXsxpP?= =?us-ascii?Q?VfKXogQLMi3zAdBLrTZf37osixCXdrlxtmqR4ZQI6aXb5KeWujdl2uDig1i0?= =?us-ascii?Q?YRkjiBsxwvLAv6H29exa3I8S0po1zqY8lirVdt11fqA+rFPiEvjVrhB+x3Na?= =?us-ascii?Q?pSKowrjd7A/3ssHY9p6R5URD2KlQ5NY1nZTsJiy/iZ1UYDnstS/PQ3dZP7+l?= =?us-ascii?Q?mU33uTxOrGU2qnBjgXA3iqE3m6J8yYECFl5E4eD+dP+zu8wd7YgvU2kLqtHn?= =?us-ascii?Q?/Up5HoooY37gYGD7wrpIJSOrp13HNOeYWQiVq/9EQkVTlnT1HFpc1oMw9nGg?= =?us-ascii?Q?l7uUnzHba6ZrLRo0NW9j3NKtBh1DFMHUv8iw49MWBmhK9XIuJgXrlDkpk4Cu?= =?us-ascii?Q?sTqjTnrs7c0bSBTx9bs2P0rCVyTofWs04KoigbcWqbixDTB66Cj2QqJS4+bz?= =?us-ascii?Q?azaASsBW9v8L121ktNUrFmwK6rdS4AYtn1xxpGFuAa7GQpsJffPNy9JlssS3?= =?us-ascii?Q?bnaF9pNBvVN6h3UqZF9xJ1fLWAODw2fIe28f6yWyvk9EUg0t/nTJKrfq534B?= =?us-ascii?Q?CZgRj7uh3W+oThVoJlQMDvgdhXjjXIoDWQUEcvYSD1CepD7DK+hp86qfISYE?= =?us-ascii?Q?U6c+R4tR+kBr7tG8j5hJidFoo/mbXiDtdTIf8YzD2mHDNgpLU1pI4T4jLDUn?= =?us-ascii?Q?3eKXHNnM3N8Ow3ynBBg/+KLUBphcij6QRXTw34boixvO8og9vPeSI7Wavhv3?= =?us-ascii?Q?rwZYSJmIhAh3O1GjR7ViD5GEvn04x+JRMcyKcJACpSRoAYmRctR35erHjl0T?= =?us-ascii?Q?5qjY4N8I2DGXWZAs2BJ6+703ESJMSQyMAcFyAH2bfxqJLo18QceR/M9IdR2Q?= =?us-ascii?Q?Bs0hTJfj1KPozBOHzazqPdg0pA6t0+qwxX9ztYvqSvw0zP9bVDCCLZfUE2pw?= =?us-ascii?Q?93kSnUpc5nuGY3YVgTsAopaCZTDMPhePkTfLuBkCXL22MQueWVhPdC+rOC/X?= =?us-ascii?Q?YhFQuQK7HYilsLEnsu1E19YP/ac71H7WmTKhzIk86ev+K3Euks4Go068Jjh7?= =?us-ascii?Q?Rp1vyBS9njApvQrb6cVdOfpRb6mTWm7Y9/JgZxQ36G/Uylkn8apNl6O+Nbw7?= =?us-ascii?Q?gigP1PKsrkYeXTrgMif7wzr7q1F5w6lx6nlPhQuKsTBoWsT1ANVzMbAIX60F?= =?us-ascii?Q?9QuO220QTw5Af4aFNtuCCuzGNxiR9BZPqQ4+RZVyT5uYDK4QLg3DdgjL4fyS?= =?us-ascii?Q?vQ=3D=3D?= X-OriginatorOrg: wesion.com X-MS-Exchange-CrossTenant-Network-Message-Id: 15ede6ac-19af-48e2-f9c9-08dc6012e810 X-MS-Exchange-CrossTenant-AuthSource: TYZPR03MB7001.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Apr 2024 01:49:10.1387 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 2dc3bd76-7ac2-4780-a5b7-6c6cc6b5af9b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: MDaOYPdxnSA1WQdIvBCZoaWbK4SI2ARjato8pZ8g1E1XWqswGt26suvXBgP9MW3R69BiN81wnP7JyBtm4aBzCQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEYPR03MB8008 Content-Type: text/plain; charset="utf-8" This add Khadas TS050 V2 Panel and make it compatible with old one. Controller of V2 panel is "Himax HX8399-C" and the old panel is "NT35596". In driver file, the only different between them is the timing squence. Signed-off-by: Jacobe Zang Reviewed-by: Neil Armstrong --- drivers/gpu/drm/panel/panel-khadas-ts050.c | 1112 +++++++++++--------- 1 file changed, 590 insertions(+), 522 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-khadas-ts050.c b/drivers/gpu/drm/p= anel/panel-khadas-ts050.c index b942a01622743..c54be0cc3f084 100644 --- a/drivers/gpu/drm/panel/panel-khadas-ts050.c +++ b/drivers/gpu/drm/panel/panel-khadas-ts050.c @@ -25,6 +25,7 @@ struct khadas_ts050_panel { struct regulator *supply; struct gpio_desc *reset_gpio; struct gpio_desc *enable_gpio; + struct khadas_ts050_panel_data *panel_data; =20 bool prepared; bool enabled; @@ -32,544 +33,601 @@ struct khadas_ts050_panel { =20 struct khadas_ts050_panel_cmd { u8 cmd; - u8 data; + u8 data[55]; + u8 size; +}; + +struct khadas_ts050_panel_data { + struct khadas_ts050_panel_cmd *init_code; + int len; +}; + +static const struct khadas_ts050_panel_cmd ts050v2_init_code[] =3D { + {0xB9, {0xFF, 0x83, 0x99}, 0x03}, + {0xBA, {0x63, 0x23, 0x68, 0xCF}, 0x04}, + {0xD2, {0x55}, 0x01}, + {0xB1, {0x02, 0x04, 0x70, 0x90, 0x01, 0x32, 0x33, + 0x11, 0x11, 0x4D, 0x57, 0x56, 0x73, 0x02, 0x02}, 0x0f}, + {0xB2, {0x00, 0x80, 0x80, 0xAE, 0x0A, 0x0E, 0x75, 0x11, 0x00, 0x00, 0x00}= , 0x0b}, + {0xB4, {0x00, 0xFF, 0x04, 0xA4, 0x02, 0xA0, 0x00, 0x00, 0x10, 0x00, 0x00,= 0x02, + 0x00, 0x24, 0x02, 0x04, 0x0A, 0x21, 0x03, 0x00, 0x00, 0x08, 0xA6, 0x88, + 0x04, 0xA4, 0x02, 0xA0, 0x00, 0x00, 0x10, 0x00, 0x00, 0x02, 0x00, 0x24, + 0x02, 0x04, 0x0A, 0x00, 0x00, 0x08, 0xA6, 0x00, 0x08, 0x11}, 0x2e}, + {0xD3, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, + 0x18, 0x32, 0x10, 0x09, 0x00, 0x09, 0x32, + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x11, 0x00, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x0A, + 0x40}, 0x21}, + {0xD5, {0x18, 0x18, 0x18, 0x18, 0x21, 0x20, 0x18, 0x18, 0x19, 0x19, 0x19, + 0x19, 0x18, 0x18, 0x18, 0x18, 0x03, 0x02, 0x01, 0x00, 0x2F, 0x2F, + 0x30, 0x30, 0x31, 0x31, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18}, 0x20}, + {0xD6, {0x18, 0x18, 0x18, 0x18, 0x20, 0x21, 0x19, 0x19, 0x18, 0x18, 0x19, + 0x19, 0x18, 0x18, 0x18, 0x18, 0x00, 0x01, 0x02, 0x03, 0x2F, 0x2F, + 0x30, 0x30, 0x31, 0x31, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18}, 0x20}, + {0xD8, {0x0A, 0xBE, 0xFA, 0xA0, 0x0A, 0xBE, 0xFA, 0xA0}, 0x08}, + {0xBD, {0x01}, 0x01}, + {0xD8, {0x0F, 0xFF, 0xFF, 0xE0, 0x0F, 0xFF, 0xFF, 0xE0}, 0x08}, + {0xBD, {0x02}, 0x01}, + {0xD8, {0x0F, 0xFF, 0xFF, 0xE0, 0x0F, 0xFF, 0xFF, 0xE0}, 0x08}, + {0xBD, {0x00}, 0x01}, + {0xE0, {0x01, 0x35, 0x41, 0x3B, 0x79, 0x81, 0x8C, 0x85, 0x8E, + 0x95, 0x9B, 0xA0, 0xA4, 0xAB, 0xB1, 0xB3, 0xB7, 0xC5, 0xBD, 0xC5, + 0xB6, 0xC2, 0xC2, 0x62, 0x5D, 0x66, 0x73, 0x01, 0x35, 0x41, 0x3B, + 0x79, 0x81, 0x8C, 0x85, 0x8E, 0x95, 0x9B, 0xA0, 0xA4, 0xAB, 0xB1, + 0xB3, 0xB7, 0xB5, 0xBD, 0xC5, 0xB6, 0xC2, 0xC2, 0x62, 0x5D, 0x66, + 0x73}, 0x36}, + {0xB6, {0x97, 0x97}, 0x02}, + {0xCC, {0xC8}, 0x02}, + {0xBF, {0x40, 0x41, 0x50, 0x19}, 0x04}, + {0xC6, {0xFF, 0xF9}, 0x02}, + {0xC0, {0x25, 0x5A}, 0x02}, }; =20 /* Only the CMD1 User Command set is documented */ -static const struct khadas_ts050_panel_cmd init_code[] =3D { +static const struct khadas_ts050_panel_cmd ts050_init_code[] =3D { /* Select Unknown CMD Page (Undocumented) */ - {0xff, 0xee}, + {0xff, {0xee}, 0x01}, /* Reload CMD1: Don't reload default value to register */ - {0xfb, 0x01}, - {0x1f, 0x45}, - {0x24, 0x4f}, - {0x38, 0xc8}, - {0x39, 0x27}, - {0x1e, 0x77}, - {0x1d, 0x0f}, - {0x7e, 0x71}, - {0x7c, 0x03}, - {0xff, 0x00}, - {0xfb, 0x01}, - {0x35, 0x01}, + {0xfb, {0x01}, 0x01}, + {0x1f, {0x45}, 0x01}, + {0x24, {0x4f}, 0x01}, + {0x38, {0xc8}, 0x01}, + {0x39, {0x27}, 0x01}, + {0x1e, {0x77}, 0x01}, + {0x1d, {0x0f}, 0x01}, + {0x7e, {0x71}, 0x01}, + {0x7c, {0x03}, 0x01}, + {0xff, {0x00}, 0x01}, + {0xfb, {0x01}, 0x01}, + {0x35, {0x01}, 0x01}, /* Select CMD2 Page0 (Undocumented) */ - {0xff, 0x01}, + {0xff, {0x01}, 0x01}, /* Reload CMD1: Don't reload default value to register */ - {0xfb, 0x01}, - {0x00, 0x01}, - {0x01, 0x55}, - {0x02, 0x40}, - {0x05, 0x40}, - {0x06, 0x4a}, - {0x07, 0x24}, - {0x08, 0x0c}, - {0x0b, 0x7d}, - {0x0c, 0x7d}, - {0x0e, 0xb0}, - {0x0f, 0xae}, - {0x11, 0x10}, - {0x12, 0x10}, - {0x13, 0x03}, - {0x14, 0x4a}, - {0x15, 0x12}, - {0x16, 0x12}, - {0x18, 0x00}, - {0x19, 0x77}, - {0x1a, 0x55}, - {0x1b, 0x13}, - {0x1c, 0x00}, - {0x1d, 0x00}, - {0x1e, 0x13}, - {0x1f, 0x00}, - {0x23, 0x00}, - {0x24, 0x00}, - {0x25, 0x00}, - {0x26, 0x00}, - {0x27, 0x00}, - {0x28, 0x00}, - {0x35, 0x00}, - {0x66, 0x00}, - {0x58, 0x82}, - {0x59, 0x02}, - {0x5a, 0x02}, - {0x5b, 0x02}, - {0x5c, 0x82}, - {0x5d, 0x82}, - {0x5e, 0x02}, - {0x5f, 0x02}, - {0x72, 0x31}, + {0xfb, {0x01}, 0x01}, + {0x00, {0x01}, 0x01}, + {0x01, {0x55}, 0x01}, + {0x02, {0x40}, 0x01}, + {0x05, {0x40}, 0x01}, + {0x06, {0x4a}, 0x01}, + {0x07, {0x24}, 0x01}, + {0x08, {0x0c}, 0x01}, + {0x0b, {0x7d}, 0x01}, + {0x0c, {0x7d}, 0x01}, + {0x0e, {0xb0}, 0x01}, + {0x0f, {0xae}, 0x01}, + {0x11, {0x10}, 0x01}, + {0x12, {0x10}, 0x01}, + {0x13, {0x03}, 0x01}, + {0x14, {0x4a}, 0x01}, + {0x15, {0x12}, 0x01}, + {0x16, {0x12}, 0x01}, + {0x18, {0x00}, 0x01}, + {0x19, {0x77}, 0x01}, + {0x1a, {0x55}, 0x01}, + {0x1b, {0x13}, 0x01}, + {0x1c, {0x00}, 0x01}, + {0x1d, {0x00}, 0x01}, + {0x1e, {0x13}, 0x01}, + {0x1f, {0x00}, 0x01}, + {0x23, {0x00}, 0x01}, + {0x24, {0x00}, 0x01}, + {0x25, {0x00}, 0x01}, + {0x26, {0x00}, 0x01}, + {0x27, {0x00}, 0x01}, + {0x28, {0x00}, 0x01}, + {0x35, {0x00}, 0x01}, + {0x66, {0x00}, 0x01}, + {0x58, {0x82}, 0x01}, + {0x59, {0x02}, 0x01}, + {0x5a, {0x02}, 0x01}, + {0x5b, {0x02}, 0x01}, + {0x5c, {0x82}, 0x01}, + {0x5d, {0x82}, 0x01}, + {0x5e, {0x02}, 0x01}, + {0x5f, {0x02}, 0x01}, + {0x72, {0x31}, 0x01}, /* Select CMD2 Page4 (Undocumented) */ - {0xff, 0x05}, + {0xff, {0x05}, 0x01}, /* Reload CMD1: Don't reload default value to register */ - {0xfb, 0x01}, - {0x00, 0x01}, - {0x01, 0x0b}, - {0x02, 0x0c}, - {0x03, 0x09}, - {0x04, 0x0a}, - {0x05, 0x00}, - {0x06, 0x0f}, - {0x07, 0x10}, - {0x08, 0x00}, - {0x09, 0x00}, - {0x0a, 0x00}, - {0x0b, 0x00}, - {0x0c, 0x00}, - {0x0d, 0x13}, - {0x0e, 0x15}, - {0x0f, 0x17}, - {0x10, 0x01}, - {0x11, 0x0b}, - {0x12, 0x0c}, - {0x13, 0x09}, - {0x14, 0x0a}, - {0x15, 0x00}, - {0x16, 0x0f}, - {0x17, 0x10}, - {0x18, 0x00}, - {0x19, 0x00}, - {0x1a, 0x00}, - {0x1b, 0x00}, - {0x1c, 0x00}, - {0x1d, 0x13}, - {0x1e, 0x15}, - {0x1f, 0x17}, - {0x20, 0x00}, - {0x21, 0x03}, - {0x22, 0x01}, - {0x23, 0x40}, - {0x24, 0x40}, - {0x25, 0xed}, - {0x29, 0x58}, - {0x2a, 0x12}, - {0x2b, 0x01}, - {0x4b, 0x06}, - {0x4c, 0x11}, - {0x4d, 0x20}, - {0x4e, 0x02}, - {0x4f, 0x02}, - {0x50, 0x20}, - {0x51, 0x61}, - {0x52, 0x01}, - {0x53, 0x63}, - {0x54, 0x77}, - {0x55, 0xed}, - {0x5b, 0x00}, - {0x5c, 0x00}, - {0x5d, 0x00}, - {0x5e, 0x00}, - {0x5f, 0x15}, - {0x60, 0x75}, - {0x61, 0x00}, - {0x62, 0x00}, - {0x63, 0x00}, - {0x64, 0x00}, - {0x65, 0x00}, - {0x66, 0x00}, - {0x67, 0x00}, - {0x68, 0x04}, - {0x69, 0x00}, - {0x6a, 0x00}, - {0x6c, 0x40}, - {0x75, 0x01}, - {0x76, 0x01}, - {0x7a, 0x80}, - {0x7b, 0xa3}, - {0x7c, 0xd8}, - {0x7d, 0x60}, - {0x7f, 0x15}, - {0x80, 0x81}, - {0x83, 0x05}, - {0x93, 0x08}, - {0x94, 0x10}, - {0x8a, 0x00}, - {0x9b, 0x0f}, - {0xea, 0xff}, - {0xec, 0x00}, + {0xfb, {0x01}, 0x01}, + {0x00, {0x01}, 0x01}, + {0x01, {0x0b}, 0x01}, + {0x02, {0x0c}, 0x01}, + {0x03, {0x09}, 0x01}, + {0x04, {0x0a}, 0x01}, + {0x05, {0x00}, 0x01}, + {0x06, {0x0f}, 0x01}, + {0x07, {0x10}, 0x01}, + {0x08, {0x00}, 0x01}, + {0x09, {0x00}, 0x01}, + {0x0a, {0x00}, 0x01}, + {0x0b, {0x00}, 0x01}, + {0x0c, {0x00}, 0x01}, + {0x0d, {0x13}, 0x01}, + {0x0e, {0x15}, 0x01}, + {0x0f, {0x17}, 0x01}, + {0x10, {0x01}, 0x01}, + {0x11, {0x0b}, 0x01}, + {0x12, {0x0c}, 0x01}, + {0x13, {0x09}, 0x01}, + {0x14, {0x0a}, 0x01}, + {0x15, {0x00}, 0x01}, + {0x16, {0x0f}, 0x01}, + {0x17, {0x10}, 0x01}, + {0x18, {0x00}, 0x01}, + {0x19, {0x00}, 0x01}, + {0x1a, {0x00}, 0x01}, + {0x1b, {0x00}, 0x01}, + {0x1c, {0x00}, 0x01}, + {0x1d, {0x13}, 0x01}, + {0x1e, {0x15}, 0x01}, + {0x1f, {0x17}, 0x01}, + {0x20, {0x00}, 0x01}, + {0x21, {0x03}, 0x01}, + {0x22, {0x01}, 0x01}, + {0x23, {0x40}, 0x01}, + {0x24, {0x40}, 0x01}, + {0x25, {0xed}, 0x01}, + {0x29, {0x58}, 0x01}, + {0x2a, {0x12}, 0x01}, + {0x2b, {0x01}, 0x01}, + {0x4b, {0x06}, 0x01}, + {0x4c, {0x11}, 0x01}, + {0x4d, {0x20}, 0x01}, + {0x4e, {0x02}, 0x01}, + {0x4f, {0x02}, 0x01}, + {0x50, {0x20}, 0x01}, + {0x51, {0x61}, 0x01}, + {0x52, {0x01}, 0x01}, + {0x53, {0x63}, 0x01}, + {0x54, {0x77}, 0x01}, + {0x55, {0xed}, 0x01}, + {0x5b, {0x00}, 0x01}, + {0x5c, {0x00}, 0x01}, + {0x5d, {0x00}, 0x01}, + {0x5e, {0x00}, 0x01}, + {0x5f, {0x15}, 0x01}, + {0x60, {0x75}, 0x01}, + {0x61, {0x00}, 0x01}, + {0x62, {0x00}, 0x01}, + {0x63, {0x00}, 0x01}, + {0x64, {0x00}, 0x01}, + {0x65, {0x00}, 0x01}, + {0x66, {0x00}, 0x01}, + {0x67, {0x00}, 0x01}, + {0x68, {0x04}, 0x01}, + {0x69, {0x00}, 0x01}, + {0x6a, {0x00}, 0x01}, + {0x6c, {0x40}, 0x01}, + {0x75, {0x01}, 0x01}, + {0x76, {0x01}, 0x01}, + {0x7a, {0x80}, 0x01}, + {0x7b, {0xa3}, 0x01}, + {0x7c, {0xd8}, 0x01}, + {0x7d, {0x60}, 0x01}, + {0x7f, {0x15}, 0x01}, + {0x80, {0x81}, 0x01}, + {0x83, {0x05}, 0x01}, + {0x93, {0x08}, 0x01}, + {0x94, {0x10}, 0x01}, + {0x8a, {0x00}, 0x01}, + {0x9b, {0x0f}, 0x01}, + {0xea, {0xff}, 0x01}, + {0xec, {0x00}, 0x01}, /* Select CMD2 Page0 (Undocumented) */ - {0xff, 0x01}, + {0xff, {0x01}, 0x01}, /* Reload CMD1: Don't reload default value to register */ - {0xfb, 0x01}, - {0x75, 0x00}, - {0x76, 0xdf}, - {0x77, 0x00}, - {0x78, 0xe4}, - {0x79, 0x00}, - {0x7a, 0xed}, - {0x7b, 0x00}, - {0x7c, 0xf6}, - {0x7d, 0x00}, - {0x7e, 0xff}, - {0x7f, 0x01}, - {0x80, 0x07}, - {0x81, 0x01}, - {0x82, 0x10}, - {0x83, 0x01}, - {0x84, 0x18}, - {0x85, 0x01}, - {0x86, 0x20}, - {0x87, 0x01}, - {0x88, 0x3d}, - {0x89, 0x01}, - {0x8a, 0x56}, - {0x8b, 0x01}, - {0x8c, 0x84}, - {0x8d, 0x01}, - {0x8e, 0xab}, - {0x8f, 0x01}, - {0x90, 0xec}, - {0x91, 0x02}, - {0x92, 0x22}, - {0x93, 0x02}, - {0x94, 0x23}, - {0x95, 0x02}, - {0x96, 0x55}, - {0x97, 0x02}, - {0x98, 0x8b}, - {0x99, 0x02}, - {0x9a, 0xaf}, - {0x9b, 0x02}, - {0x9c, 0xdf}, - {0x9d, 0x03}, - {0x9e, 0x01}, - {0x9f, 0x03}, - {0xa0, 0x2c}, - {0xa2, 0x03}, - {0xa3, 0x39}, - {0xa4, 0x03}, - {0xa5, 0x47}, - {0xa6, 0x03}, - {0xa7, 0x56}, - {0xa9, 0x03}, - {0xaa, 0x66}, - {0xab, 0x03}, - {0xac, 0x76}, - {0xad, 0x03}, - {0xae, 0x85}, - {0xaf, 0x03}, - {0xb0, 0x90}, - {0xb1, 0x03}, - {0xb2, 0xcb}, - {0xb3, 0x00}, - {0xb4, 0xdf}, - {0xb5, 0x00}, - {0xb6, 0xe4}, - {0xb7, 0x00}, - {0xb8, 0xed}, - {0xb9, 0x00}, - {0xba, 0xf6}, - {0xbb, 0x00}, - {0xbc, 0xff}, - {0xbd, 0x01}, - {0xbe, 0x07}, - {0xbf, 0x01}, - {0xc0, 0x10}, - {0xc1, 0x01}, - {0xc2, 0x18}, - {0xc3, 0x01}, - {0xc4, 0x20}, - {0xc5, 0x01}, - {0xc6, 0x3d}, - {0xc7, 0x01}, - {0xc8, 0x56}, - {0xc9, 0x01}, - {0xca, 0x84}, - {0xcb, 0x01}, - {0xcc, 0xab}, - {0xcd, 0x01}, - {0xce, 0xec}, - {0xcf, 0x02}, - {0xd0, 0x22}, - {0xd1, 0x02}, - {0xd2, 0x23}, - {0xd3, 0x02}, - {0xd4, 0x55}, - {0xd5, 0x02}, - {0xd6, 0x8b}, - {0xd7, 0x02}, - {0xd8, 0xaf}, - {0xd9, 0x02}, - {0xda, 0xdf}, - {0xdb, 0x03}, - {0xdc, 0x01}, - {0xdd, 0x03}, - {0xde, 0x2c}, - {0xdf, 0x03}, - {0xe0, 0x39}, - {0xe1, 0x03}, - {0xe2, 0x47}, - {0xe3, 0x03}, - {0xe4, 0x56}, - {0xe5, 0x03}, - {0xe6, 0x66}, - {0xe7, 0x03}, - {0xe8, 0x76}, - {0xe9, 0x03}, - {0xea, 0x85}, - {0xeb, 0x03}, - {0xec, 0x90}, - {0xed, 0x03}, - {0xee, 0xcb}, - {0xef, 0x00}, - {0xf0, 0xbb}, - {0xf1, 0x00}, - {0xf2, 0xc0}, - {0xf3, 0x00}, - {0xf4, 0xcc}, - {0xf5, 0x00}, - {0xf6, 0xd6}, - {0xf7, 0x00}, - {0xf8, 0xe1}, - {0xf9, 0x00}, - {0xfa, 0xea}, + {0xfb, {0x01}, 0x01}, + {0x75, {0x00}, 0x01}, + {0x76, {0xdf}, 0x01}, + {0x77, {0x00}, 0x01}, + {0x78, {0xe4}, 0x01}, + {0x79, {0x00}, 0x01}, + {0x7a, {0xed}, 0x01}, + {0x7b, {0x00}, 0x01}, + {0x7c, {0xf6}, 0x01}, + {0x7d, {0x00}, 0x01}, + {0x7e, {0xff}, 0x01}, + {0x7f, {0x01}, 0x01}, + {0x80, {0x07}, 0x01}, + {0x81, {0x01}, 0x01}, + {0x82, {0x10}, 0x01}, + {0x83, {0x01}, 0x01}, + {0x84, {0x18}, 0x01}, + {0x85, {0x01}, 0x01}, + {0x86, {0x20}, 0x01}, + {0x87, {0x01}, 0x01}, + {0x88, {0x3d}, 0x01}, + {0x89, {0x01}, 0x01}, + {0x8a, {0x56}, 0x01}, + {0x8b, {0x01}, 0x01}, + {0x8c, {0x84}, 0x01}, + {0x8d, {0x01}, 0x01}, + {0x8e, {0xab}, 0x01}, + {0x8f, {0x01}, 0x01}, + {0x90, {0xec}, 0x01}, + {0x91, {0x02}, 0x01}, + {0x92, {0x22}, 0x01}, + {0x93, {0x02}, 0x01}, + {0x94, {0x23}, 0x01}, + {0x95, {0x02}, 0x01}, + {0x96, {0x55}, 0x01}, + {0x97, {0x02}, 0x01}, + {0x98, {0x8b}, 0x01}, + {0x99, {0x02}, 0x01}, + {0x9a, {0xaf}, 0x01}, + {0x9b, {0x02}, 0x01}, + {0x9c, {0xdf}, 0x01}, + {0x9d, {0x03}, 0x01}, + {0x9e, {0x01}, 0x01}, + {0x9f, {0x03}, 0x01}, + {0xa0, {0x2c}, 0x01}, + {0xa2, {0x03}, 0x01}, + {0xa3, {0x39}, 0x01}, + {0xa4, {0x03}, 0x01}, + {0xa5, {0x47}, 0x01}, + {0xa6, {0x03}, 0x01}, + {0xa7, {0x56}, 0x01}, + {0xa9, {0x03}, 0x01}, + {0xaa, {0x66}, 0x01}, + {0xab, {0x03}, 0x01}, + {0xac, {0x76}, 0x01}, + {0xad, {0x03}, 0x01}, + {0xae, {0x85}, 0x01}, + {0xaf, {0x03}, 0x01}, + {0xb0, {0x90}, 0x01}, + {0xb1, {0x03}, 0x01}, + {0xb2, {0xcb}, 0x01}, + {0xb3, {0x00}, 0x01}, + {0xb4, {0xdf}, 0x01}, + {0xb5, {0x00}, 0x01}, + {0xb6, {0xe4}, 0x01}, + {0xb7, {0x00}, 0x01}, + {0xb8, {0xed}, 0x01}, + {0xb9, {0x00}, 0x01}, + {0xba, {0xf6}, 0x01}, + {0xbb, {0x00}, 0x01}, + {0xbc, {0xff}, 0x01}, + {0xbd, {0x01}, 0x01}, + {0xbe, {0x07}, 0x01}, + {0xbf, {0x01}, 0x01}, + {0xc0, {0x10}, 0x01}, + {0xc1, {0x01}, 0x01}, + {0xc2, {0x18}, 0x01}, + {0xc3, {0x01}, 0x01}, + {0xc4, {0x20}, 0x01}, + {0xc5, {0x01}, 0x01}, + {0xc6, {0x3d}, 0x01}, + {0xc7, {0x01}, 0x01}, + {0xc8, {0x56}, 0x01}, + {0xc9, {0x01}, 0x01}, + {0xca, {0x84}, 0x01}, + {0xcb, {0x01}, 0x01}, + {0xcc, {0xab}, 0x01}, + {0xcd, {0x01}, 0x01}, + {0xce, {0xec}, 0x01}, + {0xcf, {0x02}, 0x01}, + {0xd0, {0x22}, 0x01}, + {0xd1, {0x02}, 0x01}, + {0xd2, {0x23}, 0x01}, + {0xd3, {0x02}, 0x01}, + {0xd4, {0x55}, 0x01}, + {0xd5, {0x02}, 0x01}, + {0xd6, {0x8b}, 0x01}, + {0xd7, {0x02}, 0x01}, + {0xd8, {0xaf}, 0x01}, + {0xd9, {0x02}, 0x01}, + {0xda, {0xdf}, 0x01}, + {0xdb, {0x03}, 0x01}, + {0xdc, {0x01}, 0x01}, + {0xdd, {0x03}, 0x01}, + {0xde, {0x2c}, 0x01}, + {0xdf, {0x03}, 0x01}, + {0xe0, {0x39}, 0x01}, + {0xe1, {0x03}, 0x01}, + {0xe2, {0x47}, 0x01}, + {0xe3, {0x03}, 0x01}, + {0xe4, {0x56}, 0x01}, + {0xe5, {0x03}, 0x01}, + {0xe6, {0x66}, 0x01}, + {0xe7, {0x03}, 0x01}, + {0xe8, {0x76}, 0x01}, + {0xe9, {0x03}, 0x01}, + {0xea, {0x85}, 0x01}, + {0xeb, {0x03}, 0x01}, + {0xec, {0x90}, 0x01}, + {0xed, {0x03}, 0x01}, + {0xee, {0xcb}, 0x01}, + {0xef, {0x00}, 0x01}, + {0xf0, {0xbb}, 0x01}, + {0xf1, {0x00}, 0x01}, + {0xf2, {0xc0}, 0x01}, + {0xf3, {0x00}, 0x01}, + {0xf4, {0xcc}, 0x01}, + {0xf5, {0x00}, 0x01}, + {0xf6, {0xd6}, 0x01}, + {0xf7, {0x00}, 0x01}, + {0xf8, {0xe1}, 0x01}, + {0xf9, {0x00}, 0x01}, + {0xfa, {0xea}, 0x01}, /* Select CMD2 Page2 (Undocumented) */ - {0xff, 0x02}, + {0xff, {0x02}, 0x01}, /* Reload CMD1: Don't reload default value to register */ - {0xfb, 0x01}, - {0x00, 0x00}, - {0x01, 0xf4}, - {0x02, 0x00}, - {0x03, 0xef}, - {0x04, 0x01}, - {0x05, 0x07}, - {0x06, 0x01}, - {0x07, 0x28}, - {0x08, 0x01}, - {0x09, 0x44}, - {0x0a, 0x01}, - {0x0b, 0x76}, - {0x0c, 0x01}, - {0x0d, 0xa0}, - {0x0e, 0x01}, - {0x0f, 0xe7}, - {0x10, 0x02}, - {0x11, 0x1f}, - {0x12, 0x02}, - {0x13, 0x22}, - {0x14, 0x02}, - {0x15, 0x54}, - {0x16, 0x02}, - {0x17, 0x8b}, - {0x18, 0x02}, - {0x19, 0xaf}, - {0x1a, 0x02}, - {0x1b, 0xe0}, - {0x1c, 0x03}, - {0x1d, 0x01}, - {0x1e, 0x03}, - {0x1f, 0x2d}, - {0x20, 0x03}, - {0x21, 0x39}, - {0x22, 0x03}, - {0x23, 0x47}, - {0x24, 0x03}, - {0x25, 0x57}, - {0x26, 0x03}, - {0x27, 0x65}, - {0x28, 0x03}, - {0x29, 0x77}, - {0x2a, 0x03}, - {0x2b, 0x85}, - {0x2d, 0x03}, - {0x2f, 0x8f}, - {0x30, 0x03}, - {0x31, 0xcb}, - {0x32, 0x00}, - {0x33, 0xbb}, - {0x34, 0x00}, - {0x35, 0xc0}, - {0x36, 0x00}, - {0x37, 0xcc}, - {0x38, 0x00}, - {0x39, 0xd6}, - {0x3a, 0x00}, - {0x3b, 0xe1}, - {0x3d, 0x00}, - {0x3f, 0xea}, - {0x40, 0x00}, - {0x41, 0xf4}, - {0x42, 0x00}, - {0x43, 0xfe}, - {0x44, 0x01}, - {0x45, 0x07}, - {0x46, 0x01}, - {0x47, 0x28}, - {0x48, 0x01}, - {0x49, 0x44}, - {0x4a, 0x01}, - {0x4b, 0x76}, - {0x4c, 0x01}, - {0x4d, 0xa0}, - {0x4e, 0x01}, - {0x4f, 0xe7}, - {0x50, 0x02}, - {0x51, 0x1f}, - {0x52, 0x02}, - {0x53, 0x22}, - {0x54, 0x02}, - {0x55, 0x54}, - {0x56, 0x02}, - {0x58, 0x8b}, - {0x59, 0x02}, - {0x5a, 0xaf}, - {0x5b, 0x02}, - {0x5c, 0xe0}, - {0x5d, 0x03}, - {0x5e, 0x01}, - {0x5f, 0x03}, - {0x60, 0x2d}, - {0x61, 0x03}, - {0x62, 0x39}, - {0x63, 0x03}, - {0x64, 0x47}, - {0x65, 0x03}, - {0x66, 0x57}, - {0x67, 0x03}, - {0x68, 0x65}, - {0x69, 0x03}, - {0x6a, 0x77}, - {0x6b, 0x03}, - {0x6c, 0x85}, - {0x6d, 0x03}, - {0x6e, 0x8f}, - {0x6f, 0x03}, - {0x70, 0xcb}, - {0x71, 0x00}, - {0x72, 0x00}, - {0x73, 0x00}, - {0x74, 0x21}, - {0x75, 0x00}, - {0x76, 0x4c}, - {0x77, 0x00}, - {0x78, 0x6b}, - {0x79, 0x00}, - {0x7a, 0x85}, - {0x7b, 0x00}, - {0x7c, 0x9a}, - {0x7d, 0x00}, - {0x7e, 0xad}, - {0x7f, 0x00}, - {0x80, 0xbe}, - {0x81, 0x00}, - {0x82, 0xcd}, - {0x83, 0x01}, - {0x84, 0x01}, - {0x85, 0x01}, - {0x86, 0x29}, - {0x87, 0x01}, - {0x88, 0x68}, - {0x89, 0x01}, - {0x8a, 0x98}, - {0x8b, 0x01}, - {0x8c, 0xe5}, - {0x8d, 0x02}, - {0x8e, 0x1e}, - {0x8f, 0x02}, - {0x90, 0x30}, - {0x91, 0x02}, - {0x92, 0x52}, - {0x93, 0x02}, - {0x94, 0x88}, - {0x95, 0x02}, - {0x96, 0xaa}, - {0x97, 0x02}, - {0x98, 0xd7}, - {0x99, 0x02}, - {0x9a, 0xf7}, - {0x9b, 0x03}, - {0x9c, 0x21}, - {0x9d, 0x03}, - {0x9e, 0x2e}, - {0x9f, 0x03}, - {0xa0, 0x3d}, - {0xa2, 0x03}, - {0xa3, 0x4c}, - {0xa4, 0x03}, - {0xa5, 0x5e}, - {0xa6, 0x03}, - {0xa7, 0x71}, - {0xa9, 0x03}, - {0xaa, 0x86}, - {0xab, 0x03}, - {0xac, 0x94}, - {0xad, 0x03}, - {0xae, 0xfa}, - {0xaf, 0x00}, - {0xb0, 0x00}, - {0xb1, 0x00}, - {0xb2, 0x21}, - {0xb3, 0x00}, - {0xb4, 0x4c}, - {0xb5, 0x00}, - {0xb6, 0x6b}, - {0xb7, 0x00}, - {0xb8, 0x85}, - {0xb9, 0x00}, - {0xba, 0x9a}, - {0xbb, 0x00}, - {0xbc, 0xad}, - {0xbd, 0x00}, - {0xbe, 0xbe}, - {0xbf, 0x00}, - {0xc0, 0xcd}, - {0xc1, 0x01}, - {0xc2, 0x01}, - {0xc3, 0x01}, - {0xc4, 0x29}, - {0xc5, 0x01}, - {0xc6, 0x68}, - {0xc7, 0x01}, - {0xc8, 0x98}, - {0xc9, 0x01}, - {0xca, 0xe5}, - {0xcb, 0x02}, - {0xcc, 0x1e}, - {0xcd, 0x02}, - {0xce, 0x20}, - {0xcf, 0x02}, - {0xd0, 0x52}, - {0xd1, 0x02}, - {0xd2, 0x88}, - {0xd3, 0x02}, - {0xd4, 0xaa}, - {0xd5, 0x02}, - {0xd6, 0xd7}, - {0xd7, 0x02}, - {0xd8, 0xf7}, - {0xd9, 0x03}, - {0xda, 0x21}, - {0xdb, 0x03}, - {0xdc, 0x2e}, - {0xdd, 0x03}, - {0xde, 0x3d}, - {0xdf, 0x03}, - {0xe0, 0x4c}, - {0xe1, 0x03}, - {0xe2, 0x5e}, - {0xe3, 0x03}, - {0xe4, 0x71}, - {0xe5, 0x03}, - {0xe6, 0x86}, - {0xe7, 0x03}, - {0xe8, 0x94}, - {0xe9, 0x03}, - {0xea, 0xfa}, + {0xfb, {0x01}, 0x01}, + {0x00, {0x00}, 0x01}, + {0x01, {0xf4}, 0x01}, + {0x02, {0x00}, 0x01}, + {0x03, {0xef}, 0x01}, + {0x04, {0x01}, 0x01}, + {0x05, {0x07}, 0x01}, + {0x06, {0x01}, 0x01}, + {0x07, {0x28}, 0x01}, + {0x08, {0x01}, 0x01}, + {0x09, {0x44}, 0x01}, + {0x0a, {0x01}, 0x01}, + {0x0b, {0x76}, 0x01}, + {0x0c, {0x01}, 0x01}, + {0x0d, {0xa0}, 0x01}, + {0x0e, {0x01}, 0x01}, + {0x0f, {0xe7}, 0x01}, + {0x10, {0x02}, 0x01}, + {0x11, {0x1f}, 0x01}, + {0x12, {0x02}, 0x01}, + {0x13, {0x22}, 0x01}, + {0x14, {0x02}, 0x01}, + {0x15, {0x54}, 0x01}, + {0x16, {0x02}, 0x01}, + {0x17, {0x8b}, 0x01}, + {0x18, {0x02}, 0x01}, + {0x19, {0xaf}, 0x01}, + {0x1a, {0x02}, 0x01}, + {0x1b, {0xe0}, 0x01}, + {0x1c, {0x03}, 0x01}, + {0x1d, {0x01}, 0x01}, + {0x1e, {0x03}, 0x01}, + {0x1f, {0x2d}, 0x01}, + {0x20, {0x03}, 0x01}, + {0x21, {0x39}, 0x01}, + {0x22, {0x03}, 0x01}, + {0x23, {0x47}, 0x01}, + {0x24, {0x03}, 0x01}, + {0x25, {0x57}, 0x01}, + {0x26, {0x03}, 0x01}, + {0x27, {0x65}, 0x01}, + {0x28, {0x03}, 0x01}, + {0x29, {0x77}, 0x01}, + {0x2a, {0x03}, 0x01}, + {0x2b, {0x85}, 0x01}, + {0x2d, {0x03}, 0x01}, + {0x2f, {0x8f}, 0x01}, + {0x30, {0x03}, 0x01}, + {0x31, {0xcb}, 0x01}, + {0x32, {0x00}, 0x01}, + {0x33, {0xbb}, 0x01}, + {0x34, {0x00}, 0x01}, + {0x35, {0xc0}, 0x01}, + {0x36, {0x00}, 0x01}, + {0x37, {0xcc}, 0x01}, + {0x38, {0x00}, 0x01}, + {0x39, {0xd6}, 0x01}, + {0x3a, {0x00}, 0x01}, + {0x3b, {0xe1}, 0x01}, + {0x3d, {0x00}, 0x01}, + {0x3f, {0xea}, 0x01}, + {0x40, {0x00}, 0x01}, + {0x41, {0xf4}, 0x01}, + {0x42, {0x00}, 0x01}, + {0x43, {0xfe}, 0x01}, + {0x44, {0x01}, 0x01}, + {0x45, {0x07}, 0x01}, + {0x46, {0x01}, 0x01}, + {0x47, {0x28}, 0x01}, + {0x48, {0x01}, 0x01}, + {0x49, {0x44}, 0x01}, + {0x4a, {0x01}, 0x01}, + {0x4b, {0x76}, 0x01}, + {0x4c, {0x01}, 0x01}, + {0x4d, {0xa0}, 0x01}, + {0x4e, {0x01}, 0x01}, + {0x4f, {0xe7}, 0x01}, + {0x50, {0x02}, 0x01}, + {0x51, {0x1f}, 0x01}, + {0x52, {0x02}, 0x01}, + {0x53, {0x22}, 0x01}, + {0x54, {0x02}, 0x01}, + {0x55, {0x54}, 0x01}, + {0x56, {0x02}, 0x01}, + {0x58, {0x8b}, 0x01}, + {0x59, {0x02}, 0x01}, + {0x5a, {0xaf}, 0x01}, + {0x5b, {0x02}, 0x01}, + {0x5c, {0xe0}, 0x01}, + {0x5d, {0x03}, 0x01}, + {0x5e, {0x01}, 0x01}, + {0x5f, {0x03}, 0x01}, + {0x60, {0x2d}, 0x01}, + {0x61, {0x03}, 0x01}, + {0x62, {0x39}, 0x01}, + {0x63, {0x03}, 0x01}, + {0x64, {0x47}, 0x01}, + {0x65, {0x03}, 0x01}, + {0x66, {0x57}, 0x01}, + {0x67, {0x03}, 0x01}, + {0x68, {0x65}, 0x01}, + {0x69, {0x03}, 0x01}, + {0x6a, {0x77}, 0x01}, + {0x6b, {0x03}, 0x01}, + {0x6c, {0x85}, 0x01}, + {0x6d, {0x03}, 0x01}, + {0x6e, {0x8f}, 0x01}, + {0x6f, {0x03}, 0x01}, + {0x70, {0xcb}, 0x01}, + {0x71, {0x00}, 0x01}, + {0x72, {0x00}, 0x01}, + {0x73, {0x00}, 0x01}, + {0x74, {0x21}, 0x01}, + {0x75, {0x00}, 0x01}, + {0x76, {0x4c}, 0x01}, + {0x77, {0x00}, 0x01}, + {0x78, {0x6b}, 0x01}, + {0x79, {0x00}, 0x01}, + {0x7a, {0x85}, 0x01}, + {0x7b, {0x00}, 0x01}, + {0x7c, {0x9a}, 0x01}, + {0x7d, {0x00}, 0x01}, + {0x7e, {0xad}, 0x01}, + {0x7f, {0x00}, 0x01}, + {0x80, {0xbe}, 0x01}, + {0x81, {0x00}, 0x01}, + {0x82, {0xcd}, 0x01}, + {0x83, {0x01}, 0x01}, + {0x84, {0x01}, 0x01}, + {0x85, {0x01}, 0x01}, + {0x86, {0x29}, 0x01}, + {0x87, {0x01}, 0x01}, + {0x88, {0x68}, 0x01}, + {0x89, {0x01}, 0x01}, + {0x8a, {0x98}, 0x01}, + {0x8b, {0x01}, 0x01}, + {0x8c, {0xe5}, 0x01}, + {0x8d, {0x02}, 0x01}, + {0x8e, {0x1e}, 0x01}, + {0x8f, {0x02}, 0x01}, + {0x90, {0x30}, 0x01}, + {0x91, {0x02}, 0x01}, + {0x92, {0x52}, 0x01}, + {0x93, {0x02}, 0x01}, + {0x94, {0x88}, 0x01}, + {0x95, {0x02}, 0x01}, + {0x96, {0xaa}, 0x01}, + {0x97, {0x02}, 0x01}, + {0x98, {0xd7}, 0x01}, + {0x99, {0x02}, 0x01}, + {0x9a, {0xf7}, 0x01}, + {0x9b, {0x03}, 0x01}, + {0x9c, {0x21}, 0x01}, + {0x9d, {0x03}, 0x01}, + {0x9e, {0x2e}, 0x01}, + {0x9f, {0x03}, 0x01}, + {0xa0, {0x3d}, 0x01}, + {0xa2, {0x03}, 0x01}, + {0xa3, {0x4c}, 0x01}, + {0xa4, {0x03}, 0x01}, + {0xa5, {0x5e}, 0x01}, + {0xa6, {0x03}, 0x01}, + {0xa7, {0x71}, 0x01}, + {0xa9, {0x03}, 0x01}, + {0xaa, {0x86}, 0x01}, + {0xab, {0x03}, 0x01}, + {0xac, {0x94}, 0x01}, + {0xad, {0x03}, 0x01}, + {0xae, {0xfa}, 0x01}, + {0xaf, {0x00}, 0x01}, + {0xb0, {0x00}, 0x01}, + {0xb1, {0x00}, 0x01}, + {0xb2, {0x21}, 0x01}, + {0xb3, {0x00}, 0x01}, + {0xb4, {0x4c}, 0x01}, + {0xb5, {0x00}, 0x01}, + {0xb6, {0x6b}, 0x01}, + {0xb7, {0x00}, 0x01}, + {0xb8, {0x85}, 0x01}, + {0xb9, {0x00}, 0x01}, + {0xba, {0x9a}, 0x01}, + {0xbb, {0x00}, 0x01}, + {0xbc, {0xad}, 0x01}, + {0xbd, {0x00}, 0x01}, + {0xbe, {0xbe}, 0x01}, + {0xbf, {0x00}, 0x01}, + {0xc0, {0xcd}, 0x01}, + {0xc1, {0x01}, 0x01}, + {0xc2, {0x01}, 0x01}, + {0xc3, {0x01}, 0x01}, + {0xc4, {0x29}, 0x01}, + {0xc5, {0x01}, 0x01}, + {0xc6, {0x68}, 0x01}, + {0xc7, {0x01}, 0x01}, + {0xc8, {0x98}, 0x01}, + {0xc9, {0x01}, 0x01}, + {0xca, {0xe5}, 0x01}, + {0xcb, {0x02}, 0x01}, + {0xcc, {0x1e}, 0x01}, + {0xcd, {0x02}, 0x01}, + {0xce, {0x20}, 0x01}, + {0xcf, {0x02}, 0x01}, + {0xd0, {0x52}, 0x01}, + {0xd1, {0x02}, 0x01}, + {0xd2, {0x88}, 0x01}, + {0xd3, {0x02}, 0x01}, + {0xd4, {0xaa}, 0x01}, + {0xd5, {0x02}, 0x01}, + {0xd6, {0xd7}, 0x01}, + {0xd7, {0x02}, 0x01}, + {0xd8, {0xf7}, 0x01}, + {0xd9, {0x03}, 0x01}, + {0xda, {0x21}, 0x01}, + {0xdb, {0x03}, 0x01}, + {0xdc, {0x2e}, 0x01}, + {0xdd, {0x03}, 0x01}, + {0xde, {0x3d}, 0x01}, + {0xdf, {0x03}, 0x01}, + {0xe0, {0x4c}, 0x01}, + {0xe1, {0x03}, 0x01}, + {0xe2, {0x5e}, 0x01}, + {0xe3, {0x03}, 0x01}, + {0xe4, {0x71}, 0x01}, + {0xe5, {0x03}, 0x01}, + {0xe6, {0x86}, 0x01}, + {0xe7, {0x03}, 0x01}, + {0xe8, {0x94}, 0x01}, + {0xe9, {0x03}, 0x01}, + {0xea, {0xfa}, 0x01}, /* Select CMD2 Page0 (Undocumented) */ - {0xff, 0x01}, + {0xff, {0x01}, 0x01}, /* Reload CMD1: Don't reload default value to register */ - {0xfb, 0x01}, + {0xfb, {0x01}, 0x01}, /* Select CMD2 Page1 (Undocumented) */ - {0xff, 0x02}, + {0xff, {0x02}, 0x01}, /* Reload CMD1: Don't reload default value to register */ - {0xfb, 0x01}, + {0xfb, {0x01}, 0x01}, /* Select CMD2 Page3 (Undocumented) */ - {0xff, 0x04}, + {0xff, {0x04}, 0x01}, /* Reload CMD1: Don't reload default value to register */ - {0xfb, 0x01}, + {0xfb, {0x01}, 0x01}, /* Select CMD1 */ - {0xff, 0x00}, - {0xd3, 0x22}, /* RGBMIPICTRL: VSYNC back porch =3D 34 */ - {0xd4, 0x04}, /* RGBMIPICTRL: VSYNC front porch =3D 4 */ + {0xff, {0x00}, 0x01}, + {0xd3, {0x22}, 0x01}, /* RGBMIPICTRL: VSYNC back porch =3D 34 */ + {0xd4, {0x04}, 0x01}, /* RGBMIPICTRL: VSYNC front porch =3D 4 */ +}; + +struct khadas_ts050_panel_data ts050_panel_data =3D { + .init_code =3D (struct khadas_ts050_panel_cmd *)ts050_init_code, + .len =3D ARRAY_SIZE(ts050_init_code) +}; + +struct khadas_ts050_panel_data ts050v2_panel_data =3D { + .init_code =3D (struct khadas_ts050_panel_cmd *)ts050v2_init_code, + .len =3D ARRAY_SIZE(ts050v2_init_code) }; =20 static inline @@ -613,10 +671,11 @@ static int khadas_ts050_panel_prepare(struct drm_pane= l *panel) =20 msleep(100); =20 - for (i =3D 0; i < ARRAY_SIZE(init_code); i++) { + for (i =3D 0; i < khadas_ts050->panel_data->len; i++) { err =3D mipi_dsi_dcs_write(khadas_ts050->link, - init_code[i].cmd, - &init_code[i].data, 1); + khadas_ts050->panel_data->init_code[i].cmd, + &khadas_ts050->panel_data->init_code[i].data, + khadas_ts050->panel_data->init_code[i].size); if (err < 0) { dev_err(panel->dev, "failed write cmds: %d\n", err); goto poweroff; @@ -762,7 +821,8 @@ static const struct drm_panel_funcs khadas_ts050_panel_= funcs =3D { }; =20 static const struct of_device_id khadas_ts050_of_match[] =3D { - { .compatible =3D "khadas,ts050", }, + { .compatible =3D "khadas,ts050", .data =3D &ts050_panel_data, }, + { .compatible =3D "khadas,ts050v2", .data =3D &ts050v2_panel_data, }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, khadas_ts050_of_match); @@ -806,6 +866,13 @@ static int khadas_ts050_panel_probe(struct mipi_dsi_de= vice *dsi) struct khadas_ts050_panel *khadas_ts050; int err; =20 + const void *data =3D of_device_get_match_data(&dsi->dev); + + if (!data) { + dev_err(&dsi->dev, "No matching data\n"); + return -ENODEV; + } + dsi->lanes =3D 4; dsi->format =3D MIPI_DSI_FMT_RGB888; dsi->mode_flags =3D MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | @@ -816,6 +883,7 @@ static int khadas_ts050_panel_probe(struct mipi_dsi_dev= ice *dsi) if (!khadas_ts050) return -ENOMEM; =20 + khadas_ts050->panel_data =3D (struct khadas_ts050_panel_data *)data; mipi_dsi_set_drvdata(dsi, khadas_ts050); khadas_ts050->link =3D dsi; =20 --=20 2.34.1