R/W GPIO port in Zephyr instead of pins

Hi,

Simple question - is there a way in Zephyr to work with GPIO ports instead of individual pins? Can one read a whole port in one go or write a port to drive multiple pins simultaneously? So far I've only seen individual pins being manipulated one by one? This seems a bit tedious; I've started grouping pins together into arrays from the device tree and manipulate these in for loops for init, configure interrupts, read, write etc.

Is there a better or alternative way to do this? Suppose one is writing 0b01010 on 5 pins to an external IC to control it's behavior; I'd like to be able to do a one liner e.g.:

[Pseudo code]

gpio_PORT_set_dt (PORT |= ((0b01010 << offset) & mask) );

vs

gpio_PIN_set_dt( PORT.3 = 0);

gpio_PIN_set_dt( PORT.4 = 1);

gpio_PIN_set_dt( PORT.5 = 0);

gpio_PIN_set_dt( PORT.6= 1);

gpio_PIN_set_dt( PORT.7 = 0);

Regards,

DevCon:52