From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id AD742C43458 for ; Wed, 1 Jul 2026 16:47:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=iOTak8iqrUDbNPKTudr69+DQWuBufDGVsilUXFEqhBA=; b=nwob/DHW2PJgKI wWbuHbADAdoFl+/FT0hsZI4hL9K7n7KfVJz7rwymD7eqJ3jDQrjq8qQlj9TpKdts9oKc+28lP9EmM Phmhza1+qokWqhwIhmP4WtthHB8dAlgpdxQRe6WIfpZx882qVKlmzasvxb24WFbd0Ol/ro5+f8tdx nLDwd3HumcsnIzEJz+ghN1GKRIEiM0GSb76RYV94mRYx/IzwhhgrWa0sa5FHMep2nMo3WuY6LZFnU 1u9YIZ18EA2rsoMOWOIlJNclHRHNU2SdnqkoIERJRHUk0a78NLOp7soctOnAwQXl+Kp2ESz/Tl3GO B3bSNKFKbyFxbevLH3bg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wey6M-00000002aAm-1cZM; Wed, 01 Jul 2026 16:47:54 +0000 Received: from mail-pj2-x01.google.com ([2607:f8b0:4864:39::1]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wey6J-00000002a98-2nLT for linux-rockchip@lists.infradead.org; Wed, 01 Jul 2026 16:47:53 +0000 Received: by mail-pj2-x01.google.com with SMTP id d9443c01a7336-2c9a234aff2so2632975ad.0 for ; Wed, 01 Jul 2026 09:47:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782924471; x=1783529271; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hRw0FI9bpUOV+HOa7TQnNqvNU27UtPNavUppWgekvS8=; b=EaaoaftXAjWah/lt9t+lC2IS2SB/L8nD4j0dcev9z/WbrwDj0dy2uAGGbHFTtzpVae vMFTslxVD3VLBmOkgjwiuWOBaCxscNiF1sa1nci5d5KOZLpgAf87jEmc87zYbHauCaj0 oBsIejff73ugItOdP0ahqa/9cY9PgrttuVfGheVtojSSP9L2D/LNMKm+Nz9yaUK8hvJe nVKKy7nYNm4IkTXMJ297I4tN4/VaoZH73ju1GunJpXFIo0zCAL3FSvGMsfDsoatidP9I 9rLcSzqxNgbtISk3wcGs3HzDqlSMNN7Wq1IgE5HdUvjE84kQ6Xh1J+bMRdT4sTy92T5i A7yg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782924471; x=1783529271; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=hRw0FI9bpUOV+HOa7TQnNqvNU27UtPNavUppWgekvS8=; b=TnO17VMH0nEaNx0LPqxxLjP3mxat0xS0KLOYR9gc88RgOwNpBNGEmgq+guHzCL8SfS MjVy5VcSnhsbT/JH18VbN2jZnq4jJd6dlqdmS/kCX9G6/DldBzNlAJubX4ki9d0PB9OQ Tr9/Kut0HWa/1tDN1zeHYHH7ENeRQi/7D++NmHQcumJ1O7OWT2jxGAIRB7jwKp1vMrJT bhCZwifcQ4lc8acztS6Kllq92y/q2bSo9S/JZcnoiY5X1wVmdNODzl5kVryfwcUpcFKU 5hMqBy2zaY/gG2CL83YW0If5ekrSa/XzNlcqwJcwfCYFQ70DOl3TZo+HY7Yu7tnWzfvQ YKOA== X-Forwarded-Encrypted: i=1; AHgh+Rrq9BTNxiCBEQTSY8ytKyF2WROo6tfXA2JAIJeK99HFsxodwu/k/34UR21l5E6LwcfTTuXj30+a75lzRm1n1w==@lists.infradead.org X-Gm-Message-State: AOJu0Yz78o1PetyAeydKFHFf0MSFBCR/JLNSG3jdRO8632hGc+I0NAeL KyoD70K5kxCeH2UJqd9CCG4g6SHM7S/IGl63+jFMpRtbEJ1AF3Cg9p7J X-Gm-Gg: AfdE7ckZWFrLFAFt/z9aBbu+hysh5LOT9ON2rAr63ifdr191/+6Z7YM4L6hScK4SdAW 4DyWsMaXw8jgRA24pq8LmO1LahzoHB0DPUnzGgbo15lzcaGEffgISpNxKAzSfUr1/u6TLe/8YCs XGZ9MdPd7Jouy8ir9sinTAImBzgHOejXwi9lQUCbtNLek2EsjimEubAK1Stmr/DlJ4QjcdfbTBL eHvJDnE9zO1eW6x1jiJ46PtCZLn4gD83aehlzmQZIXk5lk/EyK0qG9V8DOkM5lpe+IusiEDDJA/ 8jTdtG1qbUZ7y0yDdqX3jtnuuoAUzOFlAwFrgYgM1WacqWpyiIIHPjea029ADeXiPsJyDs8DbAv 1ysMi4JvvSXsJI3cRxCV+XqnRyKldQ+to4LWRHnz5qYCPK0lZ35mXJztgBdvXrc/cOoT2/PGYSQ Rglk/to+M5SN0= X-Received: by 2002:a17:902:ea08:b0:2c8:248a:5dbb with SMTP id d9443c01a7336-2ca7e67fcd9mr28093415ad.7.1782924470701; Wed, 01 Jul 2026 09:47:50 -0700 (PDT) Received: from server.lan ([150.230.217.250]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ca9a911f4csm985015ad.29.2026.07.01.09.47.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Jul 2026 09:47:50 -0700 (PDT) From: Coia Prant To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner , Dragan Simic , Jonas Karlman Cc: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Coia Prant Subject: [PATCH v3 3/3] arm64: dts: rockchip: Add devicetree for the Graperain G3568 v2 Date: Thu, 2 Jul 2026 00:45:47 +0800 Message-ID: <20260701164543.3967388-9-coiaprant@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260701164543.3967388-3-coiaprant@gmail.com> References: <20260701164543.3967388-3-coiaprant@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260701_094751_733825_D2809289 X-CRM114-Status: GOOD ( 15.54 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org VGhlIEdyYXBlcmFpbiBHMzU2OCB2MiBpcyBhbiBSSzM1NjgtYmFzZWQgZGV2ZWxvcG1lbnQgYm9h cmQsIGp1c3QgbGlrZQp0aGUgUkszNTY4LUVWQi4KSXQgYWx3YXlzIHVzZXMgc29sZGVyZWQgY29u bmVjdGlvbnMgYmV0d2VlbiB0aGUgR1IzNTY4Q1YyIGNvcmUgYm9hcmQgYW5kCnRoZSBSSzM1NjhC VjIvR1IzNTY4QlYyIEkvTyBib2FyZC4KClRoZSBHMzU2OCBib2FyZCBoYXMgbXVsdGlwbGUgaGFy ZHdhcmUgcmV2aXNpb25zLCBhbmQgd2UgY3VycmVudGx5CnN1cHBvcnQgdjIgKEkvTyBib2FyZCku CgpTcGVjaWZpY2F0aW9uOgotIFNvQzogUm9ja0NoaXAgUkszNTY4IEFSTTY0ICg0IGNvcmVzKQot IGVNTUM6IDE2LTEyOCBHQgotIFJBTTogMi0xNiBHQgotIFBvd2VyOiBEQyAxMlYgMkEKLSBFdGhl cm5ldDogMnggUlRMODIxMUYgUkdNSUkgKDEwLzEwMC8xMDAwIE1icHMpCi0gV2lyZWxlc3MgcmFk aW86IDgwMi4xMWIvZy9uL2FjIGR1YWwtYmFuZAotIExFRDoKICBQb3dlcjogQWx3YXlzT24KICBV c2VyOiBHUElPCi0gQnV0dG9uOgogIEVTQzogU0FSQURDLzAgPDExMDBrIMK1Vj4KICBNRU5VOiBT QVJBREMvMCA8MTQwMGsgwrVWPgogIFZPTC06IFNBUkFEQy8wIDw0MzBrIMK1Vj4KICBWT0wrOiBT QVJBREMvMCA8NTBrIMK1Vj4KICBQb3dlci9SZXNldDogUE1JQyBSSzgwOQotIENBTgogIENBTi8x OiA0LXBpbiAoUEggMi4wKQotIFBXTQogIFBXTS80OiBCYWNrbGlnaHQKICBQV00vNTogQmFja2xp Z2h0CiAgUFdNLzc6IElSIFJlY2VpdmVyCi0gVUFSVDoKICBVQVJULzI6IERlYnVnIFRUTCAtIDE1 MDAwMDAgOE4xICgxLjI1bW0pCiAgVUFSVC8zOiBUVEwgKFBIIDIuMCkKICBVQVJULzQ6IFRUTCAo UEggMi4wKQogIFVBUlQvODogQVA2MzU2UyBCbHVldG9vdGgKICBVQVJULzk6IFRUTCAoUEggMi4w KQotIEkyQzoKICBJMkMvMDogUE1JQyBSSzgwOQogIEkyQy8xOiBUb3VjaHNjcmVlbgogIEkyQy80 OiBDYW1lcmEKICBJMkMvNTogUlRDQDUxIFBDRjg1NjMKLSBJMlM6CiAgSTJTLzA6IEhETUkgU291 bmQKICBJMlMvMTogUks4MDkgQXVkaW8gQ29kZWMKICBJMlMvMzogQVA2MzU2UyBCbHVldG9vdGgg U291bmQKLSBTRE1NQzoKICBTRE1NQy8wOiBtaWNyb1NEIChURikgc2xvdAogIFNETU1DLzI6IEFQ NjM1NlMgU0RJTyBXaUZpIGNhcmQKLSBDYW1lcmE6IDF4IENTSQotIFZpZGVvOiBIRE1JIC8gRFNJ MCAoTUlQSS9MVkRTKSAvIERTSTEgKE1JUEkvRURQKQotIEF1ZGlvOiBIRE1JIC8gTUlDIC8gU3Bl YWtlciAvIFNQRElGIC8gMy41bW0gSGVhZHBob25lcyAvIEFQNjM1NlMgQmx1ZXRvb3RoCi0gVVNC OgogIFVTQiAyLjAgSE9TVCB4MgogIFVTQiAyLjAgT1RHIHgxIChzaGFyZWQgd2l0aCBVU0IgMy4w IE9URy9IT1NUKQogIFVTQiAzLjAgSE9TVCB4MQogIFVTQiAzLjAgT1RHL0hPU1QgeDEKLSBTQVRB OiAxeCBTQVRBIDMuMCB3aXRoIFBvd2VyLzQtcGluCi0gUENJZTogMXggUENJZSAzLjAgeDIgKHg0 IGNvbm5lY3RvcikKCkxpbms6Ci0gaHR0cHM6Ly9pbWFnZS5jaHVrb3VwbHVzLmNvbS91cGxvYWQv Q18xNTMvcHJvZHVjdF9maWxlLzIwMjExMDIyLzZkYWRkZWM5ZTQwMDQ1ODgxNmRkNGM1N2JhODA3 ZmMzLnBkZgotIGh0dHBzOi8vYmxvZy5nb3YuY29va2luZy9hcmNoaXZlcy9yZXNlYXJjaC1ncmFw ZXJhaW4tZzM1NjgtdjItYW5kLWZsYXNoLmh0bWwKClNpZ25lZC1vZmYtYnk6IENvaWEgUHJhbnQg PGNvaWFwcmFudEBnbWFpbC5jb20+Ci0tLQogYXJjaC9hcm02NC9ib290L2R0cy9yb2NrY2hpcC9N YWtlZmlsZSAgICAgICAgIHwgICAxICsKIC4uLi9yb2NrY2hpcC9yazM1NjgtZ3JhcGVyYWluLWcz NTY4LXYyLmR0cyAgICB8IDkzMSArKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwg OTMyIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybTY0L2Jvb3QvZHRz L3JvY2tjaGlwL3JrMzU2OC1ncmFwZXJhaW4tZzM1NjgtdjIuZHRzCgpkaWZmIC0tZ2l0IGEvYXJj aC9hcm02NC9ib290L2R0cy9yb2NrY2hpcC9NYWtlZmlsZSBiL2FyY2gvYXJtNjQvYm9vdC9kdHMv cm9ja2NoaXAvTWFrZWZpbGUKaW5kZXggNzYxZDgyYjRmNGYyYS4uNmU5ZDA0OWU4ZGRhZiAxMDA2 NDQKLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9yb2NrY2hpcC9NYWtlZmlsZQorKysgYi9hcmNo L2FybTY0L2Jvb3QvZHRzL3JvY2tjaGlwL01ha2VmaWxlCkBAIC0xNDQsNiArMTQ0LDcgQEAgZHRi LSQoQ09ORklHX0FSQ0hfUk9DS0NISVApICs9IHJrMzU2OC1lYXNlcGktcjEuZHRiCiBkdGItJChD T05GSUdfQVJDSF9ST0NLQ0hJUCkgKz0gcmszNTY4LWV2YjEtdjEwLmR0YgogZHRiLSQoQ09ORklH X0FSQ0hfUk9DS0NISVApICs9IHJrMzU2OC1mYXN0cmhpbm8tcjY2cy5kdGIKIGR0Yi0kKENPTkZJ R19BUkNIX1JPQ0tDSElQKSArPSByazM1NjgtZmFzdHJoaW5vLXI2OHMuZHRiCitkdGItJChDT05G SUdfQVJDSF9ST0NLQ0hJUCkgKz0gcmszNTY4LWdyYXBlcmFpbi1nMzU2OC12Mi5kdGIKIGR0Yi0k KENPTkZJR19BUkNIX1JPQ0tDSElQKSArPSByazM1NjgtaGlubGluay1oNjZrLmR0YgogZHRiLSQo Q09ORklHX0FSQ0hfUk9DS0NISVApICs9IHJrMzU2OC1oaW5saW5rLWg2OGsuZHRiCiBkdGItJChD T05GSUdfQVJDSF9ST0NLQ0hJUCkgKz0gcmszNTY4LWx1YmFuY2F0LTIuZHRiCmRpZmYgLS1naXQg YS9hcmNoL2FybTY0L2Jvb3QvZHRzL3JvY2tjaGlwL3JrMzU2OC1ncmFwZXJhaW4tZzM1NjgtdjIu ZHRzIGIvYXJjaC9hcm02NC9ib290L2R0cy9yb2NrY2hpcC9yazM1NjgtZ3JhcGVyYWluLWczNTY4 LXYyLmR0cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5lZTFiYThl MTA2MTQyCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9yb2NrY2hpcC9y azM1NjgtZ3JhcGVyYWluLWczNTY4LXYyLmR0cwpAQCAtMCwwICsxLDkzMSBAQAorLy8gU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IChHUEwtMi4wKyBPUiBNSVQpCisKKy9kdHMtdjEvOworI2luY2x1 ZGUgPGR0LWJpbmRpbmdzL2dwaW8vZ3Bpby5oPgorI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2lucHV0 L2lucHV0Lmg+CisjaW5jbHVkZSA8ZHQtYmluZGluZ3MvbGVkcy9jb21tb24uaD4KKyNpbmNsdWRl IDxkdC1iaW5kaW5ncy9waW5jdHJsL3JvY2tjaGlwLmg+CisjaW5jbHVkZSA8ZHQtYmluZGluZ3Mv c29jL3JvY2tjaGlwLHZvcDIuaD4KKyNpbmNsdWRlICJyazM1NjguZHRzaSIKKworLyB7CisJbW9k ZWwgPSAiR3JhcGVyYWluIEczNTY4IHYyIjsKKwljb21wYXRpYmxlID0gImdyYXBlcmFpbixnMzU2 OC12MiIsICJyb2NrY2hpcCxyazM1NjgiOworCisJYWxpYXNlcyB7CisJCWV0aGVybmV0MCA9ICZn bWFjMDsKKwkJZXRoZXJuZXQxID0gJmdtYWMxOworCQltbWMwID0gJnNkaGNpOworCQltbWMxID0g JnNkbW1jMDsKKwkJbW1jMiA9ICZzZG1tYzI7CisJCXJ0YzAgPSAmcnRjMDsKKwl9OworCisJY2hv c2VuIHsKKwkJc3Rkb3V0LXBhdGggPSAic2VyaWFsMjoxNTAwMDAwbjgiOworCX07CisKKwlhZGMt a2V5cyB7CisJCWNvbXBhdGlibGUgPSAiYWRjLWtleXMiOworCQlpby1jaGFubmVscyA9IDwmc2Fy YWRjIDA+OworCQlpby1jaGFubmVsLW5hbWVzID0gImJ1dHRvbnMiOworCQlrZXl1cC10aHJlc2hv bGQtbWljcm92b2x0ID0gPDE4MDAwMDA+OworCQlwb2xsLWludGVydmFsID0gPDEwMD47CisKKwkJ YnV0dG9uLWVzYyB7CisJCQlsYWJlbCA9ICJlc2MiOworCQkJbGludXgsY29kZSA9IDxLRVlfRVND PjsKKwkJCXByZXNzLXRocmVzaG9sZC1taWNyb3ZvbHQgPSA8MTI1MDAwMD47CisJCX07CisKKwkJ YnV0dG9uLW1lbnUgeworCQkJbGFiZWwgPSAibWVudSI7CisJCQlsaW51eCxjb2RlID0gPEtFWV9N RU5VPjsKKwkJCXByZXNzLXRocmVzaG9sZC1taWNyb3ZvbHQgPSA8MTYwMDAwMD47CisJCX07CisK KwkJYnV0dG9uLXZvbC1kb3duIHsKKwkJCWxhYmVsID0gInZvbHVtZSBkb3duIjsKKwkJCWxpbnV4 LGNvZGUgPSA8S0VZX1ZPTFVNRURPV04+OworCQkJcHJlc3MtdGhyZXNob2xkLW1pY3Jvdm9sdCA9 IDw2MDAwMDA+OworCQl9OworCisJCWJ1dHRvbi12b2wtdXAgeworCQkJbGFiZWwgPSAidm9sdW1l IHVwIjsKKwkJCWxpbnV4LGNvZGUgPSA8S0VZX1ZPTFVNRVVQPjsKKwkJCXByZXNzLXRocmVzaG9s ZC1taWNyb3ZvbHQgPSA8MTAwMDAwPjsKKwkJfTsKKwl9OworCisJaGRtaS1jb24geworCQljb21w YXRpYmxlID0gImhkbWktY29ubmVjdG9yIjsKKwkJdHlwZSA9ICJhIjsKKworCQlwb3J0IHsKKwkJ CWhkbWlfY29uX2luOiBlbmRwb2ludCB7CisJCQkJcmVtb3RlLWVuZHBvaW50ID0gPCZoZG1pX291 dF9jb24+OworCQkJfTsKKwkJfTsKKwl9OworCisJbGVkcyB7CisJCWNvbXBhdGlibGUgPSAiZ3Bp by1sZWRzIjsKKworCQlsZWRfd29yazogbGVkLTAgeworCQkJZ3Bpb3MgPSA8JmdwaW8wIFJLX1BD MCBHUElPX0FDVElWRV9ISUdIPjsKKwkJCWZ1bmN0aW9uID0gTEVEX0ZVTkNUSU9OX0hFQVJUQkVB VDsKKwkJCWNvbG9yID0gPExFRF9DT0xPUl9JRF9CTFVFPjsKKwkJCWxpbnV4LGRlZmF1bHQtdHJp Z2dlciA9ICJoZWFydGJlYXQiOworCQkJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKKwkJCXBp bmN0cmwtMCA9IDwmbGVkX3dvcmtfZW4+OworCQl9OworCX07CisKKwlyazgwOS1zb3VuZCB7CisJ CWNvbXBhdGlibGUgPSAic2ltcGxlLWF1ZGlvLWNhcmQiOworCQlzaW1wbGUtYXVkaW8tY2FyZCxm b3JtYXQgPSAiaTJzIjsKKwkJc2ltcGxlLWF1ZGlvLWNhcmQsbmFtZSA9ICJBbmFsb2cgUks4MDki OworCQlzaW1wbGUtYXVkaW8tY2FyZCxtY2xrLWZzID0gPDI1Nj47CisKKwkJc2ltcGxlLWF1ZGlv LWNhcmQsY3B1IHsKKwkJCXNvdW5kLWRhaSA9IDwmaTJzMV84Y2g+OworCQl9OworCQlzaW1wbGUt YXVkaW8tY2FyZCxjb2RlYyB7CisJCQlzb3VuZC1kYWkgPSA8JnJrODA5PjsKKwkJfTsKKwl9Owor CisJcGRtX2NvZGVjOiBwZG0tY29kZWMgeworCQljb21wYXRpYmxlID0gImRtaWMtY29kZWMiOwor CQludW0tY2hhbm5lbHMgPSA8Mj47CisJCSNzb3VuZC1kYWktY2VsbHMgPSA8MD47CisJfTsKKwor CXBkbV9zb3VuZDogcGRtLXNvdW5kIHsKKwkJY29tcGF0aWJsZSA9ICJzaW1wbGUtYXVkaW8tY2Fy ZCI7CisJCXNpbXBsZS1hdWRpby1jYXJkLG5hbWUgPSAibWljcm9waG9uZSI7CisKKwkJc2ltcGxl LWF1ZGlvLWNhcmQsY3B1IHsKKwkJCXNvdW5kLWRhaSA9IDwmcGRtPjsKKwkJfTsKKworCQlzaW1w bGUtYXVkaW8tY2FyZCxjb2RlYyB7CisJCQlzb3VuZC1kYWkgPSA8JnBkbV9jb2RlYz47CisJCX07 CisJfTsKKworCXNwZGlmX2RpdDogc3BkaWYtZGl0IHsKKwkJY29tcGF0aWJsZSA9ICJsaW51eCxz cGRpZi1kaXQiOworCQkjc291bmQtZGFpLWNlbGxzID0gPDA+OworCX07CisKKwlzcGRpZl9zb3Vu ZDogc3BkaWYtc291bmQgeworCQljb21wYXRpYmxlID0gInNpbXBsZS1hdWRpby1jYXJkIjsKKwkJ c2ltcGxlLWF1ZGlvLWNhcmQsbmFtZSA9ICJTUERJRiI7CisKKwkJc2ltcGxlLWF1ZGlvLWNhcmQs Y3B1IHsKKwkJCXNvdW5kLWRhaSA9IDwmc3BkaWY+OworCQl9OworCQlzaW1wbGUtYXVkaW8tY2Fy ZCxjb2RlYyB7CisJCQlzb3VuZC1kYWkgPSA8JnNwZGlmX2RpdD47CisJCX07CisJfTsKKworCXNk aW9fcHdyc2VxOiBzZGlvLXB3cnNlcSB7CisJCWNvbXBhdGlibGUgPSAibW1jLXB3cnNlcS1zaW1w bGUiOworCQljbG9ja3MgPSA8JnJrODA5IDE+OworCQljbG9jay1uYW1lcyA9ICJleHRfY2xvY2si OworCQlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOworCQlwaW5jdHJsLTAgPSA8JndpZmlfZW5h YmxlPjsKKwkJcG9zdC1wb3dlci1vbi1kZWxheS1tcyA9IDwxMDA+OworCQlwb3dlci1vZmYtZGVs YXktdXMgPSA8MzAwPjsKKwkJcmVzZXQtZ3Bpb3MgPSA8JmdwaW8zIFJLX1BENSBHUElPX0FDVElW RV9MT1c+OworCX07CisKKwlkY18xMnY6IHJlZ3VsYXRvci1kYy0xMnYgeworCQljb21wYXRpYmxl ID0gInJlZ3VsYXRvci1maXhlZCI7CisJCXJlZ3VsYXRvci1uYW1lID0gImRjXzEydiI7CisJCXJl Z3VsYXRvci1hbHdheXMtb247CisJCXJlZ3VsYXRvci1ib290LW9uOworCQlyZWd1bGF0b3ItbWlu LW1pY3Jvdm9sdCA9IDwxMjAwMDAwMD47CisJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDEy MDAwMDAwPjsKKwl9OworCisJcGNpZTMwX2F2ZGQwdjk6IHJlZ3VsYXRvci1wY2llMzAtYXZkZDB2 OSB7CisJCWNvbXBhdGlibGUgPSAicmVndWxhdG9yLWZpeGVkIjsKKwkJcmVndWxhdG9yLW5hbWUg PSAicGNpZTMwX2F2ZGQwdjkiOworCQlyZWd1bGF0b3ItYWx3YXlzLW9uOworCQlyZWd1bGF0b3It Ym9vdC1vbjsKKwkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8OTAwMDAwPjsKKwkJcmVndWxh dG9yLW1heC1taWNyb3ZvbHQgPSA8OTAwMDAwPjsKKwkJdmluLXN1cHBseSA9IDwmdmNjM3YzX3N5 cz47CisJfTsKKworCXBjaWUzMF9hdmRkMXY4OiByZWd1bGF0b3ItcGNpZTMwLWF2ZGQxdjggewor CQljb21wYXRpYmxlID0gInJlZ3VsYXRvci1maXhlZCI7CisJCXJlZ3VsYXRvci1uYW1lID0gInBj aWUzMF9hdmRkMXY4IjsKKwkJcmVndWxhdG9yLWFsd2F5cy1vbjsKKwkJcmVndWxhdG9yLWJvb3Qt b247CisJCXJlZ3VsYXRvci1taW4tbWljcm92b2x0ID0gPDE4MDAwMDA+OworCQlyZWd1bGF0b3It bWF4LW1pY3Jvdm9sdCA9IDwxODAwMDAwPjsKKwkJdmluLXN1cHBseSA9IDwmdmNjM3YzX3N5cz47 CisJfTsKKworCXZjYzN2M19zeXM6IHJlZ3VsYXRvci12Y2MzdjMtc3lzIHsKKwkJY29tcGF0aWJs ZSA9ICJyZWd1bGF0b3ItZml4ZWQiOworCQlyZWd1bGF0b3ItbmFtZSA9ICJ2Y2MzdjNfc3lzIjsK KwkJcmVndWxhdG9yLWFsd2F5cy1vbjsKKwkJcmVndWxhdG9yLWJvb3Qtb247CisJCXJlZ3VsYXRv ci1taW4tbWljcm92b2x0ID0gPDMzMDAwMDA+OworCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9 IDwzMzAwMDAwPjsKKwkJdmluLXN1cHBseSA9IDwmZGNfMTJ2PjsKKwl9OworCisJdmNjM3YzX3Bj aWU6IHJlZ3VsYXRvci12Y2MzdjMtcGNpZSB7CisJCWNvbXBhdGlibGUgPSAicmVndWxhdG9yLWZp eGVkIjsKKwkJZW5hYmxlLWFjdGl2ZS1oaWdoOworCQlncGlvcyA9IDwmZ3BpbzMgUktfUEMzIEdQ SU9fQUNUSVZFX0hJR0g+OworCQlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOworCQlwaW5jdHJs LTAgPSA8JnZjYzN2M19wY2llX2VuX3Bpbj47CisJCXJlZ3VsYXRvci1uYW1lID0gInZjYzN2M19w Y2llIjsKKwkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8MzMwMDAwMD47CisJCXJlZ3VsYXRv ci1tYXgtbWljcm92b2x0ID0gPDMzMDAwMDA+OworCQlzdGFydHVwLWRlbGF5LXVzID0gPDUwMDA+ OworCQl2aW4tc3VwcGx5ID0gPCZkY18xMnY+OworCX07CisKKwl2Y2M1djBfc3lzOiByZWd1bGF0 b3ItdmNjNXYwLXN5cyB7CisJCWNvbXBhdGlibGUgPSAicmVndWxhdG9yLWZpeGVkIjsKKwkJcmVn dWxhdG9yLW5hbWUgPSAidmNjNXYwX3N5cyI7CisJCXJlZ3VsYXRvci1hbHdheXMtb247CisJCXJl Z3VsYXRvci1ib290LW9uOworCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDw1MDAwMDAwPjsK KwkJcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8NTAwMDAwMD47CisJCXZpbi1zdXBwbHkgPSA8 JmRjXzEydj47CisJfTsKKworCXZjYzV2MF91c2I6IHJlZ3VsYXRvci12Y2M1djAtdXNiIHsKKwkJ Y29tcGF0aWJsZSA9ICJyZWd1bGF0b3ItZml4ZWQiOworCQlyZWd1bGF0b3ItbmFtZSA9ICJ2Y2M1 djBfdXNiIjsKKwkJcmVndWxhdG9yLWFsd2F5cy1vbjsKKwkJcmVndWxhdG9yLWJvb3Qtb247CisJ CXJlZ3VsYXRvci1taW4tbWljcm92b2x0ID0gPDUwMDAwMDA+OworCQlyZWd1bGF0b3ItbWF4LW1p Y3Jvdm9sdCA9IDw1MDAwMDAwPjsKKwkJdmluLXN1cHBseSA9IDwmZGNfMTJ2PjsKKwl9OworCisJ dmNjNXYwX3VzYl9ob3N0OiByZWd1bGF0b3ItdmNjNXYwLXVzYi1ob3N0IHsKKwkJY29tcGF0aWJs ZSA9ICJyZWd1bGF0b3ItZml4ZWQiOworCQllbmFibGUtYWN0aXZlLWhpZ2g7CisJCWdwaW9zID0g PCZncGlvMCBSS19QQTYgR1BJT19BQ1RJVkVfSElHSD47CisJCXBpbmN0cmwtbmFtZXMgPSAiZGVm YXVsdCI7CisJCXBpbmN0cmwtMCA9IDwmdmNjNXYwX3VzYl9ob3N0X2VuPjsKKwkJcmVndWxhdG9y LW5hbWUgPSAidmNjNXYwX3VzYl9ob3N0IjsKKwkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8 NTAwMDAwMD47CisJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDUwMDAwMDA+OworCQl2aW4t c3VwcGx5ID0gPCZ2Y2M1djBfdXNiPjsKKwl9OworCisJdmNjNXYwX3VzYl9vdGc6IHJlZ3VsYXRv ci12Y2M1djAtdXNiLW90ZyB7CisJCWNvbXBhdGlibGUgPSAicmVndWxhdG9yLWZpeGVkIjsKKwkJ ZW5hYmxlLWFjdGl2ZS1oaWdoOworCQlncGlvcyA9IDwmZ3BpbzAgUktfUEE1IEdQSU9fQUNUSVZF X0hJR0g+OworCQlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOworCQlwaW5jdHJsLTAgPSA8JnZj YzV2MF91c2Jfb3RnX2VuPjsKKwkJcmVndWxhdG9yLW5hbWUgPSAidmNjNXYwX3VzYl9vdGciOwor CQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDw1MDAwMDAwPjsKKwkJcmVndWxhdG9yLW1heC1t aWNyb3ZvbHQgPSA8NTAwMDAwMD47CisJCXZpbi1zdXBwbHkgPSA8JnZjYzV2MF91c2I+OworCX07 Cit9OworCismY2FuMSB7CisJYXNzaWduZWQtY2xvY2tzID0gPCZjcnUgQ0xLX0NBTjE+OworCWFz c2lnbmVkLWNsb2NrLXJhdGVzID0gPDE1MDAwMDAwMD47CisJcGluY3RybC1uYW1lcyA9ICJkZWZh dWx0IjsKKwlwaW5jdHJsLTAgPSA8JmNhbjFtMV9waW5zPjsKKwlzdGF0dXMgPSAib2theSI7Cit9 OworCisvKiB1c2VkIGZvciB1c2JfaG9zdDBfeGhjaSAqLworJmNvbWJwaHkwIHsKKwlzdGF0dXMg PSAib2theSI7Cit9OworCisvKiB1c2VkIGZvciB1c2JfaG9zdDFfeGhjaSAqLworJmNvbWJwaHkx IHsKKwlzdGF0dXMgPSAib2theSI7Cit9OworCisvKiBjb25uZWN0ZWQgdG8gc2F0YTIgKi8KKyZj b21icGh5MiB7CisJc3RhdHVzID0gIm9rYXkiOworfTsKKworJmNwdTAgeworCWNwdS1zdXBwbHkg PSA8JnZkZF9jcHU+OworfTsKKworJmNwdTEgeworCWNwdS1zdXBwbHkgPSA8JnZkZF9jcHU+Owor fTsKKworJmNwdTIgeworCWNwdS1zdXBwbHkgPSA8JnZkZF9jcHU+OworfTsKKworJmNwdTMgewor CWNwdS1zdXBwbHkgPSA8JnZkZF9jcHU+OworfTsKKworJmdtYWMwIHsKKwlhc3NpZ25lZC1jbG9j a3MgPSA8JmNydSBTQ0xLX0dNQUMwX1JYX1RYPiwgPCZjcnUgU0NMS19HTUFDMD47CisJYXNzaWdu ZWQtY2xvY2stcGFyZW50cyA9IDwmY3J1IFNDTEtfR01BQzBfUkdNSUlfU1BFRUQ+OworCWFzc2ln bmVkLWNsb2NrLXJhdGVzID0gPDA+LCA8MTI1MDAwMDAwPjsKKwljbG9ja19pbl9vdXQgPSAib3V0 cHV0IjsKKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOworCXBpbmN0cmwtMCA9IDwmZ21hYzBf bWlpbQorCQkgICAgICZnbWFjMF90eF9idXMyCisJCSAgICAgJmdtYWMwX3J4X2J1czIKKwkJICAg ICAmZ21hYzBfcmdtaWlfY2xrCisJCSAgICAgJmdtYWMwX3JnbWlpX2J1cz47CisJcGh5LWhhbmRs ZSA9IDwmcmdtaWlfcGh5MD47CisJcGh5LW1vZGUgPSAicmdtaWktaWQiOworCXN0YXR1cyA9ICJv a2F5IjsKK307CisKKyZnbWFjMSB7CisJYXNzaWduZWQtY2xvY2tzID0gPCZjcnUgU0NMS19HTUFD MV9SWF9UWD4sIDwmY3J1IFNDTEtfR01BQzE+OworCWFzc2lnbmVkLWNsb2NrLXBhcmVudHMgPSA8 JmNydSBTQ0xLX0dNQUMxX1JHTUlJX1NQRUVEPjsKKwlhc3NpZ25lZC1jbG9jay1yYXRlcyA9IDww PiwgPDEyNTAwMDAwMD47CisJY2xvY2tfaW5fb3V0ID0gIm91dHB1dCI7CisJcGluY3RybC1uYW1l cyA9ICJkZWZhdWx0IjsKKwlwaW5jdHJsLTAgPSA8JmdtYWMxbTFfbWlpbQorCQkgICAgICZnbWFj MW0xX3R4X2J1czIKKwkJICAgICAmZ21hYzFtMV9yeF9idXMyCisJCSAgICAgJmdtYWMxbTFfcmdt aWlfY2xrCisJCSAgICAgJmdtYWMxbTFfcmdtaWlfYnVzPjsKKwlwaHktaGFuZGxlID0gPCZyZ21p aV9waHkxPjsKKwlwaHktbW9kZSA9ICJyZ21paS1pZCI7CisJc3RhdHVzID0gIm9rYXkiOworfTsK KworJmdwdSB7CisJbWFsaS1zdXBwbHkgPSA8JnZkZF9ncHU+OworCXN0YXR1cyA9ICJva2F5IjsK K307CisKKyZoZG1pIHsKKwlhdmRkLTB2OS1zdXBwbHkgPSA8JnZkZGEwdjlfaW1hZ2U+OworCWF2 ZGQtMXY4LXN1cHBseSA9IDwmdmNjYTF2OF9pbWFnZT47CisJc3RhdHVzID0gIm9rYXkiOworfTsK KworJmhkbWlfaW4geworCWhkbWlfaW5fdnAwOiBlbmRwb2ludCB7CisJCXJlbW90ZS1lbmRwb2lu dCA9IDwmdnAwX291dF9oZG1pPjsKKwl9OworfTsKKworJmhkbWlfb3V0IHsKKwloZG1pX291dF9j b246IGVuZHBvaW50IHsKKwkJcmVtb3RlLWVuZHBvaW50ID0gPCZoZG1pX2Nvbl9pbj47CisJfTsK K307CisKKyZoZG1pX3NvdW5kIHsKKwlzdGF0dXMgPSAib2theSI7Cit9OworCismaTJjMCB7CisJ c3RhdHVzID0gIm9rYXkiOworCisJdmRkX2NwdTogcmVndWxhdG9yQDFjIHsKKwkJY29tcGF0aWJs ZSA9ICJ0Y3MsdGNzNDUyNSI7CisJCXJlZyA9IDwweDFjPjsKKwkJZmNzLHN1c3BlbmQtdm9sdGFn ZS1zZWxlY3RvciA9IDwxPjsKKwkJcmVndWxhdG9yLW5hbWUgPSAidmRkX2NwdSI7CisJCXJlZ3Vs YXRvci1hbHdheXMtb247CisJCXJlZ3VsYXRvci1ib290LW9uOworCQlyZWd1bGF0b3ItbWluLW1p Y3Jvdm9sdCA9IDw4MDAwMDA+OworCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwxMTUwMDAw PjsKKwkJcmVndWxhdG9yLXJhbXAtZGVsYXkgPSA8MjMwMD47CisJCXZpbi1zdXBwbHkgPSA8JnZj YzV2MF9zeXM+OworCisJCXJlZ3VsYXRvci1zdGF0ZS1tZW0geworCQkJcmVndWxhdG9yLW9mZi1p bi1zdXNwZW5kOworCQl9OworCX07CisKKwlyazgwOTogcG1pY0AyMCB7CisJCWNvbXBhdGlibGUg PSAicm9ja2NoaXAscms4MDkiOworCQlyZWcgPSA8MHgyMD47CisJCWludGVycnVwdC1wYXJlbnQg PSA8JmdwaW8wPjsKKwkJaW50ZXJydXB0cyA9IDxSS19QQTMgSVJRX1RZUEVfTEVWRUxfTE9XPjsK KwkJYXNzaWduZWQtY2xvY2tzID0gPCZjcnUgSTJTMV9NQ0xLT1VUX1RYPjsKKwkJYXNzaWduZWQt Y2xvY2stcGFyZW50cyA9IDwmY3J1IENMS19JMlMxXzhDSF9UWD47CisJCSNjbG9jay1jZWxscyA9 IDwxPjsKKwkJY2xvY2stbmFtZXMgPSAibWNsayI7CisJCWNsb2NrcyA9IDwmY3J1IEkyUzFfTUNM S09VVF9UWD47CisJCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7CisJCXBpbmN0cmwtMCA9IDwm cG1pY19pbnQ+LCA8JmkyczFtMF9tY2xrPjsKKwkJc3lzdGVtLXBvd2VyLWNvbnRyb2xsZXI7CisJ CSNzb3VuZC1kYWktY2VsbHMgPSA8MD47CisJCXZjYzEtc3VwcGx5ID0gPCZ2Y2MzdjNfc3lzPjsK KwkJdmNjMi1zdXBwbHkgPSA8JnZjYzN2M19zeXM+OworCQl2Y2MzLXN1cHBseSA9IDwmdmNjM3Yz X3N5cz47CisJCXZjYzQtc3VwcGx5ID0gPCZ2Y2MzdjNfc3lzPjsKKwkJdmNjNS1zdXBwbHkgPSA8 JnZjYzN2M19zeXM+OworCQl2Y2M2LXN1cHBseSA9IDwmdmNjM3YzX3N5cz47CisJCXZjYzctc3Vw cGx5ID0gPCZ2Y2MzdjNfc3lzPjsKKwkJdmNjOC1zdXBwbHkgPSA8JnZjYzN2M19zeXM+OworCQl2 Y2M5LXN1cHBseSA9IDwmdmNjM3YzX3N5cz47CisJCXdha2V1cC1zb3VyY2U7CisKKwkJcmVndWxh dG9ycyB7CisJCQl2ZGRfbG9naWM6IERDRENfUkVHMSB7CisJCQkJcmVndWxhdG9yLW5hbWUgPSAi dmRkX2xvZ2ljIjsKKwkJCQlyZWd1bGF0b3ItYWx3YXlzLW9uOworCQkJCXJlZ3VsYXRvci1ib290 LW9uOworCQkJCXJlZ3VsYXRvci1pbml0aWFsLW1vZGUgPSA8MHgyPjsKKwkJCQlyZWd1bGF0b3It bWluLW1pY3Jvdm9sdCA9IDw1MDAwMDA+OworCQkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0g PDEzNTAwMDA+OworCQkJCXJlZ3VsYXRvci1yYW1wLWRlbGF5ID0gPDYwMDE+OworCisJCQkJcmVn dWxhdG9yLXN0YXRlLW1lbSB7CisJCQkJCXJlZ3VsYXRvci1vZmYtaW4tc3VzcGVuZDsKKwkJCQl9 OworCQkJfTsKKworCQkJdmRkX2dwdTogRENEQ19SRUcyIHsKKwkJCQlyZWd1bGF0b3ItbmFtZSA9 ICJ2ZGRfZ3B1IjsKKwkJCQlyZWd1bGF0b3ItYWx3YXlzLW9uOworCQkJCXJlZ3VsYXRvci1pbml0 aWFsLW1vZGUgPSA8MHgyPjsKKwkJCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDw1MDAwMDA+ OworCQkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDEzNTAwMDA+OworCQkJCXJlZ3VsYXRv ci1yYW1wLWRlbGF5ID0gPDYwMDE+OworCisJCQkJcmVndWxhdG9yLXN0YXRlLW1lbSB7CisJCQkJ CXJlZ3VsYXRvci1vZmYtaW4tc3VzcGVuZDsKKwkJCQl9OworCQkJfTsKKworCQkJdmNjX2Rkcjog RENEQ19SRUczIHsKKwkJCQlyZWd1bGF0b3ItbmFtZSA9ICJ2Y2NfZGRyIjsKKwkJCQlyZWd1bGF0 b3ItYWx3YXlzLW9uOworCQkJCXJlZ3VsYXRvci1ib290LW9uOworCQkJCXJlZ3VsYXRvci1pbml0 aWFsLW1vZGUgPSA8MHgyPjsKKworCQkJCXJlZ3VsYXRvci1zdGF0ZS1tZW0geworCQkJCQlyZWd1 bGF0b3Itb24taW4tc3VzcGVuZDsKKwkJCQl9OworCQkJfTsKKworCQkJdmRkX25wdTogRENEQ19S RUc0IHsKKwkJCQlyZWd1bGF0b3ItbmFtZSA9ICJ2ZGRfbnB1IjsKKwkJCQlyZWd1bGF0b3ItaW5p dGlhbC1tb2RlID0gPDB4Mj47CisJCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8NTAwMDAw PjsKKwkJCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwxMzUwMDAwPjsKKwkJCQlyZWd1bGF0 b3ItcmFtcC1kZWxheSA9IDw2MDAxPjsKKworCQkJCXJlZ3VsYXRvci1zdGF0ZS1tZW0geworCQkJ CQlyZWd1bGF0b3Itb2ZmLWluLXN1c3BlbmQ7CisJCQkJfTsKKwkJCX07CisKKwkJCXZjY18xdjg6 IERDRENfUkVHNSB7CisJCQkJcmVndWxhdG9yLW5hbWUgPSAidmNjXzF2OCI7CisJCQkJcmVndWxh dG9yLWFsd2F5cy1vbjsKKwkJCQlyZWd1bGF0b3ItYm9vdC1vbjsKKwkJCQlyZWd1bGF0b3ItbWlu LW1pY3Jvdm9sdCA9IDwxODAwMDAwPjsKKwkJCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwx ODAwMDAwPjsKKworCQkJCXJlZ3VsYXRvci1zdGF0ZS1tZW0geworCQkJCQlyZWd1bGF0b3Itb2Zm LWluLXN1c3BlbmQ7CisJCQkJfTsKKwkJCX07CisKKwkJCXZkZGEwdjlfaW1hZ2U6IExET19SRUcx IHsKKwkJCQlyZWd1bGF0b3ItbmFtZSA9ICJ2ZGRhMHY5X2ltYWdlIjsKKwkJCQlyZWd1bGF0b3It bWluLW1pY3Jvdm9sdCA9IDw5MDAwMDA+OworCQkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0g PDkwMDAwMD47CisKKwkJCQlyZWd1bGF0b3Itc3RhdGUtbWVtIHsKKwkJCQkJcmVndWxhdG9yLW9m Zi1pbi1zdXNwZW5kOworCQkJCX07CisJCQl9OworCisJCQl2ZGRhXzB2OTogTERPX1JFRzIgewor CQkJCXJlZ3VsYXRvci1uYW1lID0gInZkZGFfMHY5IjsKKwkJCQlyZWd1bGF0b3ItYWx3YXlzLW9u OworCQkJCXJlZ3VsYXRvci1ib290LW9uOworCQkJCXJlZ3VsYXRvci1taW4tbWljcm92b2x0ID0g PDkwMDAwMD47CisJCQkJcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8OTAwMDAwPjsKKworCQkJ CXJlZ3VsYXRvci1zdGF0ZS1tZW0geworCQkJCQlyZWd1bGF0b3Itb2ZmLWluLXN1c3BlbmQ7CisJ CQkJfTsKKwkJCX07CisKKwkJCXZkZGEwdjlfcG11OiBMRE9fUkVHMyB7CisJCQkJcmVndWxhdG9y LW5hbWUgPSAidmRkYTB2OV9wbXUiOworCQkJCXJlZ3VsYXRvci1hbHdheXMtb247CisJCQkJcmVn dWxhdG9yLWJvb3Qtb247CisJCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8OTAwMDAwPjsK KwkJCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDw5MDAwMDA+OworCisJCQkJcmVndWxhdG9y LXN0YXRlLW1lbSB7CisJCQkJCXJlZ3VsYXRvci1vbi1pbi1zdXNwZW5kOworCQkJCQlyZWd1bGF0 b3Itc3VzcGVuZC1taWNyb3ZvbHQgPSA8OTAwMDAwPjsKKwkJCQl9OworCQkJfTsKKworCQkJdmNj aW9fYWNvZGVjOiBMRE9fUkVHNCB7CisJCQkJcmVndWxhdG9yLW5hbWUgPSAidmNjaW9fYWNvZGVj IjsKKwkJCQlyZWd1bGF0b3ItYWx3YXlzLW9uOworCQkJCXJlZ3VsYXRvci1taW4tbWljcm92b2x0 ID0gPDMzMDAwMDA+OworCQkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDMzMDAwMDA+Owor CisJCQkJcmVndWxhdG9yLXN0YXRlLW1lbSB7CisJCQkJCXJlZ3VsYXRvci1vZmYtaW4tc3VzcGVu ZDsKKwkJCQl9OworCQkJfTsKKworCQkJdmNjaW9fc2Q6IExET19SRUc1IHsKKwkJCQlyZWd1bGF0 b3ItbmFtZSA9ICJ2Y2Npb19zZCI7CisJCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8MTgw MDAwMD47CisJCQkJcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8MzMwMDAwMD47CisKKwkJCQly ZWd1bGF0b3Itc3RhdGUtbWVtIHsKKwkJCQkJcmVndWxhdG9yLW9mZi1pbi1zdXNwZW5kOworCQkJ CX07CisJCQl9OworCisJCQl2Y2MzdjNfcG11OiBMRE9fUkVHNiB7CisJCQkJcmVndWxhdG9yLW5h bWUgPSAidmNjM3YzX3BtdSI7CisJCQkJcmVndWxhdG9yLWFsd2F5cy1vbjsKKwkJCQlyZWd1bGF0 b3ItYm9vdC1vbjsKKwkJCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwzMzAwMDAwPjsKKwkJ CQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwzMzAwMDAwPjsKKworCQkJCXJlZ3VsYXRvci1z dGF0ZS1tZW0geworCQkJCQlyZWd1bGF0b3Itb24taW4tc3VzcGVuZDsKKwkJCQkJcmVndWxhdG9y LXN1c3BlbmQtbWljcm92b2x0ID0gPDMzMDAwMDA+OworCQkJCX07CisJCQl9OworCisJCQl2Y2Nh XzF2ODogTERPX1JFRzcgeworCQkJCXJlZ3VsYXRvci1uYW1lID0gInZjY2FfMXY4IjsKKwkJCQly ZWd1bGF0b3ItYWx3YXlzLW9uOworCQkJCXJlZ3VsYXRvci1ib290LW9uOworCQkJCXJlZ3VsYXRv ci1taW4tbWljcm92b2x0ID0gPDE4MDAwMDA+OworCQkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0 ID0gPDE4MDAwMDA+OworCisJCQkJcmVndWxhdG9yLXN0YXRlLW1lbSB7CisJCQkJCXJlZ3VsYXRv ci1vZmYtaW4tc3VzcGVuZDsKKwkJCQl9OworCQkJfTsKKworCQkJdmNjYTF2OF9wbXU6IExET19S RUc4IHsKKwkJCQlyZWd1bGF0b3ItbmFtZSA9ICJ2Y2NhMXY4X3BtdSI7CisJCQkJcmVndWxhdG9y LWFsd2F5cy1vbjsKKwkJCQlyZWd1bGF0b3ItYm9vdC1vbjsKKwkJCQlyZWd1bGF0b3ItbWluLW1p Y3Jvdm9sdCA9IDwxODAwMDAwPjsKKwkJCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwxODAw MDAwPjsKKworCQkJCXJlZ3VsYXRvci1zdGF0ZS1tZW0geworCQkJCQlyZWd1bGF0b3Itb24taW4t c3VzcGVuZDsKKwkJCQkJcmVndWxhdG9yLXN1c3BlbmQtbWljcm92b2x0ID0gPDE4MDAwMDA+Owor CQkJCX07CisJCQl9OworCisJCQl2Y2NhMXY4X2ltYWdlOiBMRE9fUkVHOSB7CisJCQkJcmVndWxh dG9yLW5hbWUgPSAidmNjYTF2OF9pbWFnZSI7CisJCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQg PSA8MTgwMDAwMD47CisJCQkJcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8MTgwMDAwMD47CisK KwkJCQlyZWd1bGF0b3Itc3RhdGUtbWVtIHsKKwkJCQkJcmVndWxhdG9yLW9mZi1pbi1zdXNwZW5k OworCQkJCX07CisJCQl9OworCisJCQl2Y2NfM3YzOiBTV0lUQ0hfUkVHMSB7CisJCQkJcmVndWxh dG9yLW5hbWUgPSAidmNjXzN2MyI7CisJCQkJcmVndWxhdG9yLWFsd2F5cy1vbjsKKwkJCQlyZWd1 bGF0b3ItYm9vdC1vbjsKKworCQkJCXJlZ3VsYXRvci1zdGF0ZS1tZW0geworCQkJCQlyZWd1bGF0 b3Itb2ZmLWluLXN1c3BlbmQ7CisJCQkJfTsKKwkJCX07CisKKwkJCXZjYzN2M19zZDogU1dJVENI X1JFRzIgeworCQkJCXJlZ3VsYXRvci1uYW1lID0gInZjYzN2M19zZCI7CisKKwkJCQlyZWd1bGF0 b3Itc3RhdGUtbWVtIHsKKwkJCQkJcmVndWxhdG9yLW9mZi1pbi1zdXNwZW5kOworCQkJCX07CisJ CQl9OworCQl9OworCisJCWNvZGVjIHsKKwkJCXJvY2tjaGlwLG1pYy1pbi1kaWZmZXJlbnRpYWw7 CisJCX07CisJfTsKK307CisKKyZpMmM1IHsKKwlzdGF0dXMgPSAib2theSI7CisKKwlydGMwOiBy dGNANTEgeworCQljb21wYXRpYmxlID0gIm54cCxwY2Y4NTYzIjsKKwkJcmVnID0gPDB4NTE+Owor CQkjY2xvY2stY2VsbHMgPSA8MD47CisJfTsKK307CisKKyZpMnMwXzhjaCB7CisJc3RhdHVzID0g Im9rYXkiOworfTsKKworJmkyczFfOGNoIHsKKwlwaW5jdHJsLTAgPSA8JmkyczFtMF9zY2xrdHgg JmkyczFtMF9scmNrdHggJmkyczFtMF9zZGkwICZpMnMxbTBfc2RvMD47CisJcm9ja2NoaXAsdHJj bS1zeW5jLXR4LW9ubHk7CisJc3RhdHVzID0gIm9rYXkiOworfTsKKworLyogdXNlZCBmb3IgQVA2 MzU2UyBCbHVldG9vdGggU291bmQgKi8KKyZpMnMzXzJjaCB7CisJc3RhdHVzID0gIm9rYXkiOwor fTsKKworJm1kaW8wIHsKKwlyZ21paV9waHkwOiBldGhlcm5ldC1waHlAMSB7CisJCWNvbXBhdGli bGUgPSAiZXRoZXJuZXQtcGh5LWllZWU4MDIuMy1jMjIiOworCQlyZWcgPSA8MT47CisJCXJlc2V0 LWFzc2VydC11cyA9IDwyMDAwMD47CisJCXJlc2V0LWRlYXNzZXJ0LXVzID0gPDEwMDAwMD47CisJ CXJlc2V0LWdwaW9zID0gPCZncGlvMiBSS19QRDMgR1BJT19BQ1RJVkVfTE9XPjsKKworCQlsZWRz IHsKKwkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCQkJI3NpemUtY2VsbHMgPSA8MD47CisKKwkJ CWxlZEAxIHsKKwkJCQlyZWcgPSA8MT47CisJCQkJY29sb3IgPSA8TEVEX0NPTE9SX0lEX0dSRUVO PjsKKwkJCQlmdW5jdGlvbiA9IExFRF9GVU5DVElPTl9MQU47CisJCQkJZGVmYXVsdC1zdGF0ZSA9 ICJrZWVwIjsKKwkJCX07CisKKwkJCWxlZEAyIHsKKwkJCQlyZWcgPSA8Mj47CisJCQkJY29sb3Ig PSA8TEVEX0NPTE9SX0lEX0FNQkVSPjsKKwkJCQlmdW5jdGlvbiA9IExFRF9GVU5DVElPTl9MQU47 CisJCQkJZGVmYXVsdC1zdGF0ZSA9ICJrZWVwIjsKKwkJCX07CisJCX07CisJfTsKK307CisKKyZt ZGlvMSB7CisJcmdtaWlfcGh5MTogZXRoZXJuZXQtcGh5QDEgeworCQljb21wYXRpYmxlID0gImV0 aGVybmV0LXBoeS1pZWVlODAyLjMtYzIyIjsKKwkJcmVnID0gPDE+OworCQlyZXNldC1hc3NlcnQt dXMgPSA8MjAwMDA+OworCQlyZXNldC1kZWFzc2VydC11cyA9IDwxMDAwMDA+OworCQlyZXNldC1n cGlvcyA9IDwmZ3BpbzIgUktfUEQxIEdQSU9fQUNUSVZFX0xPVz47CisKKwkJbGVkcyB7CisJCQkj YWRkcmVzcy1jZWxscyA9IDwxPjsKKwkJCSNzaXplLWNlbGxzID0gPDA+OworCisJCQlsZWRAMSB7 CisJCQkJcmVnID0gPDE+OworCQkJCWNvbG9yID0gPExFRF9DT0xPUl9JRF9HUkVFTj47CisJCQkJ ZnVuY3Rpb24gPSBMRURfRlVOQ1RJT05fTEFOOworCQkJCWRlZmF1bHQtc3RhdGUgPSAia2VlcCI7 CisJCQl9OworCisJCQlsZWRAMiB7CisJCQkJcmVnID0gPDI+OworCQkJCWNvbG9yID0gPExFRF9D T0xPUl9JRF9BTUJFUj47CisJCQkJZnVuY3Rpb24gPSBMRURfRlVOQ1RJT05fTEFOOworCQkJCWRl ZmF1bHQtc3RhdGUgPSAia2VlcCI7CisJCQl9OworCQl9OworCX07Cit9OworCismcGNpZTMwcGh5 IHsKKwlzdGF0dXMgPSAib2theSI7Cit9OworCismcGNpZTN4MiB7CisJcGluY3RybC1uYW1lcyA9 ICJkZWZhdWx0IjsKKwlwaW5jdHJsLTAgPSA8JnBjaWVfcmVzZXRfcGluPjsKKwlyZXNldC1ncGlv cyA9IDwmZ3BpbzIgUktfUEQ2IEdQSU9fQUNUSVZFX0hJR0g+OworCXZwY2llM3YzLXN1cHBseSA9 IDwmdmNjM3YzX3BjaWU+OworCXN0YXR1cyA9ICJva2F5IjsKK307CisKKyZwZG0geworCXN0YXR1 cyA9ICJva2F5IjsKK307CisKKyZwaW5jdHJsIHsKKwlibHVldG9vdGggeworCQlidF9yZWdfb25f aF9ncGlvM19hMDogYnQtcmVnLW9uLWgtZ3BpbzQtYjIgeworCQkJcm9ja2NoaXAscGlucyA9IDwz IFJLX1BBMCBSS19GVU5DX0dQSU8gJnBjZmdfcHVsbF9ub25lPjsKKwkJfTsKKworCQlidF93YWtl X2hvc3RfaF9ncGlvM19hMTogYnQtd2FrZS1ob3N0LWgtZ3BpbzQtYjQgeworCQkJcm9ja2NoaXAs cGlucyA9IDwzIFJLX1BBMSBSS19GVU5DX0dQSU8gJnBjZmdfcHVsbF9kb3duPjsKKwkJfTsKKwor CQlob3N0X3dha2VfYnRfaF9ncGlvM19hMjogaG9zdC13YWtlLWJ0LWgtZ3BpbzQtYjUgeworCQkJ cm9ja2NoaXAscGlucyA9IDwzIFJLX1BBMiBSS19GVU5DX0dQSU8gJnBjZmdfcHVsbF9ub25lPjsK KwkJfTsKKwl9OworCisJbGVkcyB7CisJCWxlZF93b3JrX2VuOiBsZWRfd29ya19lbiB7CisJCQly b2NrY2hpcCxwaW5zID0gPDAgUktfUEMwIFJLX0ZVTkNfR1BJTyAmcGNmZ19wdWxsX25vbmU+Owor CQl9OworCX07CisKKwlwbWljIHsKKwkJcG1pY19pbnQ6IHBtaWNfaW50IHsKKwkJCXJvY2tjaGlw LHBpbnMgPSA8MCBSS19QQTMgUktfRlVOQ19HUElPICZwY2ZnX3B1bGxfdXA+OworCQl9OworCX07 CisKKwlzZGlvLXB3cnNlcSB7CisJCXdpZmlfZW5hYmxlOiB3aWZpLWVuYWJsZSB7CisJCQlyb2Nr Y2hpcCxwaW5zID0gPDMgUktfUEQ1IFJLX0ZVTkNfR1BJTyAmcGNmZ19wdWxsX25vbmU+OworCQl9 OworCX07CisKKwl1c2IgeworCQl2Y2M1djBfdXNiX2hvc3RfZW46IHZjYzV2MF91c2JfaG9zdF9l biB7CisJCQlyb2NrY2hpcCxwaW5zID0gPDAgUktfUEE2IFJLX0ZVTkNfR1BJTyAmcGNmZ19wdWxs X25vbmU+OworCQl9OworCQl2Y2M1djBfdXNiX290Z19lbjogdmNjNXYwX3VzYl9vdGdfZW4gewor CQkJcm9ja2NoaXAscGlucyA9IDwwIFJLX1BBNSBSS19GVU5DX0dQSU8gJnBjZmdfcHVsbF9ub25l PjsKKwkJfTsKKwl9OworCisJcGNpZSB7CisJCXBjaWVfcmVzZXRfcGluOiBwY2llLXJlc2V0LXBp biB7CisJCQlyb2NrY2hpcCxwaW5zID0gPDIgUktfUEQ2IFJLX0ZVTkNfR1BJTyAmcGNmZ19wdWxs X25vbmU+OworCQl9OworCQl2Y2MzdjNfcGNpZV9lbl9waW46IHZjYzN2My1wY2llLWVuLXBpbiB7 CisJCQlyb2NrY2hpcCxwaW5zID0gPDMgUktfUEMzIFJLX0ZVTkNfR1BJTyAmcGNmZ19wdWxsX25v bmU+OworCQl9OworCX07Cit9OworCismcG11X2lvX2RvbWFpbnMgeworCXBtdWlvMS1zdXBwbHkg PSA8JnZjYzN2M19wbXU+OworCXBtdWlvMi1zdXBwbHkgPSA8JnZjYzN2M19wbXU+OworCXZjY2lv MS1zdXBwbHkgPSA8JnZjY2lvX2Fjb2RlYz47CisJdmNjaW8yLXN1cHBseSA9IDwmdmNjXzF2OD47 CisJdmNjaW8zLXN1cHBseSA9IDwmdmNjaW9fc2Q+OworCXZjY2lvNC1zdXBwbHkgPSA8JnZjY18x djg+OworCXZjY2lvNS1zdXBwbHkgPSA8JnZjY18zdjM+OworCXZjY2lvNi1zdXBwbHkgPSA8JnZj Y18xdjg+OworCXZjY2lvNy1zdXBwbHkgPSA8JnZjY18zdjM+OworCXN0YXR1cyA9ICJva2F5IjsK K307CisKKyZwd200IHsKKwlzdGF0dXMgPSAib2theSI7Cit9OworCismcHdtNSB7CisJc3RhdHVz ID0gIm9rYXkiOworfTsKKworLyogUmVxdWlyZWQgcmVtb3RlY3RsIGZvciBJUiByZWNlaXZlciAq LworJnB3bTcgeworCXN0YXR1cyA9ICJkaXNhYmxlZCI7Cit9OworCismc2FyYWRjIHsKKwl2cmVm LXN1cHBseSA9IDwmdmNjYV8xdjg+OworCXN0YXR1cyA9ICJva2F5IjsKK307CisKKyZzYXRhMiB7 CisJc3RhdHVzID0gIm9rYXkiOworfTsKKworLyogdXNlZCBmb3IgZU1NQyAqLworJnNkaGNpIHsK KwlidXMtd2lkdGggPSA8OD47CisJbWF4LWZyZXF1ZW5jeSA9IDwyMDAwMDAwMDA+OworCW1tYy1o czIwMC0xXzh2OworCW5vbi1yZW1vdmFibGU7CisJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsK KwlwaW5jdHJsLTAgPSA8JmVtbWNfYnVzOCAmZW1tY19jbGsgJmVtbWNfY21kICZlbW1jX2RhdGFz dHJvYmU+OworCXN0YXR1cyA9ICJva2F5IjsKK307CisKKy8qIHVzZWQgZm9yIG1pY3JvU0QgKFRG KSBTbG90ICovCismc2RtbWMwIHsKKwlidXMtd2lkdGggPSA8ND47CisJY2FwLXNkLWhpZ2hzcGVl ZDsKKwljZC1ncGlvcyA9IDwmZ3BpbzAgUktfUEE0IEdQSU9fQUNUSVZFX0xPVz47CisJZGlzYWJs ZS13cDsKKwlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOworCXBpbmN0cmwtMCA9IDwmc2RtbWMw X2J1czQgJnNkbW1jMF9jbGsgJnNkbW1jMF9jbWQgJnNkbW1jMF9kZXQ+OworCXNkLXVocy1zZHIx MDQ7CisJdm1tYy1zdXBwbHkgPSA8JnZjYzN2M19zZD47CisJdnFtbWMtc3VwcGx5ID0gPCZ2Y2Np b19zZD47CisJc3RhdHVzID0gIm9rYXkiOworfTsKKworLyogdXNlZCBmb3IgQVA2MzU2UyBXaUZp ICovCismc2RtbWMyIHsKKwlidXMtd2lkdGggPSA8ND47CisJY2FwLXNkLWhpZ2hzcGVlZDsKKwlj YXAtc2Rpby1pcnE7CisJa2VlcC1wb3dlci1pbi1zdXNwZW5kOworCW1tYy1wd3JzZXEgPSA8JnNk aW9fcHdyc2VxPjsKKwlub24tcmVtb3ZhYmxlOworCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7 CisJcGluY3RybC0wID0gPCZzZG1tYzJtMF9idXM0ICZzZG1tYzJtMF9jbWQgJnNkbW1jMm0wX2Ns az47CisJc2QtdWhzLXNkcjEwNDsKKwl2bW1jLXN1cHBseSA9IDwmdmNjM3YzX3N5cz47CisJdnFt bWMtc3VwcGx5ID0gPCZ2Y2NfMXY4PjsKKwlzdGF0dXMgPSAib2theSI7CisKKwl3aWZpQDEgewor CQljb21wYXRpYmxlID0gImJyY20sYmNtNDM1Ni1mbWFjIjsKKwkJcmVnID0gPDE+OworCX07Cit9 OworCismc3BkaWYgeworCXN0YXR1cyA9ICJva2F5IjsKK307CisKKyZ0c2FkYyB7CisJcm9ja2No aXAsaHctdHNodXQtbW9kZSA9IDwxPjsKKwlyb2NrY2hpcCxody10c2h1dC1wb2xhcml0eSA9IDww PjsKKwlzdGF0dXMgPSAib2theSI7Cit9OworCisvKiB1c2VkIGZvciBEZWJ1ZyAqLworJnVhcnQy IHsKKwlzdGF0dXMgPSAib2theSI7Cit9OworCismdWFydDMgeworCXBpbmN0cmwtMCA9IDwmdWFy dDNtMV94ZmVyPjsKKwlzdGF0dXMgPSAib2theSI7Cit9OworCismdWFydDQgeworCXBpbmN0cmwt MCA9IDwmdWFydDRtMV94ZmVyPjsKKwlzdGF0dXMgPSAib2theSI7Cit9OworCisvKiB1c2VkIGZv ciBBUDYzNTZTIEJsdWV0b290aCAqLworJnVhcnQ4IHsKKwlkbWEtbmFtZXMgPSAidHgiLCAicngi OworCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7CisJcGluY3RybC0wID0gPCZ1YXJ0OG0wX3hm ZXIgJnVhcnQ4bTBfY3RzbiAmdWFydDhtMF9ydHNuPjsKKwl1YXJ0LWhhcy1ydHNjdHM7CisJc3Rh dHVzID0gIm9rYXkiOworCisJYmx1ZXRvb3RoIHsKKwkJY29tcGF0aWJsZSA9ICJicmNtLGJjbTQz NDVjNSI7CisJCWNsb2NrcyA9IDwmcms4MDkgMT47CisJCWNsb2NrLW5hbWVzID0gImV4dF9jbG9j ayI7CisJCWRldmljZS13YWtldXAtZ3Bpb3MgPSA8JmdwaW8zIFJLX1BBMiBHUElPX0FDVElWRV9I SUdIPjsKKwkJaG9zdC13YWtldXAtZ3Bpb3MgPSA8JmdwaW8zIFJLX1BBMSBHUElPX0FDVElWRV9I SUdIPjsKKwkJbWF4LXNwZWVkID0gPDE1MDAwMDA+OworCQlwaW5jdHJsLW5hbWVzID0gImRlZmF1 bHQiOworCQlwaW5jdHJsLTAgPSA8JmJ0X3JlZ19vbl9oX2dwaW8zX2EwCisJCQkgICAgICZidF93 YWtlX2hvc3RfaF9ncGlvM19hMQorCQkJICAgICAmaG9zdF93YWtlX2J0X2hfZ3BpbzNfYTI+Owor CQlzaHV0ZG93bi1ncGlvcyA9IDwmZ3BpbzMgUktfUEEwIEdQSU9fQUNUSVZFX0hJR0g+OworCQl2 ZGRpby1zdXBwbHkgPSA8JnZjY18xdjg+OworCX07Cit9OworCismdWFydDkgeworCXBpbmN0cmwt MCA9IDwmdWFydDltMV94ZmVyPjsKKwlzdGF0dXMgPSAib2theSI7Cit9OworCismdXNiX2hvc3Qw X2VoY2kgeworCXN0YXR1cyA9ICJva2F5IjsKK307CisKKyZ1c2JfaG9zdDBfb2hjaSB7CisJc3Rh dHVzID0gIm9rYXkiOworfTsKKworJnVzYl9ob3N0MF94aGNpIHsKKwlleHRjb24gPSA8JnVzYjJw aHkwPjsKKwlzdGF0dXMgPSAib2theSI7Cit9OworCismdXNiX2hvc3QxX2VoY2kgeworCXN0YXR1 cyA9ICJva2F5IjsKK307CisKKyZ1c2JfaG9zdDFfb2hjaSB7CisJc3RhdHVzID0gIm9rYXkiOwor fTsKKworJnVzYl9ob3N0MV94aGNpIHsKKwlzdGF0dXMgPSAib2theSI7Cit9OworCismdXNiMnBo eTAgeworCXN0YXR1cyA9ICJva2F5IjsKK307CisKKyZ1c2IycGh5MF9ob3N0IHsKKwlwaHktc3Vw cGx5ID0gPCZ2Y2M1djBfdXNiX2hvc3Q+OworCXN0YXR1cyA9ICJva2F5IjsKK307CisKKyZ1c2Iy cGh5MF9vdGcgeworCXBoeS1zdXBwbHkgPSA8JnZjYzV2MF91c2Jfb3RnPjsKKwlzdGF0dXMgPSAi b2theSI7Cit9OworCismdXNiMnBoeTEgeworCXN0YXR1cyA9ICJva2F5IjsKK307CisKKyZ1c2Iy cGh5MV9ob3N0IHsKKwlwaHktc3VwcGx5ID0gPCZ2Y2M1djBfdXNiX2hvc3Q+OworCXN0YXR1cyA9 ICJva2F5IjsKK307CisKKyZ1c2IycGh5MV9vdGcgeworCXBoeS1zdXBwbHkgPSA8JnZjYzV2MF91 c2JfaG9zdD47CisJc3RhdHVzID0gIm9rYXkiOworfTsKKworJnZvcCB7CisJYXNzaWduZWQtY2xv Y2tzID0gPCZjcnUgRENMS19WT1AwPiwgPCZjcnUgRENMS19WT1AxPjsKKwlhc3NpZ25lZC1jbG9j ay1wYXJlbnRzID0gPCZwbXVjcnUgUExMX0hQTEw+LCA8JmNydSBQTExfVlBMTD47CisJc3RhdHVz ID0gIm9rYXkiOworfTsKKworJnZvcF9tbXUgeworCXN0YXR1cyA9ICJva2F5IjsKK307CisKKyZ2 cDAgeworCXZwMF9vdXRfaGRtaTogZW5kcG9pbnRAUk9DS0NISVBfVk9QMl9FUF9IRE1JMCB7CisJ CXJlZyA9IDxST0NLQ0hJUF9WT1AyX0VQX0hETUkwPjsKKwkJcmVtb3RlLWVuZHBvaW50ID0gPCZo ZG1pX2luX3ZwMD47CisJfTsKK307Ci0tIAoyLjQ3LjMKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1yb2NrY2hpcCBtYWlsaW5nIGxpc3QKTGlu dXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJvY2tjaGlwCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj2-f2.google.com (mail-pj2-f2.google.com [74.125.227.130]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8CDCF74C14 for ; Wed, 1 Jul 2026 16:47:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.227.130 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782924473; cv=none; b=WehpSM8f1eIPp8Vk7zV6wgK3OezNQwGooKQ84HyoLO+ehZrZ5kIlu4G+YLZ7SfqiLnkk20brTiwV5nEisq8Ly3rGB5Z3urNACx8DA4d9FEpgblfU2IMsVEbthS42pqFE5eD2u+QBwg2trxIJfmfLU1KwJ+DovZSjFMpnTNTbiak= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782924473; c=relaxed/simple; bh=RgWjGe3Te0dmZuyBIJS1EKqPc39Q8LyrN2OpVT9GpGY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=uks7IlspEHeztWhqxl+eRpYPxJo5a8CRwbAiQ17uy7zp4QFviiz9Y1FsICpGT5P3rMx0KT0eTnUYHwjbPDs7shpDN6u9IX4ysb67gMvGXqdlZi1uO2G3AZ6CPre41yt3NvDwdCmwXrMRkNVqZfpCs9hJcep2IGFdzBNqQ5kWAtM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=HABUl9se; arc=none smtp.client-ip=74.125.227.130 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="HABUl9se" Received: by mail-pj2-f2.google.com with SMTP id d9443c01a7336-2c9a234aff2so2632995ad.0 for ; Wed, 01 Jul 2026 09:47:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782924471; x=1783529271; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hRw0FI9bpUOV+HOa7TQnNqvNU27UtPNavUppWgekvS8=; b=HABUl9setkwadGusHorlUl5q+oqXCq/uGRCPhuire69Wn67GMkFQDL2YkiAoxhqyJA i9N79048PNBScBV0pThdzGGTl3ANycBHmPpulAL6IxdC//GUcQ1u4EW0ZXat2j+GfiAd 4aG8I5JOu7H4tA8BM/ET+wVPfhRFDoqvgdXgw0AWVB9qAPEFkKrJeugdEPim9uWhru51 W45Iiidutdc/T44fUP2SWhXDFSMf2qhE1emOmRsmt4BfFhLRmy3PRkfkinC9enF+OwKD YS0qOlJ6JexLSCyHCNb1tdaKg/4jpganKzauCmBxWZ9PrOx4ZCqNo+FcCXmi2YF9w8hZ JWiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782924471; x=1783529271; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=hRw0FI9bpUOV+HOa7TQnNqvNU27UtPNavUppWgekvS8=; b=CiOFbSEJjkjgbSCJxzDhb5ZO2XHERj4CPvcZvoXSseviXMLmDLYk3ZFiVQwfRq2SCZ zRd7IXQanJ2XeCY6ySLgcnuZCw7wM/DxmFvF5CYpSiiT4LQtUsiD9VC6m2NMf74h1tOx m0+6nkiNmpn2qpfqp5/9fE7ccJNuyHnVH6x/OobBr6MvUXKQY9h46UZ35GhvInZxMASD +5kcT9Rk0cRJOcxkyZsmTpxoDcoz9mFdSJUExE254wzWpNaFUzPf31O91/tBclM5p8N2 FYJN8m+bzWTByG2UTQjJesMBDsuTNU3JsKSXonwdUUfKSxZIEjMEghCkEBCA7vqMABon 0tZQ== X-Gm-Message-State: AOJu0Yxy0RS3EVTclKtNUJ8jOhohtXQJ2yAw1ZbnLr2+O0m6W1kWNNHK 3eC6fB50tmxdWkmWZf+M7N8G9DWbmY/iI3VzwViScVzvcn4WfPR2AVOm X-Gm-Gg: AfdE7ckfER1/MealesE1FCvgHK5esIyIghXuHNIogptOhYvvhC+y6wZAP3bjPTKH2Ms KWkn1V29pUJKjJ7Ktc6+25xA1q/bXS/gdhBWQnuVvcC45CkAmUXMB79F2ySWcUIRlBBcAAtqRpi 2dwgqvzMPGv8gkQB46ynbFeGNpHYqu6DJ422SzF1Cl6gCOK7JQgB3hFtNTkt49XOiH4FfKQn6tv Xv5zQT4cYwdgU/qD5dS470aznm87fpCv9o7ZhcMgfuwWH5zOFzLZff0qgHg8w7tm/OnVl9lKau6 pVcHpc4RVku48UGOIe8quiafUAX57ypU8DyJ8T3tZL8x62kX4iCiQ8AyCNYIP62mVAJchsEKv1f Ah1TnBXKWCjA8Rjw+WAae6F4eaf/Ecp8Ol2SAUBBD5JmNFngSwmMgHJPApDo/43HMSPSYnEEwvd TMXwBWXnyJhWQ= X-Received: by 2002:a17:902:ea08:b0:2c8:248a:5dbb with SMTP id d9443c01a7336-2ca7e67fcd9mr28093415ad.7.1782924470701; Wed, 01 Jul 2026 09:47:50 -0700 (PDT) Received: from server.lan ([150.230.217.250]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ca9a911f4csm985015ad.29.2026.07.01.09.47.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Jul 2026 09:47:50 -0700 (PDT) From: Coia Prant To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner , Dragan Simic , Jonas Karlman Cc: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Coia Prant Subject: [PATCH v3 3/3] arm64: dts: rockchip: Add devicetree for the Graperain G3568 v2 Date: Thu, 2 Jul 2026 00:45:47 +0800 Message-ID: <20260701164543.3967388-9-coiaprant@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260701164543.3967388-3-coiaprant@gmail.com> References: <20260701164543.3967388-3-coiaprant@gmail.com> Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Graperain G3568 v2 is an RK3568-based development board, just like the RK3568-EVB. It always uses soldered connections between the GR3568CV2 core board and the RK3568BV2/GR3568BV2 I/O board. The G3568 board has multiple hardware revisions, and we currently support v2 (I/O board). Specification: - SoC: RockChip RK3568 ARM64 (4 cores) - eMMC: 16-128 GB - RAM: 2-16 GB - Power: DC 12V 2A - Ethernet: 2x RTL8211F RGMII (10/100/1000 Mbps) - Wireless radio: 802.11b/g/n/ac dual-band - LED: Power: AlwaysOn User: GPIO - Button: ESC: SARADC/0 <1100k µV> MENU: SARADC/0 <1400k µV> VOL-: SARADC/0 <430k µV> VOL+: SARADC/0 <50k µV> Power/Reset: PMIC RK809 - CAN CAN/1: 4-pin (PH 2.0) - PWM PWM/4: Backlight PWM/5: Backlight PWM/7: IR Receiver - UART: UART/2: Debug TTL - 1500000 8N1 (1.25mm) UART/3: TTL (PH 2.0) UART/4: TTL (PH 2.0) UART/8: AP6356S Bluetooth UART/9: TTL (PH 2.0) - I2C: I2C/0: PMIC RK809 I2C/1: Touchscreen I2C/4: Camera I2C/5: RTC@51 PCF8563 - I2S: I2S/0: HDMI Sound I2S/1: RK809 Audio Codec I2S/3: AP6356S Bluetooth Sound - SDMMC: SDMMC/0: microSD (TF) slot SDMMC/2: AP6356S SDIO WiFi card - Camera: 1x CSI - Video: HDMI / DSI0 (MIPI/LVDS) / DSI1 (MIPI/EDP) - Audio: HDMI / MIC / Speaker / SPDIF / 3.5mm Headphones / AP6356S Bluetooth - USB: USB 2.0 HOST x2 USB 2.0 OTG x1 (shared with USB 3.0 OTG/HOST) USB 3.0 HOST x1 USB 3.0 OTG/HOST x1 - SATA: 1x SATA 3.0 with Power/4-pin - PCIe: 1x PCIe 3.0 x2 (x4 connector) Link: - https://image.chukouplus.com/upload/C_153/product_file/20211022/6daddec9e400458816dd4c57ba807fc3.pdf - https://blog.gov.cooking/archives/research-graperain-g3568-v2-and-flash.html Signed-off-by: Coia Prant --- arch/arm64/boot/dts/rockchip/Makefile | 1 + .../rockchip/rk3568-graperain-g3568-v2.dts | 931 ++++++++++++++++++ 2 files changed, 932 insertions(+) create mode 100644 arch/arm64/boot/dts/rockchip/rk3568-graperain-g3568-v2.dts diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile index 761d82b4f4f2a..6e9d049e8ddaf 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile @@ -144,6 +144,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-easepi-r1.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-evb1-v10.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-fastrhino-r66s.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-fastrhino-r68s.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-graperain-g3568-v2.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-hinlink-h66k.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-hinlink-h68k.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-lubancat-2.dtb diff --git a/arch/arm64/boot/dts/rockchip/rk3568-graperain-g3568-v2.dts b/arch/arm64/boot/dts/rockchip/rk3568-graperain-g3568-v2.dts new file mode 100644 index 0000000000000..ee1ba8e106142 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3568-graperain-g3568-v2.dts @@ -0,0 +1,931 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) + +/dts-v1/; +#include +#include +#include +#include +#include +#include "rk3568.dtsi" + +/ { + model = "Graperain G3568 v2"; + compatible = "graperain,g3568-v2", "rockchip,rk3568"; + + aliases { + ethernet0 = &gmac0; + ethernet1 = &gmac1; + mmc0 = &sdhci; + mmc1 = &sdmmc0; + mmc2 = &sdmmc2; + rtc0 = &rtc0; + }; + + chosen { + stdout-path = "serial2:1500000n8"; + }; + + adc-keys { + compatible = "adc-keys"; + io-channels = <&saradc 0>; + io-channel-names = "buttons"; + keyup-threshold-microvolt = <1800000>; + poll-interval = <100>; + + button-esc { + label = "esc"; + linux,code = ; + press-threshold-microvolt = <1250000>; + }; + + button-menu { + label = "menu"; + linux,code = ; + press-threshold-microvolt = <1600000>; + }; + + button-vol-down { + label = "volume down"; + linux,code = ; + press-threshold-microvolt = <600000>; + }; + + button-vol-up { + label = "volume up"; + linux,code = ; + press-threshold-microvolt = <100000>; + }; + }; + + hdmi-con { + compatible = "hdmi-connector"; + type = "a"; + + port { + hdmi_con_in: endpoint { + remote-endpoint = <&hdmi_out_con>; + }; + }; + }; + + leds { + compatible = "gpio-leds"; + + led_work: led-0 { + gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>; + function = LED_FUNCTION_HEARTBEAT; + color = ; + linux,default-trigger = "heartbeat"; + pinctrl-names = "default"; + pinctrl-0 = <&led_work_en>; + }; + }; + + rk809-sound { + compatible = "simple-audio-card"; + simple-audio-card,format = "i2s"; + simple-audio-card,name = "Analog RK809"; + simple-audio-card,mclk-fs = <256>; + + simple-audio-card,cpu { + sound-dai = <&i2s1_8ch>; + }; + simple-audio-card,codec { + sound-dai = <&rk809>; + }; + }; + + pdm_codec: pdm-codec { + compatible = "dmic-codec"; + num-channels = <2>; + #sound-dai-cells = <0>; + }; + + pdm_sound: pdm-sound { + compatible = "simple-audio-card"; + simple-audio-card,name = "microphone"; + + simple-audio-card,cpu { + sound-dai = <&pdm>; + }; + + simple-audio-card,codec { + sound-dai = <&pdm_codec>; + }; + }; + + spdif_dit: spdif-dit { + compatible = "linux,spdif-dit"; + #sound-dai-cells = <0>; + }; + + spdif_sound: spdif-sound { + compatible = "simple-audio-card"; + simple-audio-card,name = "SPDIF"; + + simple-audio-card,cpu { + sound-dai = <&spdif>; + }; + simple-audio-card,codec { + sound-dai = <&spdif_dit>; + }; + }; + + sdio_pwrseq: sdio-pwrseq { + compatible = "mmc-pwrseq-simple"; + clocks = <&rk809 1>; + clock-names = "ext_clock"; + pinctrl-names = "default"; + pinctrl-0 = <&wifi_enable>; + post-power-on-delay-ms = <100>; + power-off-delay-us = <300>; + reset-gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_LOW>; + }; + + dc_12v: regulator-dc-12v { + compatible = "regulator-fixed"; + regulator-name = "dc_12v"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <12000000>; + regulator-max-microvolt = <12000000>; + }; + + pcie30_avdd0v9: regulator-pcie30-avdd0v9 { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd0v9"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + vin-supply = <&vcc3v3_sys>; + }; + + pcie30_avdd1v8: regulator-pcie30-avdd1v8 { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + vin-supply = <&vcc3v3_sys>; + }; + + vcc3v3_sys: regulator-vcc3v3-sys { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&dc_12v>; + }; + + vcc3v3_pcie: regulator-vcc3v3-pcie { + compatible = "regulator-fixed"; + enable-active-high; + gpios = <&gpio3 RK_PC3 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&vcc3v3_pcie_en_pin>; + regulator-name = "vcc3v3_pcie"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + startup-delay-us = <5000>; + vin-supply = <&dc_12v>; + }; + + vcc5v0_sys: regulator-vcc5v0-sys { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&dc_12v>; + }; + + vcc5v0_usb: regulator-vcc5v0-usb { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_usb"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&dc_12v>; + }; + + vcc5v0_usb_host: regulator-vcc5v0-usb-host { + compatible = "regulator-fixed"; + enable-active-high; + gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&vcc5v0_usb_host_en>; + regulator-name = "vcc5v0_usb_host"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vcc5v0_usb>; + }; + + vcc5v0_usb_otg: regulator-vcc5v0-usb-otg { + compatible = "regulator-fixed"; + enable-active-high; + gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&vcc5v0_usb_otg_en>; + regulator-name = "vcc5v0_usb_otg"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vcc5v0_usb>; + }; +}; + +&can1 { + assigned-clocks = <&cru CLK_CAN1>; + assigned-clock-rates = <150000000>; + pinctrl-names = "default"; + pinctrl-0 = <&can1m1_pins>; + status = "okay"; +}; + +/* used for usb_host0_xhci */ +&combphy0 { + status = "okay"; +}; + +/* used for usb_host1_xhci */ +&combphy1 { + status = "okay"; +}; + +/* connected to sata2 */ +&combphy2 { + status = "okay"; +}; + +&cpu0 { + cpu-supply = <&vdd_cpu>; +}; + +&cpu1 { + cpu-supply = <&vdd_cpu>; +}; + +&cpu2 { + cpu-supply = <&vdd_cpu>; +}; + +&cpu3 { + cpu-supply = <&vdd_cpu>; +}; + +&gmac0 { + assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>; + assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>; + assigned-clock-rates = <0>, <125000000>; + clock_in_out = "output"; + pinctrl-names = "default"; + pinctrl-0 = <&gmac0_miim + &gmac0_tx_bus2 + &gmac0_rx_bus2 + &gmac0_rgmii_clk + &gmac0_rgmii_bus>; + phy-handle = <&rgmii_phy0>; + phy-mode = "rgmii-id"; + status = "okay"; +}; + +&gmac1 { + assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>; + assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>; + assigned-clock-rates = <0>, <125000000>; + clock_in_out = "output"; + pinctrl-names = "default"; + pinctrl-0 = <&gmac1m1_miim + &gmac1m1_tx_bus2 + &gmac1m1_rx_bus2 + &gmac1m1_rgmii_clk + &gmac1m1_rgmii_bus>; + phy-handle = <&rgmii_phy1>; + phy-mode = "rgmii-id"; + status = "okay"; +}; + +&gpu { + mali-supply = <&vdd_gpu>; + status = "okay"; +}; + +&hdmi { + avdd-0v9-supply = <&vdda0v9_image>; + avdd-1v8-supply = <&vcca1v8_image>; + status = "okay"; +}; + +&hdmi_in { + hdmi_in_vp0: endpoint { + remote-endpoint = <&vp0_out_hdmi>; + }; +}; + +&hdmi_out { + hdmi_out_con: endpoint { + remote-endpoint = <&hdmi_con_in>; + }; +}; + +&hdmi_sound { + status = "okay"; +}; + +&i2c0 { + status = "okay"; + + vdd_cpu: regulator@1c { + compatible = "tcs,tcs4525"; + reg = <0x1c>; + fcs,suspend-voltage-selector = <1>; + regulator-name = "vdd_cpu"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <1150000>; + regulator-ramp-delay = <2300>; + vin-supply = <&vcc5v0_sys>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + rk809: pmic@20 { + compatible = "rockchip,rk809"; + reg = <0x20>; + interrupt-parent = <&gpio0>; + interrupts = ; + assigned-clocks = <&cru I2S1_MCLKOUT_TX>; + assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>; + #clock-cells = <1>; + clock-names = "mclk"; + clocks = <&cru I2S1_MCLKOUT_TX>; + pinctrl-names = "default"; + pinctrl-0 = <&pmic_int>, <&i2s1m0_mclk>; + system-power-controller; + #sound-dai-cells = <0>; + vcc1-supply = <&vcc3v3_sys>; + vcc2-supply = <&vcc3v3_sys>; + vcc3-supply = <&vcc3v3_sys>; + vcc4-supply = <&vcc3v3_sys>; + vcc5-supply = <&vcc3v3_sys>; + vcc6-supply = <&vcc3v3_sys>; + vcc7-supply = <&vcc3v3_sys>; + vcc8-supply = <&vcc3v3_sys>; + vcc9-supply = <&vcc3v3_sys>; + wakeup-source; + + regulators { + vdd_logic: DCDC_REG1 { + regulator-name = "vdd_logic"; + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <0x2>; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1350000>; + regulator-ramp-delay = <6001>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd_gpu: DCDC_REG2 { + regulator-name = "vdd_gpu"; + regulator-always-on; + regulator-initial-mode = <0x2>; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1350000>; + regulator-ramp-delay = <6001>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc_ddr: DCDC_REG3 { + regulator-name = "vcc_ddr"; + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <0x2>; + + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + vdd_npu: DCDC_REG4 { + regulator-name = "vdd_npu"; + regulator-initial-mode = <0x2>; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1350000>; + regulator-ramp-delay = <6001>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc_1v8: DCDC_REG5 { + regulator-name = "vcc_1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdda0v9_image: LDO_REG1 { + regulator-name = "vdda0v9_image"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdda_0v9: LDO_REG2 { + regulator-name = "vdda_0v9"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdda0v9_pmu: LDO_REG3 { + regulator-name = "vdda0v9_pmu"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <900000>; + }; + }; + + vccio_acodec: LDO_REG4 { + regulator-name = "vccio_acodec"; + regulator-always-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vccio_sd: LDO_REG5 { + regulator-name = "vccio_sd"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc3v3_pmu: LDO_REG6 { + regulator-name = "vcc3v3_pmu"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <3300000>; + }; + }; + + vcca_1v8: LDO_REG7 { + regulator-name = "vcca_1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcca1v8_pmu: LDO_REG8 { + regulator-name = "vcca1v8_pmu"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <1800000>; + }; + }; + + vcca1v8_image: LDO_REG9 { + regulator-name = "vcca1v8_image"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc_3v3: SWITCH_REG1 { + regulator-name = "vcc_3v3"; + regulator-always-on; + regulator-boot-on; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc3v3_sd: SWITCH_REG2 { + regulator-name = "vcc3v3_sd"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + }; + + codec { + rockchip,mic-in-differential; + }; + }; +}; + +&i2c5 { + status = "okay"; + + rtc0: rtc@51 { + compatible = "nxp,pcf8563"; + reg = <0x51>; + #clock-cells = <0>; + }; +}; + +&i2s0_8ch { + status = "okay"; +}; + +&i2s1_8ch { + pinctrl-0 = <&i2s1m0_sclktx &i2s1m0_lrcktx &i2s1m0_sdi0 &i2s1m0_sdo0>; + rockchip,trcm-sync-tx-only; + status = "okay"; +}; + +/* used for AP6356S Bluetooth Sound */ +&i2s3_2ch { + status = "okay"; +}; + +&mdio0 { + rgmii_phy0: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <1>; + reset-assert-us = <20000>; + reset-deassert-us = <100000>; + reset-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_LOW>; + + leds { + #address-cells = <1>; + #size-cells = <0>; + + led@1 { + reg = <1>; + color = ; + function = LED_FUNCTION_LAN; + default-state = "keep"; + }; + + led@2 { + reg = <2>; + color = ; + function = LED_FUNCTION_LAN; + default-state = "keep"; + }; + }; + }; +}; + +&mdio1 { + rgmii_phy1: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <1>; + reset-assert-us = <20000>; + reset-deassert-us = <100000>; + reset-gpios = <&gpio2 RK_PD1 GPIO_ACTIVE_LOW>; + + leds { + #address-cells = <1>; + #size-cells = <0>; + + led@1 { + reg = <1>; + color = ; + function = LED_FUNCTION_LAN; + default-state = "keep"; + }; + + led@2 { + reg = <2>; + color = ; + function = LED_FUNCTION_LAN; + default-state = "keep"; + }; + }; + }; +}; + +&pcie30phy { + status = "okay"; +}; + +&pcie3x2 { + pinctrl-names = "default"; + pinctrl-0 = <&pcie_reset_pin>; + reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>; + vpcie3v3-supply = <&vcc3v3_pcie>; + status = "okay"; +}; + +&pdm { + status = "okay"; +}; + +&pinctrl { + bluetooth { + bt_reg_on_h_gpio3_a0: bt-reg-on-h-gpio4-b2 { + rockchip,pins = <3 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + bt_wake_host_h_gpio3_a1: bt-wake-host-h-gpio4-b4 { + rockchip,pins = <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_down>; + }; + + host_wake_bt_h_gpio3_a2: host-wake-bt-h-gpio4-b5 { + rockchip,pins = <3 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + leds { + led_work_en: led_work_en { + rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + pmic { + pmic_int: pmic_int { + rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + sdio-pwrseq { + wifi_enable: wifi-enable { + rockchip,pins = <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + usb { + vcc5v0_usb_host_en: vcc5v0_usb_host_en { + rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; + }; + vcc5v0_usb_otg_en: vcc5v0_usb_otg_en { + rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + pcie { + pcie_reset_pin: pcie-reset-pin { + rockchip,pins = <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>; + }; + vcc3v3_pcie_en_pin: vcc3v3-pcie-en-pin { + rockchip,pins = <3 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; +}; + +&pmu_io_domains { + pmuio1-supply = <&vcc3v3_pmu>; + pmuio2-supply = <&vcc3v3_pmu>; + vccio1-supply = <&vccio_acodec>; + vccio2-supply = <&vcc_1v8>; + vccio3-supply = <&vccio_sd>; + vccio4-supply = <&vcc_1v8>; + vccio5-supply = <&vcc_3v3>; + vccio6-supply = <&vcc_1v8>; + vccio7-supply = <&vcc_3v3>; + status = "okay"; +}; + +&pwm4 { + status = "okay"; +}; + +&pwm5 { + status = "okay"; +}; + +/* Required remotectl for IR receiver */ +&pwm7 { + status = "disabled"; +}; + +&saradc { + vref-supply = <&vcca_1v8>; + status = "okay"; +}; + +&sata2 { + status = "okay"; +}; + +/* used for eMMC */ +&sdhci { + bus-width = <8>; + max-frequency = <200000000>; + mmc-hs200-1_8v; + non-removable; + pinctrl-names = "default"; + pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>; + status = "okay"; +}; + +/* used for microSD (TF) Slot */ +&sdmmc0 { + bus-width = <4>; + cap-sd-highspeed; + cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>; + disable-wp; + pinctrl-names = "default"; + pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; + sd-uhs-sdr104; + vmmc-supply = <&vcc3v3_sd>; + vqmmc-supply = <&vccio_sd>; + status = "okay"; +}; + +/* used for AP6356S WiFi */ +&sdmmc2 { + bus-width = <4>; + cap-sd-highspeed; + cap-sdio-irq; + keep-power-in-suspend; + mmc-pwrseq = <&sdio_pwrseq>; + non-removable; + pinctrl-names = "default"; + pinctrl-0 = <&sdmmc2m0_bus4 &sdmmc2m0_cmd &sdmmc2m0_clk>; + sd-uhs-sdr104; + vmmc-supply = <&vcc3v3_sys>; + vqmmc-supply = <&vcc_1v8>; + status = "okay"; + + wifi@1 { + compatible = "brcm,bcm4356-fmac"; + reg = <1>; + }; +}; + +&spdif { + status = "okay"; +}; + +&tsadc { + rockchip,hw-tshut-mode = <1>; + rockchip,hw-tshut-polarity = <0>; + status = "okay"; +}; + +/* used for Debug */ +&uart2 { + status = "okay"; +}; + +&uart3 { + pinctrl-0 = <&uart3m1_xfer>; + status = "okay"; +}; + +&uart4 { + pinctrl-0 = <&uart4m1_xfer>; + status = "okay"; +}; + +/* used for AP6356S Bluetooth */ +&uart8 { + dma-names = "tx", "rx"; + pinctrl-names = "default"; + pinctrl-0 = <&uart8m0_xfer &uart8m0_ctsn &uart8m0_rtsn>; + uart-has-rtscts; + status = "okay"; + + bluetooth { + compatible = "brcm,bcm4345c5"; + clocks = <&rk809 1>; + clock-names = "ext_clock"; + device-wakeup-gpios = <&gpio3 RK_PA2 GPIO_ACTIVE_HIGH>; + host-wakeup-gpios = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>; + max-speed = <1500000>; + pinctrl-names = "default"; + pinctrl-0 = <&bt_reg_on_h_gpio3_a0 + &bt_wake_host_h_gpio3_a1 + &host_wake_bt_h_gpio3_a2>; + shutdown-gpios = <&gpio3 RK_PA0 GPIO_ACTIVE_HIGH>; + vddio-supply = <&vcc_1v8>; + }; +}; + +&uart9 { + pinctrl-0 = <&uart9m1_xfer>; + status = "okay"; +}; + +&usb_host0_ehci { + status = "okay"; +}; + +&usb_host0_ohci { + status = "okay"; +}; + +&usb_host0_xhci { + extcon = <&usb2phy0>; + status = "okay"; +}; + +&usb_host1_ehci { + status = "okay"; +}; + +&usb_host1_ohci { + status = "okay"; +}; + +&usb_host1_xhci { + status = "okay"; +}; + +&usb2phy0 { + status = "okay"; +}; + +&usb2phy0_host { + phy-supply = <&vcc5v0_usb_host>; + status = "okay"; +}; + +&usb2phy0_otg { + phy-supply = <&vcc5v0_usb_otg>; + status = "okay"; +}; + +&usb2phy1 { + status = "okay"; +}; + +&usb2phy1_host { + phy-supply = <&vcc5v0_usb_host>; + status = "okay"; +}; + +&usb2phy1_otg { + phy-supply = <&vcc5v0_usb_host>; + status = "okay"; +}; + +&vop { + assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; + assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; + status = "okay"; +}; + +&vop_mmu { + status = "okay"; +}; + +&vp0 { + vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { + reg = ; + remote-endpoint = <&hdmi_in_vp0>; + }; +}; -- 2.47.3