aboutsummaryrefslogtreecommitdiffstats
path: root/ice40/cells.cc
diff options
context:
space:
mode:
authorSimon Schubert <2@0x2c.org>2019-06-10 11:30:01 +0200
committerSimon Schubert <2@0x2c.org>2019-06-10 14:04:25 +0200
commit88eeafae12b78798f6b886b2d4193b5fa64bac4c (patch)
treeeaff7c02dc6db212f6b147a5193b1a1ddf2b6ab0 /ice40/cells.cc
parent187db92b0571b87360516598e88f36cdb1f33349 (diff)
downloadnextpnr-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.cc16
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);