csi_write(chan,
TEGRA_CSI_CIL_OFFSET + TEGRA_CSI_CIL_PAD_CONFIG0, 0x0,
csi_port >> 1);
- val |= ((csi_port & 0x1) == PORT_A) ? CSI_A_PHY_CIL_ENABLE :
- CSI_B_PHY_CIL_ENABLE;
+ val = ((csi_port & 0x1) == PORT_A) ?
+ CSI_A_PHY_CIL_ENABLE | CSI_B_PHY_CIL_NOP
+ : CSI_B_PHY_CIL_ENABLE | CSI_A_PHY_CIL_NOP;
csi_write(chan, TEGRA_CSI_PHY_CIL_COMMAND, val,
csi_port >> 1);
}
if (chan->numlanes == 2) {
lanes |= CSIA << csi_port;
- val = csi_read(chan, TEGRA_CSI_PHY_CIL_COMMAND,
- csi_port >> 1);
csi_write(chan,
TEGRA_CSI_CIL_OFFSET +
TEGRA_CSI_CIL_PAD_CONFIG0, 0x0, csi_port >> 1);
- val |= ((csi_port & 0x1) == PORT_A) ?
- CSI_A_PHY_CIL_ENABLE : CSI_B_PHY_CIL_ENABLE;
+ val = ((csi_port & 0x1) == PORT_A) ?
+ CSI_A_PHY_CIL_ENABLE | CSI_B_PHY_CIL_NOP
+ : CSI_B_PHY_CIL_ENABLE | CSI_A_PHY_CIL_NOP;
csi_write(chan, TEGRA_CSI_PHY_CIL_COMMAND, val,
csi_port >> 1);
} else {
*
* Tegra VI/CSI register offsets
*
- * Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
+ * Copyright (c) 2016-2017, NVIDIA CORPORATION. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
/* CSI PHY registers */
/* CSI_PHY_CIL_COMMAND_0 offset 0x0d0 from TEGRA_CSI_PIXEL_PARSER_0_BASE */
#define TEGRA_CSI_PHY_CIL_COMMAND 0x0d0
+#define CSI_A_PHY_CIL_NOP 0x0
#define CSI_A_PHY_CIL_ENABLE 0x1
+#define CSI_B_PHY_CIL_NOP (0x0 << 8)
#define CSI_B_PHY_CIL_ENABLE (0x1 << 8)
/* CSI CIL registers: Starts from 0x92c, offset 0xF4 */