Skip to content

Commit 36d4e54

Browse files
Dat-NguyenDuymmahadevan108
authored andcommitted
dts: arm: nxp: add support pwm emios for nxp s32z SoC
This adds support PWM EMIOS for NXP S32Z SoC, both PWM pulse generate and pulse capture are supported Signed-off-by: Dat Nguyen Duy <[email protected]>
1 parent 55fc826 commit 36d4e54

File tree

3 files changed

+177
-1
lines changed

3 files changed

+177
-1
lines changed

drivers/pwm/pwm_nxp_s32_emios.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME, CONFIG_PWM_LOG_LEVEL);
2323

2424
#define DT_DRV_COMPAT nxp_s32_emios_pwm
2525

26+
#if !defined(EMIOS_PWM_IP_NUM_OF_CHANNELS_USED)
27+
#define EMIOS_PWM_IP_NUM_OF_CHANNELS_USED EMIOS_PWM_IP_NUM_OF_CHANNELS_USED_U8
28+
#endif
29+
2630
/*
2731
* Need to fill to this array at runtime, cannot do at build time like
2832
* the HAL over configuration tool due to limitation of the integration

dts/arm/nxp/nxp_s32z27x_r52.dtsi

Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1259,5 +1259,177 @@
12591259
status = "disabled";
12601260
};
12611261

1262+
emios0: emios@420b0000 {
1263+
compatible = "nxp,s32-emios";
1264+
reg = <0x420b0000 0x4000>;
1265+
clocks = <&clock NXP_S32_P4_REG_INTF_CLK>;
1266+
internal-cnt = <0xFFFFFFFF>;
1267+
interrupts = <GIC_SPI 284 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1268+
<GIC_SPI 285 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1269+
<GIC_SPI 286 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1270+
<GIC_SPI 287 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1271+
<GIC_SPI 288 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1272+
<GIC_SPI 289 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1273+
<GIC_SPI 290 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1274+
<GIC_SPI 291 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1275+
<GIC_SPI 292 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1276+
<GIC_SPI 293 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1277+
<GIC_SPI 294 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1278+
<GIC_SPI 295 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1279+
<GIC_SPI 296 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1280+
<GIC_SPI 297 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1281+
<GIC_SPI 298 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1282+
<GIC_SPI 299 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1283+
<GIC_SPI 300 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1284+
<GIC_SPI 301 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1285+
<GIC_SPI 302 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1286+
<GIC_SPI 303 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1287+
<GIC_SPI 304 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1288+
<GIC_SPI 305 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1289+
<GIC_SPI 306 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1290+
<GIC_SPI 307 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1291+
<GIC_SPI 308 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1292+
<GIC_SPI 309 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1293+
<GIC_SPI 310 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1294+
<GIC_SPI 311 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1295+
<GIC_SPI 312 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
1296+
interrupt-names = "0_CH0", "0_CH1", "0_CH2", "0_CH3", "0_CH4",
1297+
"0_CH5", "0_CH6", "0_CH7", "0_CH8", "0_CH9",
1298+
"0_CH10", "0_CH12", "0_CH14", "0_CH16",
1299+
"0_CH17", "0_CH18", "0_CH19", "0_CH20",
1300+
"0_CH21", "0_CH22", "0_CH23", "0_CH24",
1301+
"0_CH25", "0_CH26", "0_CH27", "0_CH28",
1302+
"0_CH29", "0_CH30", "0_CH31";
1303+
status = "disabled";
1304+
1305+
master_bus {
1306+
emios0_bus_a: emios0_bus_a {
1307+
channel = <23>;
1308+
bus-type = "BUS_A";
1309+
channel-mask = <0xFF7FFFFF>;
1310+
status = "disabled";
1311+
};
1312+
1313+
emios0_bus_b: emios0_bus_b {
1314+
channel = <0>;
1315+
bus-type = "BUS_B";
1316+
channel-mask = <0x000000FE>;
1317+
status = "disabled";
1318+
};
1319+
1320+
emios0_bus_c: emios0_bus_c {
1321+
channel = <8>;
1322+
bus-type = "BUS_C";
1323+
channel-mask = <0x0000FE00>;
1324+
status = "disabled";
1325+
};
1326+
1327+
emios0_bus_d: emios0_bus_d {
1328+
channel = <16>;
1329+
bus-type = "BUS_D";
1330+
channel-mask = <0x00FE0000>;
1331+
status = "disabled";
1332+
};
1333+
1334+
emios0_bus_e: emios0_bus_e {
1335+
channel = <24>;
1336+
bus-type = "BUS_E";
1337+
channel-mask = <0xFE000000>;
1338+
status = "disabled";
1339+
};
1340+
};
1341+
1342+
pwm {
1343+
compatible = "nxp,s32-emios-pwm";
1344+
#pwm-cells = <3>;
1345+
status = "disabled";
1346+
};
1347+
};
1348+
1349+
emios1: emios@400b0000 {
1350+
compatible = "nxp,s32-emios";
1351+
reg = <0x400b0000 0x4000>;
1352+
clocks = <&clock NXP_S32_P0_REG_INTF_CLK>;
1353+
internal-cnt = <0xFFFFFFFF>;
1354+
interrupts = <GIC_SPI 314 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1355+
<GIC_SPI 315 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1356+
<GIC_SPI 316 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1357+
<GIC_SPI 317 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1358+
<GIC_SPI 318 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1359+
<GIC_SPI 319 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1360+
<GIC_SPI 320 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1361+
<GIC_SPI 321 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1362+
<GIC_SPI 322 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1363+
<GIC_SPI 323 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1364+
<GIC_SPI 324 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1365+
<GIC_SPI 325 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1366+
<GIC_SPI 326 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1367+
<GIC_SPI 327 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1368+
<GIC_SPI 328 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1369+
<GIC_SPI 329 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1370+
<GIC_SPI 330 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1371+
<GIC_SPI 331 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1372+
<GIC_SPI 332 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1373+
<GIC_SPI 333 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1374+
<GIC_SPI 334 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1375+
<GIC_SPI 335 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1376+
<GIC_SPI 336 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1377+
<GIC_SPI 337 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1378+
<GIC_SPI 338 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1379+
<GIC_SPI 339 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1380+
<GIC_SPI 340 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>,
1381+
<GIC_SPI 341 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>;
1382+
interrupt-names = "1_CH0", "1_CH1", "1_CH2", "1_CH3", "1_CH4",
1383+
"1_CH5", "1_CH6", "1_CH7", "1_CH8", "1_CH10",
1384+
"1_CH12", "1_CH14", "1_CH16", "1_CH17",
1385+
"1_CH18", "1_CH19", "1_CH20", "1_CH21",
1386+
"1_CH22", "1_CH23", "1_CH24", "1_CH25",
1387+
"1_CH26", "1_CH27", "1_CH28", "1_CH29",
1388+
"1_CH30", "1_CH31";
1389+
status = "disabled";
1390+
1391+
master_bus {
1392+
emios1_bus_a: emios1_bus_a {
1393+
channel = <23>;
1394+
bus-type = "BUS_A";
1395+
channel-mask = <0xFF7FFFFF>;
1396+
status = "disabled";
1397+
};
1398+
1399+
emios1_bus_b: emios1_bus_b {
1400+
channel = <0>;
1401+
bus-type = "BUS_B";
1402+
channel-mask = <0x000000FE>;
1403+
status = "disabled";
1404+
};
1405+
1406+
emios1_bus_c: emios1_bus_c {
1407+
channel = <8>;
1408+
bus-type = "BUS_C";
1409+
channel-mask = <0x0000FE00>;
1410+
status = "disabled";
1411+
};
1412+
1413+
emios1_bus_d: emios1_bus_d {
1414+
channel = <16>;
1415+
bus-type = "BUS_D";
1416+
channel-mask = <0x00FE0000>;
1417+
status = "disabled";
1418+
};
1419+
1420+
emios1_bus_e: emios1_bus_e {
1421+
channel = <24>;
1422+
channel-mask = <0xFE000000>;
1423+
bus-type = "BUS_E";
1424+
status = "disabled";
1425+
};
1426+
};
1427+
1428+
pwm {
1429+
compatible = "nxp,s32-emios-pwm";
1430+
#pwm-cells = <3>;
1431+
status = "disabled";
1432+
};
1433+
};
12621434
};
12631435
};

west.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ manifest:
203203
groups:
204204
- hal
205205
- name: hal_nxp
206-
revision: c15dd51d7af27593e38b65b1443a350e9d2de64f
206+
revision: dad9b28b80c68c4e124dd3a61eb3821df387bf0e
207207
path: modules/hal/nxp
208208
groups:
209209
- hal

0 commit comments

Comments
 (0)