Hi Carl
(X) int asoc_simple_init_jack(...) { ... if (gpio_is_valid(det)) { ...
snd_soc_card_jack_new(...); snd_soc_jack_add_gpios(...); for_each_card_components(card, component)
(Y) snd_soc_component_set_jack(component, ...); } ... }
So for the case of cpcap codec on motorola mapphones this dosent help, because we dont have a gpio to sense plug state, thus no gpio in dts and thus gpio_is_valid will return false, therefore, no jack.
Moving
sjack->pin.pin = pin_name; sjack->pin.mask = mask;
snd_soc_card_jack_new(card, pin_name, mask, &sjack->jack, &sjack->pin, 1);
and
for_each_card_components(card, component) snd_soc_component_set_jack(component, &sjack->jack, NULL);
outside of the if block should make this work, at least cpcap gets the jack then.
I see.
simple-card is checking hp-det-gpio on DT now. I guess it can help you if simple-card also check "hp-det" (no gpio) (and customize previous patch) ? Is "enable-hp" better naming... ?
Best regards --- Kuninori Morimoto