It's the same story all over: you rather want to remove all these lookup helpers and do a single test before you create the modesetting pipeline:
if (chip == LS7A2000 && index == 0)
lscd_create_output_ls7a2000_0();
else if (chip == LS7A2000 && index == 1)
lscd_create_output_ls7a2000_1();
else if (chip == LS7A1000 && index == 0)
lscd_create_output_ls7a1000_0();
else if (chip == LS7A1000 && index == 1)
lscd_create_output_ls7a1000_1();
else if (...)
...
There you create the data structures for each pair of chip and index. If you have functions that can be used by multiple pairs, sharing those is fine. You might end up with duplicated code, but the overall design is sound.
Your current design will become unmaintainable pretty soon. We already have several of such drivers.