Skip to content

Commit a078dad

Browse files
committed
riscv: dts: microchip: really fix i2c1 pinctrl configuration on icicle
Due to errata, engineering sample silicon needs different handling than production silicon. Valentina's patch fixed it for Prod at the expense of ES. Move this particular pinctrl config to the board files, to accommodate the difference. Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
1 parent 077063f commit a078dad

3 files changed

Lines changed: 29 additions & 10 deletions

File tree

arch/riscv/boot/dts/microchip/mpfs-icicle-kit-fabric.dtsi

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -169,16 +169,6 @@
169169
status = "okay";
170170
};
171171

172-
&i2c0 {
173-
pinctrl-names = "default";
174-
pinctrl-0 = <&i2c0_fabric>;
175-
};
176-
177-
&i2c1 {
178-
pinctrl-names = "default";
179-
pinctrl-0 = <&i2c1_mssio>;
180-
};
181-
182172
&mmuart1 {
183173
pinctrl-names = "default";
184174
pinctrl-0 = <&uart1_fabric>;

arch/riscv/boot/dts/microchip/mpfs-icicle-kit-prod.dts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,16 @@
1414
"microchip,mpfs";
1515
};
1616

17+
&i2c0 {
18+
pinctrl-names = "default";
19+
pinctrl-0 = <&i2c0_fabric>;
20+
};
21+
22+
&i2c1 {
23+
pinctrl-names = "default";
24+
pinctrl-0 = <&i2c1_mssio>;
25+
};
26+
1727
&syscontroller {
1828
microchip,bitstream-flash = <&sys_ctrl_flash>;
1929
};

arch/riscv/boot/dts/microchip/mpfs-icicle-kit.dts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,22 @@
1111
"microchip,mpfs-icicle-kit",
1212
"microchip,mpfs";
1313
};
14+
15+
&i2c0 {
16+
pinctrl-names = "default";
17+
pinctrl-0 = <&i2c0_fabric>;
18+
};
19+
20+
/*
21+
* Due to silicon errata, routing via MSS IOs doesn't work on ES devices.
22+
* Instead, i2c1, appearing on B1/C1, which are normally MSS IOs, is routed
23+
* via the fabric and back to B1/C1 via "fabric-test" functionality.
24+
* This is done silently by Libero, so the iomux0 setting for i2c1 has to
25+
* be fabric IO, despite tooling etc saying that MSS IOs are used.
26+
*
27+
* See Section 3.3 of https://ww1.microchip.com/downloads/aemDocuments/documents/FPGA/ProductDocuments/Errata/polarfiresoc/microsemi_polarfire_soc_fpga_egineering_samples_errata_er0219_v1.pdf
28+
*/
29+
&i2c1 {
30+
pinctrl-names = "default";
31+
pinctrl-0 = <&i2c1_fabric>;
32+
};

0 commit comments

Comments
 (0)