From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Permerror (SPF Permanent Error: Void lookup limit of 2 exceeded) identity=mailfrom; client-ip=192.55.52.88; helo=mga01.intel.com; envelope-from=david.wei@intel.com; receiver=edk2-devel@lists.01.org Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 3A135222DDBFD for ; Sun, 14 Jan 2018 18:57:23 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Jan 2018 19:02:41 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,361,1511856000"; d="scan'208";a="21403713" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by fmsmga004.fm.intel.com with ESMTP; 14 Jan 2018 19:02:41 -0800 Received: from FMSMSX109.amr.corp.intel.com (10.18.116.9) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 14 Jan 2018 19:02:41 -0800 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by fmsmsx109.amr.corp.intel.com (10.18.116.9) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 14 Jan 2018 19:02:40 -0800 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.159]) by shsmsx102.ccr.corp.intel.com ([169.254.2.189]) with mapi id 14.03.0319.002; Mon, 15 Jan 2018 11:02:38 +0800 From: "Wei, David" To: "Rytkonen, Teemu S" , "edk2-devel@lists.01.org" CC: "Loeppert, Anthony" , "Guo, Mang" Thread-Topic: [Patch][edk2-platforms/devel-MinnowBoard3-UDK2017] Add support for Sony camera imx219 Thread-Index: AQHTi9WdDFId2ghQ+kSgL34+7dAQ9aN0QpYg Date: Mon, 15 Jan 2018 03:02:37 +0000 Message-ID: <89954A0B46707A448411A627AD4EEE3468FD8BE6@SHSMSX101.ccr.corp.intel.com> References: <20180112184601.17692-1-teemu.s.rytkonen@intel.com> In-Reply-To: <20180112184601.17692-1-teemu.s.rytkonen@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZDgwMDljMmEtMzg4MC00ZDA0LWE2OTMtYTYyOWRhN2IyNjZlIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJJS1RGNjg2ZWFiUmt4S29RWEIwY1BUbUl3MjNmT3pDTHMzcUNCUXorR0RDMFFveEZORTJBMVJIQldYUXhONW1XIn0= x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [Patch][edk2-platforms/devel-MinnowBoard3-UDK2017] Add support for Sony camera imx219 X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Jan 2018 02:57:24 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: zwei4 Thanks, David Wei Intel SSG/STO/UEFI BIOS =20 > -----Original Message----- > From: Rytkonen, Teemu S > Sent: Saturday, January 13, 2018 2:46 AM > To: edk2-devel@lists.01.org > Cc: Wei, David ; Loeppert, Anthony > > Subject: [Patch][edk2-platforms/devel-MinnowBoard3-UDK2017] Add > support for Sony camera imx219 >=20 > Adds support for two ACPI entries for imx219 as front > and back camera of IPU. Both camera entries can be configured > from the Front, Back camera of the BIOS menu settings. >=20 > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Teemu Rytkonen > --- > .../BensonGlacier/BoardInitPostMem/BoardGpios.h | 4 +- > .../PlatformSsdt/Camera/Camera_Sony219A.asl | 218 > +++++++++++++++++++++ > .../PlatformSsdt/Camera/Camera_Sony219B.asl | 218 > +++++++++++++++++++++ > .../AcpiTablesPCAT/PlatformSsdt/PlatformSsdt.asl | 3 + > .../PlatformSettings/PlatformSetupDxe/UnCore.vfi | 8 +- > .../PlatformSetupDxe/VfrStrings.uni | Bin 305886 -> 30604= 4 bytes > 6 files changed, 446 insertions(+), 5 deletions(-) > create mode 100644 > Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/PlatformSsdt > /Camera/Camera_Sony219A.asl > create mode 100644 > Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/PlatformSsdt > /Camera/Camera_Sony219B.asl >=20 > diff --git > a/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/B > oardGpios.h > b/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/B > oardGpios.h > index e4c1c2ee1..f636852b8 100644 > --- > a/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/B > oardGpios.h > +++ > b/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/B > oardGpios.h > @@ -73,7 +73,7 @@ BXT_GPIO_PAD_INIT mBenson_GpioInitData_N[] =3D > BXT_GPIO_PAD_CONF(L"GPIO_7", M1 , NA , NA = , NA , > NA , Wake_Disabled, P_20K_L, NA , NA, HizRx0I, SAME, > GPIO_PADBAR+0x0038, NORTH),//Mux with DISP1_TOUCH_INT_N based on > the SW3 switch > BXT_GPIO_PAD_CONF(L"GPIO_8", M1 , NA , NA = , NA , > NA , Wake_Disabled, P_20K_L, NA , NA, HizRx0I, SAME, > GPIO_PADBAR+0x0040, NORTH),//Mux with DISP1_TOUCH_RST_N based > on the SW3 switch > BXT_GPIO_PAD_CONF(L"GPIO_9", M0 , GPO , NA = , NA , > NA , Wake_Disabled, P_20K_L, NA , NA ,NA , NA, > GPIO_PADBAR+0x0048, NORTH),//Feature: LB > - BXT_GPIO_PAD_CONF(L"GPIO_10", M0 , GPO , NA = , NA , > NA , Wake_Enabled , P_20K_L, Inverted,IOAPIC, TxDRxE , NA, > GPIO_PADBAR+0x0050, NORTH),//Feature: LB > + BXT_GPIO_PAD_CONF(L"GPIO_10", M0 , GPO , NA = , NA , > NA , Wake_Enabled , P_20K_L, Inverted,IOAPIC, TxDRxE , NA, > GPIO_PADBAR+0x0050, NORTH),//Feature: CAM0_POWEREN > BXT_GPIO_PAD_CONF(L"GPIO_11", M1 , NA , NA = , NA , > NA , Wake_Disabled, P_20K_L, NA , NA ,NA , NA, > GPIO_PADBAR+0x0058, NORTH),//Feature: LB > BXT_GPIO_PAD_CONF(L"GPIO_12", M1 , NA , NA = , NA , > NA , Wake_Enabled , P_20K_L, NA , NA ,NA , NA, > GPIO_PADBAR+0x0060, NORTH),//Feature: LB > BXT_GPIO_PAD_CONF(L"GPIO_13", M1 , NA , NA = , NA , > NA , Wake_Disabled, P_20K_L, NA , NA ,NA , NA, > GPIO_PADBAR+0x0068, NORTH),//Feature: LB > @@ -82,7 +82,7 @@ BXT_GPIO_PAD_INIT mBenson_GpioInitData_N[] =3D > BXT_GPIO_PAD_CONF(L"GPIO_16", M0 , GPI , NA = , NA , > Edge , Wake_Disabled, P_20K_H, Inverted,IOAPIC, HizRx0I ,DisPuPd, > GPIO_PADBAR+0x0080, NORTH),//Feature:SIM Card Detect Net in Sch: > SIM_CON_CD1, falling edge trigger > BXT_GPIO_PAD_CONF(L"GPIO_17", M0 , GPI , GPIO_= D, NA , > Edge , Wake_Disabled, P_NONE , NA ,IOAPIC, NA ,DisPuPd, > GPIO_PADBAR+0x0088, NORTH), // SOC_LSE_HOST_IRQ_N > BXT_GPIO_PAD_CONF(L"GPIO_18", M1 , NA , NA = , NA , > NA , Wake_Disabled, P_20K_H, NA , NA, NA , NA, > GPIO_PADBAR+0x0090, NORTH),//Feature: LB > - BXT_GPIO_PAD_CONF(L"GPIO_19", M1 , NA , NA = , NA , > NA , Wake_Disabled, P_20K_H, NA , NA, NA , NA, > GPIO_PADBAR+0x0098, NORTH),//Feature: LB > + BXT_GPIO_PAD_CONF(L"GPIO_19", M0 , NA , NA = , NA , > NA , Wake_Disabled, P_20K_H, NA , NA, NA , NA, > GPIO_PADBAR+0x0098, NORTH),//Feature: CAM0_POWEREN > BXT_GPIO_PAD_CONF(L"GPIO_20", M1 , NA , NA = , NA , > NA , Wake_Disabled, P_20K_L, NA , NA, NA , NA, > GPIO_PADBAR+0x00A0, NORTH),//Feature: LB > BXT_GPIO_PAD_CONF(L"GPIO_21", M1 , NA , NA = , NA , > NA , Wake_Disabled, P_20K_L, NA , NA, NA , NA, > GPIO_PADBAR+0x00A8, NORTH),//Feature: LB > BXT_GPIO_PAD_CONF(L"GPIO_22", M0 , GPIO ,GPIO_D= , NA , > NA , Wake_Disabled, P_20K_L, NA , NA, NA , NA, > GPIO_PADBAR+0x00B0, NORTH),//Feature: LB > diff --git > a/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/PlatformSs > dt/Camera/Camera_Sony219A.asl > b/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/PlatformSs > dt/Camera/Camera_Sony219A.asl > new file mode 100644 > index 000000000..0075870ed > --- /dev/null > +++ > b/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/PlatformSs > dt/Camera/Camera_Sony219A.asl > @@ -0,0 +1,218 @@ > +/** @file > + Copyright (c) 2012 - 2018, Intel Corporation. All rights reserved.
> + > + This program and the accompanying materials > + are licensed and made available under the terms and conditions of the = BSD > License > + which accompanies this distribution. The full text of the license may= be > found at > + http://opensource.org/licenses/bsd-license.php. > + > + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" > BASIS, > + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER > EXPRESS OR IMPLIED. > + > +**/ > + > + > +Scope(\_SB.PCI0.I2C0) > +{ > + Device (CAM3) > + { > + // > + // Rear Camera IMX219 > + // > + Name (_ADR, Zero) // _ADR: Address > + Name (_HID, "SONY219A") // _HID: Hardware ID > + Name (_CID, "SONY219A") // _CID: Compatible ID > + Name (_SUB, "INTL0000") // _SUB: Subsystem ID > + Name (_DDN, "SONY IMX219") // _DDN: DOS Device Name > + Name (_UID, One) // _UID: Unique ID > + /* need to be update after power on > + Name (_DEP, Package () // _DEP: Dependencies > + { > + //PMIC device > + }) > + > + Name (_PR0, Package (0x03) // _PR0: Power Resources for D0 > + { > + // Power and Clock > + }) > + */ > + Name (PLDB, Package (0x01) > + { > + Buffer (0x14) > + { > + /* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0= x00, > + /* 0008 */ 0x61, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0= x00, > + /* 0010 */ 0xFF, 0xFF, 0xFF, 0xFF > + } > + }) > + Method (_PLD, 0, Serialized) // _PLD: Physical Location of Devi= ce > + { > + Return (PLDB) > + } > + > + Method (_STA, 0, NotSerialized) // _STA: Status > + { > + If(LEqual(WCAS,3)) { // 3-IMX219 > + Return (0x0F) > + } > + Return (0x0) > + } > + /* > + Method (_PS3, 0, Serialized) // _PS3: Power State 3 > + { > + } > + > + Method (_PS0, 0, Serialized) // _PS0: Power State 0 > + { > + } > + */ > + Name (SBUF, ResourceTemplate () > + { > + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, > IoRestrictionOutputOnly, > + "\\_SB.GPO0", 0x00, ResourceConsumer, , > + ) > + { > + 0x0A // GPIO_10 > + } > + //I2C for CMOS > + I2cSerialBus (0x0010, ControllerInitiated, 0x00061A80, > + AddressingMode7Bit, "\\_SB.PCI0.I2C0", > + 0x00, ResourceConsumer, , > + ) > + }) > + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Setti= ngs > + { > + Return (SBUF) > + } > + > + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method > + { > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0x6A, 0xA7, 0x7B, 0x37, 0x90, 0xF3,= 0xFF, 0x4A, > + /* 0008 */ 0xAB, 0x38, 0x9B, 0x1B, 0xF3, 0x3A,= 0x30, 0x15 > + })) > + { > + Return ("SONY219A") //DSDT_CAM_HWID > + } > + > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0xAA, 0xAA, 0x62, 0x3C, 0xE0, 0xD8,= 0x1A, 0x40, > + /* 0008 */ 0x84, 0xC3, 0xFC, 0x05, 0x65, 0x6F,= 0xA2, 0x8C > + })) > + { > + Return ("IMX219") //DSDT_CAM_CMOS > + } > + > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0x8F, 0xCE, 0x2A, 0x82, 0x14, 0x28,= 0x74, 0x41, > + /* 0008 */ 0xA5, 0x6B, 0x5F, 0x02, 0x9F, 0xE0,= 0x79, 0xEE > + })) > + { > + Return ("RasperryPi") //DSDT_CAM_MODULE > + } > + > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0x2A, 0x51, 0x59, 0x29, 0x8C, 0x02,= 0x46, 0x46, > + /* 0008 */ 0xB7, 0x3D, 0x4D, 0x1B, 0x56, 0x72,= 0xFA, 0xD8 > + })) > + { > + Return ("Intel_RVP") //DSDT_CAM_CUSTOM > + } > + > + > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0xD8, 0x7B, 0x3B, 0xEA, 0x9B, 0xE0,= 0x39, 0x42, > + /* 0008 */ 0xAD, 0x6E, 0xED, 0x52, 0x5F, 0x3F,= 0x26, 0xAB > + })) > + { > + Return (0x1020) //DSDT_CAM_MIPIPORT > + } > + > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0x92, 0xC4, 0x5A, 0xB6, 0x30, 0x9E,= 0x60, 0x4D, > + /* 0008 */ 0xB5, 0xB2, 0xF4, 0x97, 0xC7, 0x90,= 0xD9, 0xCF > + })) > + { > + Return (Zero) //DSDT_CAM_FUNC > + } > + > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0x0F, 0xAB, 0x70, 0xE7, 0x44, 0x26,= 0xAB, 0x4B, > + /* 0008 */ 0x86, 0x28, 0xD6, 0x2F, 0x16, 0x83,= 0xFB, 0x9D > + })) > + { > + Return (Zero) //DSDT_CAM_ROM > + } > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0xB2, 0x4A, 0xA5, 0x1E, 0x84, 0xCD,= 0xCC, 0x48, > + /* 0008 */ 0x9D, 0xD4, 0x7F, 0x59, 0x4E, 0xC3,= 0xB0, 0x15 > + })) > + { > + Return (Zero) //DSDT_CAM_INTF_VER > + } > + > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0x39, 0xA6, 0xC9, 0x75, 0x8A, 0x5C,= 0x00, 0x4A, > + /* 0008 */ 0x9F, 0x48, 0xA9, 0xC3, 0xB5, 0xDA,= 0x78, 0x9F > + })) > + { > + Return (Zero) //DSDT_CAM_VCM > + } > + > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0x51, 0x26, 0xBE, 0x8D, 0xC1, 0x70,= 0x6F, 0x4C, > + /* 0008 */ 0xAC, 0x87, 0xA3, 0x7C, 0xB4, 0x6E,= 0x4A, 0xF6 > + })) > + { > + Return (0x0) //MCLK0 --> OSC_CLKOUT_R_0 > + } > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0x49, 0x75, 0x25, 0x26, 0x71, 0x92,= 0xA4, 0x4C, > + /* 0008 */ 0xBB, 0x43, 0xC4, 0x89, 0x9D, 0x5A,= 0x48, 0x81 > + })) > + > + { > + If (LEqual (Arg2, One)) //DSDT_CAM_I2C > + { > + Return (One) > + } > + > + If (LEqual (Arg2, 0x02)) > + { > + Return (0x03003600) > + } > + } > + > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0x40, 0x46, 0x23, 0x79, 0x10, 0x9E,= 0xEA, 0x4F, > + /* 0008 */ 0xA5, 0xC1, 0xB5, 0xAA, 0x8B, 0x19,= 0x75, 0x6F > + })) > + { > + If (LEqual (Arg2, One)) //DSDT_CAM_GPIO > + { > + Return (0x01) > + } > + > + If (LEqual (Arg2, 0x02)) > + { > + Return (0x01004300) > + } > + } > + > + Return (Zero) > + } > + } > + > +} // Scope(\_SB.PCI0.I2C4) > diff --git > a/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/PlatformSs > dt/Camera/Camera_Sony219B.asl > b/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/PlatformSs > dt/Camera/Camera_Sony219B.asl > new file mode 100644 > index 000000000..cb38f1729 > --- /dev/null > +++ > b/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/PlatformSs > dt/Camera/Camera_Sony219B.asl > @@ -0,0 +1,218 @@ > +/** @file > + Copyright (c) 2012 - 2018, Intel Corporation. All rights reserved.
> + > + This program and the accompanying materials > + are licensed and made available under the terms and conditions of the = BSD > License > + which accompanies this distribution. The full text of the license may= be > found at > + http://opensource.org/licenses/bsd-license.php. > + > + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" > BASIS, > + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER > EXPRESS OR IMPLIED. > + > +**/ > + > + > +Scope(\_SB.PCI0.I2C6) > +{ > + Device (CAM4) > + { > + // > + // Front Camera IMX219 > + // > + Name (_ADR, Zero) // _ADR: Address > + Name (_HID, "SONY219A") // _HID: Hardware ID > + Name (_CID, "SONY219A") // _CID: Compatible ID > + Name (_SUB, "INTL0000") // _SUB: Subsystem ID > + Name (_DDN, "SONY IMX219") // _DDN: DOS Device Name > + Name (_UID, One) // _UID: Unique ID > + /* need to be update after power on > + Name (_DEP, Package () // _DEP: Dependencies > + { > + //PMIC device > + }) > + > + Name (_PR0, Package (0x03) // _PR0: Power Resources for D0 > + { > + // Power and Clock > + }) > + */ > + Name (PLDB, Package (0x01) > + { > + Buffer (0x14) > + { > + /* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0= x00, > + /* 0008 */ 0x61, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0= x00, > + /* 0010 */ 0xFF, 0xFF, 0xFF, 0xFF > + } > + }) > + Method (_PLD, 0, Serialized) // _PLD: Physical Location of Devi= ce > + { > + Return (PLDB) > + } > + > + Method (_STA, 0, NotSerialized) // _STA: Status > + { > + If(LEqual(UCAS,2)) { // 2-IMX219 > + Return (0x0F) > + } > + Return (0x0) > + } > + /* > + Method (_PS3, 0, Serialized) // _PS3: Power State 3 > + { > + } > + > + Method (_PS0, 0, Serialized) // _PS0: Power State 0 > + { > + } > + */ > + Name (SBUF, ResourceTemplate () > + { > + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, > IoRestrictionOutputOnly, > + "\\_SB.GPO0", 0x00, ResourceConsumer, , > + ) > + { > + 0x13 // GPIO_19 > + } > + //I2C for CMOS > + I2cSerialBus (0x0010, ControllerInitiated, 0x00061A80, > + AddressingMode7Bit, "\\_SB.PCI0.I2C6", > + 0x00, ResourceConsumer, , > + ) > + }) > + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Setti= ngs > + { > + Return (SBUF) > + } > + > + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method > + { > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0x6A, 0xA7, 0x7B, 0x37, 0x90, 0xF3,= 0xFF, 0x4A, > + /* 0008 */ 0xAB, 0x38, 0x9B, 0x1B, 0xF3, 0x3A,= 0x30, 0x15 > + })) > + { > + Return ("SONY219A") //DSDT_CAM_HWID > + } > + > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0xAA, 0xAA, 0x62, 0x3C, 0xE0, 0xD8,= 0x1A, 0x40, > + /* 0008 */ 0x84, 0xC3, 0xFC, 0x05, 0x65, 0x6F,= 0xA2, 0x8C > + })) > + { > + Return ("IMX219") //DSDT_CAM_CMOS > + } > + > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0x8F, 0xCE, 0x2A, 0x82, 0x14, 0x28,= 0x74, 0x41, > + /* 0008 */ 0xA5, 0x6B, 0x5F, 0x02, 0x9F, 0xE0,= 0x79, 0xEE > + })) > + { > + Return ("RasperryPi") //DSDT_CAM_MODULE > + } > + > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0x2A, 0x51, 0x59, 0x29, 0x8C, 0x02,= 0x46, 0x46, > + /* 0008 */ 0xB7, 0x3D, 0x4D, 0x1B, 0x56, 0x72,= 0xFA, 0xD8 > + })) > + { > + Return ("Intel_RVP") //DSDT_CAM_CUSTOM > + } > + > + > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0xD8, 0x7B, 0x3B, 0xEA, 0x9B, 0xE0,= 0x39, 0x42, > + /* 0008 */ 0xAD, 0x6E, 0xED, 0x52, 0x5F, 0x3F,= 0x26, 0xAB > + })) > + { > + Return (0x1022) //DSDT_CAM_MIPIPORT > + } > + > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0x92, 0xC4, 0x5A, 0xB6, 0x30, 0x9E,= 0x60, 0x4D, > + /* 0008 */ 0xB5, 0xB2, 0xF4, 0x97, 0xC7, 0x90,= 0xD9, 0xCF > + })) > + { > + Return (Zero) //DSDT_CAM_FUNC > + } > + > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0x0F, 0xAB, 0x70, 0xE7, 0x44, 0x26,= 0xAB, 0x4B, > + /* 0008 */ 0x86, 0x28, 0xD6, 0x2F, 0x16, 0x83,= 0xFB, 0x9D > + })) > + { > + Return (Zero) //DSDT_CAM_ROM > + } > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0xB2, 0x4A, 0xA5, 0x1E, 0x84, 0xCD,= 0xCC, 0x48, > + /* 0008 */ 0x9D, 0xD4, 0x7F, 0x59, 0x4E, 0xC3,= 0xB0, 0x15 > + })) > + { > + Return (Zero) //DSDT_CAM_INTF_VER > + } > + > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0x39, 0xA6, 0xC9, 0x75, 0x8A, 0x5C,= 0x00, 0x4A, > + /* 0008 */ 0x9F, 0x48, 0xA9, 0xC3, 0xB5, 0xDA,= 0x78, 0x9F > + })) > + { > + Return (Zero) //DSDT_CAM_VCM > + } > + > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0x51, 0x26, 0xBE, 0x8D, 0xC1, 0x70,= 0x6F, 0x4C, > + /* 0008 */ 0xAC, 0x87, 0xA3, 0x7C, 0xB4, 0x6E,= 0x4A, 0xF6 > + })) > + { > + Return (0x0) //MCLK0 --> OSC_CLKOUT_R_0 > + } > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0x49, 0x75, 0x25, 0x26, 0x71, 0x92,= 0xA4, 0x4C, > + /* 0008 */ 0xBB, 0x43, 0xC4, 0x89, 0x9D, 0x5A,= 0x48, 0x81 > + })) > + > + { > + If (LEqual (Arg2, One)) //DSDT_CAM_I2C > + { > + Return (One) > + } > + > + If (LEqual (Arg2, 0x02)) > + { > + Return (0x03003600) > + } > + } > + > + If (LEqual (Arg0, Buffer (0x10) > + { > + /* 0000 */ 0x40, 0x46, 0x23, 0x79, 0x10, 0x9E,= 0xEA, 0x4F, > + /* 0008 */ 0xA5, 0xC1, 0xB5, 0xAA, 0x8B, 0x19,= 0x75, 0x6F > + })) > + { > + If (LEqual (Arg2, One)) //DSDT_CAM_GPIO > + { > + Return (0x01) > + } > + > + If (LEqual (Arg2, 0x02)) > + { > + Return (0x01004300) > + } > + } > + > + Return (Zero) > + } > + } > + > +} // Scope(\_SB.PCI0.I2C4) > diff --git > a/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/PlatformSs > dt/PlatformSsdt.asl > b/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/PlatformSs > dt/PlatformSsdt.asl > index 9cd50ae7f..b86baf357 100644 > --- > a/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/PlatformSs > dt/PlatformSsdt.asl > +++ > b/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/PlatformSs > dt/PlatformSsdt.asl > @@ -26,6 +26,7 @@ DefinitionBlock ( > External(\_SB.PCI0.I2C3, DeviceObj) > External(\_SB.PCI0.I2C4, DeviceObj) > External(\_SB.PCI0.I2C5, DeviceObj) > + External(\_SB.PCI0.I2C6, DeviceObj) > External(\_SB.PCI0.I2C7, DeviceObj) > External(\_SB.PCI0.URT1, DeviceObj) > External(\_SB.PCI0.URT2, DeviceObj) > @@ -52,6 +53,8 @@ DefinitionBlock ( > include ("Camera/Camera_INT3471.asl") > include ("Camera/Camera_INT3474.asl") > include ("Camera/Camera_Sony214A.asl") > + include ("Camera/Camera_Sony219A.asl") > + include ("Camera/Camera_Sony219B.asl") > include ("Camera/Flash_TPS61311.asl") > } >=20 > diff --git > a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupD > xe/UnCore.vfi > b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetup > Dxe/UnCore.vfi > index f8b4b47ec..a185e9fbd 100644 > --- > a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupD > xe/UnCore.vfi > +++ > b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetup > Dxe/UnCore.vfi > @@ -300,14 +300,16 @@ form formid =3D UNCORE_FORM_ID, > help =3D STRING_TOKEN(STR_WORLDCAMERA_SELECTION_HELP), > option text =3D STRING_TOKEN(STR_DISABLE), value =3D 0, flags =3D > RESET_REQUIRED; > option text =3D STRING_TOKEN(STR_IMX214), value =3D 1, flags =3D > RESET_REQUIRED; > - option text =3D STRING_TOKEN(STR_IMX135), value =3D 2, flags =3D > MANUFACTURING | DEFAULT | RESET_REQUIRED; > + option text =3D STRING_TOKEN(STR_IMX135), value =3D 2, flags =3D > RESET_REQUIRED; > + option text =3D STRING_TOKEN(STR_IMX219), value =3D 3, flags =3D > MANUFACTURING | DEFAULT | RESET_REQUIRED; > endoneof; >=20 > oneof varid =3D Setup.UserCameraSel, > prompt =3D STRING_TOKEN(STR_USERCAMERA_SELECTION_PROMPT), > help =3D STRING_TOKEN(STR_USERCAMERA_SELECTION_HELP), > - option text =3D STRING_TOKEN(STR_DISABLE), value =3D 0, flags =3D > RESET_REQUIRED; > - option text =3D STRING_TOKEN(STR_OV2740), value =3D 1, flags =3D > MANUFACTURING | DEFAULT | RESET_REQUIRED; > + option text =3D STRING_TOKEN(STR_DISABLE), value =3D 0, flags =3D > MANUFACTURING | DEFAULT | RESET_REQUIRED; > + option text =3D STRING_TOKEN(STR_OV2740), value =3D 1, flags =3D > RESET_REQUIRED; > + option text =3D STRING_TOKEN(STR_IMX219), value =3D 2, flags =3D > RESET_REQUIRED; > endoneof; >=20 > // Rotation > diff --git > a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupD > xe/VfrStrings.uni > b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetup > Dxe/VfrStrings.uni > index > 163b750c3b0c54bd54a0760effffcc6c8296ebe1..df868581ebdda14ee03287bbb > 2d73bd40e03dbe8 100644 > GIT binary patch > delta 60 > zcmcb2Rp`$(p$$Reler#AaC a5HoMj > J6K5%y3;<2w5&{4K >=20 > delta 39 > scmex!P3YcLp$$RelV@039m}#Q*>R >=20 > -- > 2.14.1.windows.1