Skip to content

Commit 9cf0d66

Browse files
GTLin08kartben
authored andcommitted
drivers/espi: ite: Use structured evt_data for PVT, PVT2, and PVT3 events
Replace direct assignment of evt.evt_data with structured access via espi_evt_data_pvt. This change separates the incoming evt_data into type and data fields. This update alse includes support for handling PVT, PVT2, and PVT3 events using the structured event data. Signed-off-by: Tim Lin <[email protected]>
1 parent 5e3f1db commit 9cf0d66

File tree

1 file changed

+27
-3
lines changed

1 file changed

+27
-3
lines changed

drivers/espi/espi_it8xxx2.c

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1330,8 +1330,16 @@ static void pmc3_it8xxx2_ibf_isr(const struct device *dev)
13301330
struct espi_event evt = {.evt_type = ESPI_BUS_PERIPHERAL_NOTIFICATION,
13311331
.evt_details = ESPI_PERIPHERAL_HOST_IO_PVT,
13321332
.evt_data = ESPI_PERIPHERAL_NODATA};
1333+
struct espi_evt_data_pvt *pvt_evt = (struct espi_evt_data_pvt *)&evt.evt_data;
1334+
1335+
/*
1336+
* Indicates if the host sent a command or data.
1337+
* 0 = data
1338+
* 1 = Command.
1339+
*/
1340+
pvt_evt->type = !!(pmc_reg->PM3STS & PMC_PM3STS_A2_ADDR);
1341+
pvt_evt->data = pmc_reg->PM3DI;
13331342

1334-
evt.evt_data = pmc_reg->PM3DI;
13351343
espi_send_callbacks(&data->callbacks, dev, evt);
13361344
}
13371345

@@ -1357,8 +1365,16 @@ static void pmc4_it8xxx2_ibf_isr(const struct device *dev)
13571365
struct espi_event evt = {.evt_type = ESPI_BUS_PERIPHERAL_NOTIFICATION,
13581366
.evt_details = ESPI_PERIPHERAL_HOST_IO_PVT2,
13591367
.evt_data = ESPI_PERIPHERAL_NODATA};
1368+
struct espi_evt_data_pvt *pvt_evt = (struct espi_evt_data_pvt *)&evt.evt_data;
1369+
1370+
/*
1371+
* Indicates if the host sent a command or data.
1372+
* 0 = data
1373+
* 1 = Command.
1374+
*/
1375+
pvt_evt->type = !!(pmc_reg->PM4STS & PMC_PM4STS_A2_ADDR);
1376+
pvt_evt->data = pmc_reg->PM4DI;
13601377

1361-
evt.evt_data = pmc_reg->PM4DI;
13621378
espi_send_callbacks(&data->callbacks, dev, evt);
13631379
}
13641380

@@ -1384,8 +1400,16 @@ static void pmc5_it8xxx2_ibf_isr(const struct device *dev)
13841400
struct espi_event evt = {.evt_type = ESPI_BUS_PERIPHERAL_NOTIFICATION,
13851401
.evt_details = ESPI_PERIPHERAL_HOST_IO_PVT3,
13861402
.evt_data = ESPI_PERIPHERAL_NODATA};
1403+
struct espi_evt_data_pvt *pvt_evt = (struct espi_evt_data_pvt *)&evt.evt_data;
1404+
1405+
/*
1406+
* Indicates if the host sent a command or data.
1407+
* 0 = data
1408+
* 1 = Command.
1409+
*/
1410+
pvt_evt->type = !!(pmc_reg->PM5STS & PMC_PM5STS_A2_ADDR);
1411+
pvt_evt->data = pmc_reg->PM5DI;
13871412

1388-
evt.evt_data = pmc_reg->PM5DI;
13891413
espi_send_callbacks(&data->callbacks, dev, evt);
13901414
}
13911415

0 commit comments

Comments
 (0)