Other Parts Discussed in Thread: TCA6408
Tool/software:
I want to set the 0th pin of gpio expander 5 under i2c6 to output high level mode after power on to power up the max96712, but failed.
&main_i2c6 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&main_i2c6_pins_default>;
clock-frequency = <400000>;
exp5: gpio@20 {
compatible = "ti,tca6408";
reg = <0x20>;
gpio-controller;
#gpio-cells = <2>;
};
};
&main_i2c6 {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
Max96712: deserializer@29 {
compatible = "maxim,max96712";
reg = <0x29>;
clocks = <&clk_ov5640_fixed>;
clock-names = "xclk";
powerdown-gpios = <&exp5 0 GPIO_ACTIVE_HIGH>;
port {
csi2_cam0: endpoint {
remote-endpoint = <&csi2rx0_in_sensor>;
clock-lanes = <0>;
data-lanes = <1 2 3 4>;
};
};
};
};
board-support/ti-linux-kernel-6.6.32+git-ti/drivers/staging/media/max96712/max96712.c
probe function
priv->gpiod_pwdn = devm_gpiod_get_optional(&client->dev, "powerdown",
GPIOD_OUT_HIGH);
if (IS_ERR(priv->gpiod_pwdn))
return PTR_ERR(priv->gpiod_pwdn);
gpiod_set_consumer_name(priv->gpiod_pwdn, "max96712-pwdn");
gpiod_set_value_cansleep(priv->gpiod_pwdn, 1);