Add dd mapping for hardware based split handedness (#22369)
This commit is contained in:
parent
b52aca0af8
commit
a19ae3d784
6 changed files with 54 additions and 10 deletions
|
@ -74,7 +74,14 @@ def generate_matrix_size(kb_info_json, config_h_lines):
|
|||
|
||||
def generate_matrix_masked(kb_info_json, config_h_lines):
|
||||
""""Enable matrix mask if required"""
|
||||
mask_required = False
|
||||
|
||||
if 'matrix_grid' in kb_info_json.get('dip_switch', {}):
|
||||
mask_required = True
|
||||
if 'matrix_grid' in kb_info_json.get('split', {}).get('handedness', {}):
|
||||
mask_required = True
|
||||
|
||||
if mask_required:
|
||||
config_h_lines.append(generate_define('MATRIX_MASKED'))
|
||||
|
||||
|
||||
|
@ -141,6 +148,12 @@ def generate_encoder_config(encoder_json, config_h_lines, postfix=''):
|
|||
|
||||
def generate_split_config(kb_info_json, config_h_lines):
|
||||
"""Generate the config.h lines for split boards."""
|
||||
if 'handedness' in kb_info_json['split']:
|
||||
# TODO: change SPLIT_HAND_MATRIX_GRID to require brackets
|
||||
handedness = kb_info_json['split']['handedness']
|
||||
if 'matrix_grid' in handedness:
|
||||
config_h_lines.append(generate_define('SPLIT_HAND_MATRIX_GRID', ', '.join(handedness['matrix_grid'])))
|
||||
|
||||
if 'protocol' in kb_info_json['split'].get('transport', {}):
|
||||
if kb_info_json['split']['transport']['protocol'] == 'i2c':
|
||||
config_h_lines.append(generate_define('USE_I2C'))
|
||||
|
|
|
@ -63,13 +63,14 @@ def _gen_matrix_mask(info_data):
|
|||
cols = info_data['matrix_size']['cols']
|
||||
rows = info_data['matrix_size']['rows']
|
||||
|
||||
# Default mask to everything enabled
|
||||
mask = [['1'] * cols for i in range(rows)]
|
||||
# Default mask to everything disabled
|
||||
mask = [['0'] * cols for i in range(rows)]
|
||||
|
||||
# Automatically mask out dip_switch.matrix_grid locations
|
||||
matrix_grid = info_data.get('dip_switch', {}).get('matrix_grid', [])
|
||||
for row, col in matrix_grid:
|
||||
mask[row][col] = '0'
|
||||
# Mirror layout macros squashed on top of each other
|
||||
for layout_data in info_data['layouts'].values():
|
||||
for key_data in layout_data['layout']:
|
||||
row, col = key_data['matrix']
|
||||
mask[row][col] = '1'
|
||||
|
||||
lines = []
|
||||
lines.append('#ifdef MATRIX_MASKED')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue