/*
* Copyright (c) 2018-2020, NVIDIA CORPORATION. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
#include "dt-bindings/clock/tegra234-clock.h"
#include "tegra194-camera-rbpcv2-sc432ai.dtsi"
#define CAMERA_I2C_MUX_BUS(x) (0x1E + x)
/ {
i2c@c250000 {
tca6408_20: tca6408@20 {
compatible = "ti,tca6408";
gpio-controller;
#gpio-cells = <2>;
reg = <0x20>;
vcc-supply = <&p3768_vdd_3v3_sys>;
tca6408_20_outlow {
/*
* GPIO-0 : PWDN_CAM1
* GPIO-1 : PWDN_CAM2
* GPIO-2 : PWDN_CAM3
* GPIO-3 : PWDN_CAM4
* GPIO-4 : PWDN_CAM5
* GPIO-5 : PWDN_CAM6
* GPIO-6 : NC6
* GPIO-7 : NC7
*/
gpio-hog;
gpios = <0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0>;
output-low;
label = "tca6408_20_outlow_0",
"tca6408_20_outlow_1",
"tca6408_20_outlow_2",
"tca6408_20_outlow_3",
"tca6408_20_outlow_4",
"tca6408_20_outlow_5",
"tca6408_20_outlow_6",
"tca6408_20_outlow_7";
};
tca6408_20_outhigh {
status = "disabled";
};
tca6408_20_input {
status = "disabled";
};
};
};
i2c@3180000 {
tca9548@70 {
compatible = "nxp,pca9548";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x70>;
vcc-supply = <&p3768_vdd_1v8>;
//i2c-mux-idle-disconnect;
skip_mux_detect;
force_bus_start = ;
i2c_0:i2c@5 {
reg = <5>;
#address-cells = <1>;
#size-cells = <0>;
i2c-mux,deselect-on-exit;
rbpcv3_sc432ai_a@36 {
clocks = <&bpmp_clks TEGRA234_CLK_EXTPERIPH1>,
<&bpmp_clks TEGRA234_CLK_PLLP_OUT0>;
clock-names = "extperiph1", "pllp_grtba";
mclk = "extperiph1";
clock-frequency = <24000000>;
snr-role = <0>;
reset-gpios = <&tca6408_20 5 GPIO_ACTIVE_HIGH>;
};
};
i2c_1:i2c@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
i2c-mux,deselect-on-exit;
rbpcv3_sc432ai_b@36 {
clocks = <&bpmp_clks TEGRA234_CLK_EXTPERIPH1>,
<&bpmp_clks TEGRA234_CLK_PLLP_OUT0>;
clock-names = "extperiph1", "pllp_grtba";
mclk = "extperiph1";
clock-frequency = <24000000>;
snr-role = <0>;
reset-gpios = <&tca6408_20 1 GPIO_ACTIVE_HIGH>;
};
};
i2c_2:i2c@2 {
reg = <2>;
#address-cells = <1>;
#size-cells = <0>;
i2c-mux,deselect-on-exit;
rbpcv3_sc432ai_c@36 {
clocks = <&bpmp_clks TEGRA234_CLK_EXTPERIPH1>,
<&bpmp_clks TEGRA234_CLK_PLLP_OUT0>;
clock-names = "extperiph1", "pllp_grtba";
mclk = "extperiph1";
clock-frequency = <24000000>;
snr-role = <0>;
reset-gpios = <&tca6408_20 2 GPIO_ACTIVE_HIGH>;
};
};
i2c_3:i2c@3 {
reg = <3>;
#address-cells = <1>;
#size-cells = <0>;
i2c-mux,deselect-on-exit;
rbpcv3_sc432ai_d@36 {
clocks = <&bpmp_clks TEGRA234_CLK_EXTPERIPH1>,
<&bpmp_clks TEGRA234_CLK_PLLP_OUT0>;
clock-names = "extperiph1", "pllp_grtba";
mclk = "extperiph1";
clock-frequency = <24000000>;
snr-role = <0>;
reset-gpios = <&tca6408_20 3 GPIO_ACTIVE_HIGH>;
};
};
};
};
};