.. | .. |
---|
73 | 73 | HEADSET_IN_LOW : |
---|
74 | 74 | HEADSET_IN_HIGH; |
---|
75 | 75 | } |
---|
| 76 | + |
---|
| 77 | + /* spk-ctl */ |
---|
| 78 | + ret = of_get_named_gpio_flags(node, "spk_ctl_gpio", 0, &flags); |
---|
| 79 | + if (ret < 0) { |
---|
| 80 | + dev_err(&pdev->dev, "Can not read property headset_gpio\n"); |
---|
| 81 | + goto err; |
---|
| 82 | + } else { |
---|
| 83 | + pdata->spk_ctl_gpio = ret; |
---|
| 84 | + ret = devm_gpio_request(&pdev->dev, pdata->spk_ctl_gpio, |
---|
| 85 | + "spk_ctl_gpio"); |
---|
| 86 | + if (ret < 0) { |
---|
| 87 | + dev_err(&pdev->dev, "spk_ctl_gpio request fail\n"); |
---|
| 88 | + goto err; |
---|
| 89 | + } |
---|
| 90 | + |
---|
| 91 | + ret = gpio_get_value(pdata->headset_gpio); |
---|
| 92 | + printk(" headset_gpio value : %d\n",ret); |
---|
| 93 | + if (ret == 0) |
---|
| 94 | + ret = gpio_direction_output(pdata->spk_ctl_gpio,0); |
---|
| 95 | + else |
---|
| 96 | + ret = gpio_direction_output(pdata->spk_ctl_gpio,1); |
---|
| 97 | + if (ret < 0) { |
---|
| 98 | + dev_err(&pdev->dev, |
---|
| 99 | + "spk_ctl_gpio set direction fail\n"); |
---|
| 100 | + goto err; |
---|
| 101 | + } |
---|
| 102 | + } |
---|
| 103 | + |
---|
76 | 104 | /* hook */ |
---|
77 | 105 | ret = of_get_named_gpio_flags(node, "hook_gpio", 0, &pdata->hook_gpio); |
---|
78 | 106 | if (ret < 0) { |
---|