multimedia/device/mpp/ko/pinmux_hi3518e.sh

190 lines
6.1 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#!/bin/sh
# This is a sample, you should rewrite it according to your chip #
# You can configure your pinmux for the application here!
#VICAP default setting is VIU
vicap_pin_mux()
{
himm 0x200f0000 0x00000001 # 0: GPIO0_4 1: SENSOR_CLK
himm 0x200f0004 0x00000000 # 0: SENSOR_RSTN 1: GPIO0_5
himm 0x200f0008 0x00000001 # 0: GPIO0_6 1FLASH_TRIG 2: SFC_EMMC_BOOT_MODE 3SPI1_CSN1 4:VI_VS
himm 0x200f000c 0x00000001 # 0GPIO0_7 1SHUTTER_TRIG 2SFC_DEVICE_MODE 4: VI_HS
}
#SPI1 -> LCD
spi1_pim_mux()
{
himm 0x200f0050 0x1 # 001SPI1_SCLK
himm 0x200f0054 0x1 # 001SPI1_SDO
himm 0x200f0058 0x1 # 001SPI1_SDI
himm 0x200f005c 0x1 # 001SPI1_CSN0
}
#I2C0 -> sensor
i2c0_pin_mux()
{
himm 0x200f0040 0x00000002 # 0: GPIO3_3 1:spi0_sclk 2:i2c0_scl
himm 0x200f0044 0x00000002 # 0: GPIO3_4 1:spi0_sdo 2:i2c0_sda
}
#I2C1 -> 7179
i2c1_pin_mux()
{
himm 0x200f0050 0x00000002 # 010I2C1_SCL
himm 0x200f0054 0x00000002 # 010I2C1_SDA
}
i2c2_pin_mux()
{
himm 0x200f0060 0x1; # i2c2_sda
himm 0x200f0064 0x1; # i2c2_scl
}
#BT656
vo_output_mode()
{
echo "------vo_output_mode------"
#pinmux
himm 0x200f0010 0x00000003 # 3VO_CLK & 0: GPIO2_0 & 1: RMII_CLK
himm 0x200f0014 0x00000000 # 3VO_VS & 0: GPIO2_1 & 1: RMII_TX_EN & 4: SDIO1_CARD_DETECT
himm 0x200f0018 0x00000003 # 3VO_DATA5 & 0: GPIO2_2 & 1: RMII_TXD0 & 4: SDIO1_CWPR
himm 0x200f001c 0x00000000 # 3VO_DE & 0: GPIO2_3 & 1: RMII_TXD1 & 4: SDIO1_CDATA1
himm 0x200f0020 0x00000003 # 3VO_DATA7 & 0: GPIO2_4 & 1: RMII_RX_DV & 4: SDIO1_CDATA0
himm 0x200f0024 0x00000003 # 3VO_DATA2 & 0: GPIO2_5 & 1: RMII_RXD0 & 4: SDIO1_CDATA3
himm 0x200f0028 0x00000003 # 3VO_DATA3 & 0: GPIO2_6 & 1: RMII_RXD1 & 4: SDIO1_CCMD
himm 0x200f002c 0x00000000 # 3VO_HS & 0: GPIO2_7 & 1: EPHY_RST & 2: BOOT_SEL & 4: SDIO1_CARD_POWER_EN
himm 0x200f0030 0x00000003 # 3VO_DATA0 & 0: GPIO0_3 & 1: SPI1_CSN1
himm 0x200f0034 0x00000003 # 3VO_DATA1 & 0: GPIO3_0 & 1: EPHY_CLK & 4: SDIO1_CDATA2
himm 0x200f0038 0x00000003 # 3: VO_DATA6 & 0: GPIO3_1 & 1: MDCK & 2BOOTROM_SEL
himm 0x200f003c 0x00000003 # 3VO_DATA4 & 0: GPIO3_2 & 1: MDIO
#VDP drive capability config
himm 0x200f0810 0xd0; # VO_CLK
himm 0x200f0830 0x90; # VO_DATA0
himm 0x200f0834 0xd0; # VO_DATA1
himm 0x200f0824 0x90; # VO_DATA2
himm 0x200f0828 0x90; # VO_DATA3
himm 0x200f083c 0x90; # VO_DATA4
himm 0x200f0818 0x90; # VO_DATA5
himm 0x200f0838 0x90; # VO_DATA6
himm 0x200f0820 0x90; # VO_DATA7
}
#RMII
net_rmii_mode()
{
echo "------net_rmii_mode------"
himm 0x200f002c 0x00000001; # 1: EPHY_RST & 0: GPIO2_7 & 2: BOOT_SEL & 3VO_HS & 4: SDIO1_CARD_POWER_EN
himm 0x200f0034 0x00000001; # 1: EPHY_CLK & 0: GPIO3_0 & 3VO_DATA1 & 4: SDIO1_CDATA2
#
himm 0x200f0010 0x00000001; # 1: RMII_CLK & 0: GPIO2_0 & 3VO_CLK
himm 0x200f0014 0x00000001; # 1: RMII_TX_EN & 0: GPIO2_1 & 3VO_VS & 4: SDIO1_CARD_DETECT
himm 0x200f0018 0x00000001; # 1: RMII_TXD0 & 0: GPIO2_2 & 3VO_DATA5 & 4: SDIO1_CWPR
himm 0x200f001c 0x00000001; # 1: RMII_TXD1 & 0: GPIO2_3 & 3VO_DE & 4: SDIO1_CDATA1
himm 0x200f0020 0x00000001; # 1: RMII_RX_DV & 0: GPIO2_4 & 3VO_DATA7 & 4: SDIO1_CDATA
himm 0x200f0024 0x00000001; # 1: RMII_RXD0 & 0: GPIO2_5 & 3VO_DATA2 & 4: SDIO1_CDATA3
himm 0x200f0028 0x00000001; # 1: RMII_RXD1 & 0: GPIO2_6 & 3VO_DATA3 & 4: SDIO1_CCMD
#
himm 0x200f0038 0x00000001; # 1: MDCK & 0: GPIO3_1 & 2BOOTROM_SEL & 3: VO_DATA6
himm 0x200f003c 0x00000001; # 1: MDIO & 0: GPIO3_2 & 3VO_DATA4
#ephy drive capability config
himm 0x200f0810 0xd0; # RMII_CLK
himm 0x200f0814 0xa0; # RMII_TX_EN
himm 0x200f0818 0xa0; # RMII_TXD0
himm 0x200f081c 0xa0; # RMII_TXD1
himm 0x200f0820 0xb0; # RMII_RX_DV
himm 0x200f0824 0xb0; # RMII_RXD0
himm 0x200f0828 0xb0; # RMII_RXD1
himm 0x200f082c 0xb0; # EPHY_RST
himm 0x200f0834 0xd0; # EPHY_CLK
himm 0x200f0838 0x90; # MDCK
himm 0x200f083c 0xa0; # MDIO
}
######################parse arg###################################
b_arg_vo=0
b_arg_net=0
for arg in $@
do
if [ $b_arg_vo -eq 1 ] ; then
vo_type=$arg;
fi
case $arg in
"-vo")
b_arg_vo=1;
;;
"-net")
b_arg_net=1;
;;
esac
done
#######################parse arg end########################
#######################Action###############################
if [ $b_arg_vo -eq 1 ]; then
case $vo_type in
"BT656")
echo "===========VO TYPE BT656============";
i2c1_pin_mux; #i2c1 -> 7179
vo_output_mode; #vo output pin mux
himm 0x20030034 0xff4; #vo BT656 CRG
insmod extdrv/adv_7179.ko;
;;
"LCD")
echo "============VO TYPE LCD=============";
spi1_pim_mux; #spi1 -> LCD
vo_output_mode; #vo output pin mux
himm 0x200f0014 0x00000003 # 3VO_VS & 0: GPIO2_1 & 1: RMII_TX_EN & 4: SDIO1_CARD_DETECT
himm 0x200f002c 0x00000003 # 3VO_HS & 0: GPIO2_7 & 1: EPHY_RST & 2: BOOT_SEL & 4: SDIO1_CARD_POWER_EN
himm 0x200f001c 0x00000003 # 3VO_DE & 0: GPIO2_3 & 1: RMII_TXD1 & 4: SDIO1_CDATA1
himm 0x20030034 0x64ff4; # vo LCD CRG
insmod extdrv/ssp_ili9342h_6bit.ko;
;;
esac
fi
if [ $b_arg_net -eq 1 ]; then
echo "==============NET MODE================";
net_rmii_mode;
fi
i2s_pin_mux()
{
# pin_mux with GPIO1
#himm 0x200f007c 0x3; # i2s_bclk_tx
#himm 0x200f0080 0x3; # i2s_sd_tx
#himm 0x200f0084 0x3; # i2s_mclk
#himm 0x200f0088 0x3; # i2s_ws_tx
#himm 0x200f008c 0x3; # i2s_ws_rx
#himm 0x200f0090 0x3; # i2s_bclk_rx
#himm 0x200f0094 0x3; # i2s_sd_rx
# pin_mux with UART1
himm 0x200f00bc 0x2; # i2s_sd_tx
himm 0x200f00c0 0x2; # i2s_ws_tx
himm 0x200f00c4 0x2; # i2s_mclk
himm 0x200f00c8 0x2; # i2s_sd_rx
himm 0x200f00d0 0x2; # i2s_bclk_tx
# pin_mux with JTAG
#himm 0x200f00d4 0x3; # i2s_mclk
#himm 0x200f00d8 0x3; # i2s_ws_tx
#himm 0x200f00dc 0x3; # i2s_sd_tx
#himm 0x200f00e0 0x3; # i2s_sd_rx
#himm 0x200f00e4 0x3; # i2s_bclk_tx
}
#i2c0_pin_mux;
#i2c2_pin_mux
vicap_pin_mux;
#i2s_pin_mux;
#vo_bt656_mode;