111 lines
4.0 KiB
Plaintext
Executable File
111 lines
4.0 KiB
Plaintext
Executable File
# overlays fixup script
|
|
# implements (or rather substitutes) overlay arguments functionality
|
|
# using u-boot scripting, environment variables and "fdt" command
|
|
|
|
# setexpr test_var ${tmp_bank} - A
|
|
# works only for hex numbers (A-F)
|
|
|
|
setenv decompose_pin 'setexpr tmp_bank sub "P(C|G|H|I)\\d+" "\\1";
|
|
setexpr tmp_pin sub "P\\S(\\d+)" "\\1";
|
|
test "${tmp_bank}" = "C" && setenv tmp_bank 2;
|
|
test "${tmp_bank}" = "G" && setenv tmp_bank 6;
|
|
test "${tmp_bank}" = "H" && setenv tmp_bank 7;
|
|
test "${tmp_bank}" = "I" && setenv tmp_bank 8'
|
|
|
|
if test -n "${param_spinor_spi_bus}"; then
|
|
test "${param_spinor_spi_bus}" = "0" && setenv tmp_spi_path "spi@5010000"
|
|
test "${param_spinor_spi_bus}" = "1" && setenv tmp_spi_path "spi@5011000"
|
|
fdt set /soc/${tmp_spi_path} status "okay"
|
|
fdt set /soc/${tmp_spi_path}/spiflash@0 status "okay"
|
|
if test -n "${param_spinor_max_freq}"; then
|
|
fdt set /soc/${tmp_spi_path}/spiflash@0 spi-max-frequency "<${param_spinor_max_freq}>"
|
|
fi
|
|
if test "${param_spinor_spi_cs}" = "1"; then
|
|
fdt set /soc/${tmp_spi_path}/spiflash@0 reg "<1>"
|
|
fi
|
|
env delete tmp_spi_path
|
|
fi
|
|
|
|
if test -n "${param_spidev_spi_bus}"; then
|
|
test "${param_spidev_spi_bus}" = "0" && setenv tmp_spi_path "spi@5010000"
|
|
test "${param_spidev_spi_bus}" = "1" && setenv tmp_spi_path "spi@5011000"
|
|
fdt set /soc/${tmp_spi_path} status "okay"
|
|
fdt set /soc/${tmp_spi_path}/spidev status "okay"
|
|
if test -n "${param_spidev_max_freq}"; then
|
|
fdt set /soc/${tmp_spi_path}/spidev spi-max-frequency "<${param_spidev_max_freq}>"
|
|
fi
|
|
if test "${param_spidev_spi_cs}" = "1"; then
|
|
fdt set /soc/${tmp_spi_path}/spidev reg "<1>"
|
|
fi
|
|
env delete tmp_spi_path
|
|
fi
|
|
|
|
if test -n "${param_pps_pin}"; then
|
|
setenv tmp_bank "${param_pps_pin}"
|
|
setenv tmp_pin "${param_pps_pin}"
|
|
run decompose_pin
|
|
fdt set /soc/pinctrl@300b000/pps_pins pins "${param_pps_pin}"
|
|
fdt get value tmp_phandle /soc/pinctrl@300b000 phandle
|
|
fdt set /pps@0 gpios "<${tmp_phandle} ${tmp_bank} ${tmp_pin} 0>"
|
|
env delete tmp_pin tmp_bank tmp_phandle
|
|
fi
|
|
|
|
if test "${param_pps_falling_edge}" = "1"; then
|
|
fdt set /pps@0 assert-falling-edge
|
|
fi
|
|
|
|
for f in ${overlays}; do
|
|
if test "${f}" = "pwm34"; then
|
|
setenv bootargs_new ""
|
|
for arg in ${bootargs}; do
|
|
if test "${arg}" = "console=ttyS0,115200"; then
|
|
echo "Warning: Disabling ttyS0 console due to enabled PWM3 and PWM4 overlay"
|
|
else
|
|
setenv bootargs_new "${bootargs_new} ${arg}"
|
|
fi
|
|
done
|
|
setenv bootargs "${bootargs_new}"
|
|
fi
|
|
done
|
|
|
|
if test -n "${param_w1_pin}"; then
|
|
setenv tmp_bank "${param_w1_pin}"
|
|
setenv tmp_pin "${param_w1_pin}"
|
|
run decompose_pin
|
|
fdt set /soc/pinctrl@300b000/w1_pins pins "${param_w1_pin}"
|
|
fdt get value tmp_phandle /soc/pinctrl@300b000 phandle
|
|
fdt set /onewire@0 gpios "<${tmp_phandle} ${tmp_bank} ${tmp_pin} 0>"
|
|
env delete tmp_pin tmp_bank tmp_phandle
|
|
fi
|
|
|
|
if test "${param_w1_pin_int_pullup}" = "1"; then
|
|
fdt set /soc/pinctrl@300b000/w1_pins bias-pull-up
|
|
fi
|
|
|
|
if test "${param_uart1_rtscts}" = "1"; then
|
|
fdt get value tmp_phandle1 /soc/pinctrl@300b000/uart1-pins phandle
|
|
fdt get value tmp_phandle2 /soc/pinctrl@300b000/uart1-rts-cts-pins phandle
|
|
fdt set /soc/serial@5000400 pinctrl-names "default" "default"
|
|
fdt set /soc/serial@5000400 pinctrl-0 "<${tmp_phandle1}>"
|
|
fdt set /soc/serial@5000400 pinctrl-1 "<${tmp_phandle2}>"
|
|
env delete tmp_phandle1 tmp_phandle2
|
|
fi
|
|
|
|
if test "${param_uart2_rtscts}" = "1"; then
|
|
fdt get value tmp_phandle1 /soc/pinctrl@300b000/uart2-pins phandle
|
|
fdt get value tmp_phandle2 /soc/pinctrl@300b000/uart2-rts-cts-pins phandle
|
|
fdt set /soc/serial@5000800 pinctrl-names "default" "default"
|
|
fdt set /soc/serial@5000800 pinctrl-0 "<${tmp_phandle1}>"
|
|
fdt set /soc/serial@5000800 pinctrl-1 "<${tmp_phandle2}>"
|
|
env delete tmp_phandle1 tmp_phandle2
|
|
fi
|
|
|
|
if test "${param_uart3_rtscts}" = "1"; then
|
|
fdt get value tmp_phandle1 /soc/pinctrl@300b000/uart3-pins phandle
|
|
fdt get value tmp_phandle2 /soc/pinctrl@300b000/uart3-rts-cts-pins phandle
|
|
fdt set /soc/serial@5000c00 pinctrl-names "default" "default"
|
|
fdt set /soc/serial@5000c00 pinctrl-0 "<${tmp_phandle1}>"
|
|
fdt set /soc/serial@5000c00 pinctrl-1 "<${tmp_phandle2}>"
|
|
env delete tmp_phandle1 tmp_phandle2
|
|
fi
|