This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

omap3 cawake gpio



I am getting an error w.r.t cawake gpio pin. The error is as under:

[    7.538818] omap_ssi 48058000.ssi-controller: ssi controller 0 initialized (2 ports)!

[    7.549316] omap_ssi_port 4805a000.ssi-port: couldn't get cawake gpio (err=-2)!
[    7.556945] omap_ssi_port: probe of 4805a000.ssi-port failed with error -2
[    7.564208] omap_ssi_port 4805b000.ssi-port: couldn't get cawake gpio (err=-2)!
[    7.571746] omap_ssi_port: probe of 4805b000.ssi-port failed with error -2

How can I disable this error (from the dts or from the driver)?  I do not have a cawake gpio dedicated on my target board.

  • Hi,

    This driver is not written or supported by TI. You can get in touch with opensource Linux community for OMAP devices at linux-omap@vger.kernel.org

    The binding document (Documentation/devicetree/bindings/hsi/omap-ssi.txt) says this GPIO property is required, but also says "Its an optional board specific property". I think the binding and driver design around this needs to be clarified. This can be done on the mailing list above.

    To get rid of the immediate error, you can modify the code as below. But I suspect this change alone will not be sufficient if the driver design treats it as required property. There could be assumptions elsewhere on the GPIO being valid.

    git diff
    diff --git a/drivers/hsi/controllers/omap_ssi_port.c b/drivers/hsi/controllers/omap_ssi_port.c
    index a0cb5be246e1..a4333fd86864 100644
    --- a/drivers/hsi/controllers/omap_ssi_port.c
    +++ b/drivers/hsi/controllers/omap_ssi_port.c
    @@ -1160,7 +1160,7 @@ static int ssi_port_probe(struct platform_device *pd)
                    goto error;
            }
     
    -       cawake_gpio = devm_gpiod_get(&pd->dev, "ti,ssi-cawake", GPIOD_IN);
    +       cawake_gpio = devm_gpiod_get_optional(&pd->dev, "ti,ssi-cawake", GPIOD_IN);
            if (IS_ERR(cawake_gpio)) {
                    err = PTR_ERR(cawake_gpio);
                    dev_err(&pd->dev, "couldn't get cawake gpio (err=%d)!\n", err);
    

  • Hi Sekhar,

    We suppressed the ssi controller ports from the device tree since we are unaware of the optional cawake gpio and its consequences on the firmware. The omap34xx.dtsi has a mention of ssi controller pins and clock. We have commented the complete device node and now our target's blob has ssi controller disabled.