Добрый день!
Как можно писать со сдвигом.
Есть dts:
Код
myled: myled@43c00000 {
compatible = "xlnx,myled-1.0";
reg = <0x43c00000 0x10000>;
};
По сути на ZedBоard это 8 лампочек
Написал драйвер и могу включать лампочки таким образом:
Код
echo 0x1 > /proc/myled
Теперь хочу записывать со сдвигом, т.е. например единицу в 3 лампочку.
Т.е. в моем случае я отремапил лампочки в base_addr.
Если делать типа iowrite32(data, base_addr + addr_offset), то не помогает.
Вот попробовал:
Код
[ 25.093368] myled probed at VA 0xe0970000
zynq> echo 0x1 > /proc/myled
[ 31.906246] res->start 0x43c00000
[ 31.909543] remap_size 0x00010000
[ 31.912899] base_addr 0xe0970000
[ 31.916054] base_addr + ADDR_OFFSET 0xe0970400
В итоге загорается 0 лампочка.
Как например зажечь 3 лампочку именно с помощью сдвига? Как рассчитать addr_offset? Ответы типа записать 0x8 в base_addr не принимаются.
Спасибо!