Ядро Linux Kconfig: Как отменить выбор опции? - PullRequest
0 голосов
/ 19 января 2019

Как отменить выбор опции? Например, я хочу добиться следующего сценария:

choice                                                                                         
    prompt "Camera type"                                                                       
    default CAMERA1                                                                            

config CAMERA1                                                                                 
    select POWER_PIN_ACTIVE_HIGH                                                               

config CAMERA2                                                                                 
    deselect POWER_PIN_ACTIVE_HIGH

config CAMERA3                                                                                 
    select POWER_PIN_ACTIVE_HIGH                                                         

endchoice                                                                                      

config POWER_PIN_ACTIVE_HIGH                                                                   
    bool "Power pin is high active?"                                                           
    help  Say 'y' if the power pin is high active, 'n' if low active.                          

По-видимому, нет команды de-select или даже select XXXX = n.

Как мне добиться эффекта или других способов достижения цели сценария? Кроме того, я хочу скрыть параметр POWER_PIN_ACTIVE_HIGH. Он должен автоматически выбираться / отменяться при выборе типа камеры.

- Обновление -

Я попробовал это по-другому. Это работает, но Makefile дает мне выбор силы: POWER_PIN_ACTIVE_HIGH предупреждение:

choice                                                                                         
    prompt "Camera type"                                                                       
    default CAMERA1                                                                            

config CAMERA1                                                                                 
    select POWER_PIN_ACTIVE_HIGH                                                               

config CAMERA2                                                                                 
    deselect POWER_PIN_ACTIVE_HIGH

config CAMERA3                                                                                 
    select POWER_PIN_ACTIVE_HIGH                                                         

endchoice                                                                                      

config POWER_PIN_ACTIVE_HIGH
    depends on __HIDDEN_OPTION__                                                                   
    bool "Power pin is high active?"                                                           
    help  Say 'y' if the power pin is high active, 'n' if low active. 

Сценарий работает, так как __HIDDEN_OPTION__ никогда не является параметром конфигурации, и поэтому он вызывает сбой зависимости для всех случаев. Только эта принудительная команда select может переопределить ее и выбрать конфигурацию. Хотя Makefile выдает предупреждение, из-за несоответствия (никогда не сопоставления) __HIDDEN_OPTION__ условия.

Есть идея получше?

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Наконец, я получил свой собственный ответ:

choice
    prompt "Camera type"
    default CAMERA1

config CAMERA1
    bool "camera1 support"
    select POWER_PIN_ACTIVE_HIGH

config CAMERA2
    bool "camera2 support"

config CAMERA3
    bool "camera3 support"
    select POWER_PIN_ACTIVE_HIGH

config CAMERA4
    bool "camera4 support"

endchoice

config POWER_PIN_ACTIVE_HIGH
    depends on CAMERA1 || CAMERA3
    # or, alternatively, we can say depends on !CAMERA2 && !CAMERA4

    # Since this shows up only when CAMERA1 || CAMERA2, we don't need help,
    # and we don't ask question, just an affirmative statement.
    bool "This camera has an active-high power pin."

И все же этот ответ писатель Kconfig должен соблюдать осторожность, чтобы все было согласованно.Другим недостатком является то, что он не показывает «активный-низкий», когда выбрана одна из этих камер с активным низким энергопотреблением.

Я приму этот ответ через несколько дней, если не будет предложен лучший ответ.

0 голосов
/ 20 января 2019

По умолчанию и выберите можно использовать для достижения того же

config POWER_PIN_ACTIVE_HIGH
    bool
    default n

config CAMERA1                                                                                 
    select POWER_PIN_ACTIVE_HIGH

config CAMERA2                                                                                 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...