;* Copyright 2012, 2013 Broadcom Corporation -- http://www.broadcom.com
;* This program is the proprietary software of Broadcom Corporation and/or
;* its licensors, and may only be used, duplicated, modified or distributed
;* pursuant to the terms and conditions of a separate, written license
;* agreement executed between you and Broadcom (an "Authorized License").
;* Except as set forth in an Authorized License, Broadcom grants no license
;* (express or implied), right to use, or waiver of any kind with respect to
;* the Software, and Broadcom expressly reserves all rights in and to the
;* Software and all intellectual property rights therein. IF YOU HAVE NO
;* AUTHORIZED LICENSE, THEN YOU HAVE NO RIGHT TO USE THIS SOFTWARE IN ANY
;* WAY, AND SHOULD IMMEDIATELY NOTIFY BROADCOM AND DISCONTINUE ALL USE OF
;* THE SOFTWARE.
;******************************************************************************/
;
; Broadcom GNSS Location Sensor driver for Windows 8 and beyond
;
; BcmGnssLocationSensor.inf
;

[Version]
Signature	= "$Windows NT$"
Class		= Sensor
ClassGuid	= {5175D334-C371-4806-B3BA-71FD53C9258D}
Provider	= %Broadcom%
CatalogFile	= BcmGnssLocationSensor.cat
PnpLockdown = 1
DriverVer=07/02/2015,20.23.5685.18
; =================== Manufacturer/Models sections =======================

[Manufacturer]
%Broadcom%  = Broadcom,NTx86

[Broadcom.NTx86]
%BcmGnssLocSensor.DescAcpi47521%        = BcmGnssLocationSensor_BCM47521,Sensors\BcmGnssLocationSensor_BCM_4752_0001        ; Broadcom 47521 on ACPI
%BcmGnssLocSensor.DescAcpi47520%        = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_BCM_4752_0000         ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.Desc47521ACPICP21x%   = BcmGnssLocationSensor_BCM4752ACPICP21x,Sensors\BcmGNSSLocationSensor_BCM_4752_C201	; Broadcom 47521 on ACPI\CP21x
%BcmGnssLocSensor.Desc4752ACPICP21x%    = BcmGnssLocationSensor_BCM4752ACPICP21x,Sensors\BcmGNSSLocationSensor_BCM_4752_C200    ; Broadcom 4752 on ACPI\CP21x

%BcmGnssLocSensor.Desc47521CP21x%   = BcmGnssLocationSensor_BCM47521CP21x,Sensors\BcmGnssLocationSensor_BCM_4752_0001_CP21x ; Broadcom 47521 on CP21x
%BcmGnssLocSensor.Desc4752CP21x%    = BcmGnssLocationSensor_BCM4752CP21x,Sensors\BcmGnssLocationSensor_BCM_4752_0000_CP21x  ; Broadcom 4752 on CP21x

%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_AAM_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_ACR_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_ACR_4752_0A00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_ACR_4752_0B00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_ASUS_4752_0000  ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_ASUS_4752_0A00  ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_ASUS_4752_0B00  ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_ASUS_4752_0C00  ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_ASUS_4752_0D00  ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_ASUS_4752_0E00  ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_ASUS_4752_0F00  ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_AZH_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_BLD_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_BLD_4752_0A00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_BYD_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_CLO_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_CZC_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_CZC_4752_0A00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_DSUO_4752_0000  ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_DSUO_4752_0A00  ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_ECS_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_ECS_4752_0A00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_ECS_4752_0B00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_ECS_4752_0C00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_ECS_4752_0D00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_FOX_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_FOX_4752_0A00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_FOX_4752_0B00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_FOX_4752_0C00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_FOX_4752_0D00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_FUJ_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_HAMP_4752_0000  ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_HAMP_4752_0A00  ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_HAMP_4752_0B00  ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_HAMP_4752_0C00  ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_HPQC_4752_0000  ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_HPQC_4752_0A00  ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_HPQC_4752_0B00  ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_HPQC_4752_0C00  ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_HPQC_4752_0D00  ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_HPQC_4752_0E00  ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_HPQC_4752_0F00  ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_HTR_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_HTR_4752_0A00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_IPQ_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_IPQ_4752_0A00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_IPQ_4752_0B00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_INE_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_KSG_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_LNV_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_LNV_4752_0A00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_LNV_4752_0B00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_LNV_4752_0C00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_LNV_4752_0D00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_LNV_4752_0E00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_LNV_4752_0F00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_LNV_4752_1A00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_LNV_4752_1B00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_LNV_4752_1C00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_MLT_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_MLT_4752_0A00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_MLT_4752_0B00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_MXB_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_MSHW_0010_0000  ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_NEC_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_NMP_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_PEG_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_PEG_4752_0A00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_QCI_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_QCI_4752_0A00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_RFX_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_SHP_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_SSE_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_SSE_4752_0A00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_SSL_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_TOS_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_TOS_4752_0A00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_TOS_4752_0B00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_TOS_4752_0C00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_TOS_4752_0D00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_TOS_4752_0E00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_TOS_4752_0F00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_TPD_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_TPD_4752_0A00   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_VAI_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_WST_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_ZWE_4752_0000   ; Broadcom 4752 on ACPI
%BcmGnssLocSensor.DescAcpi47520%    = BcmGnssLocationSensor_BCM4752,Sensors\BcmGnssLocationSensor_ZWE_4752_0A00   ; Broadcom 4752 on ACPI

; ============ Section to support driver updates on platforms that use CP210x based UART's =============
%BcmGnssLocSensor.Desc4752CP21x%    = BcmGnssLocationSensor_BCM4752CP21x,ACPI\VEN_FUJ&DEV_4752&REV_CA00  ; Broadcom 4752 on CP21x
%BcmGnssLocSensor.Desc4752CP21x%    = BcmGnssLocationSensor_BCM4752CP21x,ACPI\VEN_HTR&DEV_4752&REV_CA00  ; Broadcom 4752 on CP21x
%BcmGnssLocSensor.Desc4752CP21x%    = BcmGnssLocationSensor_BCM4752CP21x,ACPI\VEN_PEG&DEV_4752&REV_CA00  ; Broadcom 4752 on CP21x
%BcmGnssLocSensor.Desc4752CP21x%    = BcmGnssLocationSensor_BCM4752CP21x,ACPI\VEN_PEG&DEV_4752&REV_CB00  ; Broadcom 4752 on CP21x
%BcmGnssLocSensor.Desc4752CP21x%    = BcmGnssLocationSensor_BCM4752CP21x,ACPI\VEN_WST&DEV_4752&REV_CA00  ; Broadcom 4752 on CP21x

%BcmGnssLocSensor.Desc4752CP21x%    = BcmGnssLocationSensor_BCM4752CP21x,ACPI\FUJ4752                    ; Broadcom 4752 on CP21x (No revision ID for Win7)

; ================================== BCM47521 - Broadcom 47521 on ACPI==================================

[BcmGnssLocationSensor_BCM47521.NT]
CopyFiles   = UMDriverCopy, GnssFileCopy, ACPICopy
AddProperty = DriverPropertiesSection
AddReg      = RadioManager_AddReg
Reboot ; Reboot directive added to prevent torn-state during SOC servicing

[BcmGnssLocationSensor_BCM47521.NT.hw]
AddReg  = BcmGnssLocationSensor_BCM47521.NT.AddReg

[BcmGnssLocationSensor_BCM47521.NT.AddReg]
HKR,,"PortableDeviceResultsBufferMin",0x10001,8192 ; Set WPD buffer size to 8 MB.
HKLM,"SYSTEM\CurrentControlSet\Control\RadioManagement\Misc\BcmGnssRadioManager\Location\GLL","RfType",%REG_SZ%,"GL_RF_47521_BRCM_EXT_LNA"
HKLM,"SYSTEM\CurrentControlSet\Control\RadioManagement\Misc\BcmGnssRadioManager\Location\GLL","FrqPlan",%REG_SZ%,"FRQ_PLAN_26MHZ_2PPM"
HKLM,"SYSTEM\CurrentControlSet\Control\RadioManagement\Misc\BcmGnssRadioManager\Location\HAL","AsicBaudRate",%REG_MULTI_SZ%,"1500000","1228800","921600"

[BcmGnssLocationSensor_BCM47521.NT.Services]
AddService  = WUDFRd,0x000001fa,WUDFRD_ServiceInstall

[BcmGnssLocationSensor_BCM47521.NT.CoInstallers]
AddReg      = WUDF_CoInstallers_AddReg
CopyFiles   = WUDF_CoInstallers_CopyFiles

[BcmGnssLocationSensor_BCM47521.NT.Wdf]
UmdfService             = BcmGnssLocationSensor,UMDFSensorDriverService_Install
UmdfServiceOrder        = BcmGnssLocationSensor
UmdfImpersonationLevel  = Impersonation

; ================================== BCM4752 - Broadcom 4752 on ACPI==================================

[BcmGnssLocationSensor_BCM4752.NT]
CopyFiles   = UMDriverCopy, GnssFileCopy, ACPICopy
AddProperty = DriverPropertiesSection
AddReg      = RadioManager_AddReg
Reboot ; Reboot directive added to prevent torn-state during SOC servicing

[BcmGnssLocationSensor_BCM4752.NT.hw]
AddReg  = BcmGnssLocationSensor_BCM4752.NT.AddReg

[BcmGnssLocationSensor_BCM4752.NT.AddReg]
HKR,,"PortableDeviceResultsBufferMin",0x10001,8192 ; Set WPD buffer size to 8 MB.
HKLM,"SYSTEM\CurrentControlSet\Control\RadioManagement\Misc\BcmGnssRadioManager\Location\GLL","RfType",%REG_SZ%,"GL_RF_4752_BRCM_EXT_LNA"
HKLM,"SYSTEM\CurrentControlSet\Control\RadioManagement\Misc\BcmGnssRadioManager\Location\GLL","FrqPlan",%REG_SZ%,"FRQ_PLAN_26MHZ_2PPM"
HKLM,"SYSTEM\CurrentControlSet\Control\RadioManagement\Misc\BcmGnssRadioManager\Location\HAL","AsicBaudRate",%REG_MULTI_SZ%,"1500000","1228800","921600"

[BcmGnssLocationSensor_BCM4752.NT.Services]
AddService  = WUDFRd,0x000001fa,WUDFRD_ServiceInstall

[BcmGnssLocationSensor_BCM4752.NT.CoInstallers]
AddReg      = WUDF_CoInstallers_AddReg
CopyFiles   = WUDF_CoInstallers_CopyFiles

[BcmGnssLocationSensor_BCM4752.NT.Wdf]
UmdfService             = BcmGnssLocationSensor,UMDFSensorDriverService_Install
UmdfServiceOrder        = BcmGnssLocationSensor
UmdfImpersonationLevel  = Impersonation

; ================================== BCM47521CP21x - Broadcom 47521 on CP21x ==================================

[BcmGnssLocationSensor_BCM47521CP21x.NT]
CopyFiles   = UMDriverCopy, GnssFileCopy, CP21xCopy
AddProperty = DriverPropertiesSection
AddReg      = RadioManager_AddReg

[BcmGnssLocationSensor_BCM47521CP21x.NT.hw]
AddReg  = BcmGnssLocationSensor_BCM47521CP21x.NT.AddReg

[BcmGnssLocationSensor_BCM47521CP21x.NT.AddReg]
HKR,,"PortableDeviceResultsBufferMin",0x10001,8192 ; Set WPD buffer size to 8 MB.
HKLM,"SYSTEM\CurrentControlSet\Control\RadioManagement\Misc\BcmGnssRadioManager\Location\GLL","RfType",%REG_SZ%,"GL_RF_47521_BRCM_EXT_LNA"
HKLM,"SYSTEM\CurrentControlSet\Control\RadioManagement\Misc\BcmGnssRadioManager\Location\GLL","FrqPlan",%REG_SZ%,"FRQ_PLAN_26MHZ_2PPM"
HKLM,"SYSTEM\CurrentControlSet\Control\RadioManagement\Misc\BcmGnssRadioManager\Location\HAL","PortName",%REG_SZ%,"auto:cp210x"
HKLM,"SYSTEM\CurrentControlSet\Control\RadioManagement\Misc\BcmGnssRadioManager\Location\HAL","AsicBaudRate",%REG_DWORD%,921600

[BcmGnssLocationSensor_BCM47521CP21x.NT.Services]
AddService  = WUDFRd,0x000001fa,WUDFRD_ServiceInstall

[BcmGnssLocationSensor_BCM47521CP21x.NT.CoInstallers]
AddReg      = WUDF_CoInstallers_AddReg
CopyFiles   = WUDF_CoInstallers_CopyFiles

[BcmGnssLocationSensor_BCM47521CP21x.NT.Wdf]
UmdfService             = BcmGnssLocationSensor,UMDFSensorDriverService_Install
UmdfServiceOrder        = BcmGnssLocationSensor
UmdfImpersonationLevel  = Impersonation

; ================================== BCM4752ACPICP21x - Broadcom 4752 on ACPI/CP21x ==================================

[BcmGnssLocationSensor_BCM4752ACPICP21x.NT]
CopyFiles   = UMDriverCopy, GnssFileCopy, CP21xCopy
AddProperty = DriverPropertiesSection
AddReg      = RadioManager_AddReg
Reboot ; Reboot directive added to prevent torn-state during SOC servicing

[BcmGnssLocationSensor_BCM4752ACPICP21x.NT.hw]
AddReg  = BcmGnssLocationSensor_BCM4752ACPICP21x.NT.AddReg

[BcmGnssLocationSensor_BCM4752ACPICP21x.NT.AddReg]
HKR,,"PortableDeviceResultsBufferMin",0x10001,8192 ; Set WPD buffer size to 8 MB.
HKLM,"SYSTEM\CurrentControlSet\Control\RadioManagement\Misc\BcmGnssRadioManager\Location\GLL","RfType",%REG_SZ%,"GL_RF_4752_BRCM_EXT_LNA"
HKLM,"SYSTEM\CurrentControlSet\Control\RadioManagement\Misc\BcmGnssRadioManager\Location\GLL","FrqPlan",%REG_SZ%,"FRQ_PLAN_26MHZ_2PPM"
HKLM,"SYSTEM\CurrentControlSet\Control\RadioManagement\Misc\BcmGnssRadioManager\Location\HAL","PortName",%REG_SZ%,"acpi:cp210x"
HKLM,"SYSTEM\CurrentControlSet\Control\RadioManagement\Misc\BcmGnssRadioManager\Location\HAL","AsicBaudRate",%REG_MULTI_SZ%,"921600"

[BcmGnssLocationSensor_BCM4752ACPICP21x.NT.Services]
AddService  = WUDFRd,0x000001fa,WUDFRD_ServiceInstall

[BcmGnssLocationSensor_BCM4752ACPICP21x.NT.CoInstallers]
AddReg      = WUDF_CoInstallers_AddReg
CopyFiles   = WUDF_CoInstallers_CopyFiles

[BcmGnssLocationSensor_BCM4752ACPICP21x.NT.Wdf]
UmdfService             = BcmGnssLocationSensor,UMDFSensorDriverService_Install
UmdfServiceOrder        = BcmGnssLocationSensor
UmdfImpersonationLevel  = Impersonation

; ================================== BCM4752CP21x - Broadcom 4752 on CP21x ==================================

[BcmGnssLocationSensor_BCM4752CP21x.NT]
CopyFiles   = UMDriverCopy, GnssFileCopy, CP21xCopy
AddProperty = DriverPropertiesSection
AddReg      = RadioManager_AddReg

[BcmGnssLocationSensor_BCM4752CP21x.NT.hw]
AddReg  = BcmGnssLocationSensor_BCM4752CP21x.NT.AddReg

[BcmGnssLocationSensor_BCM4752CP21x.NT.AddReg]
HKR,,"PortableDeviceResultsBufferMin",0x10001,8192 ; Set WPD buffer size to 8 MB.
HKLM,"SYSTEM\CurrentControlSet\Control\RadioManagement\Misc\BcmGnssRadioManager\Location\GLL","RfType",%REG_SZ%,"GL_RF_4752_BRCM_EXT_LNA"
HKLM,"SYSTEM\CurrentControlSet\Control\RadioManagement\Misc\BcmGnssRadioManager\Location\GLL","FrqPlan",%REG_SZ%,"FRQ_PLAN_26MHZ_2PPM"
HKLM,"SYSTEM\CurrentControlSet\Control\RadioManagement\Misc\BcmGnssRadioManager\Location\HAL","PortName",%REG_SZ%,"auto:cp210x"
HKLM,"SYSTEM\CurrentControlSet\Control\RadioManagement\Misc\BcmGnssRadioManager\Location\HAL","AsicBaudRate",%REG_DWORD%,921600

[BcmGnssLocationSensor_BCM4752CP21x.NT.Services]
AddService  = WUDFRd,0x000001fa,WUDFRD_ServiceInstall

[BcmGnssLocationSensor_BCM4752CP21x.NT.CoInstallers]
AddReg      = WUDF_CoInstallers_AddReg
CopyFiles   = WUDF_CoInstallers_CopyFiles

[BcmGnssLocationSensor_BCM4752CP21x.NT.Wdf]
UmdfService             = BcmGnssLocationSensor,UMDFSensorDriverService_Install
UmdfServiceOrder        = BcmGnssLocationSensor
UmdfImpersonationLevel  = Impersonation

; ================================== UMDF Service Install section ==================================

[UMDFSensorDriverService_Install]
UmdfLibraryVersion  = 1.11.0
ServiceBinary       = %12%\UMDF\BcmGnssLocationSensor.dll
DriverCLSID         = {46F92918-07DE-4466-8FBA-61D3AA195B49}

[WUDFRD_ServiceInstall]
DisplayName     = %WudfRdDisplayName%
ServiceType     = 1
StartType       = 3
ErrorControl    = 1
ServiceBinary   = %12%\WUDFRd.sys

[SourceDisksFiles]
BcmGnssLocationSensor.dll   = 1
BcmGnss.dll         = 1
BcmGnssAtRil.dll    = 1
BcmGnssConfig.xml   = 1
BcmGnssGpioAcpi.dll = 1
BcmGnssGpioCp210x.dll   = 1
CP210xRuntime.dll       = 1

[SourceDisksNames]
1 = %MediaDescription%

[WUDF_CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"WUDFCoInstaller.dll"

[WUDF_CoInstallers_CopyFiles]

[RadioManager_AddReg]
HKCR,CLSID\{46F92918-07DE-4466-8FBA-61D3AA195B49},,%REG_SZ%, "Broadcom GNSS Radio Manager"
HKCR,CLSID\{46F92918-07DE-4466-8FBA-61D3AA195B49}\InProcServer32,,%REG_EXPAND_SZ%,"%SystemRoot%\system32\drivers\UMDF\BcmGnssLocationSensor.dll"
HKCR,CLSID\{46F92918-07DE-4466-8FBA-61D3AA195B49}\InProcServer32,"ThreadingModel",%REG_SZ%,"Both"
HKLM,SYSTEM\CurrentControlSet\Control\RadioManagement\{46F92918-07DE-4466-8FBA-61D3AA195B49},"GnssRadioManager",%REG_EXPAND_SZ%,"%SystemRoot%\system32\drivers\UMDF\BcmGnssLocationSensor.dll"
HKLM,SYSTEM\CurrentControlSet\Control\RadioManagement\{46F92918-07DE-4466-8FBA-61D3AA195B49},"ThreadingModel",%REG_SZ%,"Both"
HKLM,"SYSTEM\CurrentControlSet\Control\RadioManagement\Misc\BcmGnssRadioManager",currRadioState,%REG_DWORD%,0x0
HKLM,"SYSTEM\CurrentControlSet\Control\RadioManagement\Misc\BcmGnssRadioManager",prevRadioState,%REG_DWORD%,0x0

[DestinationDirs]
UMDriverCopy    = 12,UMDF
GnssFileCopy    = 12,UMDF
CP21xCopy       = 12,UMDF
ACPICopy        = 12,UMDF

[UMDriverCopy]
BcmGnssLocationSensor.dll,,,0x00004000  ; COPYFLG_IN_USE_RENAME

[GnssFileCopy]
BcmGnss.dll,,,0x00004000            ; COPYFLG_IN_USE_RENAME
BcmGnssAtRil.dll,,,0x00004000       ; COPYFLG_IN_USE_RENAME
BcmGnssConfig.xml,,,0x00004000      ; COPYFLG_IN_USE_RENAME

[ACPICopy]
BcmGnssGpioAcpi.dll,,,0x00004000    ; COPYFLG_IN_USE_RENAME

[CP21xCopy]
BcmGnssGpioCp210x.dll,,,0x00004000  ; COPYFLG_IN_USE_RENAME
CP210xRuntime.dll,,,0x00004000      ; COPYFLG_IN_USE_RENAME

; ================================== Driver Property section ==================================

[DriverPropertiesSection]
DeviceIcon,,,,"%SystemRoot%\system32\sensorscpl.dll,-1000"

; ================================== Generic ==================================

[Strings]
;Localizable
Broadcom            = "Broadcom Corporation"
MediaDescription    = "Broadcom GNSS Geolocation Sensor Driver Installation Media"
WudfRdDisplayName   = "Windows Driver Foundation - User-mode Driver Framework Reflector"

BcmGnssLocSensor.DescAcpi47521  = "Broadcom GNSS 47521 Geolocation Sensor"
BcmGnssLocSensor.DescAcpi47520  = "Broadcom GNSS 4752 Geolocation Sensor"
BcmGnssLocSensor.Desc47521CP21x = "Broadcom GNSS 47521 Geolocation Sensor USB"
BcmGnssLocSensor.Desc4752CP21x  = "Broadcom GNSS 4752 Geolocation Sensor USB"
BcmGnssLocSensor.Desc47521ACPICP21x	= "Broadcom GNSS 47521 Geolocation Sensor ACPI USB"
BcmGnssLocSensor.Desc4752ACPICP21x	= "Broadcom GNSS 4752 Geolocation Sensor ACPI USB"


;Non-Localizable
REG_BINARY  = 0x00000001
REG_DWORD   = 0x00010001
REG_EXPAND_SZ   = 0x00020000
REG_MULTI_SZ    = 0x00010000
REG_SZ          = 0x00000000
REG_SZ_APPEND   = 0x00010008
