RE: [PATCH 10/14] arm64: dts: freescale: imx93-tqma9352-mba93xxca: improve pad configuration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Subject: [PATCH 10/14] arm64: dts: freescale: imx93-tqma9352-
> mba93xxca: improve pad configuration
> 
> From: Markus Niebel <Markus.Niebel@xxxxxxxxxxxxxxx>
> 
> - disable PU/PD if already done with external resistors
> - do not configure Schmitt Trigger for outputs
> - do not configure DSE / FSEL for inputs
> - add missing pad groups
> - assign muxed GPIO pads for X1 to gpio2 node
> 
> Pad config changes suggested by hardware team.
> 
> Signed-off-by: Markus Niebel <Markus.Niebel@xxxxxxxxxxxxxxx>
> Signed-off-by: Alexander Stein <alexander.stein@xxxxxxxxxxxxxxx>
> ---
>  .../freescale/imx93-tqma9352-mba93xxca.dts    | 235 ++++++++++++---
> ---
>  1 file changed, 159 insertions(+), 76 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/freescale/imx93-tqma9352-
> mba93xxca.dts b/arch/arm64/boot/dts/freescale/imx93-tqma9352-
> mba93xxca.dts
> index 852dd3d2eac7..99a0b6b9e304 100644
> --- a/arch/arm64/boot/dts/freescale/imx93-tqma9352-mba93xxca.dts
> +++ b/arch/arm64/boot/dts/freescale/imx93-tqma9352-
> mba93xxca.dts
> @@ -289,6 +289,11 @@ tcpc-irq-hog {
>  	};
>  };
> 
> +&gpio2 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_gpio2>;

New change.

I would prefer merge the pad improve into one. But see if
Shawn is ok to separate or merge to one.

Regards,
Peng.

> +};
> +
>  &lpi2c3 {
>  	#address-cells = <1>;
>  	#size-cells = <0>;
> @@ -559,22 +564,23 @@ &iomuxc {
>  	pinctrl_eqos: eqosgrp {
>  		fsl,pins = <
>  			/* PD | FSEL_2 | DSE X4 */
> -			MX93_PAD_ENET1_MDC__ENET_QOS_MDC
> 		0x51e
> -
> 	MX93_PAD_ENET1_MDIO__ENET_QOS_MDIO
> 	0x4000051e
> -			/* PD | FSEL_2 | DSE X6 */
> -
> 	MX93_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0
> 	0x57e
> -
> 	MX93_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1
> 	0x57e
> -
> 	MX93_PAD_ENET1_RD2__ENET_QOS_RGMII_RD2
> 	0x57e
> -
> 	MX93_PAD_ENET1_RD3__ENET_QOS_RGMII_RD3
> 	0x57e
> -			/* PD | FSEL_3 | DSE X6 */
> -
> 	MX93_PAD_ENET1_RXC__CCM_ENET_QOS_CLOCK_GENERATE
> _RX_CLK	0x5fe
> -
> 	MX93_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL
> 	0x57e
> +			MX93_PAD_ENET1_MDC__ENET_QOS_MDC
> 			0x51e
> +			/* SION | HYS | FSEL_2 | DSE X4 */
> +
> 	MX93_PAD_ENET1_MDIO__ENET_QOS_MDIO
> 	0x4000111e
> +			/* HYS | FSEL_0 | DSE no drive */
> +
> 	MX93_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0
> 	0x1000
> +
> 	MX93_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1
> 	0x1000
> +
> 	MX93_PAD_ENET1_RD2__ENET_QOS_RGMII_RD2
> 	0x1000
> +
> 	MX93_PAD_ENET1_RD3__ENET_QOS_RGMII_RD3
> 	0x1000
> +
> 	MX93_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL
> 	0x1000
> +			/* HYS | PD | FSEL_0 | DSE no drive */
> +
> 	MX93_PAD_ENET1_RXC__CCM_ENET_QOS_CLOCK_GENERATE
> _RX_CLK	0x1400
>  			/* PD | FSEL_2 | DSE X4 */
> -
> 	MX93_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0
> 	0x51e
> -
> 	MX93_PAD_ENET1_TD1__ENET_QOS_RGMII_TD1
> 	0x51e
> -
> 	MX93_PAD_ENET1_TD2__ENET_QOS_RGMII_TD2
> 	0x51e
> -
> 	MX93_PAD_ENET1_TD3__ENET_QOS_RGMII_TD3
> 	0x51e
> -
> 	MX93_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL
> 	0x51e
> +
> 	MX93_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0
> 	0x51e
> +
> 	MX93_PAD_ENET1_TD1__ENET_QOS_RGMII_TD1
> 	0x51e
> +
> 	MX93_PAD_ENET1_TD2__ENET_QOS_RGMII_TD2
> 	0x51e
> +
> 	MX93_PAD_ENET1_TD3__ENET_QOS_RGMII_TD3
> 	0x51e
> +
> 	MX93_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL
> 	0x51e
>  			/* PD | FSEL_3 | DSE X3 */
> 
> 	MX93_PAD_ENET1_TXC__CCM_ENET_QOS_CLOCK_GENERATE
> _TX_CLK	0x58e
>  		>;
> @@ -582,7 +588,8 @@
> MX93_PAD_ENET1_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK
> 	0x58e
> 
>  	pinctrl_eqos_phy: eqosphygrp {
>  		fsl,pins = <
> -			MX93_PAD_CCM_CLKO1__GPIO3_IO26
> 	0x1306
> +			/* HYS | FSEL_0 | DSE no drive */
> +			MX93_PAD_CCM_CLKO1__GPIO3_IO26
> 		0x1000
>  		>;
>  	};
> 
> @@ -590,15 +597,16 @@ pinctrl_fec: fecgrp {
>  		fsl,pins = <
>  			/* PD | FSEL_2 | DSE X4 */
>  			MX93_PAD_ENET2_MDC__ENET1_MDC
> 		0x51e
> -			MX93_PAD_ENET2_MDIO__ENET1_MDIO
> 		0x4000051e
> -			/* PD | FSEL_2 | DSE X6 */
> -			MX93_PAD_ENET2_RD0__ENET1_RGMII_RD0
> 		0x57e
> -			MX93_PAD_ENET2_RD1__ENET1_RGMII_RD1
> 		0x57e
> -			MX93_PAD_ENET2_RD2__ENET1_RGMII_RD2
> 		0x57e
> -			MX93_PAD_ENET2_RD3__ENET1_RGMII_RD3
> 		0x57e
> -			/* PD | FSEL_3 | DSE X6 */
> -			MX93_PAD_ENET2_RXC__ENET1_RGMII_RXC
> 		0x5fe
> -
> 	MX93_PAD_ENET2_RX_CTL__ENET1_RGMII_RX_CTL
> 	0x57e
> +			/* SION | HYS | FSEL_2 | DSE X4 */
> +			MX93_PAD_ENET2_MDIO__ENET1_MDIO
> 		0x4000111e
> +			/* HYS | FSEL_0 | DSE no drive */
> +			MX93_PAD_ENET2_RD0__ENET1_RGMII_RD0
> 		0x1000
> +			MX93_PAD_ENET2_RD1__ENET1_RGMII_RD1
> 		0x1000
> +			MX93_PAD_ENET2_RD2__ENET1_RGMII_RD2
> 		0x1000
> +			MX93_PAD_ENET2_RD3__ENET1_RGMII_RD3
> 		0x1000
> +
> 	MX93_PAD_ENET2_RX_CTL__ENET1_RGMII_RX_CTL
> 	0x1000
> +			/* HYS | PD | FSEL_0 | DSE no drive */
> +			MX93_PAD_ENET2_RXC__ENET1_RGMII_RXC
> 		0x1400
>  			/* PD | FSEL_2 | DSE X4 */
>  			MX93_PAD_ENET2_TD0__ENET1_RGMII_TD0
> 		0x51e
>  			MX93_PAD_ENET2_TD1__ENET1_RGMII_TD1
> 		0x51e
> @@ -612,147 +620,222 @@
> MX93_PAD_ENET2_TXC__ENET1_RGMII_TXC		0x58e
> 
>  	pinctrl_fec_phy: fecphygrp {
>  		fsl,pins = <
> -			MX93_PAD_CCM_CLKO2__GPIO3_IO27
> 	0x1306
> +			/* HYS | FSEL_0 | DSE no drive */
> +			MX93_PAD_CCM_CLKO2__GPIO3_IO27
> 		0x1000
>  		>;
>  	};
> 
>  	pinctrl_flexcan1: flexcan1grp {
>  		fsl,pins = <
> -			MX93_PAD_PDM_BIT_STREAM0__CAN1_RX
> 	0x139e
> -			MX93_PAD_PDM_CLK__CAN1_TX
> 	0x139e
> +			/* HYS | PU | FSEL_0 | DSE no drive */
> +			MX93_PAD_PDM_BIT_STREAM0__CAN1_RX
> 		0x1200
> +			/* PU | FSEL_3 | DSE X4 */
> +			MX93_PAD_PDM_CLK__CAN1_TX
> 		0x039e
>  		>;
>  	};
> 
>  	pinctrl_flexcan2: flexcan2grp {
>  		fsl,pins = <
> -			MX93_PAD_GPIO_IO25__CAN2_TX
> 	0x139e
> -			MX93_PAD_GPIO_IO27__CAN2_RX
> 	0x139e
> +			/* HYS | PU | FSEL_0 | DSE no drive */
> +			MX93_PAD_GPIO_IO27__CAN2_RX
> 		0x1200
> +			/* PU | FSEL_3 | DSE X4 */
> +			MX93_PAD_GPIO_IO25__CAN2_TX
> 		0x039e
> +		>;
> +	};
> +
> +	pinctrl_gpio2: gpio2grp {
> +		fsl,pins = <
> +			/* HYS | PD | FSEL_2 | DSE X4 */
> +			MX93_PAD_GPIO_IO16__GPIO2_IO16
> 		0x151e
> +			MX93_PAD_GPIO_IO17__GPIO2_IO17
> 		0x151e
> +			MX93_PAD_GPIO_IO18__GPIO2_IO18
> 		0x151e
> +			MX93_PAD_GPIO_IO19__GPIO2_IO19
> 		0x151e
> +			MX93_PAD_GPIO_IO20__GPIO2_IO20
> 		0x151e
> +			MX93_PAD_GPIO_IO21__GPIO2_IO21
> 		0x151e
> +			MX93_PAD_GPIO_IO26__GPIO2_IO26
> 		0x151e
> +		>;
> +	};
> +
> +	pinctrl_jtag: jtaggrp {
> +		fsl,pins = <
> +
> 	MX93_PAD_DAP_TCLK_SWCLK__JTAG_MUX_TCK
> 	0x051e
> +			MX93_PAD_DAP_TDI__JTAG_MUX_TDI
> 		0x1200
> +
> 	MX93_PAD_DAP_TDO_TRACESWO__JTAG_MUX_TDO
> 	0x031e
> +
> 	MX93_PAD_DAP_TMS_SWDIO__JTAG_MUX_TMS
> 	0x1200
>  		>;
>  	};
> 
>  	pinctrl_lpi2c3: lpi2c3grp {
>  		fsl,pins = <
> -			MX93_PAD_GPIO_IO28__LPI2C3_SDA
> 	0x40000b9e
> -			MX93_PAD_GPIO_IO29__LPI2C3_SCL
> 	0x40000b9e
> +			/* SION | HYS | OD | FSEL_3 | DSE X4 */
> +			MX93_PAD_GPIO_IO28__LPI2C3_SDA
> 		0x4000199e
> +			MX93_PAD_GPIO_IO29__LPI2C3_SCL
> 		0x4000199e
>  		>;
>  	};
> 
>  	pinctrl_lpi2c5: lpi2c5grp {
>  		fsl,pins = <
> -			MX93_PAD_GPIO_IO22__LPI2C5_SDA
> 	0x40000b9e
> -			MX93_PAD_GPIO_IO23__LPI2C5_SCL
> 	0x40000b9e
> +			/* SION | HYS | OD | FSEL_3 | DSE X4 */
> +			MX93_PAD_GPIO_IO22__LPI2C5_SDA
> 		0x4000199e
> +			MX93_PAD_GPIO_IO23__LPI2C5_SCL
> 		0x4000199e
>  		>;
>  	};
> 
>  	pinctrl_lpspi6: lpspi6grp {
>  		fsl,pins = <
> -			MX93_PAD_GPIO_IO00__LPSPI6_PCS0
> 	0x3fe
> -			MX93_PAD_GPIO_IO01__LPSPI6_SIN
> 	0x3fe
> -			MX93_PAD_GPIO_IO02__LPSPI6_SOUT
> 	0x3fe
> -			MX93_PAD_GPIO_IO03__LPSPI6_SCK
> 	0x3fe
> +			/* FSEL_2 | DSE X4 */
> +			MX93_PAD_GPIO_IO00__LPSPI6_PCS0
> 		0x011e
> +			/* HYS | PD | FSEL_0 | DSE no drive */
> +			MX93_PAD_GPIO_IO01__LPSPI6_SIN
> 		0x1400
> +			/* PD | FSEL_2 | DSE X4 */
> +			MX93_PAD_GPIO_IO02__LPSPI6_SOUT
> 		0x051e
> +			MX93_PAD_GPIO_IO03__LPSPI6_SCK
> 		0x051e
> +		>;
> +	};
> +
> +	pinctrl_mipi_csi: mipicsigrp {
> +		fsl,pins = <
> +
> 	MX93_PAD_CCM_CLKO3__CCMSRCGPCMIX_CLKO3
> 	0x051e /* MCLK */
> +			MX93_PAD_GPIO_IO10__GPIO2_IO10
> 		0x051e /* TRIGGER */
> +			MX93_PAD_GPIO_IO11__GPIO2_IO11
> 		0x1400 /* SYNC */
> +		>;
> +	};
> +
> +	pinctrl_pcf85063: pcf85063grp {
> +		fsl,pins = <
> +			MX93_PAD_SAI1_RXD0__GPIO1_IO14
> 		0x1000
>  		>;
>  	};
> 
>  	pinctrl_pexp_irq: pexpirqgrp {
>  		fsl,pins = <
> -			MX93_PAD_SAI1_TXC__GPIO1_IO12
> 	0x1306
> +			/* HYS | FSEL_0 | No DSE */
> +			MX93_PAD_SAI1_TXC__GPIO1_IO12
> 		0x1000
>  		>;
>  	};
> 
>  	pinctrl_pwmfan: pwmfangrp {
>  		fsl,pins = <
> -			MX93_PAD_GPIO_IO09__GPIO2_IO09
> 	0x1306
> +			/* HYS | PU | FSEL_0 | no DSE */
> +			MX93_PAD_GPIO_IO09__GPIO2_IO09
> 		0x1200
> +		>;
> +	};
> +
> +	pinctrl_tc9595: tc9595-grp {
> +		fsl,pins = <
> +			/* HYS | PD | FSEL_0 | no DSE */
> +			MX93_PAD_CCM_CLKO4__GPIO4_IO29
> 		0x1400
> +		>;
> +	};
> +
> +	pinctrl_temp_sensor_som: tempsensorsomgrp {
> +		fsl,pins = <
> +			/* HYS | FSEL_0 | no DSE */
> +			MX93_PAD_SAI1_TXFS__GPIO1_IO11
> 		0x1000
>  		>;
>  	};
> 
>  	pinctrl_tpm5: tpm5grp {
>  		fsl,pins = <
> -			MX93_PAD_GPIO_IO06__TPM5_CH0
> 	0x57e
> +			MX93_PAD_GPIO_IO06__TPM5_CH0
> 		0x57e
>  		>;
>  	};
> 
>  	pinctrl_tpm6: tpm6grp {
>  		fsl,pins = <
> -			MX93_PAD_GPIO_IO08__TPM6_CH0
> 	0x57e
> +			MX93_PAD_GPIO_IO08__TPM6_CH0
> 		0x57e
>  		>;
>  	};
> 
>  	pinctrl_typec: typecgrp {
>  		fsl,pins = <
> -			MX93_PAD_I2C2_SCL__GPIO1_IO02
> 	0x1306
> +			/* HYS | FSEL_0 | No DSE */
> +			MX93_PAD_I2C2_SCL__GPIO1_IO02
> 		0x1000
>  		>;
>  	};
> 
>  	pinctrl_uart1: uart1grp {
>  		fsl,pins = <
> -			MX93_PAD_UART1_RXD__LPUART1_RX
> 	0x31e
> -			MX93_PAD_UART1_TXD__LPUART1_TX
> 	0x31e
> +			/* HYS | FSEL_0 | No DSE */
> +			MX93_PAD_UART1_RXD__LPUART1_RX
> 		0x1000
> +			/* FSEL_2 | DSE X4 */
> +			MX93_PAD_UART1_TXD__LPUART1_TX
> 		0x011e
>  		>;
>  	};
> 
>  	pinctrl_uart2: uart2grp {
>  		fsl,pins = <
> -			MX93_PAD_UART2_TXD__LPUART2_TX
> 	0x31e
> -			MX93_PAD_UART2_RXD__LPUART2_RX
> 	0x31e
> -			MX93_PAD_SAI1_TXD0__LPUART2_RTS_B
> 0x51e
> +			/* HYS | FSEL_0 | No DSE */
> +			MX93_PAD_UART2_RXD__LPUART2_RX
> 		0x1000
> +			/* FSEL_2 | DSE X4 */
> +			MX93_PAD_UART2_TXD__LPUART2_TX
> 		0x011e
> +			/* FSEL_2 | DSE X4 */
> +			MX93_PAD_SAI1_TXD0__LPUART2_RTS_B
> 		0x011e
>  		>;
>  	};
> 
>  	pinctrl_uart3: uart3grp {
>  		fsl,pins = <
> -			MX93_PAD_GPIO_IO14__LPUART3_TX
> 	0x31e
> -			MX93_PAD_GPIO_IO15__LPUART3_RX
> 	0x31e
> +			/* HYS | FSEL_0 | No DSE */
> +			MX93_PAD_GPIO_IO15__LPUART3_RX
> 		0x1000
> +			/* FSEL_2 | DSE X4 */
> +			MX93_PAD_GPIO_IO14__LPUART3_TX
> 		0x011e
>  		>;
>  	};
> 
>  	pinctrl_uart6: uart6grp {
>  		fsl,pins = <
> -			MX93_PAD_GPIO_IO04__LPUART6_TX
> 	0x31e
> -			MX93_PAD_GPIO_IO05__LPUART6_RX
> 	0x31e
> +			/* HYS | FSEL_0 | No DSE */
> +			MX93_PAD_GPIO_IO05__LPUART6_RX
> 		0x1000
> +			/* FSEL_2 | DSE X4 */
> +			MX93_PAD_GPIO_IO04__LPUART6_TX
> 		0x011e
>  		>;
>  	};
> 
>  	pinctrl_uart8: uart8grp {
>  		fsl,pins = <
> -			MX93_PAD_GPIO_IO12__LPUART8_TX
> 	0x31e
> -			MX93_PAD_GPIO_IO13__LPUART8_RX
> 	0x31e
> +			/* HYS | FSEL_0 | No DSE */
> +			MX93_PAD_GPIO_IO13__LPUART8_RX
> 		0x1000
> +			/* FSEL_2 | DSE X4 */
> +			MX93_PAD_GPIO_IO12__LPUART8_TX
> 		0x011e
>  		>;
>  	};
> 
>  	pinctrl_usdhc2_gpio: usdhc2gpiogrp {
>  		fsl,pins = <
> -			MX93_PAD_SD2_CD_B__GPIO3_IO00
> 	0x31e
> +			/* HYS | FSEL_0 | No DSE */
> +			MX93_PAD_SD2_CD_B__GPIO3_IO00
> 		0x1000
>  		>;
>  	};
> 
>  	pinctrl_usdhc2_hs: usdhc2hsgrp {
>  		fsl,pins = <
> -			/* HYS | PD | PU | FSEL_3 | DSE X5 */
> -			MX93_PAD_SD2_CLK__USDHC2_CLK
> 	0x17be
> -			/* HYS | PD | PU | FSEL_3 | DSE X4 */
> -			MX93_PAD_SD2_CMD__USDHC2_CMD
> 	0x139e
> -			/* HYS | PD | PU | FSEL_3 | DSE X3 */
> -			MX93_PAD_SD2_DATA0__USDHC2_DATA0
> 	0x138e
> -			MX93_PAD_SD2_DATA1__USDHC2_DATA1
> 	0x138e
> -			MX93_PAD_SD2_DATA2__USDHC2_DATA2
> 	0x138e
> -			MX93_PAD_SD2_DATA3__USDHC2_DATA3
> 	0x138e
> -			/* PD | PU | FSEL_2 | DSE X3 */
> -
> 	MX93_PAD_SD2_VSELECT__USDHC2_VSELECT	0x50e
> +			/* PD | FSEL_3 | DSE X5 */
> +			MX93_PAD_SD2_CLK__USDHC2_CLK
> 		0x05be
> +			/* HYS | PU | FSEL_3 | DSE X4 */
> +			MX93_PAD_SD2_CMD__USDHC2_CMD
> 		0x139e
> +			/* HYS | PU | FSEL_3 | DSE X3 */
> +			MX93_PAD_SD2_DATA0__USDHC2_DATA0
> 		0x138e
> +			MX93_PAD_SD2_DATA1__USDHC2_DATA1
> 		0x138e
> +			MX93_PAD_SD2_DATA2__USDHC2_DATA2
> 		0x138e
> +			MX93_PAD_SD2_DATA3__USDHC2_DATA3
> 		0x138e
> +			/* FSEL_2 | DSE X3 */
> +
> 	MX93_PAD_SD2_VSELECT__USDHC2_VSELECT
> 	0x010e
>  		>;
>  	};
> 
>  	pinctrl_usdhc2_uhs: usdhc2uhsgrp {
>  		fsl,pins = <
> -			/* HYS | PD | PU | FSEL_3 | DSE X6 */
> -			MX93_PAD_SD2_CLK__USDHC2_CLK
> 	0x17fe
> -			/* HYS | PD | PU | FSEL_3 | DSE X4 */
> -			MX93_PAD_SD2_CMD__USDHC2_CMD
> 	0x139e
> -			MX93_PAD_SD2_DATA0__USDHC2_DATA0
> 	0x139e
> -			MX93_PAD_SD2_DATA1__USDHC2_DATA1
> 	0x139e
> -			MX93_PAD_SD2_DATA2__USDHC2_DATA2
> 	0x139e
> -			MX93_PAD_SD2_DATA3__USDHC2_DATA3
> 	0x139e
> -			/* PD | PU | FSEL_2 | DSE X3 */
> -
> 	MX93_PAD_SD2_VSELECT__USDHC2_VSELECT	0x50e
> +			/* PD | FSEL_3 | DSE X6 */
> +			MX93_PAD_SD2_CLK__USDHC2_CLK
> 		0x05fe
> +			/* HYS | PU | FSEL_3 | DSE X4 */
> +			MX93_PAD_SD2_CMD__USDHC2_CMD
> 		0x139e
> +			MX93_PAD_SD2_DATA0__USDHC2_DATA0
> 		0x139e
> +			MX93_PAD_SD2_DATA1__USDHC2_DATA1
> 		0x139e
> +			MX93_PAD_SD2_DATA2__USDHC2_DATA2
> 		0x139e
> +			MX93_PAD_SD2_DATA3__USDHC2_DATA3
> 		0x139e
> +			/* FSEL_2 | DSE X3 */
> +
> 	MX93_PAD_SD2_VSELECT__USDHC2_VSELECT
> 	0x010e
>  		>;
>  	};
>  };
> --
> 2.34.1
> 






[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux