Upon registering spi-mux's devices through spi_add_device() the kernel gets
stuck waiting for the 'spi_add_lock' mutex to be released. The mutex happens to
be held by spi-mux's parent SPI bus, which unluckily, is waiting for spi-mux's
probe to finish before releasing it.

I might aswell be doing something wrong. But so far I trust my DT
implementation:

        &spi {
                status = "okay";
                pinctrl-names = "default";
                pinctrl-0 = <&spi0_gpio7>;

                spi@0 {
                        compatible = "spi-mux";
                        reg = <0>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        spi-max-frequency = <100000000>;

                        mux-controls = <&gpio_mux>;

                        w5500@0 {
                                compatible = "wiznet,w5500";
                                reg = <0>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&eth1_pins>;
                                interrupt-parent = <&gpio>;
                                interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
                                spi-max-frequency = <30000000>;
                        };

                        spi-flash@1 {
                                compatible = "jedec,spi-nor";
                                reg = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                spi-max-frequency = <16000000>;
                        };
                };
        };

Regards,
Nicolas

Reply via email to