I just setup raspberry pi 2 with my favorite distro. I installed 3.5" display and got it working in 10 minutes.
I added this to my /boot/config.txt
$this->bbcode_second_pass_code('', '
device_tree=bcm2709-rpi-2-b.dtb <--- this is for raspberry pi2
device_tree_param=i2c_arm=on
device_tree_param=spi=on
device_tree_param=i2s=on
device_tree_overlay=piscreen
dtoverlay=ads7846,cs=1,penirq=17,swapxy=1,xmin=200,xmax=3900,ymin=200,ymax=3900,pmax=255,xohms=60
gpu_mem=128
')
I created fbtft.conf in /etc/modprobe.d
$this->bbcode_second_pass_code('', '
options flexfb nobacklight regwidth=16 init=-1,0xb0,0x0,-1,0x11,-2,250,-1,0x3A,0x55,-1,0xC2,0x44,-1,0xC5,0x00,0x00,0x00,0x00,-1,0xE0,0x0F,0x1F,0x1C,0x0C,0x0F,0x08,0x48,0x98,0x37,0x0A,0x13,0x04,0x11,0x0D,0x00,-1,0xE1,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0xE2,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0x36,0x28,-1,0x11,-1,0x29,-3 width=480 height=320
options fbtft_device name=flexfb speed=16000000 gpios=reset:25,dc:24')
I edidted nano /etc/X11/xorg.conf.d/99-fbturbo.conf and changed fb0 to fb1
I also added this line to end of /boot/config.txt
$this->bbcode_second_pass_code('', 'dtoverlay=ads7846,speed=500000,penirq=17,swapxy=1')
I added folowing modules
i2c-bcm2708
i2c-dev
flexfb
fbtft_device
ads7846_device
Finally I created nano /etc/X11/xorg.conf.d/99-calibration.conf
$this->bbcode_second_pass_code('', 'Section "InputClass"
Identifier "calibration"
MatchProduct "ADS7846 Touchscreen"
Option "Calibration" "3900 240 3900 240"
EndSection')