;
; Broadcom NFC I2C driver for slates
;
; Copyright (c) 2012 Broadcom Corporation
;
[Version]
Signature   = "$WINDOWS NT$"
Class=System
ClassGuid={4D36E97D-E325-11CE-BFC1-08002BE10318}
Provider=%BRCM%
DriverVer=11/20/2012,1.0.0.3900
CatalogFile=BcmNfcIc-x86.cat

[DestinationDirs]
DefaultDestDir = 12

[SourceDisksNames]
1 = %DiskId1%,,,""

[SourceDisksFiles]
BcmNfcIc.sys  = 1,,
BCM20791B2_I2CSDAWAKE_Test_0216_max247.hcd = 1,,
BCM20791B3_002.004.010.0149.0152.ncd = 1,,
BCM20791B3_002.004.010.0149.0153.ncd = 1,,
BCM20791B3_002.004.010.0149.0150.ncd = 1,,
BCM20791B3_002.004.010.0149.0154.ncd = 1,,
BCM20791B3_002.004.010.0149.0151.ncd = 1,,
BCM20791B3_002.004.010.0149.0155.ncd = 1,,

[Manufacturer]
%StdMfg%=Standard,NTx86

[Standard.NTx86]
%BcmNfcIc.DeviceDesc%=BcmNfcIc_2F02,            ACPI\BCM2F02            ; I2C SRAM
%BcmNfcIc.DeviceDesc%=BcmNfcIcGPIO_Device,      ACPI\BCM2F03            ; I2C GPIO SRAM
%BcmNfcIc.DeviceDesc%=BcmNfcIcGPIO_DeviceNvm,   ACPI\BCM2F04            ; I2C GPIO SRAM + NVM
%BcmNfcIc.DeviceDesc%=BcmNfcIcGPIO_DeviceNvm6,  ACPI\BCM2F06            ; I2C GPIO SRAM + NVM
%BcmNfcIc.DeviceDesc%=BcmNfcIc_2F07_08,         ACPI\BCM2F07            ; I2C GPIO SRAM 20792S no EEPPROM
%BcmNfcIc.DeviceDesc%=BcmNfcIc_2F07_08,         ACPI\BCM2F08            ; I2C GPIO SRAM 20792S no EEPPROM - same settings as 2F07

[Standard.NTamd64]
%BcmNfcSm.DeviceDesc%=BcmNfcSm_2F05,            ACPI\BCM2F05            ; SMBus SRAM

[Standard.NTARM]
;%BcmNfcIc.DeviceDesc%=BcmNfcIcB2_2F00,          ACPI\BCM2F00            ; I2C B2
%BcmNfcSm.DeviceDesc%=BcmNfcSm_2F01,            ACPI\BCM2F01            ; SMBus SRAM


[BcmNfcIc_Device.NT.DelReg]
HKR,,"RAMPatchFileName"
HKR,,"PatchFileName"
HKR,,"pre-PatchFileName"
HKR,,"pre-PatchFileNameNvm"
HKR,,"PatchFileNameNvm"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; [BcmNfcIcB2_2F00.NT]
; CopyFiles=BcmNfcIcB2_2F00.Drivers_Dir

; [BcmNfcIcB2_2F00.NT.HW]
; AddReg=BcmNfcIcB2_2F00.NT.AddReg
; DelReg=BcmNfcIc_Device.NT.DelReg       ; clean any rampatch registry

; [BcmNfcIcB2_2F00.NT.AddReg]
; HKR,,DeviceCharacteristics,0x10001,0x0100      ; Use same security checks on relative opens
; ; HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)"   ; Allow generic-all access to Built-in administrators and Local system 
; HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GA;;;WD)"
; HKR,,"PatchFileName",0x00000000,"BCM20791B2_I2CSDAWAKE_Test_0216_max247.hcd"
; HKR,,"NfccType",0x00010001,2
; HKR,,"SeType",0x00010001,0
; HKR,,"SmBusTransport",0x10001, 0
; HKR,,"SleepConfiguration",0x10001, 1
; HKR,,"StartupSequence", 0x00001, FA, F2, 00, 00, 00, 79, 00, 00, 00, 6B
; HKR,,"REG_PU",0x10001, 1
; HKR,,"NFC_WAKE",0x10001, 0
; HKR,,"INVERT_REG_PU",0x10001, 0
; HKR,,"INVERT_NFC_WAKE",0x10001, 0

; [BcmNfcIcB2_2F00.Drivers_Dir]
; BcmNfcIc.sys
; BCM20791B2_I2CSDAWAKE_Test_0216_max247.hcd

; [BcmNfcIcB2_2F00.NT.Services]
; AddService = BcmNfcIc,%SPSVCINST_ASSOCSERVICE%, BcmNfcIc_Service_Inst, Bus_EventLog_Inst


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[BcmNfcIc_2F02.NT]
CopyFiles=BcmNfcIc_2F02.Drivers_Dir

[BcmNfcIc_2F02.NT.HW]
AddReg=BcmNfcIc_2F02.NT.AddReg
DelReg=BcmNfcIc_Device.NT.DelReg       ; clean any rampatch registry

[BcmNfcIc_2F02.NT.AddReg]
HKR,,DeviceCharacteristics,0x10001,0x0100      ; Use same security checks on relative opens
; HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)"   ; Allow generic-all access to Built-in administrators and Local system 
HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GA;;;WD)"
HKR,,"pre-PatchFileName",0x00000000,"BCM20791B3_002.004.010.0149.0150.ncd"
HKR,,"PatchFileName",0x00000000,"BCM20791B3_002.004.010.0149.0151.ncd"
HKR,,"NfccType",0x00010001,3
HKR,,"SeType",0x00010001,0
HKR,,"SmBusTransport",0x10001, 0
HKR,,"REG_PU",0x10001, 0
HKR,,"NFC_WAKE",0x10001, 1
; SleepConfiguration of 0xff indicates a resistor and matching firmware
HKR,,"SleepConfiguration",0x10001, 0xFF
HKR,,"StartupSequence", 0x00001, FA, F2, 00, 00, 00, 79, 00, 00, 00, 6B
HKR,,"REG_PU",0x10001, 0
HKR,,"INVERT_REG_PU",0x10001, 0
HKR,,"LPTD_CFG", 0x00001, 21, 01, 02, FF, FF, 30, 30, 00, 40, 00, 80, 00, 00, 10, 00, 00, 00, 71, 0A, 30, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00

[BcmNfcIc_2F02.Drivers_Dir]
BcmNfcIc.sys
BCM20791B3_002.004.010.0149.0150.ncd
BCM20791B3_002.004.010.0149.0151.ncd

[BcmNfcIc_2F02.NT.Services]
AddService = BcmNfcIc,%SPSVCINST_ASSOCSERVICE%, BcmNfcIc_Service_Inst, Bus_EventLog_Inst


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[BcmNfcSm_2F01.NT]
CopyFiles=BcmNfcSm_2F01.Drivers_Dir

[BcmNfcSm_2F01.NT.HW]
AddReg=BcmNfcSm_2F01.NT.AddReg
DelReg=BcmNfcIc_Device.NT.DelReg       ; clean any rampatch registry

[BcmNfcSm_2F01.NT.AddReg]
HKR,,DeviceCharacteristics,0x10001,0x0100      ; Use same security checks on relative opens
; HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)"   ; Allow generic-all access to Built-in administrators and Local system 
HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GA;;;WD)"
HKR,,"pre-PatchFileName",0x00000000,"BCM20791B3_002.004.010.0149.0150.ncd"
HKR,,"PatchFileName",0x00000000,"BCM20791B3_002.004.010.0149.0151.ncd"
HKR,,"NfccType",0x00010001,3
HKR,,"SeType",0x00010001,0
HKR,,"SmBusTransport",0x10001, 1
; SleepConfiguration of 0 indicates no sleep support
HKR,,"SleepConfiguration",0x10001, 0
HKR,,"StartupSequence", 0x00001, 80, F4, 01, 00

[BcmNfcSm_2F01.Drivers_Dir]
BcmNfcIc.sys
BCM20791B3_002.004.010.0149.0150.ncd
BCM20791B3_002.004.010.0149.0151.ncd

[BcmNfcSm_2F01.NT.Services]
AddService = BcmNfcIc,%SPSVCINST_ASSOCSERVICE%, BcmNfcIc_Service_Inst, Bus_EventLog_Inst


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[BcmNfcIcGPIO_Device.NT]
CopyFiles=BcmNfcIcGPIO_Device.Drivers_Dir

[BcmNfcIcGPIO_Device.NT.HW]
AddReg=BcmNfcIcGPIO_Device.NT.AddReg
DelReg=BcmNfcIc_Device.NT.DelReg       ; clean any rampatch registry

[BcmNfcIcGPIO_Device.NT.AddReg]
HKR,,DeviceCharacteristics,0x10001,0x0100      ; Use same security checks on relative opens
; HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)"   ; Allow generic-all access to Built-in administrators and Local system 
HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GA;;;WD)"
HKR,,"pre-PatchFileName",0x00000000,"BCM20791B3_002.004.010.0149.0150.ncd"
HKR,,"PatchFileName",0x00000000,"BCM20791B3_002.004.010.0149.0151.ncd"
HKR,,"NfccType",0x00010001,3
HKR,,"SeType",0x00010001,0
HKR,,"SmBusTransport",0x10001, 0
HKR,,"SleepConfiguration",0x10001, 1
HKR,,"StartupSequence", 0x00001, FA, F2, 00, 00, 00, 79, 00, 00, 00, 6B
HKR,,"REG_PU",0x10001, 1
HKR,,"NFC_WAKE",0x10001, 0
HKR,,"INVERT_REG_PU",0x10001, 0
HKR,,"INVERT_NFC_WAKE",0x10001, 0

[BcmNfcIcGPIO_Device.Drivers_Dir]
BcmNfcIc.sys
BCM20791B3_002.004.010.0149.0150.ncd
BCM20791B3_002.004.010.0149.0151.ncd

[BcmNfcIcGPIO_Device.NT.Services]
AddService = BcmNfcIc,%SPSVCINST_ASSOCSERVICE%, BcmNfcIc_Service_Inst, Bus_EventLog_Inst



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[BcmNfcIc_2F07_08.NT]
CopyFiles=BcmNfcIc_2F07_08.Drivers_Dir

[BcmNfcIc_2F07_08.NT.HW]
AddReg=BcmNfcIc_2F07_08.NT.AddReg
DelReg=BcmNfcIc_Device.NT.DelReg       ; clean any rampatch registry

[BcmNfcIc_2F07_08.NT.AddReg]
HKR,,DeviceCharacteristics,0x10001,0x0100      ; Use same security checks on relative opens
; HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)"   ; Allow generic-all access to Built-in administrators and Local system 
HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GA;;;WD)"
HKR,,"pre-PatchFileName",0x00000000,"BCM20791B3_002.004.010.0149.0150.ncd"
HKR,,"PatchFileName",0x00000000,"BCM20791B3_002.004.010.0149.0151.ncd"
HKR,,"NfccType",0x00010001,3
HKR,,"SeType",0x00010001,0
HKR,,"SmBusTransport",0x10001, 0
HKR,,"SleepConfiguration",0x10001, 1
HKR,,"StartupSequence", 0x00001, FA, F2, 00, 00, 00, 79, 00, 00, 00, 6B
HKR,,"REG_PU",0x10001, 1
HKR,,"NFC_WAKE",0x10001, 0
HKR,,"INVERT_REG_PU",0x10001, 0
HKR,,"INVERT_NFC_WAKE",0x10001, 0
HKR,,"LPTD_CFG", 0x00001, 21, 01, 02, FF, FF, 30, 40, 00, 40, 00, 80, 00, 00, 10, 00, 00, 00, 71, 0C, 34, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00




[BcmNfcIc_2F07_08.Drivers_Dir]
BcmNfcIc.sys
BCM20791B3_002.004.010.0149.0150.ncd
BCM20791B3_002.004.010.0149.0151.ncd

[BcmNfcIc_2F07_08.NT.Services]
AddService = BcmNfcIc,%SPSVCINST_ASSOCSERVICE%, BcmNfcIc_Service_Inst, Bus_EventLog_Inst


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[BcmNfcSm_2F05.NT]
CopyFiles=BcmNfcSm_2F05.Drivers_Dir

[BcmNfcSm_2F05.NT.HW]
AddReg=BcmNfcSm_2F05.NT.AddReg
DelReg=BcmNfcIc_Device.NT.DelReg       ; clean any rampatch registry

[BcmNfcSm_2F05.NT.AddReg]
HKR,,DeviceCharacteristics,0x10001,0x0100      ; Use same security checks on relative opens
; HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)"   ; Allow generic-all access to Built-in administrators and Local system 
HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GA;;;WD)"
HKR,,"pre-PatchFileName",0x00000000,"BCM20791B3_002.004.010.0149.0152.ncd"
HKR,,"PatchFileName",0x00000000,"BCM20791B3_002.004.010.0149.0153.ncd"
HKR,,"NfccType",0x00010001,3
HKR,,"SeType",0x00010001,0
HKR,,"SmBusTransport",0x10001, 2
; SleepConfiguration of 0xff indicates a resistor and matching firmware
HKR,,"SleepConfiguration",0x10001, 0xFF
HKR,,"StartupSequence", 0x00001, 80, F4, 01, 00

[BcmNfcSm_2F05.Drivers_Dir]
BcmNfcIc.sys
BCM20791B3_002.004.010.0149.0152.ncd
BCM20791B3_002.004.010.0149.0153.ncd

[BcmNfcSm_2F05.NT.Services]
AddService = BcmNfcIc,%SPSVCINST_ASSOCSERVICE%, BcmNfcIc_Service_Inst, Bus_EventLog_Inst


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[BcmNfcIcGPIO_DeviceNvm.NT]
CopyFiles=BcmNfcIcGPIO_DeviceNvm.Drivers_Dir

[BcmNfcIcGPIO_DeviceNvm.NT.HW]
AddReg=BcmNfcIcGPIO_DeviceNvm.NT.AddReg
DelReg=BcmNfcIc_Device.NT.DelReg       ; clean any rampatch registry

[BcmNfcIcGPIO_DeviceNvm.NT.AddReg]
HKR,,DeviceCharacteristics,0x10001,0x0100      ; Use same security checks on relative opens
; HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)"   ; Allow generic-all access to Built-in administrators and Local system 
HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GA;;;WD)"
HKR,,"pre-PatchFileName",0x00000000,"BCM20791B3_002.004.010.0149.0150.ncd"
HKR,,"PatchFileName",0x00000000,"BCM20791B3_002.004.010.0149.0151.ncd"
HKR,,"pre-PatchFileNameNvm",0x00000000,"BCM20791B3_002.004.010.0149.0154.ncd"
HKR,,"PatchFileNameNvm",0x00000000,"BCM20791B3_002.004.010.0149.0155.ncd"
HKR,,"NfccType",0x00010001,3
HKR,,"SeType",0x00010001,0
HKR,,"SmBusTransport",0x10001, 0
HKR,,"SleepConfiguration",0x10001, 1
HKR,,"StartupSequence", 0x00001, FA, F2, 00, 00, 00, 79, 00, 00, 00, 6B
HKR,,"REG_PU",0x10001, 1
HKR,,"NFC_WAKE",0x10001, 0
HKR,,"INVERT_REG_PU",0x10001, 0
HKR,,"INVERT_NFC_WAKE",0x10001, 0

[BcmNfcIcGPIO_DeviceNvm.Drivers_Dir]
BcmNfcIc.sys
BCM20791B3_002.004.010.0149.0150.ncd
BCM20791B3_002.004.010.0149.0151.ncd
BCM20791B3_002.004.010.0149.0154.ncd
BCM20791B3_002.004.010.0149.0155.ncd

[BcmNfcIcGPIO_DeviceNvm.NT.Services]
AddService = BcmNfcIc,%SPSVCINST_ASSOCSERVICE%, BcmNfcIc_Service_Inst, Bus_EventLog_Inst



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[BcmNfcIcGPIO_DeviceNvm6.NT]
CopyFiles=BcmNfcIcGPIO_DeviceNvm6.Drivers_Dir

[BcmNfcIcGPIO_DeviceNvm6.NT.HW]
AddReg=BcmNfcIcGPIO_DeviceNvm6.NT.AddReg
DelReg=BcmNfcIc_Device.NT.DelReg       ; clean any rampatch registry

[BcmNfcIcGPIO_DeviceNvm6.NT.AddReg]
HKR,,DeviceCharacteristics,0x10001,0x0100      ; Use same security checks on relative opens
; HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)"   ; Allow generic-all access to Built-in administrators and Local system 
HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GA;;;WD)"
HKR,,"pre-PatchFileName",0x00000000,"BCM20791B3_002.004.010.0149.0150.ncd"
HKR,,"PatchFileName",0x00000000,"BCM20791B3_002.004.010.0149.0151.ncd"
HKR,,"pre-PatchFileNameNvm",0x00000000,"BCM20791B3_002.004.010.0149.0154.ncd"
HKR,,"PatchFileNameNvm",0x00000000,"BCM20791B3_002.004.010.0149.0155.ncd"
HKR,,"NfccType",0x00010001,3
HKR,,"SeType",0x00010001,0
HKR,,"SmBusTransport",0x10001, 0
HKR,,"SleepConfiguration",0x10001, 1
HKR,,"StartupSequence", 0x00001, FA, F2, 00, 00, 00, 79, 00, 00, 00, 6B
HKR,,"REG_PU",0x10001, 1
HKR,,"NFC_WAKE",0x10001, 0
HKR,,"INVERT_REG_PU",0x10001, 0
HKR,,"INVERT_NFC_WAKE",0x10001, 0
HKR,,"LPTD_CFG", 0x00001, 21, 01, 02, FF, FF, 30, 40, 00, 40, 00, 80, 00, 00, 10, 00, 00, 00, 71, 0C, 34, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00


[BcmNfcIcGPIO_DeviceNvm6.Drivers_Dir]
BcmNfcIc.sys
BCM20791B3_002.004.010.0149.0150.ncd
BCM20791B3_002.004.010.0149.0151.ncd
BCM20791B3_002.004.010.0149.0154.ncd
BCM20791B3_002.004.010.0149.0155.ncd

[BcmNfcIcGPIO_DeviceNvm6.NT.Services]
AddService = BcmNfcIc,%SPSVCINST_ASSOCSERVICE%, BcmNfcIc_Service_Inst, Bus_EventLog_Inst





[BcmNfcIc_Service_Inst]
DisplayName    = %BcmNfcIc.SVCDESC%
ServiceType    = 1               ; SERVICE_KERNEL_DRIVER
StartType      = 3               ; SERVICE_DEMAND_START 
ErrorControl   = 1               ; SERVICE_ERROR_NORMAL
ServiceBinary  = %12%\BcmNfcIc.sys
LoadOrderGroup = Base

[Bus_EventLog_Inst]
AddReg = Bus_EventLog_Inst.reg

[Bus_EventLog_Inst.reg]
HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\IoLogMsg.dll;%%SystemRoot%%\System32\drivers\BcmNfcIc.sys"
HKR,,TypesSupported,0x00010001,7


[Strings]
SPSVCINST_ASSOCSERVICE= 0x00000002
BRCM = "Broadcom"
StdMfg = "(Standard system devices)"
DiskId1 = "Broadcom Installation Disk #1"
BcmNfcIc.DeviceDesc = "NFC I2C Device"
BcmNfcIcGPIO.DeviceDesc = "NFC I2C Device"
BcmNfcSm.DeviceDesc = "NFC SMBus Device"
BcmNfcIc.SVCDESC    = "NFC I2C Service"

