mirror-linux/arch/riscv/boot/dts
Conor Dooley 0df8aa2b9a riscv: dts: microchip: fix icicle i2c pinctrl configuration
Unfortunately, an erratum with engineering sample that I was not aware
of was exposed by adding pinctrl configuration to the icicle kit.
When routed to MSS IOs, i2c signals are never anything other than tied
low. Being an FPGA, a Libero workaround for this problem was created,
that involves routing i2c signals to the FPGA fabric when the MSS IO
option is selected in the configurator and then back to the intended pin
using the debug "fabric test" capability. This is invisible to user
facing information in the tooling and not mentioned in reference designs
documentation. It manifests solely in the .xml output from the MSS
configuration that the HSS firmware uses to configure the device, which
Linux now overwrites using the pinctrl information. As a result, I never
noticed this.

My original submission had the engineering sample configuration, but I
modified it on application after I was told it didn't work, not
realising that the report came from a colleague with a production
device, where the erratum was fixed and the workaround not automatically
implemented by Libero when creating a design.

Move this part of the pinctrl configuration out of the shared portion of
the icicle device trees, into the portions that are specific to
engineering sample and production devices so that the different settings
for i2c pins can be dealt with.

Although the reference design only has this workaround in place for
i2c1, as i2c0 is genuinely fabric routed, move it too since the
erratum affects both controllers.

Link: https://ww1.microchip.com/downloads/aemDocuments/documents/FPGA/ProductDocuments/Errata/polarfiresoc/microsemi_polarfire_soc_fpga_egineering_samples_errata_er0219_v1.pdf [3.3]
Fixes: 123f4276b5 ("riscv: dts: microchip: add pinctrl nodes for mpfs/icicle kit")
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
2026-04-27 20:12:51 +01:00
..
allwinner riscv: dts: allwinner: d1: Add CPU thermal sensor and zone 2026-01-22 22:40:20 +08:00
andes riscv: dts: andes: add Voyager board device tree 2025-07-21 16:51:52 +02:00
anlogic riscv: dts: anlogic: dr1v90: Add "b" ISA extension 2026-01-19 09:58:30 +00:00
canaan
eswin riscv: dts: eswin: add HiFive Premier P550 board device tree 2025-09-25 08:29:06 +02:00
microchip riscv: dts: microchip: fix icicle i2c pinctrl configuration 2026-04-27 20:12:51 +01:00
renesas riscv: dts: renesas: r9a07g043f: Move interrupt-parent to top node 2026-01-08 10:13:17 +01:00
sifive riscv: dts: sifive: unmatched: Add PWM controlled fans 2025-11-23 19:59:48 +00:00
sophgo riscv: dts: sophgo: sg2044: Add "b" ISA extension 2026-01-20 09:03:37 +08:00
spacemit dts: riscv: spacemit: k3: add P1 PMIC regulator tree 2026-03-30 04:42:10 +00:00
starfive riscv: dts: starfive: jh7110: Drop CAMSS node 2026-04-27 20:12:13 +01:00
tenstorrent riscv: dts: Add Tenstorrent Blackhole SoC PCIe cards 2025-10-18 10:44:15 -07:00
thead riscv: dts: thead: beaglev-ahead: enable HDMI output 2026-03-25 09:20:38 -07:00
Makefile Initial Anlogic Platform Support 2025-11-21 21:29:57 +01:00