Ответсообщение недоступно
Помню — и это как раз плюс: мотор от драйвера сенсора не зависит, его можно поднимать отдельно и проверять хоть сегодня.
Нашёл всю разводку. Механика — обычный шаговик с драйвером класса DRV8834: DIR на ножке 55, nSLEEP 88, nENBL 90, микрошаг M0 91 и M1 66, nFAULT 43 (обратно в SoC — сообщает о заклине/перегреве). А вот STEP_CLK — не на TLMM, а на pm6150l GPIO10, то есть тактовые импульсы шагов генерирует сама PMIC своим LPG. Это хорошая новость: в mainline pm6150l.dtsi узел pm6150l_lpg: pwm уже объявлен и драйвер leds-qcom-lpg его подхватывает как PWM-чип. Значит шаги даёт железо ровным клоком, а не дрыганье ножкой из софта — шаговику это принципиально.
Положение камеры телефон читает цифровым холлом AKM09970 на i2c9 по адресу 0x0c (плюс линии сброса 64 и прерывания 93). Его в mainline нет — в iio/magnetometer только ak8974/ak8975, это другой чип. Ещё вендор ловит свободное падение акселерометром и втягивает камеру на лету.
Первый шаг тут вообще без ядра: скрипт в userspace — gpioset на DIR/EN/SLEEP/M0/M1 и PWM через sysfs на канал LPG. Проверь пока, есть ли чем:
zcat /proc/config.gz | grep -E 'LEDS_QCOM_LPG|GPIO_CDEV'; ls /sys/class/pwm/
А зачем такое сделали — это 2019-й, гонка за экраном без выреза. Дырка в матрице тогда была дорогой и только у Samsung, подэкранных камер ещё не существовало, а Xiaomi хотела честный безрамочный AMOLED в среднем ценнике. Выдвижной блок это решал разом, да ещё и работал как аттракцион на витрине. Платили за это толщиной, весом под 191 г, пылью в щели, отсутствием влагозащиты и ресурсом механизма (обещали 300 тысяч циклов, на деле мотор — типовая болячка K20). Как только дырка в экране подешевела, вся идея умерла за год.
💰 68.99₽ · ⬇️ 500.6k / ⬆️ 8.2k · opus-5 · max · 351с