gmsl set:
gmsl-deserializer@0x29 {
#address-cells = <0x01>;
#size-cells = <0x00>;
compatible = "maxim,max96712";
reset-gpios = <0xf1 0x3e 0x00>;
reg = <0x29>;
status = "okay";
i2c-alias-pool = <0x41 0x42 0x43 0x44>;
phandle = <0x24f>;
i2c-atr {
#address-cells = <0x01>;
#size-cells = <0x00>;
i2c@0 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x00>;
phandle = <0x250>;
gmsl-serializer@0x40 {
#address-cells = <0x01>;
#size-cells = <0x00>;
compatible = "maxim,max9295a";
reg = <0x40>;
gpio-controller;
#gpio-cells = <0x02>;
gpio-ranges = <0xf2 0x00 0x00 0x0b>;
i2c-alias-pool = <0x37>;
phandle = <0xf2>;
i2c-atr {
#address-cells = <0x01>;
#size-cells = <0x00>;
i2c@0 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x00>;
phandle = <0x251>;
ox03a@0x1a {
#address-cells = <0x01>;
#size-cells = <0x00>;
compatible = "nv,nv-cam";
reg = <0x1a>;
label = "cam_0";
pwdn-gpios = <0xf2 0x00 0x00>;
nv,pwdn-sleep-us = <0x7a120>;
reset-gpios = <0xf2 0x07 0x00>;
physical_w = "15.0";
physical_h = "12.5";
sensor_model = "isx031";
use_sensor_mode_id = "true";
nv,reg-bits = <0x10>;
nv,val-bits = <0x08>;
nv,chip-id-regs = <0x7e8a 0x7e8b>;
nv,chip-id-masks = <0xff 0x0f>;
nv,chip-id-vals = <0x31 0x00>;
nv,wait-ms-cmd = <0x32>;
nv,mode-common-cmd = <0x8a01 0x00 0x8af0 0x01 0xbf14 0x01>;
nv,start-stream-cmd = <0x8a01 0x80>;
nv,stop-stream-cmd = <0x8a01 0x00>;
phandle = <0x226>;
mode0 {
nv,mode-cmd = <0x00>;
mclk_khz = "24000";
set_mode_delay_ms = "5000";
num_lanes = "4";
tegra_sinterface = "serial_c";
vc_id = "0";
phy_mode = "DPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
lane_polarity = "0";
active_w = "3840";
active_h = "2160";
readout_orientation = "0";
csi_pixel_bit_depth = "16";
dynamic_pixel_bit_depth = "16";
mode_type = "yuv";
pixel_phase = "uyvy";
line_length = "2200";
inherent_gain = "1";
pix_clk_hz = "200000000";
serdes_link_freq = "1250000000";
gain_factor = "1000";
min_gain_val = "1";
max_gain_val = "30000";
step_gain_val = "300";
default_gain = "16";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
framerate_factor = "1000000";
min_framerate = "30000000";
max_framerate = "30000000";
step_framerate = "1";
default_framerate = "30000000";
exposure_factor = "1000000";
min_exp_time = "59";
max_exp_time = "33333";
step_exp_time = "1";
default_exp_time = "33333";
embedded_metadata_height = "0";
};
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@0 {
reg = <0x00>;
endpoint {
port-index = <0x02>;
bus-width = <0x04>;
remote-endpoint = <0xf3>;
data-lanes = <0x01 0x02 0x03 0x04>;
clock-lanes = <0x00>;
phandle = <0xf5>;
};
};
};
};
};
};
pipe@0 {
reg = <0x00>;
maxim,stream-id = <0x00>;
maxim,dbl8;
maxim,soft-bpp = <0x10>;
};
channel@0 {
reg = <0x00>;
label = "ser_0_ch_0";
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@0 {
reg = <0x00>;
endpoint {
remote-endpoint = <0xf4>;
phandle = <0x103>;
};
};
port@1 {
reg = <0x01>;
endpoint {
remote-endpoint = <0xf5>;
phandle = <0xf3>;
};
};
};
};
pins {
ser_0_mfp0_pwdn {
pins = "mfp0";
function = "gpio";
output-high;
output-enable;
phandle = <0x252>;
};
ser_0_mfp7_fsync {
pins = "mfp7";
function = "gpio";
output-high;
input-disable;
phandle = <0x253>;
};
};
};
};
i2c@1 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x01>;
phandle = <0x254>;
gmsl-serializer@0x40 {
#address-cells = <0x01>;
#size-cells = <0x00>;
compatible = "maxim,max9295a";
reg = <0x40>;
gpio-controller;
#gpio-cells = <0x02>;
gpio-ranges = <0xf6 0x00 0x00 0x0b>;
i2c-alias-pool = <0x38>;
phandle = <0xf6>;
i2c-atr {
#address-cells = <0x01>;
#size-cells = <0x00>;
i2c@0 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x00>;
phandle = <0x255>;
ox03a@0x1a {
#address-cells = <0x01>;
#size-cells = <0x00>;
compatible = "nv,nv-cam";
reg = <0x1a>;
label = "cam_1";
pwdn-gpios = <0xf6 0x00 0x00>;
nv,pwdn-sleep-us = <0x7a120>;
reset-gpios = <0xf6 0x07 0x00>;
physical_w = "15.0";
physical_h = "12.5";
sensor_model = "isx031";
use_sensor_mode_id = "true";
nv,reg-bits = <0x10>;
nv,val-bits = <0x08>;
nv,chip-id-regs = <0x7e8a 0x7e8b>;
nv,chip-id-masks = <0xff 0x0f>;
nv,chip-id-vals = <0x31 0x00>;
nv,wait-ms-cmd = <0x32>;
nv,mode-common-cmd = <0x8a01 0x00 0x8af0 0x01 0xbf14 0x01>;
nv,start-stream-cmd = <0x8a01 0x80>;
nv,stop-stream-cmd = <0x8a01 0x00>;
phandle = <0x227>;
mode0 {
nv,mode-cmd = <0x00>;
mclk_khz = "24000";
set_mode_delay_ms = "5000";
num_lanes = "4";
tegra_sinterface = "serial_c";
vc_id = "1";
phy_mode = "DPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
lane_polarity = "0";
active_w = "1920";
active_h = "1080";
readout_orientation = "0";
csi_pixel_bit_depth = "16";
dynamic_pixel_bit_depth = "16";
mode_type = "yuv";
pixel_phase = "uyvy";
line_length = "2200";
inherent_gain = "1";
pix_clk_hz = "200000000";
serdes_link_freq = "1250000000";
gain_factor = "1000";
min_gain_val = "1";
max_gain_val = "30000";
step_gain_val = "300";
default_gain = "16";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
framerate_factor = "1000000";
min_framerate = "30000000";
max_framerate = "30000000";
step_framerate = "1";
default_framerate = "30000000";
exposure_factor = "1000000";
min_exp_time = "59";
max_exp_time = "33333";
step_exp_time = "1";
default_exp_time = "33333";
embedded_metadata_height = "0";
};
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@0 {
reg = <0x00>;
endpoint {
port-index = <0x02>;
bus-width = <0x04>;
remote-endpoint = <0xf7>;
data-lanes = <0x01 0x02 0x03 0x04>;
clock-lanes = <0x00>;
phandle = <0xf9>;
};
};
};
};
};
};
pipe@0 {
reg = <0x00>;
maxim,stream-id = <0x01>;
maxim,dbl8;
maxim,soft-bpp = <0x10>;
};
channel@0 {
reg = <0x00>;
label = "ser_1_ch_0";
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@0 {
reg = <0x00>;
endpoint {
remote-endpoint = <0xf8>;
phandle = <0x105>;
};
};
port@1 {
reg = <0x01>;
endpoint {
remote-endpoint = <0xf9>;
phandle = <0xf7>;
};
};
};
};
pins {
ser_1_mfp0_pwdn {
pins = "mfp0";
function = "gpio";
output-high;
output-enable;
phandle = <0x256>;
};
ser_1_mfp7_fsync {
pins = "mfp7";
function = "gpio";
output-high;
input-disable;
phandle = <0x257>;
};
};
};
};
i2c@2 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x02>;
phandle = <0x258>;
gmsl-serializer@0x40 {
#address-cells = <0x01>;
#size-cells = <0x00>;
compatible = "maxim,max9295a";
reg = <0x40>;
gpio-controller;
#gpio-cells = <0x02>;
gpio-ranges = <0xfa 0x00 0x00 0x0b>;
i2c-alias-pool = <0x39>;
phandle = <0xfa>;
i2c-atr {
#address-cells = <0x01>;
#size-cells = <0x00>;
i2c@0 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x00>;
phandle = <0x259>;
ox03a@0x1a {
#address-cells = <0x01>;
#size-cells = <0x00>;
compatible = "nv,nv-cam";
reg = <0x1a>;
label = "cam_2";
pwdn-gpios = <0xfa 0x00 0x00>;
nv,pwdn-sleep-us = <0x7a120>;
reset-gpios = <0xfa 0x07 0x00>;
physical_w = "15.0";
physical_h = "12.5";
sensor_model = "isx031";
use_sensor_mode_id = "true";
nv,reg-bits = <0x10>;
nv,val-bits = <0x08>;
nv,chip-id-regs = <0x7e8a 0x7e8b>;
nv,chip-id-masks = <0xff 0x0f>;
nv,chip-id-vals = <0x31 0x00>;
nv,wait-ms-cmd = <0x32>;
nv,mode-common-cmd = <0x8a01 0x00 0x8af0 0x01 0xbf14 0x01>;
nv,start-stream-cmd = <0x8a01 0x80>;
nv,stop-stream-cmd = <0x8a01 0x00>;
phandle = <0x228>;
mode0 {
nv,mode-cmd = <0x00>;
mclk_khz = "24000";
set_mode_delay_ms = "5000";
num_lanes = "4";
tegra_sinterface = "serial_a";
vc_id = "2";
phy_mode = "DPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
lane_polarity = "6";
active_w = "1920";
active_h = "1080";
readout_orientation = "0";
csi_pixel_bit_depth = "16";
dynamic_pixel_bit_depth = "16";
mode_type = "yuv";
pixel_phase = "uyvy";
line_length = "2200";
inherent_gain = "1";
pix_clk_hz = "200000000";
serdes_link_freq = "1250000000";
gain_factor = "1000";
min_gain_val = "1";
max_gain_val = "30000";
step_gain_val = "300";
default_gain = "16";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
framerate_factor = "1000000";
min_framerate = "30000000";
max_framerate = "30000000";
step_framerate = "1";
default_framerate = "30000000";
exposure_factor = "1000000";
min_exp_time = "59";
max_exp_time = "33333";
step_exp_time = "1";
default_exp_time = "33333";
embedded_metadata_height = "0";
};
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@0 {
reg = <0x00>;
endpoint {
port-index = <0x00>;
bus-width = <0x04>;
remote-endpoint = <0xfb>;
data-lanes = <0x01 0x02 0x03 0x04>;
clock-lanes = <0x00>;
phandle = <0xfd>;
};
};
};
};
};
};
pipe@0 {
reg = <0x00>;
maxim,stream-id = <0x02>;
maxim,dbl8;
maxim,soft-bpp = <0x10>;
};
channel@0 {
reg = <0x00>;
label = "ser_2_ch_0";
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@0 {
reg = <0x00>;
endpoint {
remote-endpoint = <0xfc>;
phandle = <0x107>;
};
};
port@1 {
reg = <0x01>;
endpoint {
remote-endpoint = <0xfd>;
phandle = <0xfb>;
};
};
};
};
pins {
ser_2_mfp0_pwdn {
pins = "mfp0";
function = "gpio";
output-high;
output-enable;
phandle = <0x25a>;
};
ser_2_mfp7_fsync {
pins = "mfp7";
function = "gpio";
output-high;
input-disable;
phandle = <0x25b>;
};
};
};
};
i2c@3 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x03>;
phandle = <0x25c>;
gmsl-serializer@0x40 {
#address-cells = <0x01>;
#size-cells = <0x00>;
compatible = "maxim,max9295a";
reg = <0x40>;
gpio-controller;
#gpio-cells = <0x02>;
gpio-ranges = <0xfe 0x00 0x00 0x0b>;
i2c-alias-pool = <0x3a>;
phandle = <0xfe>;
i2c-atr {
#address-cells = <0x01>;
#size-cells = <0x00>;
i2c@0 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x00>;
phandle = <0x25d>;
ox03a@0x1a {
#address-cells = <0x01>;
#size-cells = <0x00>;
compatible = "nv,nv-cam";
reg = <0x1a>;
label = "cam_3";
pwdn-gpios = <0xfe 0x00 0x00>;
nv,pwdn-sleep-us = <0x7a120>;
reset-gpios = <0xfe 0x07 0x00>;
physical_w = "15.0";
physical_h = "12.5";
sensor_model = "isx031";
use_sensor_mode_id = "true";
nv,reg-bits = <0x10>;
nv,val-bits = <0x08>;
nv,chip-id-regs = <0x7e8a 0x7e8b>;
nv,chip-id-masks = <0xff 0x0f>;
nv,chip-id-vals = <0x31 0x00>;
nv,wait-ms-cmd = <0x32>;
nv,mode-common-cmd = <0x8a01 0x00 0x8af0 0x01 0xbf14 0x01>;
nv,start-stream-cmd = <0x8a01 0x80>;
nv,stop-stream-cmd = <0x8a01 0x00>;
phandle = <0x229>;
mode0 {
nv,mode-cmd = <0x00>;
mclk_khz = "24000";
set_mode_delay_ms = "5000";
num_lanes = "4";
tegra_sinterface = "serial_a";
vc_id = "3";
phy_mode = "DPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
lane_polarity = "6";
active_w = "1920";
active_h = "1536";
readout_orientation = "0";
csi_pixel_bit_depth = "16";
dynamic_pixel_bit_depth = "16";
mode_type = "yuv";
pixel_phase = "uyvy";
line_length = "2200";
inherent_gain = "1";
pix_clk_hz = "200000000";
serdes_link_freq = "1250000000";
gain_factor = "1000";
min_gain_val = "1";
max_gain_val = "30000";
step_gain_val = "300";
default_gain = "16";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
framerate_factor = "1000000";
min_framerate = "30000000";
max_framerate = "30000000";
step_framerate = "1";
default_framerate = "30000000";
exposure_factor = "1000000";
min_exp_time = "59";
max_exp_time = "33333";
step_exp_time = "1";
default_exp_time = "33333";
embedded_metadata_height = "0";
};
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@0 {
reg = <0x00>;
endpoint {
port-index = <0x00>;
bus-width = <0x04>;
remote-endpoint = <0xff>;
data-lanes = <0x01 0x02 0x03 0x04>;
clock-lanes = <0x00>;
phandle = <0x101>;
};
};
};
};
};
};
pipe@0 {
reg = <0x00>;
maxim,stream-id = <0x03>;
maxim,dbl8;
maxim,soft-bpp = <0x10>;
};
channel@0 {
reg = <0x00>;
label = "ser_3_ch_0";
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@0 {
reg = <0x00>;
endpoint {
remote-endpoint = <0x100>;
phandle = <0x109>;
};
};
port@1 {
reg = <0x01>;
endpoint {
remote-endpoint = <0x101>;
phandle = <0xff>;
};
};
};
};
pins {
ser_3_mfp0_pwdn {
pins = "mfp0";
function = "gpio";
output-high;
output-enable;
phandle = <0x25e>;
};
ser_3_mfp7_fsync {
pins = "mfp7";
function = "gpio";
output-high;
input-disable;
phandle = <0x25f>;
};
};
};
};
};
phy@2 {
reg = <0x02>;
maxim,alt-mem-map8;
};
phy@1 {
maxim,alt-mem-map8;
reg = <0x01>;
};
pipe@0 {
reg = <0x00>;
maxim,phy-id = <0x01>;
maxim,stream-id = <0x00>;
maxim,link-id = <0x00>;
};
pipe@1 {
reg = <0x01>;
maxim,phy-id = <0x01>;
maxim,stream-id = <0x01>;
maxim,link-id = <0x01>;
};
pipe@2 {
reg = <0x02>;
maxim,phy-id = <0x02>;
maxim,stream-id = <0x02>;
maxim,link-id = <0x02>;
};
pipe@3 {
reg = <0x03>;
maxim,phy-id = <0x02>;
maxim,stream-id = <0x03>;
maxim,link-id = <0x03>;
};
channel@0 {
reg = <0x00>;
label = "des_ch_0";
maxim,phy-id = <0x01>;
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@0 {
reg = <0x00>;
endpoint {
remote-endpoint = <0x102>;
clock-lanes = <0x00>;
data-lanes = <0x01 0x02 0x03 0x04>;
link-frequencies = <0x00 0x4a817c80>;
phandle = <0x126>;
};
};
port@1 {
reg = <0x01>;
endpoint {
remote-endpoint = <0x103>;
phandle = <0xf4>;
};
};
};
};
channel@1 {
reg = <0x01>;
label = "des_ch_1";
maxim,phy-id = <0x01>;
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@0 {
reg = <0x00>;
endpoint {
remote-endpoint = <0x104>;
clock-lanes = <0x00>;
data-lanes = <0x01 0x02 0x03 0x04>;
link-frequencies = <0x00 0x4a817c80>;
phandle = <0x128>;
};
};
port@1 {
reg = <0x01>;
endpoint {
remote-endpoint = <0x105>;
phandle = <0xf8>;
};
};
};
};
channel@2 {
reg = <0x02>;
label = "des_ch_2";
maxim,phy-id = <0x02>;
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@0 {
reg = <0x00>;
endpoint {
remote-endpoint = <0x106>;
clock-lanes = <0x00>;
data-lanes = <0x01 0x02 0x03 0x04>;
link-frequencies = <0x00 0x4a817c80>;
phandle = <0x12a>;
};
};
port@1 {
reg = <0x01>;
endpoint {
remote-endpoint = <0x107>;
phandle = <0xfc>;
};
};
};
};
channel@3 {
reg = <0x03>;
label = "des_ch_3";
maxim,phy-id = <0x02>;
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@0 {
reg = <0x00>;
endpoint {
remote-endpoint = <0x108>;
clock-lanes = <0x00>;
data-lanes = <0x01 0x02 0x03 0x04>;
link-frequencies = <0x00 0x4a817c80>;
phandle = <0x12c>;
};
};
port@1 {
reg = <0x01>;
endpoint {
remote-endpoint = <0x109>;
phandle = <0x100>;
};
};
};
};
};
};