diff options
author | Simon Schubert <2@0x2c.org> | 2019-06-10 11:30:01 +0200 |
---|---|---|
committer | Simon Schubert <2@0x2c.org> | 2019-06-10 14:04:25 +0200 |
commit | 88eeafae12b78798f6b886b2d4193b5fa64bac4c (patch) | |
tree | eaff7c02dc6db212f6b147a5193b1a1ddf2b6ab0 /ice40/cells.cc | |
parent | 187db92b0571b87360516598e88f36cdb1f33349 (diff) | |
download | nextpnr-88eeafae12b78798f6b886b2d4193b5fa64bac4c.tar.gz nextpnr-88eeafae12b78798f6b886b2d4193b5fa64bac4c.tar.bz2 nextpnr-88eeafae12b78798f6b886b2d4193b5fa64bac4c.zip |
ice40: add RGB_DRV/LED_DRV_CUR support for u4k
Diffstat (limited to 'ice40/cells.cc')
-rw-r--r-- | ice40/cells.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/ice40/cells.cc b/ice40/cells.cc index 5744fe50..a2abcea4 100644 --- a/ice40/cells.cc +++ b/ice40/cells.cc @@ -260,6 +260,22 @@ std::unique_ptr<CellInfo> create_ice_cell(Context *ctx, IdString type, std::stri add_port(ctx, new_cell.get(), "RGB0", PORT_OUT); add_port(ctx, new_cell.get(), "RGB1", PORT_OUT); add_port(ctx, new_cell.get(), "RGB2", PORT_OUT); + } else if (type == ctx->id("SB_LED_DRV_CUR")) { + add_port(ctx, new_cell.get(), "EN", PORT_IN); + add_port(ctx, new_cell.get(), "LEDPU", PORT_OUT); + } else if (type == ctx->id("SB_RGB_DRV")) { + new_cell->params[ctx->id("RGB0_CURRENT")] = "0b000000"; + new_cell->params[ctx->id("RGB1_CURRENT")] = "0b000000"; + new_cell->params[ctx->id("RGB2_CURRENT")] = "0b000000"; + + add_port(ctx, new_cell.get(), "RGBPU", PORT_IN); + add_port(ctx, new_cell.get(), "RGBLEDEN", PORT_IN); + add_port(ctx, new_cell.get(), "RGB0PWM", PORT_IN); + add_port(ctx, new_cell.get(), "RGB1PWM", PORT_IN); + add_port(ctx, new_cell.get(), "RGB2PWM", PORT_IN); + add_port(ctx, new_cell.get(), "RGB0", PORT_OUT); + add_port(ctx, new_cell.get(), "RGB1", PORT_OUT); + add_port(ctx, new_cell.get(), "RGB2", PORT_OUT); } else if (type == ctx->id("SB_LEDDA_IP")) { add_port(ctx, new_cell.get(), "LEDDCS", PORT_IN); add_port(ctx, new_cell.get(), "LEDDCLK", PORT_IN); |