def config2(input, intype='int'):
    """NIRCam CONFIG2 (0x4011) Register
    
    Return a dictionary of configuration parameters depending on the 
    value of CONFIG2 register (4011).
    
    Parameters
    ----------
    input : int, str
        Value of CONFIG2, nominally as an int. Binary and Hex values 
        can also be passed as strings.
    intype: str 
        Input type (int, hex, or bin) for integer, hex, string, 
        or binary string.
        
    """
    if 'hex' in intype:
        if '0x' in input:
            input = int(input, 0)
        else:
            input = int(input, 16)
    if 'bin' in intype:
        if '0b' in input:
            input = int(input, 0)
        else:
            input = int(input, 2)
    input = '{0:016b}'.format(input)
    nff_dict = {'000': 1, '001': 4, '010': 16, '011': 64, '100': 256, '101':
        512, '110': 1024, '111': 2048}
    input2 = input[::-1]
    d = {}
    d['00_window_vert'] = True if bool(int(input2[0])) else False
    d['01_window_horz'] = True if bool(int(input2[1])) else False
    d['02_global_reset'] = True if bool(int(input2[2])) else False
    d['03_rows_reset'] = True if bool(int(input2[3])) else False
    d['04_rows_nff'] = nff_dict.get(input2[4:7][::-1])
    d['07_idle_window'] = True if bool(int(input2[7])) else False
    d['08_pa_reset'] = 'row' if bool(int(input2[8])) else 'frame'
    d['09_perm_reset'] = True if bool(int(input2[9])) else False
    d['10_single_step'] = True if bool(int(input2[10])) else False
    d['11_test_patt'] = True if bool(int(input2[11])) else False
    d['12_fgs_wind'] = True if bool(int(input2[12])) else False
    d['13_power_idl'] = True if bool(int(input2[13])) else False
    d['14_power_drop'] = True if bool(int(input2[14])) else False
    d['15_pa_reset'] = 'int' if bool(int(input2[15])) else 'frame'
    return d
