ITE: drivers/adc: Use pinctrl instead of pinmux driver
Use pinctrl instead of pinmux driver. Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
This commit is contained in:
parent
07d9a4292d
commit
74321f11d6
6 changed files with 61 additions and 66 deletions
|
@ -47,6 +47,8 @@
|
||||||
};
|
};
|
||||||
&adc0 {
|
&adc0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
pinctrl-0 = <&adc0_ch3_gpi3_default>;
|
||||||
|
pinctrl-names = "default";
|
||||||
};
|
};
|
||||||
/* voltage comparator for test */
|
/* voltage comparator for test */
|
||||||
&vcmp0 {
|
&vcmp0 {
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
LOG_MODULE_REGISTER(adc_ite_it8xxx2);
|
LOG_MODULE_REGISTER(adc_ite_it8xxx2);
|
||||||
|
|
||||||
#include <drivers/adc.h>
|
#include <drivers/adc.h>
|
||||||
#include <drivers/pinmux.h>
|
#include <drivers/pinctrl.h>
|
||||||
#include <soc.h>
|
#include <soc.h>
|
||||||
#include <soc_dt.h>
|
#include <soc_dt.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
@ -68,12 +68,8 @@ struct adc_it8xxx2_data {
|
||||||
* this config will be used at initial time
|
* this config will be used at initial time
|
||||||
*/
|
*/
|
||||||
struct adc_it8xxx2_cfg {
|
struct adc_it8xxx2_cfg {
|
||||||
/* Pinmux control group */
|
/* ADC alternate configuration */
|
||||||
const struct device *pinctrls;
|
const struct pinctrl_dev_config *pcfg;
|
||||||
/* GPIO pin */
|
|
||||||
uint8_t pin;
|
|
||||||
/* Alternate function */
|
|
||||||
uint8_t alt_fun;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#define ADC_IT8XXX2_REG_BASE \
|
#define ADC_IT8XXX2_REG_BASE \
|
||||||
|
@ -82,7 +78,6 @@ struct adc_it8xxx2_cfg {
|
||||||
static int adc_it8xxx2_channel_setup(const struct device *dev,
|
static int adc_it8xxx2_channel_setup(const struct device *dev,
|
||||||
const struct adc_channel_cfg *channel_cfg)
|
const struct adc_channel_cfg *channel_cfg)
|
||||||
{
|
{
|
||||||
const struct adc_it8xxx2_cfg *config = dev->config;
|
|
||||||
uint8_t channel_id = channel_cfg->channel_id;
|
uint8_t channel_id = channel_cfg->channel_id;
|
||||||
|
|
||||||
if (channel_cfg->acquisition_time != ADC_ACQ_TIME_DEFAULT) {
|
if (channel_cfg->acquisition_time != ADC_ACQ_TIME_DEFAULT) {
|
||||||
|
@ -112,10 +107,6 @@ static int adc_it8xxx2_channel_setup(const struct device *dev,
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The channel is set to ADC alternate function */
|
|
||||||
pinmux_pin_set(config[channel_id].pinctrls,
|
|
||||||
config[channel_id].pin,
|
|
||||||
config[channel_id].alt_fun);
|
|
||||||
LOG_DBG("Channel setup succeeded!");
|
LOG_DBG("Channel setup succeeded!");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -410,12 +401,21 @@ static void adc_accuracy_initialization(void)
|
||||||
|
|
||||||
static int adc_it8xxx2_init(const struct device *dev)
|
static int adc_it8xxx2_init(const struct device *dev)
|
||||||
{
|
{
|
||||||
|
const struct adc_it8xxx2_cfg *config = dev->config;
|
||||||
struct adc_it8xxx2_data *data = dev->data;
|
struct adc_it8xxx2_data *data = dev->data;
|
||||||
struct adc_it8xxx2_regs *const adc_regs = ADC_IT8XXX2_REG_BASE;
|
struct adc_it8xxx2_regs *const adc_regs = ADC_IT8XXX2_REG_BASE;
|
||||||
|
int status;
|
||||||
|
|
||||||
/* ADC analog accuracy initialization */
|
/* ADC analog accuracy initialization */
|
||||||
adc_accuracy_initialization();
|
adc_accuracy_initialization();
|
||||||
|
|
||||||
|
/* Set the pin to ADC alternate function. */
|
||||||
|
status = pinctrl_apply_state(config->pcfg, PINCTRL_STATE_DEFAULT);
|
||||||
|
if (status < 0) {
|
||||||
|
LOG_ERR("Failed to configure ADC pins");
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The ADC channel conversion time is 30.8*(SCLKDIV+1) us.
|
* The ADC channel conversion time is 30.8*(SCLKDIV+1) us.
|
||||||
* (Current setting is 61.6us)
|
* (Current setting is 61.6us)
|
||||||
|
@ -451,8 +451,11 @@ static struct adc_it8xxx2_data adc_it8xxx2_data_0 = {
|
||||||
ADC_CONTEXT_INIT_SYNC(adc_it8xxx2_data_0, ctx),
|
ADC_CONTEXT_INIT_SYNC(adc_it8xxx2_data_0, ctx),
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct adc_it8xxx2_cfg adc_it8xxx2_cfg_0[CHIP_ADC_COUNT] =
|
PINCTRL_DT_INST_DEFINE(0);
|
||||||
IT8XXX2_DT_ALT_ITEMS_LIST(0);
|
|
||||||
|
static const struct adc_it8xxx2_cfg adc_it8xxx2_cfg_0 = {
|
||||||
|
.pcfg = PINCTRL_DT_INST_DEV_CONFIG_GET(0),
|
||||||
|
};
|
||||||
|
|
||||||
DEVICE_DT_INST_DEFINE(0, adc_it8xxx2_init,
|
DEVICE_DT_INST_DEFINE(0, adc_it8xxx2_init,
|
||||||
NULL,
|
NULL,
|
||||||
|
|
|
@ -5,14 +5,16 @@ description: ITE it8xxx2 ADC
|
||||||
|
|
||||||
compatible: "ite,it8xxx2-adc"
|
compatible: "ite,it8xxx2-adc"
|
||||||
|
|
||||||
include: adc-controller.yaml
|
include: [adc-controller.yaml, pinctrl-device.yaml]
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
interrupts:
|
interrupts:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
pinctrl-0:
|
pinctrl-0:
|
||||||
type: phandles
|
required: true
|
||||||
|
|
||||||
|
pinctrl-names:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
io-channel-cells:
|
io-channel-cells:
|
||||||
|
|
|
@ -10,44 +10,6 @@
|
||||||
it8xxx2_alts_map {
|
it8xxx2_alts_map {
|
||||||
compatible = "ite,it8xxx2-pinctrl-conf";
|
compatible = "ite,it8xxx2-pinctrl-conf";
|
||||||
|
|
||||||
/* ADC alternate function */
|
|
||||||
pinctrl_adc0: adc0 {
|
|
||||||
pinctrls = <&pinmuxi 0 IT8XXX2_PINMUX_FUNC_1>;
|
|
||||||
};
|
|
||||||
pinctrl_adc1: adc1 {
|
|
||||||
pinctrls = <&pinmuxi 1 IT8XXX2_PINMUX_FUNC_1>;
|
|
||||||
};
|
|
||||||
pinctrl_adc2: adc2 {
|
|
||||||
pinctrls = <&pinmuxi 2 IT8XXX2_PINMUX_FUNC_1>;
|
|
||||||
};
|
|
||||||
pinctrl_adc3: adc3 {
|
|
||||||
pinctrls = <&pinmuxi 3 IT8XXX2_PINMUX_FUNC_1>;
|
|
||||||
};
|
|
||||||
pinctrl_adc4: adc4 {
|
|
||||||
pinctrls = <&pinmuxi 4 IT8XXX2_PINMUX_FUNC_1>;
|
|
||||||
};
|
|
||||||
pinctrl_adc5: adc5 {
|
|
||||||
pinctrls = <&pinmuxi 5 IT8XXX2_PINMUX_FUNC_1>;
|
|
||||||
};
|
|
||||||
pinctrl_adc6: adc6 {
|
|
||||||
pinctrls = <&pinmuxi 6 IT8XXX2_PINMUX_FUNC_1>;
|
|
||||||
};
|
|
||||||
pinctrl_adc7: adc7 {
|
|
||||||
pinctrls = <&pinmuxi 7 IT8XXX2_PINMUX_FUNC_1>;
|
|
||||||
};
|
|
||||||
pinctrl_adc13: adc13 {
|
|
||||||
pinctrls = <&pinmuxl 0 IT8XXX2_PINMUX_FUNC_1>;
|
|
||||||
};
|
|
||||||
pinctrl_adc14: adc14 {
|
|
||||||
pinctrls = <&pinmuxl 1 IT8XXX2_PINMUX_FUNC_1>;
|
|
||||||
};
|
|
||||||
pinctrl_adc15: adc15 {
|
|
||||||
pinctrls = <&pinmuxl 2 IT8XXX2_PINMUX_FUNC_1>;
|
|
||||||
};
|
|
||||||
pinctrl_adc16: adc16 {
|
|
||||||
pinctrls = <&pinmuxl 3 IT8XXX2_PINMUX_FUNC_1>;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* PWM alternate function */
|
/* PWM alternate function */
|
||||||
pinctrl_pwm0: pwm0 {
|
pinctrl_pwm0: pwm0 {
|
||||||
pinctrls = <&pinmuxa 0 IT8XXX2_PINMUX_FUNC_1>;
|
pinctrls = <&pinmuxa 0 IT8XXX2_PINMUX_FUNC_1>;
|
||||||
|
|
|
@ -1074,18 +1074,6 @@
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
label = "ADC_0";
|
label = "ADC_0";
|
||||||
#io-channel-cells = <1>;
|
#io-channel-cells = <1>;
|
||||||
pinctrl-0 = <&pinctrl_adc0 /* ADC0*/
|
|
||||||
&pinctrl_adc1 /* ADC1*/
|
|
||||||
&pinctrl_adc2 /* ADC2*/
|
|
||||||
&pinctrl_adc3 /* ADC3*/
|
|
||||||
&pinctrl_adc4 /* ADC4*/
|
|
||||||
&pinctrl_adc5 /* ADC5*/
|
|
||||||
&pinctrl_adc6 /* ADC6*/
|
|
||||||
&pinctrl_adc7 /* ADC7*/
|
|
||||||
&pinctrl_adc13 /* ADC13*/
|
|
||||||
&pinctrl_adc14 /* ADC14*/
|
|
||||||
&pinctrl_adc15 /* ADC15*/
|
|
||||||
&pinctrl_adc16>;/* ADC16*/
|
|
||||||
};
|
};
|
||||||
vcmp0: vcmp@f01946 {
|
vcmp0: vcmp@f01946 {
|
||||||
compatible = "ite,it8xxx2-vcmp";
|
compatible = "ite,it8xxx2-vcmp";
|
||||||
|
|
|
@ -7,6 +7,44 @@
|
||||||
#include <dt-bindings/pinctrl/it8xxx2-pinctrl.h>
|
#include <dt-bindings/pinctrl/it8xxx2-pinctrl.h>
|
||||||
|
|
||||||
&pinctrl {
|
&pinctrl {
|
||||||
|
/* ADC alternate function */
|
||||||
|
adc0_ch0_gpi0_default: adc0_ch0_gpi0_default {
|
||||||
|
pinmuxs = <&pinctrli 0 IT8XXX2_ALT_FUNC_1>;
|
||||||
|
};
|
||||||
|
adc0_ch1_gpi1_default: adc0_ch1_gpi1_default {
|
||||||
|
pinmuxs = <&pinctrli 1 IT8XXX2_ALT_FUNC_1>;
|
||||||
|
};
|
||||||
|
adc0_ch2_gpi2_default: adc0_ch2_gpi2_default {
|
||||||
|
pinmuxs = <&pinctrli 2 IT8XXX2_ALT_FUNC_1>;
|
||||||
|
};
|
||||||
|
adc0_ch3_gpi3_default: adc0_ch3_gpi3_default {
|
||||||
|
pinmuxs = <&pinctrli 3 IT8XXX2_ALT_FUNC_1>;
|
||||||
|
};
|
||||||
|
adc0_ch4_gpi4_default: adc0_ch4_gpi4_default {
|
||||||
|
pinmuxs = <&pinctrli 4 IT8XXX2_ALT_FUNC_1>;
|
||||||
|
};
|
||||||
|
adc0_ch5_gpi5_default: adc0_ch5_gpi5_default {
|
||||||
|
pinmuxs = <&pinctrli 5 IT8XXX2_ALT_FUNC_1>;
|
||||||
|
};
|
||||||
|
adc0_ch6_gpi6_default: adc0_ch6_gpi6_default {
|
||||||
|
pinmuxs = <&pinctrli 6 IT8XXX2_ALT_FUNC_1>;
|
||||||
|
};
|
||||||
|
adc0_ch7_gpi7_default: adc0_ch7_gpi7_default {
|
||||||
|
pinmuxs = <&pinctrli 7 IT8XXX2_ALT_FUNC_1>;
|
||||||
|
};
|
||||||
|
adc0_ch13_gpl0_default: adc0_ch13_gpl0_default {
|
||||||
|
pinmuxs = <&pinctrll 0 IT8XXX2_ALT_FUNC_1>;
|
||||||
|
};
|
||||||
|
adc0_ch14_gpl1_default: adc0_ch14_gpl1_default {
|
||||||
|
pinmuxs = <&pinctrll 1 IT8XXX2_ALT_FUNC_1>;
|
||||||
|
};
|
||||||
|
adc0_ch15_gpl2_default: adc0_ch15_gpl2_default {
|
||||||
|
pinmuxs = <&pinctrll 2 IT8XXX2_ALT_FUNC_1>;
|
||||||
|
};
|
||||||
|
adc0_ch16_gpl3_default: adc0_ch16_gpl3_default {
|
||||||
|
pinmuxs = <&pinctrll 3 IT8XXX2_ALT_FUNC_1>;
|
||||||
|
};
|
||||||
|
|
||||||
/* UART alternate function */
|
/* UART alternate function */
|
||||||
uart1_rx_gpb0_default: uart1_rx_gpb0_default {
|
uart1_rx_gpb0_default: uart1_rx_gpb0_default {
|
||||||
pinmuxs = <&pinctrlb 0 IT8XXX2_ALT_FUNC_3>;
|
pinmuxs = <&pinctrlb 0 IT8XXX2_ALT_FUNC_3>;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue