I don’t think it’s your hardware. Whatever that patch is trying to do, it seems incorrect.
I tried to look for this change in my own kernels dtsi (the very one mentioned in Experimental Gentoo Image - #131 by rvcray that boots and runs normally) and it wasn’t there.
Puzzled I did a grep on the entire directory and can see that both broken-cd and cd-gpios = <&sysgpio 41 GPIO_ACTIVE_LOW> are both declared in completely different files to that patch.
grep -n cd /usr/src/linux-6.15.6-gentoo/arch/riscv/boot/dts/starfive/*.dtsi
/usr/src/linux-6.15.6-gentoo/arch/riscv/boot/dts/starfive/jh7100-common.dtsi:369: broken-cd;
/usr/src/linux-6.15.6-gentoo/arch/riscv/boot/dts/starfive/jh7110-common.dtsi:224: vcc_3v3: dcdc1 {
/usr/src/linux-6.15.6-gentoo/arch/riscv/boot/dts/starfive/jh7110-common.dtsi:232: vdd_cpu: dcdc2 {
/usr/src/linux-6.15.6-gentoo/arch/riscv/boot/dts/starfive/jh7110-common.dtsi:284: cd-gpios = <&sysgpio 41 GPIO_ACTIVE_LOW>;
/usr/src/linux-6.15.6-gentoo/arch/riscv/boot/dts/starfive/jh7110-common.dtsi:320: cdns,read-delay = <5>;
/usr/src/linux-6.15.6-gentoo/arch/riscv/boot/dts/starfive/jh7110-common.dtsi:322: cdns,tshsl-ns = <1>;
/usr/src/linux-6.15.6-gentoo/arch/riscv/boot/dts/starfive/jh7110-common.dtsi:323: cdns,tsd2d-ns = <1>;
/usr/src/linux-6.15.6-gentoo/arch/riscv/boot/dts/starfive/jh7110-common.dtsi:324: cdns,tchsh-ns = <1>;
/usr/src/linux-6.15.6-gentoo/arch/riscv/boot/dts/starfive/jh7110-common.dtsi:325: cdns,tslch-ns = <1>;
/usr/src/linux-6.15.6-gentoo/arch/riscv/boot/dts/starfive/jh7110.dtsi:589: usb_cdns3: usb@0 {
/usr/src/linux-6.15.6-gentoo/arch/riscv/boot/dts/starfive/jh7110.dtsi:590: compatible = "cdns,usb3";
/usr/src/linux-6.15.6-gentoo/arch/riscv/boot/dts/starfive/jh7110.dtsi:598: phy-names = "cdns3,usb2-phy";
/usr/src/linux-6.15.6-gentoo/arch/riscv/boot/dts/starfive/jh7110.dtsi:862: compatible = "starfive,jh7110-qspi", "cdns,qspi-nor";
/usr/src/linux-6.15.6-gentoo/arch/riscv/boot/dts/starfive/jh7110.dtsi:874: cdns,fifo-depth = <256>;
/usr/src/linux-6.15.6-gentoo/arch/riscv/boot/dts/starfive/jh7110.dtsi:875: cdns,fifo-width = <4>;
/usr/src/linux-6.15.6-gentoo/arch/riscv/boot/dts/starfive/jh7110.dtsi:876: cdns,trigger-address = <0x0>;
/usr/src/linux-6.15.6-gentoo/arch/riscv/boot/dts/starfive/jh7110.dtsi:1123: compatible = "starfive,jh7110-csi2rx", "cdns,csi2rx";
It should be noted that this is a Gentoo version of the kernels sources (sys-kernel/gentoo-sources) and that the true mainline Linux kernel (sys-kernel/vanilla-sources) is masked on riscv, so possibly; Gentoo are maintaining their own dts patches that actually work?