I have no LS1046ARDB in hand, but I checked the similar command in LS1028ARDB GPIO1_DAT24, voltage can change correctly when value change. LS1028ARDB software will be a good example for GPIO using. You maybe compare the software difference between LS1046ARDB and LS1028ARDB
root@TinyLinux:/sys/class/gpio# cat /sys/kernel/debug/gpio
gpiochip2: GPIOs 416-447, parent: platform/2320000.gpio, 2320000.gpio:
gpiochip1: GPIOs 448-479, parent: platform/2310000.gpio, 2310000.gpio:
gpiochip0: GPIOs 480-511, parent: platform/2300000.gpio, 2300000.gpio:
root@TinyLinux:/sys/class/gpio# echo 504 >/sys/class/gpio/export
root@TinyLinux:/sys/class/gpio# echo out > /sys/class/gpio/gpio504/direction
root@TinyLinux:/sys/class/gpio# echo 1 > /sys/class/gpio/gpio504/value
root@TinyLinux:/sys/class/gpio# echo 0 > /sys/class/gpio/gpio504/value
I think GPIO3_19 is number 435.
Would you change the RCW[EC2] to 001.
It will be a good try to check if the GPIO work correctly. It will eliminate the effect of IEEE1588.
Note: the GPIOs are connected to RGMII in the LS1046ARDB layout although the RCW[EC2] may be set different, please use the GPIO carefully to eliminate the signal conflict.