Tool/software: Linux
HI All,
We are using AM5728 for our development and for trying out camera use cases using VIP module we develop custom connector which connects to P16 header of the board.
We using same camera which connects with LCD module . (http://www.ti.com/tool/TMDSCM572X as the driver(mt9t11x.ko) for this camera is already available in PSDK.
Below are the changes done by PCB designer so that we can connect this camera directly to the P16 header
Existing Pin Configuration | I2C5_SCL | I2C5_SDA | OSC_EN | BUFF_EN | GPIO | CAM_PWR | |
Ball name | mcasp1_axr1 | mcasp1_axr0 | mcasp1_axr8 | mcasp1_axr10 | mcasp1_axr11 | mcasp1_axr9 | |
Signal Name | I2C5_SCL | I2C5_SDA | Gpio5_10 | Gpio5_12 | Gpio4_17 | Gpio5_11 | |
Pin Lable in Beagalboard Expansion | P18_4 | P18_3 | P16_34 | P16_33 | P16_3 | P16_4 | |
Am5728 Pad | F12 | G12 | B12 | B13 | A12 | A11 | |
New Pin Configuration | I2C5_SCL | I2C5_SDA | OSC_EN | BUFF_EN | GPIO | CAM_PWR | |
Ball name | gpmc_a4 | gpmc_a5 | gpmc_ad12 | gpmc_ad13 | gpmc_ad14 | gpmc_ad15 | |
Signal Name | I2C5_SCL | I2C5_SDA | Gpio1_18 | Gpio1_19 | Gpio1_20 | Gpio1_21 | |
Pin Lable in Beagalboard Expansion | P16_10 | P16_13 | P16_24 | P16_26 | P16_27 | P16_25 | |
Pin lable in AM5728 | P6 | R9 | H1 | J3 | H2 | H3 | |
Extra Pin Added | CAM_EN | ||||||
Ball name | gpmc_a13 | ||||||
Signal Name | Gpio2_3 | ||||||
Pin Lable in Beagalboard Expansion | P16_7 | ||||||
Pin lable in AM5728 | R3 |
Based on above details I have updated the Dts file as below
1. am57xx-evm.dts
&dra7_pmx_core {
----
// Added for new EVM cam module
i2c5_pins_default: i2c5_pins_default {
pinctrl-single,pins = <
//DRA7XX_CORE_IOPAD(0x3450, (PIN_INPUT_PULLUP | MUX_MODE7)) /* gpmc_a4.i2c5_sda TRM 4226*/
//DRA7XX_CORE_IOPAD(0x3454, (PIN_INPUT_PULLUP | MUX_MODE7)) /* gpmc_a5.i2c5_scl */
0x50 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_a4.i2c5_sda TRM 4226 new method*/
0x54 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_a5.i2c5_scl */
>;
};
---
2. am57xx-evm-common.dtsi
&i2c5 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c5_pins_default>;
clock-frequency = <400000>;
mt9t11x@3C {
compatible = "aptina,mt9t111";
reg = <0x3C>;
/*Original definitions*/
//reset-gpios = <&gpio4 17 GPIO_ACTIVE_LOW>;
//oscen-gpios = <&gpio5 10 GPIO_ACTIVE_HIGH>;
//powerdown-gpios = <&gpio5 11 GPIO_ACTIVE_LOW>;
//bufen-gpios = <&gpio5 12 GPIO_ACTIVE_LOW>;
//camen-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
/*New Definitaions 27-March-2017*/
reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
oscen-goios = <&gpio1 18 GPIO_ACTIVE_HIGH>;
powerdown-gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
bufen-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
port {
cam: endpoint {
remote-endpoint = <&vin3a>;
hsync-active = <1>;
vsync-active = <1>;
pclk-sample = <0>;
input-clock-freq = <32000000>;
pixel-clock-freq = <96000000>;
};
};
};
};
Then compiled the am57xx-evm.dtb file and pushed in /boot folder and rebooted. But still in pinmux info still its remains UNCLAIMED
root@am57xx-evm:/sys/kernel/debug/pinctrl/4a003400.pinmux# cat pinmux-pins
Pinmux settings per pin
pin 20 (4a003450.0): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 21 (4a003454.0): (MUX UNCLAIMED) (GPIO UNCLAIMED)
As I am new to this device tree concepts . Anyone can please guide me where we are going wrong .
Any pointer will be great !!!